From 2dd308629661cb5f616fbd9a3fd29ad80f3f94da Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Wed, 12 May 2021 14:58:01 -0700 Subject: [PATCH 01/97] wip: add test workflow --- .github/workflows/create-deps-pr.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 .github/workflows/create-deps-pr.yml diff --git a/.github/workflows/create-deps-pr.yml b/.github/workflows/create-deps-pr.yml new file mode 100644 index 00000000000000..407cc1f400266f --- /dev/null +++ b/.github/workflows/create-deps-pr.yml @@ -0,0 +1,10 @@ +name: Create NPM Deps PR + +on: workflow_dispatch + +jobs: + say_hello: + runs-on: ubuntu-latest + steps: + - run: | + echo "Hello!" From b936e06a8c8a565e1a07d39f53721fbc7ac41db7 Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Wed, 12 May 2021 16:23:19 -0700 Subject: [PATCH 02/97] wip: test --- .github/workflows/create-deps-pr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/create-deps-pr.yml b/.github/workflows/create-deps-pr.yml index 407cc1f400266f..b6bd57c248e519 100644 --- a/.github/workflows/create-deps-pr.yml +++ b/.github/workflows/create-deps-pr.yml @@ -7,4 +7,4 @@ jobs: runs-on: ubuntu-latest steps: - run: | - echo "Hello!" + git config -l \ No newline at end of file From 6416a4594b89dd2743f88156338835d5555aac99 Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Wed, 12 May 2021 17:47:24 -0700 Subject: [PATCH 03/97] wip: test step --- .github/workflows/create-cli-deps-pr.yml | 38 +++++++++++++++++++++--- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/.github/workflows/create-cli-deps-pr.yml b/.github/workflows/create-cli-deps-pr.yml index fcfcebc8e7a948..75cb71f81e3985 100644 --- a/.github/workflows/create-cli-deps-pr.yml +++ b/.github/workflows/create-cli-deps-pr.yml @@ -1,6 +1,6 @@ name: Create CLI Deps PR -# Controls when the action will run. +# Controls when the action will run. on: # Allows you to run this workflow manually from the Actions tab workflow_dispatch: @@ -8,13 +8,43 @@ on: # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: # This workflow contains a single job called "build" - build: + create-pr: # The type of runner that the job will run on runs-on: ubuntu-latest # Steps represent a sequence of tasks that will be executed as part of the job steps: # Runs a set of commands using the runners shell - - name: Run a multi-line script + - name: Checkout + uses: actions/checkout@v2 + with: + # Repository name with owner. For example, actions/checkout + # Default: ${{ github.repository }} + repository: ${{ github.repository }} + + # The branch, tag or SHA to checkout. When checking out the repository that + # triggered a workflow, this defaults to the reference or SHA for that event. + # Otherwise, uses the default branch. + ref: 'gimli01/deps-pr' + + # Personal access token (PAT) used to fetch the repository. The PAT is configured + # with the local git config, which enables your scripts to run authenticated git + # commands. The post-job step removes the PAT. + # + # We recommend using a service account with the least permissions necessary. Also + # when generating a new PAT, select the least scopes necessary. + # + # [Learn more about creating and using encrypted secrets](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets) + # + # Default: ${{ github.token }} + # token: '' + + - name: Git Config run: | - echo "HI!" + NPM_VERSION=`npm view npm@latest version` + echo "${NPM_VERSION}" + # - name: Create PR + # uses: peter-evans/create-pull-request@v3.9.1 + # with: + # committer: npm-robot + # author: npm-robot From fa81905104c1f7d7bccabe5e934a20bb24e68b91 Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Wed, 12 May 2021 17:52:58 -0700 Subject: [PATCH 04/97] wip: test step --- .github/workflows/create-cli-deps-pr.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/create-cli-deps-pr.yml b/.github/workflows/create-cli-deps-pr.yml index 75cb71f81e3985..3eb1ef04aedf9a 100644 --- a/.github/workflows/create-cli-deps-pr.yml +++ b/.github/workflows/create-cli-deps-pr.yml @@ -41,8 +41,10 @@ jobs: - name: Git Config run: | - NPM_VERSION=`npm view npm@latest version` - echo "${NPM_VERSION}" + npm_version=`npm view npm@latest version` + release_branch='npm-${npm_version}' + git checkout -b ${release_branch} + git push --set-upstream origin ${release_branch} # - name: Create PR # uses: peter-evans/create-pull-request@v3.9.1 # with: From dc08ff82784fc02e57d8061330c36c3e72fd21b4 Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Wed, 12 May 2021 17:56:01 -0700 Subject: [PATCH 05/97] wip: test step --- .github/workflows/create-cli-deps-pr.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/create-cli-deps-pr.yml b/.github/workflows/create-cli-deps-pr.yml index 3eb1ef04aedf9a..9b6cacb79beb63 100644 --- a/.github/workflows/create-cli-deps-pr.yml +++ b/.github/workflows/create-cli-deps-pr.yml @@ -42,9 +42,9 @@ jobs: - name: Git Config run: | npm_version=`npm view npm@latest version` - release_branch='npm-${npm_version}' - git checkout -b ${release_branch} - git push --set-upstream origin ${release_branch} + release_branch="npm-${release_branch}" + git checkout -b $release_branch + git push --set-upstream origin $release_branch # - name: Create PR # uses: peter-evans/create-pull-request@v3.9.1 # with: From c35e23d4b782309588e63562bdf6f8669b0b3071 Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Wed, 12 May 2021 17:57:20 -0700 Subject: [PATCH 06/97] wip: test step --- .github/workflows/create-cli-deps-pr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/create-cli-deps-pr.yml b/.github/workflows/create-cli-deps-pr.yml index 9b6cacb79beb63..c02ce8880f1378 100644 --- a/.github/workflows/create-cli-deps-pr.yml +++ b/.github/workflows/create-cli-deps-pr.yml @@ -42,7 +42,7 @@ jobs: - name: Git Config run: | npm_version=`npm view npm@latest version` - release_branch="npm-${release_branch}" + release_branch="npm-${npm_version}" git checkout -b $release_branch git push --set-upstream origin $release_branch # - name: Create PR From f53c59d3acabac862058a52ef086a8f8465077e2 Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Wed, 12 May 2021 17:58:51 -0700 Subject: [PATCH 07/97] wip: test step --- .github/workflows/create-cli-deps-pr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/create-cli-deps-pr.yml b/.github/workflows/create-cli-deps-pr.yml index c02ce8880f1378..f5937939850d7b 100644 --- a/.github/workflows/create-cli-deps-pr.yml +++ b/.github/workflows/create-cli-deps-pr.yml @@ -42,7 +42,7 @@ jobs: - name: Git Config run: | npm_version=`npm view npm@latest version` - release_branch="npm-${npm_version}" + release_branch="gimli01-${npm_version}" git checkout -b $release_branch git push --set-upstream origin $release_branch # - name: Create PR From 8c67e53248a8b0d052fbb7380fa43f4e590a3fe5 Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Wed, 12 May 2021 19:08:40 -0700 Subject: [PATCH 08/97] wip: test step --- .github/workflows/create-cli-deps-pr.yml | 47 ++++++++++++++++++------ 1 file changed, 36 insertions(+), 11 deletions(-) diff --git a/.github/workflows/create-cli-deps-pr.yml b/.github/workflows/create-cli-deps-pr.yml index f5937939850d7b..63aff7bedd6c57 100644 --- a/.github/workflows/create-cli-deps-pr.yml +++ b/.github/workflows/create-cli-deps-pr.yml @@ -39,14 +39,39 @@ jobs: # Default: ${{ github.token }} # token: '' - - name: Git Config - run: | - npm_version=`npm view npm@latest version` - release_branch="gimli01-${npm_version}" - git checkout -b $release_branch - git push --set-upstream origin $release_branch - # - name: Create PR - # uses: peter-evans/create-pull-request@v3.9.1 - # with: - # committer: npm-robot - # author: npm-robot + # - name: Git config + # run: | + # npm_version=`npm view npm@latest version` + # release_branch="gimli01-${npm_version}" + # echo "PR_NPM_VERSION=${npm_version} >> $GITHUB_ENV" + # echo "PR_RELEASE_BRANCH=${release_branch} >> $GITHUB_ENV" + # git remote add downstream https://github.com/nodejs/node.git + # git remote add npm git@github.com:npm/node.git + # git checkout -b $release_branch + # git push --set-upstream origin $release_branch + + # - name: Run update steps + # run: | + # ./tools/update-npm.sh $PR_NPM_VERSION + # git add -A deps/npm + # git commit -m "deps: upgrade npm to $PR_NPM_VERSION" + # sh ./configure + # make -j4 + # sh ./tools/license-builder.sh + # git add . + # git commit -m "doc: update npm LICENSE using license-builder.sh" + # git rebase --whitespace=fix master + + # - name: Run tests + # run: | + # make test-npm + + - name: Create pull request + uses: peter-evans/create-pull-request@v3 + with: + commit-message: 'deps: update npm to v${$PR_NPM_VERSION}' + committer: npm-robot + base: node/master + title: "deps: update npm to v${PR_NPM_VERSION}" + body: | + This PR was automatically generated by a GitHub Action. Please fill in the description. \ No newline at end of file From ea0c3b119b7ddc6572b7d9fef6efda91b74ee359 Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Wed, 12 May 2021 19:10:53 -0700 Subject: [PATCH 09/97] wip: test step --- .github/workflows/create-cli-deps-pr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/create-cli-deps-pr.yml b/.github/workflows/create-cli-deps-pr.yml index 63aff7bedd6c57..8a4cf877c08711 100644 --- a/.github/workflows/create-cli-deps-pr.yml +++ b/.github/workflows/create-cli-deps-pr.yml @@ -71,7 +71,7 @@ jobs: with: commit-message: 'deps: update npm to v${$PR_NPM_VERSION}' committer: npm-robot - base: node/master + push-to-fork: nodejs/node title: "deps: update npm to v${PR_NPM_VERSION}" body: | This PR was automatically generated by a GitHub Action. Please fill in the description. \ No newline at end of file From 83d6e8c16a8c7186d78de31d59ef18675b09d5a6 Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Wed, 12 May 2021 19:19:48 -0700 Subject: [PATCH 10/97] wip: test step --- .github/workflows/create-cli-deps-pr.yml | 35 +++++++++++++++--------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/.github/workflows/create-cli-deps-pr.yml b/.github/workflows/create-cli-deps-pr.yml index 8a4cf877c08711..1e500c954752b9 100644 --- a/.github/workflows/create-cli-deps-pr.yml +++ b/.github/workflows/create-cli-deps-pr.yml @@ -14,6 +14,13 @@ jobs: # Steps represent a sequence of tasks that will be executed as part of the job steps: + - name: Install dependencies + run: | + apt-get update + apt-get install -y software-properties-common + add-apt-repository -y ppa:git-core/ppa + apt-get install -y git + # Runs a set of commands using the runners shell - name: Checkout uses: actions/checkout@v2 @@ -39,16 +46,17 @@ jobs: # Default: ${{ github.token }} # token: '' - # - name: Git config - # run: | - # npm_version=`npm view npm@latest version` - # release_branch="gimli01-${npm_version}" - # echo "PR_NPM_VERSION=${npm_version} >> $GITHUB_ENV" - # echo "PR_RELEASE_BRANCH=${release_branch} >> $GITHUB_ENV" - # git remote add downstream https://github.com/nodejs/node.git - # git remote add npm git@github.com:npm/node.git - # git checkout -b $release_branch - # git push --set-upstream origin $release_branch + - name: Git config + run: | + npm_version=`npm view npm@latest version` + release_branch="gimli01-${npm_version}" + echo "PR_NPM_VERSION=${npm_version} >> $GITHUB_ENV" + echo "PR_RELEASE_BRANCH=${release_branch} >> $GITHUB_ENV" + git remote add downstream https://github.com/nodejs/node.git + git remote add npm git@github.com:npm/node.git + + # git checkout -b $release_branch + # git push --set-upstream origin $release_branch # - name: Run update steps # run: | @@ -65,13 +73,14 @@ jobs: # - name: Run tests # run: | # make test-npm - + - name: Create pull request uses: peter-evans/create-pull-request@v3 with: commit-message: 'deps: update npm to v${$PR_NPM_VERSION}' committer: npm-robot + branch: gimli01-7.12.1 push-to-fork: nodejs/node - title: "deps: update npm to v${PR_NPM_VERSION}" + title: 'deps: update npm to v${PR_NPM_VERSION}' body: | - This PR was automatically generated by a GitHub Action. Please fill in the description. \ No newline at end of file + This PR was automatically generated by a GitHub Action. Please fill in the description. From e5c076e0fef999fb47a0460440cf4d8931496660 Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Wed, 12 May 2021 19:22:53 -0700 Subject: [PATCH 11/97] wip: test step --- .github/workflows/create-cli-deps-pr.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/create-cli-deps-pr.yml b/.github/workflows/create-cli-deps-pr.yml index 1e500c954752b9..1b4fe099f9f5bd 100644 --- a/.github/workflows/create-cli-deps-pr.yml +++ b/.github/workflows/create-cli-deps-pr.yml @@ -80,7 +80,8 @@ jobs: commit-message: 'deps: update npm to v${$PR_NPM_VERSION}' committer: npm-robot branch: gimli01-7.12.1 - push-to-fork: nodejs/node + base: node/master + token: ${{ secrets.GH_USER_TOKEN }} title: 'deps: update npm to v${PR_NPM_VERSION}' body: | This PR was automatically generated by a GitHub Action. Please fill in the description. From 955a9b6411b729fcc34222119f9cf5b96bea9665 Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Wed, 12 May 2021 19:24:07 -0700 Subject: [PATCH 12/97] wip: test step --- .github/workflows/create-cli-deps-pr.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/create-cli-deps-pr.yml b/.github/workflows/create-cli-deps-pr.yml index 1b4fe099f9f5bd..ef2c433e7bc91e 100644 --- a/.github/workflows/create-cli-deps-pr.yml +++ b/.github/workflows/create-cli-deps-pr.yml @@ -16,10 +16,10 @@ jobs: steps: - name: Install dependencies run: | - apt-get update - apt-get install -y software-properties-common - add-apt-repository -y ppa:git-core/ppa - apt-get install -y git + sudo apt-get update + sudo apt-get install -y software-properties-common + sudo add-apt-repository -y ppa:git-core/ppa + sudo apt-get install -y git # Runs a set of commands using the runners shell - name: Checkout From 111ae5a3455433d5f8a036c97aba54cd3d149e3b Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Wed, 12 May 2021 19:49:01 -0700 Subject: [PATCH 13/97] wip: test step --- .github/workflows/create-cli-deps-pr.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/create-cli-deps-pr.yml b/.github/workflows/create-cli-deps-pr.yml index ef2c433e7bc91e..85782cc2b1ed30 100644 --- a/.github/workflows/create-cli-deps-pr.yml +++ b/.github/workflows/create-cli-deps-pr.yml @@ -80,8 +80,9 @@ jobs: commit-message: 'deps: update npm to v${$PR_NPM_VERSION}' committer: npm-robot branch: gimli01-7.12.1 - base: node/master - token: ${{ secrets.GH_USER_TOKEN }} + push-to-fork: nodejs/node + base: master + token: ${{ secrets.GITHUB_TOKEN }} title: 'deps: update npm to v${PR_NPM_VERSION}' body: | This PR was automatically generated by a GitHub Action. Please fill in the description. From d7975a29279989bc55474aa7668d5e425b65786c Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Wed, 12 May 2021 19:53:21 -0700 Subject: [PATCH 14/97] wip: test step --- .github/workflows/create-cli-deps-pr.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/create-cli-deps-pr.yml b/.github/workflows/create-cli-deps-pr.yml index 85782cc2b1ed30..58cc6ea7e5ab1e 100644 --- a/.github/workflows/create-cli-deps-pr.yml +++ b/.github/workflows/create-cli-deps-pr.yml @@ -79,10 +79,9 @@ jobs: with: commit-message: 'deps: update npm to v${$PR_NPM_VERSION}' committer: npm-robot - branch: gimli01-7.12.1 - push-to-fork: nodejs/node - base: master - token: ${{ secrets.GITHUB_TOKEN }} + author: npm-robot + branch: npm:gimli01-7.12.1 + base: nodejs:master title: 'deps: update npm to v${PR_NPM_VERSION}' body: | This PR was automatically generated by a GitHub Action. Please fill in the description. From 2d43e0e21e2c8725a52bd38e7e9f2271dfa4362f Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Wed, 12 May 2021 20:00:20 -0700 Subject: [PATCH 15/97] wip: test step --- .github/workflows/create-cli-deps-pr.yml | 52 ++++++++++++------------ 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/.github/workflows/create-cli-deps-pr.yml b/.github/workflows/create-cli-deps-pr.yml index 58cc6ea7e5ab1e..284e960391d03d 100644 --- a/.github/workflows/create-cli-deps-pr.yml +++ b/.github/workflows/create-cli-deps-pr.yml @@ -20,7 +20,7 @@ jobs: sudo apt-get install -y software-properties-common sudo add-apt-repository -y ppa:git-core/ppa sudo apt-get install -y git - + # Runs a set of commands using the runners shell - name: Checkout uses: actions/checkout@v2 @@ -54,34 +54,34 @@ jobs: echo "PR_RELEASE_BRANCH=${release_branch} >> $GITHUB_ENV" git remote add downstream https://github.com/nodejs/node.git git remote add npm git@github.com:npm/node.git - - # git checkout -b $release_branch - # git push --set-upstream origin $release_branch - # - name: Run update steps - # run: | - # ./tools/update-npm.sh $PR_NPM_VERSION - # git add -A deps/npm - # git commit -m "deps: upgrade npm to $PR_NPM_VERSION" - # sh ./configure - # make -j4 - # sh ./tools/license-builder.sh - # git add . - # git commit -m "doc: update npm LICENSE using license-builder.sh" - # git rebase --whitespace=fix master + # git checkout -b $release_branch + # git push --set-upstream origin $release_branch + + - name: Run update steps + run: | + ./tools/update-npm.sh $PR_NPM_VERSION + git add -A deps/npm + git commit -m "deps: upgrade npm to $PR_NPM_VERSION" + sh ./configure + make -j4 + sh ./tools/license-builder.sh + git add . + git commit -m "doc: update npm LICENSE using license-builder.sh" + git rebase --whitespace=fix master # - name: Run tests # run: | # make test-npm - - name: Create pull request - uses: peter-evans/create-pull-request@v3 - with: - commit-message: 'deps: update npm to v${$PR_NPM_VERSION}' - committer: npm-robot - author: npm-robot - branch: npm:gimli01-7.12.1 - base: nodejs:master - title: 'deps: update npm to v${PR_NPM_VERSION}' - body: | - This PR was automatically generated by a GitHub Action. Please fill in the description. + # - name: Create pull request + # uses: peter-evans/create-pull-request@v3 + # with: + # commit-message: 'deps: update npm to v${$PR_NPM_VERSION}' + # committer: npm-robot + # author: npm-robot + # branch: npm:gimli01-7.12.1 + # base: nodejs:master + # title: 'deps: update npm to v${PR_NPM_VERSION}' + # body: | + # This PR was automatically generated by a GitHub Action. Please fill in the description. From c37331179170fe7b1a0d8685a445c5efa0128f01 Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Wed, 12 May 2021 20:01:59 -0700 Subject: [PATCH 16/97] wip: test step --- .github/workflows/create-cli-deps-pr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/create-cli-deps-pr.yml b/.github/workflows/create-cli-deps-pr.yml index 284e960391d03d..e9bda6299fa15d 100644 --- a/.github/workflows/create-cli-deps-pr.yml +++ b/.github/workflows/create-cli-deps-pr.yml @@ -60,7 +60,7 @@ jobs: - name: Run update steps run: | - ./tools/update-npm.sh $PR_NPM_VERSION + ./tools/update-npm.sh ${PR_NPM_VERSION} git add -A deps/npm git commit -m "deps: upgrade npm to $PR_NPM_VERSION" sh ./configure From 25c72ab57e3f742eee5003a5cbc3bb41c6906958 Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Thu, 13 May 2021 00:43:04 -0700 Subject: [PATCH 17/97] wip: test step --- .github/workflows/create-cli-deps-pr.yml | 53 ++++++++++++++++-------- .gitignore | 1 + tmp | 1 + 3 files changed, 38 insertions(+), 17 deletions(-) create mode 160000 tmp diff --git a/.github/workflows/create-cli-deps-pr.yml b/.github/workflows/create-cli-deps-pr.yml index e9bda6299fa15d..c0ecab11a1d769 100644 --- a/.github/workflows/create-cli-deps-pr.yml +++ b/.github/workflows/create-cli-deps-pr.yml @@ -14,12 +14,12 @@ jobs: # Steps represent a sequence of tasks that will be executed as part of the job steps: - - name: Install dependencies - run: | - sudo apt-get update - sudo apt-get install -y software-properties-common - sudo add-apt-repository -y ppa:git-core/ppa - sudo apt-get install -y git + # - name: Install dependencies + # run: | + # sudo apt-get update + # sudo apt-get install -y software-properties-common + # sudo add-apt-repository -y ppa:git-core/ppa + # sudo apt-get install -y git # Runs a set of commands using the runners shell - name: Checkout @@ -44,7 +44,7 @@ jobs: # [Learn more about creating and using encrypted secrets](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets) # # Default: ${{ github.token }} - # token: '' + token: ${{ secrets.token }} - name: Git config run: | @@ -58,17 +58,36 @@ jobs: # git checkout -b $release_branch # git push --set-upstream origin $release_branch - - name: Run update steps + - name: Clone CLI into tmp + uses: actions/checkout@v2 + with: + fetch: 0 + repository: npm/cli + token: ${{ secrets.token }} + path: tmp/cli + + - name: Update CLI dependency run: | - ./tools/update-npm.sh ${PR_NPM_VERSION} - git add -A deps/npm - git commit -m "deps: upgrade npm to $PR_NPM_VERSION" - sh ./configure - make -j4 - sh ./tools/license-builder.sh - git add . - git commit -m "doc: update npm LICENSE using license-builder.sh" - git rebase --whitespace=fix master + cd tmp/cli + git pull origin + git checkout v7.12.1 + make + make release + cd ../../deps + tar zxf ../tmp/cli/release/npm-7.11.1.tgz + rm -rf ../tmp + + # - name: Run update steps + # run: | + # ./tools/update-npm.sh "${PR_NPM_VERSION}" + # git add -A deps/npm + # git commit -m "deps: upgrade npm to ${PR_NPM_VERSION}" + # sh ./configure + # make -j4 + # sh ./tools/license-builder.sh + # git add . + # git commit -m "doc: update npm LICENSE using license-builder.sh" + # git rebase --whitespace=fix master # - name: Run tests # run: | diff --git a/.gitignore b/.gitignore index c5ae6ea68d82fa..76283513c95fec 100644 --- a/.gitignore +++ b/.gitignore @@ -145,3 +145,4 @@ tools/*/*.i.tmp __pycache__ .DS_Store *~ +tmp/ \ No newline at end of file diff --git a/tmp b/tmp new file mode 160000 index 00000000000000..659751fafdd361 --- /dev/null +++ b/tmp @@ -0,0 +1 @@ +Subproject commit 659751fafdd3615f44d060fa3afd702589dee693 From 54723e52d7a886375f7c2095ee9ac4c377b9bb0d Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Thu, 13 May 2021 10:44:13 -0700 Subject: [PATCH 18/97] wip: test pr create --- .github/workflows/create-cli-deps-pr.yml | 36 +++++++++++++----------- .github/workflows/create-deps-pr.yml | 10 ------- 2 files changed, 19 insertions(+), 27 deletions(-) delete mode 100644 .github/workflows/create-deps-pr.yml diff --git a/.github/workflows/create-cli-deps-pr.yml b/.github/workflows/create-cli-deps-pr.yml index c0ecab11a1d769..4cb6b98d9e6dfe 100644 --- a/.github/workflows/create-cli-deps-pr.yml +++ b/.github/workflows/create-cli-deps-pr.yml @@ -5,6 +5,8 @@ on: # Allows you to run this workflow manually from the Actions tab workflow_dispatch: +permissions: read-all|write-all + # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: # This workflow contains a single job called "build" @@ -52,30 +54,30 @@ jobs: release_branch="gimli01-${npm_version}" echo "PR_NPM_VERSION=${npm_version} >> $GITHUB_ENV" echo "PR_RELEASE_BRANCH=${release_branch} >> $GITHUB_ENV" - git remote add downstream https://github.com/nodejs/node.git - git remote add npm git@github.com:npm/node.git # git checkout -b $release_branch # git push --set-upstream origin $release_branch - - name: Clone CLI into tmp - uses: actions/checkout@v2 - with: - fetch: 0 - repository: npm/cli - token: ${{ secrets.token }} - path: tmp/cli + # - name: Clone CLI into tmp + # uses: actions/checkout@v2 + # with: + # fetch: 0 + # repository: npm/cli + # token: ${{ secrets.token }} + # path: tmp/cli - name: Update CLI dependency run: | - cd tmp/cli - git pull origin - git checkout v7.12.1 - make - make release - cd ../../deps - tar zxf ../tmp/cli/release/npm-7.11.1.tgz - rm -rf ../tmp + gh repo clone npm/cli + # run: | + # cd tmp/cli + # git pull origin + # git checkout v7.12.1 + # make + # make release + # cd ../../deps + # tar zxf ../tmp/cli/release/npm-7.11.1.tgz + # rm -rf ../tmp # - name: Run update steps # run: | diff --git a/.github/workflows/create-deps-pr.yml b/.github/workflows/create-deps-pr.yml deleted file mode 100644 index b6bd57c248e519..00000000000000 --- a/.github/workflows/create-deps-pr.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: Create NPM Deps PR - -on: workflow_dispatch - -jobs: - say_hello: - runs-on: ubuntu-latest - steps: - - run: | - git config -l \ No newline at end of file From 5cfaed8c93e391399d87ab9c7e4c97b375d7b79c Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Thu, 13 May 2021 10:50:07 -0700 Subject: [PATCH 19/97] wip: test pr create --- .github/workflows/create-cli-deps-pr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/create-cli-deps-pr.yml b/.github/workflows/create-cli-deps-pr.yml index 4cb6b98d9e6dfe..a5c8876656ebcb 100644 --- a/.github/workflows/create-cli-deps-pr.yml +++ b/.github/workflows/create-cli-deps-pr.yml @@ -5,7 +5,7 @@ on: # Allows you to run this workflow manually from the Actions tab workflow_dispatch: -permissions: read-all|write-all +# permissions: read-all|write-all # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: From d9e347193d163979ee56f7e5f0404f9f9aa21327 Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Thu, 13 May 2021 10:51:18 -0700 Subject: [PATCH 20/97] wip: test pr create --- .github/workflows/create-cli-deps-pr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/create-cli-deps-pr.yml b/.github/workflows/create-cli-deps-pr.yml index a5c8876656ebcb..ccb02e83f76d09 100644 --- a/.github/workflows/create-cli-deps-pr.yml +++ b/.github/workflows/create-cli-deps-pr.yml @@ -46,7 +46,7 @@ jobs: # [Learn more about creating and using encrypted secrets](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets) # # Default: ${{ github.token }} - token: ${{ secrets.token }} + token: ${{ github.token }} - name: Git config run: | From 8d4efa4edcf0d93fa349f86cb3e09c111328a2e1 Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Thu, 13 May 2021 10:57:11 -0700 Subject: [PATCH 21/97] wip: test pr create --- .github/workflows/create-cli-deps-pr.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/create-cli-deps-pr.yml b/.github/workflows/create-cli-deps-pr.yml index ccb02e83f76d09..c2d07816d268fb 100644 --- a/.github/workflows/create-cli-deps-pr.yml +++ b/.github/workflows/create-cli-deps-pr.yml @@ -3,7 +3,10 @@ name: Create CLI Deps PR # Controls when the action will run. on: # Allows you to run this workflow manually from the Actions tab - workflow_dispatch: + # workflow_dispatch: + push: + branches: + - gimli01/deps-pr # permissions: read-all|write-all @@ -67,8 +70,10 @@ jobs: # path: tmp/cli - name: Update CLI dependency + with: + token: ${{ github.token }} run: | - gh repo clone npm/cli + gh auth login --with-token '${token}' # run: | # cd tmp/cli # git pull origin From 35aa17dac62dc67d2149bb540c5ada202c102ff0 Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Thu, 13 May 2021 11:01:48 -0700 Subject: [PATCH 22/97] wip: test pr create --- .github/workflows/create-cli-deps-pr.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/create-cli-deps-pr.yml b/.github/workflows/create-cli-deps-pr.yml index c2d07816d268fb..ad88cd141bd25b 100644 --- a/.github/workflows/create-cli-deps-pr.yml +++ b/.github/workflows/create-cli-deps-pr.yml @@ -70,10 +70,8 @@ jobs: # path: tmp/cli - name: Update CLI dependency - with: - token: ${{ github.token }} run: | - gh auth login --with-token '${token}' + gh auth login --with-token '${{ github.token }}' # run: | # cd tmp/cli # git pull origin From 3bf753e422f78f99115f1ff9acd2f7f76ecad393 Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Thu, 13 May 2021 11:03:53 -0700 Subject: [PATCH 23/97] wip: pipe token --- .github/workflows/create-cli-deps-pr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/create-cli-deps-pr.yml b/.github/workflows/create-cli-deps-pr.yml index ad88cd141bd25b..8b9a1d74749249 100644 --- a/.github/workflows/create-cli-deps-pr.yml +++ b/.github/workflows/create-cli-deps-pr.yml @@ -71,7 +71,7 @@ jobs: - name: Update CLI dependency run: | - gh auth login --with-token '${{ github.token }}' + gh auth login --with-token < '${{ github.token }}' # run: | # cd tmp/cli # git pull origin From 7a58bb0cd50f826c10eedaa6bb2c7215c9815048 Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Thu, 13 May 2021 13:33:41 -0700 Subject: [PATCH 24/97] wip: pipe token --- .github/workflows/create-cli-deps-pr.yml | 36 ++++++++++++------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/.github/workflows/create-cli-deps-pr.yml b/.github/workflows/create-cli-deps-pr.yml index 8b9a1d74749249..1d84bcf07afe2a 100644 --- a/.github/workflows/create-cli-deps-pr.yml +++ b/.github/workflows/create-cli-deps-pr.yml @@ -61,26 +61,26 @@ jobs: # git checkout -b $release_branch # git push --set-upstream origin $release_branch - # - name: Clone CLI into tmp - # uses: actions/checkout@v2 - # with: - # fetch: 0 - # repository: npm/cli - # token: ${{ secrets.token }} - # path: tmp/cli - + - name: Clone CLI into tmp + uses: actions/checkout@v2 + with: + fetch: 0 + repository: npm/cli + token: ${{ github.token }} + path: tmp/cli + - name: Update CLI dependency - run: | - gh auth login --with-token < '${{ github.token }}' # run: | - # cd tmp/cli - # git pull origin - # git checkout v7.12.1 - # make - # make release - # cd ../../deps - # tar zxf ../tmp/cli/release/npm-7.11.1.tgz - # rm -rf ../tmp + # gh auth login --with-token < '${{ github.token }}' + run: | + cd tmp/cli + git pull origin + git checkout v7.12.1 + make + make release + cd ../../deps + tar zxf ../tmp/cli/release/npm-7.11.1.tgz + rm -rf ../tmp # - name: Run update steps # run: | From 236e44b90b1943bb1d776545a7ead81d37423f48 Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Thu, 13 May 2021 14:03:57 -0700 Subject: [PATCH 25/97] wip: test --- .github/workflows/create-cli-deps-pr.yml | 105 +---------------------- 1 file changed, 4 insertions(+), 101 deletions(-) diff --git a/.github/workflows/create-cli-deps-pr.yml b/.github/workflows/create-cli-deps-pr.yml index 1d84bcf07afe2a..4c4da9625e93ec 100644 --- a/.github/workflows/create-cli-deps-pr.yml +++ b/.github/workflows/create-cli-deps-pr.yml @@ -1,111 +1,14 @@ -name: Create CLI Deps PR - -# Controls when the action will run. +name: 'CLI Dependency Workflow' on: - # Allows you to run this workflow manually from the Actions tab - # workflow_dispatch: push: branches: - gimli01/deps-pr - -# permissions: read-all|write-all - -# A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: - # This workflow contains a single job called "build" create-pr: - # The type of runner that the job will run on runs-on: ubuntu-latest - - # Steps represent a sequence of tasks that will be executed as part of the job + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - # - name: Install dependencies - # run: | - # sudo apt-get update - # sudo apt-get install -y software-properties-common - # sudo add-apt-repository -y ppa:git-core/ppa - # sudo apt-get install -y git - - # Runs a set of commands using the runners shell - name: Checkout - uses: actions/checkout@v2 - with: - # Repository name with owner. For example, actions/checkout - # Default: ${{ github.repository }} - repository: ${{ github.repository }} - - # The branch, tag or SHA to checkout. When checking out the repository that - # triggered a workflow, this defaults to the reference or SHA for that event. - # Otherwise, uses the default branch. - ref: 'gimli01/deps-pr' - - # Personal access token (PAT) used to fetch the repository. The PAT is configured - # with the local git config, which enables your scripts to run authenticated git - # commands. The post-job step removes the PAT. - # - # We recommend using a service account with the least permissions necessary. Also - # when generating a new PAT, select the least scopes necessary. - # - # [Learn more about creating and using encrypted secrets](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets) - # - # Default: ${{ github.token }} - token: ${{ github.token }} - - - name: Git config run: | - npm_version=`npm view npm@latest version` - release_branch="gimli01-${npm_version}" - echo "PR_NPM_VERSION=${npm_version} >> $GITHUB_ENV" - echo "PR_RELEASE_BRANCH=${release_branch} >> $GITHUB_ENV" - - # git checkout -b $release_branch - # git push --set-upstream origin $release_branch - - - name: Clone CLI into tmp - uses: actions/checkout@v2 - with: - fetch: 0 - repository: npm/cli - token: ${{ github.token }} - path: tmp/cli - - - name: Update CLI dependency - # run: | - # gh auth login --with-token < '${{ github.token }}' - run: | - cd tmp/cli - git pull origin - git checkout v7.12.1 - make - make release - cd ../../deps - tar zxf ../tmp/cli/release/npm-7.11.1.tgz - rm -rf ../tmp - - # - name: Run update steps - # run: | - # ./tools/update-npm.sh "${PR_NPM_VERSION}" - # git add -A deps/npm - # git commit -m "deps: upgrade npm to ${PR_NPM_VERSION}" - # sh ./configure - # make -j4 - # sh ./tools/license-builder.sh - # git add . - # git commit -m "doc: update npm LICENSE using license-builder.sh" - # git rebase --whitespace=fix master - - # - name: Run tests - # run: | - # make test-npm - - # - name: Create pull request - # uses: peter-evans/create-pull-request@v3 - # with: - # commit-message: 'deps: update npm to v${$PR_NPM_VERSION}' - # committer: npm-robot - # author: npm-robot - # branch: npm:gimli01-7.12.1 - # base: nodejs:master - # title: 'deps: update npm to v${PR_NPM_VERSION}' - # body: | - # This PR was automatically generated by a GitHub Action. Please fill in the description. + pwd \ No newline at end of file From 8a9c22debd5ed11e30272d6a1a4aa3dd9574439c Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Thu, 13 May 2021 14:14:03 -0700 Subject: [PATCH 26/97] wip: test --- .github/workflows/create-cli-deps-pr.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/create-cli-deps-pr.yml b/.github/workflows/create-cli-deps-pr.yml index 4c4da9625e93ec..d3bf2f26a842c2 100644 --- a/.github/workflows/create-cli-deps-pr.yml +++ b/.github/workflows/create-cli-deps-pr.yml @@ -11,4 +11,5 @@ jobs: steps: - name: Checkout run: | - pwd \ No newline at end of file + gh clone npm/node && cd node + ./tools/update-npm.sh `npm view npm@latest version` \ No newline at end of file From 5dc10acc0d68dd40a36fddbd8eecae16e20cbc81 Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Thu, 13 May 2021 14:15:28 -0700 Subject: [PATCH 27/97] wip: test --- .github/workflows/create-cli-deps-pr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/create-cli-deps-pr.yml b/.github/workflows/create-cli-deps-pr.yml index d3bf2f26a842c2..b5a3fac67773e9 100644 --- a/.github/workflows/create-cli-deps-pr.yml +++ b/.github/workflows/create-cli-deps-pr.yml @@ -11,5 +11,5 @@ jobs: steps: - name: Checkout run: | - gh clone npm/node && cd node + gh repo clone npm/node && cd node ./tools/update-npm.sh `npm view npm@latest version` \ No newline at end of file From d4769c7c428059eef5046f8fa3e610c6284e57a4 Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Thu, 13 May 2021 14:17:54 -0700 Subject: [PATCH 28/97] wip: test --- .github/workflows/create-cli-deps-pr.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/create-cli-deps-pr.yml b/.github/workflows/create-cli-deps-pr.yml index b5a3fac67773e9..6282db04fa83ab 100644 --- a/.github/workflows/create-cli-deps-pr.yml +++ b/.github/workflows/create-cli-deps-pr.yml @@ -11,5 +11,6 @@ jobs: steps: - name: Checkout run: | + echo '$GITHUB_TOKEN' gh repo clone npm/node && cd node ./tools/update-npm.sh `npm view npm@latest version` \ No newline at end of file From 6d465e358ba69c3a6ffe3e0fbe4e56be737b2b49 Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Thu, 13 May 2021 14:19:33 -0700 Subject: [PATCH 29/97] wip: test --- .github/workflows/create-cli-deps-pr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/create-cli-deps-pr.yml b/.github/workflows/create-cli-deps-pr.yml index 6282db04fa83ab..ff62727e923885 100644 --- a/.github/workflows/create-cli-deps-pr.yml +++ b/.github/workflows/create-cli-deps-pr.yml @@ -11,6 +11,6 @@ jobs: steps: - name: Checkout run: | - echo '$GITHUB_TOKEN' + echo $GITHUB_TOKEN gh repo clone npm/node && cd node ./tools/update-npm.sh `npm view npm@latest version` \ No newline at end of file From b8b3672c499e4fc38a8e84596979f81a84e0789b Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Thu, 13 May 2021 14:22:09 -0700 Subject: [PATCH 30/97] wip: test --- tools/update-npm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/update-npm.sh b/tools/update-npm.sh index 5865f7d4e8cd77..058eacfd8b50c8 100755 --- a/tools/update-npm.sh +++ b/tools/update-npm.sh @@ -24,7 +24,7 @@ mkdir -p "$WORKSPACE" cd "$WORKSPACE" -git clone git@github.com:npm/cli.git +gh repo clone npm/cli cd cli echo "Preparing npm release" From 711dcf78ce1af14a12ce8fb02a4327d13d1058d0 Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Thu, 13 May 2021 14:33:53 -0700 Subject: [PATCH 31/97] wip: test --- .github/workflows/create-cli-deps-pr.yml | 3 ++- tools/update-npm.sh | 26 ++++-------------------- 2 files changed, 6 insertions(+), 23 deletions(-) diff --git a/.github/workflows/create-cli-deps-pr.yml b/.github/workflows/create-cli-deps-pr.yml index ff62727e923885..999f9e37088042 100644 --- a/.github/workflows/create-cli-deps-pr.yml +++ b/.github/workflows/create-cli-deps-pr.yml @@ -12,5 +12,6 @@ jobs: - name: Checkout run: | echo $GITHUB_TOKEN - gh repo clone npm/node && cd node + gh repo clone npm/node + gh repo clone npm/cli ./tools/update-npm.sh `npm view npm@latest version` \ No newline at end of file diff --git a/tools/update-npm.sh b/tools/update-npm.sh index 058eacfd8b50c8..fa1b3077c28ef7 100755 --- a/tools/update-npm.sh +++ b/tools/update-npm.sh @@ -3,7 +3,9 @@ set -e # Shell script to update npm in the source tree to a specific version BASE_DIR="$( pwd )"/ -DEPS_DIR="$BASE_DIR"deps/ +NODE_DIR="$BASE_DIR"node/ +CLI_DIR="$BASE_DIR"cli/ +DEPS_DIR="$BASE_DIR"node/deps/ NPM_VERSION=$1 if [ "$#" -le 0 ]; then @@ -11,22 +13,6 @@ if [ "$#" -le 0 ]; then exit 1 fi -WORKSPACE="$TMPDIR"update-npm-$NPM_VERSION/ - -if [ -d "$WORKSPACE" ]; then - echo "Cleaning up old workspace" - rm -rf "$WORKSPACE" -fi - -echo "Making temporary workspace" - -mkdir -p "$WORKSPACE" - -cd "$WORKSPACE" - -gh repo clone npm/cli -cd cli - echo "Preparing npm release" git checkout v"$NPM_VERSION" @@ -40,11 +26,7 @@ rm -rf npm/ echo "Copying new npm" -tar zxf "$WORKSPACE"cli/release/npm-"$NPM_VERSION".tgz - -echo "Deleting temporary workspace" - -rm -rf "$WORKSPACE" +tar zxf "$CLI_DIR"release/npm-"$NPM_VERSION".tgz echo "" echo "All done!" From b4ea885cdbad8c2a2ea8c6226323bd8ff4a9b49f Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Thu, 13 May 2021 14:38:08 -0700 Subject: [PATCH 32/97] wip: test --- .github/workflows/create-cli-deps-pr.yml | 1 - tools/update-npm.sh | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/create-cli-deps-pr.yml b/.github/workflows/create-cli-deps-pr.yml index 999f9e37088042..59026706d9fc15 100644 --- a/.github/workflows/create-cli-deps-pr.yml +++ b/.github/workflows/create-cli-deps-pr.yml @@ -11,7 +11,6 @@ jobs: steps: - name: Checkout run: | - echo $GITHUB_TOKEN gh repo clone npm/node gh repo clone npm/cli ./tools/update-npm.sh `npm view npm@latest version` \ No newline at end of file diff --git a/tools/update-npm.sh b/tools/update-npm.sh index fa1b3077c28ef7..6d7fadf53eb658 100755 --- a/tools/update-npm.sh +++ b/tools/update-npm.sh @@ -13,8 +13,8 @@ if [ "$#" -le 0 ]; then exit 1 fi -echo "Preparing npm release" - +echo "Prepping CLI repo for release" +cd "$CLI_DIR" git checkout v"$NPM_VERSION" make make release From e4fb5970c838fc764988936303637dd8b3198d5a Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Thu, 13 May 2021 14:39:56 -0700 Subject: [PATCH 33/97] wip: test --- .github/workflows/create-cli-deps-pr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/create-cli-deps-pr.yml b/.github/workflows/create-cli-deps-pr.yml index 59026706d9fc15..b0e4647a10db3d 100644 --- a/.github/workflows/create-cli-deps-pr.yml +++ b/.github/workflows/create-cli-deps-pr.yml @@ -13,4 +13,4 @@ jobs: run: | gh repo clone npm/node gh repo clone npm/cli - ./tools/update-npm.sh `npm view npm@latest version` \ No newline at end of file + ./node/tools/update-npm.sh `npm view npm@latest version` \ No newline at end of file From 013f2cef581c9851a4ce4b804fe082548bb2b8c0 Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Thu, 13 May 2021 14:44:57 -0700 Subject: [PATCH 34/97] wip: test --- .github/workflows/create-cli-deps-pr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/create-cli-deps-pr.yml b/.github/workflows/create-cli-deps-pr.yml index b0e4647a10db3d..547d4367ccd971 100644 --- a/.github/workflows/create-cli-deps-pr.yml +++ b/.github/workflows/create-cli-deps-pr.yml @@ -9,7 +9,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - - name: Checkout + - name: Update npm/node run: | gh repo clone npm/node gh repo clone npm/cli From eb12c5744370bb90177e9a83378c4c92e5c118f1 Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Thu, 13 May 2021 14:53:35 -0700 Subject: [PATCH 35/97] wip: test --- .github/workflows/create-cli-deps-pr.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/create-cli-deps-pr.yml b/.github/workflows/create-cli-deps-pr.yml index 547d4367ccd971..32ad31f5e6ca70 100644 --- a/.github/workflows/create-cli-deps-pr.yml +++ b/.github/workflows/create-cli-deps-pr.yml @@ -8,9 +8,11 @@ jobs: runs-on: ubuntu-latest env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + REPO: ${{ github.repository }} steps: - name: Update npm/node run: | gh repo clone npm/node gh repo clone npm/cli + cd cli && git checkout gimli01/deps-pr ./node/tools/update-npm.sh `npm view npm@latest version` \ No newline at end of file From 306e8100a8f707273643781856c64e93717a507a Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Thu, 13 May 2021 14:55:16 -0700 Subject: [PATCH 36/97] wip: test --- .github/workflows/create-cli-deps-pr.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/create-cli-deps-pr.yml b/.github/workflows/create-cli-deps-pr.yml index 32ad31f5e6ca70..038fd2b238fca2 100644 --- a/.github/workflows/create-cli-deps-pr.yml +++ b/.github/workflows/create-cli-deps-pr.yml @@ -14,5 +14,6 @@ jobs: run: | gh repo clone npm/node gh repo clone npm/cli - cd cli && git checkout gimli01/deps-pr - ./node/tools/update-npm.sh `npm view npm@latest version` \ No newline at end of file + ls -al + # cd cli && git checkout gimli01/deps-pr + # ./node/tools/update-npm.sh `npm view npm@latest version` \ No newline at end of file From a65926f1e1ed0c89f36d7d20b585c06800da7714 Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Thu, 13 May 2021 14:57:35 -0700 Subject: [PATCH 37/97] wip: test --- .github/workflows/create-cli-deps-pr.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/create-cli-deps-pr.yml b/.github/workflows/create-cli-deps-pr.yml index 038fd2b238fca2..10088b998d6378 100644 --- a/.github/workflows/create-cli-deps-pr.yml +++ b/.github/workflows/create-cli-deps-pr.yml @@ -14,6 +14,5 @@ jobs: run: | gh repo clone npm/node gh repo clone npm/cli - ls -al - # cd cli && git checkout gimli01/deps-pr + cd cli && git pull origin && git checkout gimli01/deps-pr # ./node/tools/update-npm.sh `npm view npm@latest version` \ No newline at end of file From 7983c9bc9eafbd35746e9ada5c16597e3ba326cf Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Thu, 13 May 2021 15:00:32 -0700 Subject: [PATCH 38/97] wip: test --- .github/workflows/create-cli-deps-pr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/create-cli-deps-pr.yml b/.github/workflows/create-cli-deps-pr.yml index 10088b998d6378..951b17976c3fc7 100644 --- a/.github/workflows/create-cli-deps-pr.yml +++ b/.github/workflows/create-cli-deps-pr.yml @@ -14,5 +14,5 @@ jobs: run: | gh repo clone npm/node gh repo clone npm/cli - cd cli && git pull origin && git checkout gimli01/deps-pr + cd node && git checkout gimli01/deps-pr # ./node/tools/update-npm.sh `npm view npm@latest version` \ No newline at end of file From f25db395411e832caf3da46657a5dced9b3b3745 Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Thu, 13 May 2021 15:04:21 -0700 Subject: [PATCH 39/97] wip: test --- .github/workflows/create-cli-deps-pr.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/create-cli-deps-pr.yml b/.github/workflows/create-cli-deps-pr.yml index 951b17976c3fc7..5d7407af89fa3b 100644 --- a/.github/workflows/create-cli-deps-pr.yml +++ b/.github/workflows/create-cli-deps-pr.yml @@ -15,4 +15,7 @@ jobs: gh repo clone npm/node gh repo clone npm/cli cd node && git checkout gimli01/deps-pr - # ./node/tools/update-npm.sh `npm view npm@latest version` \ No newline at end of file + ./tools/update-npm.sh `npm view npm@latest version` + git add -A deps/npm + git commit -m "deps: upgrade npm to $NPM_VERSION" + git rebase --whitespace=fix master \ No newline at end of file From 1f57dc3e65592de674843c66aef378f254d7fe99 Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Thu, 13 May 2021 15:16:05 -0700 Subject: [PATCH 40/97] wip: test --- .github/workflows/create-cli-deps-pr.yml | 3 +-- tools/update-npm.sh | 12 +++++++----- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/.github/workflows/create-cli-deps-pr.yml b/.github/workflows/create-cli-deps-pr.yml index 5d7407af89fa3b..27d108af0c061b 100644 --- a/.github/workflows/create-cli-deps-pr.yml +++ b/.github/workflows/create-cli-deps-pr.yml @@ -13,9 +13,8 @@ jobs: - name: Update npm/node run: | gh repo clone npm/node - gh repo clone npm/cli cd node && git checkout gimli01/deps-pr ./tools/update-npm.sh `npm view npm@latest version` git add -A deps/npm git commit -m "deps: upgrade npm to $NPM_VERSION" - git rebase --whitespace=fix master \ No newline at end of file + git rebase --whitespace=fix gimli01/deps-pr \ No newline at end of file diff --git a/tools/update-npm.sh b/tools/update-npm.sh index 6d7fadf53eb658..f0ca9ce163a2c7 100755 --- a/tools/update-npm.sh +++ b/tools/update-npm.sh @@ -3,9 +3,8 @@ set -e # Shell script to update npm in the source tree to a specific version BASE_DIR="$( pwd )"/ -NODE_DIR="$BASE_DIR"node/ CLI_DIR="$BASE_DIR"cli/ -DEPS_DIR="$BASE_DIR"node/deps/ +DEPS_DIR="$BASE_DIR"deps/ NPM_VERSION=$1 if [ "$#" -le 0 ]; then @@ -13,8 +12,11 @@ if [ "$#" -le 0 ]; then exit 1 fi +echo "Cloning CLI repo" +gh repo clone npm/cli + echo "Prepping CLI repo for release" -cd "$CLI_DIR" +cd cli git checkout v"$NPM_VERSION" make make release @@ -25,8 +27,8 @@ cd "$DEPS_DIR" rm -rf npm/ echo "Copying new npm" - -tar zxf "$CLI_DIR"release/npm-"$NPM_VERSION".tgz +cd "$BASE_DIR" +tar zxf cli/release/npm-"$NPM_VERSION".tgz echo "" echo "All done!" From 57d93e42ac3196dfcf22683bcac9c51880af8c35 Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Thu, 13 May 2021 15:23:39 -0700 Subject: [PATCH 41/97] wip: test --- .github/workflows/create-cli-deps-pr.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/create-cli-deps-pr.yml b/.github/workflows/create-cli-deps-pr.yml index 27d108af0c061b..dc9a1a15912217 100644 --- a/.github/workflows/create-cli-deps-pr.yml +++ b/.github/workflows/create-cli-deps-pr.yml @@ -15,6 +15,8 @@ jobs: gh repo clone npm/node cd node && git checkout gimli01/deps-pr ./tools/update-npm.sh `npm view npm@latest version` + git config user.name "npm-robot" + git config user.email "ops+robot@npmjs.com" git add -A deps/npm git commit -m "deps: upgrade npm to $NPM_VERSION" git rebase --whitespace=fix gimli01/deps-pr \ No newline at end of file From 5d9ade366b1d05a7d9ad47d55ca1b2184f143c54 Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Thu, 13 May 2021 15:29:04 -0700 Subject: [PATCH 42/97] wip: test --- .github/workflows/create-cli-deps-pr.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/create-cli-deps-pr.yml b/.github/workflows/create-cli-deps-pr.yml index dc9a1a15912217..30fe1aadead85f 100644 --- a/.github/workflows/create-cli-deps-pr.yml +++ b/.github/workflows/create-cli-deps-pr.yml @@ -19,4 +19,5 @@ jobs: git config user.email "ops+robot@npmjs.com" git add -A deps/npm git commit -m "deps: upgrade npm to $NPM_VERSION" - git rebase --whitespace=fix gimli01/deps-pr \ No newline at end of file + git rebase --whitespace=fix gimli01/deps-pr + git push -u origin gimli01/deps-pr \ No newline at end of file From eae9efe86458b3a8dd13e38313f7cfba8ff5aecb Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Thu, 13 May 2021 15:34:57 -0700 Subject: [PATCH 43/97] wip: test --- .github/workflows/create-cli-deps-pr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/create-cli-deps-pr.yml b/.github/workflows/create-cli-deps-pr.yml index 30fe1aadead85f..13d3fffbaddb8a 100644 --- a/.github/workflows/create-cli-deps-pr.yml +++ b/.github/workflows/create-cli-deps-pr.yml @@ -20,4 +20,4 @@ jobs: git add -A deps/npm git commit -m "deps: upgrade npm to $NPM_VERSION" git rebase --whitespace=fix gimli01/deps-pr - git push -u origin gimli01/deps-pr \ No newline at end of file + git push origin gimli01/deps-pr \ No newline at end of file From c075cd1c481749f890ff4e819881685b1925bc36 Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Thu, 13 May 2021 15:38:25 -0700 Subject: [PATCH 44/97] wip: test --- .github/workflows/create-cli-deps-pr.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/create-cli-deps-pr.yml b/.github/workflows/create-cli-deps-pr.yml index 13d3fffbaddb8a..f1708199de1ae7 100644 --- a/.github/workflows/create-cli-deps-pr.yml +++ b/.github/workflows/create-cli-deps-pr.yml @@ -12,6 +12,7 @@ jobs: steps: - name: Update npm/node run: | + gh config set git_protocol ssh gh repo clone npm/node cd node && git checkout gimli01/deps-pr ./tools/update-npm.sh `npm view npm@latest version` From 9f11487e66ce56b9d368e80336323857a47c9b91 Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Thu, 13 May 2021 16:04:51 -0700 Subject: [PATCH 45/97] wip: test --- .github/workflows/create-cli-deps-pr.yml | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/.github/workflows/create-cli-deps-pr.yml b/.github/workflows/create-cli-deps-pr.yml index f1708199de1ae7..cc70377b54dd61 100644 --- a/.github/workflows/create-cli-deps-pr.yml +++ b/.github/workflows/create-cli-deps-pr.yml @@ -10,15 +10,22 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} REPO: ${{ github.repository }} steps: + - name: Checkout npm/node + uses: actions/checkout@v2 + with: + fetch-depth: 0 + ref: gimli01/deps-pr + repository: ${{ github.repository }} - name: Update npm/node run: | - gh config set git_protocol ssh - gh repo clone npm/node - cd node && git checkout gimli01/deps-pr ./tools/update-npm.sh `npm view npm@latest version` git config user.name "npm-robot" git config user.email "ops+robot@npmjs.com" git add -A deps/npm git commit -m "deps: upgrade npm to $NPM_VERSION" git rebase --whitespace=fix gimli01/deps-pr - git push origin gimli01/deps-pr \ No newline at end of file + - name: Push commits + uses: ad-m/github-push-action@master + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + branch: ${{ github.ref }} \ No newline at end of file From 0a1dbcdd1d2b04ebe11de8e990385761cbd510a4 Mon Sep 17 00:00:00 2001 From: npm-robot Date: Thu, 13 May 2021 23:08:04 +0000 Subject: [PATCH 46/97] deps: upgrade npm to --- deps/npm/.eslintrc.json | 207 - deps/npm/.licensee.json | 9 - deps/npm/.mailmap | 77 - deps/npm/.npmignore | 29 - deps/npm/.npmrc | 0 deps/npm/AUTHORS | 741 -- deps/npm/CHANGELOG.md | 1410 --- deps/npm/CONTRIBUTING.md | 191 - deps/npm/LICENSE | 235 - deps/npm/Makefile | 100 - deps/npm/README.md | 161 - deps/npm/bin/node-gyp-bin/node-gyp | 6 - deps/npm/bin/node-gyp-bin/node-gyp.cmd | 5 - deps/npm/bin/npm | 37 - deps/npm/bin/npm-cli.js | 2 - deps/npm/bin/npm.cmd | 19 - deps/npm/bin/npx | 39 - deps/npm/bin/npx-cli.js | 128 - deps/npm/bin/npx.cmd | 20 - deps/npm/changelogs/CHANGELOG-1.md | 743 -- deps/npm/changelogs/CHANGELOG-2.md | 5344 --------- deps/npm/changelogs/CHANGELOG-3.md | 5245 --------- deps/npm/changelogs/CHANGELOG-4.md | 1566 --- deps/npm/changelogs/CHANGELOG-5.md | 2360 ---- deps/npm/changelogs/CHANGELOG-6.md | 2910 ----- deps/npm/configure | 33 - deps/npm/docs/config.json | 5 - deps/npm/docs/content/commands/npm-access.md | 90 - deps/npm/docs/content/commands/npm-adduser.md | 91 - deps/npm/docs/content/commands/npm-audit.md | 194 - deps/npm/docs/content/commands/npm-bin.md | 23 - deps/npm/docs/content/commands/npm-bugs.md | 51 - deps/npm/docs/content/commands/npm-cache.md | 93 - deps/npm/docs/content/commands/npm-ci.md | 71 - .../docs/content/commands/npm-completion.md | 39 - deps/npm/docs/content/commands/npm-config.md | 89 - deps/npm/docs/content/commands/npm-dedupe.md | 79 - .../docs/content/commands/npm-deprecate.md | 37 - .../npm/docs/content/commands/npm-dist-tag.md | 98 - deps/npm/docs/content/commands/npm-docs.md | 51 - deps/npm/docs/content/commands/npm-doctor.md | 107 - deps/npm/docs/content/commands/npm-edit.md | 42 - deps/npm/docs/content/commands/npm-exec.md | 184 - deps/npm/docs/content/commands/npm-explain.md | 73 - deps/npm/docs/content/commands/npm-explore.md | 46 - deps/npm/docs/content/commands/npm-fund.md | 63 - .../docs/content/commands/npm-help-search.md | 39 - deps/npm/docs/content/commands/npm-help.md | 40 - deps/npm/docs/content/commands/npm-hook.md | 86 - deps/npm/docs/content/commands/npm-init.md | 79 - .../content/commands/npm-install-ci-test.md | 23 - .../docs/content/commands/npm-install-test.md | 32 - deps/npm/docs/content/commands/npm-install.md | 549 - deps/npm/docs/content/commands/npm-link.md | 88 - deps/npm/docs/content/commands/npm-logout.md | 50 - deps/npm/docs/content/commands/npm-ls.md | 126 - deps/npm/docs/content/commands/npm-org.md | 61 - .../npm/docs/content/commands/npm-outdated.md | 119 - deps/npm/docs/content/commands/npm-owner.md | 44 - deps/npm/docs/content/commands/npm-pack.md | 34 - deps/npm/docs/content/commands/npm-ping.md | 29 - deps/npm/docs/content/commands/npm-prefix.md | 28 - deps/npm/docs/content/commands/npm-profile.md | 79 - deps/npm/docs/content/commands/npm-prune.md | 43 - deps/npm/docs/content/commands/npm-publish.md | 78 - deps/npm/docs/content/commands/npm-rebuild.md | 22 - deps/npm/docs/content/commands/npm-repo.md | 37 - deps/npm/docs/content/commands/npm-restart.md | 45 - deps/npm/docs/content/commands/npm-root.md | 22 - .../docs/content/commands/npm-run-script.md | 93 - deps/npm/docs/content/commands/npm-search.md | 110 - .../docs/content/commands/npm-set-script.md | 34 - .../docs/content/commands/npm-shrinkwrap.md | 30 - deps/npm/docs/content/commands/npm-star.md | 40 - deps/npm/docs/content/commands/npm-stars.md | 26 - deps/npm/docs/content/commands/npm-start.md | 28 - deps/npm/docs/content/commands/npm-stop.md | 23 - deps/npm/docs/content/commands/npm-team.md | 62 - deps/npm/docs/content/commands/npm-test.md | 25 - deps/npm/docs/content/commands/npm-token.md | 64 - .../docs/content/commands/npm-uninstall.md | 60 - .../docs/content/commands/npm-unpublish.md | 46 - deps/npm/docs/content/commands/npm-unstar.md | 36 - deps/npm/docs/content/commands/npm-update.md | 136 - deps/npm/docs/content/commands/npm-version.md | 130 - deps/npm/docs/content/commands/npm-view.md | 120 - deps/npm/docs/content/commands/npm-whoami.md | 21 - deps/npm/docs/content/commands/npm.md | 165 - deps/npm/docs/content/commands/npx.md | 177 - .../docs/content/configuring-npm/folders.md | 219 - .../docs/content/configuring-npm/install.md | 66 - .../npm/docs/content/configuring-npm/npmrc.md | 99 - .../content/configuring-npm/package-json.md | 965 -- .../configuring-npm/package-lock-json.md | 145 - .../content/configuring-npm/package-locks.md | 178 - .../configuring-npm/shrinkwrap-json.md | 30 - deps/npm/docs/content/using-npm/config.md | 1312 --- deps/npm/docs/content/using-npm/developers.md | 248 - deps/npm/docs/content/using-npm/disputes.md | 133 - deps/npm/docs/content/using-npm/orgs.md | 93 - deps/npm/docs/content/using-npm/registry.md | 103 - deps/npm/docs/content/using-npm/removal.md | 66 - deps/npm/docs/content/using-npm/scope.md | 128 - deps/npm/docs/content/using-npm/scripts.md | 304 - deps/npm/docs/content/using-npm/semver.md | 415 - deps/npm/docs/content/using-npm/workspaces.md | 95 - deps/npm/docs/dockhand.js | 227 - deps/npm/docs/output/commands/npm-access.html | 241 - .../npm/docs/output/commands/npm-adduser.html | 220 - deps/npm/docs/output/commands/npm-audit.html | 291 - deps/npm/docs/output/commands/npm-bin.html | 174 - deps/npm/docs/output/commands/npm-bugs.html | 197 - deps/npm/docs/output/commands/npm-cache.html | 236 - deps/npm/docs/output/commands/npm-ci.html | 212 - .../docs/output/commands/npm-completion.html | 185 - deps/npm/docs/output/commands/npm-config.html | 214 - deps/npm/docs/output/commands/npm-dedupe.html | 214 - .../docs/output/commands/npm-deprecate.html | 183 - .../docs/output/commands/npm-dist-tag.html | 234 - deps/npm/docs/output/commands/npm-docs.html | 197 - deps/npm/docs/output/commands/npm-doctor.html | 243 - deps/npm/docs/output/commands/npm-edit.html | 189 - deps/npm/docs/output/commands/npm-exec.html | 300 - .../npm/docs/output/commands/npm-explain.html | 215 - .../npm/docs/output/commands/npm-explore.html | 190 - deps/npm/docs/output/commands/npm-fund.html | 208 - .../docs/output/commands/npm-help-search.html | 185 - deps/npm/docs/output/commands/npm-help.html | 187 - deps/npm/docs/output/commands/npm-hook.html | 209 - deps/npm/docs/output/commands/npm-init.html | 213 - .../output/commands/npm-install-ci-test.html | 174 - .../output/commands/npm-install-test.html | 183 - .../npm/docs/output/commands/npm-install.html | 641 -- deps/npm/docs/output/commands/npm-link.html | 217 - deps/npm/docs/output/commands/npm-logout.html | 190 - deps/npm/docs/output/commands/npm-ls.html | 258 - deps/npm/docs/output/commands/npm-org.html | 193 - .../docs/output/commands/npm-outdated.html | 259 - deps/npm/docs/output/commands/npm-owner.html | 194 - deps/npm/docs/output/commands/npm-pack.html | 182 - deps/npm/docs/output/commands/npm-ping.html | 177 - deps/npm/docs/output/commands/npm-prefix.html | 178 - .../npm/docs/output/commands/npm-profile.html | 235 - deps/npm/docs/output/commands/npm-prune.html | 188 - .../npm/docs/output/commands/npm-publish.html | 232 - .../npm/docs/output/commands/npm-rebuild.html | 173 - deps/npm/docs/output/commands/npm-repo.html | 184 - .../npm/docs/output/commands/npm-restart.html | 193 - deps/npm/docs/output/commands/npm-root.html | 174 - .../docs/output/commands/npm-run-script.html | 226 - deps/npm/docs/output/commands/npm-search.html | 248 - .../docs/output/commands/npm-set-script.html | 184 - .../docs/output/commands/npm-shrinkwrap.html | 181 - deps/npm/docs/output/commands/npm-star.html | 183 - deps/npm/docs/output/commands/npm-stars.html | 177 - deps/npm/docs/output/commands/npm-start.html | 178 - deps/npm/docs/output/commands/npm-stop.html | 174 - deps/npm/docs/output/commands/npm-team.html | 213 - deps/npm/docs/output/commands/npm-test.html | 176 - deps/npm/docs/output/commands/npm-token.html | 215 - .../docs/output/commands/npm-uninstall.html | 208 - .../docs/output/commands/npm-unpublish.html | 187 - deps/npm/docs/output/commands/npm-unstar.html | 181 - deps/npm/docs/output/commands/npm-update.html | 252 - .../npm/docs/output/commands/npm-version.html | 263 - deps/npm/docs/output/commands/npm-view.html | 235 - deps/npm/docs/output/commands/npm-whoami.html | 172 - deps/npm/docs/output/commands/npm.html | 291 - deps/npm/docs/output/commands/npx.html | 294 - .../docs/output/configuring-npm/folders.html | 321 - .../docs/output/configuring-npm/install.html | 203 - .../docs/output/configuring-npm/npmrc.html | 227 - .../output/configuring-npm/package-json.html | 866 -- .../configuring-npm/package-lock-json.html | 273 - .../output/configuring-npm/package-locks.html | 310 - .../configuring-npm/shrinkwrap-json.html | 181 - deps/npm/docs/output/using-npm/config.html | 1267 --- .../npm/docs/output/using-npm/developers.html | 356 - deps/npm/docs/output/using-npm/disputes.html | 285 - deps/npm/docs/output/using-npm/orgs.html | 236 - deps/npm/docs/output/using-npm/registry.html | 235 - deps/npm/docs/output/using-npm/removal.html | 200 - deps/npm/docs/output/using-npm/scope.html | 243 - deps/npm/docs/output/using-npm/scripts.html | 408 - deps/npm/docs/output/using-npm/semver.html | 521 - .../npm/docs/output/using-npm/workspaces.html | 228 - deps/npm/docs/template.html | 161 - deps/npm/lib/access.js | 188 - deps/npm/lib/adduser.js | 78 - deps/npm/lib/audit.js | 55 - deps/npm/lib/auth/legacy.js | 100 - deps/npm/lib/auth/oauth.js | 9 - deps/npm/lib/auth/saml.js | 9 - deps/npm/lib/auth/sso.js | 85 - deps/npm/lib/bin.js | 14 - deps/npm/lib/birthday.js | 21 - deps/npm/lib/bugs.js | 47 - deps/npm/lib/cache.js | 121 - deps/npm/lib/ci.js | 41 - deps/npm/lib/cli.js | 65 - deps/npm/lib/completion.js | 293 - deps/npm/lib/config.js | 236 - deps/npm/lib/dedupe.js | 24 - deps/npm/lib/deprecate.js | 76 - deps/npm/lib/dist-tag.js | 160 - deps/npm/lib/docs.js | 40 - deps/npm/lib/doctor.js | 282 - deps/npm/lib/edit.js | 52 - deps/npm/lib/exec.js | 278 - deps/npm/lib/explain.js | 93 - deps/npm/lib/explore.js | 69 - deps/npm/lib/find-dupes.js | 9 - deps/npm/lib/fund.js | 210 - deps/npm/lib/get.js | 14 - deps/npm/lib/help-search.js | 208 - deps/npm/lib/help.js | 179 - deps/npm/lib/hook.js | 130 - deps/npm/lib/init.js | 90 - deps/npm/lib/install-ci-test.js | 19 - deps/npm/lib/install-test.js | 19 - deps/npm/lib/install.js | 144 - deps/npm/lib/link.js | 148 - deps/npm/lib/ll.js | 6 - deps/npm/lib/logout.js | 47 - deps/npm/lib/ls.js | 497 - deps/npm/lib/npm.js | 309 - deps/npm/lib/org.js | 141 - deps/npm/lib/outdated.js | 273 - deps/npm/lib/owner.js | 244 - deps/npm/lib/pack.js | 50 - deps/npm/lib/ping.js | 28 - deps/npm/lib/prefix.js | 8 - deps/npm/lib/profile.js | 349 - deps/npm/lib/prune.js | 25 - deps/npm/lib/publish.js | 127 - deps/npm/lib/rebuild.js | 58 - deps/npm/lib/repo.js | 71 - deps/npm/lib/restart.js | 1 - deps/npm/lib/root.js | 8 - deps/npm/lib/run-script.js | 146 - deps/npm/lib/search.js | 86 - deps/npm/lib/search/format-package-stream.js | 191 - deps/npm/lib/search/package-filter.js | 43 - deps/npm/lib/set-script.js | 55 - deps/npm/lib/set.js | 14 - deps/npm/lib/shrinkwrap.js | 53 - deps/npm/lib/star.js | 77 - deps/npm/lib/stars.js | 38 - deps/npm/lib/start.js | 1 - deps/npm/lib/stop.js | 1 - deps/npm/lib/team.js | 145 - deps/npm/lib/test.js | 11 - deps/npm/lib/token.js | 236 - deps/npm/lib/uninstall.js | 52 - deps/npm/lib/unpublish.js | 114 - deps/npm/lib/unstar.js | 9 - deps/npm/lib/update.js | 41 - deps/npm/lib/utils/ansi-trim.js | 7 - deps/npm/lib/utils/audit-error.js | 36 - deps/npm/lib/utils/cache-file.js | 66 - deps/npm/lib/utils/child-path.js | 10 - deps/npm/lib/utils/cleanup-log-files.js | 32 - deps/npm/lib/utils/cmd-list.js | 144 - deps/npm/lib/utils/completion.sh | 61 - .../lib/utils/completion/file-completion.js | 23 - .../lib/utils/completion/installed-deep.js | 45 - .../lib/utils/completion/installed-shallow.js | 19 - deps/npm/lib/utils/completion/none.js | 2 - deps/npm/lib/utils/config.js | 380 - deps/npm/lib/utils/deep-sort-object.js | 15 - deps/npm/lib/utils/deref-command.js | 27 - deps/npm/lib/utils/did-you-mean.js | 12 - deps/npm/lib/utils/error-handler.js | 224 - deps/npm/lib/utils/error-message.js | 381 - deps/npm/lib/utils/explain-dep.js | 98 - deps/npm/lib/utils/explain-eresolve.js | 69 - deps/npm/lib/utils/file-exists.js | 8 - deps/npm/lib/utils/flat-options.js | 239 - deps/npm/lib/utils/get-identity.js | 39 - deps/npm/lib/utils/get-project-scope.js | 17 - deps/npm/lib/utils/git.js | 57 - .../utils/hosted-git-info-from-manifest.js | 14 - deps/npm/lib/utils/is-windows-bash.js | 4 - deps/npm/lib/utils/is-windows-shell.js | 4 - deps/npm/lib/utils/is-windows.js | 2 - deps/npm/lib/utils/lifecycle-cmd.js | 12 - deps/npm/lib/utils/metrics-launch.js | 44 - deps/npm/lib/utils/metrics.js | 81 - deps/npm/lib/utils/module-name.js | 39 - .../lib/utils/no-progress-while-running.js | 26 - deps/npm/lib/utils/npm-usage.js | 83 - deps/npm/lib/utils/open-url.js | 46 - deps/npm/lib/utils/otplease.js | 22 - deps/npm/lib/utils/output.js | 7 - deps/npm/lib/utils/path.js | 4 - deps/npm/lib/utils/perf.js | 16 - deps/npm/lib/utils/ping.js | 7 - deps/npm/lib/utils/proc-log-listener.js | 16 - deps/npm/lib/utils/pulse-till-done.js | 44 - deps/npm/lib/utils/read-local-package.js | 15 - deps/npm/lib/utils/read-user-info.js | 72 - deps/npm/lib/utils/reify-finish.js | 31 - deps/npm/lib/utils/reify-output.js | 154 - deps/npm/lib/utils/replace-info.js | 33 - deps/npm/lib/utils/setup-log.js | 64 - deps/npm/lib/utils/spawn.js | 58 - deps/npm/lib/utils/tar.js | 112 - deps/npm/lib/utils/unsupported.js | 33 - deps/npm/lib/utils/update-notifier.js | 115 - deps/npm/lib/utils/usage.js | 30 - deps/npm/lib/version.js | 72 - deps/npm/lib/view.js | 449 - deps/npm/lib/whoami.js | 17 - deps/npm/make.bat | 3 - deps/npm/man/man1/npm-access.1 | 101 - deps/npm/man/man1/npm-adduser.1 | 98 - deps/npm/man/man1/npm-audit.1 | 212 - deps/npm/man/man1/npm-bin.1 | 27 - deps/npm/man/man1/npm-bugs.1 | 62 - deps/npm/man/man1/npm-cache.1 | 101 - deps/npm/man/man1/npm-ci.1 | 88 - deps/npm/man/man1/npm-completion.1 | 42 - deps/npm/man/man1/npm-config.1 | 97 - deps/npm/man/man1/npm-dedupe.1 | 87 - deps/npm/man/man1/npm-deprecate.1 | 42 - deps/npm/man/man1/npm-dist-tag.1 | 108 - deps/npm/man/man1/npm-docs.1 | 61 - deps/npm/man/man1/npm-doctor.1 | 113 - deps/npm/man/man1/npm-edit.1 | 48 - deps/npm/man/man1/npm-exec.1 | 220 - deps/npm/man/man1/npm-explain.1 | 87 - deps/npm/man/man1/npm-explore.1 | 54 - deps/npm/man/man1/npm-fund.1 | 77 - deps/npm/man/man1/npm-help-search.1 | 42 - deps/npm/man/man1/npm-help.1 | 47 - deps/npm/man/man1/npm-hook.1 | 99 - deps/npm/man/man1/npm-init.1 | 94 - deps/npm/man/man1/npm-install-ci-test.1 | 25 - deps/npm/man/man1/npm-install-test.1 | 34 - deps/npm/man/man1/npm-install.1 | 597 - deps/npm/man/man1/npm-link.1 | 101 - deps/npm/man/man1/npm-logout.1 | 52 - deps/npm/man/man1/npm-ls.1 | 163 - deps/npm/man/man1/npm-org.1 | 72 - deps/npm/man/man1/npm-outdated.1 | 156 - deps/npm/man/man1/npm-owner.1 | 52 - deps/npm/man/man1/npm-pack.1 | 37 - deps/npm/man/man1/npm-ping.1 | 36 - deps/npm/man/man1/npm-prefix.1 | 32 - deps/npm/man/man1/npm-profile.1 | 91 - deps/npm/man/man1/npm-prune.1 | 45 - deps/npm/man/man1/npm-publish.1 | 88 - deps/npm/man/man1/npm-rebuild.1 | 23 - deps/npm/man/man1/npm-repo.1 | 40 - deps/npm/man/man1/npm-restart.1 | 60 - deps/npm/man/man1/npm-root.1 | 27 - deps/npm/man/man1/npm-run-script.1 | 104 - deps/npm/man/man1/npm-search.1 | 135 - deps/npm/man/man1/npm-set-script.1 | 43 - deps/npm/man/man1/npm-shrinkwrap.1 | 37 - deps/npm/man/man1/npm-star.1 | 41 - deps/npm/man/man1/npm-stars.1 | 31 - deps/npm/man/man1/npm-start.1 | 32 - deps/npm/man/man1/npm-stop.1 | 27 - deps/npm/man/man1/npm-team.1 | 66 - deps/npm/man/man1/npm-test.1 | 29 - deps/npm/man/man1/npm-token.1 | 76 - deps/npm/man/man1/npm-uninstall.1 | 72 - deps/npm/man/man1/npm-unpublish.1 | 48 - deps/npm/man/man1/npm-unstar.1 | 37 - deps/npm/man/man1/npm-update.1 | 144 - deps/npm/man/man1/npm-version.1 | 161 - deps/npm/man/man1/npm-view.1 | 143 - deps/npm/man/man1/npm-whoami.1 | 23 - deps/npm/man/man1/npm.1 | 185 - deps/npm/man/man1/npx.1 | 213 - deps/npm/man/man5/folders.5 | 224 - deps/npm/man/man5/install.5 | 73 - deps/npm/man/man5/npmrc.5 | 108 - deps/npm/man/man5/package-json.5 | 1070 -- deps/npm/man/man5/package-lock-json.5 | 152 - deps/npm/man/man5/package-locks.5 | 200 - deps/npm/man/man5/shrinkwrap-json.5 | 32 - deps/npm/man/man7/config.7 | 1758 --- deps/npm/man/man7/developers.7 | 291 - deps/npm/man/man7/disputes.7 | 149 - deps/npm/man/man7/orgs.7 | 146 - deps/npm/man/man7/registry.7 | 104 - deps/npm/man/man7/removal.7 | 75 - deps/npm/man/man7/scope.7 | 136 - deps/npm/man/man7/scripts.7 | 374 - deps/npm/man/man7/semver.7 | 510 - deps/npm/man/man7/workspaces.7 | 100 - .../@npmcli/arborist/CHANGELOG.md | 19 - .../npm/node_modules/@npmcli/arborist/LICENSE | 22 - .../node_modules/@npmcli/arborist/README.md | 335 - .../@npmcli/arborist/lib/add-rm-pkg-deps.js | 133 - .../@npmcli/arborist/lib/arborist/audit.js | 30 - .../arborist/lib/arborist/build-ideal-tree.js | 1652 --- .../@npmcli/arborist/lib/arborist/deduper.js | 18 - .../@npmcli/arborist/lib/arborist/index.js | 63 - .../arborist/lib/arborist/load-actual.js | 384 - .../arborist/lib/arborist/load-virtual.js | 275 - .../arborist/lib/arborist/load-workspaces.js | 31 - .../@npmcli/arborist/lib/arborist/pruner.js | 15 - .../@npmcli/arborist/lib/arborist/rebuild.js | 333 - .../@npmcli/arborist/lib/arborist/reify.js | 881 -- .../@npmcli/arborist/lib/audit-report.js | 383 - .../@npmcli/arborist/lib/calc-dep-flags.js | 94 - .../arborist/lib/consistent-resolve.js | 35 - .../@npmcli/arborist/lib/debug.js | 24 - .../@npmcli/arborist/lib/dep-spec.js | 43 - .../@npmcli/arborist/lib/dep-valid.js | 130 - .../node_modules/@npmcli/arborist/lib/diff.js | 166 - .../node_modules/@npmcli/arborist/lib/edge.js | 198 - .../@npmcli/arborist/lib/from-path.js | 13 - .../@npmcli/arborist/lib/gather-dep-set.js | 42 - .../@npmcli/arborist/lib/index.js | 6 - .../@npmcli/arborist/lib/inventory.js | 103 - .../node_modules/@npmcli/arborist/lib/link.js | 134 - .../node_modules/@npmcli/arborist/lib/node.js | 1150 -- .../@npmcli/arborist/lib/optional-set.js | 36 - .../@npmcli/arborist/lib/peer-set.js | 25 - .../@npmcli/arborist/lib/proc-log.js | 21 - .../@npmcli/arborist/lib/realpath.js | 92 - .../@npmcli/arborist/lib/relpath.js | 3 - .../@npmcli/arborist/lib/reset-dep-flags.js | 15 - .../@npmcli/arborist/lib/retire-path.js | 19 - .../@npmcli/arborist/lib/shrinkwrap.js | 951 -- .../@npmcli/arborist/lib/spec-from-lock.js | 29 - .../@npmcli/arborist/lib/tracker.js | 104 - .../@npmcli/arborist/lib/tree-check.js | 104 - .../arborist/lib/update-root-package-json.js | 48 - .../@npmcli/arborist/lib/version-from-tgz.js | 46 - .../node_modules/@npmcli/arborist/lib/vuln.js | 189 - .../@npmcli/arborist/lib/yarn-lock.js | 336 - .../@npmcli/arborist/package.json | 81 - .../node_modules/@npmcli/ci-detect/LICENSE | 15 - .../node_modules/@npmcli/ci-detect/README.md | 80 - .../node_modules/@npmcli/ci-detect/index.js | 44 - .../@npmcli/ci-detect/package.json | 26 - deps/npm/node_modules/@npmcli/config/LICENSE | 15 - .../npm/node_modules/@npmcli/config/README.md | 224 - .../@npmcli/config/lib/env-replace.js | 13 - .../@npmcli/config/lib/get-user-agent.js | 13 - .../node_modules/@npmcli/config/lib/index.js | 758 -- .../@npmcli/config/lib/nerf-dart.js | 18 - .../@npmcli/config/lib/parse-field.js | 75 - .../@npmcli/config/lib/proc-log.js | 4 - .../@npmcli/config/lib/set-envs.js | 100 - .../@npmcli/config/lib/type-defs.js | 57 - .../@npmcli/config/lib/type-description.js | 18 - .../node_modules/@npmcli/config/lib/umask.js | 28 - .../node_modules/@npmcli/config/package.json | 39 - deps/npm/node_modules/@npmcli/git/LICENSE | 15 - deps/npm/node_modules/@npmcli/git/README.md | 157 - .../npm/node_modules/@npmcli/git/lib/clone.js | 143 - deps/npm/node_modules/@npmcli/git/lib/env.js | 33 - deps/npm/node_modules/@npmcli/git/lib/find.js | 7 - .../npm/node_modules/@npmcli/git/lib/index.js | 8 - .../node_modules/@npmcli/git/lib/is-clean.js | 6 - deps/npm/node_modules/@npmcli/git/lib/is.js | 6 - .../@npmcli/git/lib/lines-to-revs.js | 133 - deps/npm/node_modules/@npmcli/git/lib/opts.js | 6 - .../node_modules/@npmcli/git/lib/proc-log.js | 21 - deps/npm/node_modules/@npmcli/git/lib/revs.js | 24 - .../@npmcli/git/lib/should-retry.js | 17 - .../npm/node_modules/@npmcli/git/lib/spawn.js | 33 - .../npm/node_modules/@npmcli/git/lib/which.js | 11 - .../npm/node_modules/@npmcli/git/package.json | 41 - .../installed-package-contents/LICENSE | 15 - .../installed-package-contents/README.md | 109 - .../installed-package-contents/index.js | 224 - .../installed-package-contents/package.json | 35 - .../@npmcli/map-workspaces/CHANGELOG.md | 6 - .../@npmcli/map-workspaces/LICENSE | 15 - .../@npmcli/map-workspaces/README.md | 83 - .../@npmcli/map-workspaces/index.js | 190 - .../@npmcli/map-workspaces/package.json | 57 - .../@npmcli/metavuln-calculator/LICENSE | 15 - .../@npmcli/metavuln-calculator/README.md | 289 - .../metavuln-calculator/lib/advisory.js | 295 - .../metavuln-calculator/lib/get-dep-spec.js | 13 - .../@npmcli/metavuln-calculator/lib/hash.js | 5 - .../@npmcli/metavuln-calculator/lib/index.js | 124 - .../@npmcli/metavuln-calculator/package.json | 32 - .../node_modules/@npmcli/move-file/LICENSE.md | 22 - .../node_modules/@npmcli/move-file/README.md | 68 - .../node_modules/@npmcli/move-file/index.js | 93 - .../@npmcli/move-file/package.json | 33 - .../@npmcli/name-from-folder/LICENSE | 15 - .../@npmcli/name-from-folder/README.md | 14 - .../@npmcli/name-from-folder/index.js | 7 - .../@npmcli/name-from-folder/package.json | 27 - .../@npmcli/node-gyp/lib/index.js | 13 - .../@npmcli/node-gyp/package.json | 30 - .../@npmcli/promise-spawn/LICENSE | 15 - .../@npmcli/promise-spawn/README.md | 66 - .../@npmcli/promise-spawn/index.js | 75 - .../@npmcli/promise-spawn/package.json | 32 - .../node_modules/@npmcli/run-script/LICENSE | 15 - .../node_modules/@npmcli/run-script/README.md | 149 - .../run-script/lib/is-server-package.js | 10 - .../@npmcli/run-script/lib/is-windows.js | 2 - .../@npmcli/run-script/lib/make-spawn-args.js | 58 - .../run-script/lib/node-gyp-bin/node-gyp | 2 - .../run-script/lib/node-gyp-bin/node-gyp.cmd | 1 - .../@npmcli/run-script/lib/package-envs.js | 25 - .../@npmcli/run-script/lib/run-script-pkg.js | 88 - .../@npmcli/run-script/lib/run-script.js | 13 - .../@npmcli/run-script/lib/set-path.js | 44 - .../@npmcli/run-script/lib/signal-manager.js | 46 - .../run-script/lib/validate-options.js | 31 - .../@npmcli/run-script/package.json | 47 - .../@tootallnate/once/dist/index.d.ts | 14 - .../@tootallnate/once/dist/index.js | 39 - .../@tootallnate/once/dist/index.js.map | 1 - .../@tootallnate/once/package.json | 45 - deps/npm/node_modules/abbrev/LICENSE | 46 - deps/npm/node_modules/abbrev/README.md | 23 - deps/npm/node_modules/abbrev/abbrev.js | 61 - deps/npm/node_modules/abbrev/package.json | 21 - deps/npm/node_modules/agent-base/README.md | 145 - .../agent-base/dist/src/index.d.ts | 78 - .../node_modules/agent-base/dist/src/index.js | 203 - .../agent-base/dist/src/index.js.map | 1 - .../agent-base/dist/src/promisify.d.ts | 4 - .../agent-base/dist/src/promisify.js | 18 - .../agent-base/dist/src/promisify.js.map | 1 - deps/npm/node_modules/agent-base/package.json | 64 - deps/npm/node_modules/agent-base/src/index.ts | 345 - .../node_modules/agent-base/src/promisify.ts | 33 - .../node_modules/agentkeepalive/History.md | 227 - deps/npm/node_modules/agentkeepalive/LICENSE | 23 - .../npm/node_modules/agentkeepalive/README.md | 241 - .../node_modules/agentkeepalive/browser.js | 5 - .../node_modules/agentkeepalive/index.d.ts | 62 - deps/npm/node_modules/agentkeepalive/index.js | 5 - .../node_modules/agentkeepalive/lib/agent.js | 397 - .../agentkeepalive/lib/constants.js | 14 - .../agentkeepalive/lib/https_agent.js | 51 - .../node_modules/agentkeepalive/package.json | 66 - .../node_modules/aggregate-error/index.d.ts | 51 - .../npm/node_modules/aggregate-error/index.js | 47 - deps/npm/node_modules/aggregate-error/license | 9 - .../node_modules/aggregate-error/package.json | 41 - .../node_modules/aggregate-error/readme.md | 61 - deps/npm/node_modules/ajv/.tonic_example.js | 20 - deps/npm/node_modules/ajv/LICENSE | 22 - deps/npm/node_modules/ajv/README.md | 1497 --- deps/npm/node_modules/ajv/dist/ajv.bundle.js | 7189 ------------ deps/npm/node_modules/ajv/dist/ajv.min.js | 3 - deps/npm/node_modules/ajv/dist/ajv.min.js.map | 1 - deps/npm/node_modules/ajv/lib/ajv.d.ts | 397 - deps/npm/node_modules/ajv/lib/ajv.js | 506 - deps/npm/node_modules/ajv/lib/cache.js | 26 - .../npm/node_modules/ajv/lib/compile/async.js | 90 - .../npm/node_modules/ajv/lib/compile/equal.js | 5 - .../ajv/lib/compile/error_classes.js | 34 - .../node_modules/ajv/lib/compile/formats.js | 142 - .../npm/node_modules/ajv/lib/compile/index.js | 387 - .../node_modules/ajv/lib/compile/resolve.js | 270 - .../npm/node_modules/ajv/lib/compile/rules.js | 66 - .../ajv/lib/compile/schema_obj.js | 9 - .../ajv/lib/compile/ucs2length.js | 20 - deps/npm/node_modules/ajv/lib/compile/util.js | 239 - deps/npm/node_modules/ajv/lib/data.js | 49 - .../node_modules/ajv/lib/definition_schema.js | 37 - deps/npm/node_modules/ajv/lib/dot/_limit.jst | 113 - .../node_modules/ajv/lib/dot/_limitItems.jst | 12 - .../node_modules/ajv/lib/dot/_limitLength.jst | 12 - .../ajv/lib/dot/_limitProperties.jst | 12 - deps/npm/node_modules/ajv/lib/dot/allOf.jst | 32 - deps/npm/node_modules/ajv/lib/dot/anyOf.jst | 46 - deps/npm/node_modules/ajv/lib/dot/coerce.def | 51 - deps/npm/node_modules/ajv/lib/dot/comment.jst | 9 - deps/npm/node_modules/ajv/lib/dot/const.jst | 11 - .../npm/node_modules/ajv/lib/dot/contains.jst | 55 - deps/npm/node_modules/ajv/lib/dot/custom.jst | 191 - .../npm/node_modules/ajv/lib/dot/defaults.def | 47 - .../node_modules/ajv/lib/dot/definitions.def | 203 - .../node_modules/ajv/lib/dot/dependencies.jst | 79 - deps/npm/node_modules/ajv/lib/dot/enum.jst | 30 - deps/npm/node_modules/ajv/lib/dot/errors.def | 194 - deps/npm/node_modules/ajv/lib/dot/format.jst | 106 - deps/npm/node_modules/ajv/lib/dot/if.jst | 73 - deps/npm/node_modules/ajv/lib/dot/items.jst | 98 - deps/npm/node_modules/ajv/lib/dot/missing.def | 39 - .../node_modules/ajv/lib/dot/multipleOf.jst | 22 - deps/npm/node_modules/ajv/lib/dot/not.jst | 43 - deps/npm/node_modules/ajv/lib/dot/oneOf.jst | 54 - deps/npm/node_modules/ajv/lib/dot/pattern.jst | 14 - .../node_modules/ajv/lib/dot/properties.jst | 245 - .../ajv/lib/dot/propertyNames.jst | 52 - deps/npm/node_modules/ajv/lib/dot/ref.jst | 85 - .../npm/node_modules/ajv/lib/dot/required.jst | 108 - .../node_modules/ajv/lib/dot/uniqueItems.jst | 62 - .../npm/node_modules/ajv/lib/dot/validate.jst | 276 - deps/npm/node_modules/ajv/lib/dotjs/README.md | 3 - deps/npm/node_modules/ajv/lib/dotjs/_limit.js | 163 - .../node_modules/ajv/lib/dotjs/_limitItems.js | 80 - .../ajv/lib/dotjs/_limitLength.js | 85 - .../ajv/lib/dotjs/_limitProperties.js | 80 - deps/npm/node_modules/ajv/lib/dotjs/allOf.js | 42 - deps/npm/node_modules/ajv/lib/dotjs/anyOf.js | 73 - .../npm/node_modules/ajv/lib/dotjs/comment.js | 14 - deps/npm/node_modules/ajv/lib/dotjs/const.js | 56 - .../node_modules/ajv/lib/dotjs/contains.js | 81 - deps/npm/node_modules/ajv/lib/dotjs/custom.js | 228 - .../ajv/lib/dotjs/dependencies.js | 168 - deps/npm/node_modules/ajv/lib/dotjs/enum.js | 66 - deps/npm/node_modules/ajv/lib/dotjs/format.js | 150 - deps/npm/node_modules/ajv/lib/dotjs/if.js | 103 - deps/npm/node_modules/ajv/lib/dotjs/index.js | 33 - deps/npm/node_modules/ajv/lib/dotjs/items.js | 140 - .../node_modules/ajv/lib/dotjs/multipleOf.js | 80 - deps/npm/node_modules/ajv/lib/dotjs/not.js | 84 - deps/npm/node_modules/ajv/lib/dotjs/oneOf.js | 73 - .../npm/node_modules/ajv/lib/dotjs/pattern.js | 75 - .../node_modules/ajv/lib/dotjs/properties.js | 335 - .../ajv/lib/dotjs/propertyNames.js | 81 - deps/npm/node_modules/ajv/lib/dotjs/ref.js | 124 - .../node_modules/ajv/lib/dotjs/required.js | 270 - .../node_modules/ajv/lib/dotjs/uniqueItems.js | 86 - .../node_modules/ajv/lib/dotjs/validate.js | 482 - deps/npm/node_modules/ajv/lib/keyword.js | 146 - deps/npm/node_modules/ajv/lib/refs/data.json | 17 - .../ajv/lib/refs/json-schema-draft-04.json | 149 - .../ajv/lib/refs/json-schema-draft-06.json | 154 - .../ajv/lib/refs/json-schema-draft-07.json | 168 - .../ajv/lib/refs/json-schema-secure.json | 94 - deps/npm/node_modules/ajv/package.json | 106 - .../node_modules/ajv/scripts/.eslintrc.yml | 3 - deps/npm/node_modules/ajv/scripts/bundle.js | 61 - .../node_modules/ajv/scripts/compile-dots.js | 73 - deps/npm/node_modules/ajv/scripts/info | 10 - .../node_modules/ajv/scripts/prepare-tests | 12 - .../ajv/scripts/publish-built-version | 32 - .../node_modules/ajv/scripts/travis-gh-pages | 23 - deps/npm/node_modules/ansi-regex/index.js | 4 - deps/npm/node_modules/ansi-regex/license | 21 - deps/npm/node_modules/ansi-regex/package.json | 64 - deps/npm/node_modules/ansi-regex/readme.md | 39 - deps/npm/node_modules/ansi-styles/index.d.ts | 345 - deps/npm/node_modules/ansi-styles/index.js | 163 - deps/npm/node_modules/ansi-styles/license | 9 - .../npm/node_modules/ansi-styles/package.json | 56 - deps/npm/node_modules/ansi-styles/readme.md | 152 - deps/npm/node_modules/ansicolors/LICENSE | 23 - deps/npm/node_modules/ansicolors/README.md | 62 - .../npm/node_modules/ansicolors/ansicolors.js | 65 - deps/npm/node_modules/ansicolors/package.json | 23 - .../ansicolors/test/ansicolors.js | 71 - deps/npm/node_modules/ansistyles/LICENSE | 23 - deps/npm/node_modules/ansistyles/README.md | 71 - .../npm/node_modules/ansistyles/ansistyles.js | 38 - deps/npm/node_modules/ansistyles/package.json | 23 - .../ansistyles/test/ansistyles.js | 15 - deps/npm/node_modules/aproba/CHANGELOG.md | 4 - deps/npm/node_modules/aproba/LICENSE | 14 - deps/npm/node_modules/aproba/README.md | 94 - deps/npm/node_modules/aproba/index.js | 105 - deps/npm/node_modules/aproba/package.json | 35 - deps/npm/node_modules/archy/.travis.yml | 4 - deps/npm/node_modules/archy/LICENSE | 18 - deps/npm/node_modules/archy/README.markdown | 88 - deps/npm/node_modules/archy/examples/beep.js | 24 - .../node_modules/archy/examples/multi_line.js | 25 - deps/npm/node_modules/archy/index.js | 35 - deps/npm/node_modules/archy/package.json | 40 - deps/npm/node_modules/archy/test/beep.js | 40 - .../npm/node_modules/archy/test/multi_line.js | 45 - .../node_modules/archy/test/non_unicode.js | 40 - .../node_modules/are-we-there-yet/CHANGES.md | 37 - .../npm/node_modules/are-we-there-yet/LICENSE | 5 - .../node_modules/are-we-there-yet/README.md | 195 - .../node_modules/are-we-there-yet/index.js | 4 - .../are-we-there-yet/package.json | 35 - .../are-we-there-yet/tracker-base.js | 11 - .../are-we-there-yet/tracker-group.js | 107 - .../are-we-there-yet/tracker-stream.js | 36 - .../node_modules/are-we-there-yet/tracker.js | 30 - deps/npm/node_modules/asap/CHANGES.md | 70 - deps/npm/node_modules/asap/LICENSE.md | 21 - deps/npm/node_modules/asap/README.md | 237 - deps/npm/node_modules/asap/asap.js | 65 - deps/npm/node_modules/asap/browser-asap.js | 66 - deps/npm/node_modules/asap/browser-raw.js | 223 - deps/npm/node_modules/asap/package.json | 58 - deps/npm/node_modules/asap/raw.js | 101 - deps/npm/node_modules/asn1/LICENSE | 19 - deps/npm/node_modules/asn1/README.md | 50 - deps/npm/node_modules/asn1/lib/ber/errors.js | 13 - deps/npm/node_modules/asn1/lib/ber/index.js | 27 - deps/npm/node_modules/asn1/lib/ber/reader.js | 262 - deps/npm/node_modules/asn1/lib/ber/types.js | 36 - deps/npm/node_modules/asn1/lib/ber/writer.js | 317 - deps/npm/node_modules/asn1/lib/index.js | 20 - deps/npm/node_modules/asn1/package.json | 31 - deps/npm/node_modules/assert-plus/AUTHORS | 6 - deps/npm/node_modules/assert-plus/CHANGES.md | 14 - deps/npm/node_modules/assert-plus/README.md | 162 - deps/npm/node_modules/assert-plus/assert.js | 211 - .../npm/node_modules/assert-plus/package.json | 23 - deps/npm/node_modules/asynckit/LICENSE | 21 - deps/npm/node_modules/asynckit/README.md | 233 - deps/npm/node_modules/asynckit/bench.js | 76 - deps/npm/node_modules/asynckit/index.js | 6 - deps/npm/node_modules/asynckit/lib/abort.js | 29 - deps/npm/node_modules/asynckit/lib/async.js | 34 - deps/npm/node_modules/asynckit/lib/defer.js | 26 - deps/npm/node_modules/asynckit/lib/iterate.js | 75 - .../asynckit/lib/readable_asynckit.js | 91 - .../asynckit/lib/readable_parallel.js | 25 - .../asynckit/lib/readable_serial.js | 25 - .../asynckit/lib/readable_serial_ordered.js | 29 - deps/npm/node_modules/asynckit/lib/state.js | 37 - .../node_modules/asynckit/lib/streamify.js | 141 - .../node_modules/asynckit/lib/terminator.js | 29 - deps/npm/node_modules/asynckit/package.json | 63 - deps/npm/node_modules/asynckit/parallel.js | 43 - deps/npm/node_modules/asynckit/serial.js | 17 - .../node_modules/asynckit/serialOrdered.js | 75 - deps/npm/node_modules/asynckit/stream.js | 21 - deps/npm/node_modules/aws-sign2/LICENSE | 55 - deps/npm/node_modules/aws-sign2/README.md | 4 - deps/npm/node_modules/aws-sign2/index.js | 212 - deps/npm/node_modules/aws-sign2/package.json | 17 - .../npm/node_modules/aws4/.github/FUNDING.yml | 3 - deps/npm/node_modules/aws4/.travis.yml | 9 - deps/npm/node_modules/aws4/LICENSE | 19 - deps/npm/node_modules/aws4/README.md | 183 - deps/npm/node_modules/aws4/aws4.js | 373 - deps/npm/node_modules/aws4/lru.js | 96 - deps/npm/node_modules/aws4/package.json | 17 - .../node_modules/balanced-match/.npmignore | 5 - .../node_modules/balanced-match/LICENSE.md | 21 - .../npm/node_modules/balanced-match/README.md | 91 - deps/npm/node_modules/balanced-match/index.js | 59 - .../node_modules/balanced-match/package.json | 49 - deps/npm/node_modules/bcrypt-pbkdf/LICENSE | 66 - deps/npm/node_modules/bcrypt-pbkdf/README.md | 45 - deps/npm/node_modules/bcrypt-pbkdf/index.js | 556 - .../node_modules/bcrypt-pbkdf/package.json | 15 - deps/npm/node_modules/bin-links/CHANGELOG.md | 89 - deps/npm/node_modules/bin-links/LICENSE | 15 - deps/npm/node_modules/bin-links/README.md | 90 - deps/npm/node_modules/bin-links/index.js | 43 - .../node_modules/bin-links/lib/bin-target.js | 9 - .../node_modules/bin-links/lib/check-bin.js | 71 - .../node_modules/bin-links/lib/check-bins.js | 16 - .../npm/node_modules/bin-links/lib/fix-bin.js | 44 - .../bin-links/lib/get-node-modules.js | 18 - .../node_modules/bin-links/lib/get-paths.js | 48 - .../node_modules/bin-links/lib/get-prefix.js | 3 - .../node_modules/bin-links/lib/is-windows.js | 2 - .../node_modules/bin-links/lib/link-bin.js | 9 - .../node_modules/bin-links/lib/link-bins.js | 22 - .../node_modules/bin-links/lib/link-gently.js | 81 - .../node_modules/bin-links/lib/link-mans.js | 51 - .../node_modules/bin-links/lib/man-target.js | 6 - .../node_modules/bin-links/lib/shim-bin.js | 83 - deps/npm/node_modules/bin-links/package.json | 46 - deps/npm/node_modules/brace-expansion/LICENSE | 21 - .../node_modules/brace-expansion/README.md | 129 - .../npm/node_modules/brace-expansion/index.js | 201 - .../node_modules/brace-expansion/package.json | 47 - deps/npm/node_modules/builtins/.travis.yml | 4 - deps/npm/node_modules/builtins/History.md | 39 - deps/npm/node_modules/builtins/License | 20 - deps/npm/node_modules/builtins/Readme.md | 18 - deps/npm/node_modules/builtins/builtins.json | 35 - deps/npm/node_modules/builtins/package.json | 14 - deps/npm/node_modules/builtins/test.js | 5 - deps/npm/node_modules/byte-size/LICENSE | 21 - deps/npm/node_modules/byte-size/README.hbs | 164 - deps/npm/node_modules/byte-size/README.md | 198 - deps/npm/node_modules/byte-size/dist/index.js | 123 - deps/npm/node_modules/byte-size/index.mjs | 115 - deps/npm/node_modules/byte-size/package.json | 55 - deps/npm/node_modules/cacache/CHANGELOG.md | 794 -- deps/npm/node_modules/cacache/LICENSE.md | 16 - deps/npm/node_modules/cacache/README.md | 669 -- deps/npm/node_modules/cacache/get.js | 255 - deps/npm/node_modules/cacache/index.js | 41 - .../node_modules/cacache/lib/content/path.js | 29 - .../node_modules/cacache/lib/content/read.js | 250 - .../node_modules/cacache/lib/content/rm.js | 20 - .../node_modules/cacache/lib/content/write.js | 184 - .../node_modules/cacache/lib/entry-index.js | 305 - .../node_modules/cacache/lib/memoization.js | 74 - .../node_modules/cacache/lib/util/disposer.js | 30 - .../cacache/lib/util/fix-owner.js | 145 - .../cacache/lib/util/hash-to-segments.js | 7 - .../cacache/lib/util/move-file.js | 69 - deps/npm/node_modules/cacache/lib/util/tmp.js | 35 - deps/npm/node_modules/cacache/lib/verify.js | 287 - deps/npm/node_modules/cacache/ls.js | 6 - deps/npm/node_modules/cacache/package.json | 95 - deps/npm/node_modules/cacache/put.js | 84 - deps/npm/node_modules/cacache/rm.js | 31 - deps/npm/node_modules/cacache/verify.js | 3 - deps/npm/node_modules/caseless/LICENSE | 28 - deps/npm/node_modules/caseless/README.md | 45 - deps/npm/node_modules/caseless/index.js | 67 - deps/npm/node_modules/caseless/package.json | 27 - deps/npm/node_modules/caseless/test.js | 67 - deps/npm/node_modules/chalk/index.d.ts | 415 - deps/npm/node_modules/chalk/license | 9 - deps/npm/node_modules/chalk/package.json | 68 - deps/npm/node_modules/chalk/readme.md | 293 - deps/npm/node_modules/chalk/source/index.js | 229 - .../node_modules/chalk/source/templates.js | 134 - deps/npm/node_modules/chalk/source/util.js | 39 - deps/npm/node_modules/chownr/LICENSE | 15 - deps/npm/node_modules/chownr/README.md | 3 - deps/npm/node_modules/chownr/chownr.js | 167 - deps/npm/node_modules/chownr/package.json | 32 - deps/npm/node_modules/cidr-regex/LICENSE | 22 - deps/npm/node_modules/cidr-regex/README.md | 61 - deps/npm/node_modules/cidr-regex/index.d.ts | 55 - deps/npm/node_modules/cidr-regex/index.js | 18 - deps/npm/node_modules/cidr-regex/package.json | 42 - deps/npm/node_modules/clean-stack/index.d.ts | 47 - deps/npm/node_modules/clean-stack/index.js | 40 - deps/npm/node_modules/clean-stack/license | 9 - .../npm/node_modules/clean-stack/package.json | 39 - deps/npm/node_modules/clean-stack/readme.md | 76 - deps/npm/node_modules/cli-columns/LICENSE | 20 - deps/npm/node_modules/cli-columns/README.md | 69 - deps/npm/node_modules/cli-columns/color.js | 15 - deps/npm/node_modules/cli-columns/index.js | 83 - .../npm/node_modules/cli-columns/package.json | 46 - deps/npm/node_modules/cli-columns/test.js | 78 - deps/npm/node_modules/cli-table3/CHANGELOG.md | 81 - deps/npm/node_modules/cli-table3/LICENSE | 21 - deps/npm/node_modules/cli-table3/README.md | 218 - deps/npm/node_modules/cli-table3/index.d.ts | 92 - deps/npm/node_modules/cli-table3/index.js | 1 - .../node_modules/ansi-regex/index.d.ts | 37 - .../node_modules/ansi-regex/index.js | 10 - .../node_modules/ansi-regex/license | 9 - .../node_modules/ansi-regex/package.json | 55 - .../node_modules/ansi-regex/readme.md | 78 - .../is-fullwidth-code-point/index.d.ts | 17 - .../is-fullwidth-code-point/index.js | 50 - .../is-fullwidth-code-point/license | 9 - .../is-fullwidth-code-point/package.json | 42 - .../is-fullwidth-code-point/readme.md | 39 - .../node_modules/string-width/index.d.ts | 29 - .../node_modules/string-width/index.js | 43 - .../node_modules/string-width/license | 9 - .../node_modules/string-width/package.json | 56 - .../node_modules/string-width/readme.md | 50 - .../node_modules/strip-ansi/index.d.ts | 17 - .../node_modules/strip-ansi/index.js | 4 - .../node_modules/strip-ansi/license | 9 - .../node_modules/strip-ansi/package.json | 54 - .../node_modules/strip-ansi/readme.md | 46 - deps/npm/node_modules/cli-table3/package.json | 101 - deps/npm/node_modules/cli-table3/src/cell.js | 371 - .../cli-table3/src/layout-manager.js | 232 - deps/npm/node_modules/cli-table3/src/table.js | 77 - deps/npm/node_modules/cli-table3/src/utils.js | 303 - deps/npm/node_modules/clone/.npmignore | 4 - deps/npm/node_modules/clone/LICENSE | 18 - deps/npm/node_modules/clone/README.md | 126 - deps/npm/node_modules/clone/clone.iml | 10 - deps/npm/node_modules/clone/clone.js | 166 - deps/npm/node_modules/clone/package.json | 51 - deps/npm/node_modules/cmd-shim/LICENSE | 15 - deps/npm/node_modules/cmd-shim/README.md | 34 - deps/npm/node_modules/cmd-shim/index.js | 233 - .../cmd-shim/lib/to-batch-syntax.js | 51 - deps/npm/node_modules/cmd-shim/package.json | 37 - deps/npm/node_modules/code-point-at/index.js | 32 - deps/npm/node_modules/code-point-at/license | 21 - .../node_modules/code-point-at/package.json | 38 - deps/npm/node_modules/code-point-at/readme.md | 32 - .../node_modules/color-convert/CHANGELOG.md | 54 - deps/npm/node_modules/color-convert/LICENSE | 21 - deps/npm/node_modules/color-convert/README.md | 68 - .../node_modules/color-convert/conversions.js | 839 -- deps/npm/node_modules/color-convert/index.js | 81 - .../node_modules/color-convert/package.json | 48 - deps/npm/node_modules/color-convert/route.js | 97 - deps/npm/node_modules/color-name/LICENSE | 8 - deps/npm/node_modules/color-name/README.md | 11 - deps/npm/node_modules/color-name/index.js | 152 - deps/npm/node_modules/color-name/package.json | 28 - deps/npm/node_modules/colors/LICENSE | 25 - deps/npm/node_modules/colors/README.md | 221 - .../colors/examples/normal-usage.js | 82 - .../colors/examples/safe-string.js | 79 - deps/npm/node_modules/colors/index.d.ts | 136 - deps/npm/node_modules/colors/lib/colors.js | 211 - .../node_modules/colors/lib/custom/trap.js | 46 - .../node_modules/colors/lib/custom/zalgo.js | 110 - .../colors/lib/extendStringPrototype.js | 110 - deps/npm/node_modules/colors/lib/index.js | 13 - .../node_modules/colors/lib/maps/america.js | 10 - .../node_modules/colors/lib/maps/rainbow.js | 12 - .../node_modules/colors/lib/maps/random.js | 11 - .../npm/node_modules/colors/lib/maps/zebra.js | 5 - deps/npm/node_modules/colors/lib/styles.js | 95 - .../colors/lib/system/has-flag.js | 35 - .../colors/lib/system/supports-colors.js | 151 - deps/npm/node_modules/colors/package.json | 45 - deps/npm/node_modules/colors/safe.d.ts | 48 - deps/npm/node_modules/colors/safe.js | 10 - .../colors/themes/generic-logging.js | 12 - deps/npm/node_modules/columnify/LICENSE | 21 - deps/npm/node_modules/columnify/Makefile | 9 - deps/npm/node_modules/columnify/Readme.md | 470 - deps/npm/node_modules/columnify/columnify.js | 308 - deps/npm/node_modules/columnify/index.js | 297 - deps/npm/node_modules/columnify/package.json | 51 - deps/npm/node_modules/columnify/utils.js | 193 - deps/npm/node_modules/columnify/width.js | 6 - deps/npm/node_modules/combined-stream/License | 19 - .../node_modules/combined-stream/Readme.md | 138 - .../combined-stream/lib/combined_stream.js | 208 - .../node_modules/combined-stream/package.json | 25 - .../node_modules/combined-stream/yarn.lock | 17 - .../node_modules/common-ancestor-path/LICENSE | 15 - .../common-ancestor-path/README.md | 28 - .../common-ancestor-path/index.js | 17 - .../common-ancestor-path/package.json | 28 - deps/npm/node_modules/concat-map/.travis.yml | 4 - deps/npm/node_modules/concat-map/LICENSE | 18 - .../node_modules/concat-map/README.markdown | 62 - .../node_modules/concat-map/example/map.js | 6 - deps/npm/node_modules/concat-map/index.js | 13 - deps/npm/node_modules/concat-map/package.json | 43 - deps/npm/node_modules/concat-map/test/map.js | 39 - .../console-control-strings/LICENSE | 13 - .../console-control-strings/README.md | 145 - .../console-control-strings/index.js | 125 - .../console-control-strings/package.json | 27 - deps/npm/node_modules/core-util-is/LICENSE | 19 - deps/npm/node_modules/core-util-is/README.md | 3 - .../npm/node_modules/core-util-is/float.patch | 604 -- .../npm/node_modules/core-util-is/lib/util.js | 107 - .../node_modules/core-util-is/package.json | 32 - deps/npm/node_modules/core-util-is/test.js | 68 - deps/npm/node_modules/dashdash/CHANGES.md | 364 - deps/npm/node_modules/dashdash/LICENSE.txt | 24 - deps/npm/node_modules/dashdash/README.md | 574 - .../dashdash/etc/dashdash.bash_completion.in | 389 - .../npm/node_modules/dashdash/lib/dashdash.js | 1055 -- deps/npm/node_modules/dashdash/package.json | 26 - deps/npm/node_modules/debug/LICENSE | 19 - deps/npm/node_modules/debug/README.md | 455 - .../debug/node_modules/ms/index.js | 162 - .../debug/node_modules/ms/license.md | 21 - .../debug/node_modules/ms/package.json | 37 - .../debug/node_modules/ms/readme.md | 60 - deps/npm/node_modules/debug/package.json | 59 - deps/npm/node_modules/debug/src/browser.js | 269 - deps/npm/node_modules/debug/src/common.js | 261 - deps/npm/node_modules/debug/src/index.js | 10 - deps/npm/node_modules/debug/src/node.js | 263 - deps/npm/node_modules/debuglog/LICENSE | 19 - deps/npm/node_modules/debuglog/README.md | 40 - deps/npm/node_modules/debuglog/debuglog.js | 22 - deps/npm/node_modules/debuglog/package.json | 21 - deps/npm/node_modules/defaults/.npmignore | 1 - deps/npm/node_modules/defaults/LICENSE | 21 - deps/npm/node_modules/defaults/README.md | 43 - deps/npm/node_modules/defaults/index.js | 13 - deps/npm/node_modules/defaults/package.json | 26 - deps/npm/node_modules/defaults/test.js | 34 - .../node_modules/delayed-stream/.npmignore | 1 - deps/npm/node_modules/delayed-stream/License | 19 - deps/npm/node_modules/delayed-stream/Makefile | 7 - .../npm/node_modules/delayed-stream/Readme.md | 141 - .../delayed-stream/lib/delayed_stream.js | 107 - .../node_modules/delayed-stream/package.json | 27 - deps/npm/node_modules/delegates/.npmignore | 1 - deps/npm/node_modules/delegates/History.md | 22 - deps/npm/node_modules/delegates/License | 20 - deps/npm/node_modules/delegates/Makefile | 8 - deps/npm/node_modules/delegates/Readme.md | 94 - deps/npm/node_modules/delegates/index.js | 121 - deps/npm/node_modules/delegates/package.json | 13 - deps/npm/node_modules/delegates/test/index.js | 94 - deps/npm/node_modules/depd/History.md | 96 - deps/npm/node_modules/depd/LICENSE | 22 - deps/npm/node_modules/depd/Readme.md | 280 - deps/npm/node_modules/depd/index.js | 522 - .../node_modules/depd/lib/browser/index.js | 77 - .../depd/lib/compat/callsite-tostring.js | 103 - .../depd/lib/compat/event-listener-count.js | 22 - .../npm/node_modules/depd/lib/compat/index.js | 79 - deps/npm/node_modules/depd/package.json | 41 - deps/npm/node_modules/dezalgo/.travis.yml | 7 - deps/npm/node_modules/dezalgo/LICENSE | 15 - deps/npm/node_modules/dezalgo/README.md | 29 - deps/npm/node_modules/dezalgo/dezalgo.js | 22 - deps/npm/node_modules/dezalgo/package.json | 42 - deps/npm/node_modules/dezalgo/test/basic.js | 29 - deps/npm/node_modules/ecc-jsbn/LICENSE | 21 - deps/npm/node_modules/ecc-jsbn/README.md | 8 - deps/npm/node_modules/ecc-jsbn/index.js | 58 - .../node_modules/ecc-jsbn/lib/LICENSE-jsbn | 40 - deps/npm/node_modules/ecc-jsbn/lib/ec.js | 561 - deps/npm/node_modules/ecc-jsbn/lib/sec.js | 170 - deps/npm/node_modules/ecc-jsbn/package.json | 40 - deps/npm/node_modules/ecc-jsbn/test.js | 14 - deps/npm/node_modules/editor/LICENSE | 21 - deps/npm/node_modules/editor/README.markdown | 54 - .../npm/node_modules/editor/example/beep.json | 5 - deps/npm/node_modules/editor/example/edit.js | 4 - deps/npm/node_modules/editor/index.js | 20 - deps/npm/node_modules/editor/package.json | 34 - .../node_modules/emoji-regex/LICENSE-MIT.txt | 20 - deps/npm/node_modules/emoji-regex/README.md | 73 - .../node_modules/emoji-regex/es2015/index.js | 6 - .../node_modules/emoji-regex/es2015/text.js | 6 - deps/npm/node_modules/emoji-regex/index.d.ts | 23 - deps/npm/node_modules/emoji-regex/index.js | 6 - .../npm/node_modules/emoji-regex/package.json | 50 - deps/npm/node_modules/emoji-regex/text.js | 6 - deps/npm/node_modules/encoding/.prettierrc.js | 8 - deps/npm/node_modules/encoding/.travis.yml | 25 - deps/npm/node_modules/encoding/LICENSE | 16 - deps/npm/node_modules/encoding/README.md | 41 - .../npm/node_modules/encoding/lib/encoding.js | 83 - deps/npm/node_modules/encoding/package.json | 18 - deps/npm/node_modules/encoding/test/test.js | 49 - deps/npm/node_modules/env-paths/index.d.ts | 69 - deps/npm/node_modules/env-paths/index.js | 74 - deps/npm/node_modules/env-paths/license | 9 - deps/npm/node_modules/env-paths/package.json | 45 - deps/npm/node_modules/env-paths/readme.md | 76 - deps/npm/node_modules/err-code/.editorconfig | 12 - deps/npm/node_modules/err-code/.eslintrc.json | 7 - deps/npm/node_modules/err-code/.npmignore | 2 - deps/npm/node_modules/err-code/.travis.yml | 5 - deps/npm/node_modules/err-code/README.md | 72 - deps/npm/node_modules/err-code/bower.json | 30 - deps/npm/node_modules/err-code/index.js | 22 - deps/npm/node_modules/err-code/index.umd.js | 26 - deps/npm/node_modules/err-code/package.json | 34 - .../node_modules/err-code/test/.eslintrc.json | 5 - deps/npm/node_modules/err-code/test/test.js | 92 - deps/npm/node_modules/extend/.editorconfig | 20 - deps/npm/node_modules/extend/.jscs.json | 175 - deps/npm/node_modules/extend/.travis.yml | 230 - deps/npm/node_modules/extend/CHANGELOG.md | 83 - deps/npm/node_modules/extend/LICENSE | 23 - deps/npm/node_modules/extend/README.md | 81 - deps/npm/node_modules/extend/component.json | 32 - deps/npm/node_modules/extend/index.js | 117 - deps/npm/node_modules/extend/package.json | 42 - deps/npm/node_modules/extsprintf/.gitmodules | 0 deps/npm/node_modules/extsprintf/.npmignore | 2 - deps/npm/node_modules/extsprintf/LICENSE | 19 - deps/npm/node_modules/extsprintf/Makefile | 24 - .../npm/node_modules/extsprintf/Makefile.targ | 285 - deps/npm/node_modules/extsprintf/README.md | 46 - .../npm/node_modules/extsprintf/jsl.node.conf | 137 - .../node_modules/extsprintf/lib/extsprintf.js | 183 - deps/npm/node_modules/extsprintf/package.json | 14 - deps/npm/node_modules/fast-deep-equal/LICENSE | 21 - .../node_modules/fast-deep-equal/README.md | 96 - .../fast-deep-equal/es6/index.d.ts | 2 - .../node_modules/fast-deep-equal/es6/index.js | 72 - .../fast-deep-equal/es6/react.d.ts | 2 - .../node_modules/fast-deep-equal/es6/react.js | 79 - .../node_modules/fast-deep-equal/index.d.ts | 4 - .../npm/node_modules/fast-deep-equal/index.js | 46 - .../node_modules/fast-deep-equal/package.json | 61 - .../node_modules/fast-deep-equal/react.d.ts | 2 - .../npm/node_modules/fast-deep-equal/react.js | 53 - .../fast-json-stable-stringify/.eslintrc.yml | 26 - .../.github/FUNDING.yml | 1 - .../fast-json-stable-stringify/.travis.yml | 8 - .../fast-json-stable-stringify/LICENSE | 21 - .../fast-json-stable-stringify/README.md | 131 - .../benchmark/index.js | 31 - .../benchmark/test.json | 137 - .../example/key_cmp.js | 7 - .../example/nested.js | 3 - .../fast-json-stable-stringify/example/str.js | 3 - .../example/value_cmp.js | 7 - .../fast-json-stable-stringify/index.d.ts | 4 - .../fast-json-stable-stringify/index.js | 59 - .../fast-json-stable-stringify/package.json | 52 - .../fast-json-stable-stringify/test/cmp.js | 13 - .../fast-json-stable-stringify/test/nested.js | 44 - .../fast-json-stable-stringify/test/str.js | 46 - .../test/to-json.js | 22 - deps/npm/node_modules/forever-agent/LICENSE | 55 - deps/npm/node_modules/forever-agent/README.md | 4 - deps/npm/node_modules/forever-agent/index.js | 138 - .../node_modules/forever-agent/package.json | 17 - deps/npm/node_modules/form-data/License | 19 - deps/npm/node_modules/form-data/README.md | 234 - deps/npm/node_modules/form-data/README.md.bak | 234 - .../npm/node_modules/form-data/lib/browser.js | 2 - .../node_modules/form-data/lib/form_data.js | 457 - .../node_modules/form-data/lib/populate.js | 10 - deps/npm/node_modules/form-data/package.json | 65 - deps/npm/node_modules/form-data/yarn.lock | 2662 ----- deps/npm/node_modules/fs-minipass/LICENSE | 15 - deps/npm/node_modules/fs-minipass/README.md | 70 - deps/npm/node_modules/fs-minipass/index.js | 422 - .../npm/node_modules/fs-minipass/package.json | 39 - deps/npm/node_modules/fs.realpath/LICENSE | 43 - deps/npm/node_modules/fs.realpath/README.md | 33 - deps/npm/node_modules/fs.realpath/index.js | 66 - deps/npm/node_modules/fs.realpath/old.js | 303 - .../npm/node_modules/fs.realpath/package.json | 26 - .../node_modules/function-bind/.editorconfig | 20 - .../npm/node_modules/function-bind/.jscs.json | 175 - .../npm/node_modules/function-bind/.npmignore | 22 - .../node_modules/function-bind/.travis.yml | 168 - deps/npm/node_modules/function-bind/LICENSE | 19 - deps/npm/node_modules/function-bind/README.md | 48 - .../function-bind/implementation.js | 52 - deps/npm/node_modules/function-bind/index.js | 5 - .../node_modules/function-bind/package.json | 63 - .../node_modules/function-bind/test/index.js | 252 - deps/npm/node_modules/gauge/CHANGELOG.md | 160 - deps/npm/node_modules/gauge/LICENSE | 13 - deps/npm/node_modules/gauge/README.md | 399 - deps/npm/node_modules/gauge/base-theme.js | 14 - deps/npm/node_modules/gauge/error.js | 24 - deps/npm/node_modules/gauge/has-color.js | 12 - deps/npm/node_modules/gauge/index.js | 233 - .../gauge/node_modules/aproba/LICENSE | 14 - .../gauge/node_modules/aproba/README.md | 94 - .../gauge/node_modules/aproba/index.js | 105 - .../gauge/node_modules/aproba/package.json | 34 - .../is-fullwidth-code-point/index.js | 46 - .../is-fullwidth-code-point/license | 21 - .../is-fullwidth-code-point/package.json | 45 - .../is-fullwidth-code-point/readme.md | 39 - .../gauge/node_modules/string-width/index.js | 37 - .../gauge/node_modules/string-width/license | 21 - .../node_modules/string-width/package.json | 56 - .../gauge/node_modules/string-width/readme.md | 42 - deps/npm/node_modules/gauge/package.json | 63 - deps/npm/node_modules/gauge/plumbing.js | 48 - deps/npm/node_modules/gauge/process.js | 3 - deps/npm/node_modules/gauge/progress-bar.js | 35 - .../npm/node_modules/gauge/render-template.js | 181 - deps/npm/node_modules/gauge/set-immediate.js | 7 - deps/npm/node_modules/gauge/set-interval.js | 3 - deps/npm/node_modules/gauge/spin.js | 5 - deps/npm/node_modules/gauge/template-item.js | 73 - deps/npm/node_modules/gauge/theme-set.js | 115 - deps/npm/node_modules/gauge/themes.js | 54 - deps/npm/node_modules/gauge/wide-truncate.js | 25 - deps/npm/node_modules/getpass/.npmignore | 8 - deps/npm/node_modules/getpass/.travis.yml | 9 - deps/npm/node_modules/getpass/LICENSE | 18 - deps/npm/node_modules/getpass/README.md | 32 - deps/npm/node_modules/getpass/lib/index.js | 123 - deps/npm/node_modules/getpass/package.json | 18 - deps/npm/node_modules/glob/LICENSE | 21 - deps/npm/node_modules/glob/README.md | 375 - deps/npm/node_modules/glob/changelog.md | 67 - deps/npm/node_modules/glob/common.js | 240 - deps/npm/node_modules/glob/glob.js | 790 -- deps/npm/node_modules/glob/package.json | 46 - deps/npm/node_modules/glob/sync.js | 486 - deps/npm/node_modules/graceful-fs/LICENSE | 15 - deps/npm/node_modules/graceful-fs/README.md | 133 - deps/npm/node_modules/graceful-fs/clone.js | 19 - .../node_modules/graceful-fs/graceful-fs.js | 354 - .../graceful-fs/legacy-streams.js | 118 - .../npm/node_modules/graceful-fs/package.json | 50 - .../npm/node_modules/graceful-fs/polyfills.js | 342 - deps/npm/node_modules/har-schema/LICENSE | 13 - deps/npm/node_modules/har-schema/README.md | 49 - .../har-schema/lib/afterRequest.json | 30 - .../har-schema/lib/beforeRequest.json | 30 - .../node_modules/har-schema/lib/browser.json | 20 - .../node_modules/har-schema/lib/cache.json | 21 - .../node_modules/har-schema/lib/content.json | 29 - .../node_modules/har-schema/lib/cookie.json | 36 - .../node_modules/har-schema/lib/creator.json | 20 - .../node_modules/har-schema/lib/entry.json | 53 - deps/npm/node_modules/har-schema/lib/har.json | 13 - .../node_modules/har-schema/lib/header.json | 20 - deps/npm/node_modules/har-schema/lib/index.js | 22 - deps/npm/node_modules/har-schema/lib/log.json | 36 - .../npm/node_modules/har-schema/lib/page.json | 32 - .../har-schema/lib/pageTimings.json | 18 - .../node_modules/har-schema/lib/postData.json | 43 - .../node_modules/har-schema/lib/query.json | 20 - .../node_modules/har-schema/lib/request.json | 57 - .../node_modules/har-schema/lib/response.json | 54 - .../node_modules/har-schema/lib/timings.json | 42 - deps/npm/node_modules/har-schema/package.json | 54 - deps/npm/node_modules/har-validator/LICENSE | 9 - deps/npm/node_modules/har-validator/README.md | 43 - .../node_modules/har-validator/lib/async.js | 105 - .../node_modules/har-validator/lib/error.js | 17 - .../node_modules/har-validator/lib/promise.js | 102 - .../node_modules/har-validator/package.json | 43 - deps/npm/node_modules/has-flag/index.d.ts | 39 - deps/npm/node_modules/has-flag/index.js | 8 - deps/npm/node_modules/has-flag/license | 9 - deps/npm/node_modules/has-flag/package.json | 46 - deps/npm/node_modules/has-flag/readme.md | 89 - deps/npm/node_modules/has-unicode/LICENSE | 14 - deps/npm/node_modules/has-unicode/README.md | 43 - deps/npm/node_modules/has-unicode/index.js | 16 - .../npm/node_modules/has-unicode/package.json | 30 - deps/npm/node_modules/has/LICENSE-MIT | 22 - deps/npm/node_modules/has/README.md | 18 - deps/npm/node_modules/has/package.json | 48 - deps/npm/node_modules/has/src/index.js | 5 - deps/npm/node_modules/has/test/index.js | 10 - .../node_modules/hosted-git-info/CHANGELOG.md | 175 - deps/npm/node_modules/hosted-git-info/LICENSE | 13 - .../node_modules/hosted-git-info/README.md | 133 - .../hosted-git-info/git-host-info.js | 79 - .../node_modules/hosted-git-info/git-host.js | 156 - .../npm/node_modules/hosted-git-info/index.js | 146 - .../node_modules/hosted-git-info/package.json | 46 - .../node_modules/http-cache-semantics/LICENSE | 9 - .../http-cache-semantics/README.md | 203 - .../http-cache-semantics/index.js | 673 -- .../http-cache-semantics/package.json | 24 - .../node_modules/http-proxy-agent/README.md | 74 - .../http-proxy-agent/dist/agent.d.ts | 32 - .../http-proxy-agent/dist/agent.js | 145 - .../http-proxy-agent/dist/agent.js.map | 1 - .../http-proxy-agent/dist/index.d.ts | 21 - .../http-proxy-agent/dist/index.js | 14 - .../http-proxy-agent/dist/index.js.map | 1 - .../http-proxy-agent/package.json | 57 - .../http-signature/.dir-locals.el | 6 - .../node_modules/http-signature/.npmignore | 7 - .../node_modules/http-signature/CHANGES.md | 46 - deps/npm/node_modules/http-signature/LICENSE | 18 - .../npm/node_modules/http-signature/README.md | 79 - .../http-signature/http_signing.md | 363 - .../node_modules/http-signature/lib/index.js | 29 - .../node_modules/http-signature/lib/parser.js | 315 - .../node_modules/http-signature/lib/signer.js | 401 - .../node_modules/http-signature/lib/utils.js | 112 - .../node_modules/http-signature/lib/verify.js | 88 - .../node_modules/http-signature/package.json | 39 - .../node_modules/https-proxy-agent/README.md | 137 - .../https-proxy-agent/dist/agent.d.ts | 30 - .../https-proxy-agent/dist/agent.js | 180 - .../https-proxy-agent/dist/agent.js.map | 1 - .../https-proxy-agent/dist/index.d.ts | 23 - .../https-proxy-agent/dist/index.js | 14 - .../https-proxy-agent/dist/index.js.map | 1 - .../dist/parse-proxy-response.d.ts | 7 - .../dist/parse-proxy-response.js | 66 - .../dist/parse-proxy-response.js.map | 1 - .../https-proxy-agent/package.json | 56 - deps/npm/node_modules/humanize-ms/History.md | 25 - deps/npm/node_modules/humanize-ms/LICENSE | 17 - deps/npm/node_modules/humanize-ms/README.md | 40 - deps/npm/node_modules/humanize-ms/index.js | 24 - .../npm/node_modules/humanize-ms/package.json | 37 - .../iconv-lite/.github/dependabot.yml | 11 - deps/npm/node_modules/iconv-lite/Changelog.md | 208 - deps/npm/node_modules/iconv-lite/LICENSE | 21 - deps/npm/node_modules/iconv-lite/README.md | 130 - .../iconv-lite/encodings/dbcs-codec.js | 597 - .../iconv-lite/encodings/dbcs-data.js | 176 - .../iconv-lite/encodings/index.js | 23 - .../iconv-lite/encodings/internal.js | 198 - .../iconv-lite/encodings/sbcs-codec.js | 72 - .../encodings/sbcs-data-generated.js | 451 - .../iconv-lite/encodings/sbcs-data.js | 179 - .../encodings/tables/big5-added.json | 122 - .../iconv-lite/encodings/tables/cp936.json | 264 - .../iconv-lite/encodings/tables/cp949.json | 273 - .../iconv-lite/encodings/tables/cp950.json | 177 - .../iconv-lite/encodings/tables/eucjp.json | 182 - .../encodings/tables/gb18030-ranges.json | 1 - .../encodings/tables/gbk-added.json | 56 - .../iconv-lite/encodings/tables/shiftjis.json | 125 - .../iconv-lite/encodings/utf16.js | 197 - .../iconv-lite/encodings/utf32.js | 319 - .../node_modules/iconv-lite/encodings/utf7.js | 290 - .../iconv-lite/lib/bom-handling.js | 52 - .../node_modules/iconv-lite/lib/index.d.ts | 41 - deps/npm/node_modules/iconv-lite/lib/index.js | 180 - .../node_modules/iconv-lite/lib/streams.js | 109 - deps/npm/node_modules/iconv-lite/package.json | 44 - deps/npm/node_modules/ignore-walk/LICENSE | 15 - deps/npm/node_modules/ignore-walk/README.md | 60 - deps/npm/node_modules/ignore-walk/index.js | 269 - .../npm/node_modules/ignore-walk/package.json | 41 - deps/npm/node_modules/imurmurhash/README.md | 122 - .../node_modules/imurmurhash/imurmurhash.js | 138 - .../imurmurhash/imurmurhash.min.js | 12 - .../npm/node_modules/imurmurhash/package.json | 40 - .../npm/node_modules/indent-string/index.d.ts | 42 - deps/npm/node_modules/indent-string/index.js | 35 - deps/npm/node_modules/indent-string/license | 9 - .../node_modules/indent-string/package.json | 37 - deps/npm/node_modules/indent-string/readme.md | 70 - deps/npm/node_modules/infer-owner/LICENSE | 15 - deps/npm/node_modules/infer-owner/README.md | 41 - deps/npm/node_modules/infer-owner/index.js | 71 - .../npm/node_modules/infer-owner/package.json | 26 - deps/npm/node_modules/inflight/LICENSE | 15 - deps/npm/node_modules/inflight/README.md | 37 - deps/npm/node_modules/inflight/inflight.js | 54 - deps/npm/node_modules/inflight/package.json | 29 - deps/npm/node_modules/inherits/LICENSE | 16 - deps/npm/node_modules/inherits/README.md | 42 - deps/npm/node_modules/inherits/inherits.js | 9 - .../node_modules/inherits/inherits_browser.js | 27 - deps/npm/node_modules/inherits/package.json | 29 - deps/npm/node_modules/ini/LICENSE | 15 - deps/npm/node_modules/ini/README.md | 102 - deps/npm/node_modules/ini/ini.js | 202 - deps/npm/node_modules/ini/package.json | 30 - .../init-package-json/CHANGELOG.md | 21 - .../node_modules/init-package-json/LICENSE | 15 - .../node_modules/init-package-json/README.md | 45 - .../init-package-json/default-input.js | 256 - .../init-package-json/init-package-json.js | 154 - .../init-package-json/package.json | 54 - deps/npm/node_modules/ip-regex/index.d.ts | 70 - deps/npm/node_modules/ip-regex/index.js | 36 - deps/npm/node_modules/ip-regex/license | 9 - deps/npm/node_modules/ip-regex/package.json | 44 - deps/npm/node_modules/ip-regex/readme.md | 86 - deps/npm/node_modules/ip/.jscsrc | 46 - deps/npm/node_modules/ip/.npmignore | 2 - deps/npm/node_modules/ip/.travis.yml | 15 - deps/npm/node_modules/ip/README.md | 90 - deps/npm/node_modules/ip/lib/ip.js | 416 - deps/npm/node_modules/ip/package.json | 21 - deps/npm/node_modules/ip/test/api-test.js | 407 - deps/npm/node_modules/is-cidr/LICENSE | 22 - deps/npm/node_modules/is-cidr/README.md | 47 - deps/npm/node_modules/is-cidr/index.d.ts | 31 - deps/npm/node_modules/is-cidr/index.js | 9 - deps/npm/node_modules/is-cidr/package.json | 46 - .../node_modules/is-core-module/.eslintignore | 1 - .../is-core-module/.github/FUNDING.yml | 12 - .../.github/workflows/node-4+.yml | 54 - .../.github/workflows/node-iojs.yml | 58 - .../.github/workflows/node-pretest.yml | 26 - .../.github/workflows/node-zero.yml | 58 - .../.github/workflows/rebase.yml | 15 - .../.github/workflows/require-allow-edits.yml | 14 - deps/npm/node_modules/is-core-module/.nycrc | 13 - .../node_modules/is-core-module/CHANGELOG.md | 58 - deps/npm/node_modules/is-core-module/LICENSE | 20 - .../npm/node_modules/is-core-module/README.md | 37 - .../npm/node_modules/is-core-module/core.json | 83 - deps/npm/node_modules/is-core-module/index.js | 69 - .../node_modules/is-core-module/package.json | 66 - .../node_modules/is-core-module/test/index.js | 83 - .../is-fullwidth-code-point/index.js | 46 - .../is-fullwidth-code-point/license | 21 - .../is-fullwidth-code-point/package.json | 45 - .../is-fullwidth-code-point/readme.md | 39 - deps/npm/node_modules/is-lambda/.npmignore | 1 - deps/npm/node_modules/is-lambda/.travis.yml | 8 - deps/npm/node_modules/is-lambda/LICENSE | 21 - deps/npm/node_modules/is-lambda/README.md | 27 - deps/npm/node_modules/is-lambda/index.js | 6 - deps/npm/node_modules/is-lambda/package.json | 35 - deps/npm/node_modules/is-lambda/test.js | 16 - .../npm/node_modules/is-typedarray/LICENSE.md | 18 - deps/npm/node_modules/is-typedarray/README.md | 16 - deps/npm/node_modules/is-typedarray/index.js | 41 - .../node_modules/is-typedarray/package.json | 30 - deps/npm/node_modules/is-typedarray/test.js | 34 - deps/npm/node_modules/isarray/.npmignore | 1 - deps/npm/node_modules/isarray/.travis.yml | 4 - deps/npm/node_modules/isarray/Makefile | 6 - deps/npm/node_modules/isarray/README.md | 60 - deps/npm/node_modules/isarray/component.json | 19 - deps/npm/node_modules/isarray/index.js | 5 - deps/npm/node_modules/isarray/package.json | 45 - deps/npm/node_modules/isarray/test.js | 20 - deps/npm/node_modules/isexe/.npmignore | 2 - deps/npm/node_modules/isexe/LICENSE | 15 - deps/npm/node_modules/isexe/README.md | 51 - deps/npm/node_modules/isexe/index.js | 57 - deps/npm/node_modules/isexe/mode.js | 41 - deps/npm/node_modules/isexe/package.json | 31 - deps/npm/node_modules/isexe/test/basic.js | 221 - deps/npm/node_modules/isexe/windows.js | 42 - deps/npm/node_modules/isstream/.npmignore | 1 - deps/npm/node_modules/isstream/.travis.yml | 12 - deps/npm/node_modules/isstream/LICENSE.md | 11 - deps/npm/node_modules/isstream/README.md | 66 - deps/npm/node_modules/isstream/isstream.js | 27 - deps/npm/node_modules/isstream/package.json | 33 - deps/npm/node_modules/isstream/test.js | 168 - deps/npm/node_modules/jsbn/.npmignore | 2 - deps/npm/node_modules/jsbn/LICENSE | 40 - deps/npm/node_modules/jsbn/README.md | 175 - deps/npm/node_modules/jsbn/example.html | 12 - deps/npm/node_modules/jsbn/example.js | 3 - deps/npm/node_modules/jsbn/index.js | 1357 --- deps/npm/node_modules/jsbn/package.json | 21 - .../CHANGELOG.md | 50 - .../json-parse-even-better-errors/LICENSE.md | 25 - .../json-parse-even-better-errors/README.md | 96 - .../json-parse-even-better-errors/index.js | 121 - .../package.json | 33 - .../json-schema-traverse/.eslintrc.yml | 27 - .../json-schema-traverse/.travis.yml | 8 - .../node_modules/json-schema-traverse/LICENSE | 21 - .../json-schema-traverse/README.md | 83 - .../json-schema-traverse/index.js | 89 - .../json-schema-traverse/package.json | 43 - .../json-schema-traverse/spec/.eslintrc.yml | 6 - .../spec/fixtures/schema.js | 125 - .../json-schema-traverse/spec/index.spec.js | 171 - deps/npm/node_modules/json-schema/README.md | 5 - .../json-schema/draft-00/hyper-schema | 68 - .../json-schema/draft-00/json-ref | 26 - .../node_modules/json-schema/draft-00/links | 33 - .../node_modules/json-schema/draft-00/schema | 155 - .../json-schema/draft-01/hyper-schema | 68 - .../json-schema/draft-01/json-ref | 26 - .../node_modules/json-schema/draft-01/links | 33 - .../node_modules/json-schema/draft-01/schema | 155 - .../json-schema/draft-02/hyper-schema | 68 - .../json-schema/draft-02/json-ref | 26 - .../node_modules/json-schema/draft-02/links | 35 - .../node_modules/json-schema/draft-02/schema | 166 - .../json-schema/draft-03/examples/address | 20 - .../json-schema/draft-03/examples/calendar | 53 - .../json-schema/draft-03/examples/card | 105 - .../json-schema/draft-03/examples/geo | 8 - .../json-schema/draft-03/examples/interfaces | 23 - .../json-schema/draft-03/hyper-schema | 60 - .../json-schema/draft-03/json-ref | 26 - .../node_modules/json-schema/draft-03/links | 35 - .../node_modules/json-schema/draft-03/schema | 174 - .../json-schema/draft-04/hyper-schema | 60 - .../node_modules/json-schema/draft-04/links | 41 - .../node_modules/json-schema/draft-04/schema | 189 - .../json-schema/draft-zyp-json-schema-03.xml | 1120 -- .../json-schema/draft-zyp-json-schema-04.xml | 1072 -- .../npm/node_modules/json-schema/lib/links.js | 66 - .../node_modules/json-schema/lib/validate.js | 273 - .../npm/node_modules/json-schema/package.json | 31 - .../node_modules/json-schema/test/tests.js | 95 - .../json-stringify-nice/.github/FUNDING.yml | 3 - .../json-stringify-nice/.npmignore | 23 - .../node_modules/json-stringify-nice/LICENSE | 15 - .../json-stringify-nice/README.md | 105 - .../node_modules/json-stringify-nice/index.js | 38 - .../json-stringify-nice/package.json | 24 - .../tap-snapshots/test-basic.js-TAP.test.js | 127 - .../json-stringify-nice/test/basic.js | 68 - .../json-stringify-safe/.npmignore | 1 - .../json-stringify-safe/CHANGELOG.md | 14 - .../node_modules/json-stringify-safe/LICENSE | 15 - .../node_modules/json-stringify-safe/Makefile | 35 - .../json-stringify-safe/README.md | 52 - .../json-stringify-safe/package.json | 31 - .../json-stringify-safe/stringify.js | 27 - .../json-stringify-safe/test/mocha.opts | 2 - .../test/stringify_test.js | 246 - deps/npm/node_modules/jsonparse/.npmignore | 1 - deps/npm/node_modules/jsonparse/LICENSE | 24 - .../node_modules/jsonparse/README.markdown | 11 - deps/npm/node_modules/jsonparse/bench.js | 26 - .../jsonparse/examples/twitterfeed.js | 30 - deps/npm/node_modules/jsonparse/jsonparse.js | 413 - deps/npm/node_modules/jsonparse/package.json | 22 - .../jsonparse/samplejson/basic.json | 167 - .../jsonparse/samplejson/basic2.json | 180 - .../node_modules/jsonparse/test/big-token.js | 24 - .../node_modules/jsonparse/test/boundary.js | 110 - .../npm/node_modules/jsonparse/test/offset.js | 67 - .../node_modules/jsonparse/test/primitives.js | 57 - .../node_modules/jsonparse/test/surrogate.js | 26 - .../node_modules/jsonparse/test/unvalid.js | 15 - deps/npm/node_modules/jsonparse/test/utf8.js | 38 - deps/npm/node_modules/jsprim/CHANGES.md | 49 - deps/npm/node_modules/jsprim/LICENSE | 19 - deps/npm/node_modules/jsprim/README.md | 287 - deps/npm/node_modules/jsprim/lib/jsprim.js | 735 -- deps/npm/node_modules/jsprim/package.json | 20 - deps/npm/node_modules/just-diff-apply/LICENSE | 21 - .../node_modules/just-diff-apply/README.md | 52 - .../npm/node_modules/just-diff-apply/index.js | 105 - .../node_modules/just-diff-apply/package.json | 23 - deps/npm/node_modules/just-diff/LICENSE | 21 - deps/npm/node_modules/just-diff/README.md | 76 - deps/npm/node_modules/just-diff/index.js | 152 - deps/npm/node_modules/just-diff/package.json | 22 - deps/npm/node_modules/leven/index.d.ts | 21 - deps/npm/node_modules/leven/index.js | 77 - deps/npm/node_modules/leven/license | 9 - deps/npm/node_modules/leven/package.json | 57 - deps/npm/node_modules/leven/readme.md | 50 - .../libnpmaccess/.github/settings.yml | 2 - .../libnpmaccess/.github/workflows/ci.yml | 94 - .../node_modules/libnpmaccess/CHANGELOG.md | 166 - deps/npm/node_modules/libnpmaccess/LICENSE | 13 - deps/npm/node_modules/libnpmaccess/README.md | 247 - deps/npm/node_modules/libnpmaccess/index.js | 184 - .../node_modules/libnpmaccess/package.json | 37 - .../libnpmaccess/test/fixtures/tnock.js | 12 - .../node_modules/libnpmaccess/test/index.js | 417 - deps/npm/node_modules/libnpmfund/CHANGELOG.md | 6 - deps/npm/node_modules/libnpmfund/LICENSE | 15 - deps/npm/node_modules/libnpmfund/README.md | 129 - deps/npm/node_modules/libnpmfund/index.js | 183 - deps/npm/node_modules/libnpmfund/package.json | 52 - deps/npm/node_modules/libnpmhook/CHANGELOG.md | 110 - deps/npm/node_modules/libnpmhook/LICENSE.md | 16 - deps/npm/node_modules/libnpmhook/README.md | 271 - deps/npm/node_modules/libnpmhook/index.js | 70 - deps/npm/node_modules/libnpmhook/package.json | 42 - deps/npm/node_modules/libnpmorg/CHANGELOG.md | 33 - deps/npm/node_modules/libnpmorg/LICENSE | 13 - deps/npm/node_modules/libnpmorg/README.md | 149 - deps/npm/node_modules/libnpmorg/index.js | 64 - deps/npm/node_modules/libnpmorg/package.json | 48 - deps/npm/node_modules/libnpmpack/CHANGELOG.md | 17 - deps/npm/node_modules/libnpmpack/LICENSE | 13 - deps/npm/node_modules/libnpmpack/README.md | 56 - deps/npm/node_modules/libnpmpack/index.js | 48 - deps/npm/node_modules/libnpmpack/package.json | 44 - .../node_modules/libnpmpublish/CHANGELOG.md | 91 - deps/npm/node_modules/libnpmpublish/LICENSE | 13 - deps/npm/node_modules/libnpmpublish/README.md | 105 - deps/npm/node_modules/libnpmpublish/index.js | 4 - .../node_modules/libnpmpublish/package.json | 56 - .../npm/node_modules/libnpmpublish/publish.js | 180 - .../node_modules/libnpmpublish/unpublish.js | 99 - .../node_modules/libnpmsearch/CHANGELOG.md | 57 - deps/npm/node_modules/libnpmsearch/LICENSE | 13 - deps/npm/node_modules/libnpmsearch/README.md | 173 - deps/npm/node_modules/libnpmsearch/index.js | 71 - .../node_modules/libnpmsearch/package.json | 44 - deps/npm/node_modules/libnpmteam/CHANGELOG.md | 40 - deps/npm/node_modules/libnpmteam/LICENSE | 13 - deps/npm/node_modules/libnpmteam/README.md | 189 - deps/npm/node_modules/libnpmteam/index.js | 88 - deps/npm/node_modules/libnpmteam/package.json | 38 - deps/npm/node_modules/libnpmversion/LICENSE | 15 - deps/npm/node_modules/libnpmversion/README.md | 154 - .../node_modules/libnpmversion/lib/commit.js | 14 - .../libnpmversion/lib/enforce-clean.js | 32 - .../node_modules/libnpmversion/lib/index.js | 39 - .../libnpmversion/lib/proc-log.js | 21 - .../libnpmversion/lib/retrieve-tag.js | 11 - .../npm/node_modules/libnpmversion/lib/tag.js | 20 - .../node_modules/libnpmversion/lib/version.js | 116 - .../libnpmversion/lib/write-json.js | 16 - .../node_modules/libnpmversion/package.json | 37 - deps/npm/node_modules/lru-cache/LICENSE | 15 - deps/npm/node_modules/lru-cache/README.md | 166 - deps/npm/node_modules/lru-cache/index.js | 334 - deps/npm/node_modules/lru-cache/package.json | 34 - .../make-fetch-happen/CHANGELOG.md | 654 -- .../node_modules/make-fetch-happen/LICENSE | 16 - .../node_modules/make-fetch-happen/README.md | 404 - .../node_modules/make-fetch-happen/agent.js | 209 - .../node_modules/make-fetch-happen/cache.js | 260 - .../node_modules/make-fetch-happen/index.js | 453 - .../make-fetch-happen/package.json | 72 - .../utils/configure-options.js | 32 - .../utils/initialize-cache.js | 26 - .../utils/is-header-conditional.js | 17 - .../utils/iterable-to-object.js | 9 - .../make-fetch-happen/utils/make-policy.js | 19 - .../node_modules/make-fetch-happen/warning.js | 24 - deps/npm/node_modules/mime-db/HISTORY.md | 446 - deps/npm/node_modules/mime-db/LICENSE | 22 - deps/npm/node_modules/mime-db/README.md | 102 - deps/npm/node_modules/mime-db/db.json | 8176 -------------- deps/npm/node_modules/mime-db/index.js | 11 - deps/npm/node_modules/mime-db/package.json | 59 - deps/npm/node_modules/mime-types/HISTORY.md | 333 - deps/npm/node_modules/mime-types/LICENSE | 23 - deps/npm/node_modules/mime-types/README.md | 123 - deps/npm/node_modules/mime-types/index.js | 188 - deps/npm/node_modules/mime-types/package.json | 44 - deps/npm/node_modules/minimatch/LICENSE | 15 - deps/npm/node_modules/minimatch/README.md | 209 - deps/npm/node_modules/minimatch/minimatch.js | 923 -- deps/npm/node_modules/minimatch/package.json | 30 - .../npm/node_modules/minipass-collect/LICENSE | 15 - .../node_modules/minipass-collect/README.md | 48 - .../node_modules/minipass-collect/index.js | 71 - .../minipass-collect/package.json | 29 - deps/npm/node_modules/minipass-fetch/LICENSE | 28 - .../npm/node_modules/minipass-fetch/README.md | 29 - deps/npm/node_modules/minipass-fetch/index.js | 1 - .../minipass-fetch/lib/abort-error.js | 17 - .../node_modules/minipass-fetch/lib/blob.js | 97 - .../node_modules/minipass-fetch/lib/body.js | 334 - .../minipass-fetch/lib/fetch-error.js | 31 - .../minipass-fetch/lib/headers.js | 250 - .../node_modules/minipass-fetch/lib/index.js | 320 - .../minipass-fetch/lib/request.js | 258 - .../minipass-fetch/lib/response.js | 89 - .../node_modules/minipass-fetch/package.json | 54 - deps/npm/node_modules/minipass-flush/LICENSE | 15 - .../npm/node_modules/minipass-flush/README.md | 47 - deps/npm/node_modules/minipass-flush/index.js | 39 - .../node_modules/minipass-flush/package.json | 39 - .../node_modules/minipass-json-stream/LICENSE | 27 - .../minipass-json-stream/README.md | 189 - .../minipass-json-stream/index.js | 227 - .../minipass-json-stream/package.json | 39 - .../node_modules/minipass-pipeline/LICENSE | 15 - .../node_modules/minipass-pipeline/README.md | 69 - .../node_modules/minipass-pipeline/index.js | 128 - .../minipass-pipeline/package.json | 29 - .../node_modules/minipass-sized/.npmignore | 22 - deps/npm/node_modules/minipass-sized/LICENSE | 15 - .../npm/node_modules/minipass-sized/README.md | 28 - deps/npm/node_modules/minipass-sized/index.js | 67 - .../node_modules/minipass-sized/package.json | 39 - .../node_modules/minipass-sized/test/basic.js | 83 - deps/npm/node_modules/minipass/LICENSE | 15 - deps/npm/node_modules/minipass/README.md | 613 -- deps/npm/node_modules/minipass/index.js | 545 - deps/npm/node_modules/minipass/package.json | 39 - deps/npm/node_modules/minizlib/LICENSE | 26 - deps/npm/node_modules/minizlib/README.md | 60 - deps/npm/node_modules/minizlib/constants.js | 115 - deps/npm/node_modules/minizlib/index.js | 348 - deps/npm/node_modules/minizlib/package.json | 42 - .../node_modules/mkdirp-infer-owner/LICENSE | 15 - .../node_modules/mkdirp-infer-owner/README.md | 16 - .../node_modules/mkdirp-infer-owner/index.js | 26 - .../mkdirp-infer-owner/package.json | 36 - deps/npm/node_modules/mkdirp/CHANGELOG.md | 15 - deps/npm/node_modules/mkdirp/LICENSE | 21 - deps/npm/node_modules/mkdirp/README.markdown | 266 - deps/npm/node_modules/mkdirp/bin/cmd.js | 68 - deps/npm/node_modules/mkdirp/index.js | 31 - deps/npm/node_modules/mkdirp/lib/find-made.js | 29 - .../node_modules/mkdirp/lib/mkdirp-manual.js | 64 - .../node_modules/mkdirp/lib/mkdirp-native.js | 39 - deps/npm/node_modules/mkdirp/lib/opts-arg.js | 23 - deps/npm/node_modules/mkdirp/lib/path-arg.js | 29 - .../npm/node_modules/mkdirp/lib/use-native.js | 10 - deps/npm/node_modules/mkdirp/package.json | 44 - deps/npm/node_modules/ms/index.js | 162 - deps/npm/node_modules/ms/license.md | 21 - deps/npm/node_modules/ms/package.json | 38 - deps/npm/node_modules/ms/readme.md | 59 - deps/npm/node_modules/mute-stream/LICENSE | 15 - deps/npm/node_modules/mute-stream/README.md | 68 - deps/npm/node_modules/mute-stream/mute.js | 145 - .../npm/node_modules/mute-stream/package.json | 29 - .../node-gyp/.github/ISSUE_TEMPLATE.md | 49 - .../node-gyp/.github/PULL_REQUEST_TEMPLATE.md | 17 - .../node-gyp/.github/workflows/tests.yml | 51 - deps/npm/node_modules/node-gyp/CHANGELOG.md | 519 - .../npm/node_modules/node-gyp/CONTRIBUTING.md | 34 - deps/npm/node_modules/node-gyp/LICENSE | 24 - deps/npm/node_modules/node-gyp/README.md | 242 - deps/npm/node_modules/node-gyp/addon.gypi | 185 - .../npm/node_modules/node-gyp/bin/node-gyp.js | 140 - deps/npm/node_modules/node-gyp/gyp/.flake8 | 4 - .../gyp/.github/workflows/Python_tests.yml | 31 - .../gyp/.github/workflows/node-gyp.yml | 40 - .../gyp/.github/workflows/nodejs-windows.yml | 27 - .../gyp/.github/workflows/release-please.yml | 16 - deps/npm/node_modules/node-gyp/gyp/AUTHORS | 16 - .../node_modules/node-gyp/gyp/CHANGELOG.md | 70 - .../node-gyp/gyp/CODE_OF_CONDUCT.md | 4 - .../node_modules/node-gyp/gyp/CONTRIBUTING.md | 32 - deps/npm/node_modules/node-gyp/gyp/LICENSE | 28 - deps/npm/node_modules/node-gyp/gyp/README.md | 7 - .../node-gyp/gyp/data/win/large-pdb-shim.cc | 12 - deps/npm/node_modules/node-gyp/gyp/gyp | 8 - deps/npm/node_modules/node-gyp/gyp/gyp.bat | 5 - .../npm/node_modules/node-gyp/gyp/gyp_main.py | 51 - .../node-gyp/gyp/pylib/gyp/MSVSNew.py | 370 - .../node-gyp/gyp/pylib/gyp/MSVSProject.py | 206 - .../node-gyp/gyp/pylib/gyp/MSVSSettings.py | 1274 --- .../gyp/pylib/gyp/MSVSSettings_test.py | 1550 --- .../node-gyp/gyp/pylib/gyp/MSVSToolFile.py | 59 - .../node-gyp/gyp/pylib/gyp/MSVSUserFile.py | 153 - .../node-gyp/gyp/pylib/gyp/MSVSUtil.py | 271 - .../node-gyp/gyp/pylib/gyp/MSVSVersion.py | 571 - .../node-gyp/gyp/pylib/gyp/__init__.py | 674 -- .../node-gyp/gyp/pylib/gyp/common.py | 661 -- .../node-gyp/gyp/pylib/gyp/common_test.py | 78 - .../node-gyp/gyp/pylib/gyp/easy_xml.py | 163 - .../node-gyp/gyp/pylib/gyp/easy_xml_test.py | 112 - .../node-gyp/gyp/pylib/gyp/flock_tool.py | 55 - .../gyp/pylib/gyp/generator/__init__.py | 0 .../gyp/pylib/gyp/generator/analyzer.py | 809 -- .../gyp/pylib/gyp/generator/android.py | 1174 -- .../node-gyp/gyp/pylib/gyp/generator/cmake.py | 1327 --- .../gyp/generator/compile_commands_json.py | 120 - .../gyp/generator/dump_dependency_json.py | 104 - .../gyp/pylib/gyp/generator/eclipse.py | 470 - .../node-gyp/gyp/pylib/gyp/generator/gypd.py | 89 - .../node-gyp/gyp/pylib/gyp/generator/gypsh.py | 58 - .../node-gyp/gyp/pylib/gyp/generator/make.py | 2514 ----- .../node-gyp/gyp/pylib/gyp/generator/msvs.py | 3980 ------- .../gyp/pylib/gyp/generator/msvs_test.py | 47 - .../node-gyp/gyp/pylib/gyp/generator/ninja.py | 2940 ----- .../gyp/pylib/gyp/generator/ninja_test.py | 55 - .../node-gyp/gyp/pylib/gyp/generator/xcode.py | 1395 --- .../gyp/pylib/gyp/generator/xcode_test.py | 25 - .../node-gyp/gyp/pylib/gyp/input.py | 3149 ------ .../node-gyp/gyp/pylib/gyp/input_test.py | 98 - .../node-gyp/gyp/pylib/gyp/mac_tool.py | 776 -- .../node-gyp/gyp/pylib/gyp/msvs_emulation.py | 1261 --- .../node-gyp/gyp/pylib/gyp/ninja_syntax.py | 174 - .../node-gyp/gyp/pylib/gyp/simple_copy.py | 64 - .../node-gyp/gyp/pylib/gyp/win_tool.py | 385 - .../node-gyp/gyp/pylib/gyp/xcode_emulation.py | 1941 ---- .../node-gyp/gyp/pylib/gyp/xcode_ninja.py | 302 - .../node-gyp/gyp/pylib/gyp/xcodeproj_file.py | 3198 ------ .../node-gyp/gyp/pylib/gyp/xml_fix.py | 65 - .../node-gyp/gyp/requirements_dev.txt | 2 - deps/npm/node_modules/node-gyp/gyp/setup.py | 44 - .../npm/node_modules/node-gyp/gyp/test_gyp.py | 268 - .../node_modules/node-gyp/gyp/tools/README | 15 - .../node-gyp/gyp/tools/Xcode/README | 5 - .../tools/Xcode/Specifications/gyp.pbfilespec | 27 - .../tools/Xcode/Specifications/gyp.xclangspec | 226 - .../node-gyp/gyp/tools/emacs/README | 12 - .../node-gyp/gyp/tools/emacs/gyp-tests.el | 63 - .../node-gyp/gyp/tools/emacs/gyp.el | 275 - .../gyp/tools/emacs/run-unit-tests.sh | 7 - .../gyp/tools/emacs/testdata/media.gyp | 1105 -- .../tools/emacs/testdata/media.gyp.fontified | 1107 -- .../node-gyp/gyp/tools/graphviz.py | 103 - .../node-gyp/gyp/tools/pretty_gyp.py | 157 - .../node-gyp/gyp/tools/pretty_sln.py | 182 - .../node-gyp/gyp/tools/pretty_vcproj.py | 345 - .../node-gyp/lib/Find-VisualStudio.cs | 250 - deps/npm/node_modules/node-gyp/lib/build.js | 204 - deps/npm/node_modules/node-gyp/lib/clean.js | 15 - .../node_modules/node-gyp/lib/configure.js | 386 - .../node-gyp/lib/find-node-directory.js | 63 - .../node_modules/node-gyp/lib/find-python.js | 316 - .../node-gyp/lib/find-visualstudio.js | 434 - deps/npm/node_modules/node-gyp/lib/install.js | 447 - deps/npm/node_modules/node-gyp/lib/list.js | 27 - .../npm/node_modules/node-gyp/lib/node-gyp.js | 210 - .../node-gyp/lib/process-release.js | 147 - deps/npm/node_modules/node-gyp/lib/proxy.js | 92 - deps/npm/node_modules/node-gyp/lib/rebuild.js | 13 - deps/npm/node_modules/node-gyp/lib/remove.js | 46 - deps/npm/node_modules/node-gyp/lib/util.js | 64 - .../node_modules/node-gyp/macOS_Catalina.md | 104 - .../node-gyp/macOS_Catalina_acid_test.sh | 21 - deps/npm/node_modules/node-gyp/package.json | 50 - .../node-gyp/src/win_delay_load_hook.cc | 39 - deps/npm/node_modules/node-gyp/test/common.js | 3 - .../fixtures/VS_2017_BuildTools_minimal.txt | 1 - .../fixtures/VS_2017_Community_workload.txt | 1 - .../test/fixtures/VS_2017_Express.txt | 1 - .../test/fixtures/VS_2017_Unusable.txt | 1 - .../fixtures/VS_2019_BuildTools_minimal.txt | 1 - .../fixtures/VS_2019_Community_workload.txt | 1 - .../test/fixtures/VS_2019_Preview.txt | 1 - .../node-gyp/test/fixtures/ca-bundle.crt | 40 - .../node-gyp/test/fixtures/ca.crt | 21 - .../node-gyp/test/fixtures/server.crt | 21 - .../node-gyp/test/fixtures/server.key | 27 - .../node-gyp/test/fixtures/test-charmap.py | 30 - .../node-gyp/test/process-exec-sync.js | 140 - .../node-gyp/test/simple-proxy.js | 27 - .../node_modules/node-gyp/test/test-addon.js | 150 - .../node-gyp/test/test-configure-python.js | 79 - .../node-gyp/test/test-download.js | 268 - .../test/test-find-accessible-sync.js | 84 - .../node-gyp/test/test-find-node-directory.js | 119 - .../node-gyp/test/test-find-python.js | 230 - .../node-gyp/test/test-find-visualstudio.js | 676 -- .../node-gyp/test/test-install.js | 38 - .../node-gyp/test/test-options.js | 31 - .../node-gyp/test/test-process-release.js | 434 - deps/npm/node_modules/node-gyp/update-gyp.py | 45 - deps/npm/node_modules/nopt/CHANGELOG.md | 58 - deps/npm/node_modules/nopt/LICENSE | 15 - deps/npm/node_modules/nopt/README.md | 213 - deps/npm/node_modules/nopt/bin/nopt.js | 54 - deps/npm/node_modules/nopt/lib/nopt.js | 441 - deps/npm/node_modules/nopt/package.json | 34 - .../normalize-package-data/AUTHORS | 4 - .../normalize-package-data/LICENSE | 30 - .../normalize-package-data/README.md | 106 - .../lib/extract_description.js | 14 - .../normalize-package-data/lib/fixer.js | 418 - .../lib/make_warning.js | 23 - .../normalize-package-data/lib/normalize.js | 39 - .../normalize-package-data/lib/safe_format.js | 9 - .../normalize-package-data/lib/typos.json | 25 - .../lib/warning_messages.json | 30 - .../normalize-package-data/package.json | 32 - .../npm-audit-report/CHANGELOG.md | 81 - .../npm/node_modules/npm-audit-report/LICENSE | 16 - .../node_modules/npm-audit-report/README.md | 65 - .../npm-audit-report/lib/colors.js | 24 - .../npm-audit-report/lib/exit-code.js | 14 - .../npm-audit-report/lib/index.js | 37 - .../npm-audit-report/lib/reporters/detail.js | 84 - .../npm-audit-report/lib/reporters/install.js | 75 - .../npm-audit-report/lib/reporters/json.js | 1 - .../npm-audit-report/lib/reporters/quiet.js | 1 - .../npm-audit-report/package.json | 52 - deps/npm/node_modules/npm-bundled/LICENSE | 15 - deps/npm/node_modules/npm-bundled/README.md | 48 - deps/npm/node_modules/npm-bundled/index.js | 249 - .../npm/node_modules/npm-bundled/package.json | 30 - .../npm-install-checks/CHANGELOG.md | 18 - .../node_modules/npm-install-checks/LICENSE | 27 - .../node_modules/npm-install-checks/README.md | 27 - .../node_modules/npm-install-checks/index.js | 79 - .../npm-install-checks/package.json | 33 - .../.github/settings.yml | 2 - .../npm-normalize-package-bin/.npmignore | 24 - .../npm-normalize-package-bin/LICENSE | 15 - .../npm-normalize-package-bin/README.md | 14 - .../npm-normalize-package-bin/index.js | 60 - .../npm-normalize-package-bin/package.json | 21 - .../npm-normalize-package-bin/test/array.js | 37 - .../npm-normalize-package-bin/test/nobin.js | 35 - .../npm-normalize-package-bin/test/object.js | 141 - .../npm-normalize-package-bin/test/string.js | 37 - .../node_modules/npm-package-arg/CHANGELOG.md | 52 - deps/npm/node_modules/npm-package-arg/LICENSE | 15 - .../node_modules/npm-package-arg/README.md | 83 - deps/npm/node_modules/npm-package-arg/npa.js | 301 - .../node_modules/npm-package-arg/package.json | 40 - deps/npm/node_modules/npm-packlist/LICENSE | 15 - deps/npm/node_modules/npm-packlist/README.md | 146 - .../node_modules/npm-packlist/bin/index.js | 24 - deps/npm/node_modules/npm-packlist/index.js | 459 - .../node_modules/npm-packlist/package.json | 49 - .../npm-pick-manifest/CHANGELOG.md | 219 - .../node_modules/npm-pick-manifest/LICENSE.md | 16 - .../node_modules/npm-pick-manifest/README.md | 157 - .../node_modules/npm-pick-manifest/index.js | 216 - .../npm-pick-manifest/package.json | 44 - .../npm/node_modules/npm-profile/CHANGELOG.md | 62 - deps/npm/node_modules/npm-profile/LICENSE | 15 - deps/npm/node_modules/npm-profile/README.md | 555 - deps/npm/node_modules/npm-profile/index.js | 271 - .../npm/node_modules/npm-profile/package.json | 39 - .../npm-registry-fetch/CHANGELOG.md | 384 - .../npm-registry-fetch/LICENSE.md | 16 - .../node_modules/npm-registry-fetch/README.md | 629 -- .../node_modules/npm-registry-fetch/auth.js | 55 - .../npm-registry-fetch/check-response.js | 128 - .../npm-registry-fetch/default-opts.js | 22 - .../node_modules/npm-registry-fetch/errors.js | 78 - .../node_modules/npm-registry-fetch/index.js | 202 - .../npm-registry-fetch/package.json | 63 - .../npm-registry-fetch/silentlog.js | 14 - .../node_modules/npm-user-validate/LICENSE | 27 - .../node_modules/npm-user-validate/README.md | 6 - .../npm-user-validate/npm-user-validate.js | 61 - .../npm-user-validate/package.json | 29 - deps/npm/node_modules/npmlog/CHANGELOG.md | 49 - deps/npm/node_modules/npmlog/LICENSE | 15 - deps/npm/node_modules/npmlog/README.md | 216 - deps/npm/node_modules/npmlog/log.js | 309 - deps/npm/node_modules/npmlog/package.json | 28 - deps/npm/node_modules/number-is-nan/index.js | 4 - deps/npm/node_modules/number-is-nan/license | 21 - .../node_modules/number-is-nan/package.json | 35 - deps/npm/node_modules/number-is-nan/readme.md | 28 - deps/npm/node_modules/oauth-sign/LICENSE | 55 - deps/npm/node_modules/oauth-sign/README.md | 11 - deps/npm/node_modules/oauth-sign/index.js | 146 - deps/npm/node_modules/oauth-sign/package.json | 23 - deps/npm/node_modules/object-assign/index.js | 90 - deps/npm/node_modules/object-assign/license | 21 - .../node_modules/object-assign/package.json | 42 - deps/npm/node_modules/object-assign/readme.md | 61 - deps/npm/node_modules/once/LICENSE | 15 - deps/npm/node_modules/once/README.md | 79 - deps/npm/node_modules/once/once.js | 42 - deps/npm/node_modules/once/package.json | 33 - deps/npm/node_modules/opener/LICENSE.txt | 47 - deps/npm/node_modules/opener/README.md | 54 - .../npm/node_modules/opener/bin/opener-bin.js | 10 - deps/npm/node_modules/opener/lib/opener.js | 66 - deps/npm/node_modules/opener/package.json | 20 - deps/npm/node_modules/p-map/index.d.ts | 67 - deps/npm/node_modules/p-map/index.js | 81 - deps/npm/node_modules/p-map/license | 9 - deps/npm/node_modules/p-map/package.json | 53 - deps/npm/node_modules/p-map/readme.md | 89 - deps/npm/node_modules/pacote/LICENSE | 15 - deps/npm/node_modules/pacote/README.md | 254 - deps/npm/node_modules/pacote/lib/bin.js | 149 - deps/npm/node_modules/pacote/lib/dir.js | 105 - deps/npm/node_modules/pacote/lib/fetcher.js | 466 - deps/npm/node_modules/pacote/lib/file.js | 93 - deps/npm/node_modules/pacote/lib/git.js | 272 - deps/npm/node_modules/pacote/lib/index.js | 12 - deps/npm/node_modules/pacote/lib/registry.js | 159 - deps/npm/node_modules/pacote/lib/remote.js | 77 - .../node_modules/pacote/lib/util/cache-dir.js | 12 - .../pacote/lib/util/is-package-bin.js | 24 - deps/npm/node_modules/pacote/lib/util/npm.js | 9 - .../node_modules/pacote/lib/util/proc-log.js | 21 - deps/npm/node_modules/pacote/package.json | 63 - .../node_modules/parse-conflict-json/LICENSE | 15 - .../parse-conflict-json/README.md | 42 - .../node_modules/parse-conflict-json/index.js | 92 - .../parse-conflict-json/package.json | 32 - .../node_modules/path-is-absolute/index.js | 20 - .../npm/node_modules/path-is-absolute/license | 21 - .../path-is-absolute/package.json | 43 - .../node_modules/path-is-absolute/readme.md | 59 - deps/npm/node_modules/path-parse/.travis.yml | 9 - deps/npm/node_modules/path-parse/LICENSE | 21 - deps/npm/node_modules/path-parse/README.md | 42 - deps/npm/node_modules/path-parse/index.js | 93 - deps/npm/node_modules/path-parse/package.json | 33 - deps/npm/node_modules/path-parse/test.js | 77 - .../node_modules/performance-now/.npmignore | 1 - .../performance-now/.tm_properties | 7 - .../node_modules/performance-now/.travis.yml | 6 - .../node_modules/performance-now/README.md | 30 - .../performance-now/lib/performance-now.js | 36 - .../lib/performance-now.js.map | 10 - .../node_modules/performance-now/license.txt | 7 - .../node_modules/performance-now/package.json | 35 - .../performance-now/src/index.d.ts | 8 - .../src/performance-now.coffee | 17 - .../performance-now/test/mocha.opts | 3 - .../test/performance-now.coffee | 43 - .../performance-now/test/scripts.coffee | 27 - .../test/scripts/delayed-call.coffee | 11 - .../test/scripts/delayed-require.coffee | 12 - .../test/scripts/difference.coffee | 6 - .../test/scripts/initial-value.coffee | 10 - .../process-nextick-args/index.js | 45 - .../process-nextick-args/license.md | 19 - .../process-nextick-args/package.json | 25 - .../process-nextick-args/readme.md | 18 - .../.github/FUNDING.yml | 3 - .../promise-all-reject-late/.npmignore | 24 - .../promise-all-reject-late/LICENSE | 15 - .../promise-all-reject-late/README.md | 40 - .../promise-all-reject-late/index.js | 27 - .../promise-all-reject-late/package.json | 22 - .../promise-all-reject-late/test/index.js | 88 - .../node_modules/promise-call-limit/LICENSE | 15 - .../node_modules/promise-call-limit/README.md | 30 - .../node_modules/promise-call-limit/index.js | 43 - .../promise-call-limit/package.json | 29 - .../npm/node_modules/promise-inflight/LICENSE | 14 - .../node_modules/promise-inflight/README.md | 34 - .../node_modules/promise-inflight/inflight.js | 36 - .../promise-inflight/package.json | 24 - .../node_modules/promise-retry/.editorconfig | 15 - .../npm/node_modules/promise-retry/.npmignore | 2 - .../node_modules/promise-retry/.travis.yml | 5 - deps/npm/node_modules/promise-retry/LICENSE | 19 - deps/npm/node_modules/promise-retry/README.md | 92 - deps/npm/node_modules/promise-retry/index.js | 52 - .../node_modules/promise-retry/package.json | 37 - .../node_modules/promise-retry/test/test.js | 263 - deps/npm/node_modules/promzard/.npmignore | 1 - deps/npm/node_modules/promzard/LICENSE | 15 - deps/npm/node_modules/promzard/README.md | 133 - .../node_modules/promzard/example/buffer.js | 12 - .../node_modules/promzard/example/index.js | 11 - .../promzard/example/npm-init/README.md | 8 - .../promzard/example/npm-init/init-input.js | 191 - .../promzard/example/npm-init/init.js | 37 - .../promzard/example/npm-init/package.json | 10 - .../promzard/example/substack-input.js | 61 - deps/npm/node_modules/promzard/package.json | 20 - deps/npm/node_modules/promzard/promzard.js | 238 - deps/npm/node_modules/promzard/test/basic.js | 91 - deps/npm/node_modules/promzard/test/buffer.js | 84 - .../node_modules/promzard/test/exports.input | 5 - .../npm/node_modules/promzard/test/exports.js | 48 - deps/npm/node_modules/promzard/test/fn.input | 18 - deps/npm/node_modules/promzard/test/fn.js | 56 - .../node_modules/promzard/test/simple.input | 8 - deps/npm/node_modules/promzard/test/simple.js | 30 - .../node_modules/promzard/test/validate.input | 8 - .../node_modules/promzard/test/validate.js | 20 - deps/npm/node_modules/psl/LICENSE | 9 - deps/npm/node_modules/psl/README.md | 215 - .../node_modules/psl/browserstack-logo.svg | 90 - deps/npm/node_modules/psl/data/rules.json | 8834 --------------- deps/npm/node_modules/psl/dist/psl.js | 9645 ----------------- deps/npm/node_modules/psl/dist/psl.min.js | 1 - deps/npm/node_modules/psl/index.js | 269 - deps/npm/node_modules/psl/package.json | 44 - deps/npm/node_modules/puka/CHANGELOG.md | 31 - deps/npm/node_modules/puka/LICENSE.txt | 18 - deps/npm/node_modules/puka/README.md | 411 - deps/npm/node_modules/puka/index.js | 804 -- deps/npm/node_modules/puka/package.json | 38 - .../npm/node_modules/punycode/LICENSE-MIT.txt | 20 - deps/npm/node_modules/punycode/README.md | 122 - deps/npm/node_modules/punycode/package.json | 58 - .../npm/node_modules/punycode/punycode.es6.js | 441 - deps/npm/node_modules/punycode/punycode.js | 440 - .../node_modules/qrcode-terminal/.travis.yml | 3 - deps/npm/node_modules/qrcode-terminal/LICENSE | 222 - .../node_modules/qrcode-terminal/README.md | 82 - .../qrcode-terminal/bin/qrcode-terminal.js | 101 - .../qrcode-terminal/example/basic.js | 2 - .../qrcode-terminal/example/basic.png | Bin 46426 -> 0 bytes .../qrcode-terminal/example/callback.js | 4 - .../qrcode-terminal/example/small-qrcode.js | 6 - .../node_modules/qrcode-terminal/lib/main.js | 100 - .../node_modules/qrcode-terminal/package.json | 37 - .../node_modules/qrcode-terminal/test/main.js | 63 - .../vendor/QRCode/QR8bitByte.js | 22 - .../vendor/QRCode/QRBitBuffer.js | 38 - .../vendor/QRCode/QRErrorCorrectLevel.js | 7 - .../vendor/QRCode/QRMaskPattern.js | 10 - .../qrcode-terminal/vendor/QRCode/QRMath.js | 44 - .../qrcode-terminal/vendor/QRCode/QRMode.js | 6 - .../vendor/QRCode/QRPolynomial.js | 66 - .../vendor/QRCode/QRRSBlock.js | 298 - .../qrcode-terminal/vendor/QRCode/QRUtil.js | 272 - .../qrcode-terminal/vendor/QRCode/index.js | 462 - deps/npm/node_modules/qs/.editorconfig | 30 - deps/npm/node_modules/qs/.eslintignore | 1 - deps/npm/node_modules/qs/CHANGELOG.md | 226 - deps/npm/node_modules/qs/LICENSE | 28 - deps/npm/node_modules/qs/README.md | 475 - deps/npm/node_modules/qs/dist/qs.js | 638 -- deps/npm/node_modules/qs/lib/formats.js | 18 - deps/npm/node_modules/qs/lib/index.js | 11 - deps/npm/node_modules/qs/lib/parse.js | 174 - deps/npm/node_modules/qs/lib/stringify.js | 210 - deps/npm/node_modules/qs/lib/utils.js | 213 - deps/npm/node_modules/qs/package.json | 52 - deps/npm/node_modules/qs/test/index.js | 7 - deps/npm/node_modules/qs/test/parse.js | 574 - deps/npm/node_modules/qs/test/stringify.js | 597 - deps/npm/node_modules/qs/test/utils.js | 34 - deps/npm/node_modules/read-cmd-shim/LICENSE | 14 - deps/npm/node_modules/read-cmd-shim/README.md | 36 - deps/npm/node_modules/read-cmd-shim/index.js | 69 - .../node_modules/read-cmd-shim/package.json | 29 - .../read-package-json-fast/LICENSE | 15 - .../read-package-json-fast/README.md | 79 - .../read-package-json-fast/index.js | 82 - .../read-package-json-fast/package.json | 31 - .../read-package-json/CHANGELOG.md | 51 - .../node_modules/read-package-json/LICENSE | 15 - .../node_modules/read-package-json/README.md | 151 - .../read-package-json/package.json | 36 - .../read-package-json/read-json.js | 469 - deps/npm/node_modules/read/LICENSE | 15 - deps/npm/node_modules/read/README.md | 53 - deps/npm/node_modules/read/lib/read.js | 113 - deps/npm/node_modules/read/package.json | 27 - .../node_modules/readable-stream/.travis.yml | 34 - .../readable-stream/GOVERNANCE.md | 136 - deps/npm/node_modules/readable-stream/LICENSE | 47 - .../node_modules/readable-stream/README.md | 58 - .../doc/wg-meetings/2015-01-30.md | 60 - .../readable-stream/duplex-browser.js | 1 - .../node_modules/readable-stream/duplex.js | 1 - .../readable-stream/lib/_stream_duplex.js | 131 - .../lib/_stream_passthrough.js | 47 - .../readable-stream/lib/_stream_readable.js | 1019 -- .../readable-stream/lib/_stream_transform.js | 214 - .../readable-stream/lib/_stream_writable.js | 687 -- .../lib/internal/streams/BufferList.js | 79 - .../lib/internal/streams/destroy.js | 74 - .../lib/internal/streams/stream-browser.js | 1 - .../lib/internal/streams/stream.js | 1 - .../node_modules/readable-stream/package.json | 52 - .../readable-stream/passthrough.js | 1 - .../readable-stream/readable-browser.js | 7 - .../node_modules/readable-stream/readable.js | 19 - .../node_modules/readable-stream/transform.js | 1 - .../readable-stream/writable-browser.js | 1 - .../node_modules/readable-stream/writable.js | 8 - .../readdir-scoped-modules/LICENSE | 15 - .../readdir-scoped-modules/README.md | 17 - .../readdir-scoped-modules/package.json | 34 - .../readdir-scoped-modules/readdir.js | 121 - deps/npm/node_modules/request/CHANGELOG.md | 717 -- deps/npm/node_modules/request/LICENSE | 55 - deps/npm/node_modules/request/README.md | 1133 -- deps/npm/node_modules/request/index.js | 155 - deps/npm/node_modules/request/lib/auth.js | 167 - deps/npm/node_modules/request/lib/cookies.js | 38 - .../request/lib/getProxyFromURI.js | 79 - deps/npm/node_modules/request/lib/har.js | 205 - deps/npm/node_modules/request/lib/hawk.js | 89 - deps/npm/node_modules/request/lib/helpers.js | 66 - .../npm/node_modules/request/lib/multipart.js | 112 - deps/npm/node_modules/request/lib/oauth.js | 148 - .../node_modules/request/lib/querystring.js | 50 - deps/npm/node_modules/request/lib/redirect.js | 154 - deps/npm/node_modules/request/lib/tunnel.js | 175 - .../request/node_modules/tough-cookie/LICENSE | 12 - .../node_modules/tough-cookie/README.md | 527 - .../node_modules/tough-cookie/lib/cookie.js | 1482 --- .../node_modules/tough-cookie/lib/memstore.js | 181 - .../tough-cookie/lib/pathMatch.js | 61 - .../tough-cookie/lib/permuteDomain.js | 56 - .../tough-cookie/lib/pubsuffix-psl.js | 38 - .../node_modules/tough-cookie/lib/store.js | 75 - .../node_modules/tough-cookie/lib/version.js | 2 - .../node_modules/tough-cookie/package.json | 78 - .../request/node_modules/uuid/AUTHORS | 5 - .../request/node_modules/uuid/CHANGELOG.md | 119 - .../request/node_modules/uuid/LICENSE.md | 21 - .../request/node_modules/uuid/README.md | 276 - .../request/node_modules/uuid/bin/uuid | 65 - .../request/node_modules/uuid/index.js | 8 - .../node_modules/uuid/lib/bytesToUuid.js | 26 - .../node_modules/uuid/lib/md5-browser.js | 216 - .../request/node_modules/uuid/lib/md5.js | 25 - .../node_modules/uuid/lib/rng-browser.js | 34 - .../request/node_modules/uuid/lib/rng.js | 8 - .../node_modules/uuid/lib/sha1-browser.js | 89 - .../request/node_modules/uuid/lib/sha1.js | 25 - .../request/node_modules/uuid/lib/v35.js | 57 - .../request/node_modules/uuid/package.json | 49 - .../request/node_modules/uuid/v1.js | 109 - .../request/node_modules/uuid/v3.js | 4 - .../request/node_modules/uuid/v4.js | 29 - .../request/node_modules/uuid/v5.js | 3 - deps/npm/node_modules/request/package.json | 86 - deps/npm/node_modules/request/request.js | 1553 --- deps/npm/node_modules/resolve/.editorconfig | 34 - deps/npm/node_modules/resolve/.eslintignore | 1 - deps/npm/node_modules/resolve/LICENSE | 21 - deps/npm/node_modules/resolve/appveyor.yml | 74 - .../npm/node_modules/resolve/example/async.js | 5 - deps/npm/node_modules/resolve/example/sync.js | 3 - deps/npm/node_modules/resolve/index.js | 6 - deps/npm/node_modules/resolve/lib/async.js | 299 - deps/npm/node_modules/resolve/lib/caller.js | 8 - deps/npm/node_modules/resolve/lib/core.js | 53 - deps/npm/node_modules/resolve/lib/core.json | 80 - deps/npm/node_modules/resolve/lib/is-core.js | 5 - .../resolve/lib/node-modules-paths.js | 42 - .../resolve/lib/normalize-options.js | 10 - deps/npm/node_modules/resolve/lib/sync.js | 192 - deps/npm/node_modules/resolve/package.json | 51 - deps/npm/node_modules/resolve/readme.markdown | 250 - deps/npm/node_modules/resolve/test/core.js | 81 - deps/npm/node_modules/resolve/test/dotdot.js | 29 - .../resolve/test/dotdot/abc/index.js | 2 - .../node_modules/resolve/test/dotdot/index.js | 1 - .../resolve/test/faulty_basedir.js | 29 - deps/npm/node_modules/resolve/test/filter.js | 34 - .../node_modules/resolve/test/filter_sync.js | 33 - deps/npm/node_modules/resolve/test/mock.js | 239 - .../node_modules/resolve/test/mock_sync.js | 141 - .../node_modules/resolve/test/module_dir.js | 56 - .../test/module_dir/xmodules/aaa/index.js | 1 - .../test/module_dir/ymodules/aaa/index.js | 1 - .../test/module_dir/zmodules/bbb/main.js | 1 - .../test/module_dir/zmodules/bbb/package.json | 3 - .../resolve/test/node-modules-paths.js | 143 - .../node_modules/resolve/test/node_path.js | 70 - .../resolve/test/node_path/x/aaa/index.js | 1 - .../resolve/test/node_path/x/ccc/index.js | 1 - .../resolve/test/node_path/y/bbb/index.js | 1 - .../resolve/test/node_path/y/ccc/index.js | 1 - .../node_modules/resolve/test/nonstring.js | 9 - .../node_modules/resolve/test/pathfilter.js | 75 - .../resolve/test/pathfilter/deep_ref/main.js | 0 .../node_modules/resolve/test/precedence.js | 23 - .../resolve/test/precedence/aaa.js | 1 - .../resolve/test/precedence/aaa/index.js | 1 - .../resolve/test/precedence/aaa/main.js | 1 - .../resolve/test/precedence/bbb.js | 1 - .../resolve/test/precedence/bbb/main.js | 1 - .../npm/node_modules/resolve/test/resolver.js | 450 - .../resolve/test/resolver/baz/doom.js | 0 .../resolve/test/resolver/baz/package.json | 4 - .../resolve/test/resolver/baz/quux.js | 1 - .../resolve/test/resolver/browser_field/a.js | 0 .../resolve/test/resolver/browser_field/b.js | 0 .../test/resolver/browser_field/package.json | 5 - .../resolve/test/resolver/cup.coffee | 1 - .../resolve/test/resolver/dot_main/index.js | 1 - .../test/resolver/dot_main/package.json | 3 - .../test/resolver/dot_slash_main/index.js | 1 - .../test/resolver/dot_slash_main/package.json | 3 - .../node_modules/resolve/test/resolver/foo.js | 1 - .../test/resolver/incorrect_main/index.js | 2 - .../test/resolver/incorrect_main/package.json | 3 - .../test/resolver/invalid_main/package.json | 7 - .../resolve/test/resolver/mug.coffee | 0 .../node_modules/resolve/test/resolver/mug.js | 0 .../test/resolver/multirepo/lerna.json | 6 - .../test/resolver/multirepo/package.json | 20 - .../multirepo/packages/package-a/index.js | 35 - .../multirepo/packages/package-a/package.json | 14 - .../multirepo/packages/package-b/index.js | 0 .../multirepo/packages/package-b/package.json | 14 - .../resolver/nested_symlinks/mylib/async.js | 26 - .../nested_symlinks/mylib/package.json | 15 - .../resolver/nested_symlinks/mylib/sync.js | 12 - .../test/resolver/other_path/lib/other-lib.js | 0 .../resolve/test/resolver/other_path/root.js | 0 .../resolve/test/resolver/quux/foo/index.js | 1 - .../resolve/test/resolver/same_names/foo.js | 1 - .../test/resolver/same_names/foo/index.js | 1 - .../resolver/symlinked/_/node_modules/foo.js | 0 .../symlinked/_/symlink_target/.gitkeep | 0 .../test/resolver/symlinked/package/bar.js | 1 - .../resolver/symlinked/package/package.json | 3 - .../test/resolver/without_basedir/main.js | 5 - .../resolve/test/resolver_sync.js | 358 - .../resolve/test/shadowed_core.js | 54 - .../shadowed_core/node_modules/util/index.js | 0 deps/npm/node_modules/resolve/test/subdirs.js | 13 - .../npm/node_modules/resolve/test/symlinks.js | 176 - deps/npm/node_modules/retry/.npmignore | 2 - deps/npm/node_modules/retry/License | 21 - deps/npm/node_modules/retry/Makefile | 22 - deps/npm/node_modules/retry/Readme.md | 215 - deps/npm/node_modules/retry/equation.gif | Bin 1209 -> 0 bytes deps/npm/node_modules/retry/example/dns.js | 31 - deps/npm/node_modules/retry/example/stop.js | 40 - deps/npm/node_modules/retry/index.js | 1 - deps/npm/node_modules/retry/lib/retry.js | 99 - .../node_modules/retry/lib/retry_operation.js | 143 - deps/npm/node_modules/retry/package.json | 24 - deps/npm/node_modules/retry/test/common.js | 10 - .../retry/test/integration/test-forever.js | 24 - .../test/integration/test-retry-operation.js | 176 - .../retry/test/integration/test-retry-wrap.js | 77 - .../retry/test/integration/test-timeouts.js | 69 - deps/npm/node_modules/retry/test/runner.js | 5 - deps/npm/node_modules/rimraf/CHANGELOG.md | 65 - deps/npm/node_modules/rimraf/LICENSE | 15 - deps/npm/node_modules/rimraf/README.md | 101 - deps/npm/node_modules/rimraf/bin.js | 68 - deps/npm/node_modules/rimraf/package.json | 32 - deps/npm/node_modules/rimraf/rimraf.js | 360 - deps/npm/node_modules/safe-buffer/LICENSE | 21 - deps/npm/node_modules/safe-buffer/README.md | 584 - deps/npm/node_modules/safe-buffer/index.d.ts | 187 - deps/npm/node_modules/safe-buffer/index.js | 62 - .../npm/node_modules/safe-buffer/package.json | 37 - deps/npm/node_modules/safer-buffer/LICENSE | 21 - .../safer-buffer/Porting-Buffer.md | 268 - deps/npm/node_modules/safer-buffer/Readme.md | 156 - .../node_modules/safer-buffer/dangerous.js | 58 - .../node_modules/safer-buffer/package.json | 34 - deps/npm/node_modules/safer-buffer/safer.js | 77 - deps/npm/node_modules/safer-buffer/tests.js | 406 - deps/npm/node_modules/semver/CHANGELOG.md | 111 - deps/npm/node_modules/semver/LICENSE | 15 - deps/npm/node_modules/semver/README.md | 566 - deps/npm/node_modules/semver/bin/semver.js | 173 - .../node_modules/semver/classes/comparator.js | 135 - deps/npm/node_modules/semver/classes/index.js | 5 - deps/npm/node_modules/semver/classes/range.js | 510 - .../npm/node_modules/semver/classes/semver.js | 287 - .../node_modules/semver/functions/clean.js | 6 - deps/npm/node_modules/semver/functions/cmp.js | 48 - .../node_modules/semver/functions/coerce.js | 51 - .../semver/functions/compare-build.js | 7 - .../semver/functions/compare-loose.js | 3 - .../node_modules/semver/functions/compare.js | 5 - .../npm/node_modules/semver/functions/diff.js | 23 - deps/npm/node_modules/semver/functions/eq.js | 3 - deps/npm/node_modules/semver/functions/gt.js | 3 - deps/npm/node_modules/semver/functions/gte.js | 3 - deps/npm/node_modules/semver/functions/inc.js | 15 - deps/npm/node_modules/semver/functions/lt.js | 3 - deps/npm/node_modules/semver/functions/lte.js | 3 - .../node_modules/semver/functions/major.js | 3 - .../node_modules/semver/functions/minor.js | 3 - deps/npm/node_modules/semver/functions/neq.js | 3 - .../node_modules/semver/functions/parse.js | 33 - .../node_modules/semver/functions/patch.js | 3 - .../semver/functions/prerelease.js | 6 - .../node_modules/semver/functions/rcompare.js | 3 - .../node_modules/semver/functions/rsort.js | 3 - .../semver/functions/satisfies.js | 10 - .../npm/node_modules/semver/functions/sort.js | 3 - .../node_modules/semver/functions/valid.js | 6 - deps/npm/node_modules/semver/index.js | 48 - .../node_modules/semver/internal/constants.js | 17 - .../npm/node_modules/semver/internal/debug.js | 9 - .../semver/internal/identifiers.js | 23 - .../semver/internal/parse-options.js | 11 - deps/npm/node_modules/semver/internal/re.js | 182 - deps/npm/node_modules/semver/package.json | 41 - deps/npm/node_modules/semver/preload.js | 2 - deps/npm/node_modules/semver/range.bnf | 16 - deps/npm/node_modules/semver/ranges/gtr.js | 4 - .../node_modules/semver/ranges/intersects.js | 7 - deps/npm/node_modules/semver/ranges/ltr.js | 4 - .../semver/ranges/max-satisfying.js | 25 - .../semver/ranges/min-satisfying.js | 24 - .../node_modules/semver/ranges/min-version.js | 60 - .../npm/node_modules/semver/ranges/outside.js | 80 - .../node_modules/semver/ranges/simplify.js | 44 - deps/npm/node_modules/semver/ranges/subset.js | 162 - .../semver/ranges/to-comparators.js | 8 - deps/npm/node_modules/semver/ranges/valid.js | 11 - .../node_modules/set-blocking/CHANGELOG.md | 26 - .../npm/node_modules/set-blocking/LICENSE.txt | 14 - deps/npm/node_modules/set-blocking/README.md | 31 - deps/npm/node_modules/set-blocking/index.js | 7 - .../node_modules/set-blocking/package.json | 42 - .../npm/node_modules/signal-exit/CHANGELOG.md | 35 - deps/npm/node_modules/signal-exit/LICENSE.txt | 16 - deps/npm/node_modules/signal-exit/README.md | 39 - deps/npm/node_modules/signal-exit/index.js | 163 - .../npm/node_modules/signal-exit/package.json | 38 - deps/npm/node_modules/signal-exit/signals.js | 53 - .../smart-buffer/.prettierrc.yaml | 5 - .../npm/node_modules/smart-buffer/.travis.yml | 13 - deps/npm/node_modules/smart-buffer/LICENSE | 20 - deps/npm/node_modules/smart-buffer/README.md | 632 -- .../smart-buffer/build/smartbuffer.js | 1233 --- .../smart-buffer/build/smartbuffer.js.map | 1 - .../node_modules/smart-buffer/build/utils.js | 108 - .../smart-buffer/build/utils.js.map | 1 - .../smart-buffer/docs/CHANGELOG.md | 70 - .../smart-buffer/docs/README_v3.md | 367 - .../node_modules/smart-buffer/docs/ROADMAP.md | 0 .../node_modules/smart-buffer/package.json | 78 - .../smart-buffer/typings/smartbuffer.d.ts | 755 -- .../smart-buffer/typings/utils.d.ts | 66 - .../node_modules/socks-proxy-agent/README.md | 152 - .../socks-proxy-agent/dist/agent.d.ts | 21 - .../socks-proxy-agent/dist/agent.js | 182 - .../socks-proxy-agent/dist/agent.js.map | 1 - .../socks-proxy-agent/dist/index.d.ts | 18 - .../socks-proxy-agent/dist/index.js | 14 - .../socks-proxy-agent/dist/index.js.map | 1 - .../socks-proxy-agent/package.json | 64 - deps/npm/node_modules/socks/.prettierrc.yaml | 7 - deps/npm/node_modules/socks/.travis.yml | 11 - deps/npm/node_modules/socks/LICENSE | 20 - deps/npm/node_modules/socks/README.md | 670 -- .../socks/build/client/socksclient.js | 742 -- .../socks/build/client/socksclient.js.map | 1 - .../socks/build/common/constants.js | 106 - .../socks/build/common/constants.js.map | 1 - .../socks/build/common/helpers.js | 101 - .../socks/build/common/helpers.js.map | 1 - .../socks/build/common/receivebuffer.js | 43 - .../socks/build/common/receivebuffer.js.map | 1 - .../node_modules/socks/build/common/util.js | 26 - .../socks/build/common/util.js.map | 1 - deps/npm/node_modules/socks/build/index.js | 14 - .../npm/node_modules/socks/build/index.js.map | 1 - .../node_modules/socks/docs/examples/index.md | 17 - .../examples/javascript/associateExample.md | 90 - .../docs/examples/javascript/bindExample.md | 83 - .../examples/javascript/connectExample.md | 258 - .../examples/typescript/associateExample.md | 93 - .../docs/examples/typescript/bindExample.md | 86 - .../examples/typescript/connectExample.md | 265 - deps/npm/node_modules/socks/docs/index.md | 5 - .../socks/docs/migratingFromV1.md | 86 - deps/npm/node_modules/socks/package.json | 85 - .../socks/typings/client/socksclient.d.ts | 155 - .../socks/typings/common/constants.d.ts | 141 - .../socks/typings/common/helpers.d.ts | 13 - .../socks/typings/common/receiveBuffer.d.ts | 12 - .../socks/typings/common/util.d.ts | 17 - .../npm/node_modules/socks/typings/index.d.ts | 1 - .../node_modules/sorted-object/LICENSE.txt | 47 - .../sorted-object/lib/sorted-object.js | 11 - .../node_modules/sorted-object/package.json | 25 - deps/npm/node_modules/spdx-correct/LICENSE | 202 - deps/npm/node_modules/spdx-correct/README.md | 14 - deps/npm/node_modules/spdx-correct/index.js | 364 - .../node_modules/spdx-correct/package.json | 39 - .../node_modules/spdx-exceptions/README.md | 36 - .../node_modules/spdx-exceptions/index.json | 40 - .../node_modules/spdx-exceptions/package.json | 17 - .../spdx-expression-parse/AUTHORS | 4 - .../spdx-expression-parse/LICENSE | 22 - .../spdx-expression-parse/README.md | 91 - .../spdx-expression-parse/index.js | 8 - .../spdx-expression-parse/package.json | 39 - .../spdx-expression-parse/parse.js | 138 - .../spdx-expression-parse/scan.js | 131 - .../node_modules/spdx-license-ids/README.md | 52 - .../spdx-license-ids/deprecated.json | 26 - .../node_modules/spdx-license-ids/index.json | 420 - .../spdx-license-ids/package.json | 40 - deps/npm/node_modules/sshpk/.npmignore | 9 - deps/npm/node_modules/sshpk/.travis.yml | 11 - deps/npm/node_modules/sshpk/LICENSE | 18 - deps/npm/node_modules/sshpk/README.md | 804 -- deps/npm/node_modules/sshpk/bin/sshpk-conv | 243 - deps/npm/node_modules/sshpk/bin/sshpk-sign | 191 - deps/npm/node_modules/sshpk/bin/sshpk-verify | 167 - deps/npm/node_modules/sshpk/lib/algs.js | 168 - .../npm/node_modules/sshpk/lib/certificate.js | 410 - deps/npm/node_modules/sshpk/lib/dhe.js | 397 - deps/npm/node_modules/sshpk/lib/ed-compat.js | 92 - deps/npm/node_modules/sshpk/lib/errors.js | 84 - .../npm/node_modules/sshpk/lib/fingerprint.js | 220 - .../node_modules/sshpk/lib/formats/auto.js | 124 - .../node_modules/sshpk/lib/formats/dnssec.js | 287 - .../sshpk/lib/formats/openssh-cert.js | 352 - .../npm/node_modules/sshpk/lib/formats/pem.js | 290 - .../node_modules/sshpk/lib/formats/pkcs1.js | 373 - .../node_modules/sshpk/lib/formats/pkcs8.js | 631 -- .../node_modules/sshpk/lib/formats/putty.js | 99 - .../node_modules/sshpk/lib/formats/rfc4253.js | 166 - .../sshpk/lib/formats/ssh-private.js | 262 - .../npm/node_modules/sshpk/lib/formats/ssh.js | 115 - .../sshpk/lib/formats/x509-pem.js | 88 - .../node_modules/sshpk/lib/formats/x509.js | 752 -- deps/npm/node_modules/sshpk/lib/identity.js | 373 - deps/npm/node_modules/sshpk/lib/index.js | 40 - deps/npm/node_modules/sshpk/lib/key.js | 294 - .../npm/node_modules/sshpk/lib/private-key.js | 246 - deps/npm/node_modules/sshpk/lib/signature.js | 314 - deps/npm/node_modules/sshpk/lib/ssh-buffer.js | 149 - deps/npm/node_modules/sshpk/lib/utils.js | 404 - .../node_modules/sshpk/man/man1/sshpk-conv.1 | 135 - .../node_modules/sshpk/man/man1/sshpk-sign.1 | 81 - .../sshpk/man/man1/sshpk-verify.1 | 68 - deps/npm/node_modules/sshpk/package.json | 60 - deps/npm/node_modules/ssri/CHANGELOG.md | 348 - deps/npm/node_modules/ssri/LICENSE.md | 16 - deps/npm/node_modules/ssri/README.md | 528 - deps/npm/node_modules/ssri/index.js | 469 - deps/npm/node_modules/ssri/package.json | 52 - deps/npm/node_modules/string-width/index.js | 36 - deps/npm/node_modules/string-width/license | 9 - .../node_modules/ansi-regex/index.js | 10 - .../node_modules/ansi-regex/license | 9 - .../node_modules/ansi-regex/package.json | 53 - .../node_modules/ansi-regex/readme.md | 46 - .../node_modules/strip-ansi/index.js | 4 - .../node_modules/strip-ansi/license | 9 - .../node_modules/strip-ansi/package.json | 52 - .../node_modules/strip-ansi/readme.md | 39 - .../node_modules/string-width/package.json | 55 - deps/npm/node_modules/string-width/readme.md | 42 - .../node_modules/string_decoder/.travis.yml | 50 - deps/npm/node_modules/string_decoder/LICENSE | 48 - .../npm/node_modules/string_decoder/README.md | 47 - .../string_decoder/lib/string_decoder.js | 296 - .../node_modules/string_decoder/package.json | 31 - .../stringify-package/CHANGELOG.md | 16 - .../node_modules/stringify-package/LICENSE | 13 - .../node_modules/stringify-package/README.md | 55 - .../node_modules/stringify-package/index.js | 18 - .../stringify-package/package.json | 38 - deps/npm/node_modules/strip-ansi/index.js | 6 - deps/npm/node_modules/strip-ansi/license | 21 - deps/npm/node_modules/strip-ansi/package.json | 57 - deps/npm/node_modules/strip-ansi/readme.md | 33 - .../node_modules/supports-color/browser.js | 5 - deps/npm/node_modules/supports-color/index.js | 135 - deps/npm/node_modules/supports-color/license | 9 - .../node_modules/supports-color/package.json | 53 - .../npm/node_modules/supports-color/readme.md | 76 - deps/npm/node_modules/tar/CHANGELOG.md | 68 - deps/npm/node_modules/tar/LICENSE | 15 - deps/npm/node_modules/tar/README.md | 1031 -- deps/npm/node_modules/tar/index.js | 18 - deps/npm/node_modules/tar/lib/create.js | 105 - deps/npm/node_modules/tar/lib/extract.js | 112 - .../node_modules/tar/lib/get-write-flag.js | 20 - deps/npm/node_modules/tar/lib/header.js | 288 - .../node_modules/tar/lib/high-level-opt.js | 29 - .../npm/node_modules/tar/lib/large-numbers.js | 97 - deps/npm/node_modules/tar/lib/list.js | 128 - deps/npm/node_modules/tar/lib/mkdir.js | 206 - deps/npm/node_modules/tar/lib/mode-fix.js | 24 - deps/npm/node_modules/tar/lib/pack.js | 403 - deps/npm/node_modules/tar/lib/parse.js | 483 - .../node_modules/tar/lib/path-reservations.js | 125 - deps/npm/node_modules/tar/lib/pax.js | 145 - deps/npm/node_modules/tar/lib/read-entry.js | 98 - deps/npm/node_modules/tar/lib/replace.js | 219 - deps/npm/node_modules/tar/lib/types.js | 44 - deps/npm/node_modules/tar/lib/unpack.js | 680 -- deps/npm/node_modules/tar/lib/update.js | 36 - deps/npm/node_modules/tar/lib/warn-mixin.js | 21 - deps/npm/node_modules/tar/lib/winchars.js | 23 - deps/npm/node_modules/tar/lib/write-entry.js | 436 - deps/npm/node_modules/tar/package.json | 48 - deps/npm/node_modules/text-table/.travis.yml | 4 - deps/npm/node_modules/text-table/LICENSE | 18 - .../node_modules/text-table/example/align.js | 8 - .../node_modules/text-table/example/center.js | 8 - .../text-table/example/dotalign.js | 9 - .../text-table/example/doubledot.js | 11 - .../node_modules/text-table/example/table.js | 6 - deps/npm/node_modules/text-table/index.js | 86 - deps/npm/node_modules/text-table/package.json | 44 - .../node_modules/text-table/readme.markdown | 134 - .../npm/node_modules/text-table/test/align.js | 18 - .../text-table/test/ansi-colors.js | 32 - .../node_modules/text-table/test/center.js | 18 - .../node_modules/text-table/test/dotalign.js | 20 - .../node_modules/text-table/test/doubledot.js | 24 - .../npm/node_modules/text-table/test/table.js | 14 - .../tiny-relative-date/LICENSE.md | 21 - .../node_modules/tiny-relative-date/README.md | 120 - .../tiny-relative-date/lib/factory.js | 100 - .../tiny-relative-date/lib/index.js | 18 - .../tiny-relative-date/package.json | 39 - .../tiny-relative-date/src/factory.js | 89 - .../tiny-relative-date/src/index.js | 4 - .../tiny-relative-date/translations/da.js | 31 - .../tiny-relative-date/translations/de.js | 31 - .../translations/en-short.js | 31 - .../tiny-relative-date/translations/en.js | 31 - .../tiny-relative-date/translations/es.js | 31 - deps/npm/node_modules/treeverse/LICENSE | 15 - deps/npm/node_modules/treeverse/README.md | 129 - deps/npm/node_modules/treeverse/index.js | 4 - .../npm/node_modules/treeverse/lib/breadth.js | 66 - .../treeverse/lib/depth-descent.js | 87 - deps/npm/node_modules/treeverse/lib/depth.js | 74 - deps/npm/node_modules/treeverse/package.json | 37 - deps/npm/node_modules/tunnel-agent/LICENSE | 55 - deps/npm/node_modules/tunnel-agent/README.md | 4 - deps/npm/node_modules/tunnel-agent/index.js | 244 - .../node_modules/tunnel-agent/package.json | 22 - deps/npm/node_modules/tweetnacl/.npmignore | 4 - deps/npm/node_modules/tweetnacl/AUTHORS.md | 28 - deps/npm/node_modules/tweetnacl/CHANGELOG.md | 221 - deps/npm/node_modules/tweetnacl/LICENSE | 24 - .../tweetnacl/PULL_REQUEST_TEMPLATE.md | 20 - deps/npm/node_modules/tweetnacl/README.md | 459 - deps/npm/node_modules/tweetnacl/nacl-fast.js | 2388 ---- .../node_modules/tweetnacl/nacl-fast.min.js | 2 - deps/npm/node_modules/tweetnacl/nacl.d.ts | 98 - deps/npm/node_modules/tweetnacl/nacl.js | 1175 -- deps/npm/node_modules/tweetnacl/nacl.min.js | 1 - deps/npm/node_modules/tweetnacl/package.json | 58 - .../typedarray-to-buffer/.airtap.yml | 15 - .../typedarray-to-buffer/.travis.yml | 11 - .../node_modules/typedarray-to-buffer/LICENSE | 21 - .../typedarray-to-buffer/README.md | 85 - .../typedarray-to-buffer/index.js | 25 - .../typedarray-to-buffer/package.json | 50 - .../typedarray-to-buffer/test/basic.js | 50 - deps/npm/node_modules/unique-filename/LICENSE | 5 - .../node_modules/unique-filename/README.md | 33 - .../coverage/__root__/index.html | 73 - .../coverage/__root__/index.js.html | 69 - .../unique-filename/coverage/base.css | 182 - .../unique-filename/coverage/index.html | 73 - .../unique-filename/coverage/prettify.css | 1 - .../unique-filename/coverage/prettify.js | 1 - .../coverage/sort-arrow-sprite.png | Bin 209 -> 0 bytes .../unique-filename/coverage/sorter.js | 156 - .../npm/node_modules/unique-filename/index.js | 8 - .../node_modules/unique-filename/package.json | 27 - .../unique-filename/test/index.js | 23 - deps/npm/node_modules/unique-slug/.travis.yml | 10 - deps/npm/node_modules/unique-slug/LICENSE | 15 - deps/npm/node_modules/unique-slug/README.md | 19 - deps/npm/node_modules/unique-slug/index.js | 11 - .../npm/node_modules/unique-slug/package.json | 23 - .../node_modules/unique-slug/test/index.js | 13 - deps/npm/node_modules/uri-js/LICENSE | 11 - deps/npm/node_modules/uri-js/README.md | 201 - .../node_modules/uri-js/dist/es5/uri.all.d.ts | 59 - .../node_modules/uri-js/dist/es5/uri.all.js | 1443 --- .../uri-js/dist/es5/uri.all.js.map | 1 - .../uri-js/dist/es5/uri.all.min.d.ts | 59 - .../uri-js/dist/es5/uri.all.min.js | 3 - .../uri-js/dist/es5/uri.all.min.js.map | 1 - .../uri-js/dist/esnext/index.d.ts | 1 - .../node_modules/uri-js/dist/esnext/index.js | 17 - .../uri-js/dist/esnext/index.js.map | 1 - .../uri-js/dist/esnext/regexps-iri.d.ts | 3 - .../uri-js/dist/esnext/regexps-iri.js | 3 - .../uri-js/dist/esnext/regexps-iri.js.map | 1 - .../uri-js/dist/esnext/regexps-uri.d.ts | 4 - .../uri-js/dist/esnext/regexps-uri.js | 42 - .../uri-js/dist/esnext/regexps-uri.js.map | 1 - .../uri-js/dist/esnext/schemes/http.d.ts | 3 - .../uri-js/dist/esnext/schemes/http.js | 28 - .../uri-js/dist/esnext/schemes/http.js.map | 1 - .../uri-js/dist/esnext/schemes/https.d.ts | 3 - .../uri-js/dist/esnext/schemes/https.js | 9 - .../uri-js/dist/esnext/schemes/https.js.map | 1 - .../uri-js/dist/esnext/schemes/mailto.d.ts | 12 - .../uri-js/dist/esnext/schemes/mailto.js | 148 - .../uri-js/dist/esnext/schemes/mailto.js.map | 1 - .../uri-js/dist/esnext/schemes/urn-uuid.d.ts | 7 - .../uri-js/dist/esnext/schemes/urn-uuid.js | 23 - .../dist/esnext/schemes/urn-uuid.js.map | 1 - .../uri-js/dist/esnext/schemes/urn.d.ts | 10 - .../uri-js/dist/esnext/schemes/urn.js | 49 - .../uri-js/dist/esnext/schemes/urn.js.map | 1 - .../uri-js/dist/esnext/schemes/ws.d.ts | 7 - .../uri-js/dist/esnext/schemes/ws.js | 41 - .../uri-js/dist/esnext/schemes/ws.js.map | 1 - .../uri-js/dist/esnext/schemes/wss.d.ts | 3 - .../uri-js/dist/esnext/schemes/wss.js | 9 - .../uri-js/dist/esnext/schemes/wss.js.map | 1 - .../node_modules/uri-js/dist/esnext/uri.d.ts | 59 - .../node_modules/uri-js/dist/esnext/uri.js | 480 - .../uri-js/dist/esnext/uri.js.map | 1 - .../node_modules/uri-js/dist/esnext/util.d.ts | 6 - .../node_modules/uri-js/dist/esnext/util.js | 36 - .../uri-js/dist/esnext/util.js.map | 1 - deps/npm/node_modules/uri-js/package.json | 77 - deps/npm/node_modules/uri-js/yarn.lock | 1923 ---- .../node_modules/util-deprecate/History.md | 16 - deps/npm/node_modules/util-deprecate/LICENSE | 24 - .../npm/node_modules/util-deprecate/README.md | 53 - .../node_modules/util-deprecate/browser.js | 67 - deps/npm/node_modules/util-deprecate/node.js | 6 - .../node_modules/util-deprecate/package.json | 27 - deps/npm/node_modules/uuid/CHANGELOG.md | 229 - deps/npm/node_modules/uuid/CONTRIBUTING.md | 18 - deps/npm/node_modules/uuid/LICENSE.md | 9 - deps/npm/node_modules/uuid/README.md | 505 - deps/npm/node_modules/uuid/dist/bin/uuid | 2 - .../uuid/dist/esm-browser/index.js | 9 - .../node_modules/uuid/dist/esm-browser/md5.js | 215 - .../node_modules/uuid/dist/esm-browser/nil.js | 1 - .../uuid/dist/esm-browser/parse.js | 35 - .../uuid/dist/esm-browser/regex.js | 1 - .../node_modules/uuid/dist/esm-browser/rng.js | 19 - .../uuid/dist/esm-browser/sha1.js | 96 - .../uuid/dist/esm-browser/stringify.js | 30 - .../node_modules/uuid/dist/esm-browser/v1.js | 95 - .../node_modules/uuid/dist/esm-browser/v3.js | 4 - .../node_modules/uuid/dist/esm-browser/v35.js | 64 - .../node_modules/uuid/dist/esm-browser/v4.js | 24 - .../node_modules/uuid/dist/esm-browser/v5.js | 4 - .../uuid/dist/esm-browser/validate.js | 7 - .../uuid/dist/esm-browser/version.js | 11 - .../node_modules/uuid/dist/esm-node/index.js | 9 - .../node_modules/uuid/dist/esm-node/md5.js | 13 - .../node_modules/uuid/dist/esm-node/nil.js | 1 - .../node_modules/uuid/dist/esm-node/parse.js | 35 - .../node_modules/uuid/dist/esm-node/regex.js | 1 - .../node_modules/uuid/dist/esm-node/rng.js | 12 - .../node_modules/uuid/dist/esm-node/sha1.js | 13 - .../uuid/dist/esm-node/stringify.js | 29 - .../npm/node_modules/uuid/dist/esm-node/v1.js | 95 - .../npm/node_modules/uuid/dist/esm-node/v3.js | 4 - .../node_modules/uuid/dist/esm-node/v35.js | 64 - .../npm/node_modules/uuid/dist/esm-node/v4.js | 24 - .../npm/node_modules/uuid/dist/esm-node/v5.js | 4 - .../uuid/dist/esm-node/validate.js | 7 - .../uuid/dist/esm-node/version.js | 11 - deps/npm/node_modules/uuid/dist/index.js | 79 - .../npm/node_modules/uuid/dist/md5-browser.js | 223 - deps/npm/node_modules/uuid/dist/md5.js | 23 - deps/npm/node_modules/uuid/dist/nil.js | 8 - deps/npm/node_modules/uuid/dist/parse.js | 45 - deps/npm/node_modules/uuid/dist/regex.js | 8 - .../npm/node_modules/uuid/dist/rng-browser.js | 26 - deps/npm/node_modules/uuid/dist/rng.js | 24 - .../node_modules/uuid/dist/sha1-browser.js | 104 - deps/npm/node_modules/uuid/dist/sha1.js | 23 - deps/npm/node_modules/uuid/dist/stringify.js | 39 - .../node_modules/uuid/dist/umd/uuid.min.js | 1 - .../node_modules/uuid/dist/umd/uuidNIL.min.js | 1 - .../uuid/dist/umd/uuidParse.min.js | 1 - .../uuid/dist/umd/uuidStringify.min.js | 1 - .../uuid/dist/umd/uuidValidate.min.js | 1 - .../uuid/dist/umd/uuidVersion.min.js | 1 - .../node_modules/uuid/dist/umd/uuidv1.min.js | 1 - .../node_modules/uuid/dist/umd/uuidv3.min.js | 1 - .../node_modules/uuid/dist/umd/uuidv4.min.js | 1 - .../node_modules/uuid/dist/umd/uuidv5.min.js | 1 - deps/npm/node_modules/uuid/dist/uuid-bin.js | 85 - deps/npm/node_modules/uuid/dist/v1.js | 107 - deps/npm/node_modules/uuid/dist/v3.js | 16 - deps/npm/node_modules/uuid/dist/v35.js | 78 - deps/npm/node_modules/uuid/dist/v4.js | 37 - deps/npm/node_modules/uuid/dist/v5.js | 16 - deps/npm/node_modules/uuid/dist/validate.js | 17 - deps/npm/node_modules/uuid/dist/version.js | 21 - deps/npm/node_modules/uuid/package.json | 135 - deps/npm/node_modules/uuid/wrapper.mjs | 10 - .../validate-npm-package-license/LICENSE | 202 - .../validate-npm-package-license/README.md | 113 - .../validate-npm-package-license/index.js | 86 - .../validate-npm-package-license/package.json | 28 - .../validate-npm-package-name/.npmignore | 1 - .../validate-npm-package-name/.travis.yml | 6 - .../validate-npm-package-name/LICENSE | 6 - .../validate-npm-package-name/README.md | 120 - .../validate-npm-package-name/index.js | 105 - .../validate-npm-package-name/package.json | 38 - .../validate-npm-package-name/test/index.js | 109 - deps/npm/node_modules/verror/.npmignore | 9 - deps/npm/node_modules/verror/CHANGES.md | 28 - deps/npm/node_modules/verror/LICENSE | 19 - deps/npm/node_modules/verror/README.md | 528 - deps/npm/node_modules/verror/lib/verror.js | 451 - deps/npm/node_modules/verror/package.json | 22 - deps/npm/node_modules/walk-up-path/LICENSE | 15 - deps/npm/node_modules/walk-up-path/README.md | 46 - deps/npm/node_modules/walk-up-path/index.js | 11 - .../node_modules/walk-up-path/package.json | 28 - deps/npm/node_modules/wcwidth/.npmignore | 1 - deps/npm/node_modules/wcwidth/LICENSE | 30 - deps/npm/node_modules/wcwidth/Readme.md | 33 - deps/npm/node_modules/wcwidth/combining.js | 50 - deps/npm/node_modules/wcwidth/docs/index.md | 65 - deps/npm/node_modules/wcwidth/index.js | 99 - deps/npm/node_modules/wcwidth/package.json | 42 - deps/npm/node_modules/wcwidth/test/index.js | 64 - deps/npm/node_modules/which/CHANGELOG.md | 166 - deps/npm/node_modules/which/LICENSE | 15 - deps/npm/node_modules/which/README.md | 54 - deps/npm/node_modules/which/bin/node-which | 52 - deps/npm/node_modules/which/package.json | 43 - deps/npm/node_modules/which/which.js | 125 - deps/npm/node_modules/wide-align/LICENSE | 14 - deps/npm/node_modules/wide-align/README.md | 47 - deps/npm/node_modules/wide-align/align.js | 65 - deps/npm/node_modules/wide-align/package.json | 33 - deps/npm/node_modules/wrappy/LICENSE | 15 - deps/npm/node_modules/wrappy/README.md | 36 - deps/npm/node_modules/wrappy/package.json | 29 - deps/npm/node_modules/wrappy/wrappy.js | 33 - .../write-file-atomic/CHANGELOG.md | 32 - .../node_modules/write-file-atomic/LICENSE | 6 - .../node_modules/write-file-atomic/README.md | 72 - .../node_modules/write-file-atomic/index.js | 259 - .../write-file-atomic/package.json | 48 - deps/npm/node_modules/yallist/LICENSE | 15 - deps/npm/node_modules/yallist/README.md | 204 - deps/npm/node_modules/yallist/iterator.js | 8 - deps/npm/node_modules/yallist/package.json | 29 - deps/npm/node_modules/yallist/yallist.js | 426 - deps/npm/package.json | 228 - deps/npm/scripts/bundle-and-gitignore-deps.js | 33 - deps/npm/scripts/changelog.js | 110 - deps/npm/scripts/clean-old.sh | 165 - deps/npm/scripts/docs-build.js | 40 - deps/npm/scripts/install.sh | 177 - deps/npm/scripts/maketest | 85 - deps/npm/scripts/pr | 167 - deps/npm/scripts/publish-tag.js | 3 - deps/npm/scripts/release.sh | 43 - deps/npm/scripts/relocate.sh | 26 - deps/npm/scripts/resetdeps.sh | 8 - deps/npm/scripts/update-authors.sh | 9 - deps/npm/scripts/update-dist-tags.js | 123 - .../test-lib-config.js-TAP.test.js | 150 - .../test-lib-dist-tag.js-TAP.test.js | 109 - .../test-lib-fund.js-TAP.test.js | 94 - .../test-lib-init.js-TAP.test.js | 19 - .../test-lib-link.js-TAP.test.js | 25 - .../tap-snapshots/test-lib-ls.js-TAP.test.js | 602 - .../test-lib-outdated.js-TAP.test.js | 154 - .../test-lib-owner.js-TAP.test.js | 20 - .../test-lib-publish.js-TAP.test.js | 13 - .../test-lib-stars.js-TAP.test.js | 15 - .../test-lib-utils-cmd-list.js-TAP.test.js | 199 - .../test-lib-utils-config.js-TAP.test.js | 1610 --- ...est-lib-utils-error-handler.js-TAP.test.js | 23 - ...est-lib-utils-error-message.js-TAP.test.js | 1268 --- .../test-lib-utils-explain-dep.js-TAP.test.js | 179 - ...-lib-utils-explain-eresolve.js-TAP.test.js | 535 - ...test-lib-utils-flat-options.js-TAP.test.js | 122 - ...test-lib-utils-reify-finish.js-TAP.test.js | 15 - ...test-lib-utils-reify-output.js-TAP.test.js | 1634 --- .../test-lib-utils-tar.js-TAP.test.js | 33 - ...t-lib-utils-update-notifier.js-TAP.test.js | 102 - .../test-lib-view.js-TAP.test.js | 272 - .../test-tap-repo.js-TAP.test.js | 21 - deps/npm/test/bin/npm-cli.js | 10 - deps/npm/test/bin/npx-cli.js | 95 - deps/npm/test/coverage-map.js | 17 - .../test/fixtures/eresolve-explanations.js | 301 - deps/npm/test/lib/access.js | 574 - deps/npm/test/lib/adduser.js | 199 - deps/npm/test/lib/audit.js | 203 - deps/npm/test/lib/auth/legacy.js | 429 - deps/npm/test/lib/auth/oauth.js | 29 - deps/npm/test/lib/auth/saml.js | 29 - deps/npm/test/lib/auth/sso.js | 266 - deps/npm/test/lib/bin.js | 71 - deps/npm/test/lib/birthday.js | 86 - deps/npm/test/lib/bugs.js | 96 - deps/npm/test/lib/cache.js | 228 - deps/npm/test/lib/ci.js | 146 - deps/npm/test/lib/cli.js | 181 - deps/npm/test/lib/config.js | 571 - deps/npm/test/lib/dedupe.js | 49 - deps/npm/test/lib/deprecate.js | 134 - deps/npm/test/lib/dist-tag.js | 328 - deps/npm/test/lib/docs.js | 85 - deps/npm/test/lib/exec.js | 1044 -- deps/npm/test/lib/explain.js | 171 - deps/npm/test/lib/explore.js | 363 - deps/npm/test/lib/find-dupes.js | 15 - deps/npm/test/lib/fund.js | 849 -- deps/npm/test/lib/get.js | 18 - deps/npm/test/lib/init.js | 236 - deps/npm/test/lib/install.js | 208 - deps/npm/test/lib/link.js | 304 - deps/npm/test/lib/ll.js | 31 - deps/npm/test/lib/load-all-commands.js | 22 - deps/npm/test/lib/load-all.js | 30 - deps/npm/test/lib/logout.js | 261 - deps/npm/test/lib/ls.js | 3821 ------- deps/npm/test/lib/npm.js | 456 - deps/npm/test/lib/outdated.js | 424 - deps/npm/test/lib/owner.js | 781 -- deps/npm/test/lib/pack.js | 145 - deps/npm/test/lib/ping.js | 110 - deps/npm/test/lib/prefix.js | 19 - deps/npm/test/lib/prune.js | 29 - deps/npm/test/lib/publish.js | 306 - deps/npm/test/lib/rebuild.js | 222 - deps/npm/test/lib/repo.js | 199 - deps/npm/test/lib/restart.js | 5 - deps/npm/test/lib/root.js | 19 - deps/npm/test/lib/run-script.js | 469 - deps/npm/test/lib/set-script.js | 154 - deps/npm/test/lib/shrinkwrap.js | 329 - deps/npm/test/lib/star.js | 144 - deps/npm/test/lib/stars.js | 151 - deps/npm/test/lib/start.js | 5 - deps/npm/test/lib/stop.js | 5 - deps/npm/test/lib/test.js | 40 - deps/npm/test/lib/token.js | 907 -- deps/npm/test/lib/uninstall.js | 253 - deps/npm/test/lib/unpublish.js | 506 - deps/npm/test/lib/unstar.js | 28 - deps/npm/test/lib/update.js | 162 - deps/npm/test/lib/utils/audit-error.js | 110 - deps/npm/test/lib/utils/cleanup-log-files.js | 80 - deps/npm/test/lib/utils/cmd-list.js | 4 - .../lib/utils/completion/installed-deep.js | 257 - .../lib/utils/completion/installed-shallow.js | 111 - deps/npm/test/lib/utils/completion/none.js | 6 - deps/npm/test/lib/utils/config.js | 175 - deps/npm/test/lib/utils/deref-command.js | 9 - deps/npm/test/lib/utils/did-you-mean.js | 7 - deps/npm/test/lib/utils/error-handler.js | 532 - deps/npm/test/lib/utils/error-message.js | 464 - deps/npm/test/lib/utils/explain-dep.js | 206 - deps/npm/test/lib/utils/explain-eresolve.js | 50 - deps/npm/test/lib/utils/file-exists.js | 30 - deps/npm/test/lib/utils/flat-options.js | 342 - deps/npm/test/lib/utils/get-identity.js | 107 - deps/npm/test/lib/utils/get-project-scope.js | 48 - .../utils/hosted-git-info-from-manifest.js | 21 - deps/npm/test/lib/utils/is-windows-bash.js | 28 - deps/npm/test/lib/utils/is-windows-shell.js | 8 - deps/npm/test/lib/utils/is-windows.js | 8 - deps/npm/test/lib/utils/lifecycle-cmd.js | 18 - deps/npm/test/lib/utils/output.js | 8 - deps/npm/test/lib/utils/path.js | 13 - deps/npm/test/lib/utils/perf.js | 38 - deps/npm/test/lib/utils/ping.js | 36 - deps/npm/test/lib/utils/proc-log-listener.js | 42 - deps/npm/test/lib/utils/read-local-package.js | 59 - deps/npm/test/lib/utils/reify-finish.js | 80 - deps/npm/test/lib/utils/reify-output.js | 354 - deps/npm/test/lib/utils/replace-info.js | 78 - deps/npm/test/lib/utils/setup-log.js | 298 - deps/npm/test/lib/utils/tar.js | 114 - deps/npm/test/lib/utils/unsupported.js | 107 - deps/npm/test/lib/utils/update-notifier.js | 209 - deps/npm/test/lib/version.js | 160 - deps/npm/test/lib/view.js | 592 - deps/npm/test/lib/whoami.js | 34 - 2880 files changed, 384668 deletions(-) delete mode 100644 deps/npm/.eslintrc.json delete mode 100644 deps/npm/.licensee.json delete mode 100644 deps/npm/.mailmap delete mode 100644 deps/npm/.npmignore delete mode 100644 deps/npm/.npmrc delete mode 100644 deps/npm/AUTHORS delete mode 100644 deps/npm/CHANGELOG.md delete mode 100644 deps/npm/CONTRIBUTING.md delete mode 100644 deps/npm/LICENSE delete mode 100644 deps/npm/Makefile delete mode 100644 deps/npm/README.md delete mode 100755 deps/npm/bin/node-gyp-bin/node-gyp delete mode 100755 deps/npm/bin/node-gyp-bin/node-gyp.cmd delete mode 100755 deps/npm/bin/npm delete mode 100755 deps/npm/bin/npm-cli.js delete mode 100755 deps/npm/bin/npm.cmd delete mode 100755 deps/npm/bin/npx delete mode 100755 deps/npm/bin/npx-cli.js delete mode 100755 deps/npm/bin/npx.cmd delete mode 100644 deps/npm/changelogs/CHANGELOG-1.md delete mode 100644 deps/npm/changelogs/CHANGELOG-2.md delete mode 100644 deps/npm/changelogs/CHANGELOG-3.md delete mode 100644 deps/npm/changelogs/CHANGELOG-4.md delete mode 100644 deps/npm/changelogs/CHANGELOG-5.md delete mode 100644 deps/npm/changelogs/CHANGELOG-6.md delete mode 100755 deps/npm/configure delete mode 100644 deps/npm/docs/config.json delete mode 100644 deps/npm/docs/content/commands/npm-access.md delete mode 100644 deps/npm/docs/content/commands/npm-adduser.md delete mode 100644 deps/npm/docs/content/commands/npm-audit.md delete mode 100644 deps/npm/docs/content/commands/npm-bin.md delete mode 100644 deps/npm/docs/content/commands/npm-bugs.md delete mode 100644 deps/npm/docs/content/commands/npm-cache.md delete mode 100644 deps/npm/docs/content/commands/npm-ci.md delete mode 100644 deps/npm/docs/content/commands/npm-completion.md delete mode 100644 deps/npm/docs/content/commands/npm-config.md delete mode 100644 deps/npm/docs/content/commands/npm-dedupe.md delete mode 100644 deps/npm/docs/content/commands/npm-deprecate.md delete mode 100644 deps/npm/docs/content/commands/npm-dist-tag.md delete mode 100644 deps/npm/docs/content/commands/npm-docs.md delete mode 100644 deps/npm/docs/content/commands/npm-doctor.md delete mode 100644 deps/npm/docs/content/commands/npm-edit.md delete mode 100644 deps/npm/docs/content/commands/npm-exec.md delete mode 100644 deps/npm/docs/content/commands/npm-explain.md delete mode 100644 deps/npm/docs/content/commands/npm-explore.md delete mode 100644 deps/npm/docs/content/commands/npm-fund.md delete mode 100644 deps/npm/docs/content/commands/npm-help-search.md delete mode 100644 deps/npm/docs/content/commands/npm-help.md delete mode 100644 deps/npm/docs/content/commands/npm-hook.md delete mode 100644 deps/npm/docs/content/commands/npm-init.md delete mode 100644 deps/npm/docs/content/commands/npm-install-ci-test.md delete mode 100644 deps/npm/docs/content/commands/npm-install-test.md delete mode 100644 deps/npm/docs/content/commands/npm-install.md delete mode 100644 deps/npm/docs/content/commands/npm-link.md delete mode 100644 deps/npm/docs/content/commands/npm-logout.md delete mode 100644 deps/npm/docs/content/commands/npm-ls.md delete mode 100644 deps/npm/docs/content/commands/npm-org.md delete mode 100644 deps/npm/docs/content/commands/npm-outdated.md delete mode 100644 deps/npm/docs/content/commands/npm-owner.md delete mode 100644 deps/npm/docs/content/commands/npm-pack.md delete mode 100644 deps/npm/docs/content/commands/npm-ping.md delete mode 100644 deps/npm/docs/content/commands/npm-prefix.md delete mode 100644 deps/npm/docs/content/commands/npm-profile.md delete mode 100644 deps/npm/docs/content/commands/npm-prune.md delete mode 100644 deps/npm/docs/content/commands/npm-publish.md delete mode 100644 deps/npm/docs/content/commands/npm-rebuild.md delete mode 100644 deps/npm/docs/content/commands/npm-repo.md delete mode 100644 deps/npm/docs/content/commands/npm-restart.md delete mode 100644 deps/npm/docs/content/commands/npm-root.md delete mode 100644 deps/npm/docs/content/commands/npm-run-script.md delete mode 100644 deps/npm/docs/content/commands/npm-search.md delete mode 100644 deps/npm/docs/content/commands/npm-set-script.md delete mode 100644 deps/npm/docs/content/commands/npm-shrinkwrap.md delete mode 100644 deps/npm/docs/content/commands/npm-star.md delete mode 100644 deps/npm/docs/content/commands/npm-stars.md delete mode 100644 deps/npm/docs/content/commands/npm-start.md delete mode 100644 deps/npm/docs/content/commands/npm-stop.md delete mode 100644 deps/npm/docs/content/commands/npm-team.md delete mode 100644 deps/npm/docs/content/commands/npm-test.md delete mode 100644 deps/npm/docs/content/commands/npm-token.md delete mode 100644 deps/npm/docs/content/commands/npm-uninstall.md delete mode 100644 deps/npm/docs/content/commands/npm-unpublish.md delete mode 100644 deps/npm/docs/content/commands/npm-unstar.md delete mode 100644 deps/npm/docs/content/commands/npm-update.md delete mode 100644 deps/npm/docs/content/commands/npm-version.md delete mode 100644 deps/npm/docs/content/commands/npm-view.md delete mode 100644 deps/npm/docs/content/commands/npm-whoami.md delete mode 100644 deps/npm/docs/content/commands/npm.md delete mode 100644 deps/npm/docs/content/commands/npx.md delete mode 100644 deps/npm/docs/content/configuring-npm/folders.md delete mode 100644 deps/npm/docs/content/configuring-npm/install.md delete mode 100644 deps/npm/docs/content/configuring-npm/npmrc.md delete mode 100644 deps/npm/docs/content/configuring-npm/package-json.md delete mode 100644 deps/npm/docs/content/configuring-npm/package-lock-json.md delete mode 100644 deps/npm/docs/content/configuring-npm/package-locks.md delete mode 100644 deps/npm/docs/content/configuring-npm/shrinkwrap-json.md delete mode 100644 deps/npm/docs/content/using-npm/config.md delete mode 100644 deps/npm/docs/content/using-npm/developers.md delete mode 100644 deps/npm/docs/content/using-npm/disputes.md delete mode 100644 deps/npm/docs/content/using-npm/orgs.md delete mode 100644 deps/npm/docs/content/using-npm/registry.md delete mode 100644 deps/npm/docs/content/using-npm/removal.md delete mode 100644 deps/npm/docs/content/using-npm/scope.md delete mode 100644 deps/npm/docs/content/using-npm/scripts.md delete mode 100644 deps/npm/docs/content/using-npm/semver.md delete mode 100644 deps/npm/docs/content/using-npm/workspaces.md delete mode 100644 deps/npm/docs/dockhand.js delete mode 100644 deps/npm/docs/output/commands/npm-access.html delete mode 100644 deps/npm/docs/output/commands/npm-adduser.html delete mode 100644 deps/npm/docs/output/commands/npm-audit.html delete mode 100644 deps/npm/docs/output/commands/npm-bin.html delete mode 100644 deps/npm/docs/output/commands/npm-bugs.html delete mode 100644 deps/npm/docs/output/commands/npm-cache.html delete mode 100644 deps/npm/docs/output/commands/npm-ci.html delete mode 100644 deps/npm/docs/output/commands/npm-completion.html delete mode 100644 deps/npm/docs/output/commands/npm-config.html delete mode 100644 deps/npm/docs/output/commands/npm-dedupe.html delete mode 100644 deps/npm/docs/output/commands/npm-deprecate.html delete mode 100644 deps/npm/docs/output/commands/npm-dist-tag.html delete mode 100644 deps/npm/docs/output/commands/npm-docs.html delete mode 100644 deps/npm/docs/output/commands/npm-doctor.html delete mode 100644 deps/npm/docs/output/commands/npm-edit.html delete mode 100644 deps/npm/docs/output/commands/npm-exec.html delete mode 100644 deps/npm/docs/output/commands/npm-explain.html delete mode 100644 deps/npm/docs/output/commands/npm-explore.html delete mode 100644 deps/npm/docs/output/commands/npm-fund.html delete mode 100644 deps/npm/docs/output/commands/npm-help-search.html delete mode 100644 deps/npm/docs/output/commands/npm-help.html delete mode 100644 deps/npm/docs/output/commands/npm-hook.html delete mode 100644 deps/npm/docs/output/commands/npm-init.html delete mode 100644 deps/npm/docs/output/commands/npm-install-ci-test.html delete mode 100644 deps/npm/docs/output/commands/npm-install-test.html delete mode 100644 deps/npm/docs/output/commands/npm-install.html delete mode 100644 deps/npm/docs/output/commands/npm-link.html delete mode 100644 deps/npm/docs/output/commands/npm-logout.html delete mode 100644 deps/npm/docs/output/commands/npm-ls.html delete mode 100644 deps/npm/docs/output/commands/npm-org.html delete mode 100644 deps/npm/docs/output/commands/npm-outdated.html delete mode 100644 deps/npm/docs/output/commands/npm-owner.html delete mode 100644 deps/npm/docs/output/commands/npm-pack.html delete mode 100644 deps/npm/docs/output/commands/npm-ping.html delete mode 100644 deps/npm/docs/output/commands/npm-prefix.html delete mode 100644 deps/npm/docs/output/commands/npm-profile.html delete mode 100644 deps/npm/docs/output/commands/npm-prune.html delete mode 100644 deps/npm/docs/output/commands/npm-publish.html delete mode 100644 deps/npm/docs/output/commands/npm-rebuild.html delete mode 100644 deps/npm/docs/output/commands/npm-repo.html delete mode 100644 deps/npm/docs/output/commands/npm-restart.html delete mode 100644 deps/npm/docs/output/commands/npm-root.html delete mode 100644 deps/npm/docs/output/commands/npm-run-script.html delete mode 100644 deps/npm/docs/output/commands/npm-search.html delete mode 100644 deps/npm/docs/output/commands/npm-set-script.html delete mode 100644 deps/npm/docs/output/commands/npm-shrinkwrap.html delete mode 100644 deps/npm/docs/output/commands/npm-star.html delete mode 100644 deps/npm/docs/output/commands/npm-stars.html delete mode 100644 deps/npm/docs/output/commands/npm-start.html delete mode 100644 deps/npm/docs/output/commands/npm-stop.html delete mode 100644 deps/npm/docs/output/commands/npm-team.html delete mode 100644 deps/npm/docs/output/commands/npm-test.html delete mode 100644 deps/npm/docs/output/commands/npm-token.html delete mode 100644 deps/npm/docs/output/commands/npm-uninstall.html delete mode 100644 deps/npm/docs/output/commands/npm-unpublish.html delete mode 100644 deps/npm/docs/output/commands/npm-unstar.html delete mode 100644 deps/npm/docs/output/commands/npm-update.html delete mode 100644 deps/npm/docs/output/commands/npm-version.html delete mode 100644 deps/npm/docs/output/commands/npm-view.html delete mode 100644 deps/npm/docs/output/commands/npm-whoami.html delete mode 100644 deps/npm/docs/output/commands/npm.html delete mode 100644 deps/npm/docs/output/commands/npx.html delete mode 100644 deps/npm/docs/output/configuring-npm/folders.html delete mode 100644 deps/npm/docs/output/configuring-npm/install.html delete mode 100644 deps/npm/docs/output/configuring-npm/npmrc.html delete mode 100644 deps/npm/docs/output/configuring-npm/package-json.html delete mode 100644 deps/npm/docs/output/configuring-npm/package-lock-json.html delete mode 100644 deps/npm/docs/output/configuring-npm/package-locks.html delete mode 100644 deps/npm/docs/output/configuring-npm/shrinkwrap-json.html delete mode 100644 deps/npm/docs/output/using-npm/config.html delete mode 100644 deps/npm/docs/output/using-npm/developers.html delete mode 100644 deps/npm/docs/output/using-npm/disputes.html delete mode 100644 deps/npm/docs/output/using-npm/orgs.html delete mode 100644 deps/npm/docs/output/using-npm/registry.html delete mode 100644 deps/npm/docs/output/using-npm/removal.html delete mode 100644 deps/npm/docs/output/using-npm/scope.html delete mode 100644 deps/npm/docs/output/using-npm/scripts.html delete mode 100644 deps/npm/docs/output/using-npm/semver.html delete mode 100644 deps/npm/docs/output/using-npm/workspaces.html delete mode 100644 deps/npm/docs/template.html delete mode 100644 deps/npm/lib/access.js delete mode 100644 deps/npm/lib/adduser.js delete mode 100644 deps/npm/lib/audit.js delete mode 100644 deps/npm/lib/auth/legacy.js delete mode 100644 deps/npm/lib/auth/oauth.js delete mode 100644 deps/npm/lib/auth/saml.js delete mode 100644 deps/npm/lib/auth/sso.js delete mode 100644 deps/npm/lib/bin.js delete mode 100644 deps/npm/lib/birthday.js delete mode 100644 deps/npm/lib/bugs.js delete mode 100644 deps/npm/lib/cache.js delete mode 100644 deps/npm/lib/ci.js delete mode 100644 deps/npm/lib/cli.js delete mode 100644 deps/npm/lib/completion.js delete mode 100644 deps/npm/lib/config.js delete mode 100644 deps/npm/lib/dedupe.js delete mode 100644 deps/npm/lib/deprecate.js delete mode 100644 deps/npm/lib/dist-tag.js delete mode 100644 deps/npm/lib/docs.js delete mode 100644 deps/npm/lib/doctor.js delete mode 100644 deps/npm/lib/edit.js delete mode 100644 deps/npm/lib/exec.js delete mode 100644 deps/npm/lib/explain.js delete mode 100644 deps/npm/lib/explore.js delete mode 100644 deps/npm/lib/find-dupes.js delete mode 100644 deps/npm/lib/fund.js delete mode 100644 deps/npm/lib/get.js delete mode 100644 deps/npm/lib/help-search.js delete mode 100644 deps/npm/lib/help.js delete mode 100644 deps/npm/lib/hook.js delete mode 100644 deps/npm/lib/init.js delete mode 100644 deps/npm/lib/install-ci-test.js delete mode 100644 deps/npm/lib/install-test.js delete mode 100644 deps/npm/lib/install.js delete mode 100644 deps/npm/lib/link.js delete mode 100644 deps/npm/lib/ll.js delete mode 100644 deps/npm/lib/logout.js delete mode 100644 deps/npm/lib/ls.js delete mode 100644 deps/npm/lib/npm.js delete mode 100644 deps/npm/lib/org.js delete mode 100644 deps/npm/lib/outdated.js delete mode 100644 deps/npm/lib/owner.js delete mode 100644 deps/npm/lib/pack.js delete mode 100644 deps/npm/lib/ping.js delete mode 100644 deps/npm/lib/prefix.js delete mode 100644 deps/npm/lib/profile.js delete mode 100644 deps/npm/lib/prune.js delete mode 100644 deps/npm/lib/publish.js delete mode 100644 deps/npm/lib/rebuild.js delete mode 100644 deps/npm/lib/repo.js delete mode 100644 deps/npm/lib/restart.js delete mode 100644 deps/npm/lib/root.js delete mode 100644 deps/npm/lib/run-script.js delete mode 100644 deps/npm/lib/search.js delete mode 100644 deps/npm/lib/search/format-package-stream.js delete mode 100644 deps/npm/lib/search/package-filter.js delete mode 100644 deps/npm/lib/set-script.js delete mode 100644 deps/npm/lib/set.js delete mode 100644 deps/npm/lib/shrinkwrap.js delete mode 100644 deps/npm/lib/star.js delete mode 100644 deps/npm/lib/stars.js delete mode 100644 deps/npm/lib/start.js delete mode 100644 deps/npm/lib/stop.js delete mode 100644 deps/npm/lib/team.js delete mode 100644 deps/npm/lib/test.js delete mode 100644 deps/npm/lib/token.js delete mode 100644 deps/npm/lib/uninstall.js delete mode 100644 deps/npm/lib/unpublish.js delete mode 100644 deps/npm/lib/unstar.js delete mode 100644 deps/npm/lib/update.js delete mode 100644 deps/npm/lib/utils/ansi-trim.js delete mode 100644 deps/npm/lib/utils/audit-error.js delete mode 100644 deps/npm/lib/utils/cache-file.js delete mode 100644 deps/npm/lib/utils/child-path.js delete mode 100644 deps/npm/lib/utils/cleanup-log-files.js delete mode 100644 deps/npm/lib/utils/cmd-list.js delete mode 100755 deps/npm/lib/utils/completion.sh delete mode 100644 deps/npm/lib/utils/completion/file-completion.js delete mode 100644 deps/npm/lib/utils/completion/installed-deep.js delete mode 100644 deps/npm/lib/utils/completion/installed-shallow.js delete mode 100644 deps/npm/lib/utils/completion/none.js delete mode 100644 deps/npm/lib/utils/config.js delete mode 100644 deps/npm/lib/utils/deep-sort-object.js delete mode 100644 deps/npm/lib/utils/deref-command.js delete mode 100644 deps/npm/lib/utils/did-you-mean.js delete mode 100644 deps/npm/lib/utils/error-handler.js delete mode 100644 deps/npm/lib/utils/error-message.js delete mode 100644 deps/npm/lib/utils/explain-dep.js delete mode 100644 deps/npm/lib/utils/explain-eresolve.js delete mode 100644 deps/npm/lib/utils/file-exists.js delete mode 100644 deps/npm/lib/utils/flat-options.js delete mode 100644 deps/npm/lib/utils/get-identity.js delete mode 100644 deps/npm/lib/utils/get-project-scope.js delete mode 100644 deps/npm/lib/utils/git.js delete mode 100644 deps/npm/lib/utils/hosted-git-info-from-manifest.js delete mode 100644 deps/npm/lib/utils/is-windows-bash.js delete mode 100644 deps/npm/lib/utils/is-windows-shell.js delete mode 100644 deps/npm/lib/utils/is-windows.js delete mode 100644 deps/npm/lib/utils/lifecycle-cmd.js delete mode 100644 deps/npm/lib/utils/metrics-launch.js delete mode 100644 deps/npm/lib/utils/metrics.js delete mode 100644 deps/npm/lib/utils/module-name.js delete mode 100644 deps/npm/lib/utils/no-progress-while-running.js delete mode 100644 deps/npm/lib/utils/npm-usage.js delete mode 100644 deps/npm/lib/utils/open-url.js delete mode 100644 deps/npm/lib/utils/otplease.js delete mode 100644 deps/npm/lib/utils/output.js delete mode 100644 deps/npm/lib/utils/path.js delete mode 100644 deps/npm/lib/utils/perf.js delete mode 100644 deps/npm/lib/utils/ping.js delete mode 100644 deps/npm/lib/utils/proc-log-listener.js delete mode 100644 deps/npm/lib/utils/pulse-till-done.js delete mode 100644 deps/npm/lib/utils/read-local-package.js delete mode 100644 deps/npm/lib/utils/read-user-info.js delete mode 100644 deps/npm/lib/utils/reify-finish.js delete mode 100644 deps/npm/lib/utils/reify-output.js delete mode 100644 deps/npm/lib/utils/replace-info.js delete mode 100644 deps/npm/lib/utils/setup-log.js delete mode 100644 deps/npm/lib/utils/spawn.js delete mode 100644 deps/npm/lib/utils/tar.js delete mode 100644 deps/npm/lib/utils/unsupported.js delete mode 100644 deps/npm/lib/utils/update-notifier.js delete mode 100644 deps/npm/lib/utils/usage.js delete mode 100644 deps/npm/lib/version.js delete mode 100644 deps/npm/lib/view.js delete mode 100644 deps/npm/lib/whoami.js delete mode 100644 deps/npm/make.bat delete mode 100644 deps/npm/man/man1/npm-access.1 delete mode 100644 deps/npm/man/man1/npm-adduser.1 delete mode 100644 deps/npm/man/man1/npm-audit.1 delete mode 100644 deps/npm/man/man1/npm-bin.1 delete mode 100644 deps/npm/man/man1/npm-bugs.1 delete mode 100644 deps/npm/man/man1/npm-cache.1 delete mode 100644 deps/npm/man/man1/npm-ci.1 delete mode 100644 deps/npm/man/man1/npm-completion.1 delete mode 100644 deps/npm/man/man1/npm-config.1 delete mode 100644 deps/npm/man/man1/npm-dedupe.1 delete mode 100644 deps/npm/man/man1/npm-deprecate.1 delete mode 100644 deps/npm/man/man1/npm-dist-tag.1 delete mode 100644 deps/npm/man/man1/npm-docs.1 delete mode 100644 deps/npm/man/man1/npm-doctor.1 delete mode 100644 deps/npm/man/man1/npm-edit.1 delete mode 100644 deps/npm/man/man1/npm-exec.1 delete mode 100644 deps/npm/man/man1/npm-explain.1 delete mode 100644 deps/npm/man/man1/npm-explore.1 delete mode 100644 deps/npm/man/man1/npm-fund.1 delete mode 100644 deps/npm/man/man1/npm-help-search.1 delete mode 100644 deps/npm/man/man1/npm-help.1 delete mode 100644 deps/npm/man/man1/npm-hook.1 delete mode 100644 deps/npm/man/man1/npm-init.1 delete mode 100644 deps/npm/man/man1/npm-install-ci-test.1 delete mode 100644 deps/npm/man/man1/npm-install-test.1 delete mode 100644 deps/npm/man/man1/npm-install.1 delete mode 100644 deps/npm/man/man1/npm-link.1 delete mode 100644 deps/npm/man/man1/npm-logout.1 delete mode 100644 deps/npm/man/man1/npm-ls.1 delete mode 100644 deps/npm/man/man1/npm-org.1 delete mode 100644 deps/npm/man/man1/npm-outdated.1 delete mode 100644 deps/npm/man/man1/npm-owner.1 delete mode 100644 deps/npm/man/man1/npm-pack.1 delete mode 100644 deps/npm/man/man1/npm-ping.1 delete mode 100644 deps/npm/man/man1/npm-prefix.1 delete mode 100644 deps/npm/man/man1/npm-profile.1 delete mode 100644 deps/npm/man/man1/npm-prune.1 delete mode 100644 deps/npm/man/man1/npm-publish.1 delete mode 100644 deps/npm/man/man1/npm-rebuild.1 delete mode 100644 deps/npm/man/man1/npm-repo.1 delete mode 100644 deps/npm/man/man1/npm-restart.1 delete mode 100644 deps/npm/man/man1/npm-root.1 delete mode 100644 deps/npm/man/man1/npm-run-script.1 delete mode 100644 deps/npm/man/man1/npm-search.1 delete mode 100644 deps/npm/man/man1/npm-set-script.1 delete mode 100644 deps/npm/man/man1/npm-shrinkwrap.1 delete mode 100644 deps/npm/man/man1/npm-star.1 delete mode 100644 deps/npm/man/man1/npm-stars.1 delete mode 100644 deps/npm/man/man1/npm-start.1 delete mode 100644 deps/npm/man/man1/npm-stop.1 delete mode 100644 deps/npm/man/man1/npm-team.1 delete mode 100644 deps/npm/man/man1/npm-test.1 delete mode 100644 deps/npm/man/man1/npm-token.1 delete mode 100644 deps/npm/man/man1/npm-uninstall.1 delete mode 100644 deps/npm/man/man1/npm-unpublish.1 delete mode 100644 deps/npm/man/man1/npm-unstar.1 delete mode 100644 deps/npm/man/man1/npm-update.1 delete mode 100644 deps/npm/man/man1/npm-version.1 delete mode 100644 deps/npm/man/man1/npm-view.1 delete mode 100644 deps/npm/man/man1/npm-whoami.1 delete mode 100644 deps/npm/man/man1/npm.1 delete mode 100644 deps/npm/man/man1/npx.1 delete mode 100644 deps/npm/man/man5/folders.5 delete mode 100644 deps/npm/man/man5/install.5 delete mode 100644 deps/npm/man/man5/npmrc.5 delete mode 100644 deps/npm/man/man5/package-json.5 delete mode 100644 deps/npm/man/man5/package-lock-json.5 delete mode 100644 deps/npm/man/man5/package-locks.5 delete mode 100644 deps/npm/man/man5/shrinkwrap-json.5 delete mode 100644 deps/npm/man/man7/config.7 delete mode 100644 deps/npm/man/man7/developers.7 delete mode 100644 deps/npm/man/man7/disputes.7 delete mode 100644 deps/npm/man/man7/orgs.7 delete mode 100644 deps/npm/man/man7/registry.7 delete mode 100644 deps/npm/man/man7/removal.7 delete mode 100644 deps/npm/man/man7/scope.7 delete mode 100644 deps/npm/man/man7/scripts.7 delete mode 100644 deps/npm/man/man7/semver.7 delete mode 100644 deps/npm/man/man7/workspaces.7 delete mode 100644 deps/npm/node_modules/@npmcli/arborist/CHANGELOG.md delete mode 100644 deps/npm/node_modules/@npmcli/arborist/LICENSE delete mode 100644 deps/npm/node_modules/@npmcli/arborist/README.md delete mode 100644 deps/npm/node_modules/@npmcli/arborist/lib/add-rm-pkg-deps.js delete mode 100644 deps/npm/node_modules/@npmcli/arborist/lib/arborist/audit.js delete mode 100644 deps/npm/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js delete mode 100644 deps/npm/node_modules/@npmcli/arborist/lib/arborist/deduper.js delete mode 100644 deps/npm/node_modules/@npmcli/arborist/lib/arborist/index.js delete mode 100644 deps/npm/node_modules/@npmcli/arborist/lib/arborist/load-actual.js delete mode 100644 deps/npm/node_modules/@npmcli/arborist/lib/arborist/load-virtual.js delete mode 100644 deps/npm/node_modules/@npmcli/arborist/lib/arborist/load-workspaces.js delete mode 100644 deps/npm/node_modules/@npmcli/arborist/lib/arborist/pruner.js delete mode 100644 deps/npm/node_modules/@npmcli/arborist/lib/arborist/rebuild.js delete mode 100644 deps/npm/node_modules/@npmcli/arborist/lib/arborist/reify.js delete mode 100644 deps/npm/node_modules/@npmcli/arborist/lib/audit-report.js delete mode 100644 deps/npm/node_modules/@npmcli/arborist/lib/calc-dep-flags.js delete mode 100644 deps/npm/node_modules/@npmcli/arborist/lib/consistent-resolve.js delete mode 100644 deps/npm/node_modules/@npmcli/arborist/lib/debug.js delete mode 100644 deps/npm/node_modules/@npmcli/arborist/lib/dep-spec.js delete mode 100644 deps/npm/node_modules/@npmcli/arborist/lib/dep-valid.js delete mode 100644 deps/npm/node_modules/@npmcli/arborist/lib/diff.js delete mode 100644 deps/npm/node_modules/@npmcli/arborist/lib/edge.js delete mode 100644 deps/npm/node_modules/@npmcli/arborist/lib/from-path.js delete mode 100644 deps/npm/node_modules/@npmcli/arborist/lib/gather-dep-set.js delete mode 100644 deps/npm/node_modules/@npmcli/arborist/lib/index.js delete mode 100644 deps/npm/node_modules/@npmcli/arborist/lib/inventory.js delete mode 100644 deps/npm/node_modules/@npmcli/arborist/lib/link.js delete mode 100644 deps/npm/node_modules/@npmcli/arborist/lib/node.js delete mode 100644 deps/npm/node_modules/@npmcli/arborist/lib/optional-set.js delete mode 100644 deps/npm/node_modules/@npmcli/arborist/lib/peer-set.js delete mode 100644 deps/npm/node_modules/@npmcli/arborist/lib/proc-log.js delete mode 100644 deps/npm/node_modules/@npmcli/arborist/lib/realpath.js delete mode 100644 deps/npm/node_modules/@npmcli/arborist/lib/relpath.js delete mode 100644 deps/npm/node_modules/@npmcli/arborist/lib/reset-dep-flags.js delete mode 100644 deps/npm/node_modules/@npmcli/arborist/lib/retire-path.js delete mode 100644 deps/npm/node_modules/@npmcli/arborist/lib/shrinkwrap.js delete mode 100644 deps/npm/node_modules/@npmcli/arborist/lib/spec-from-lock.js delete mode 100644 deps/npm/node_modules/@npmcli/arborist/lib/tracker.js delete mode 100644 deps/npm/node_modules/@npmcli/arborist/lib/tree-check.js delete mode 100644 deps/npm/node_modules/@npmcli/arborist/lib/update-root-package-json.js delete mode 100644 deps/npm/node_modules/@npmcli/arborist/lib/version-from-tgz.js delete mode 100644 deps/npm/node_modules/@npmcli/arborist/lib/vuln.js delete mode 100644 deps/npm/node_modules/@npmcli/arborist/lib/yarn-lock.js delete mode 100644 deps/npm/node_modules/@npmcli/arborist/package.json delete mode 100644 deps/npm/node_modules/@npmcli/ci-detect/LICENSE delete mode 100644 deps/npm/node_modules/@npmcli/ci-detect/README.md delete mode 100644 deps/npm/node_modules/@npmcli/ci-detect/index.js delete mode 100644 deps/npm/node_modules/@npmcli/ci-detect/package.json delete mode 100644 deps/npm/node_modules/@npmcli/config/LICENSE delete mode 100644 deps/npm/node_modules/@npmcli/config/README.md delete mode 100644 deps/npm/node_modules/@npmcli/config/lib/env-replace.js delete mode 100644 deps/npm/node_modules/@npmcli/config/lib/get-user-agent.js delete mode 100644 deps/npm/node_modules/@npmcli/config/lib/index.js delete mode 100644 deps/npm/node_modules/@npmcli/config/lib/nerf-dart.js delete mode 100644 deps/npm/node_modules/@npmcli/config/lib/parse-field.js delete mode 100644 deps/npm/node_modules/@npmcli/config/lib/proc-log.js delete mode 100644 deps/npm/node_modules/@npmcli/config/lib/set-envs.js delete mode 100644 deps/npm/node_modules/@npmcli/config/lib/type-defs.js delete mode 100644 deps/npm/node_modules/@npmcli/config/lib/type-description.js delete mode 100644 deps/npm/node_modules/@npmcli/config/lib/umask.js delete mode 100644 deps/npm/node_modules/@npmcli/config/package.json delete mode 100644 deps/npm/node_modules/@npmcli/git/LICENSE delete mode 100644 deps/npm/node_modules/@npmcli/git/README.md delete mode 100644 deps/npm/node_modules/@npmcli/git/lib/clone.js delete mode 100644 deps/npm/node_modules/@npmcli/git/lib/env.js delete mode 100644 deps/npm/node_modules/@npmcli/git/lib/find.js delete mode 100644 deps/npm/node_modules/@npmcli/git/lib/index.js delete mode 100644 deps/npm/node_modules/@npmcli/git/lib/is-clean.js delete mode 100644 deps/npm/node_modules/@npmcli/git/lib/is.js delete mode 100644 deps/npm/node_modules/@npmcli/git/lib/lines-to-revs.js delete mode 100644 deps/npm/node_modules/@npmcli/git/lib/opts.js delete mode 100644 deps/npm/node_modules/@npmcli/git/lib/proc-log.js delete mode 100644 deps/npm/node_modules/@npmcli/git/lib/revs.js delete mode 100644 deps/npm/node_modules/@npmcli/git/lib/should-retry.js delete mode 100644 deps/npm/node_modules/@npmcli/git/lib/spawn.js delete mode 100644 deps/npm/node_modules/@npmcli/git/lib/which.js delete mode 100644 deps/npm/node_modules/@npmcli/git/package.json delete mode 100644 deps/npm/node_modules/@npmcli/installed-package-contents/LICENSE delete mode 100644 deps/npm/node_modules/@npmcli/installed-package-contents/README.md delete mode 100755 deps/npm/node_modules/@npmcli/installed-package-contents/index.js delete mode 100644 deps/npm/node_modules/@npmcli/installed-package-contents/package.json delete mode 100644 deps/npm/node_modules/@npmcli/map-workspaces/CHANGELOG.md delete mode 100644 deps/npm/node_modules/@npmcli/map-workspaces/LICENSE delete mode 100644 deps/npm/node_modules/@npmcli/map-workspaces/README.md delete mode 100644 deps/npm/node_modules/@npmcli/map-workspaces/index.js delete mode 100644 deps/npm/node_modules/@npmcli/map-workspaces/package.json delete mode 100644 deps/npm/node_modules/@npmcli/metavuln-calculator/LICENSE delete mode 100644 deps/npm/node_modules/@npmcli/metavuln-calculator/README.md delete mode 100644 deps/npm/node_modules/@npmcli/metavuln-calculator/lib/advisory.js delete mode 100644 deps/npm/node_modules/@npmcli/metavuln-calculator/lib/get-dep-spec.js delete mode 100644 deps/npm/node_modules/@npmcli/metavuln-calculator/lib/hash.js delete mode 100644 deps/npm/node_modules/@npmcli/metavuln-calculator/lib/index.js delete mode 100644 deps/npm/node_modules/@npmcli/metavuln-calculator/package.json delete mode 100644 deps/npm/node_modules/@npmcli/move-file/LICENSE.md delete mode 100644 deps/npm/node_modules/@npmcli/move-file/README.md delete mode 100644 deps/npm/node_modules/@npmcli/move-file/index.js delete mode 100644 deps/npm/node_modules/@npmcli/move-file/package.json delete mode 100644 deps/npm/node_modules/@npmcli/name-from-folder/LICENSE delete mode 100644 deps/npm/node_modules/@npmcli/name-from-folder/README.md delete mode 100644 deps/npm/node_modules/@npmcli/name-from-folder/index.js delete mode 100644 deps/npm/node_modules/@npmcli/name-from-folder/package.json delete mode 100644 deps/npm/node_modules/@npmcli/node-gyp/lib/index.js delete mode 100644 deps/npm/node_modules/@npmcli/node-gyp/package.json delete mode 100644 deps/npm/node_modules/@npmcli/promise-spawn/LICENSE delete mode 100644 deps/npm/node_modules/@npmcli/promise-spawn/README.md delete mode 100644 deps/npm/node_modules/@npmcli/promise-spawn/index.js delete mode 100644 deps/npm/node_modules/@npmcli/promise-spawn/package.json delete mode 100644 deps/npm/node_modules/@npmcli/run-script/LICENSE delete mode 100644 deps/npm/node_modules/@npmcli/run-script/README.md delete mode 100644 deps/npm/node_modules/@npmcli/run-script/lib/is-server-package.js delete mode 100644 deps/npm/node_modules/@npmcli/run-script/lib/is-windows.js delete mode 100644 deps/npm/node_modules/@npmcli/run-script/lib/make-spawn-args.js delete mode 100755 deps/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin/node-gyp delete mode 100755 deps/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin/node-gyp.cmd delete mode 100644 deps/npm/node_modules/@npmcli/run-script/lib/package-envs.js delete mode 100644 deps/npm/node_modules/@npmcli/run-script/lib/run-script-pkg.js delete mode 100644 deps/npm/node_modules/@npmcli/run-script/lib/run-script.js delete mode 100644 deps/npm/node_modules/@npmcli/run-script/lib/set-path.js delete mode 100644 deps/npm/node_modules/@npmcli/run-script/lib/signal-manager.js delete mode 100644 deps/npm/node_modules/@npmcli/run-script/lib/validate-options.js delete mode 100644 deps/npm/node_modules/@npmcli/run-script/package.json delete mode 100644 deps/npm/node_modules/@tootallnate/once/dist/index.d.ts delete mode 100644 deps/npm/node_modules/@tootallnate/once/dist/index.js delete mode 100644 deps/npm/node_modules/@tootallnate/once/dist/index.js.map delete mode 100644 deps/npm/node_modules/@tootallnate/once/package.json delete mode 100644 deps/npm/node_modules/abbrev/LICENSE delete mode 100644 deps/npm/node_modules/abbrev/README.md delete mode 100644 deps/npm/node_modules/abbrev/abbrev.js delete mode 100644 deps/npm/node_modules/abbrev/package.json delete mode 100644 deps/npm/node_modules/agent-base/README.md delete mode 100644 deps/npm/node_modules/agent-base/dist/src/index.d.ts delete mode 100644 deps/npm/node_modules/agent-base/dist/src/index.js delete mode 100644 deps/npm/node_modules/agent-base/dist/src/index.js.map delete mode 100644 deps/npm/node_modules/agent-base/dist/src/promisify.d.ts delete mode 100644 deps/npm/node_modules/agent-base/dist/src/promisify.js delete mode 100644 deps/npm/node_modules/agent-base/dist/src/promisify.js.map delete mode 100644 deps/npm/node_modules/agent-base/package.json delete mode 100644 deps/npm/node_modules/agent-base/src/index.ts delete mode 100644 deps/npm/node_modules/agent-base/src/promisify.ts delete mode 100644 deps/npm/node_modules/agentkeepalive/History.md delete mode 100644 deps/npm/node_modules/agentkeepalive/LICENSE delete mode 100644 deps/npm/node_modules/agentkeepalive/README.md delete mode 100644 deps/npm/node_modules/agentkeepalive/browser.js delete mode 100644 deps/npm/node_modules/agentkeepalive/index.d.ts delete mode 100644 deps/npm/node_modules/agentkeepalive/index.js delete mode 100644 deps/npm/node_modules/agentkeepalive/lib/agent.js delete mode 100644 deps/npm/node_modules/agentkeepalive/lib/constants.js delete mode 100644 deps/npm/node_modules/agentkeepalive/lib/https_agent.js delete mode 100644 deps/npm/node_modules/agentkeepalive/package.json delete mode 100644 deps/npm/node_modules/aggregate-error/index.d.ts delete mode 100644 deps/npm/node_modules/aggregate-error/index.js delete mode 100644 deps/npm/node_modules/aggregate-error/license delete mode 100644 deps/npm/node_modules/aggregate-error/package.json delete mode 100644 deps/npm/node_modules/aggregate-error/readme.md delete mode 100644 deps/npm/node_modules/ajv/.tonic_example.js delete mode 100644 deps/npm/node_modules/ajv/LICENSE delete mode 100644 deps/npm/node_modules/ajv/README.md delete mode 100644 deps/npm/node_modules/ajv/dist/ajv.bundle.js delete mode 100644 deps/npm/node_modules/ajv/dist/ajv.min.js delete mode 100644 deps/npm/node_modules/ajv/dist/ajv.min.js.map delete mode 100644 deps/npm/node_modules/ajv/lib/ajv.d.ts delete mode 100644 deps/npm/node_modules/ajv/lib/ajv.js delete mode 100644 deps/npm/node_modules/ajv/lib/cache.js delete mode 100644 deps/npm/node_modules/ajv/lib/compile/async.js delete mode 100644 deps/npm/node_modules/ajv/lib/compile/equal.js delete mode 100644 deps/npm/node_modules/ajv/lib/compile/error_classes.js delete mode 100644 deps/npm/node_modules/ajv/lib/compile/formats.js delete mode 100644 deps/npm/node_modules/ajv/lib/compile/index.js delete mode 100644 deps/npm/node_modules/ajv/lib/compile/resolve.js delete mode 100644 deps/npm/node_modules/ajv/lib/compile/rules.js delete mode 100644 deps/npm/node_modules/ajv/lib/compile/schema_obj.js delete mode 100644 deps/npm/node_modules/ajv/lib/compile/ucs2length.js delete mode 100644 deps/npm/node_modules/ajv/lib/compile/util.js delete mode 100644 deps/npm/node_modules/ajv/lib/data.js delete mode 100644 deps/npm/node_modules/ajv/lib/definition_schema.js delete mode 100644 deps/npm/node_modules/ajv/lib/dot/_limit.jst delete mode 100644 deps/npm/node_modules/ajv/lib/dot/_limitItems.jst delete mode 100644 deps/npm/node_modules/ajv/lib/dot/_limitLength.jst delete mode 100644 deps/npm/node_modules/ajv/lib/dot/_limitProperties.jst delete mode 100644 deps/npm/node_modules/ajv/lib/dot/allOf.jst delete mode 100644 deps/npm/node_modules/ajv/lib/dot/anyOf.jst delete mode 100644 deps/npm/node_modules/ajv/lib/dot/coerce.def delete mode 100644 deps/npm/node_modules/ajv/lib/dot/comment.jst delete mode 100644 deps/npm/node_modules/ajv/lib/dot/const.jst delete mode 100644 deps/npm/node_modules/ajv/lib/dot/contains.jst delete mode 100644 deps/npm/node_modules/ajv/lib/dot/custom.jst delete mode 100644 deps/npm/node_modules/ajv/lib/dot/defaults.def delete mode 100644 deps/npm/node_modules/ajv/lib/dot/definitions.def delete mode 100644 deps/npm/node_modules/ajv/lib/dot/dependencies.jst delete mode 100644 deps/npm/node_modules/ajv/lib/dot/enum.jst delete mode 100644 deps/npm/node_modules/ajv/lib/dot/errors.def delete mode 100644 deps/npm/node_modules/ajv/lib/dot/format.jst delete mode 100644 deps/npm/node_modules/ajv/lib/dot/if.jst delete mode 100644 deps/npm/node_modules/ajv/lib/dot/items.jst delete mode 100644 deps/npm/node_modules/ajv/lib/dot/missing.def delete mode 100644 deps/npm/node_modules/ajv/lib/dot/multipleOf.jst delete mode 100644 deps/npm/node_modules/ajv/lib/dot/not.jst delete mode 100644 deps/npm/node_modules/ajv/lib/dot/oneOf.jst delete mode 100644 deps/npm/node_modules/ajv/lib/dot/pattern.jst delete mode 100644 deps/npm/node_modules/ajv/lib/dot/properties.jst delete mode 100644 deps/npm/node_modules/ajv/lib/dot/propertyNames.jst delete mode 100644 deps/npm/node_modules/ajv/lib/dot/ref.jst delete mode 100644 deps/npm/node_modules/ajv/lib/dot/required.jst delete mode 100644 deps/npm/node_modules/ajv/lib/dot/uniqueItems.jst delete mode 100644 deps/npm/node_modules/ajv/lib/dot/validate.jst delete mode 100644 deps/npm/node_modules/ajv/lib/dotjs/README.md delete mode 100644 deps/npm/node_modules/ajv/lib/dotjs/_limit.js delete mode 100644 deps/npm/node_modules/ajv/lib/dotjs/_limitItems.js delete mode 100644 deps/npm/node_modules/ajv/lib/dotjs/_limitLength.js delete mode 100644 deps/npm/node_modules/ajv/lib/dotjs/_limitProperties.js delete mode 100644 deps/npm/node_modules/ajv/lib/dotjs/allOf.js delete mode 100644 deps/npm/node_modules/ajv/lib/dotjs/anyOf.js delete mode 100644 deps/npm/node_modules/ajv/lib/dotjs/comment.js delete mode 100644 deps/npm/node_modules/ajv/lib/dotjs/const.js delete mode 100644 deps/npm/node_modules/ajv/lib/dotjs/contains.js delete mode 100644 deps/npm/node_modules/ajv/lib/dotjs/custom.js delete mode 100644 deps/npm/node_modules/ajv/lib/dotjs/dependencies.js delete mode 100644 deps/npm/node_modules/ajv/lib/dotjs/enum.js delete mode 100644 deps/npm/node_modules/ajv/lib/dotjs/format.js delete mode 100644 deps/npm/node_modules/ajv/lib/dotjs/if.js delete mode 100644 deps/npm/node_modules/ajv/lib/dotjs/index.js delete mode 100644 deps/npm/node_modules/ajv/lib/dotjs/items.js delete mode 100644 deps/npm/node_modules/ajv/lib/dotjs/multipleOf.js delete mode 100644 deps/npm/node_modules/ajv/lib/dotjs/not.js delete mode 100644 deps/npm/node_modules/ajv/lib/dotjs/oneOf.js delete mode 100644 deps/npm/node_modules/ajv/lib/dotjs/pattern.js delete mode 100644 deps/npm/node_modules/ajv/lib/dotjs/properties.js delete mode 100644 deps/npm/node_modules/ajv/lib/dotjs/propertyNames.js delete mode 100644 deps/npm/node_modules/ajv/lib/dotjs/ref.js delete mode 100644 deps/npm/node_modules/ajv/lib/dotjs/required.js delete mode 100644 deps/npm/node_modules/ajv/lib/dotjs/uniqueItems.js delete mode 100644 deps/npm/node_modules/ajv/lib/dotjs/validate.js delete mode 100644 deps/npm/node_modules/ajv/lib/keyword.js delete mode 100644 deps/npm/node_modules/ajv/lib/refs/data.json delete mode 100644 deps/npm/node_modules/ajv/lib/refs/json-schema-draft-04.json delete mode 100644 deps/npm/node_modules/ajv/lib/refs/json-schema-draft-06.json delete mode 100644 deps/npm/node_modules/ajv/lib/refs/json-schema-draft-07.json delete mode 100644 deps/npm/node_modules/ajv/lib/refs/json-schema-secure.json delete mode 100644 deps/npm/node_modules/ajv/package.json delete mode 100644 deps/npm/node_modules/ajv/scripts/.eslintrc.yml delete mode 100644 deps/npm/node_modules/ajv/scripts/bundle.js delete mode 100644 deps/npm/node_modules/ajv/scripts/compile-dots.js delete mode 100644 deps/npm/node_modules/ajv/scripts/info delete mode 100644 deps/npm/node_modules/ajv/scripts/prepare-tests delete mode 100644 deps/npm/node_modules/ajv/scripts/publish-built-version delete mode 100644 deps/npm/node_modules/ajv/scripts/travis-gh-pages delete mode 100644 deps/npm/node_modules/ansi-regex/index.js delete mode 100644 deps/npm/node_modules/ansi-regex/license delete mode 100644 deps/npm/node_modules/ansi-regex/package.json delete mode 100644 deps/npm/node_modules/ansi-regex/readme.md delete mode 100644 deps/npm/node_modules/ansi-styles/index.d.ts delete mode 100644 deps/npm/node_modules/ansi-styles/index.js delete mode 100644 deps/npm/node_modules/ansi-styles/license delete mode 100644 deps/npm/node_modules/ansi-styles/package.json delete mode 100644 deps/npm/node_modules/ansi-styles/readme.md delete mode 100644 deps/npm/node_modules/ansicolors/LICENSE delete mode 100644 deps/npm/node_modules/ansicolors/README.md delete mode 100644 deps/npm/node_modules/ansicolors/ansicolors.js delete mode 100644 deps/npm/node_modules/ansicolors/package.json delete mode 100644 deps/npm/node_modules/ansicolors/test/ansicolors.js delete mode 100644 deps/npm/node_modules/ansistyles/LICENSE delete mode 100644 deps/npm/node_modules/ansistyles/README.md delete mode 100644 deps/npm/node_modules/ansistyles/ansistyles.js delete mode 100644 deps/npm/node_modules/ansistyles/package.json delete mode 100644 deps/npm/node_modules/ansistyles/test/ansistyles.js delete mode 100644 deps/npm/node_modules/aproba/CHANGELOG.md delete mode 100644 deps/npm/node_modules/aproba/LICENSE delete mode 100644 deps/npm/node_modules/aproba/README.md delete mode 100644 deps/npm/node_modules/aproba/index.js delete mode 100644 deps/npm/node_modules/aproba/package.json delete mode 100644 deps/npm/node_modules/archy/.travis.yml delete mode 100644 deps/npm/node_modules/archy/LICENSE delete mode 100644 deps/npm/node_modules/archy/README.markdown delete mode 100644 deps/npm/node_modules/archy/examples/beep.js delete mode 100644 deps/npm/node_modules/archy/examples/multi_line.js delete mode 100644 deps/npm/node_modules/archy/index.js delete mode 100644 deps/npm/node_modules/archy/package.json delete mode 100644 deps/npm/node_modules/archy/test/beep.js delete mode 100644 deps/npm/node_modules/archy/test/multi_line.js delete mode 100644 deps/npm/node_modules/archy/test/non_unicode.js delete mode 100644 deps/npm/node_modules/are-we-there-yet/CHANGES.md delete mode 100644 deps/npm/node_modules/are-we-there-yet/LICENSE delete mode 100644 deps/npm/node_modules/are-we-there-yet/README.md delete mode 100644 deps/npm/node_modules/are-we-there-yet/index.js delete mode 100644 deps/npm/node_modules/are-we-there-yet/package.json delete mode 100644 deps/npm/node_modules/are-we-there-yet/tracker-base.js delete mode 100644 deps/npm/node_modules/are-we-there-yet/tracker-group.js delete mode 100644 deps/npm/node_modules/are-we-there-yet/tracker-stream.js delete mode 100644 deps/npm/node_modules/are-we-there-yet/tracker.js delete mode 100644 deps/npm/node_modules/asap/CHANGES.md delete mode 100644 deps/npm/node_modules/asap/LICENSE.md delete mode 100644 deps/npm/node_modules/asap/README.md delete mode 100644 deps/npm/node_modules/asap/asap.js delete mode 100644 deps/npm/node_modules/asap/browser-asap.js delete mode 100644 deps/npm/node_modules/asap/browser-raw.js delete mode 100644 deps/npm/node_modules/asap/package.json delete mode 100644 deps/npm/node_modules/asap/raw.js delete mode 100644 deps/npm/node_modules/asn1/LICENSE delete mode 100644 deps/npm/node_modules/asn1/README.md delete mode 100644 deps/npm/node_modules/asn1/lib/ber/errors.js delete mode 100644 deps/npm/node_modules/asn1/lib/ber/index.js delete mode 100644 deps/npm/node_modules/asn1/lib/ber/reader.js delete mode 100644 deps/npm/node_modules/asn1/lib/ber/types.js delete mode 100644 deps/npm/node_modules/asn1/lib/ber/writer.js delete mode 100644 deps/npm/node_modules/asn1/lib/index.js delete mode 100644 deps/npm/node_modules/asn1/package.json delete mode 100644 deps/npm/node_modules/assert-plus/AUTHORS delete mode 100644 deps/npm/node_modules/assert-plus/CHANGES.md delete mode 100644 deps/npm/node_modules/assert-plus/README.md delete mode 100644 deps/npm/node_modules/assert-plus/assert.js delete mode 100644 deps/npm/node_modules/assert-plus/package.json delete mode 100644 deps/npm/node_modules/asynckit/LICENSE delete mode 100644 deps/npm/node_modules/asynckit/README.md delete mode 100644 deps/npm/node_modules/asynckit/bench.js delete mode 100644 deps/npm/node_modules/asynckit/index.js delete mode 100644 deps/npm/node_modules/asynckit/lib/abort.js delete mode 100644 deps/npm/node_modules/asynckit/lib/async.js delete mode 100644 deps/npm/node_modules/asynckit/lib/defer.js delete mode 100644 deps/npm/node_modules/asynckit/lib/iterate.js delete mode 100644 deps/npm/node_modules/asynckit/lib/readable_asynckit.js delete mode 100644 deps/npm/node_modules/asynckit/lib/readable_parallel.js delete mode 100644 deps/npm/node_modules/asynckit/lib/readable_serial.js delete mode 100644 deps/npm/node_modules/asynckit/lib/readable_serial_ordered.js delete mode 100644 deps/npm/node_modules/asynckit/lib/state.js delete mode 100644 deps/npm/node_modules/asynckit/lib/streamify.js delete mode 100644 deps/npm/node_modules/asynckit/lib/terminator.js delete mode 100644 deps/npm/node_modules/asynckit/package.json delete mode 100644 deps/npm/node_modules/asynckit/parallel.js delete mode 100644 deps/npm/node_modules/asynckit/serial.js delete mode 100644 deps/npm/node_modules/asynckit/serialOrdered.js delete mode 100644 deps/npm/node_modules/asynckit/stream.js delete mode 100644 deps/npm/node_modules/aws-sign2/LICENSE delete mode 100644 deps/npm/node_modules/aws-sign2/README.md delete mode 100644 deps/npm/node_modules/aws-sign2/index.js delete mode 100644 deps/npm/node_modules/aws-sign2/package.json delete mode 100644 deps/npm/node_modules/aws4/.github/FUNDING.yml delete mode 100644 deps/npm/node_modules/aws4/.travis.yml delete mode 100644 deps/npm/node_modules/aws4/LICENSE delete mode 100644 deps/npm/node_modules/aws4/README.md delete mode 100644 deps/npm/node_modules/aws4/aws4.js delete mode 100644 deps/npm/node_modules/aws4/lru.js delete mode 100644 deps/npm/node_modules/aws4/package.json delete mode 100644 deps/npm/node_modules/balanced-match/.npmignore delete mode 100644 deps/npm/node_modules/balanced-match/LICENSE.md delete mode 100644 deps/npm/node_modules/balanced-match/README.md delete mode 100644 deps/npm/node_modules/balanced-match/index.js delete mode 100644 deps/npm/node_modules/balanced-match/package.json delete mode 100644 deps/npm/node_modules/bcrypt-pbkdf/LICENSE delete mode 100644 deps/npm/node_modules/bcrypt-pbkdf/README.md delete mode 100644 deps/npm/node_modules/bcrypt-pbkdf/index.js delete mode 100644 deps/npm/node_modules/bcrypt-pbkdf/package.json delete mode 100644 deps/npm/node_modules/bin-links/CHANGELOG.md delete mode 100644 deps/npm/node_modules/bin-links/LICENSE delete mode 100644 deps/npm/node_modules/bin-links/README.md delete mode 100644 deps/npm/node_modules/bin-links/index.js delete mode 100644 deps/npm/node_modules/bin-links/lib/bin-target.js delete mode 100644 deps/npm/node_modules/bin-links/lib/check-bin.js delete mode 100644 deps/npm/node_modules/bin-links/lib/check-bins.js delete mode 100644 deps/npm/node_modules/bin-links/lib/fix-bin.js delete mode 100644 deps/npm/node_modules/bin-links/lib/get-node-modules.js delete mode 100644 deps/npm/node_modules/bin-links/lib/get-paths.js delete mode 100644 deps/npm/node_modules/bin-links/lib/get-prefix.js delete mode 100644 deps/npm/node_modules/bin-links/lib/is-windows.js delete mode 100644 deps/npm/node_modules/bin-links/lib/link-bin.js delete mode 100644 deps/npm/node_modules/bin-links/lib/link-bins.js delete mode 100644 deps/npm/node_modules/bin-links/lib/link-gently.js delete mode 100644 deps/npm/node_modules/bin-links/lib/link-mans.js delete mode 100644 deps/npm/node_modules/bin-links/lib/man-target.js delete mode 100644 deps/npm/node_modules/bin-links/lib/shim-bin.js delete mode 100644 deps/npm/node_modules/bin-links/package.json delete mode 100644 deps/npm/node_modules/brace-expansion/LICENSE delete mode 100644 deps/npm/node_modules/brace-expansion/README.md delete mode 100644 deps/npm/node_modules/brace-expansion/index.js delete mode 100644 deps/npm/node_modules/brace-expansion/package.json delete mode 100644 deps/npm/node_modules/builtins/.travis.yml delete mode 100644 deps/npm/node_modules/builtins/History.md delete mode 100644 deps/npm/node_modules/builtins/License delete mode 100644 deps/npm/node_modules/builtins/Readme.md delete mode 100644 deps/npm/node_modules/builtins/builtins.json delete mode 100644 deps/npm/node_modules/builtins/package.json delete mode 100644 deps/npm/node_modules/builtins/test.js delete mode 100644 deps/npm/node_modules/byte-size/LICENSE delete mode 100644 deps/npm/node_modules/byte-size/README.hbs delete mode 100644 deps/npm/node_modules/byte-size/README.md delete mode 100644 deps/npm/node_modules/byte-size/dist/index.js delete mode 100644 deps/npm/node_modules/byte-size/index.mjs delete mode 100644 deps/npm/node_modules/byte-size/package.json delete mode 100644 deps/npm/node_modules/cacache/CHANGELOG.md delete mode 100644 deps/npm/node_modules/cacache/LICENSE.md delete mode 100644 deps/npm/node_modules/cacache/README.md delete mode 100644 deps/npm/node_modules/cacache/get.js delete mode 100644 deps/npm/node_modules/cacache/index.js delete mode 100644 deps/npm/node_modules/cacache/lib/content/path.js delete mode 100644 deps/npm/node_modules/cacache/lib/content/read.js delete mode 100644 deps/npm/node_modules/cacache/lib/content/rm.js delete mode 100644 deps/npm/node_modules/cacache/lib/content/write.js delete mode 100644 deps/npm/node_modules/cacache/lib/entry-index.js delete mode 100644 deps/npm/node_modules/cacache/lib/memoization.js delete mode 100644 deps/npm/node_modules/cacache/lib/util/disposer.js delete mode 100644 deps/npm/node_modules/cacache/lib/util/fix-owner.js delete mode 100644 deps/npm/node_modules/cacache/lib/util/hash-to-segments.js delete mode 100644 deps/npm/node_modules/cacache/lib/util/move-file.js delete mode 100644 deps/npm/node_modules/cacache/lib/util/tmp.js delete mode 100644 deps/npm/node_modules/cacache/lib/verify.js delete mode 100644 deps/npm/node_modules/cacache/ls.js delete mode 100644 deps/npm/node_modules/cacache/package.json delete mode 100644 deps/npm/node_modules/cacache/put.js delete mode 100644 deps/npm/node_modules/cacache/rm.js delete mode 100644 deps/npm/node_modules/cacache/verify.js delete mode 100644 deps/npm/node_modules/caseless/LICENSE delete mode 100644 deps/npm/node_modules/caseless/README.md delete mode 100644 deps/npm/node_modules/caseless/index.js delete mode 100644 deps/npm/node_modules/caseless/package.json delete mode 100644 deps/npm/node_modules/caseless/test.js delete mode 100644 deps/npm/node_modules/chalk/index.d.ts delete mode 100644 deps/npm/node_modules/chalk/license delete mode 100644 deps/npm/node_modules/chalk/package.json delete mode 100644 deps/npm/node_modules/chalk/readme.md delete mode 100644 deps/npm/node_modules/chalk/source/index.js delete mode 100644 deps/npm/node_modules/chalk/source/templates.js delete mode 100644 deps/npm/node_modules/chalk/source/util.js delete mode 100644 deps/npm/node_modules/chownr/LICENSE delete mode 100644 deps/npm/node_modules/chownr/README.md delete mode 100644 deps/npm/node_modules/chownr/chownr.js delete mode 100644 deps/npm/node_modules/chownr/package.json delete mode 100644 deps/npm/node_modules/cidr-regex/LICENSE delete mode 100644 deps/npm/node_modules/cidr-regex/README.md delete mode 100644 deps/npm/node_modules/cidr-regex/index.d.ts delete mode 100644 deps/npm/node_modules/cidr-regex/index.js delete mode 100644 deps/npm/node_modules/cidr-regex/package.json delete mode 100644 deps/npm/node_modules/clean-stack/index.d.ts delete mode 100644 deps/npm/node_modules/clean-stack/index.js delete mode 100644 deps/npm/node_modules/clean-stack/license delete mode 100644 deps/npm/node_modules/clean-stack/package.json delete mode 100644 deps/npm/node_modules/clean-stack/readme.md delete mode 100644 deps/npm/node_modules/cli-columns/LICENSE delete mode 100644 deps/npm/node_modules/cli-columns/README.md delete mode 100644 deps/npm/node_modules/cli-columns/color.js delete mode 100644 deps/npm/node_modules/cli-columns/index.js delete mode 100644 deps/npm/node_modules/cli-columns/package.json delete mode 100644 deps/npm/node_modules/cli-columns/test.js delete mode 100644 deps/npm/node_modules/cli-table3/CHANGELOG.md delete mode 100644 deps/npm/node_modules/cli-table3/LICENSE delete mode 100644 deps/npm/node_modules/cli-table3/README.md delete mode 100644 deps/npm/node_modules/cli-table3/index.d.ts delete mode 100644 deps/npm/node_modules/cli-table3/index.js delete mode 100644 deps/npm/node_modules/cli-table3/node_modules/ansi-regex/index.d.ts delete mode 100644 deps/npm/node_modules/cli-table3/node_modules/ansi-regex/index.js delete mode 100644 deps/npm/node_modules/cli-table3/node_modules/ansi-regex/license delete mode 100644 deps/npm/node_modules/cli-table3/node_modules/ansi-regex/package.json delete mode 100644 deps/npm/node_modules/cli-table3/node_modules/ansi-regex/readme.md delete mode 100644 deps/npm/node_modules/cli-table3/node_modules/is-fullwidth-code-point/index.d.ts delete mode 100644 deps/npm/node_modules/cli-table3/node_modules/is-fullwidth-code-point/index.js delete mode 100644 deps/npm/node_modules/cli-table3/node_modules/is-fullwidth-code-point/license delete mode 100644 deps/npm/node_modules/cli-table3/node_modules/is-fullwidth-code-point/package.json delete mode 100644 deps/npm/node_modules/cli-table3/node_modules/is-fullwidth-code-point/readme.md delete mode 100644 deps/npm/node_modules/cli-table3/node_modules/string-width/index.d.ts delete mode 100644 deps/npm/node_modules/cli-table3/node_modules/string-width/index.js delete mode 100644 deps/npm/node_modules/cli-table3/node_modules/string-width/license delete mode 100644 deps/npm/node_modules/cli-table3/node_modules/string-width/package.json delete mode 100644 deps/npm/node_modules/cli-table3/node_modules/string-width/readme.md delete mode 100644 deps/npm/node_modules/cli-table3/node_modules/strip-ansi/index.d.ts delete mode 100644 deps/npm/node_modules/cli-table3/node_modules/strip-ansi/index.js delete mode 100644 deps/npm/node_modules/cli-table3/node_modules/strip-ansi/license delete mode 100644 deps/npm/node_modules/cli-table3/node_modules/strip-ansi/package.json delete mode 100644 deps/npm/node_modules/cli-table3/node_modules/strip-ansi/readme.md delete mode 100644 deps/npm/node_modules/cli-table3/package.json delete mode 100644 deps/npm/node_modules/cli-table3/src/cell.js delete mode 100644 deps/npm/node_modules/cli-table3/src/layout-manager.js delete mode 100644 deps/npm/node_modules/cli-table3/src/table.js delete mode 100644 deps/npm/node_modules/cli-table3/src/utils.js delete mode 100644 deps/npm/node_modules/clone/.npmignore delete mode 100644 deps/npm/node_modules/clone/LICENSE delete mode 100644 deps/npm/node_modules/clone/README.md delete mode 100644 deps/npm/node_modules/clone/clone.iml delete mode 100644 deps/npm/node_modules/clone/clone.js delete mode 100644 deps/npm/node_modules/clone/package.json delete mode 100644 deps/npm/node_modules/cmd-shim/LICENSE delete mode 100644 deps/npm/node_modules/cmd-shim/README.md delete mode 100644 deps/npm/node_modules/cmd-shim/index.js delete mode 100644 deps/npm/node_modules/cmd-shim/lib/to-batch-syntax.js delete mode 100644 deps/npm/node_modules/cmd-shim/package.json delete mode 100644 deps/npm/node_modules/code-point-at/index.js delete mode 100644 deps/npm/node_modules/code-point-at/license delete mode 100644 deps/npm/node_modules/code-point-at/package.json delete mode 100644 deps/npm/node_modules/code-point-at/readme.md delete mode 100644 deps/npm/node_modules/color-convert/CHANGELOG.md delete mode 100644 deps/npm/node_modules/color-convert/LICENSE delete mode 100644 deps/npm/node_modules/color-convert/README.md delete mode 100644 deps/npm/node_modules/color-convert/conversions.js delete mode 100644 deps/npm/node_modules/color-convert/index.js delete mode 100644 deps/npm/node_modules/color-convert/package.json delete mode 100644 deps/npm/node_modules/color-convert/route.js delete mode 100644 deps/npm/node_modules/color-name/LICENSE delete mode 100644 deps/npm/node_modules/color-name/README.md delete mode 100644 deps/npm/node_modules/color-name/index.js delete mode 100644 deps/npm/node_modules/color-name/package.json delete mode 100644 deps/npm/node_modules/colors/LICENSE delete mode 100644 deps/npm/node_modules/colors/README.md delete mode 100644 deps/npm/node_modules/colors/examples/normal-usage.js delete mode 100644 deps/npm/node_modules/colors/examples/safe-string.js delete mode 100644 deps/npm/node_modules/colors/index.d.ts delete mode 100644 deps/npm/node_modules/colors/lib/colors.js delete mode 100644 deps/npm/node_modules/colors/lib/custom/trap.js delete mode 100644 deps/npm/node_modules/colors/lib/custom/zalgo.js delete mode 100644 deps/npm/node_modules/colors/lib/extendStringPrototype.js delete mode 100644 deps/npm/node_modules/colors/lib/index.js delete mode 100644 deps/npm/node_modules/colors/lib/maps/america.js delete mode 100644 deps/npm/node_modules/colors/lib/maps/rainbow.js delete mode 100644 deps/npm/node_modules/colors/lib/maps/random.js delete mode 100644 deps/npm/node_modules/colors/lib/maps/zebra.js delete mode 100644 deps/npm/node_modules/colors/lib/styles.js delete mode 100644 deps/npm/node_modules/colors/lib/system/has-flag.js delete mode 100644 deps/npm/node_modules/colors/lib/system/supports-colors.js delete mode 100644 deps/npm/node_modules/colors/package.json delete mode 100644 deps/npm/node_modules/colors/safe.d.ts delete mode 100644 deps/npm/node_modules/colors/safe.js delete mode 100644 deps/npm/node_modules/colors/themes/generic-logging.js delete mode 100644 deps/npm/node_modules/columnify/LICENSE delete mode 100644 deps/npm/node_modules/columnify/Makefile delete mode 100644 deps/npm/node_modules/columnify/Readme.md delete mode 100644 deps/npm/node_modules/columnify/columnify.js delete mode 100644 deps/npm/node_modules/columnify/index.js delete mode 100644 deps/npm/node_modules/columnify/package.json delete mode 100644 deps/npm/node_modules/columnify/utils.js delete mode 100644 deps/npm/node_modules/columnify/width.js delete mode 100644 deps/npm/node_modules/combined-stream/License delete mode 100644 deps/npm/node_modules/combined-stream/Readme.md delete mode 100644 deps/npm/node_modules/combined-stream/lib/combined_stream.js delete mode 100644 deps/npm/node_modules/combined-stream/package.json delete mode 100644 deps/npm/node_modules/combined-stream/yarn.lock delete mode 100644 deps/npm/node_modules/common-ancestor-path/LICENSE delete mode 100644 deps/npm/node_modules/common-ancestor-path/README.md delete mode 100644 deps/npm/node_modules/common-ancestor-path/index.js delete mode 100644 deps/npm/node_modules/common-ancestor-path/package.json delete mode 100644 deps/npm/node_modules/concat-map/.travis.yml delete mode 100644 deps/npm/node_modules/concat-map/LICENSE delete mode 100644 deps/npm/node_modules/concat-map/README.markdown delete mode 100644 deps/npm/node_modules/concat-map/example/map.js delete mode 100644 deps/npm/node_modules/concat-map/index.js delete mode 100644 deps/npm/node_modules/concat-map/package.json delete mode 100644 deps/npm/node_modules/concat-map/test/map.js delete mode 100644 deps/npm/node_modules/console-control-strings/LICENSE delete mode 100644 deps/npm/node_modules/console-control-strings/README.md delete mode 100644 deps/npm/node_modules/console-control-strings/index.js delete mode 100644 deps/npm/node_modules/console-control-strings/package.json delete mode 100644 deps/npm/node_modules/core-util-is/LICENSE delete mode 100644 deps/npm/node_modules/core-util-is/README.md delete mode 100644 deps/npm/node_modules/core-util-is/float.patch delete mode 100644 deps/npm/node_modules/core-util-is/lib/util.js delete mode 100644 deps/npm/node_modules/core-util-is/package.json delete mode 100644 deps/npm/node_modules/core-util-is/test.js delete mode 100644 deps/npm/node_modules/dashdash/CHANGES.md delete mode 100644 deps/npm/node_modules/dashdash/LICENSE.txt delete mode 100644 deps/npm/node_modules/dashdash/README.md delete mode 100644 deps/npm/node_modules/dashdash/etc/dashdash.bash_completion.in delete mode 100644 deps/npm/node_modules/dashdash/lib/dashdash.js delete mode 100644 deps/npm/node_modules/dashdash/package.json delete mode 100644 deps/npm/node_modules/debug/LICENSE delete mode 100644 deps/npm/node_modules/debug/README.md delete mode 100644 deps/npm/node_modules/debug/node_modules/ms/index.js delete mode 100644 deps/npm/node_modules/debug/node_modules/ms/license.md delete mode 100644 deps/npm/node_modules/debug/node_modules/ms/package.json delete mode 100644 deps/npm/node_modules/debug/node_modules/ms/readme.md delete mode 100644 deps/npm/node_modules/debug/package.json delete mode 100644 deps/npm/node_modules/debug/src/browser.js delete mode 100644 deps/npm/node_modules/debug/src/common.js delete mode 100644 deps/npm/node_modules/debug/src/index.js delete mode 100644 deps/npm/node_modules/debug/src/node.js delete mode 100644 deps/npm/node_modules/debuglog/LICENSE delete mode 100644 deps/npm/node_modules/debuglog/README.md delete mode 100644 deps/npm/node_modules/debuglog/debuglog.js delete mode 100644 deps/npm/node_modules/debuglog/package.json delete mode 100644 deps/npm/node_modules/defaults/.npmignore delete mode 100644 deps/npm/node_modules/defaults/LICENSE delete mode 100644 deps/npm/node_modules/defaults/README.md delete mode 100644 deps/npm/node_modules/defaults/index.js delete mode 100644 deps/npm/node_modules/defaults/package.json delete mode 100644 deps/npm/node_modules/defaults/test.js delete mode 100644 deps/npm/node_modules/delayed-stream/.npmignore delete mode 100644 deps/npm/node_modules/delayed-stream/License delete mode 100644 deps/npm/node_modules/delayed-stream/Makefile delete mode 100644 deps/npm/node_modules/delayed-stream/Readme.md delete mode 100644 deps/npm/node_modules/delayed-stream/lib/delayed_stream.js delete mode 100644 deps/npm/node_modules/delayed-stream/package.json delete mode 100644 deps/npm/node_modules/delegates/.npmignore delete mode 100644 deps/npm/node_modules/delegates/History.md delete mode 100644 deps/npm/node_modules/delegates/License delete mode 100644 deps/npm/node_modules/delegates/Makefile delete mode 100644 deps/npm/node_modules/delegates/Readme.md delete mode 100644 deps/npm/node_modules/delegates/index.js delete mode 100644 deps/npm/node_modules/delegates/package.json delete mode 100644 deps/npm/node_modules/delegates/test/index.js delete mode 100644 deps/npm/node_modules/depd/History.md delete mode 100644 deps/npm/node_modules/depd/LICENSE delete mode 100644 deps/npm/node_modules/depd/Readme.md delete mode 100644 deps/npm/node_modules/depd/index.js delete mode 100644 deps/npm/node_modules/depd/lib/browser/index.js delete mode 100644 deps/npm/node_modules/depd/lib/compat/callsite-tostring.js delete mode 100644 deps/npm/node_modules/depd/lib/compat/event-listener-count.js delete mode 100644 deps/npm/node_modules/depd/lib/compat/index.js delete mode 100644 deps/npm/node_modules/depd/package.json delete mode 100644 deps/npm/node_modules/dezalgo/.travis.yml delete mode 100644 deps/npm/node_modules/dezalgo/LICENSE delete mode 100644 deps/npm/node_modules/dezalgo/README.md delete mode 100644 deps/npm/node_modules/dezalgo/dezalgo.js delete mode 100644 deps/npm/node_modules/dezalgo/package.json delete mode 100644 deps/npm/node_modules/dezalgo/test/basic.js delete mode 100755 deps/npm/node_modules/ecc-jsbn/LICENSE delete mode 100755 deps/npm/node_modules/ecc-jsbn/README.md delete mode 100755 deps/npm/node_modules/ecc-jsbn/index.js delete mode 100755 deps/npm/node_modules/ecc-jsbn/lib/LICENSE-jsbn delete mode 100755 deps/npm/node_modules/ecc-jsbn/lib/ec.js delete mode 100755 deps/npm/node_modules/ecc-jsbn/lib/sec.js delete mode 100755 deps/npm/node_modules/ecc-jsbn/package.json delete mode 100755 deps/npm/node_modules/ecc-jsbn/test.js delete mode 100644 deps/npm/node_modules/editor/LICENSE delete mode 100644 deps/npm/node_modules/editor/README.markdown delete mode 100644 deps/npm/node_modules/editor/example/beep.json delete mode 100644 deps/npm/node_modules/editor/example/edit.js delete mode 100644 deps/npm/node_modules/editor/index.js delete mode 100644 deps/npm/node_modules/editor/package.json delete mode 100644 deps/npm/node_modules/emoji-regex/LICENSE-MIT.txt delete mode 100644 deps/npm/node_modules/emoji-regex/README.md delete mode 100644 deps/npm/node_modules/emoji-regex/es2015/index.js delete mode 100644 deps/npm/node_modules/emoji-regex/es2015/text.js delete mode 100644 deps/npm/node_modules/emoji-regex/index.d.ts delete mode 100644 deps/npm/node_modules/emoji-regex/index.js delete mode 100644 deps/npm/node_modules/emoji-regex/package.json delete mode 100644 deps/npm/node_modules/emoji-regex/text.js delete mode 100644 deps/npm/node_modules/encoding/.prettierrc.js delete mode 100644 deps/npm/node_modules/encoding/.travis.yml delete mode 100644 deps/npm/node_modules/encoding/LICENSE delete mode 100644 deps/npm/node_modules/encoding/README.md delete mode 100644 deps/npm/node_modules/encoding/lib/encoding.js delete mode 100644 deps/npm/node_modules/encoding/package.json delete mode 100644 deps/npm/node_modules/encoding/test/test.js delete mode 100644 deps/npm/node_modules/env-paths/index.d.ts delete mode 100644 deps/npm/node_modules/env-paths/index.js delete mode 100644 deps/npm/node_modules/env-paths/license delete mode 100644 deps/npm/node_modules/env-paths/package.json delete mode 100644 deps/npm/node_modules/env-paths/readme.md delete mode 100644 deps/npm/node_modules/err-code/.editorconfig delete mode 100644 deps/npm/node_modules/err-code/.eslintrc.json delete mode 100644 deps/npm/node_modules/err-code/.npmignore delete mode 100644 deps/npm/node_modules/err-code/.travis.yml delete mode 100644 deps/npm/node_modules/err-code/README.md delete mode 100644 deps/npm/node_modules/err-code/bower.json delete mode 100644 deps/npm/node_modules/err-code/index.js delete mode 100644 deps/npm/node_modules/err-code/index.umd.js delete mode 100644 deps/npm/node_modules/err-code/package.json delete mode 100644 deps/npm/node_modules/err-code/test/.eslintrc.json delete mode 100644 deps/npm/node_modules/err-code/test/test.js delete mode 100644 deps/npm/node_modules/extend/.editorconfig delete mode 100644 deps/npm/node_modules/extend/.jscs.json delete mode 100644 deps/npm/node_modules/extend/.travis.yml delete mode 100644 deps/npm/node_modules/extend/CHANGELOG.md delete mode 100644 deps/npm/node_modules/extend/LICENSE delete mode 100644 deps/npm/node_modules/extend/README.md delete mode 100644 deps/npm/node_modules/extend/component.json delete mode 100644 deps/npm/node_modules/extend/index.js delete mode 100644 deps/npm/node_modules/extend/package.json delete mode 100644 deps/npm/node_modules/extsprintf/.gitmodules delete mode 100644 deps/npm/node_modules/extsprintf/.npmignore delete mode 100644 deps/npm/node_modules/extsprintf/LICENSE delete mode 100644 deps/npm/node_modules/extsprintf/Makefile delete mode 100644 deps/npm/node_modules/extsprintf/Makefile.targ delete mode 100644 deps/npm/node_modules/extsprintf/README.md delete mode 100644 deps/npm/node_modules/extsprintf/jsl.node.conf delete mode 100644 deps/npm/node_modules/extsprintf/lib/extsprintf.js delete mode 100644 deps/npm/node_modules/extsprintf/package.json delete mode 100644 deps/npm/node_modules/fast-deep-equal/LICENSE delete mode 100644 deps/npm/node_modules/fast-deep-equal/README.md delete mode 100644 deps/npm/node_modules/fast-deep-equal/es6/index.d.ts delete mode 100644 deps/npm/node_modules/fast-deep-equal/es6/index.js delete mode 100644 deps/npm/node_modules/fast-deep-equal/es6/react.d.ts delete mode 100644 deps/npm/node_modules/fast-deep-equal/es6/react.js delete mode 100644 deps/npm/node_modules/fast-deep-equal/index.d.ts delete mode 100644 deps/npm/node_modules/fast-deep-equal/index.js delete mode 100644 deps/npm/node_modules/fast-deep-equal/package.json delete mode 100644 deps/npm/node_modules/fast-deep-equal/react.d.ts delete mode 100644 deps/npm/node_modules/fast-deep-equal/react.js delete mode 100644 deps/npm/node_modules/fast-json-stable-stringify/.eslintrc.yml delete mode 100644 deps/npm/node_modules/fast-json-stable-stringify/.github/FUNDING.yml delete mode 100644 deps/npm/node_modules/fast-json-stable-stringify/.travis.yml delete mode 100644 deps/npm/node_modules/fast-json-stable-stringify/LICENSE delete mode 100644 deps/npm/node_modules/fast-json-stable-stringify/README.md delete mode 100644 deps/npm/node_modules/fast-json-stable-stringify/benchmark/index.js delete mode 100644 deps/npm/node_modules/fast-json-stable-stringify/benchmark/test.json delete mode 100644 deps/npm/node_modules/fast-json-stable-stringify/example/key_cmp.js delete mode 100644 deps/npm/node_modules/fast-json-stable-stringify/example/nested.js delete mode 100644 deps/npm/node_modules/fast-json-stable-stringify/example/str.js delete mode 100644 deps/npm/node_modules/fast-json-stable-stringify/example/value_cmp.js delete mode 100644 deps/npm/node_modules/fast-json-stable-stringify/index.d.ts delete mode 100644 deps/npm/node_modules/fast-json-stable-stringify/index.js delete mode 100644 deps/npm/node_modules/fast-json-stable-stringify/package.json delete mode 100644 deps/npm/node_modules/fast-json-stable-stringify/test/cmp.js delete mode 100644 deps/npm/node_modules/fast-json-stable-stringify/test/nested.js delete mode 100644 deps/npm/node_modules/fast-json-stable-stringify/test/str.js delete mode 100644 deps/npm/node_modules/fast-json-stable-stringify/test/to-json.js delete mode 100644 deps/npm/node_modules/forever-agent/LICENSE delete mode 100644 deps/npm/node_modules/forever-agent/README.md delete mode 100644 deps/npm/node_modules/forever-agent/index.js delete mode 100644 deps/npm/node_modules/forever-agent/package.json delete mode 100644 deps/npm/node_modules/form-data/License delete mode 100644 deps/npm/node_modules/form-data/README.md delete mode 100644 deps/npm/node_modules/form-data/README.md.bak delete mode 100644 deps/npm/node_modules/form-data/lib/browser.js delete mode 100644 deps/npm/node_modules/form-data/lib/form_data.js delete mode 100644 deps/npm/node_modules/form-data/lib/populate.js delete mode 100644 deps/npm/node_modules/form-data/package.json delete mode 100644 deps/npm/node_modules/form-data/yarn.lock delete mode 100644 deps/npm/node_modules/fs-minipass/LICENSE delete mode 100644 deps/npm/node_modules/fs-minipass/README.md delete mode 100644 deps/npm/node_modules/fs-minipass/index.js delete mode 100644 deps/npm/node_modules/fs-minipass/package.json delete mode 100644 deps/npm/node_modules/fs.realpath/LICENSE delete mode 100644 deps/npm/node_modules/fs.realpath/README.md delete mode 100644 deps/npm/node_modules/fs.realpath/index.js delete mode 100644 deps/npm/node_modules/fs.realpath/old.js delete mode 100644 deps/npm/node_modules/fs.realpath/package.json delete mode 100644 deps/npm/node_modules/function-bind/.editorconfig delete mode 100644 deps/npm/node_modules/function-bind/.jscs.json delete mode 100644 deps/npm/node_modules/function-bind/.npmignore delete mode 100644 deps/npm/node_modules/function-bind/.travis.yml delete mode 100644 deps/npm/node_modules/function-bind/LICENSE delete mode 100644 deps/npm/node_modules/function-bind/README.md delete mode 100644 deps/npm/node_modules/function-bind/implementation.js delete mode 100644 deps/npm/node_modules/function-bind/index.js delete mode 100644 deps/npm/node_modules/function-bind/package.json delete mode 100644 deps/npm/node_modules/function-bind/test/index.js delete mode 100644 deps/npm/node_modules/gauge/CHANGELOG.md delete mode 100644 deps/npm/node_modules/gauge/LICENSE delete mode 100644 deps/npm/node_modules/gauge/README.md delete mode 100644 deps/npm/node_modules/gauge/base-theme.js delete mode 100644 deps/npm/node_modules/gauge/error.js delete mode 100644 deps/npm/node_modules/gauge/has-color.js delete mode 100644 deps/npm/node_modules/gauge/index.js delete mode 100644 deps/npm/node_modules/gauge/node_modules/aproba/LICENSE delete mode 100644 deps/npm/node_modules/gauge/node_modules/aproba/README.md delete mode 100644 deps/npm/node_modules/gauge/node_modules/aproba/index.js delete mode 100644 deps/npm/node_modules/gauge/node_modules/aproba/package.json delete mode 100644 deps/npm/node_modules/gauge/node_modules/is-fullwidth-code-point/index.js delete mode 100644 deps/npm/node_modules/gauge/node_modules/is-fullwidth-code-point/license delete mode 100644 deps/npm/node_modules/gauge/node_modules/is-fullwidth-code-point/package.json delete mode 100644 deps/npm/node_modules/gauge/node_modules/is-fullwidth-code-point/readme.md delete mode 100644 deps/npm/node_modules/gauge/node_modules/string-width/index.js delete mode 100644 deps/npm/node_modules/gauge/node_modules/string-width/license delete mode 100644 deps/npm/node_modules/gauge/node_modules/string-width/package.json delete mode 100644 deps/npm/node_modules/gauge/node_modules/string-width/readme.md delete mode 100644 deps/npm/node_modules/gauge/package.json delete mode 100644 deps/npm/node_modules/gauge/plumbing.js delete mode 100644 deps/npm/node_modules/gauge/process.js delete mode 100644 deps/npm/node_modules/gauge/progress-bar.js delete mode 100644 deps/npm/node_modules/gauge/render-template.js delete mode 100644 deps/npm/node_modules/gauge/set-immediate.js delete mode 100644 deps/npm/node_modules/gauge/set-interval.js delete mode 100644 deps/npm/node_modules/gauge/spin.js delete mode 100644 deps/npm/node_modules/gauge/template-item.js delete mode 100644 deps/npm/node_modules/gauge/theme-set.js delete mode 100644 deps/npm/node_modules/gauge/themes.js delete mode 100644 deps/npm/node_modules/gauge/wide-truncate.js delete mode 100644 deps/npm/node_modules/getpass/.npmignore delete mode 100644 deps/npm/node_modules/getpass/.travis.yml delete mode 100644 deps/npm/node_modules/getpass/LICENSE delete mode 100644 deps/npm/node_modules/getpass/README.md delete mode 100644 deps/npm/node_modules/getpass/lib/index.js delete mode 100644 deps/npm/node_modules/getpass/package.json delete mode 100644 deps/npm/node_modules/glob/LICENSE delete mode 100644 deps/npm/node_modules/glob/README.md delete mode 100644 deps/npm/node_modules/glob/changelog.md delete mode 100644 deps/npm/node_modules/glob/common.js delete mode 100644 deps/npm/node_modules/glob/glob.js delete mode 100644 deps/npm/node_modules/glob/package.json delete mode 100644 deps/npm/node_modules/glob/sync.js delete mode 100644 deps/npm/node_modules/graceful-fs/LICENSE delete mode 100644 deps/npm/node_modules/graceful-fs/README.md delete mode 100644 deps/npm/node_modules/graceful-fs/clone.js delete mode 100644 deps/npm/node_modules/graceful-fs/graceful-fs.js delete mode 100644 deps/npm/node_modules/graceful-fs/legacy-streams.js delete mode 100644 deps/npm/node_modules/graceful-fs/package.json delete mode 100644 deps/npm/node_modules/graceful-fs/polyfills.js delete mode 100644 deps/npm/node_modules/har-schema/LICENSE delete mode 100644 deps/npm/node_modules/har-schema/README.md delete mode 100644 deps/npm/node_modules/har-schema/lib/afterRequest.json delete mode 100644 deps/npm/node_modules/har-schema/lib/beforeRequest.json delete mode 100644 deps/npm/node_modules/har-schema/lib/browser.json delete mode 100644 deps/npm/node_modules/har-schema/lib/cache.json delete mode 100644 deps/npm/node_modules/har-schema/lib/content.json delete mode 100644 deps/npm/node_modules/har-schema/lib/cookie.json delete mode 100644 deps/npm/node_modules/har-schema/lib/creator.json delete mode 100644 deps/npm/node_modules/har-schema/lib/entry.json delete mode 100644 deps/npm/node_modules/har-schema/lib/har.json delete mode 100644 deps/npm/node_modules/har-schema/lib/header.json delete mode 100644 deps/npm/node_modules/har-schema/lib/index.js delete mode 100644 deps/npm/node_modules/har-schema/lib/log.json delete mode 100644 deps/npm/node_modules/har-schema/lib/page.json delete mode 100644 deps/npm/node_modules/har-schema/lib/pageTimings.json delete mode 100644 deps/npm/node_modules/har-schema/lib/postData.json delete mode 100644 deps/npm/node_modules/har-schema/lib/query.json delete mode 100644 deps/npm/node_modules/har-schema/lib/request.json delete mode 100644 deps/npm/node_modules/har-schema/lib/response.json delete mode 100644 deps/npm/node_modules/har-schema/lib/timings.json delete mode 100644 deps/npm/node_modules/har-schema/package.json delete mode 100644 deps/npm/node_modules/har-validator/LICENSE delete mode 100644 deps/npm/node_modules/har-validator/README.md delete mode 100644 deps/npm/node_modules/har-validator/lib/async.js delete mode 100644 deps/npm/node_modules/har-validator/lib/error.js delete mode 100644 deps/npm/node_modules/har-validator/lib/promise.js delete mode 100644 deps/npm/node_modules/har-validator/package.json delete mode 100644 deps/npm/node_modules/has-flag/index.d.ts delete mode 100644 deps/npm/node_modules/has-flag/index.js delete mode 100644 deps/npm/node_modules/has-flag/license delete mode 100644 deps/npm/node_modules/has-flag/package.json delete mode 100644 deps/npm/node_modules/has-flag/readme.md delete mode 100644 deps/npm/node_modules/has-unicode/LICENSE delete mode 100644 deps/npm/node_modules/has-unicode/README.md delete mode 100644 deps/npm/node_modules/has-unicode/index.js delete mode 100644 deps/npm/node_modules/has-unicode/package.json delete mode 100644 deps/npm/node_modules/has/LICENSE-MIT delete mode 100644 deps/npm/node_modules/has/README.md delete mode 100644 deps/npm/node_modules/has/package.json delete mode 100644 deps/npm/node_modules/has/src/index.js delete mode 100644 deps/npm/node_modules/has/test/index.js delete mode 100644 deps/npm/node_modules/hosted-git-info/CHANGELOG.md delete mode 100644 deps/npm/node_modules/hosted-git-info/LICENSE delete mode 100644 deps/npm/node_modules/hosted-git-info/README.md delete mode 100644 deps/npm/node_modules/hosted-git-info/git-host-info.js delete mode 100644 deps/npm/node_modules/hosted-git-info/git-host.js delete mode 100644 deps/npm/node_modules/hosted-git-info/index.js delete mode 100644 deps/npm/node_modules/hosted-git-info/package.json delete mode 100644 deps/npm/node_modules/http-cache-semantics/LICENSE delete mode 100644 deps/npm/node_modules/http-cache-semantics/README.md delete mode 100644 deps/npm/node_modules/http-cache-semantics/index.js delete mode 100644 deps/npm/node_modules/http-cache-semantics/package.json delete mode 100644 deps/npm/node_modules/http-proxy-agent/README.md delete mode 100644 deps/npm/node_modules/http-proxy-agent/dist/agent.d.ts delete mode 100644 deps/npm/node_modules/http-proxy-agent/dist/agent.js delete mode 100644 deps/npm/node_modules/http-proxy-agent/dist/agent.js.map delete mode 100644 deps/npm/node_modules/http-proxy-agent/dist/index.d.ts delete mode 100644 deps/npm/node_modules/http-proxy-agent/dist/index.js delete mode 100644 deps/npm/node_modules/http-proxy-agent/dist/index.js.map delete mode 100644 deps/npm/node_modules/http-proxy-agent/package.json delete mode 100644 deps/npm/node_modules/http-signature/.dir-locals.el delete mode 100644 deps/npm/node_modules/http-signature/.npmignore delete mode 100644 deps/npm/node_modules/http-signature/CHANGES.md delete mode 100644 deps/npm/node_modules/http-signature/LICENSE delete mode 100644 deps/npm/node_modules/http-signature/README.md delete mode 100644 deps/npm/node_modules/http-signature/http_signing.md delete mode 100644 deps/npm/node_modules/http-signature/lib/index.js delete mode 100644 deps/npm/node_modules/http-signature/lib/parser.js delete mode 100644 deps/npm/node_modules/http-signature/lib/signer.js delete mode 100644 deps/npm/node_modules/http-signature/lib/utils.js delete mode 100644 deps/npm/node_modules/http-signature/lib/verify.js delete mode 100644 deps/npm/node_modules/http-signature/package.json delete mode 100644 deps/npm/node_modules/https-proxy-agent/README.md delete mode 100644 deps/npm/node_modules/https-proxy-agent/dist/agent.d.ts delete mode 100644 deps/npm/node_modules/https-proxy-agent/dist/agent.js delete mode 100644 deps/npm/node_modules/https-proxy-agent/dist/agent.js.map delete mode 100644 deps/npm/node_modules/https-proxy-agent/dist/index.d.ts delete mode 100644 deps/npm/node_modules/https-proxy-agent/dist/index.js delete mode 100644 deps/npm/node_modules/https-proxy-agent/dist/index.js.map delete mode 100644 deps/npm/node_modules/https-proxy-agent/dist/parse-proxy-response.d.ts delete mode 100644 deps/npm/node_modules/https-proxy-agent/dist/parse-proxy-response.js delete mode 100644 deps/npm/node_modules/https-proxy-agent/dist/parse-proxy-response.js.map delete mode 100644 deps/npm/node_modules/https-proxy-agent/package.json delete mode 100644 deps/npm/node_modules/humanize-ms/History.md delete mode 100644 deps/npm/node_modules/humanize-ms/LICENSE delete mode 100644 deps/npm/node_modules/humanize-ms/README.md delete mode 100644 deps/npm/node_modules/humanize-ms/index.js delete mode 100644 deps/npm/node_modules/humanize-ms/package.json delete mode 100644 deps/npm/node_modules/iconv-lite/.github/dependabot.yml delete mode 100644 deps/npm/node_modules/iconv-lite/Changelog.md delete mode 100644 deps/npm/node_modules/iconv-lite/LICENSE delete mode 100644 deps/npm/node_modules/iconv-lite/README.md delete mode 100644 deps/npm/node_modules/iconv-lite/encodings/dbcs-codec.js delete mode 100644 deps/npm/node_modules/iconv-lite/encodings/dbcs-data.js delete mode 100644 deps/npm/node_modules/iconv-lite/encodings/index.js delete mode 100644 deps/npm/node_modules/iconv-lite/encodings/internal.js delete mode 100644 deps/npm/node_modules/iconv-lite/encodings/sbcs-codec.js delete mode 100644 deps/npm/node_modules/iconv-lite/encodings/sbcs-data-generated.js delete mode 100644 deps/npm/node_modules/iconv-lite/encodings/sbcs-data.js delete mode 100644 deps/npm/node_modules/iconv-lite/encodings/tables/big5-added.json delete mode 100644 deps/npm/node_modules/iconv-lite/encodings/tables/cp936.json delete mode 100644 deps/npm/node_modules/iconv-lite/encodings/tables/cp949.json delete mode 100644 deps/npm/node_modules/iconv-lite/encodings/tables/cp950.json delete mode 100644 deps/npm/node_modules/iconv-lite/encodings/tables/eucjp.json delete mode 100644 deps/npm/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json delete mode 100644 deps/npm/node_modules/iconv-lite/encodings/tables/gbk-added.json delete mode 100644 deps/npm/node_modules/iconv-lite/encodings/tables/shiftjis.json delete mode 100644 deps/npm/node_modules/iconv-lite/encodings/utf16.js delete mode 100644 deps/npm/node_modules/iconv-lite/encodings/utf32.js delete mode 100644 deps/npm/node_modules/iconv-lite/encodings/utf7.js delete mode 100644 deps/npm/node_modules/iconv-lite/lib/bom-handling.js delete mode 100644 deps/npm/node_modules/iconv-lite/lib/index.d.ts delete mode 100644 deps/npm/node_modules/iconv-lite/lib/index.js delete mode 100644 deps/npm/node_modules/iconv-lite/lib/streams.js delete mode 100644 deps/npm/node_modules/iconv-lite/package.json delete mode 100644 deps/npm/node_modules/ignore-walk/LICENSE delete mode 100644 deps/npm/node_modules/ignore-walk/README.md delete mode 100644 deps/npm/node_modules/ignore-walk/index.js delete mode 100644 deps/npm/node_modules/ignore-walk/package.json delete mode 100644 deps/npm/node_modules/imurmurhash/README.md delete mode 100644 deps/npm/node_modules/imurmurhash/imurmurhash.js delete mode 100644 deps/npm/node_modules/imurmurhash/imurmurhash.min.js delete mode 100644 deps/npm/node_modules/imurmurhash/package.json delete mode 100644 deps/npm/node_modules/indent-string/index.d.ts delete mode 100644 deps/npm/node_modules/indent-string/index.js delete mode 100644 deps/npm/node_modules/indent-string/license delete mode 100644 deps/npm/node_modules/indent-string/package.json delete mode 100644 deps/npm/node_modules/indent-string/readme.md delete mode 100644 deps/npm/node_modules/infer-owner/LICENSE delete mode 100644 deps/npm/node_modules/infer-owner/README.md delete mode 100644 deps/npm/node_modules/infer-owner/index.js delete mode 100644 deps/npm/node_modules/infer-owner/package.json delete mode 100644 deps/npm/node_modules/inflight/LICENSE delete mode 100644 deps/npm/node_modules/inflight/README.md delete mode 100644 deps/npm/node_modules/inflight/inflight.js delete mode 100644 deps/npm/node_modules/inflight/package.json delete mode 100644 deps/npm/node_modules/inherits/LICENSE delete mode 100644 deps/npm/node_modules/inherits/README.md delete mode 100644 deps/npm/node_modules/inherits/inherits.js delete mode 100644 deps/npm/node_modules/inherits/inherits_browser.js delete mode 100644 deps/npm/node_modules/inherits/package.json delete mode 100644 deps/npm/node_modules/ini/LICENSE delete mode 100644 deps/npm/node_modules/ini/README.md delete mode 100644 deps/npm/node_modules/ini/ini.js delete mode 100644 deps/npm/node_modules/ini/package.json delete mode 100644 deps/npm/node_modules/init-package-json/CHANGELOG.md delete mode 100644 deps/npm/node_modules/init-package-json/LICENSE delete mode 100644 deps/npm/node_modules/init-package-json/README.md delete mode 100644 deps/npm/node_modules/init-package-json/default-input.js delete mode 100644 deps/npm/node_modules/init-package-json/init-package-json.js delete mode 100644 deps/npm/node_modules/init-package-json/package.json delete mode 100644 deps/npm/node_modules/ip-regex/index.d.ts delete mode 100644 deps/npm/node_modules/ip-regex/index.js delete mode 100644 deps/npm/node_modules/ip-regex/license delete mode 100644 deps/npm/node_modules/ip-regex/package.json delete mode 100644 deps/npm/node_modules/ip-regex/readme.md delete mode 100644 deps/npm/node_modules/ip/.jscsrc delete mode 100644 deps/npm/node_modules/ip/.npmignore delete mode 100644 deps/npm/node_modules/ip/.travis.yml delete mode 100644 deps/npm/node_modules/ip/README.md delete mode 100644 deps/npm/node_modules/ip/lib/ip.js delete mode 100644 deps/npm/node_modules/ip/package.json delete mode 100644 deps/npm/node_modules/ip/test/api-test.js delete mode 100644 deps/npm/node_modules/is-cidr/LICENSE delete mode 100644 deps/npm/node_modules/is-cidr/README.md delete mode 100644 deps/npm/node_modules/is-cidr/index.d.ts delete mode 100644 deps/npm/node_modules/is-cidr/index.js delete mode 100644 deps/npm/node_modules/is-cidr/package.json delete mode 100644 deps/npm/node_modules/is-core-module/.eslintignore delete mode 100644 deps/npm/node_modules/is-core-module/.github/FUNDING.yml delete mode 100644 deps/npm/node_modules/is-core-module/.github/workflows/node-4+.yml delete mode 100644 deps/npm/node_modules/is-core-module/.github/workflows/node-iojs.yml delete mode 100644 deps/npm/node_modules/is-core-module/.github/workflows/node-pretest.yml delete mode 100644 deps/npm/node_modules/is-core-module/.github/workflows/node-zero.yml delete mode 100644 deps/npm/node_modules/is-core-module/.github/workflows/rebase.yml delete mode 100644 deps/npm/node_modules/is-core-module/.github/workflows/require-allow-edits.yml delete mode 100644 deps/npm/node_modules/is-core-module/.nycrc delete mode 100644 deps/npm/node_modules/is-core-module/CHANGELOG.md delete mode 100644 deps/npm/node_modules/is-core-module/LICENSE delete mode 100644 deps/npm/node_modules/is-core-module/README.md delete mode 100644 deps/npm/node_modules/is-core-module/core.json delete mode 100644 deps/npm/node_modules/is-core-module/index.js delete mode 100644 deps/npm/node_modules/is-core-module/package.json delete mode 100644 deps/npm/node_modules/is-core-module/test/index.js delete mode 100644 deps/npm/node_modules/is-fullwidth-code-point/index.js delete mode 100644 deps/npm/node_modules/is-fullwidth-code-point/license delete mode 100644 deps/npm/node_modules/is-fullwidth-code-point/package.json delete mode 100644 deps/npm/node_modules/is-fullwidth-code-point/readme.md delete mode 100644 deps/npm/node_modules/is-lambda/.npmignore delete mode 100644 deps/npm/node_modules/is-lambda/.travis.yml delete mode 100644 deps/npm/node_modules/is-lambda/LICENSE delete mode 100644 deps/npm/node_modules/is-lambda/README.md delete mode 100644 deps/npm/node_modules/is-lambda/index.js delete mode 100644 deps/npm/node_modules/is-lambda/package.json delete mode 100644 deps/npm/node_modules/is-lambda/test.js delete mode 100644 deps/npm/node_modules/is-typedarray/LICENSE.md delete mode 100644 deps/npm/node_modules/is-typedarray/README.md delete mode 100644 deps/npm/node_modules/is-typedarray/index.js delete mode 100644 deps/npm/node_modules/is-typedarray/package.json delete mode 100644 deps/npm/node_modules/is-typedarray/test.js delete mode 100644 deps/npm/node_modules/isarray/.npmignore delete mode 100644 deps/npm/node_modules/isarray/.travis.yml delete mode 100644 deps/npm/node_modules/isarray/Makefile delete mode 100644 deps/npm/node_modules/isarray/README.md delete mode 100644 deps/npm/node_modules/isarray/component.json delete mode 100644 deps/npm/node_modules/isarray/index.js delete mode 100644 deps/npm/node_modules/isarray/package.json delete mode 100644 deps/npm/node_modules/isarray/test.js delete mode 100644 deps/npm/node_modules/isexe/.npmignore delete mode 100644 deps/npm/node_modules/isexe/LICENSE delete mode 100644 deps/npm/node_modules/isexe/README.md delete mode 100644 deps/npm/node_modules/isexe/index.js delete mode 100644 deps/npm/node_modules/isexe/mode.js delete mode 100644 deps/npm/node_modules/isexe/package.json delete mode 100644 deps/npm/node_modules/isexe/test/basic.js delete mode 100644 deps/npm/node_modules/isexe/windows.js delete mode 100644 deps/npm/node_modules/isstream/.npmignore delete mode 100644 deps/npm/node_modules/isstream/.travis.yml delete mode 100644 deps/npm/node_modules/isstream/LICENSE.md delete mode 100644 deps/npm/node_modules/isstream/README.md delete mode 100644 deps/npm/node_modules/isstream/isstream.js delete mode 100644 deps/npm/node_modules/isstream/package.json delete mode 100644 deps/npm/node_modules/isstream/test.js delete mode 100644 deps/npm/node_modules/jsbn/.npmignore delete mode 100644 deps/npm/node_modules/jsbn/LICENSE delete mode 100644 deps/npm/node_modules/jsbn/README.md delete mode 100644 deps/npm/node_modules/jsbn/example.html delete mode 100644 deps/npm/node_modules/jsbn/example.js delete mode 100644 deps/npm/node_modules/jsbn/index.js delete mode 100644 deps/npm/node_modules/jsbn/package.json delete mode 100644 deps/npm/node_modules/json-parse-even-better-errors/CHANGELOG.md delete mode 100644 deps/npm/node_modules/json-parse-even-better-errors/LICENSE.md delete mode 100644 deps/npm/node_modules/json-parse-even-better-errors/README.md delete mode 100644 deps/npm/node_modules/json-parse-even-better-errors/index.js delete mode 100644 deps/npm/node_modules/json-parse-even-better-errors/package.json delete mode 100644 deps/npm/node_modules/json-schema-traverse/.eslintrc.yml delete mode 100644 deps/npm/node_modules/json-schema-traverse/.travis.yml delete mode 100644 deps/npm/node_modules/json-schema-traverse/LICENSE delete mode 100644 deps/npm/node_modules/json-schema-traverse/README.md delete mode 100644 deps/npm/node_modules/json-schema-traverse/index.js delete mode 100644 deps/npm/node_modules/json-schema-traverse/package.json delete mode 100644 deps/npm/node_modules/json-schema-traverse/spec/.eslintrc.yml delete mode 100644 deps/npm/node_modules/json-schema-traverse/spec/fixtures/schema.js delete mode 100644 deps/npm/node_modules/json-schema-traverse/spec/index.spec.js delete mode 100644 deps/npm/node_modules/json-schema/README.md delete mode 100644 deps/npm/node_modules/json-schema/draft-00/hyper-schema delete mode 100644 deps/npm/node_modules/json-schema/draft-00/json-ref delete mode 100644 deps/npm/node_modules/json-schema/draft-00/links delete mode 100644 deps/npm/node_modules/json-schema/draft-00/schema delete mode 100644 deps/npm/node_modules/json-schema/draft-01/hyper-schema delete mode 100644 deps/npm/node_modules/json-schema/draft-01/json-ref delete mode 100644 deps/npm/node_modules/json-schema/draft-01/links delete mode 100644 deps/npm/node_modules/json-schema/draft-01/schema delete mode 100644 deps/npm/node_modules/json-schema/draft-02/hyper-schema delete mode 100644 deps/npm/node_modules/json-schema/draft-02/json-ref delete mode 100644 deps/npm/node_modules/json-schema/draft-02/links delete mode 100644 deps/npm/node_modules/json-schema/draft-02/schema delete mode 100644 deps/npm/node_modules/json-schema/draft-03/examples/address delete mode 100644 deps/npm/node_modules/json-schema/draft-03/examples/calendar delete mode 100644 deps/npm/node_modules/json-schema/draft-03/examples/card delete mode 100644 deps/npm/node_modules/json-schema/draft-03/examples/geo delete mode 100644 deps/npm/node_modules/json-schema/draft-03/examples/interfaces delete mode 100644 deps/npm/node_modules/json-schema/draft-03/hyper-schema delete mode 100644 deps/npm/node_modules/json-schema/draft-03/json-ref delete mode 100644 deps/npm/node_modules/json-schema/draft-03/links delete mode 100644 deps/npm/node_modules/json-schema/draft-03/schema delete mode 100644 deps/npm/node_modules/json-schema/draft-04/hyper-schema delete mode 100644 deps/npm/node_modules/json-schema/draft-04/links delete mode 100644 deps/npm/node_modules/json-schema/draft-04/schema delete mode 100644 deps/npm/node_modules/json-schema/draft-zyp-json-schema-03.xml delete mode 100644 deps/npm/node_modules/json-schema/draft-zyp-json-schema-04.xml delete mode 100644 deps/npm/node_modules/json-schema/lib/links.js delete mode 100644 deps/npm/node_modules/json-schema/lib/validate.js delete mode 100644 deps/npm/node_modules/json-schema/package.json delete mode 100644 deps/npm/node_modules/json-schema/test/tests.js delete mode 100644 deps/npm/node_modules/json-stringify-nice/.github/FUNDING.yml delete mode 100644 deps/npm/node_modules/json-stringify-nice/.npmignore delete mode 100644 deps/npm/node_modules/json-stringify-nice/LICENSE delete mode 100644 deps/npm/node_modules/json-stringify-nice/README.md delete mode 100644 deps/npm/node_modules/json-stringify-nice/index.js delete mode 100644 deps/npm/node_modules/json-stringify-nice/package.json delete mode 100644 deps/npm/node_modules/json-stringify-nice/tap-snapshots/test-basic.js-TAP.test.js delete mode 100644 deps/npm/node_modules/json-stringify-nice/test/basic.js delete mode 100644 deps/npm/node_modules/json-stringify-safe/.npmignore delete mode 100644 deps/npm/node_modules/json-stringify-safe/CHANGELOG.md delete mode 100644 deps/npm/node_modules/json-stringify-safe/LICENSE delete mode 100644 deps/npm/node_modules/json-stringify-safe/Makefile delete mode 100644 deps/npm/node_modules/json-stringify-safe/README.md delete mode 100644 deps/npm/node_modules/json-stringify-safe/package.json delete mode 100644 deps/npm/node_modules/json-stringify-safe/stringify.js delete mode 100644 deps/npm/node_modules/json-stringify-safe/test/mocha.opts delete mode 100644 deps/npm/node_modules/json-stringify-safe/test/stringify_test.js delete mode 100644 deps/npm/node_modules/jsonparse/.npmignore delete mode 100644 deps/npm/node_modules/jsonparse/LICENSE delete mode 100644 deps/npm/node_modules/jsonparse/README.markdown delete mode 100644 deps/npm/node_modules/jsonparse/bench.js delete mode 100644 deps/npm/node_modules/jsonparse/examples/twitterfeed.js delete mode 100644 deps/npm/node_modules/jsonparse/jsonparse.js delete mode 100644 deps/npm/node_modules/jsonparse/package.json delete mode 100644 deps/npm/node_modules/jsonparse/samplejson/basic.json delete mode 100644 deps/npm/node_modules/jsonparse/samplejson/basic2.json delete mode 100644 deps/npm/node_modules/jsonparse/test/big-token.js delete mode 100644 deps/npm/node_modules/jsonparse/test/boundary.js delete mode 100644 deps/npm/node_modules/jsonparse/test/offset.js delete mode 100644 deps/npm/node_modules/jsonparse/test/primitives.js delete mode 100644 deps/npm/node_modules/jsonparse/test/surrogate.js delete mode 100644 deps/npm/node_modules/jsonparse/test/unvalid.js delete mode 100644 deps/npm/node_modules/jsonparse/test/utf8.js delete mode 100644 deps/npm/node_modules/jsprim/CHANGES.md delete mode 100644 deps/npm/node_modules/jsprim/LICENSE delete mode 100644 deps/npm/node_modules/jsprim/README.md delete mode 100644 deps/npm/node_modules/jsprim/lib/jsprim.js delete mode 100644 deps/npm/node_modules/jsprim/package.json delete mode 100644 deps/npm/node_modules/just-diff-apply/LICENSE delete mode 100644 deps/npm/node_modules/just-diff-apply/README.md delete mode 100644 deps/npm/node_modules/just-diff-apply/index.js delete mode 100644 deps/npm/node_modules/just-diff-apply/package.json delete mode 100644 deps/npm/node_modules/just-diff/LICENSE delete mode 100644 deps/npm/node_modules/just-diff/README.md delete mode 100644 deps/npm/node_modules/just-diff/index.js delete mode 100644 deps/npm/node_modules/just-diff/package.json delete mode 100644 deps/npm/node_modules/leven/index.d.ts delete mode 100644 deps/npm/node_modules/leven/index.js delete mode 100644 deps/npm/node_modules/leven/license delete mode 100644 deps/npm/node_modules/leven/package.json delete mode 100644 deps/npm/node_modules/leven/readme.md delete mode 100644 deps/npm/node_modules/libnpmaccess/.github/settings.yml delete mode 100644 deps/npm/node_modules/libnpmaccess/.github/workflows/ci.yml delete mode 100644 deps/npm/node_modules/libnpmaccess/CHANGELOG.md delete mode 100644 deps/npm/node_modules/libnpmaccess/LICENSE delete mode 100644 deps/npm/node_modules/libnpmaccess/README.md delete mode 100644 deps/npm/node_modules/libnpmaccess/index.js delete mode 100644 deps/npm/node_modules/libnpmaccess/package.json delete mode 100644 deps/npm/node_modules/libnpmaccess/test/fixtures/tnock.js delete mode 100644 deps/npm/node_modules/libnpmaccess/test/index.js delete mode 100644 deps/npm/node_modules/libnpmfund/CHANGELOG.md delete mode 100644 deps/npm/node_modules/libnpmfund/LICENSE delete mode 100644 deps/npm/node_modules/libnpmfund/README.md delete mode 100644 deps/npm/node_modules/libnpmfund/index.js delete mode 100644 deps/npm/node_modules/libnpmfund/package.json delete mode 100644 deps/npm/node_modules/libnpmhook/CHANGELOG.md delete mode 100644 deps/npm/node_modules/libnpmhook/LICENSE.md delete mode 100644 deps/npm/node_modules/libnpmhook/README.md delete mode 100644 deps/npm/node_modules/libnpmhook/index.js delete mode 100644 deps/npm/node_modules/libnpmhook/package.json delete mode 100644 deps/npm/node_modules/libnpmorg/CHANGELOG.md delete mode 100644 deps/npm/node_modules/libnpmorg/LICENSE delete mode 100644 deps/npm/node_modules/libnpmorg/README.md delete mode 100644 deps/npm/node_modules/libnpmorg/index.js delete mode 100644 deps/npm/node_modules/libnpmorg/package.json delete mode 100644 deps/npm/node_modules/libnpmpack/CHANGELOG.md delete mode 100644 deps/npm/node_modules/libnpmpack/LICENSE delete mode 100644 deps/npm/node_modules/libnpmpack/README.md delete mode 100644 deps/npm/node_modules/libnpmpack/index.js delete mode 100644 deps/npm/node_modules/libnpmpack/package.json delete mode 100644 deps/npm/node_modules/libnpmpublish/CHANGELOG.md delete mode 100644 deps/npm/node_modules/libnpmpublish/LICENSE delete mode 100644 deps/npm/node_modules/libnpmpublish/README.md delete mode 100644 deps/npm/node_modules/libnpmpublish/index.js delete mode 100644 deps/npm/node_modules/libnpmpublish/package.json delete mode 100644 deps/npm/node_modules/libnpmpublish/publish.js delete mode 100644 deps/npm/node_modules/libnpmpublish/unpublish.js delete mode 100644 deps/npm/node_modules/libnpmsearch/CHANGELOG.md delete mode 100644 deps/npm/node_modules/libnpmsearch/LICENSE delete mode 100644 deps/npm/node_modules/libnpmsearch/README.md delete mode 100644 deps/npm/node_modules/libnpmsearch/index.js delete mode 100644 deps/npm/node_modules/libnpmsearch/package.json delete mode 100644 deps/npm/node_modules/libnpmteam/CHANGELOG.md delete mode 100644 deps/npm/node_modules/libnpmteam/LICENSE delete mode 100644 deps/npm/node_modules/libnpmteam/README.md delete mode 100644 deps/npm/node_modules/libnpmteam/index.js delete mode 100644 deps/npm/node_modules/libnpmteam/package.json delete mode 100644 deps/npm/node_modules/libnpmversion/LICENSE delete mode 100644 deps/npm/node_modules/libnpmversion/README.md delete mode 100644 deps/npm/node_modules/libnpmversion/lib/commit.js delete mode 100644 deps/npm/node_modules/libnpmversion/lib/enforce-clean.js delete mode 100644 deps/npm/node_modules/libnpmversion/lib/index.js delete mode 100644 deps/npm/node_modules/libnpmversion/lib/proc-log.js delete mode 100644 deps/npm/node_modules/libnpmversion/lib/retrieve-tag.js delete mode 100644 deps/npm/node_modules/libnpmversion/lib/tag.js delete mode 100644 deps/npm/node_modules/libnpmversion/lib/version.js delete mode 100644 deps/npm/node_modules/libnpmversion/lib/write-json.js delete mode 100644 deps/npm/node_modules/libnpmversion/package.json delete mode 100644 deps/npm/node_modules/lru-cache/LICENSE delete mode 100644 deps/npm/node_modules/lru-cache/README.md delete mode 100644 deps/npm/node_modules/lru-cache/index.js delete mode 100644 deps/npm/node_modules/lru-cache/package.json delete mode 100644 deps/npm/node_modules/make-fetch-happen/CHANGELOG.md delete mode 100644 deps/npm/node_modules/make-fetch-happen/LICENSE delete mode 100644 deps/npm/node_modules/make-fetch-happen/README.md delete mode 100644 deps/npm/node_modules/make-fetch-happen/agent.js delete mode 100644 deps/npm/node_modules/make-fetch-happen/cache.js delete mode 100644 deps/npm/node_modules/make-fetch-happen/index.js delete mode 100644 deps/npm/node_modules/make-fetch-happen/package.json delete mode 100644 deps/npm/node_modules/make-fetch-happen/utils/configure-options.js delete mode 100644 deps/npm/node_modules/make-fetch-happen/utils/initialize-cache.js delete mode 100644 deps/npm/node_modules/make-fetch-happen/utils/is-header-conditional.js delete mode 100644 deps/npm/node_modules/make-fetch-happen/utils/iterable-to-object.js delete mode 100644 deps/npm/node_modules/make-fetch-happen/utils/make-policy.js delete mode 100644 deps/npm/node_modules/make-fetch-happen/warning.js delete mode 100644 deps/npm/node_modules/mime-db/HISTORY.md delete mode 100644 deps/npm/node_modules/mime-db/LICENSE delete mode 100644 deps/npm/node_modules/mime-db/README.md delete mode 100644 deps/npm/node_modules/mime-db/db.json delete mode 100644 deps/npm/node_modules/mime-db/index.js delete mode 100644 deps/npm/node_modules/mime-db/package.json delete mode 100644 deps/npm/node_modules/mime-types/HISTORY.md delete mode 100644 deps/npm/node_modules/mime-types/LICENSE delete mode 100644 deps/npm/node_modules/mime-types/README.md delete mode 100644 deps/npm/node_modules/mime-types/index.js delete mode 100644 deps/npm/node_modules/mime-types/package.json delete mode 100644 deps/npm/node_modules/minimatch/LICENSE delete mode 100644 deps/npm/node_modules/minimatch/README.md delete mode 100644 deps/npm/node_modules/minimatch/minimatch.js delete mode 100644 deps/npm/node_modules/minimatch/package.json delete mode 100644 deps/npm/node_modules/minipass-collect/LICENSE delete mode 100644 deps/npm/node_modules/minipass-collect/README.md delete mode 100644 deps/npm/node_modules/minipass-collect/index.js delete mode 100644 deps/npm/node_modules/minipass-collect/package.json delete mode 100644 deps/npm/node_modules/minipass-fetch/LICENSE delete mode 100644 deps/npm/node_modules/minipass-fetch/README.md delete mode 100644 deps/npm/node_modules/minipass-fetch/index.js delete mode 100644 deps/npm/node_modules/minipass-fetch/lib/abort-error.js delete mode 100644 deps/npm/node_modules/minipass-fetch/lib/blob.js delete mode 100644 deps/npm/node_modules/minipass-fetch/lib/body.js delete mode 100644 deps/npm/node_modules/minipass-fetch/lib/fetch-error.js delete mode 100644 deps/npm/node_modules/minipass-fetch/lib/headers.js delete mode 100644 deps/npm/node_modules/minipass-fetch/lib/index.js delete mode 100644 deps/npm/node_modules/minipass-fetch/lib/request.js delete mode 100644 deps/npm/node_modules/minipass-fetch/lib/response.js delete mode 100644 deps/npm/node_modules/minipass-fetch/package.json delete mode 100644 deps/npm/node_modules/minipass-flush/LICENSE delete mode 100644 deps/npm/node_modules/minipass-flush/README.md delete mode 100644 deps/npm/node_modules/minipass-flush/index.js delete mode 100644 deps/npm/node_modules/minipass-flush/package.json delete mode 100644 deps/npm/node_modules/minipass-json-stream/LICENSE delete mode 100644 deps/npm/node_modules/minipass-json-stream/README.md delete mode 100644 deps/npm/node_modules/minipass-json-stream/index.js delete mode 100644 deps/npm/node_modules/minipass-json-stream/package.json delete mode 100644 deps/npm/node_modules/minipass-pipeline/LICENSE delete mode 100644 deps/npm/node_modules/minipass-pipeline/README.md delete mode 100644 deps/npm/node_modules/minipass-pipeline/index.js delete mode 100644 deps/npm/node_modules/minipass-pipeline/package.json delete mode 100644 deps/npm/node_modules/minipass-sized/.npmignore delete mode 100644 deps/npm/node_modules/minipass-sized/LICENSE delete mode 100644 deps/npm/node_modules/minipass-sized/README.md delete mode 100644 deps/npm/node_modules/minipass-sized/index.js delete mode 100644 deps/npm/node_modules/minipass-sized/package.json delete mode 100644 deps/npm/node_modules/minipass-sized/test/basic.js delete mode 100644 deps/npm/node_modules/minipass/LICENSE delete mode 100644 deps/npm/node_modules/minipass/README.md delete mode 100644 deps/npm/node_modules/minipass/index.js delete mode 100644 deps/npm/node_modules/minipass/package.json delete mode 100644 deps/npm/node_modules/minizlib/LICENSE delete mode 100644 deps/npm/node_modules/minizlib/README.md delete mode 100644 deps/npm/node_modules/minizlib/constants.js delete mode 100644 deps/npm/node_modules/minizlib/index.js delete mode 100644 deps/npm/node_modules/minizlib/package.json delete mode 100644 deps/npm/node_modules/mkdirp-infer-owner/LICENSE delete mode 100644 deps/npm/node_modules/mkdirp-infer-owner/README.md delete mode 100644 deps/npm/node_modules/mkdirp-infer-owner/index.js delete mode 100644 deps/npm/node_modules/mkdirp-infer-owner/package.json delete mode 100644 deps/npm/node_modules/mkdirp/CHANGELOG.md delete mode 100644 deps/npm/node_modules/mkdirp/LICENSE delete mode 100644 deps/npm/node_modules/mkdirp/README.markdown delete mode 100755 deps/npm/node_modules/mkdirp/bin/cmd.js delete mode 100644 deps/npm/node_modules/mkdirp/index.js delete mode 100644 deps/npm/node_modules/mkdirp/lib/find-made.js delete mode 100644 deps/npm/node_modules/mkdirp/lib/mkdirp-manual.js delete mode 100644 deps/npm/node_modules/mkdirp/lib/mkdirp-native.js delete mode 100644 deps/npm/node_modules/mkdirp/lib/opts-arg.js delete mode 100644 deps/npm/node_modules/mkdirp/lib/path-arg.js delete mode 100644 deps/npm/node_modules/mkdirp/lib/use-native.js delete mode 100644 deps/npm/node_modules/mkdirp/package.json delete mode 100644 deps/npm/node_modules/ms/index.js delete mode 100644 deps/npm/node_modules/ms/license.md delete mode 100644 deps/npm/node_modules/ms/package.json delete mode 100644 deps/npm/node_modules/ms/readme.md delete mode 100644 deps/npm/node_modules/mute-stream/LICENSE delete mode 100644 deps/npm/node_modules/mute-stream/README.md delete mode 100644 deps/npm/node_modules/mute-stream/mute.js delete mode 100644 deps/npm/node_modules/mute-stream/package.json delete mode 100644 deps/npm/node_modules/node-gyp/.github/ISSUE_TEMPLATE.md delete mode 100644 deps/npm/node_modules/node-gyp/.github/PULL_REQUEST_TEMPLATE.md delete mode 100644 deps/npm/node_modules/node-gyp/.github/workflows/tests.yml delete mode 100644 deps/npm/node_modules/node-gyp/CHANGELOG.md delete mode 100644 deps/npm/node_modules/node-gyp/CONTRIBUTING.md delete mode 100644 deps/npm/node_modules/node-gyp/LICENSE delete mode 100644 deps/npm/node_modules/node-gyp/README.md delete mode 100644 deps/npm/node_modules/node-gyp/addon.gypi delete mode 100755 deps/npm/node_modules/node-gyp/bin/node-gyp.js delete mode 100644 deps/npm/node_modules/node-gyp/gyp/.flake8 delete mode 100644 deps/npm/node_modules/node-gyp/gyp/.github/workflows/Python_tests.yml delete mode 100644 deps/npm/node_modules/node-gyp/gyp/.github/workflows/node-gyp.yml delete mode 100644 deps/npm/node_modules/node-gyp/gyp/.github/workflows/nodejs-windows.yml delete mode 100644 deps/npm/node_modules/node-gyp/gyp/.github/workflows/release-please.yml delete mode 100644 deps/npm/node_modules/node-gyp/gyp/AUTHORS delete mode 100644 deps/npm/node_modules/node-gyp/gyp/CHANGELOG.md delete mode 100644 deps/npm/node_modules/node-gyp/gyp/CODE_OF_CONDUCT.md delete mode 100644 deps/npm/node_modules/node-gyp/gyp/CONTRIBUTING.md delete mode 100644 deps/npm/node_modules/node-gyp/gyp/LICENSE delete mode 100644 deps/npm/node_modules/node-gyp/gyp/README.md delete mode 100644 deps/npm/node_modules/node-gyp/gyp/data/win/large-pdb-shim.cc delete mode 100755 deps/npm/node_modules/node-gyp/gyp/gyp delete mode 100755 deps/npm/node_modules/node-gyp/gyp/gyp.bat delete mode 100755 deps/npm/node_modules/node-gyp/gyp/gyp_main.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSNew.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSProject.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings.py delete mode 100755 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings_test.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSToolFile.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSUserFile.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSUtil.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSVersion.py delete mode 100755 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/__init__.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/common.py delete mode 100755 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/common_test.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/easy_xml.py delete mode 100755 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/easy_xml_test.py delete mode 100755 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/flock_tool.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/__init__.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/analyzer.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/android.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/cmake.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/compile_commands_json.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/dump_dependency_json.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/eclipse.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/gypd.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/gypsh.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs.py delete mode 100755 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs_test.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja_test.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode_test.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py delete mode 100755 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input_test.py delete mode 100755 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/mac_tool.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/ninja_syntax.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/simple_copy.py delete mode 100755 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/win_tool.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_ninja.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcodeproj_file.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xml_fix.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/requirements_dev.txt delete mode 100644 deps/npm/node_modules/node-gyp/gyp/setup.py delete mode 100755 deps/npm/node_modules/node-gyp/gyp/test_gyp.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/tools/README delete mode 100644 deps/npm/node_modules/node-gyp/gyp/tools/Xcode/README delete mode 100644 deps/npm/node_modules/node-gyp/gyp/tools/Xcode/Specifications/gyp.pbfilespec delete mode 100644 deps/npm/node_modules/node-gyp/gyp/tools/Xcode/Specifications/gyp.xclangspec delete mode 100644 deps/npm/node_modules/node-gyp/gyp/tools/emacs/README delete mode 100644 deps/npm/node_modules/node-gyp/gyp/tools/emacs/gyp-tests.el delete mode 100644 deps/npm/node_modules/node-gyp/gyp/tools/emacs/gyp.el delete mode 100755 deps/npm/node_modules/node-gyp/gyp/tools/emacs/run-unit-tests.sh delete mode 100644 deps/npm/node_modules/node-gyp/gyp/tools/emacs/testdata/media.gyp delete mode 100644 deps/npm/node_modules/node-gyp/gyp/tools/emacs/testdata/media.gyp.fontified delete mode 100755 deps/npm/node_modules/node-gyp/gyp/tools/graphviz.py delete mode 100755 deps/npm/node_modules/node-gyp/gyp/tools/pretty_gyp.py delete mode 100755 deps/npm/node_modules/node-gyp/gyp/tools/pretty_sln.py delete mode 100755 deps/npm/node_modules/node-gyp/gyp/tools/pretty_vcproj.py delete mode 100644 deps/npm/node_modules/node-gyp/lib/Find-VisualStudio.cs delete mode 100644 deps/npm/node_modules/node-gyp/lib/build.js delete mode 100644 deps/npm/node_modules/node-gyp/lib/clean.js delete mode 100644 deps/npm/node_modules/node-gyp/lib/configure.js delete mode 100644 deps/npm/node_modules/node-gyp/lib/find-node-directory.js delete mode 100644 deps/npm/node_modules/node-gyp/lib/find-python.js delete mode 100644 deps/npm/node_modules/node-gyp/lib/find-visualstudio.js delete mode 100644 deps/npm/node_modules/node-gyp/lib/install.js delete mode 100644 deps/npm/node_modules/node-gyp/lib/list.js delete mode 100644 deps/npm/node_modules/node-gyp/lib/node-gyp.js delete mode 100644 deps/npm/node_modules/node-gyp/lib/process-release.js delete mode 100644 deps/npm/node_modules/node-gyp/lib/proxy.js delete mode 100644 deps/npm/node_modules/node-gyp/lib/rebuild.js delete mode 100644 deps/npm/node_modules/node-gyp/lib/remove.js delete mode 100644 deps/npm/node_modules/node-gyp/lib/util.js delete mode 100644 deps/npm/node_modules/node-gyp/macOS_Catalina.md delete mode 100644 deps/npm/node_modules/node-gyp/macOS_Catalina_acid_test.sh delete mode 100644 deps/npm/node_modules/node-gyp/package.json delete mode 100644 deps/npm/node_modules/node-gyp/src/win_delay_load_hook.cc delete mode 100644 deps/npm/node_modules/node-gyp/test/common.js delete mode 100644 deps/npm/node_modules/node-gyp/test/fixtures/VS_2017_BuildTools_minimal.txt delete mode 100644 deps/npm/node_modules/node-gyp/test/fixtures/VS_2017_Community_workload.txt delete mode 100644 deps/npm/node_modules/node-gyp/test/fixtures/VS_2017_Express.txt delete mode 100644 deps/npm/node_modules/node-gyp/test/fixtures/VS_2017_Unusable.txt delete mode 100644 deps/npm/node_modules/node-gyp/test/fixtures/VS_2019_BuildTools_minimal.txt delete mode 100644 deps/npm/node_modules/node-gyp/test/fixtures/VS_2019_Community_workload.txt delete mode 100644 deps/npm/node_modules/node-gyp/test/fixtures/VS_2019_Preview.txt delete mode 100644 deps/npm/node_modules/node-gyp/test/fixtures/ca-bundle.crt delete mode 100644 deps/npm/node_modules/node-gyp/test/fixtures/ca.crt delete mode 100644 deps/npm/node_modules/node-gyp/test/fixtures/server.crt delete mode 100644 deps/npm/node_modules/node-gyp/test/fixtures/server.key delete mode 100644 deps/npm/node_modules/node-gyp/test/fixtures/test-charmap.py delete mode 100644 deps/npm/node_modules/node-gyp/test/process-exec-sync.js delete mode 100644 deps/npm/node_modules/node-gyp/test/simple-proxy.js delete mode 100644 deps/npm/node_modules/node-gyp/test/test-addon.js delete mode 100644 deps/npm/node_modules/node-gyp/test/test-configure-python.js delete mode 100644 deps/npm/node_modules/node-gyp/test/test-download.js delete mode 100644 deps/npm/node_modules/node-gyp/test/test-find-accessible-sync.js delete mode 100644 deps/npm/node_modules/node-gyp/test/test-find-node-directory.js delete mode 100644 deps/npm/node_modules/node-gyp/test/test-find-python.js delete mode 100644 deps/npm/node_modules/node-gyp/test/test-find-visualstudio.js delete mode 100644 deps/npm/node_modules/node-gyp/test/test-install.js delete mode 100644 deps/npm/node_modules/node-gyp/test/test-options.js delete mode 100644 deps/npm/node_modules/node-gyp/test/test-process-release.js delete mode 100755 deps/npm/node_modules/node-gyp/update-gyp.py delete mode 100644 deps/npm/node_modules/nopt/CHANGELOG.md delete mode 100644 deps/npm/node_modules/nopt/LICENSE delete mode 100644 deps/npm/node_modules/nopt/README.md delete mode 100755 deps/npm/node_modules/nopt/bin/nopt.js delete mode 100644 deps/npm/node_modules/nopt/lib/nopt.js delete mode 100644 deps/npm/node_modules/nopt/package.json delete mode 100644 deps/npm/node_modules/normalize-package-data/AUTHORS delete mode 100644 deps/npm/node_modules/normalize-package-data/LICENSE delete mode 100644 deps/npm/node_modules/normalize-package-data/README.md delete mode 100644 deps/npm/node_modules/normalize-package-data/lib/extract_description.js delete mode 100644 deps/npm/node_modules/normalize-package-data/lib/fixer.js delete mode 100644 deps/npm/node_modules/normalize-package-data/lib/make_warning.js delete mode 100644 deps/npm/node_modules/normalize-package-data/lib/normalize.js delete mode 100644 deps/npm/node_modules/normalize-package-data/lib/safe_format.js delete mode 100644 deps/npm/node_modules/normalize-package-data/lib/typos.json delete mode 100644 deps/npm/node_modules/normalize-package-data/lib/warning_messages.json delete mode 100644 deps/npm/node_modules/normalize-package-data/package.json delete mode 100644 deps/npm/node_modules/npm-audit-report/CHANGELOG.md delete mode 100644 deps/npm/node_modules/npm-audit-report/LICENSE delete mode 100644 deps/npm/node_modules/npm-audit-report/README.md delete mode 100644 deps/npm/node_modules/npm-audit-report/lib/colors.js delete mode 100644 deps/npm/node_modules/npm-audit-report/lib/exit-code.js delete mode 100644 deps/npm/node_modules/npm-audit-report/lib/index.js delete mode 100644 deps/npm/node_modules/npm-audit-report/lib/reporters/detail.js delete mode 100644 deps/npm/node_modules/npm-audit-report/lib/reporters/install.js delete mode 100644 deps/npm/node_modules/npm-audit-report/lib/reporters/json.js delete mode 100644 deps/npm/node_modules/npm-audit-report/lib/reporters/quiet.js delete mode 100644 deps/npm/node_modules/npm-audit-report/package.json delete mode 100644 deps/npm/node_modules/npm-bundled/LICENSE delete mode 100644 deps/npm/node_modules/npm-bundled/README.md delete mode 100644 deps/npm/node_modules/npm-bundled/index.js delete mode 100644 deps/npm/node_modules/npm-bundled/package.json delete mode 100644 deps/npm/node_modules/npm-install-checks/CHANGELOG.md delete mode 100644 deps/npm/node_modules/npm-install-checks/LICENSE delete mode 100644 deps/npm/node_modules/npm-install-checks/README.md delete mode 100644 deps/npm/node_modules/npm-install-checks/index.js delete mode 100644 deps/npm/node_modules/npm-install-checks/package.json delete mode 100644 deps/npm/node_modules/npm-normalize-package-bin/.github/settings.yml delete mode 100644 deps/npm/node_modules/npm-normalize-package-bin/.npmignore delete mode 100644 deps/npm/node_modules/npm-normalize-package-bin/LICENSE delete mode 100644 deps/npm/node_modules/npm-normalize-package-bin/README.md delete mode 100644 deps/npm/node_modules/npm-normalize-package-bin/index.js delete mode 100644 deps/npm/node_modules/npm-normalize-package-bin/package.json delete mode 100644 deps/npm/node_modules/npm-normalize-package-bin/test/array.js delete mode 100644 deps/npm/node_modules/npm-normalize-package-bin/test/nobin.js delete mode 100644 deps/npm/node_modules/npm-normalize-package-bin/test/object.js delete mode 100644 deps/npm/node_modules/npm-normalize-package-bin/test/string.js delete mode 100644 deps/npm/node_modules/npm-package-arg/CHANGELOG.md delete mode 100644 deps/npm/node_modules/npm-package-arg/LICENSE delete mode 100644 deps/npm/node_modules/npm-package-arg/README.md delete mode 100644 deps/npm/node_modules/npm-package-arg/npa.js delete mode 100644 deps/npm/node_modules/npm-package-arg/package.json delete mode 100644 deps/npm/node_modules/npm-packlist/LICENSE delete mode 100644 deps/npm/node_modules/npm-packlist/README.md delete mode 100755 deps/npm/node_modules/npm-packlist/bin/index.js delete mode 100644 deps/npm/node_modules/npm-packlist/index.js delete mode 100644 deps/npm/node_modules/npm-packlist/package.json delete mode 100644 deps/npm/node_modules/npm-pick-manifest/CHANGELOG.md delete mode 100644 deps/npm/node_modules/npm-pick-manifest/LICENSE.md delete mode 100644 deps/npm/node_modules/npm-pick-manifest/README.md delete mode 100644 deps/npm/node_modules/npm-pick-manifest/index.js delete mode 100644 deps/npm/node_modules/npm-pick-manifest/package.json delete mode 100644 deps/npm/node_modules/npm-profile/CHANGELOG.md delete mode 100644 deps/npm/node_modules/npm-profile/LICENSE delete mode 100644 deps/npm/node_modules/npm-profile/README.md delete mode 100644 deps/npm/node_modules/npm-profile/index.js delete mode 100644 deps/npm/node_modules/npm-profile/package.json delete mode 100644 deps/npm/node_modules/npm-registry-fetch/CHANGELOG.md delete mode 100644 deps/npm/node_modules/npm-registry-fetch/LICENSE.md delete mode 100644 deps/npm/node_modules/npm-registry-fetch/README.md delete mode 100644 deps/npm/node_modules/npm-registry-fetch/auth.js delete mode 100644 deps/npm/node_modules/npm-registry-fetch/check-response.js delete mode 100644 deps/npm/node_modules/npm-registry-fetch/default-opts.js delete mode 100644 deps/npm/node_modules/npm-registry-fetch/errors.js delete mode 100644 deps/npm/node_modules/npm-registry-fetch/index.js delete mode 100644 deps/npm/node_modules/npm-registry-fetch/package.json delete mode 100644 deps/npm/node_modules/npm-registry-fetch/silentlog.js delete mode 100644 deps/npm/node_modules/npm-user-validate/LICENSE delete mode 100644 deps/npm/node_modules/npm-user-validate/README.md delete mode 100644 deps/npm/node_modules/npm-user-validate/npm-user-validate.js delete mode 100644 deps/npm/node_modules/npm-user-validate/package.json delete mode 100644 deps/npm/node_modules/npmlog/CHANGELOG.md delete mode 100644 deps/npm/node_modules/npmlog/LICENSE delete mode 100644 deps/npm/node_modules/npmlog/README.md delete mode 100644 deps/npm/node_modules/npmlog/log.js delete mode 100644 deps/npm/node_modules/npmlog/package.json delete mode 100644 deps/npm/node_modules/number-is-nan/index.js delete mode 100644 deps/npm/node_modules/number-is-nan/license delete mode 100644 deps/npm/node_modules/number-is-nan/package.json delete mode 100644 deps/npm/node_modules/number-is-nan/readme.md delete mode 100644 deps/npm/node_modules/oauth-sign/LICENSE delete mode 100644 deps/npm/node_modules/oauth-sign/README.md delete mode 100644 deps/npm/node_modules/oauth-sign/index.js delete mode 100644 deps/npm/node_modules/oauth-sign/package.json delete mode 100644 deps/npm/node_modules/object-assign/index.js delete mode 100644 deps/npm/node_modules/object-assign/license delete mode 100644 deps/npm/node_modules/object-assign/package.json delete mode 100644 deps/npm/node_modules/object-assign/readme.md delete mode 100644 deps/npm/node_modules/once/LICENSE delete mode 100644 deps/npm/node_modules/once/README.md delete mode 100644 deps/npm/node_modules/once/once.js delete mode 100644 deps/npm/node_modules/once/package.json delete mode 100644 deps/npm/node_modules/opener/LICENSE.txt delete mode 100644 deps/npm/node_modules/opener/README.md delete mode 100755 deps/npm/node_modules/opener/bin/opener-bin.js delete mode 100644 deps/npm/node_modules/opener/lib/opener.js delete mode 100644 deps/npm/node_modules/opener/package.json delete mode 100644 deps/npm/node_modules/p-map/index.d.ts delete mode 100644 deps/npm/node_modules/p-map/index.js delete mode 100644 deps/npm/node_modules/p-map/license delete mode 100644 deps/npm/node_modules/p-map/package.json delete mode 100644 deps/npm/node_modules/p-map/readme.md delete mode 100644 deps/npm/node_modules/pacote/LICENSE delete mode 100644 deps/npm/node_modules/pacote/README.md delete mode 100755 deps/npm/node_modules/pacote/lib/bin.js delete mode 100644 deps/npm/node_modules/pacote/lib/dir.js delete mode 100644 deps/npm/node_modules/pacote/lib/fetcher.js delete mode 100644 deps/npm/node_modules/pacote/lib/file.js delete mode 100644 deps/npm/node_modules/pacote/lib/git.js delete mode 100644 deps/npm/node_modules/pacote/lib/index.js delete mode 100644 deps/npm/node_modules/pacote/lib/registry.js delete mode 100644 deps/npm/node_modules/pacote/lib/remote.js delete mode 100644 deps/npm/node_modules/pacote/lib/util/cache-dir.js delete mode 100644 deps/npm/node_modules/pacote/lib/util/is-package-bin.js delete mode 100644 deps/npm/node_modules/pacote/lib/util/npm.js delete mode 100644 deps/npm/node_modules/pacote/lib/util/proc-log.js delete mode 100644 deps/npm/node_modules/pacote/package.json delete mode 100644 deps/npm/node_modules/parse-conflict-json/LICENSE delete mode 100644 deps/npm/node_modules/parse-conflict-json/README.md delete mode 100644 deps/npm/node_modules/parse-conflict-json/index.js delete mode 100644 deps/npm/node_modules/parse-conflict-json/package.json delete mode 100644 deps/npm/node_modules/path-is-absolute/index.js delete mode 100644 deps/npm/node_modules/path-is-absolute/license delete mode 100644 deps/npm/node_modules/path-is-absolute/package.json delete mode 100644 deps/npm/node_modules/path-is-absolute/readme.md delete mode 100644 deps/npm/node_modules/path-parse/.travis.yml delete mode 100644 deps/npm/node_modules/path-parse/LICENSE delete mode 100644 deps/npm/node_modules/path-parse/README.md delete mode 100644 deps/npm/node_modules/path-parse/index.js delete mode 100644 deps/npm/node_modules/path-parse/package.json delete mode 100644 deps/npm/node_modules/path-parse/test.js delete mode 100644 deps/npm/node_modules/performance-now/.npmignore delete mode 100644 deps/npm/node_modules/performance-now/.tm_properties delete mode 100644 deps/npm/node_modules/performance-now/.travis.yml delete mode 100644 deps/npm/node_modules/performance-now/README.md delete mode 100644 deps/npm/node_modules/performance-now/lib/performance-now.js delete mode 100644 deps/npm/node_modules/performance-now/lib/performance-now.js.map delete mode 100644 deps/npm/node_modules/performance-now/license.txt delete mode 100644 deps/npm/node_modules/performance-now/package.json delete mode 100644 deps/npm/node_modules/performance-now/src/index.d.ts delete mode 100644 deps/npm/node_modules/performance-now/src/performance-now.coffee delete mode 100644 deps/npm/node_modules/performance-now/test/mocha.opts delete mode 100644 deps/npm/node_modules/performance-now/test/performance-now.coffee delete mode 100644 deps/npm/node_modules/performance-now/test/scripts.coffee delete mode 100755 deps/npm/node_modules/performance-now/test/scripts/delayed-call.coffee delete mode 100755 deps/npm/node_modules/performance-now/test/scripts/delayed-require.coffee delete mode 100755 deps/npm/node_modules/performance-now/test/scripts/difference.coffee delete mode 100755 deps/npm/node_modules/performance-now/test/scripts/initial-value.coffee delete mode 100644 deps/npm/node_modules/process-nextick-args/index.js delete mode 100644 deps/npm/node_modules/process-nextick-args/license.md delete mode 100644 deps/npm/node_modules/process-nextick-args/package.json delete mode 100644 deps/npm/node_modules/process-nextick-args/readme.md delete mode 100644 deps/npm/node_modules/promise-all-reject-late/.github/FUNDING.yml delete mode 100644 deps/npm/node_modules/promise-all-reject-late/.npmignore delete mode 100644 deps/npm/node_modules/promise-all-reject-late/LICENSE delete mode 100644 deps/npm/node_modules/promise-all-reject-late/README.md delete mode 100644 deps/npm/node_modules/promise-all-reject-late/index.js delete mode 100644 deps/npm/node_modules/promise-all-reject-late/package.json delete mode 100644 deps/npm/node_modules/promise-all-reject-late/test/index.js delete mode 100644 deps/npm/node_modules/promise-call-limit/LICENSE delete mode 100644 deps/npm/node_modules/promise-call-limit/README.md delete mode 100644 deps/npm/node_modules/promise-call-limit/index.js delete mode 100644 deps/npm/node_modules/promise-call-limit/package.json delete mode 100644 deps/npm/node_modules/promise-inflight/LICENSE delete mode 100644 deps/npm/node_modules/promise-inflight/README.md delete mode 100644 deps/npm/node_modules/promise-inflight/inflight.js delete mode 100644 deps/npm/node_modules/promise-inflight/package.json delete mode 100644 deps/npm/node_modules/promise-retry/.editorconfig delete mode 100644 deps/npm/node_modules/promise-retry/.npmignore delete mode 100644 deps/npm/node_modules/promise-retry/.travis.yml delete mode 100644 deps/npm/node_modules/promise-retry/LICENSE delete mode 100644 deps/npm/node_modules/promise-retry/README.md delete mode 100644 deps/npm/node_modules/promise-retry/index.js delete mode 100644 deps/npm/node_modules/promise-retry/package.json delete mode 100644 deps/npm/node_modules/promise-retry/test/test.js delete mode 100644 deps/npm/node_modules/promzard/.npmignore delete mode 100644 deps/npm/node_modules/promzard/LICENSE delete mode 100644 deps/npm/node_modules/promzard/README.md delete mode 100644 deps/npm/node_modules/promzard/example/buffer.js delete mode 100644 deps/npm/node_modules/promzard/example/index.js delete mode 100644 deps/npm/node_modules/promzard/example/npm-init/README.md delete mode 100644 deps/npm/node_modules/promzard/example/npm-init/init-input.js delete mode 100644 deps/npm/node_modules/promzard/example/npm-init/init.js delete mode 100644 deps/npm/node_modules/promzard/example/npm-init/package.json delete mode 100644 deps/npm/node_modules/promzard/example/substack-input.js delete mode 100644 deps/npm/node_modules/promzard/package.json delete mode 100644 deps/npm/node_modules/promzard/promzard.js delete mode 100644 deps/npm/node_modules/promzard/test/basic.js delete mode 100644 deps/npm/node_modules/promzard/test/buffer.js delete mode 100644 deps/npm/node_modules/promzard/test/exports.input delete mode 100644 deps/npm/node_modules/promzard/test/exports.js delete mode 100644 deps/npm/node_modules/promzard/test/fn.input delete mode 100644 deps/npm/node_modules/promzard/test/fn.js delete mode 100644 deps/npm/node_modules/promzard/test/simple.input delete mode 100644 deps/npm/node_modules/promzard/test/simple.js delete mode 100644 deps/npm/node_modules/promzard/test/validate.input delete mode 100644 deps/npm/node_modules/promzard/test/validate.js delete mode 100644 deps/npm/node_modules/psl/LICENSE delete mode 100644 deps/npm/node_modules/psl/README.md delete mode 100644 deps/npm/node_modules/psl/browserstack-logo.svg delete mode 100644 deps/npm/node_modules/psl/data/rules.json delete mode 100644 deps/npm/node_modules/psl/dist/psl.js delete mode 100644 deps/npm/node_modules/psl/dist/psl.min.js delete mode 100644 deps/npm/node_modules/psl/index.js delete mode 100644 deps/npm/node_modules/psl/package.json delete mode 100644 deps/npm/node_modules/puka/CHANGELOG.md delete mode 100644 deps/npm/node_modules/puka/LICENSE.txt delete mode 100644 deps/npm/node_modules/puka/README.md delete mode 100644 deps/npm/node_modules/puka/index.js delete mode 100644 deps/npm/node_modules/puka/package.json delete mode 100644 deps/npm/node_modules/punycode/LICENSE-MIT.txt delete mode 100644 deps/npm/node_modules/punycode/README.md delete mode 100644 deps/npm/node_modules/punycode/package.json delete mode 100644 deps/npm/node_modules/punycode/punycode.es6.js delete mode 100644 deps/npm/node_modules/punycode/punycode.js delete mode 100644 deps/npm/node_modules/qrcode-terminal/.travis.yml delete mode 100644 deps/npm/node_modules/qrcode-terminal/LICENSE delete mode 100644 deps/npm/node_modules/qrcode-terminal/README.md delete mode 100755 deps/npm/node_modules/qrcode-terminal/bin/qrcode-terminal.js delete mode 100644 deps/npm/node_modules/qrcode-terminal/example/basic.js delete mode 100644 deps/npm/node_modules/qrcode-terminal/example/basic.png delete mode 100644 deps/npm/node_modules/qrcode-terminal/example/callback.js delete mode 100644 deps/npm/node_modules/qrcode-terminal/example/small-qrcode.js delete mode 100644 deps/npm/node_modules/qrcode-terminal/lib/main.js delete mode 100644 deps/npm/node_modules/qrcode-terminal/package.json delete mode 100644 deps/npm/node_modules/qrcode-terminal/test/main.js delete mode 100644 deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QR8bitByte.js delete mode 100644 deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRBitBuffer.js delete mode 100644 deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRErrorCorrectLevel.js delete mode 100644 deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRMaskPattern.js delete mode 100644 deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRMath.js delete mode 100644 deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRMode.js delete mode 100644 deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRPolynomial.js delete mode 100644 deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRRSBlock.js delete mode 100644 deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRUtil.js delete mode 100644 deps/npm/node_modules/qrcode-terminal/vendor/QRCode/index.js delete mode 100644 deps/npm/node_modules/qs/.editorconfig delete mode 100644 deps/npm/node_modules/qs/.eslintignore delete mode 100644 deps/npm/node_modules/qs/CHANGELOG.md delete mode 100644 deps/npm/node_modules/qs/LICENSE delete mode 100644 deps/npm/node_modules/qs/README.md delete mode 100644 deps/npm/node_modules/qs/dist/qs.js delete mode 100644 deps/npm/node_modules/qs/lib/formats.js delete mode 100644 deps/npm/node_modules/qs/lib/index.js delete mode 100644 deps/npm/node_modules/qs/lib/parse.js delete mode 100644 deps/npm/node_modules/qs/lib/stringify.js delete mode 100644 deps/npm/node_modules/qs/lib/utils.js delete mode 100644 deps/npm/node_modules/qs/package.json delete mode 100644 deps/npm/node_modules/qs/test/index.js delete mode 100644 deps/npm/node_modules/qs/test/parse.js delete mode 100644 deps/npm/node_modules/qs/test/stringify.js delete mode 100644 deps/npm/node_modules/qs/test/utils.js delete mode 100644 deps/npm/node_modules/read-cmd-shim/LICENSE delete mode 100644 deps/npm/node_modules/read-cmd-shim/README.md delete mode 100644 deps/npm/node_modules/read-cmd-shim/index.js delete mode 100644 deps/npm/node_modules/read-cmd-shim/package.json delete mode 100644 deps/npm/node_modules/read-package-json-fast/LICENSE delete mode 100644 deps/npm/node_modules/read-package-json-fast/README.md delete mode 100644 deps/npm/node_modules/read-package-json-fast/index.js delete mode 100644 deps/npm/node_modules/read-package-json-fast/package.json delete mode 100644 deps/npm/node_modules/read-package-json/CHANGELOG.md delete mode 100644 deps/npm/node_modules/read-package-json/LICENSE delete mode 100644 deps/npm/node_modules/read-package-json/README.md delete mode 100644 deps/npm/node_modules/read-package-json/package.json delete mode 100644 deps/npm/node_modules/read-package-json/read-json.js delete mode 100644 deps/npm/node_modules/read/LICENSE delete mode 100644 deps/npm/node_modules/read/README.md delete mode 100644 deps/npm/node_modules/read/lib/read.js delete mode 100644 deps/npm/node_modules/read/package.json delete mode 100644 deps/npm/node_modules/readable-stream/.travis.yml delete mode 100644 deps/npm/node_modules/readable-stream/GOVERNANCE.md delete mode 100644 deps/npm/node_modules/readable-stream/LICENSE delete mode 100644 deps/npm/node_modules/readable-stream/README.md delete mode 100644 deps/npm/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md delete mode 100644 deps/npm/node_modules/readable-stream/duplex-browser.js delete mode 100644 deps/npm/node_modules/readable-stream/duplex.js delete mode 100644 deps/npm/node_modules/readable-stream/lib/_stream_duplex.js delete mode 100644 deps/npm/node_modules/readable-stream/lib/_stream_passthrough.js delete mode 100644 deps/npm/node_modules/readable-stream/lib/_stream_readable.js delete mode 100644 deps/npm/node_modules/readable-stream/lib/_stream_transform.js delete mode 100644 deps/npm/node_modules/readable-stream/lib/_stream_writable.js delete mode 100644 deps/npm/node_modules/readable-stream/lib/internal/streams/BufferList.js delete mode 100644 deps/npm/node_modules/readable-stream/lib/internal/streams/destroy.js delete mode 100644 deps/npm/node_modules/readable-stream/lib/internal/streams/stream-browser.js delete mode 100644 deps/npm/node_modules/readable-stream/lib/internal/streams/stream.js delete mode 100644 deps/npm/node_modules/readable-stream/package.json delete mode 100644 deps/npm/node_modules/readable-stream/passthrough.js delete mode 100644 deps/npm/node_modules/readable-stream/readable-browser.js delete mode 100644 deps/npm/node_modules/readable-stream/readable.js delete mode 100644 deps/npm/node_modules/readable-stream/transform.js delete mode 100644 deps/npm/node_modules/readable-stream/writable-browser.js delete mode 100644 deps/npm/node_modules/readable-stream/writable.js delete mode 100644 deps/npm/node_modules/readdir-scoped-modules/LICENSE delete mode 100644 deps/npm/node_modules/readdir-scoped-modules/README.md delete mode 100644 deps/npm/node_modules/readdir-scoped-modules/package.json delete mode 100644 deps/npm/node_modules/readdir-scoped-modules/readdir.js delete mode 100644 deps/npm/node_modules/request/CHANGELOG.md delete mode 100644 deps/npm/node_modules/request/LICENSE delete mode 100644 deps/npm/node_modules/request/README.md delete mode 100755 deps/npm/node_modules/request/index.js delete mode 100644 deps/npm/node_modules/request/lib/auth.js delete mode 100644 deps/npm/node_modules/request/lib/cookies.js delete mode 100644 deps/npm/node_modules/request/lib/getProxyFromURI.js delete mode 100644 deps/npm/node_modules/request/lib/har.js delete mode 100644 deps/npm/node_modules/request/lib/hawk.js delete mode 100644 deps/npm/node_modules/request/lib/helpers.js delete mode 100644 deps/npm/node_modules/request/lib/multipart.js delete mode 100644 deps/npm/node_modules/request/lib/oauth.js delete mode 100644 deps/npm/node_modules/request/lib/querystring.js delete mode 100644 deps/npm/node_modules/request/lib/redirect.js delete mode 100644 deps/npm/node_modules/request/lib/tunnel.js delete mode 100644 deps/npm/node_modules/request/node_modules/tough-cookie/LICENSE delete mode 100644 deps/npm/node_modules/request/node_modules/tough-cookie/README.md delete mode 100644 deps/npm/node_modules/request/node_modules/tough-cookie/lib/cookie.js delete mode 100644 deps/npm/node_modules/request/node_modules/tough-cookie/lib/memstore.js delete mode 100644 deps/npm/node_modules/request/node_modules/tough-cookie/lib/pathMatch.js delete mode 100644 deps/npm/node_modules/request/node_modules/tough-cookie/lib/permuteDomain.js delete mode 100644 deps/npm/node_modules/request/node_modules/tough-cookie/lib/pubsuffix-psl.js delete mode 100644 deps/npm/node_modules/request/node_modules/tough-cookie/lib/store.js delete mode 100644 deps/npm/node_modules/request/node_modules/tough-cookie/lib/version.js delete mode 100644 deps/npm/node_modules/request/node_modules/tough-cookie/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/uuid/AUTHORS delete mode 100644 deps/npm/node_modules/request/node_modules/uuid/CHANGELOG.md delete mode 100644 deps/npm/node_modules/request/node_modules/uuid/LICENSE.md delete mode 100644 deps/npm/node_modules/request/node_modules/uuid/README.md delete mode 100755 deps/npm/node_modules/request/node_modules/uuid/bin/uuid delete mode 100644 deps/npm/node_modules/request/node_modules/uuid/index.js delete mode 100644 deps/npm/node_modules/request/node_modules/uuid/lib/bytesToUuid.js delete mode 100644 deps/npm/node_modules/request/node_modules/uuid/lib/md5-browser.js delete mode 100644 deps/npm/node_modules/request/node_modules/uuid/lib/md5.js delete mode 100644 deps/npm/node_modules/request/node_modules/uuid/lib/rng-browser.js delete mode 100644 deps/npm/node_modules/request/node_modules/uuid/lib/rng.js delete mode 100644 deps/npm/node_modules/request/node_modules/uuid/lib/sha1-browser.js delete mode 100644 deps/npm/node_modules/request/node_modules/uuid/lib/sha1.js delete mode 100644 deps/npm/node_modules/request/node_modules/uuid/lib/v35.js delete mode 100644 deps/npm/node_modules/request/node_modules/uuid/package.json delete mode 100644 deps/npm/node_modules/request/node_modules/uuid/v1.js delete mode 100644 deps/npm/node_modules/request/node_modules/uuid/v3.js delete mode 100644 deps/npm/node_modules/request/node_modules/uuid/v4.js delete mode 100644 deps/npm/node_modules/request/node_modules/uuid/v5.js delete mode 100644 deps/npm/node_modules/request/package.json delete mode 100644 deps/npm/node_modules/request/request.js delete mode 100644 deps/npm/node_modules/resolve/.editorconfig delete mode 100644 deps/npm/node_modules/resolve/.eslintignore delete mode 100644 deps/npm/node_modules/resolve/LICENSE delete mode 100644 deps/npm/node_modules/resolve/appveyor.yml delete mode 100644 deps/npm/node_modules/resolve/example/async.js delete mode 100644 deps/npm/node_modules/resolve/example/sync.js delete mode 100644 deps/npm/node_modules/resolve/index.js delete mode 100644 deps/npm/node_modules/resolve/lib/async.js delete mode 100644 deps/npm/node_modules/resolve/lib/caller.js delete mode 100644 deps/npm/node_modules/resolve/lib/core.js delete mode 100644 deps/npm/node_modules/resolve/lib/core.json delete mode 100644 deps/npm/node_modules/resolve/lib/is-core.js delete mode 100644 deps/npm/node_modules/resolve/lib/node-modules-paths.js delete mode 100644 deps/npm/node_modules/resolve/lib/normalize-options.js delete mode 100644 deps/npm/node_modules/resolve/lib/sync.js delete mode 100644 deps/npm/node_modules/resolve/package.json delete mode 100644 deps/npm/node_modules/resolve/readme.markdown delete mode 100644 deps/npm/node_modules/resolve/test/core.js delete mode 100644 deps/npm/node_modules/resolve/test/dotdot.js delete mode 100644 deps/npm/node_modules/resolve/test/dotdot/abc/index.js delete mode 100644 deps/npm/node_modules/resolve/test/dotdot/index.js delete mode 100644 deps/npm/node_modules/resolve/test/faulty_basedir.js delete mode 100644 deps/npm/node_modules/resolve/test/filter.js delete mode 100644 deps/npm/node_modules/resolve/test/filter_sync.js delete mode 100644 deps/npm/node_modules/resolve/test/mock.js delete mode 100644 deps/npm/node_modules/resolve/test/mock_sync.js delete mode 100644 deps/npm/node_modules/resolve/test/module_dir.js delete mode 100644 deps/npm/node_modules/resolve/test/module_dir/xmodules/aaa/index.js delete mode 100644 deps/npm/node_modules/resolve/test/module_dir/ymodules/aaa/index.js delete mode 100644 deps/npm/node_modules/resolve/test/module_dir/zmodules/bbb/main.js delete mode 100644 deps/npm/node_modules/resolve/test/module_dir/zmodules/bbb/package.json delete mode 100644 deps/npm/node_modules/resolve/test/node-modules-paths.js delete mode 100644 deps/npm/node_modules/resolve/test/node_path.js delete mode 100644 deps/npm/node_modules/resolve/test/node_path/x/aaa/index.js delete mode 100644 deps/npm/node_modules/resolve/test/node_path/x/ccc/index.js delete mode 100644 deps/npm/node_modules/resolve/test/node_path/y/bbb/index.js delete mode 100644 deps/npm/node_modules/resolve/test/node_path/y/ccc/index.js delete mode 100644 deps/npm/node_modules/resolve/test/nonstring.js delete mode 100644 deps/npm/node_modules/resolve/test/pathfilter.js delete mode 100644 deps/npm/node_modules/resolve/test/pathfilter/deep_ref/main.js delete mode 100644 deps/npm/node_modules/resolve/test/precedence.js delete mode 100644 deps/npm/node_modules/resolve/test/precedence/aaa.js delete mode 100644 deps/npm/node_modules/resolve/test/precedence/aaa/index.js delete mode 100644 deps/npm/node_modules/resolve/test/precedence/aaa/main.js delete mode 100644 deps/npm/node_modules/resolve/test/precedence/bbb.js delete mode 100644 deps/npm/node_modules/resolve/test/precedence/bbb/main.js delete mode 100644 deps/npm/node_modules/resolve/test/resolver.js delete mode 100644 deps/npm/node_modules/resolve/test/resolver/baz/doom.js delete mode 100644 deps/npm/node_modules/resolve/test/resolver/baz/package.json delete mode 100644 deps/npm/node_modules/resolve/test/resolver/baz/quux.js delete mode 100644 deps/npm/node_modules/resolve/test/resolver/browser_field/a.js delete mode 100644 deps/npm/node_modules/resolve/test/resolver/browser_field/b.js delete mode 100644 deps/npm/node_modules/resolve/test/resolver/browser_field/package.json delete mode 100644 deps/npm/node_modules/resolve/test/resolver/cup.coffee delete mode 100644 deps/npm/node_modules/resolve/test/resolver/dot_main/index.js delete mode 100644 deps/npm/node_modules/resolve/test/resolver/dot_main/package.json delete mode 100644 deps/npm/node_modules/resolve/test/resolver/dot_slash_main/index.js delete mode 100644 deps/npm/node_modules/resolve/test/resolver/dot_slash_main/package.json delete mode 100644 deps/npm/node_modules/resolve/test/resolver/foo.js delete mode 100644 deps/npm/node_modules/resolve/test/resolver/incorrect_main/index.js delete mode 100644 deps/npm/node_modules/resolve/test/resolver/incorrect_main/package.json delete mode 100644 deps/npm/node_modules/resolve/test/resolver/invalid_main/package.json delete mode 100644 deps/npm/node_modules/resolve/test/resolver/mug.coffee delete mode 100644 deps/npm/node_modules/resolve/test/resolver/mug.js delete mode 100644 deps/npm/node_modules/resolve/test/resolver/multirepo/lerna.json delete mode 100644 deps/npm/node_modules/resolve/test/resolver/multirepo/package.json delete mode 100644 deps/npm/node_modules/resolve/test/resolver/multirepo/packages/package-a/index.js delete mode 100644 deps/npm/node_modules/resolve/test/resolver/multirepo/packages/package-a/package.json delete mode 100644 deps/npm/node_modules/resolve/test/resolver/multirepo/packages/package-b/index.js delete mode 100644 deps/npm/node_modules/resolve/test/resolver/multirepo/packages/package-b/package.json delete mode 100644 deps/npm/node_modules/resolve/test/resolver/nested_symlinks/mylib/async.js delete mode 100644 deps/npm/node_modules/resolve/test/resolver/nested_symlinks/mylib/package.json delete mode 100644 deps/npm/node_modules/resolve/test/resolver/nested_symlinks/mylib/sync.js delete mode 100644 deps/npm/node_modules/resolve/test/resolver/other_path/lib/other-lib.js delete mode 100644 deps/npm/node_modules/resolve/test/resolver/other_path/root.js delete mode 100644 deps/npm/node_modules/resolve/test/resolver/quux/foo/index.js delete mode 100644 deps/npm/node_modules/resolve/test/resolver/same_names/foo.js delete mode 100644 deps/npm/node_modules/resolve/test/resolver/same_names/foo/index.js delete mode 100644 deps/npm/node_modules/resolve/test/resolver/symlinked/_/node_modules/foo.js delete mode 100644 deps/npm/node_modules/resolve/test/resolver/symlinked/_/symlink_target/.gitkeep delete mode 100644 deps/npm/node_modules/resolve/test/resolver/symlinked/package/bar.js delete mode 100644 deps/npm/node_modules/resolve/test/resolver/symlinked/package/package.json delete mode 100644 deps/npm/node_modules/resolve/test/resolver/without_basedir/main.js delete mode 100644 deps/npm/node_modules/resolve/test/resolver_sync.js delete mode 100644 deps/npm/node_modules/resolve/test/shadowed_core.js delete mode 100644 deps/npm/node_modules/resolve/test/shadowed_core/node_modules/util/index.js delete mode 100644 deps/npm/node_modules/resolve/test/subdirs.js delete mode 100644 deps/npm/node_modules/resolve/test/symlinks.js delete mode 100644 deps/npm/node_modules/retry/.npmignore delete mode 100644 deps/npm/node_modules/retry/License delete mode 100644 deps/npm/node_modules/retry/Makefile delete mode 100644 deps/npm/node_modules/retry/Readme.md delete mode 100644 deps/npm/node_modules/retry/equation.gif delete mode 100644 deps/npm/node_modules/retry/example/dns.js delete mode 100644 deps/npm/node_modules/retry/example/stop.js delete mode 100644 deps/npm/node_modules/retry/index.js delete mode 100644 deps/npm/node_modules/retry/lib/retry.js delete mode 100644 deps/npm/node_modules/retry/lib/retry_operation.js delete mode 100644 deps/npm/node_modules/retry/package.json delete mode 100644 deps/npm/node_modules/retry/test/common.js delete mode 100644 deps/npm/node_modules/retry/test/integration/test-forever.js delete mode 100644 deps/npm/node_modules/retry/test/integration/test-retry-operation.js delete mode 100644 deps/npm/node_modules/retry/test/integration/test-retry-wrap.js delete mode 100644 deps/npm/node_modules/retry/test/integration/test-timeouts.js delete mode 100644 deps/npm/node_modules/retry/test/runner.js delete mode 100644 deps/npm/node_modules/rimraf/CHANGELOG.md delete mode 100644 deps/npm/node_modules/rimraf/LICENSE delete mode 100644 deps/npm/node_modules/rimraf/README.md delete mode 100755 deps/npm/node_modules/rimraf/bin.js delete mode 100644 deps/npm/node_modules/rimraf/package.json delete mode 100644 deps/npm/node_modules/rimraf/rimraf.js delete mode 100644 deps/npm/node_modules/safe-buffer/LICENSE delete mode 100644 deps/npm/node_modules/safe-buffer/README.md delete mode 100644 deps/npm/node_modules/safe-buffer/index.d.ts delete mode 100644 deps/npm/node_modules/safe-buffer/index.js delete mode 100644 deps/npm/node_modules/safe-buffer/package.json delete mode 100644 deps/npm/node_modules/safer-buffer/LICENSE delete mode 100644 deps/npm/node_modules/safer-buffer/Porting-Buffer.md delete mode 100644 deps/npm/node_modules/safer-buffer/Readme.md delete mode 100644 deps/npm/node_modules/safer-buffer/dangerous.js delete mode 100644 deps/npm/node_modules/safer-buffer/package.json delete mode 100644 deps/npm/node_modules/safer-buffer/safer.js delete mode 100644 deps/npm/node_modules/safer-buffer/tests.js delete mode 100644 deps/npm/node_modules/semver/CHANGELOG.md delete mode 100644 deps/npm/node_modules/semver/LICENSE delete mode 100644 deps/npm/node_modules/semver/README.md delete mode 100755 deps/npm/node_modules/semver/bin/semver.js delete mode 100644 deps/npm/node_modules/semver/classes/comparator.js delete mode 100644 deps/npm/node_modules/semver/classes/index.js delete mode 100644 deps/npm/node_modules/semver/classes/range.js delete mode 100644 deps/npm/node_modules/semver/classes/semver.js delete mode 100644 deps/npm/node_modules/semver/functions/clean.js delete mode 100644 deps/npm/node_modules/semver/functions/cmp.js delete mode 100644 deps/npm/node_modules/semver/functions/coerce.js delete mode 100644 deps/npm/node_modules/semver/functions/compare-build.js delete mode 100644 deps/npm/node_modules/semver/functions/compare-loose.js delete mode 100644 deps/npm/node_modules/semver/functions/compare.js delete mode 100644 deps/npm/node_modules/semver/functions/diff.js delete mode 100644 deps/npm/node_modules/semver/functions/eq.js delete mode 100644 deps/npm/node_modules/semver/functions/gt.js delete mode 100644 deps/npm/node_modules/semver/functions/gte.js delete mode 100644 deps/npm/node_modules/semver/functions/inc.js delete mode 100644 deps/npm/node_modules/semver/functions/lt.js delete mode 100644 deps/npm/node_modules/semver/functions/lte.js delete mode 100644 deps/npm/node_modules/semver/functions/major.js delete mode 100644 deps/npm/node_modules/semver/functions/minor.js delete mode 100644 deps/npm/node_modules/semver/functions/neq.js delete mode 100644 deps/npm/node_modules/semver/functions/parse.js delete mode 100644 deps/npm/node_modules/semver/functions/patch.js delete mode 100644 deps/npm/node_modules/semver/functions/prerelease.js delete mode 100644 deps/npm/node_modules/semver/functions/rcompare.js delete mode 100644 deps/npm/node_modules/semver/functions/rsort.js delete mode 100644 deps/npm/node_modules/semver/functions/satisfies.js delete mode 100644 deps/npm/node_modules/semver/functions/sort.js delete mode 100644 deps/npm/node_modules/semver/functions/valid.js delete mode 100644 deps/npm/node_modules/semver/index.js delete mode 100644 deps/npm/node_modules/semver/internal/constants.js delete mode 100644 deps/npm/node_modules/semver/internal/debug.js delete mode 100644 deps/npm/node_modules/semver/internal/identifiers.js delete mode 100644 deps/npm/node_modules/semver/internal/parse-options.js delete mode 100644 deps/npm/node_modules/semver/internal/re.js delete mode 100644 deps/npm/node_modules/semver/package.json delete mode 100644 deps/npm/node_modules/semver/preload.js delete mode 100644 deps/npm/node_modules/semver/range.bnf delete mode 100644 deps/npm/node_modules/semver/ranges/gtr.js delete mode 100644 deps/npm/node_modules/semver/ranges/intersects.js delete mode 100644 deps/npm/node_modules/semver/ranges/ltr.js delete mode 100644 deps/npm/node_modules/semver/ranges/max-satisfying.js delete mode 100644 deps/npm/node_modules/semver/ranges/min-satisfying.js delete mode 100644 deps/npm/node_modules/semver/ranges/min-version.js delete mode 100644 deps/npm/node_modules/semver/ranges/outside.js delete mode 100644 deps/npm/node_modules/semver/ranges/simplify.js delete mode 100644 deps/npm/node_modules/semver/ranges/subset.js delete mode 100644 deps/npm/node_modules/semver/ranges/to-comparators.js delete mode 100644 deps/npm/node_modules/semver/ranges/valid.js delete mode 100644 deps/npm/node_modules/set-blocking/CHANGELOG.md delete mode 100644 deps/npm/node_modules/set-blocking/LICENSE.txt delete mode 100644 deps/npm/node_modules/set-blocking/README.md delete mode 100644 deps/npm/node_modules/set-blocking/index.js delete mode 100644 deps/npm/node_modules/set-blocking/package.json delete mode 100644 deps/npm/node_modules/signal-exit/CHANGELOG.md delete mode 100644 deps/npm/node_modules/signal-exit/LICENSE.txt delete mode 100644 deps/npm/node_modules/signal-exit/README.md delete mode 100644 deps/npm/node_modules/signal-exit/index.js delete mode 100644 deps/npm/node_modules/signal-exit/package.json delete mode 100644 deps/npm/node_modules/signal-exit/signals.js delete mode 100644 deps/npm/node_modules/smart-buffer/.prettierrc.yaml delete mode 100644 deps/npm/node_modules/smart-buffer/.travis.yml delete mode 100644 deps/npm/node_modules/smart-buffer/LICENSE delete mode 100644 deps/npm/node_modules/smart-buffer/README.md delete mode 100644 deps/npm/node_modules/smart-buffer/build/smartbuffer.js delete mode 100644 deps/npm/node_modules/smart-buffer/build/smartbuffer.js.map delete mode 100644 deps/npm/node_modules/smart-buffer/build/utils.js delete mode 100644 deps/npm/node_modules/smart-buffer/build/utils.js.map delete mode 100644 deps/npm/node_modules/smart-buffer/docs/CHANGELOG.md delete mode 100644 deps/npm/node_modules/smart-buffer/docs/README_v3.md delete mode 100644 deps/npm/node_modules/smart-buffer/docs/ROADMAP.md delete mode 100644 deps/npm/node_modules/smart-buffer/package.json delete mode 100644 deps/npm/node_modules/smart-buffer/typings/smartbuffer.d.ts delete mode 100644 deps/npm/node_modules/smart-buffer/typings/utils.d.ts delete mode 100644 deps/npm/node_modules/socks-proxy-agent/README.md delete mode 100644 deps/npm/node_modules/socks-proxy-agent/dist/agent.d.ts delete mode 100644 deps/npm/node_modules/socks-proxy-agent/dist/agent.js delete mode 100644 deps/npm/node_modules/socks-proxy-agent/dist/agent.js.map delete mode 100644 deps/npm/node_modules/socks-proxy-agent/dist/index.d.ts delete mode 100644 deps/npm/node_modules/socks-proxy-agent/dist/index.js delete mode 100644 deps/npm/node_modules/socks-proxy-agent/dist/index.js.map delete mode 100644 deps/npm/node_modules/socks-proxy-agent/package.json delete mode 100644 deps/npm/node_modules/socks/.prettierrc.yaml delete mode 100644 deps/npm/node_modules/socks/.travis.yml delete mode 100644 deps/npm/node_modules/socks/LICENSE delete mode 100644 deps/npm/node_modules/socks/README.md delete mode 100644 deps/npm/node_modules/socks/build/client/socksclient.js delete mode 100644 deps/npm/node_modules/socks/build/client/socksclient.js.map delete mode 100644 deps/npm/node_modules/socks/build/common/constants.js delete mode 100644 deps/npm/node_modules/socks/build/common/constants.js.map delete mode 100644 deps/npm/node_modules/socks/build/common/helpers.js delete mode 100644 deps/npm/node_modules/socks/build/common/helpers.js.map delete mode 100644 deps/npm/node_modules/socks/build/common/receivebuffer.js delete mode 100644 deps/npm/node_modules/socks/build/common/receivebuffer.js.map delete mode 100644 deps/npm/node_modules/socks/build/common/util.js delete mode 100644 deps/npm/node_modules/socks/build/common/util.js.map delete mode 100644 deps/npm/node_modules/socks/build/index.js delete mode 100644 deps/npm/node_modules/socks/build/index.js.map delete mode 100644 deps/npm/node_modules/socks/docs/examples/index.md delete mode 100644 deps/npm/node_modules/socks/docs/examples/javascript/associateExample.md delete mode 100644 deps/npm/node_modules/socks/docs/examples/javascript/bindExample.md delete mode 100644 deps/npm/node_modules/socks/docs/examples/javascript/connectExample.md delete mode 100644 deps/npm/node_modules/socks/docs/examples/typescript/associateExample.md delete mode 100644 deps/npm/node_modules/socks/docs/examples/typescript/bindExample.md delete mode 100644 deps/npm/node_modules/socks/docs/examples/typescript/connectExample.md delete mode 100644 deps/npm/node_modules/socks/docs/index.md delete mode 100644 deps/npm/node_modules/socks/docs/migratingFromV1.md delete mode 100644 deps/npm/node_modules/socks/package.json delete mode 100644 deps/npm/node_modules/socks/typings/client/socksclient.d.ts delete mode 100644 deps/npm/node_modules/socks/typings/common/constants.d.ts delete mode 100644 deps/npm/node_modules/socks/typings/common/helpers.d.ts delete mode 100644 deps/npm/node_modules/socks/typings/common/receiveBuffer.d.ts delete mode 100644 deps/npm/node_modules/socks/typings/common/util.d.ts delete mode 100644 deps/npm/node_modules/socks/typings/index.d.ts delete mode 100644 deps/npm/node_modules/sorted-object/LICENSE.txt delete mode 100644 deps/npm/node_modules/sorted-object/lib/sorted-object.js delete mode 100644 deps/npm/node_modules/sorted-object/package.json delete mode 100644 deps/npm/node_modules/spdx-correct/LICENSE delete mode 100644 deps/npm/node_modules/spdx-correct/README.md delete mode 100644 deps/npm/node_modules/spdx-correct/index.js delete mode 100644 deps/npm/node_modules/spdx-correct/package.json delete mode 100644 deps/npm/node_modules/spdx-exceptions/README.md delete mode 100644 deps/npm/node_modules/spdx-exceptions/index.json delete mode 100644 deps/npm/node_modules/spdx-exceptions/package.json delete mode 100644 deps/npm/node_modules/spdx-expression-parse/AUTHORS delete mode 100644 deps/npm/node_modules/spdx-expression-parse/LICENSE delete mode 100644 deps/npm/node_modules/spdx-expression-parse/README.md delete mode 100644 deps/npm/node_modules/spdx-expression-parse/index.js delete mode 100644 deps/npm/node_modules/spdx-expression-parse/package.json delete mode 100644 deps/npm/node_modules/spdx-expression-parse/parse.js delete mode 100644 deps/npm/node_modules/spdx-expression-parse/scan.js delete mode 100644 deps/npm/node_modules/spdx-license-ids/README.md delete mode 100644 deps/npm/node_modules/spdx-license-ids/deprecated.json delete mode 100644 deps/npm/node_modules/spdx-license-ids/index.json delete mode 100644 deps/npm/node_modules/spdx-license-ids/package.json delete mode 100644 deps/npm/node_modules/sshpk/.npmignore delete mode 100644 deps/npm/node_modules/sshpk/.travis.yml delete mode 100644 deps/npm/node_modules/sshpk/LICENSE delete mode 100644 deps/npm/node_modules/sshpk/README.md delete mode 100755 deps/npm/node_modules/sshpk/bin/sshpk-conv delete mode 100755 deps/npm/node_modules/sshpk/bin/sshpk-sign delete mode 100755 deps/npm/node_modules/sshpk/bin/sshpk-verify delete mode 100644 deps/npm/node_modules/sshpk/lib/algs.js delete mode 100644 deps/npm/node_modules/sshpk/lib/certificate.js delete mode 100644 deps/npm/node_modules/sshpk/lib/dhe.js delete mode 100644 deps/npm/node_modules/sshpk/lib/ed-compat.js delete mode 100644 deps/npm/node_modules/sshpk/lib/errors.js delete mode 100644 deps/npm/node_modules/sshpk/lib/fingerprint.js delete mode 100644 deps/npm/node_modules/sshpk/lib/formats/auto.js delete mode 100644 deps/npm/node_modules/sshpk/lib/formats/dnssec.js delete mode 100644 deps/npm/node_modules/sshpk/lib/formats/openssh-cert.js delete mode 100644 deps/npm/node_modules/sshpk/lib/formats/pem.js delete mode 100644 deps/npm/node_modules/sshpk/lib/formats/pkcs1.js delete mode 100644 deps/npm/node_modules/sshpk/lib/formats/pkcs8.js delete mode 100644 deps/npm/node_modules/sshpk/lib/formats/putty.js delete mode 100644 deps/npm/node_modules/sshpk/lib/formats/rfc4253.js delete mode 100644 deps/npm/node_modules/sshpk/lib/formats/ssh-private.js delete mode 100644 deps/npm/node_modules/sshpk/lib/formats/ssh.js delete mode 100644 deps/npm/node_modules/sshpk/lib/formats/x509-pem.js delete mode 100644 deps/npm/node_modules/sshpk/lib/formats/x509.js delete mode 100644 deps/npm/node_modules/sshpk/lib/identity.js delete mode 100644 deps/npm/node_modules/sshpk/lib/index.js delete mode 100644 deps/npm/node_modules/sshpk/lib/key.js delete mode 100644 deps/npm/node_modules/sshpk/lib/private-key.js delete mode 100644 deps/npm/node_modules/sshpk/lib/signature.js delete mode 100644 deps/npm/node_modules/sshpk/lib/ssh-buffer.js delete mode 100644 deps/npm/node_modules/sshpk/lib/utils.js delete mode 100644 deps/npm/node_modules/sshpk/man/man1/sshpk-conv.1 delete mode 100644 deps/npm/node_modules/sshpk/man/man1/sshpk-sign.1 delete mode 100644 deps/npm/node_modules/sshpk/man/man1/sshpk-verify.1 delete mode 100644 deps/npm/node_modules/sshpk/package.json delete mode 100644 deps/npm/node_modules/ssri/CHANGELOG.md delete mode 100644 deps/npm/node_modules/ssri/LICENSE.md delete mode 100644 deps/npm/node_modules/ssri/README.md delete mode 100644 deps/npm/node_modules/ssri/index.js delete mode 100644 deps/npm/node_modules/ssri/package.json delete mode 100644 deps/npm/node_modules/string-width/index.js delete mode 100644 deps/npm/node_modules/string-width/license delete mode 100644 deps/npm/node_modules/string-width/node_modules/ansi-regex/index.js delete mode 100644 deps/npm/node_modules/string-width/node_modules/ansi-regex/license delete mode 100644 deps/npm/node_modules/string-width/node_modules/ansi-regex/package.json delete mode 100644 deps/npm/node_modules/string-width/node_modules/ansi-regex/readme.md delete mode 100644 deps/npm/node_modules/string-width/node_modules/strip-ansi/index.js delete mode 100644 deps/npm/node_modules/string-width/node_modules/strip-ansi/license delete mode 100644 deps/npm/node_modules/string-width/node_modules/strip-ansi/package.json delete mode 100644 deps/npm/node_modules/string-width/node_modules/strip-ansi/readme.md delete mode 100644 deps/npm/node_modules/string-width/package.json delete mode 100644 deps/npm/node_modules/string-width/readme.md delete mode 100644 deps/npm/node_modules/string_decoder/.travis.yml delete mode 100644 deps/npm/node_modules/string_decoder/LICENSE delete mode 100644 deps/npm/node_modules/string_decoder/README.md delete mode 100644 deps/npm/node_modules/string_decoder/lib/string_decoder.js delete mode 100644 deps/npm/node_modules/string_decoder/package.json delete mode 100644 deps/npm/node_modules/stringify-package/CHANGELOG.md delete mode 100644 deps/npm/node_modules/stringify-package/LICENSE delete mode 100644 deps/npm/node_modules/stringify-package/README.md delete mode 100644 deps/npm/node_modules/stringify-package/index.js delete mode 100644 deps/npm/node_modules/stringify-package/package.json delete mode 100644 deps/npm/node_modules/strip-ansi/index.js delete mode 100644 deps/npm/node_modules/strip-ansi/license delete mode 100644 deps/npm/node_modules/strip-ansi/package.json delete mode 100644 deps/npm/node_modules/strip-ansi/readme.md delete mode 100644 deps/npm/node_modules/supports-color/browser.js delete mode 100644 deps/npm/node_modules/supports-color/index.js delete mode 100644 deps/npm/node_modules/supports-color/license delete mode 100644 deps/npm/node_modules/supports-color/package.json delete mode 100644 deps/npm/node_modules/supports-color/readme.md delete mode 100644 deps/npm/node_modules/tar/CHANGELOG.md delete mode 100644 deps/npm/node_modules/tar/LICENSE delete mode 100644 deps/npm/node_modules/tar/README.md delete mode 100644 deps/npm/node_modules/tar/index.js delete mode 100644 deps/npm/node_modules/tar/lib/create.js delete mode 100644 deps/npm/node_modules/tar/lib/extract.js delete mode 100644 deps/npm/node_modules/tar/lib/get-write-flag.js delete mode 100644 deps/npm/node_modules/tar/lib/header.js delete mode 100644 deps/npm/node_modules/tar/lib/high-level-opt.js delete mode 100644 deps/npm/node_modules/tar/lib/large-numbers.js delete mode 100644 deps/npm/node_modules/tar/lib/list.js delete mode 100644 deps/npm/node_modules/tar/lib/mkdir.js delete mode 100644 deps/npm/node_modules/tar/lib/mode-fix.js delete mode 100644 deps/npm/node_modules/tar/lib/pack.js delete mode 100644 deps/npm/node_modules/tar/lib/parse.js delete mode 100644 deps/npm/node_modules/tar/lib/path-reservations.js delete mode 100644 deps/npm/node_modules/tar/lib/pax.js delete mode 100644 deps/npm/node_modules/tar/lib/read-entry.js delete mode 100644 deps/npm/node_modules/tar/lib/replace.js delete mode 100644 deps/npm/node_modules/tar/lib/types.js delete mode 100644 deps/npm/node_modules/tar/lib/unpack.js delete mode 100644 deps/npm/node_modules/tar/lib/update.js delete mode 100644 deps/npm/node_modules/tar/lib/warn-mixin.js delete mode 100644 deps/npm/node_modules/tar/lib/winchars.js delete mode 100644 deps/npm/node_modules/tar/lib/write-entry.js delete mode 100644 deps/npm/node_modules/tar/package.json delete mode 100644 deps/npm/node_modules/text-table/.travis.yml delete mode 100644 deps/npm/node_modules/text-table/LICENSE delete mode 100644 deps/npm/node_modules/text-table/example/align.js delete mode 100644 deps/npm/node_modules/text-table/example/center.js delete mode 100644 deps/npm/node_modules/text-table/example/dotalign.js delete mode 100644 deps/npm/node_modules/text-table/example/doubledot.js delete mode 100644 deps/npm/node_modules/text-table/example/table.js delete mode 100644 deps/npm/node_modules/text-table/index.js delete mode 100644 deps/npm/node_modules/text-table/package.json delete mode 100644 deps/npm/node_modules/text-table/readme.markdown delete mode 100644 deps/npm/node_modules/text-table/test/align.js delete mode 100644 deps/npm/node_modules/text-table/test/ansi-colors.js delete mode 100644 deps/npm/node_modules/text-table/test/center.js delete mode 100644 deps/npm/node_modules/text-table/test/dotalign.js delete mode 100644 deps/npm/node_modules/text-table/test/doubledot.js delete mode 100644 deps/npm/node_modules/text-table/test/table.js delete mode 100644 deps/npm/node_modules/tiny-relative-date/LICENSE.md delete mode 100644 deps/npm/node_modules/tiny-relative-date/README.md delete mode 100644 deps/npm/node_modules/tiny-relative-date/lib/factory.js delete mode 100644 deps/npm/node_modules/tiny-relative-date/lib/index.js delete mode 100644 deps/npm/node_modules/tiny-relative-date/package.json delete mode 100644 deps/npm/node_modules/tiny-relative-date/src/factory.js delete mode 100644 deps/npm/node_modules/tiny-relative-date/src/index.js delete mode 100644 deps/npm/node_modules/tiny-relative-date/translations/da.js delete mode 100644 deps/npm/node_modules/tiny-relative-date/translations/de.js delete mode 100644 deps/npm/node_modules/tiny-relative-date/translations/en-short.js delete mode 100644 deps/npm/node_modules/tiny-relative-date/translations/en.js delete mode 100644 deps/npm/node_modules/tiny-relative-date/translations/es.js delete mode 100644 deps/npm/node_modules/treeverse/LICENSE delete mode 100644 deps/npm/node_modules/treeverse/README.md delete mode 100644 deps/npm/node_modules/treeverse/index.js delete mode 100644 deps/npm/node_modules/treeverse/lib/breadth.js delete mode 100644 deps/npm/node_modules/treeverse/lib/depth-descent.js delete mode 100644 deps/npm/node_modules/treeverse/lib/depth.js delete mode 100644 deps/npm/node_modules/treeverse/package.json delete mode 100644 deps/npm/node_modules/tunnel-agent/LICENSE delete mode 100644 deps/npm/node_modules/tunnel-agent/README.md delete mode 100644 deps/npm/node_modules/tunnel-agent/index.js delete mode 100644 deps/npm/node_modules/tunnel-agent/package.json delete mode 100644 deps/npm/node_modules/tweetnacl/.npmignore delete mode 100644 deps/npm/node_modules/tweetnacl/AUTHORS.md delete mode 100644 deps/npm/node_modules/tweetnacl/CHANGELOG.md delete mode 100644 deps/npm/node_modules/tweetnacl/LICENSE delete mode 100644 deps/npm/node_modules/tweetnacl/PULL_REQUEST_TEMPLATE.md delete mode 100644 deps/npm/node_modules/tweetnacl/README.md delete mode 100644 deps/npm/node_modules/tweetnacl/nacl-fast.js delete mode 100644 deps/npm/node_modules/tweetnacl/nacl-fast.min.js delete mode 100644 deps/npm/node_modules/tweetnacl/nacl.d.ts delete mode 100644 deps/npm/node_modules/tweetnacl/nacl.js delete mode 100644 deps/npm/node_modules/tweetnacl/nacl.min.js delete mode 100644 deps/npm/node_modules/tweetnacl/package.json delete mode 100644 deps/npm/node_modules/typedarray-to-buffer/.airtap.yml delete mode 100644 deps/npm/node_modules/typedarray-to-buffer/.travis.yml delete mode 100644 deps/npm/node_modules/typedarray-to-buffer/LICENSE delete mode 100644 deps/npm/node_modules/typedarray-to-buffer/README.md delete mode 100644 deps/npm/node_modules/typedarray-to-buffer/index.js delete mode 100644 deps/npm/node_modules/typedarray-to-buffer/package.json delete mode 100644 deps/npm/node_modules/typedarray-to-buffer/test/basic.js delete mode 100644 deps/npm/node_modules/unique-filename/LICENSE delete mode 100644 deps/npm/node_modules/unique-filename/README.md delete mode 100644 deps/npm/node_modules/unique-filename/coverage/__root__/index.html delete mode 100644 deps/npm/node_modules/unique-filename/coverage/__root__/index.js.html delete mode 100644 deps/npm/node_modules/unique-filename/coverage/base.css delete mode 100644 deps/npm/node_modules/unique-filename/coverage/index.html delete mode 100644 deps/npm/node_modules/unique-filename/coverage/prettify.css delete mode 100644 deps/npm/node_modules/unique-filename/coverage/prettify.js delete mode 100644 deps/npm/node_modules/unique-filename/coverage/sort-arrow-sprite.png delete mode 100644 deps/npm/node_modules/unique-filename/coverage/sorter.js delete mode 100644 deps/npm/node_modules/unique-filename/index.js delete mode 100644 deps/npm/node_modules/unique-filename/package.json delete mode 100644 deps/npm/node_modules/unique-filename/test/index.js delete mode 100644 deps/npm/node_modules/unique-slug/.travis.yml delete mode 100644 deps/npm/node_modules/unique-slug/LICENSE delete mode 100644 deps/npm/node_modules/unique-slug/README.md delete mode 100644 deps/npm/node_modules/unique-slug/index.js delete mode 100644 deps/npm/node_modules/unique-slug/package.json delete mode 100644 deps/npm/node_modules/unique-slug/test/index.js delete mode 100755 deps/npm/node_modules/uri-js/LICENSE delete mode 100755 deps/npm/node_modules/uri-js/README.md delete mode 100755 deps/npm/node_modules/uri-js/dist/es5/uri.all.d.ts delete mode 100755 deps/npm/node_modules/uri-js/dist/es5/uri.all.js delete mode 100755 deps/npm/node_modules/uri-js/dist/es5/uri.all.js.map delete mode 100755 deps/npm/node_modules/uri-js/dist/es5/uri.all.min.d.ts delete mode 100755 deps/npm/node_modules/uri-js/dist/es5/uri.all.min.js delete mode 100755 deps/npm/node_modules/uri-js/dist/es5/uri.all.min.js.map delete mode 100755 deps/npm/node_modules/uri-js/dist/esnext/index.d.ts delete mode 100755 deps/npm/node_modules/uri-js/dist/esnext/index.js delete mode 100755 deps/npm/node_modules/uri-js/dist/esnext/index.js.map delete mode 100755 deps/npm/node_modules/uri-js/dist/esnext/regexps-iri.d.ts delete mode 100755 deps/npm/node_modules/uri-js/dist/esnext/regexps-iri.js delete mode 100755 deps/npm/node_modules/uri-js/dist/esnext/regexps-iri.js.map delete mode 100755 deps/npm/node_modules/uri-js/dist/esnext/regexps-uri.d.ts delete mode 100755 deps/npm/node_modules/uri-js/dist/esnext/regexps-uri.js delete mode 100755 deps/npm/node_modules/uri-js/dist/esnext/regexps-uri.js.map delete mode 100755 deps/npm/node_modules/uri-js/dist/esnext/schemes/http.d.ts delete mode 100755 deps/npm/node_modules/uri-js/dist/esnext/schemes/http.js delete mode 100755 deps/npm/node_modules/uri-js/dist/esnext/schemes/http.js.map delete mode 100755 deps/npm/node_modules/uri-js/dist/esnext/schemes/https.d.ts delete mode 100755 deps/npm/node_modules/uri-js/dist/esnext/schemes/https.js delete mode 100755 deps/npm/node_modules/uri-js/dist/esnext/schemes/https.js.map delete mode 100755 deps/npm/node_modules/uri-js/dist/esnext/schemes/mailto.d.ts delete mode 100755 deps/npm/node_modules/uri-js/dist/esnext/schemes/mailto.js delete mode 100755 deps/npm/node_modules/uri-js/dist/esnext/schemes/mailto.js.map delete mode 100755 deps/npm/node_modules/uri-js/dist/esnext/schemes/urn-uuid.d.ts delete mode 100755 deps/npm/node_modules/uri-js/dist/esnext/schemes/urn-uuid.js delete mode 100755 deps/npm/node_modules/uri-js/dist/esnext/schemes/urn-uuid.js.map delete mode 100755 deps/npm/node_modules/uri-js/dist/esnext/schemes/urn.d.ts delete mode 100755 deps/npm/node_modules/uri-js/dist/esnext/schemes/urn.js delete mode 100755 deps/npm/node_modules/uri-js/dist/esnext/schemes/urn.js.map delete mode 100755 deps/npm/node_modules/uri-js/dist/esnext/schemes/ws.d.ts delete mode 100755 deps/npm/node_modules/uri-js/dist/esnext/schemes/ws.js delete mode 100755 deps/npm/node_modules/uri-js/dist/esnext/schemes/ws.js.map delete mode 100755 deps/npm/node_modules/uri-js/dist/esnext/schemes/wss.d.ts delete mode 100755 deps/npm/node_modules/uri-js/dist/esnext/schemes/wss.js delete mode 100755 deps/npm/node_modules/uri-js/dist/esnext/schemes/wss.js.map delete mode 100755 deps/npm/node_modules/uri-js/dist/esnext/uri.d.ts delete mode 100755 deps/npm/node_modules/uri-js/dist/esnext/uri.js delete mode 100755 deps/npm/node_modules/uri-js/dist/esnext/uri.js.map delete mode 100755 deps/npm/node_modules/uri-js/dist/esnext/util.d.ts delete mode 100755 deps/npm/node_modules/uri-js/dist/esnext/util.js delete mode 100755 deps/npm/node_modules/uri-js/dist/esnext/util.js.map delete mode 100755 deps/npm/node_modules/uri-js/package.json delete mode 100755 deps/npm/node_modules/uri-js/yarn.lock delete mode 100644 deps/npm/node_modules/util-deprecate/History.md delete mode 100644 deps/npm/node_modules/util-deprecate/LICENSE delete mode 100644 deps/npm/node_modules/util-deprecate/README.md delete mode 100644 deps/npm/node_modules/util-deprecate/browser.js delete mode 100644 deps/npm/node_modules/util-deprecate/node.js delete mode 100644 deps/npm/node_modules/util-deprecate/package.json delete mode 100644 deps/npm/node_modules/uuid/CHANGELOG.md delete mode 100644 deps/npm/node_modules/uuid/CONTRIBUTING.md delete mode 100644 deps/npm/node_modules/uuid/LICENSE.md delete mode 100644 deps/npm/node_modules/uuid/README.md delete mode 100755 deps/npm/node_modules/uuid/dist/bin/uuid delete mode 100644 deps/npm/node_modules/uuid/dist/esm-browser/index.js delete mode 100644 deps/npm/node_modules/uuid/dist/esm-browser/md5.js delete mode 100644 deps/npm/node_modules/uuid/dist/esm-browser/nil.js delete mode 100644 deps/npm/node_modules/uuid/dist/esm-browser/parse.js delete mode 100644 deps/npm/node_modules/uuid/dist/esm-browser/regex.js delete mode 100644 deps/npm/node_modules/uuid/dist/esm-browser/rng.js delete mode 100644 deps/npm/node_modules/uuid/dist/esm-browser/sha1.js delete mode 100644 deps/npm/node_modules/uuid/dist/esm-browser/stringify.js delete mode 100644 deps/npm/node_modules/uuid/dist/esm-browser/v1.js delete mode 100644 deps/npm/node_modules/uuid/dist/esm-browser/v3.js delete mode 100644 deps/npm/node_modules/uuid/dist/esm-browser/v35.js delete mode 100644 deps/npm/node_modules/uuid/dist/esm-browser/v4.js delete mode 100644 deps/npm/node_modules/uuid/dist/esm-browser/v5.js delete mode 100644 deps/npm/node_modules/uuid/dist/esm-browser/validate.js delete mode 100644 deps/npm/node_modules/uuid/dist/esm-browser/version.js delete mode 100644 deps/npm/node_modules/uuid/dist/esm-node/index.js delete mode 100644 deps/npm/node_modules/uuid/dist/esm-node/md5.js delete mode 100644 deps/npm/node_modules/uuid/dist/esm-node/nil.js delete mode 100644 deps/npm/node_modules/uuid/dist/esm-node/parse.js delete mode 100644 deps/npm/node_modules/uuid/dist/esm-node/regex.js delete mode 100644 deps/npm/node_modules/uuid/dist/esm-node/rng.js delete mode 100644 deps/npm/node_modules/uuid/dist/esm-node/sha1.js delete mode 100644 deps/npm/node_modules/uuid/dist/esm-node/stringify.js delete mode 100644 deps/npm/node_modules/uuid/dist/esm-node/v1.js delete mode 100644 deps/npm/node_modules/uuid/dist/esm-node/v3.js delete mode 100644 deps/npm/node_modules/uuid/dist/esm-node/v35.js delete mode 100644 deps/npm/node_modules/uuid/dist/esm-node/v4.js delete mode 100644 deps/npm/node_modules/uuid/dist/esm-node/v5.js delete mode 100644 deps/npm/node_modules/uuid/dist/esm-node/validate.js delete mode 100644 deps/npm/node_modules/uuid/dist/esm-node/version.js delete mode 100644 deps/npm/node_modules/uuid/dist/index.js delete mode 100644 deps/npm/node_modules/uuid/dist/md5-browser.js delete mode 100644 deps/npm/node_modules/uuid/dist/md5.js delete mode 100644 deps/npm/node_modules/uuid/dist/nil.js delete mode 100644 deps/npm/node_modules/uuid/dist/parse.js delete mode 100644 deps/npm/node_modules/uuid/dist/regex.js delete mode 100644 deps/npm/node_modules/uuid/dist/rng-browser.js delete mode 100644 deps/npm/node_modules/uuid/dist/rng.js delete mode 100644 deps/npm/node_modules/uuid/dist/sha1-browser.js delete mode 100644 deps/npm/node_modules/uuid/dist/sha1.js delete mode 100644 deps/npm/node_modules/uuid/dist/stringify.js delete mode 100644 deps/npm/node_modules/uuid/dist/umd/uuid.min.js delete mode 100644 deps/npm/node_modules/uuid/dist/umd/uuidNIL.min.js delete mode 100644 deps/npm/node_modules/uuid/dist/umd/uuidParse.min.js delete mode 100644 deps/npm/node_modules/uuid/dist/umd/uuidStringify.min.js delete mode 100644 deps/npm/node_modules/uuid/dist/umd/uuidValidate.min.js delete mode 100644 deps/npm/node_modules/uuid/dist/umd/uuidVersion.min.js delete mode 100644 deps/npm/node_modules/uuid/dist/umd/uuidv1.min.js delete mode 100644 deps/npm/node_modules/uuid/dist/umd/uuidv3.min.js delete mode 100644 deps/npm/node_modules/uuid/dist/umd/uuidv4.min.js delete mode 100644 deps/npm/node_modules/uuid/dist/umd/uuidv5.min.js delete mode 100644 deps/npm/node_modules/uuid/dist/uuid-bin.js delete mode 100644 deps/npm/node_modules/uuid/dist/v1.js delete mode 100644 deps/npm/node_modules/uuid/dist/v3.js delete mode 100644 deps/npm/node_modules/uuid/dist/v35.js delete mode 100644 deps/npm/node_modules/uuid/dist/v4.js delete mode 100644 deps/npm/node_modules/uuid/dist/v5.js delete mode 100644 deps/npm/node_modules/uuid/dist/validate.js delete mode 100644 deps/npm/node_modules/uuid/dist/version.js delete mode 100644 deps/npm/node_modules/uuid/package.json delete mode 100644 deps/npm/node_modules/uuid/wrapper.mjs delete mode 100644 deps/npm/node_modules/validate-npm-package-license/LICENSE delete mode 100644 deps/npm/node_modules/validate-npm-package-license/README.md delete mode 100644 deps/npm/node_modules/validate-npm-package-license/index.js delete mode 100644 deps/npm/node_modules/validate-npm-package-license/package.json delete mode 100644 deps/npm/node_modules/validate-npm-package-name/.npmignore delete mode 100644 deps/npm/node_modules/validate-npm-package-name/.travis.yml delete mode 100644 deps/npm/node_modules/validate-npm-package-name/LICENSE delete mode 100644 deps/npm/node_modules/validate-npm-package-name/README.md delete mode 100644 deps/npm/node_modules/validate-npm-package-name/index.js delete mode 100644 deps/npm/node_modules/validate-npm-package-name/package.json delete mode 100644 deps/npm/node_modules/validate-npm-package-name/test/index.js delete mode 100644 deps/npm/node_modules/verror/.npmignore delete mode 100644 deps/npm/node_modules/verror/CHANGES.md delete mode 100644 deps/npm/node_modules/verror/LICENSE delete mode 100644 deps/npm/node_modules/verror/README.md delete mode 100644 deps/npm/node_modules/verror/lib/verror.js delete mode 100644 deps/npm/node_modules/verror/package.json delete mode 100644 deps/npm/node_modules/walk-up-path/LICENSE delete mode 100644 deps/npm/node_modules/walk-up-path/README.md delete mode 100644 deps/npm/node_modules/walk-up-path/index.js delete mode 100644 deps/npm/node_modules/walk-up-path/package.json delete mode 100644 deps/npm/node_modules/wcwidth/.npmignore delete mode 100644 deps/npm/node_modules/wcwidth/LICENSE delete mode 100644 deps/npm/node_modules/wcwidth/Readme.md delete mode 100644 deps/npm/node_modules/wcwidth/combining.js delete mode 100644 deps/npm/node_modules/wcwidth/docs/index.md delete mode 100644 deps/npm/node_modules/wcwidth/index.js delete mode 100644 deps/npm/node_modules/wcwidth/package.json delete mode 100644 deps/npm/node_modules/wcwidth/test/index.js delete mode 100644 deps/npm/node_modules/which/CHANGELOG.md delete mode 100644 deps/npm/node_modules/which/LICENSE delete mode 100644 deps/npm/node_modules/which/README.md delete mode 100755 deps/npm/node_modules/which/bin/node-which delete mode 100644 deps/npm/node_modules/which/package.json delete mode 100644 deps/npm/node_modules/which/which.js delete mode 100644 deps/npm/node_modules/wide-align/LICENSE delete mode 100644 deps/npm/node_modules/wide-align/README.md delete mode 100644 deps/npm/node_modules/wide-align/align.js delete mode 100644 deps/npm/node_modules/wide-align/package.json delete mode 100644 deps/npm/node_modules/wrappy/LICENSE delete mode 100644 deps/npm/node_modules/wrappy/README.md delete mode 100644 deps/npm/node_modules/wrappy/package.json delete mode 100644 deps/npm/node_modules/wrappy/wrappy.js delete mode 100644 deps/npm/node_modules/write-file-atomic/CHANGELOG.md delete mode 100644 deps/npm/node_modules/write-file-atomic/LICENSE delete mode 100644 deps/npm/node_modules/write-file-atomic/README.md delete mode 100644 deps/npm/node_modules/write-file-atomic/index.js delete mode 100644 deps/npm/node_modules/write-file-atomic/package.json delete mode 100644 deps/npm/node_modules/yallist/LICENSE delete mode 100644 deps/npm/node_modules/yallist/README.md delete mode 100644 deps/npm/node_modules/yallist/iterator.js delete mode 100644 deps/npm/node_modules/yallist/package.json delete mode 100644 deps/npm/node_modules/yallist/yallist.js delete mode 100644 deps/npm/package.json delete mode 100644 deps/npm/scripts/bundle-and-gitignore-deps.js delete mode 100644 deps/npm/scripts/changelog.js delete mode 100755 deps/npm/scripts/clean-old.sh delete mode 100644 deps/npm/scripts/docs-build.js delete mode 100755 deps/npm/scripts/install.sh delete mode 100755 deps/npm/scripts/maketest delete mode 100755 deps/npm/scripts/pr delete mode 100644 deps/npm/scripts/publish-tag.js delete mode 100644 deps/npm/scripts/release.sh delete mode 100755 deps/npm/scripts/relocate.sh delete mode 100755 deps/npm/scripts/resetdeps.sh delete mode 100755 deps/npm/scripts/update-authors.sh delete mode 100644 deps/npm/scripts/update-dist-tags.js delete mode 100644 deps/npm/tap-snapshots/test-lib-config.js-TAP.test.js delete mode 100644 deps/npm/tap-snapshots/test-lib-dist-tag.js-TAP.test.js delete mode 100644 deps/npm/tap-snapshots/test-lib-fund.js-TAP.test.js delete mode 100644 deps/npm/tap-snapshots/test-lib-init.js-TAP.test.js delete mode 100644 deps/npm/tap-snapshots/test-lib-link.js-TAP.test.js delete mode 100644 deps/npm/tap-snapshots/test-lib-ls.js-TAP.test.js delete mode 100644 deps/npm/tap-snapshots/test-lib-outdated.js-TAP.test.js delete mode 100644 deps/npm/tap-snapshots/test-lib-owner.js-TAP.test.js delete mode 100644 deps/npm/tap-snapshots/test-lib-publish.js-TAP.test.js delete mode 100644 deps/npm/tap-snapshots/test-lib-stars.js-TAP.test.js delete mode 100644 deps/npm/tap-snapshots/test-lib-utils-cmd-list.js-TAP.test.js delete mode 100644 deps/npm/tap-snapshots/test-lib-utils-config.js-TAP.test.js delete mode 100644 deps/npm/tap-snapshots/test-lib-utils-error-handler.js-TAP.test.js delete mode 100644 deps/npm/tap-snapshots/test-lib-utils-error-message.js-TAP.test.js delete mode 100644 deps/npm/tap-snapshots/test-lib-utils-explain-dep.js-TAP.test.js delete mode 100644 deps/npm/tap-snapshots/test-lib-utils-explain-eresolve.js-TAP.test.js delete mode 100644 deps/npm/tap-snapshots/test-lib-utils-flat-options.js-TAP.test.js delete mode 100644 deps/npm/tap-snapshots/test-lib-utils-reify-finish.js-TAP.test.js delete mode 100644 deps/npm/tap-snapshots/test-lib-utils-reify-output.js-TAP.test.js delete mode 100644 deps/npm/tap-snapshots/test-lib-utils-tar.js-TAP.test.js delete mode 100644 deps/npm/tap-snapshots/test-lib-utils-update-notifier.js-TAP.test.js delete mode 100644 deps/npm/tap-snapshots/test-lib-view.js-TAP.test.js delete mode 100644 deps/npm/tap-snapshots/test-tap-repo.js-TAP.test.js delete mode 100644 deps/npm/test/bin/npm-cli.js delete mode 100644 deps/npm/test/bin/npx-cli.js delete mode 100644 deps/npm/test/coverage-map.js delete mode 100644 deps/npm/test/fixtures/eresolve-explanations.js delete mode 100644 deps/npm/test/lib/access.js delete mode 100644 deps/npm/test/lib/adduser.js delete mode 100644 deps/npm/test/lib/audit.js delete mode 100644 deps/npm/test/lib/auth/legacy.js delete mode 100644 deps/npm/test/lib/auth/oauth.js delete mode 100644 deps/npm/test/lib/auth/saml.js delete mode 100644 deps/npm/test/lib/auth/sso.js delete mode 100644 deps/npm/test/lib/bin.js delete mode 100644 deps/npm/test/lib/birthday.js delete mode 100644 deps/npm/test/lib/bugs.js delete mode 100644 deps/npm/test/lib/cache.js delete mode 100644 deps/npm/test/lib/ci.js delete mode 100644 deps/npm/test/lib/cli.js delete mode 100644 deps/npm/test/lib/config.js delete mode 100644 deps/npm/test/lib/dedupe.js delete mode 100644 deps/npm/test/lib/deprecate.js delete mode 100644 deps/npm/test/lib/dist-tag.js delete mode 100644 deps/npm/test/lib/docs.js delete mode 100644 deps/npm/test/lib/exec.js delete mode 100644 deps/npm/test/lib/explain.js delete mode 100644 deps/npm/test/lib/explore.js delete mode 100644 deps/npm/test/lib/find-dupes.js delete mode 100644 deps/npm/test/lib/fund.js delete mode 100644 deps/npm/test/lib/get.js delete mode 100644 deps/npm/test/lib/init.js delete mode 100644 deps/npm/test/lib/install.js delete mode 100644 deps/npm/test/lib/link.js delete mode 100644 deps/npm/test/lib/ll.js delete mode 100644 deps/npm/test/lib/load-all-commands.js delete mode 100644 deps/npm/test/lib/load-all.js delete mode 100644 deps/npm/test/lib/logout.js delete mode 100644 deps/npm/test/lib/ls.js delete mode 100644 deps/npm/test/lib/npm.js delete mode 100644 deps/npm/test/lib/outdated.js delete mode 100644 deps/npm/test/lib/owner.js delete mode 100644 deps/npm/test/lib/pack.js delete mode 100644 deps/npm/test/lib/ping.js delete mode 100644 deps/npm/test/lib/prefix.js delete mode 100644 deps/npm/test/lib/prune.js delete mode 100644 deps/npm/test/lib/publish.js delete mode 100644 deps/npm/test/lib/rebuild.js delete mode 100644 deps/npm/test/lib/repo.js delete mode 100644 deps/npm/test/lib/restart.js delete mode 100644 deps/npm/test/lib/root.js delete mode 100644 deps/npm/test/lib/run-script.js delete mode 100644 deps/npm/test/lib/set-script.js delete mode 100644 deps/npm/test/lib/shrinkwrap.js delete mode 100644 deps/npm/test/lib/star.js delete mode 100644 deps/npm/test/lib/stars.js delete mode 100644 deps/npm/test/lib/start.js delete mode 100644 deps/npm/test/lib/stop.js delete mode 100644 deps/npm/test/lib/test.js delete mode 100644 deps/npm/test/lib/token.js delete mode 100644 deps/npm/test/lib/uninstall.js delete mode 100644 deps/npm/test/lib/unpublish.js delete mode 100644 deps/npm/test/lib/unstar.js delete mode 100644 deps/npm/test/lib/update.js delete mode 100644 deps/npm/test/lib/utils/audit-error.js delete mode 100644 deps/npm/test/lib/utils/cleanup-log-files.js delete mode 100644 deps/npm/test/lib/utils/cmd-list.js delete mode 100644 deps/npm/test/lib/utils/completion/installed-deep.js delete mode 100644 deps/npm/test/lib/utils/completion/installed-shallow.js delete mode 100644 deps/npm/test/lib/utils/completion/none.js delete mode 100644 deps/npm/test/lib/utils/config.js delete mode 100644 deps/npm/test/lib/utils/deref-command.js delete mode 100644 deps/npm/test/lib/utils/did-you-mean.js delete mode 100644 deps/npm/test/lib/utils/error-handler.js delete mode 100644 deps/npm/test/lib/utils/error-message.js delete mode 100644 deps/npm/test/lib/utils/explain-dep.js delete mode 100644 deps/npm/test/lib/utils/explain-eresolve.js delete mode 100644 deps/npm/test/lib/utils/file-exists.js delete mode 100644 deps/npm/test/lib/utils/flat-options.js delete mode 100644 deps/npm/test/lib/utils/get-identity.js delete mode 100644 deps/npm/test/lib/utils/get-project-scope.js delete mode 100644 deps/npm/test/lib/utils/hosted-git-info-from-manifest.js delete mode 100644 deps/npm/test/lib/utils/is-windows-bash.js delete mode 100644 deps/npm/test/lib/utils/is-windows-shell.js delete mode 100644 deps/npm/test/lib/utils/is-windows.js delete mode 100644 deps/npm/test/lib/utils/lifecycle-cmd.js delete mode 100644 deps/npm/test/lib/utils/output.js delete mode 100644 deps/npm/test/lib/utils/path.js delete mode 100644 deps/npm/test/lib/utils/perf.js delete mode 100644 deps/npm/test/lib/utils/ping.js delete mode 100644 deps/npm/test/lib/utils/proc-log-listener.js delete mode 100644 deps/npm/test/lib/utils/read-local-package.js delete mode 100644 deps/npm/test/lib/utils/reify-finish.js delete mode 100644 deps/npm/test/lib/utils/reify-output.js delete mode 100644 deps/npm/test/lib/utils/replace-info.js delete mode 100644 deps/npm/test/lib/utils/setup-log.js delete mode 100644 deps/npm/test/lib/utils/tar.js delete mode 100644 deps/npm/test/lib/utils/unsupported.js delete mode 100644 deps/npm/test/lib/utils/update-notifier.js delete mode 100644 deps/npm/test/lib/version.js delete mode 100644 deps/npm/test/lib/view.js delete mode 100644 deps/npm/test/lib/whoami.js diff --git a/deps/npm/.eslintrc.json b/deps/npm/.eslintrc.json deleted file mode 100644 index 139716eefd85a0..00000000000000 --- a/deps/npm/.eslintrc.json +++ /dev/null @@ -1,207 +0,0 @@ -{ - "parserOptions": { - "ecmaVersion": 2018, - "ecmaFeatures": {}, - "sourceType": "script" - }, - - "env": { - "es6": true, - "node": true - }, - - "plugins": [ - "import", - "node", - "promise", - "standard" - ], - - "globals": { - "document": "readonly", - "navigator": "readonly", - "window": "readonly" - }, - - "rules": { - "accessor-pairs": "error", - "array-bracket-spacing": ["error", "never"], - "arrow-spacing": ["error", { "before": true, "after": true }], - "block-spacing": ["error", "always"], - "brace-style": ["error", "1tbs", { "allowSingleLine": false }], - "camelcase": ["error", { "properties": "never" }], - "comma-dangle": ["error", { - "arrays": "always-multiline", - "objects": "always-multiline", - "imports": "always-multiline", - "exports": "always-multiline", - "functions": "never" - }], - "comma-spacing": ["error", { "before": false, "after": true }], - "comma-style": ["error", "last"], - "computed-property-spacing": ["error", "never"], - "constructor-super": "error", - "curly": ["error", "multi-or-nest"], - "dot-location": ["error", "property"], - "dot-notation": ["error", { "allowKeywords": true }], - "eol-last": "error", - "eqeqeq": ["error", "always", { "null": "ignore" }], - "func-call-spacing": ["error", "never"], - "generator-star-spacing": ["error", { "before": true, "after": true }], - "handle-callback-err": ["error", "^(err|error)$" ], - "indent": ["error", 2, { - "SwitchCase": 1, - "VariableDeclarator": 1, - "outerIIFEBody": 1, - "MemberExpression": 1, - "FunctionDeclaration": { "parameters": 1, "body": 1 }, - "FunctionExpression": { "parameters": 1, "body": 1 }, - "CallExpression": { "arguments": 1 }, - "ArrayExpression": 1, - "ObjectExpression": 1, - "ImportDeclaration": 1, - "flatTernaryExpressions": true, - "ignoreComments": false, - "ignoredNodes": ["TemplateLiteral *"] - }], - "key-spacing": ["error", { "beforeColon": false, "afterColon": true }], - "keyword-spacing": ["error", { "before": true, "after": true }], - "lines-between-class-members": ["error", "always", { "exceptAfterSingleLine": true }], - "new-cap": ["error", { "newIsCap": true, "capIsNew": false, "properties": true }], - "new-parens": "error", - "no-array-constructor": "error", - "no-async-promise-executor": "error", - "no-caller": "error", - "no-case-declarations": "error", - "no-class-assign": "error", - "no-compare-neg-zero": "error", - "no-cond-assign": "off", - "no-const-assign": "error", - "no-constant-condition": ["error", { "checkLoops": false }], - "no-control-regex": "error", - "no-debugger": "error", - "no-delete-var": "error", - "no-dupe-args": "error", - "no-dupe-class-members": "error", - "no-dupe-keys": "error", - "no-duplicate-case": "error", - "no-empty-character-class": "error", - "no-empty-pattern": "error", - "no-eval": "error", - "no-ex-assign": "error", - "no-extend-native": "error", - "no-extra-bind": "error", - "no-extra-boolean-cast": "error", - "no-extra-parens": ["error", "functions"], - "no-fallthrough": "error", - "no-floating-decimal": "error", - "no-func-assign": "error", - "no-global-assign": "error", - "no-implied-eval": "error", - "no-inner-declarations": ["error", "functions"], - "no-invalid-regexp": "error", - "no-irregular-whitespace": "error", - "no-iterator": "error", - "no-labels": ["error", { "allowLoop": true, "allowSwitch": false }], - "no-lone-blocks": "error", - "no-misleading-character-class": "error", - "no-prototype-builtins": "error", - "no-useless-catch": "error", - "no-mixed-operators": "off", - "no-mixed-spaces-and-tabs": "error", - "no-multi-spaces": "error", - "no-multi-str": "error", - "no-multiple-empty-lines": ["error", { "max": 1, "maxEOF": 0 }], - "no-negated-in-lhs": "error", - "no-new": "off", - "no-new-func": "error", - "no-new-object": "error", - "no-new-require": "error", - "no-new-symbol": "error", - "no-new-wrappers": "error", - "no-obj-calls": "error", - "no-octal": "error", - "no-octal-escape": "error", - "no-path-concat": "error", - "no-proto": "error", - "no-redeclare": ["error", { "builtinGlobals": false }], - "no-regex-spaces": "error", - "no-return-assign": "off", - "no-self-assign": "off", - "no-self-compare": "error", - "no-sequences": "error", - "no-shadow-restricted-names": "error", - "no-sparse-arrays": "error", - "no-tabs": "error", - "no-template-curly-in-string": "off", - "no-this-before-super": "error", - "no-throw-literal": "off", - "no-trailing-spaces": "error", - "no-undef": "error", - "no-undef-init": "error", - "no-unexpected-multiline": "error", - "no-unmodified-loop-condition": "error", - "no-unneeded-ternary": ["error", { "defaultAssignment": false }], - "no-unreachable": "error", - "no-unsafe-finally": 0, - "no-unsafe-negation": "error", - "no-unused-expressions": ["error", { "allowShortCircuit": true, "allowTernary": true, "allowTaggedTemplates": true }], - "no-unused-vars": ["error", { "vars": "all", "args": "none", "ignoreRestSiblings": true }], - "no-use-before-define": ["error", { "functions": false, "classes": false, "variables": false }], - "no-useless-call": "error", - "no-useless-computed-key": "error", - "no-useless-constructor": "error", - "no-useless-escape": "error", - "no-useless-rename": "error", - "no-useless-return": "error", - "no-void": "error", - "no-whitespace-before-property": "error", - "no-with": "error", - "nonblock-statement-body-position": [2, "below"], - "object-curly-newline": "off", - "object-curly-spacing": "off", - "object-property-newline": ["error", { "allowMultiplePropertiesPerLine": true }], - "one-var": ["error", { "initialized": "never" }], - "operator-linebreak": "off", - "padded-blocks": ["error", { "blocks": "never", "switches": "never", "classes": "never" }], - "prefer-const": ["error", {"destructuring": "all"}], - "prefer-promise-reject-errors": "error", - "quote-props": ["error", "as-needed"], - "quotes": ["error", "single", { "avoidEscape": true, "allowTemplateLiterals": true }], - "rest-spread-spacing": ["error", "never"], - "semi": ["error", "never"], - "semi-spacing": ["error", { "before": false, "after": true }], - "space-before-blocks": ["error", "always"], - "space-before-function-paren": ["error", "always"], - "space-in-parens": ["error", "never"], - "space-infix-ops": "error", - "space-unary-ops": ["error", { "words": true, "nonwords": false }], - "spaced-comment": ["error", "always", { - "line": { "markers": ["*package", "!", "/", ",", "="] }, - "block": { "balanced": true, "markers": ["*package", "!", ",", ":", "::", "flow-include"], "exceptions": ["*"] } - }], - "symbol-description": "error", - "template-curly-spacing": ["error", "never"], - "template-tag-spacing": ["error", "never"], - "unicode-bom": ["error", "never"], - "use-isnan": "error", - "valid-typeof": ["error", { "requireStringLiterals": true }], - "wrap-iife": ["error", "any", { "functionPrototypeMethods": true }], - "yield-star-spacing": ["error", "both"], - "yoda": ["error", "never"], - - "import/export": "error", - "import/first": "error", - "import/no-absolute-path": ["error", { "esmodule": true, "commonjs": true, "amd": false }], - "import/no-duplicates": "error", - "import/no-named-default": "error", - "import/no-webpack-loader-syntax": "error", - - "node/no-deprecated-api": "error", - "node/process-exit-as-throw": "error", - - "promise/param-names": "off", - - "standard/no-callback-literal": "error" - } -} diff --git a/deps/npm/.licensee.json b/deps/npm/.licensee.json deleted file mode 100644 index 05235667ca2df0..00000000000000 --- a/deps/npm/.licensee.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "licenses": { - "spdx": [ - "CC-BY-3.0" - ], - "blueOak": "bronze" - }, - "corrections": true -} diff --git a/deps/npm/.mailmap b/deps/npm/.mailmap deleted file mode 100644 index 725a59da655908..00000000000000 --- a/deps/npm/.mailmap +++ /dev/null @@ -1,77 +0,0 @@ -Alex K. Wolfe -Andrew Bradley -Andrew Lunny -Arlo Breault -Ashley Williams -Ashley Williams -Benjamin Coe -Benjamin Coe -Brian White -Cedric Nelson -Charlie Robbins -Claudia Hernández -Dalmais Maxence -Danila Gerasimov -Dave Galbraith -David Beitey -David Rousselie -Domenic Denicola -Einar Otto Stangvik -Emma Ramirez -Erik Wienhold -Evan Lucas -Evan Lucas -Faiq Raza -Forbes Lindesay -Forrest L Norvell -Forrest L Norvell -Gabriel Barros -Geoff Flarity -Gregers Gram Rygg -Ifeanyi Oraelosi -isaacs -isaacs -isaacs -Jake Verbaten -James Sanders -James Treworgy -Jason Smith -Jed Fox -Jonas Weber -Joshua Bennett -Joshua Bennett -Julien Meddah -Kat Marchán -Kevin Lorenz -Kris Windham -Leonardo Rojas -Lin Clark -Luke Arduini -Maciej Małecki -Martin Ek -Max Goodman -Maxim Bogushevich -Maximilian Antoni -Michael Hayes -Misha Kaletsky -Nicolas Morel -Olivier Melcher -Ra'Shaun Stovall -Rebecca Turner -Rebecca Turner -Ryan Emery -Sam Mikes -Sreenivas Alapati -Stephanie Snopek -Takaya Kobayashi -Ted Yavuzkurt -Thomas Reggi -Timo Weiß -Tony -Trent Mick -Visnu Pitiyanuvath -Will Elwood -Wout Mertens -Yeonghoon Park -Zeke Sikelianos -Zoujie Wzj diff --git a/deps/npm/.npmignore b/deps/npm/.npmignore deleted file mode 100644 index aacaa8f822e7ce..00000000000000 --- a/deps/npm/.npmignore +++ /dev/null @@ -1,29 +0,0 @@ -*.swp -.*.swp -netlify.toml -npm-debug.log -/.github -/test -node_modules/marked -node_modules/marked-man -node_modules/tap -tap-snapshots -node_modules/.bin -node_modules/npm-registry-mock -/npmrc -/release/ - -# don't need these in the npm package. -html/*.png - -# don't ignore .npmignore files -# these are used in some tests. -!.npmignore - -/npm-*.tgz - -*.pyc - -Session.vim -.nyc_output -/.editorconfig diff --git a/deps/npm/.npmrc b/deps/npm/.npmrc deleted file mode 100644 index e69de29bb2d1d6..00000000000000 diff --git a/deps/npm/AUTHORS b/deps/npm/AUTHORS deleted file mode 100644 index 008d9099561199..00000000000000 --- a/deps/npm/AUTHORS +++ /dev/null @@ -1,741 +0,0 @@ -# Authors sorted by whether or not they're me -isaacs -Steve Steiner -Mikeal Rogers -Aaron Blohowiak -Martyn Smith -Charlie Robbins -Francisco Treacy -Cliffano Subagio -Christian Eager -Dav Glass -Alex K. Wolfe -James Sanders -Reid Burke -Arlo Breault -Timo Derstappen -Bart Teeuwisse -Ben Noordhuis -Tor Valamo -Whyme.Lyu <5longluna@gmail.com> -Olivier Melcher -Tomaž Muraus -Evan Meagher -Orlando Vazquez -Kai Chen -George Miroshnykov -Geoff Flarity -Max Goodman -Pete Kruckenberg -Laurie Harper -Chris Wong -Scott Bronson -Federico Romero -Visnu Pitiyanuvath -Irakli Gozalishvili -Mark Cahill -Tony -Iain Sproat -Trent Mick -Felix Geisendörfer -Jameson Little -Conny Brunnkvist -Will Elwood -Dean Landolt -Oleg Efimov -Martin Cooper -Jann Horn -Andrew Bradley -Maciej Małecki -Stephen Sugden -Michael Budde -Jason Smith -Gautham Pai -David Trejo -Paul Vorbach -George Ornbo -Tim Oxley -Tyler Green -Dave Pacheco -Danila Gerasimov -Rod Vagg -Christian Howe -Andrew Lunny -Henrik Hodne -Adam Blackburn -Kris Windham -Jens Grunert -Joost-Wim Boekesteijn -Dalmais Maxence -Marcus Ekwall -Aaron Stacy -Phillip Howell -Domenic Denicola -James Halliday -Jeremy Cantrell -Ribettes -Don Park -Einar Otto Stangvik -Kei Son -Nicolas Morel -Mark Dube -Nathan Rajlich -Maxim Bogushevich -Meaglin -Ben Evans -Nathan Zadoks -Brian White -Jed Schmidt -Ian Livingstone -Patrick Pfeiffer -Paul Miller -Ryan Emery -Carl Lange -Jan Lehnardt -Stuart P. Bentley -Johan Sköld -Stuart Knightley -Niggler -Paolo Fragomeni -Jaakko Manninen -Luke Arduini -Larz Conwell -Marcel Klehr -Robert Kowalski -Forbes Lindesay -Vaz Allen -Jake Verbaten -Schabse Laks -Florian Margaine -Johan Nordberg -Ian Babrou -Di Wu -Mathias Bynens -Matt McClure -Matt Lunn -Alexey Kreschuk -elisee -Robert Gieseke -François Frisch -Trevor Burnham -Alan Shaw -TJ Holowaychuk -Nicholas Kinsey -Paulo Cesar -Elan Shanker -Jon Spencer -Jason Diamond -Maximilian Antoni -Thom Blake -Jess Martin -Spain Train -Alex Rodionov -Matt Colyer -Evan You -bitspill -Gabriel Falkenberg -Alexej Yaroshevich -Quim Calpe -Steve Mason -Wil Moore III -Sergey Belov -Tom Huang -CamilleM -Sébastien Santoro -Evan Lucas -Quinn Slack -Alex Kocharin -Daniel Santiago -Denis Gladkikh -Andrew Horton -Zeke Sikelianos -Dylan Greene -Franck Cuny -Yeonghoon Park -Rafael de Oleza -Mikola Lysenko -Yazhong Liu -Neil Gentleman -Kris Kowal -Alex Gorbatchev -Shawn Wildermuth -Wesley de Souza -yoyoyogi -J. Tangelder -Jean Lauliac -Andrey Kislyuk -Thorsten Lorenz -Julian Gruber -Benjamin Coe -Alex Ford -Matt Hickford -Sean McGivern -C J Silverio -Robin Tweedie -Miroslav Bajtoš -David Glasser -Gianluca Casati -Forrest L Norvell -Karsten Tinnefeld -Bryan Burgers -David Beitey -Evan You -Zach Pomerantz -Chris Williams -sudodoki -Mick Thompson -Felix Rabe -Michael Hayes -Chris Dickinson -Bradley Meck -GeJ -Andrew Terris -Michael Nisi -fengmk2 -Adam Meadows -Chulki Lee -不四 -dead_horse -Kenan Yildirim -Laurie Voss -Rebecca Turner -Hunter Loftis -Peter Richardson -Jussi Kalliokoski -Filip Weiss -Timo Weiß -Christopher Hiller -Jérémy Lal -Anders Janmyr -Chris Meyers -Ludwig Magnusson -Wout Mertens -Nick Santos -Terin Stock -Faiq Raza -Thomas Torp -Sam Mikes -Mat Tyndall -Tauren Mills -Ron Martinez -Kazuhito Hokamura -Tristan Davies -David Volm -Lin Clark -Ben Page -Jeff Jo -martinvd -Mark J. Titorenko -Oddur Sigurdsson -Eric Mill -Gabriel Barros -KevinSheedy -Aleksey Smolenchuk -Ed Morley -Blaine Bublitz -Andrey Fedorov -Daijiro Wachi -Luc Thevenard -Aria Stewart -Charlie Rudolph -Vladimir Rutsky -Isaac Murchie -Marcin Wosinek -David Marr -Bryan English -Anthony Zotti -Karl Horky -Jordan Harband -Guðlaugur Stefán Egilsson -Helge Skogly Holm -Peter A. Shevtsov -Alain Kalker -Bryant Williams -Jonas Weber -Tim Whidden -Andreas -Karolis Narkevicius -Adrian Lynch -Richard Littauer -Oli Evans -Matt Brennan -Jeff Barczewski -Danny Fritz -Takaya Kobayashi -Ra'Shaun Stovall -Julien Meddah -Michiel Sikma -Jakob Krigovsky -Charmander <~@charmander.me> -Erik Wienhold -James Butler -Kevin Kragenbrink -Arnaud Rinquin -Mike MacCana -Antti Mattila -laiso -Matt Zorn -Kyle Mitchell -Jeremiah Senkpiel -Michael Klein -Simen Bekkhus -Victor -thefourtheye -Clay Carpenter -bangbang93 -Nick Malaguti -Cedric Nelson -Kat Marchán -Andrew -Eduardo Pinho -Rachel Hutchison -Ryan Temple -Eugene Sharygin -James Talmage -jane arc -Joseph Dykstra -Andrew Crites -Joshua Egan -Carlos Alberto -Thomas Cort -Thaddee Tyl -Steve Klabnik -Andrew Murray -Stephan Bönnemann -Kyle M. Tarplee -Derek Peterson -Greg Whiteley -murgatroid99 -Marcin Cieslak -João Reis -Matthew Hasbach -Jon Hall -Anna Henningsen -James Treworgy -James Hartig -Stephanie Snopek -Kent C. Dodds -Aaron Krause -Daniel K O'Leary -fscherwi -Thomas Reggi -Thomas Michael McTiernan -Jason Kurian -Sebastiaan Deckers -lady3bean -Tomi Carr -Juan Caicedo -Ashley Williams -Andrew Marcinkevičius -Jorrit Schippers -Alex Lukin -Aria Stewart -Tiago Rodrigues -Tim -Nick Williams -Louis Larry -Ben Gotow -Jakub Gieryluk -Kevin Lorenz -Martin von Gagern -Eymen Gunay -Martin Ek -Rafał Pocztarski -Mark Reeder -Chris Rebert -Scott Addie -Jeff McMahan -Tim Krins -Hal Henke -Julian Simioni -Jimb Esser -Alexis Campailla -Chris Chua -Beau Gunderson -Dave Galbraith -s100 -Sergey Simonchik -Vanja Radovanović -Jonathan Persson -Vedat Mahir YILMAZ -Samuel Reed -Rafał Legiędź -Jan Schär -Xcat Liu -harryh -Prayag Verma -Neil Kistner -Zoujie Wzj -Ryan Hendrickson -Arturo Coronel -Hutson Betts -Lewis Cowper -Adam Byrne -Ifeanyi Oraelosi -Robert Ludwig -Chris Warren -Scott Plumlee -Daniel Pedersen -rhgb -doug.wade -Zac -GriffinSchneider -Andres Kalle -thefourtheye -Yael -Yann Odeyer -James Monger -Thomas Hallock -Paul Irish -Paul O'Leary McCann -Francis Gulotta -Felix Rieseberg -Glen Mailer -Federico Brigante -Steve Mao -Anna Henningsen -Rachel Evans -Sam Minnee -Zirak -Daniel Lupu -Gianluca Casati -André Herculano -Wyatt Preul -Myles Borins -Elliot Lee -Dmitry Kirilyuk -Aaron Tribou -Tapani Moilanen -Han Seoul-Oh -Aleksey Shvayka -Emma Ramirez -Julian Duque -Simon MacDonald -Adam Stankiewicz -Gregers Gram Rygg -Peter Dave Hello -Jordan Klassen -Jason Palmer -Michael Hart -Sasha Koss -David Emmerson -Christophe Hurpeau -Daniel Paz-Soldan -Sakthipriyan Vairamani -Zach Renner -Christopher Hiller -Joshua Bennett -Andrew Meyer -Michael Jasper -Max -Szymon Nowak -Jason Karns -Lucas Holmquist -Ionică Bizău -Alex Chesters -Robert Gay -Steven -Tim Caswell -Anna Henningsen -Kim Røen -Douglas Wilson -Mike Engel -baderbuddy -Alex Jordan -Ville Lahdenvuo -Natalie Wolfe -Andrew Schmadel -Jonah Moses -Daijirō Wachi -Dmitry Litvinchenko -chocolateboy -Henry Zhu -Nate Goldman -Ted Yavuzkurt -Arseniy Maximov -Evgeny Kulikov -Сковорода Никита Андреевич -Carol (Nichols || Goulding) -Jarid Margolin -David Cook -Brian Dukes -Jed Fox -Pavlo Liulia -Ján Dzurek -Lucas Theisen -Mike Sherov -薛定谔的猫 -Paweł Lula -Jakob Krigovsky -George Rawlinson -Jack Nagel -Andreas Kohn -Jason Wohlgemuth -Ryan Graham -Hirse -Colin Rotherham -Aki -Emily Marigold Klassen -Ramana Venkata -kierendixon -Rácz Tibor Zoltán -Guangcong Luo -Steven -Jan Pilzer -Leonard Martin -Teddy Katz -Simon Legg -Kin Lum -David Rousselie -Jože Mlakar -happylynx -Dominic Watson -Enrico Weigelt, metux IT consult -Brian Beck -Ramana Venkata -Misha Kaletsky -Andrew Schmadel -AJ Jordan -Mark Banner -Richard Simko -Sanketh Katta -Tim Needham -Leonardo Rojas -Mark Peter Fejes -Ryan Florence -MichaelQQ -Anders D. Johnson -Benjamin Fernandes -Simon Kurtz -David Goss -Luis Gustavo Pereira -Amos Wenger -Samuel Marks -Victor Travieso -Joshua Chaitin-Pollak -Brendan Warkentin -Scott Santucci -Xavier Cambar -Vikram -Igor Nadj -Tong Li -tripu -Carsten Brandt -Marcin Szczepanski -Josh Clow -Jakub Holy -Alexandra Ulsh -Tom MacWright -Felicio Mununga -Gabor Szabo -Andreas Müller -Andrew Pitman -Jacob Wejendorp -Alejandro López -Victor Belozyorov -Bradley Farias -Kyle E. Mitchell -Tuan Anh Tran -Nathan Woltman -Kyra -Leаh Neukirchen -Kyle Spier-Swenson -Joe Bowbeer -Nalin Bhardwaj <6984346+nalinbhardwaj@users.noreply.github.com> -Nicolas Garnier -Vladislav Rassokhin -Josh Goldberg -laggingreflex -Kristofer Selbekk -Sreenivas Alapati -Ben Creasy -Allan Kimmer Jensen -rinfan -Matt Hoyle -Mason Pawsey -Johannes Bader -Michael Zabka -Bruce MacNaughton -Christopher Patty -Max Stoiber -Enrico Weigelt -David Hu -Steven R. Loomis -Julien Deniau -Prasanna Venkatesh T S -Alec Larson -John-David Dalton -Raymond Feng -Tieme van Veen -Finn Pauls -Jeremy Kahn -Mertcan Mermerkaya -Will Yardley -Matt Travi -Solomon Victorino -Rich Trott -Maksym Kobieliev -Thomas Reggi -David Gilbertson -Rob Lourens -Karan Thakkar -Howard T. Chiam -Geoffrey Mattie -Luis Lobo Borobia -Aaron Tribou -刘祺 -Brad Johnson -Artem Varaksa -Mary -Darryl Pogue -Rick Schubert -Daniel W -XhmikosR -Martin Kühl -Valentin Ouvrard -Noah Benham -Brian Olore -Mat Warger -Federico Rampazzo -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 -乱序 -Audrey Eschright -Xu Meng -George -Beni von Cheni -Frédéric Harper -Johannes Würbach -ƇʘƁ̆ąƇ́ -Eli Doran -Tobias Koppers -Grey Baker -JT Turner -Audrey Eschright -Alexander Gudulin -Philipp Hagemeister -Amadou Sall -Chris Manson -vlasy -Emilis Dambauskas (Tokenmill) -George Czabania -Jonathan Underwood -Nick Graef -James George -John O'Sullivan -ossdev -Raphael Goulais -COURIER, CALEB [AG/1000] -CalebCourier -Florian Keller -Sreeram Jayan ---get -raywu0123 -Iván Reinoso García -Roy Marples -Robert James Gabriel -John Firebaugh -Kitten King -Claudia Hernández -Artem Sapegin -Márton Salomváry -gall0ws -Olivier Chevet -Maël Nison -Sara Ahbabou -Gareth Jones -Ruy Adorno -Michael Perrotte -Ben Blank -Christian Clauss -Nikita Lebedev -Henrik Gemal -Philip Harrison -Jason Etcovitch -Darcy Clarke -orion -NoDocCat -joan xie -Amal Hussein -Brett Zamir -Menelaos Kotsollaris -Mehdi Hasan Khan -Craig Loewen -Fighting-Jack <574637316@qq.com> -Bakel, Roel van -Charlie West-Toebe <38671683+Hoidberg@users.noreply.github.com> -Richard Lau -Felix Yan -Zhenya Vinogradov -Rafael Hengles -Jan-Philip Gehrcke -Caleb Sacks <16855387+clabe45@users.noreply.github.com> -Kyle Getz -Sean Healy -Netanel Gilad -Dave Nicolson -Ajay Narain Mathur -Vitaliy Markitanov <9357021+vit100@users.noreply.github.com> -simon_s -John Kennedy -Bernard Kitchens -Jarda Snajdr -Naix Geng <1308363651@qq.com> -Dylan Treisman -mum-never-proud -Pablo Cúbico -Peter Fich -Maxwell Gerber -Sean Poulter -vanishcode -Timo Sand -Jean-Charles Sisk -Martin Packman -Danielle Adams -Edward Thomson -Masafumi Koba -Gianfranco Costamagna -Antonio -Sandra Tatarevićová -Antoine du Hamel -Assaf Sapir -jamesgeorge007 -Lukas Spieß -Mickael Jeanroy -Myles Borins -Nathan LaFreniere -Lucio Martinez -Brian Jenkins -nlf -zhaoxuxu -liuye.adam -Michaël Zasso -Gareth Jones -Jake Champion -takenspc -iraj -Michele Azzolari -foxxyz -Dr -Jan Tojnar -Jason Attwood -Vlad GURDIGA -Sébastien Puech -Jannis Hell -Hollow Man -kai zhu -Alex Woollam -Daniel Fischer -Yash-Singh1 diff --git a/deps/npm/CHANGELOG.md b/deps/npm/CHANGELOG.md deleted file mode 100644 index 8c15d7658ed871..00000000000000 --- a/deps/npm/CHANGELOG.md +++ /dev/null @@ -1,1410 +0,0 @@ -## 7.1.1 (2020-12-08) - -### DEPENDENCIES - -* [`bf09e719c`](https://github.com/npm/cli/commit/bf09e719c7f563a255b1e9af6b1237ebc5598db6) - `@npmcli/arborist@2.0.0` - * Much stricter tree integrity guarantees - * Fix issues where the root project is a symlink, or linked as a - workspace -* [`7ceb5b728`](https://github.com/npm/cli/commit/7ceb5b728b9f326c567f5ffe5831c9eccf013aa0) - `ini@1.3.6` -* [`77c6ced2a`](https://github.com/npm/cli/commit/77c6ced2a6daaadbff715c8f05b2e61ba76e9bab) - `make-fetch-happen@8.0.11` - * Avoid caching headers that are hazardous or unnecessary to leave - lying around (authorization, npm-session, etc.) - * [#38](https://github.com/npm/make-fetch-happen/pull/38) Include query - string in cache key ([@jpb](https://github.com/jpb)) -* [`0ef25b6cd`](https://github.com/npm/cli/commit/0ef25b6cd2921794d36f066e2b11c406342cf167) - `libnpmsearch@3.1.0`: - * Update to accept query params as options, so we can paginate. - ([@nlf](https://github.com/nlf)) -* [`518a66450`](https://github.com/npm/cli/commit/518a664500bcde30475788e8c1c3e651f23e881b) - `@npmcli/config@1.2.4`: - * Do not allow path options to be set to a boolean `false` value -* [`3d7aff9d8`](https://github.com/npm/cli/commit/3d7aff9d8dd1cf29956aa306464cd44fbc2af426) - update all dependencies using latest npm to install them - -### TESTS - -* [`2848f5940`](https://github.com/npm/cli/commit/2848f594034b87939bfc5546e3e603f123d98a01) - [npm/statusboard#173](https://github.com/npm/statusboard/issues/173) - [#2293](https://github.com/npm/cli/issues/2293) npm shrinkwrap - ([@ruyadorno](https://github.com/ruyadorno)) -* [`f6824459a`](https://github.com/npm/cli/commit/f6824459ae0c86e2fa9c84b3dcec85f572ae8e1b) - [#2302](https://github.com/npm/cli/issues/2302) npm deprecate - ([@nlf](https://github.com/nlf)) -* [`b7d74b627`](https://github.com/npm/cli/commit/b7d74b627859f08fca23209d6e0d3ec6657a4489) - [npm/statusboard#180](https://github.com/npm/statusboard/issues/180) - [#2304](https://github.com/npm/cli/issues/2304) npm unpublish - ([@ruyadorno](https://github.com/ruyadorno)) - -### FEATURES - -* [`3db90d944`](https://github.com/npm/cli/commit/3db90d94474f673591811fdab5eb6a5bfdeba261) - [#2303](https://github.com/npm/cli/issues/2303) allow for passing object - keys to searchopts to allow pagination ([@nlf](https://github.com/nlf)) - -## 7.1.0 (2020-12-04) - -### FEATURES - -* [`6b1575110`](https://github.com/npm/cli/commit/6b15751106beb99234aa4bf39ae05cf40076d42a) - [#2237](https://github.com/npm/cli/pull/2237) - add `npm set-script` command - ([@Yash-Singh1](https://github.com/Yash-Singh1)) -* [`15d7333f8`](https://github.com/npm/cli/commit/15d7333f832e3d68ae16895569f27a27ef86573e) - add interactive `npm exec` - ([@isaacs](https://github.com/isaacs)) - -### BUG FIXES - -* [`2a1192e4b`](https://github.com/npm/cli/commit/2a1192e4b03acdf6e6e24e58de68f736ab9bb35f) - [#2202](https://github.com/npm/cli/pull/2202) - Do not run interactive `npm exec` in CI when a TTY - ([@isaacs](https://github.com/isaacs)) - -### DOCUMENTATION - -* [`0599cc37d`](https://github.com/npm/cli/commit/0599cc37df453bf79d47490eb4fca3cd63f67f80) - [#2271](https://github.com/npm/cli/pull/2271) - don't wrap code block - ([@ethomson](https://github.com/ethomson)) - -### DEPENDENCIES - -* [`def85c726`](https://github.com/npm/cli/commit/def85c72640ffe2d27977c56b7aa06c6f6346ca9) - `@npmcli/arborist@1.0.14` - * fixes running `npm exec` from file system root folder -* [`4c94673ab`](https://github.com/npm/cli/commit/4c94673ab5399d27e5a48e52f7a65b038a456265) - `semver@7.3.4` - -## 7.0.15 (2020-11-27) - -### DEPENDENCIES - -* [`00e6028ef`](https://github.com/npm/cli/commit/00e6028ef83bf76eaae10241fd7ba59e39768603) - `@npmcli/arborist@1.0.13` - * do not override user-defined shorthand values when saving `package.json` - -### BUG FIXES - -* [`9c3413fbc`](https://github.com/npm/cli/commit/9c3413fbcb37e79fc0b3d980e0b5810d7961277c) - [#2034](https://github.com/npm/cli/issues/2034) - [#2245](https://github.com/npm/cli/issues/2245) - `npm link ` should not save `package.json` - ([@ruyadorno](https://github.com/ruyadorno)) - -### DOCUMENTATION - -* [`1875347f9`](https://github.com/npm/cli/commit/1875347f9f4f2b50c28fe8857c5533eeebf42da2) - [#2196](https://github.com/npm/cli/issues/2196) - remove doc on obsolete `unsafe-perm` flag - ([@kaizhu256](https://github.com/kaizhu256)) -* [`f51e50603`](https://github.com/npm/cli/commit/f51e5060340c783a8a00dadd98e5786960caf43f) - [#2200](https://github.com/npm/cli/issues/2200) - `config.md` cleanup - ([@alexwoollam](https://github.com/alexwoollam)) -* [`997cbdb40`](https://github.com/npm/cli/commit/997cbdb400bcd22e457e8a06b69a7be697cfd66d) - [#2238](https://github.com/npm/cli/issues/2238) - Fix broken link to `package.json` documentation - ([@d-fischer](https://github.com/d-fischer)) -* [`9da972dc4`](https://github.com/npm/cli/commit/9da972dc44c21cf0e337f1c3fca44eb9df3e40d5) - [#2241](https://github.com/npm/cli/issues/2241) - `npm star` docs cleanup - ([@ruyadorno](https://github.com/ruyadorno)) - -## 7.0.14 (2020-11-23) - -### DEPENDENCIES -* [`09d21ab90`](https://github.com/npm/cli/commit/09d21ab903dcfebdfd446b8b29ad46c425b6510e) - `@npmcli/run-script@1.8.1` - - fix a regression in how scripts are escaped - -## 7.0.13 (2020-11-20) - -### BUG FIXES -* [`5fc56b6db`](https://github.com/npm/cli/commit/5fc56b6dbcc7d7d1463a761abb67d2fc16ad3657) - [npm/statusboard#174](https://github.com/npm/statusboard/issues/174) - [#2204](https://github.com/npm/cli/issues/2204) - fix npm unstar command - ([@ruyadorno](https://github.com/ruyadorno)) -* [`7842b4d4d`](https://github.com/npm/cli/commit/7842b4d4dca1e076b0d26d554f9dce67484cd7be) - [npm/statusboard#182](https://github.com/npm/statusboard/issues/182) - [#2205](https://github.com/npm/cli/issues/2205) - fix npm version usage output - ([@ruyadorno](https://github.com/ruyadorno)) -* [`a0adbf9f8`](https://github.com/npm/cli/commit/a0adbf9f8f77531fcf81ae31bbc7102698765ee3) - [#2206](https://github.com/npm/cli/issues/2206) - [#2213](https://github.com/npm/cli/issues/2213) - fix: fix flatOptions usage in npm init - ([@ruyadorno](https://github.com/ruyadorno)) - -### DEPENDENCIES - -* [`3daaf000a`](https://github.com/npm/cli/commit/3daaf000aee0ba81af855977d7011850e79099e6) - `@npmcli/arborist@1.0.12` - - fixes some windows specific bugs in how paths are handled and compared - -### DOCUMENTATION - -* [`084a7b6ad`](https://github.com/npm/cli/commit/084a7b6ad6eaf9f2d92eb05da93e745f5357cce2) - [#2210](https://github.com/npm/cli/issues/2210) - docs: Fix typo - ([@HollowMan6](https://github.com/HollowMan6)) - -## 7.0.12 (2020-11-17) - -### BUG FIXES - -* [`7b89576bd`](https://github.com/npm/cli/commit/7b89576bd1fa557a312a841afa66b895558d1b12) - [#2174](https://github.com/npm/cli/issues/2174) - fix running empty scripts with `npm run-script` - ([@nlf](https://github.com/nlf)) -* [`bc9afb195`](https://github.com/npm/cli/commit/bc9afb195f5aad7c06bc96049c0f00dc8e752dee) - [#2002](https://github.com/npm/cli/issues/2002) - [#2184](https://github.com/npm/cli/issues/2184) - Preserve builtin conf when installing npm globally - ([@isaacs](https://github.com/isaacs)) - -### DEPENDENCIES - -* [`b74c05d88`](https://github.com/npm/cli/commit/b74c05d88dc48fabef031ea66ffaa4e548845655) - `@npmcli/run-script@1.8.0` - * fix windows command-line argument escaping - -### DOCUMENTATION - -* [`4e522fdc9`](https://github.com/npm/cli/commit/4e522fdc917bc85af2ca8ff7669a0178e2f35123) - [#2179](https://github.com/npm/cli/issues/2179) - remove mention to --parseable option from `npm audit` docs - ([@Primajin](https://github.com/Primajin)) - -## 7.0.11 (2020-11-13) - -### DEPENDENCIES - -* [`629a667a9`](https://github.com/npm/cli/commit/629a667a9b30b0b870075da965606979622a5e2e) - `eslint@7.13.0` -* [`de9891bd2`](https://github.com/npm/cli/commit/de9891bd2a16fe890ff5cfb140c7b1209aeac0de) - `eslint-plugin-standard@4.1.0` -* [`c3e7aa31c`](https://github.com/npm/cli/commit/c3e7aa31c565dfe21cd1f55a8433bfbcf58aa289) - [#2123](https://github.com/npm/cli/issues/2123) - [#1957](https://github.com/npm/cli/issues/1957) - `@npmcli/arborist@1.0.11` - -### BUG FIXES - -* [`a8aa38513`](https://github.com/npm/cli/commit/a8aa38513ad5c4ad44e6bb3e1499bfc40c31e213) - [#2134](https://github.com/npm/cli/issues/2134) - [#2156](https://github.com/npm/cli/issues/2156) - Fix `cannot read property length of undefined` in `ERESOLVE` explanation code - ([@isaacs](https://github.com/isaacs)) -* [`1dbf0f9bb`](https://github.com/npm/cli/commit/1dbf0f9bb26ba70f4c6d0a807701d7652c31d7d4) - [#2150](https://github.com/npm/cli/issues/2150) - [#2155](https://github.com/npm/cli/issues/2155) - send json errors to stderr, not stdout - ([@isaacs](https://github.com/isaacs)) -* [`fd1d7a21b`](https://github.com/npm/cli/commit/fd1d7a21b247bb35d112c51ff8d8a06fd83c8b44) - [#1927](https://github.com/npm/cli/issues/1927) - [#2154](https://github.com/npm/cli/issues/2154) - Set process.title a bit more usefully - ([@isaacs](https://github.com/isaacs)) -* [`2a80c67ef`](https://github.com/npm/cli/commit/2a80c67ef8c12c3d9d254f5be6293a6461067d99) - [#2008](https://github.com/npm/cli/issues/2008) - [#2153](https://github.com/npm/cli/issues/2153) - Support legacy auth tokens for registries that use them - ([@ruyadorno](https://github.com/ruyadorno)) -* [`786e36404`](https://github.com/npm/cli/commit/786e36404068fd51657ddac766e066a98754edbf) - [#2017](https://github.com/npm/cli/issues/2017) - [#2159](https://github.com/npm/cli/issues/2159) - pass all options to Arborist for `npm ci` - ([@darcyclarke](https://github.com/darcyclarke)) -* [`b47ada7d1`](https://github.com/npm/cli/commit/b47ada7d1623e9ee586ee0cf781ee3ac5ea3c223) - [#2161](https://github.com/npm/cli/issues/2161) - fixed typo - ([@scarabedore](https://github.com/scarabedore)) - -## 7.0.10 (2020-11-10) - -### DOCUMENTATION - -* [`e48badb03`](https://github.com/npm/cli/commit/e48badb03058286a557584d7319db4143049cc6b) - [#2148](https://github.com/npm/cli/issues/2148) - Fix link in documentation - ([@gurdiga](https://github.com/gurdiga)) - -### BUG FIXES - -* [`8edbbdc70`](https://github.com/npm/cli/commit/8edbbdc706694fa32f52d0991c76ae9f207b7bbc) - [#1972](https://github.com/npm/cli/issues/1972) - Support exec auto pick bin when all bin is alias - ([@dr-js](https://github.com/dr-js)) - -### DEPENDENCIES - -* [`04a3e8c10`](https://github.com/npm/cli/commit/04a3e8c10c3f38e1c7a35976d77c2929bdc39868) - [#1962](https://github.com/npm/cli/issues/1962) - `@npmcli/arborist@1.0.10`: - * prevent self-assignment of parent/fsParent - * Support update options in global package space - -## 7.0.9 (2020-11-06) - -### BUG FIXES - -* [`96a0d2802`](https://github.com/npm/cli/commit/96a0d2802d3e619c6ea47290f5c460edfe94070a) - default the 'start' script when server.js present - ([@isaacs](https://github.com/isaacs)) -* [`7716e423e`](https://github.com/npm/cli/commit/7716e423ee92a81730c0dfe5b9ecb4bb41a3f947) - [#2075](https://github.com/npm/cli/issues/2075) - [#2071](https://github.com/npm/cli/issues/2071) print the registry when - using 'npm login' ([@Wicked7000](https://github.com/Wicked7000)) -* [`7046fe10c`](https://github.com/npm/cli/commit/7046fe10c5035ac57246a31ca8a6b09e3f5562bf) - [#2122](https://github.com/npm/cli/issues/2122) tests for `npm cache` - command ([@nlf](https://github.com/nlf)) - -### DEPENDENCIES - -* [`74325f53b`](https://github.com/npm/cli/commit/74325f53b9d813b0e42203c037189418fad2f64a) - [#2124](https://github.com/npm/cli/issues/2124) - `@npmcli/run-script@1.7.5`: - * Export the `isServerPackage` method - * Proxy signals to and from foreground child processes -* [`0e58e6f6b`](https://github.com/npm/cli/commit/0e58e6f6b8f0cd62294642a502c17561aaf46553) - [#1984](https://github.com/npm/cli/issues/1984) - [#2079](https://github.com/npm/cli/issues/2079) - [#1923](https://github.com/npm/cli/issues/1923) - [#606](https://github.com/npm/cli/issues/606) - [#2031](https://github.com/npm/cli/issues/2031) `@npmcli/arborist@1.0.9`: - * Process deps for all link nodes - * Use junctions instead of symlinks - * Use @npmcli/move-file instead of fs.rename -* [`1dad328a1`](https://github.com/npm/cli/commit/1dad328a17d93def7799545596b4eba9833b35aa) - [#1865](https://github.com/npm/cli/issues/1865) - [#2106](https://github.com/npm/cli/issues/2106) - [#2084](https://github.com/npm/cli/issues/2084) `pacote@11.1.13`: - * Properly set the installation command for `prepare` scripts when - installing git/dir deps -* [`e090d706c`](https://github.com/npm/cli/commit/e090d706ca637d4df96d28bff1660590aa3f3b62) - [#2097](https://github.com/npm/cli/issues/2097) `libnpmversion@1.0.7`: - * Do not crash when the package.json file lacks a 'version' field -* [`8fa541a10`](https://github.com/npm/cli/commit/8fa541a10dbdc09376175db7a378cc9b33e8b17b) - `cmark-gfm@0.8.4` - -## 7.0.8 (2020-11-03) - -### DOCUMENTATION - -* [`052e977b9`](https://github.com/npm/cli/commit/052e977b9d071e1b3654976881d10cd3ddcba788) - [#1822](https://github.com/npm/cli/issues/1822) - [#1247](https://github.com/npm/cli/issues/1247) - add section on peerDependenciesMeta field in package.json - ([@foxxyz](https://github.com/foxxyz)) -* [`52d32d175`](https://github.com/npm/cli/commit/52d32d1758c5ebc58944a1e8d98d57e30048e527) - [#1970](https://github.com/npm/cli/issues/1970) - match npm-exec.md -p usage with lib/exec.js - ([@dr-js](https://github.com/dr-js)) -* [`48ee8d01e`](https://github.com/npm/cli/commit/48ee8d01edd11ed6186c483e1169ff4d2070b963) - [#2096](https://github.com/npm/cli/issues/2096) - Fix RFC links in changelog - ([@jtojnar](https://github.com/jtojnar)) - - -### BUG FIXES - -* [`6cd3cd08a`](https://github.com/npm/cli/commit/6cd3cd08af56445e13757cac3af87f3e7d54ed27) - Support *all* conf keys in publishConfig -* [`a1f9be8a7`](https://github.com/npm/cli/commit/a1f9be8a7f9b7a3a813fc3e5e705bc982470b0e2) - [#2074](https://github.com/npm/cli/issues/2074) - Support publishing any kind of spec, not just directories - -### DEPENDENCIES - -* [`545382df6`](https://github.com/npm/cli/commit/545382df62e3014f3e51d7034e52498fb2b01a37) - `libnpmpublish@4.0.0`: - * Support publishing things other than folders -* [`7d88f1719`](https://github.com/npm/cli/commit/7d88f17197e3c8cca9b277378d6f9b054b1b7886) - `npm-registry-fetch@9.0.0` -* [`823b40a4e`](https://github.com/npm/cli/commit/823b40a4e9c6ef76388af6fe01a3624f6f7675be) - `pacote@11.1.12` -* [`90bf57826`](https://github.com/npm/cli/commit/90bf57826edf2f78ddf8deb0793115ead8a8b556) - `npm-profile@5.0.2` -* [`e5a413577`](https://github.com/npm/cli/commit/e5a4135770d13cf114fac439167637181f87d824) - `libnpmteam@2.0.2` -* [`fc5aa7b4a`](https://github.com/npm/cli/commit/fc5aa7b4ad45cb65893f734e1229a6720f7966e5) - `libnpmsearch@3.0.1` -* [`9fc1dee13`](https://github.com/npm/cli/commit/9fc1dee138ca33ecdbd57e63142b27c60cf88f9b) - `libnpmorg@2.0.1` -* [`0ea870ec5`](https://github.com/npm/cli/commit/0ea870ec5d2be1d44f050ad8bc24ed936cc45fde) - `libnpmhook@6.0.1` -* [`32fd744ea`](https://github.com/npm/cli/commit/32fd744ea745f297f0be79a80955f077a57c4ac7) - `libnpmaccess@4.0.1` -* [`fc76f3d9f`](https://github.com/npm/cli/commit/fc76f3d9fcf19e65a9373ab3d9068c4326d2f782) - `@npmcli/arborist@1.0.8` - * Fix `cannot read property 'description' of undefined` in `npm ls` - when `package-lock.json` is corrupted - * Do not allow peerDependencies to be nested under dependents in any - circumstances - * Always resolve peerDependencies in `--prefer-dedupe` mode - -## 7.0.7 (2020-10-30) - -### BUG FIXES - -* [`3990b422d`](https://github.com/npm/cli/commit/3990b422d3ff63c54d96b61596bdb8f26a45ca7b) - [#2067](https://github.com/npm/cli/pull/2067) - use sh as default unix shell, not bash - ([@isaacs](https://github.com/isaacs)) -* [`81d6ceef6`](https://github.com/npm/cli/commit/81d6ceef6947e46355eb3ddb05a73da50870dfc1) - [#1975](https://github.com/npm/cli/issues/1975) - fix npm exec on folders missing package.json - ([@ruyadorno](https://github.com/ruyadorno)) -* [`2a680e91a`](https://github.com/npm/cli/commit/2a680e91a2be1f3f03a6fbd946f74628ee1cb370) - [#2083](https://github.com/npm/cli/pull/2083) - delete the contents of `node_modules` only in `npm ci` - ([@nlf](https://github.com/nlf)) -* [`2636fe1f4`](https://github.com/npm/cli/commit/2636fe1f45383cb1b6fc164564dc49318815db37) - [#2086](https://github.com/npm/cli/pull/2086) - disable banner output if loglevel is silent in `npm run-script` - ([@macno](https://github.com/macno)) - -### DEPENDENCIES - -* [`4156f053e`](https://github.com/npm/cli/commit/4156f053ee8712a4b53a210e62fba1e6562ba43a) - `@npmcli/run-script@1.7.4` - * restore the default `npm start` script -* [`1900ae9ad`](https://github.com/npm/cli/commit/1900ae9adecd227dd6f8b49de61a99c978ba89cf) - `@npmcli/promise-spawn@1.3.2` - * fix errors when processing scripts as root -* [`8cb0c166c`](https://github.com/npm/cli/commit/8cb0c166ccc019146a7a94d13c12723f001d2551) - `@npmcli/arborist@1.0.6` - * make sure missing bin links get set on reify - -## 7.0.6 (2020-10-27) - -### BUG FIXES - -* [`46c7f792a`](https://github.com/npm/cli/commit/46c7f792ab16dd0b091e1ad6d37de860c8885883) - [#2047](https://github.com/npm/cli/pull/2047) - [#1935](https://github.com/npm/cli/issues/1935) - skip the prompt when in a known ci environment - ([@nlf](https://github.com/nlf)) -* [`f8f6e1fad`](https://github.com/npm/cli/commit/f8f6e1fad8057edc02e4ce4382b1bc086d01211c) - [#2049](https://github.com/npm/cli/pull/2049) - properly remove pycache in release script - ([@MylesBorins](https://github.com/MylesBorins)) -* [`5db95b393`](https://github.com/npm/cli/commit/5db95b393e9c461ad34c1774f3515c322bf375bf) - [#2050](https://github.com/npm/cli/pull/2050) - pack: do not show individual files of bundled deps - ([@isaacs](https://github.com/isaacs)) -* [`3ee8f3b34`](https://github.com/npm/cli/commit/3ee8f3b34055da2ef1e735e1a06f64593512f1e3) - [#2051](https://github.com/npm/cli/pull/2051) - view: Better errors when package.json is not JSON - ([@isaacs](https://github.com/isaacs)) - -### DEPENDENCIES - -* [`99ae633f6`](https://github.com/npm/cli/commit/99ae633f6ccc8aa93dc3dcda863071658b0653db) - `libnpmversion@1.0.6` - - respect gitTagVersion = false -* [`d4173f58d`](https://github.com/npm/cli/commit/d4173f58ddefdd5456145f34f3c9f4ba5fca407e) - `@npmcli/promise-spawn@1.3.1` - - do not return empty buffer when stdio is inherited - - attach child process to returned promise -* [`c09380fa5`](https://github.com/npm/cli/commit/c09380fa51b720141a9971602f4bb7aabd4d6242) - `@npmcli/run-script@1.7.3` - - forward SIGINT and SIGTERM to children that inherit stdio -* [`b154861ad`](https://github.com/npm/cli/commit/b154861ad244b6a14020c43738d0cce1948bfdd3) - `@npmcli/arborist@1.0.5` -* [`ffea6596b`](https://github.com/npm/cli/commit/ffea6596b8653da32a2b4c9a4903970e7146eee4) - `agent-base@6.0.2` - - support http proxy for https registries - -## 7.0.5 (2020-10-23) - -* [`77ad86b5e`](https://github.com/npm/cli/commit/77ad86b5eedf139dda3329a6686d5f104dc233bb) - Merge docs deps with main project - -## 7.0.4 (2020-10-23) - -### DOCUMENTATION - -* [`cc026daf8`](https://github.com/npm/cli/commit/cc026daf8c8330256de01375350a1407064562f9) - docs: `npm-dedupe` through `npm-install` -* [`aec77acf8`](https://github.com/npm/cli/commit/aec77acf886d73f85e747cafdf7a2b360befba16) - [#1915](https://github.com/npm/cli/pull/1915) - use "dockhand" for faster static documentation generation - ([@ethomson](https://github.com/ethomson)) -* [`aeb10d210`](https://github.com/npm/cli/commit/aeb10d210816cf6829e0ac557c79d9efd8c4bdd1) - [#2024](https://github.com/npm/cli/pull/2024) - Fix post-install script name - ([@irajtaghlidi](https://github.com/irajtaghlidi)) - -### BUG FIXES - -* [`59e8dd6c6`](https://github.com/npm/cli/commit/59e8dd6c621f9a5c6e0b65533d8256be87a8e0d3) - [#2015](https://github.com/npm/cli/issues/2015) - [#2016](https://github.com/npm/cli/pull/2016) - Properly set `npm_command` environment variable. - -### TESTS - -* [`39ad1ad9e`](https://github.com/npm/cli/commit/39ad1ad9e1e1a9530db5b90a588b5081b71abc8d) - [#2001](https://github.com/npm/cli/pull/2001) - `npm config` tests - ([@ruyadorno](https://github.com/ruyadorno)) -* [`b9c1caa8e`](https://github.com/npm/cli/commit/b9c1caa8e4cc7c900d09657425ea361db5974319) - [#2026](https://github.com/npm/cli/pull/2026) - `npm owner` test and refactor - ([@ruyadorno](https://github.com/ruyadorno)) - -### DEPENDENCIES - -* [`ed6e6a9d3`](https://github.com/npm/cli/commit/ed6e6a9d3c36ffc5fb77fc25b6d66dbcb26beeb9) - `eslint-plugin-standard@4.0.2` -* [`b737ee999`](https://github.com/npm/cli/commit/b737ee99961364827bacf210a3e5ca5d2b7edad2) - [#2009](https://github.com/npm/cli/issues/2009) - [#2007](https://github.com/npm/cli/issues/2007) - `npm-packlist@2.1.4`: - - * Maintain order in package.json files array globs - * Strip slashes from package files list results - -* [`783965508`](https://github.com/npm/cli/commit/783965508d49f8ab0d8ceff38bee700cd0a06a54) - [#1997](https://github.com/npm/cli/issues/1997) - [#2000](https://github.com/npm/cli/issues/2000) - [#2005](https://github.com/npm/cli/issues/2005) - `@npmcli/arborist@1.0.4` - - * Ensure that root is added when root.meta is set - * Include all edges in explain() output when a root edge exists - * Do not conflict on meta-peers that will not be replaced - * Install peerOptionals if explicitly requested, or dev - -## 7.0.3 (2020-10-20) - -### BUG FIXES - -* [`ce4724a38`](https://github.com/npm/cli/commit/ce4724a3835ded9a4a29d8d67323f925461155e5) - [#1986](https://github.com/npm/cli/pull/1986) - check `result` when determining exit code of `ls ` - ([@G-Rath](https://github.com/G-Rath)) -* [`00d926f8d`](https://github.com/npm/cli/commit/00d926f8d884872d08d9a0cd73aa9cace2acb91b) - [#1987](https://github.com/npm/cli/pull/1987) - don't suppress run output when `--silent` is passed - ([@G-Rath](https://github.com/G-Rath)) -* [`043da2347`](https://github.com/npm/cli/commit/043da234745f36d55742e827314837dead5807ab) - improve cache clear error message - ([@isaacs](https://github.com/isaacs)) - -### DOCUMENTATION - -* [`a57f5c466`](https://github.com/npm/cli/commit/a57f5c466ceae59575ef05bb7941cce8752d8c58) - update docs for: access, adduser, audit, bin, bugs, build, cache, ci, - completion, config and dedupe - ([@isaacs](https://github.com/isaacs)) -* [`5b88b72b9`](https://github.com/npm/cli/commit/5b88b72b9821f7114cc4e475bbf52726a1674e52) - remove the long-gone bundle command - ([@isaacs](https://github.com/isaacs)) -* [`ae09aa5c1`](https://github.com/npm/cli/commit/ae09aa5c1cd150727b05ccfaeaba8d45e5697e50) - [#1993](https://github.com/npm/cli/pull/1993) - document --save-peer as a common option to npm install - ([@JakeChampion](https://github.com/JakeChampion)) -* [`c9993e6b1`](https://github.com/npm/cli/commit/c9993e6b1c2918699c2d125bf9b966f44f5d3ebe) - [#1982](https://github.com/npm/cli/pull/1982) - fix url links for init-package-json/node-semver - ([@takenspc](https://github.com/takenspc)) - -### DEPENDENCIES - -* [`5d9df8395`](https://github.com/npm/cli/commit/5d9df83958d3d5e6d8acad2ebabfbe5f3fd23c13) - `node-gyp@7.1.2` - -## 7.0.2 (2020-10-16) - -### DOCUMENTATION - -* [`9476734b7`](https://github.com/npm/cli/commit/9476734b7d5fa6df80ad17ad277a6bee9a16235c) - [#1967](https://github.com/npm/cli/pull/1967) - add mention to workspaces prepare lifecycle - ([@ruyadorno](https://github.com/ruyadorno)) - -### BUG FIXES - -* [`5cf71c689`](https://github.com/npm/cli/commit/5cf71c689bcfcd423405e59d05b7cc5704cb4c02) - [#1971](https://github.com/npm/cli/pull/1971) - owner rm at local pkg not work - ([@ShangguanQuail](https://github.com/ShangguanQuail)) - -### DEPENDENCIES - -* [`722b7ae63`](https://github.com/npm/cli/commit/722b7ae63da8b386fe188066dc2dae0121d9353b) - [#1974](https://github.com/npm/cli/pull/1974) - patch node-gyp - ([@targos](https://github.com/MylesBorins)) -* [`4ae825c01`](https://github.com/npm/cli/commit/4ae825c01c7ca3031361f9df72594a190c6ed1e4) - [#1976](https://github.com/npm/cli/pull/1976) - patch node-gyp - ([@MylesBorins](https://github.com/MylesBorins)) -* [`181eabf13`](https://github.com/npm/cli/commit/181eabf132c823af086380368de73d2f42e5aac1) - `@npmcli/arborist@1.0.3` - * fix workspaces `prepare` lifecycle scripts - * fix peer deps overchecks resulting in ERESOLVE -* [`6cc115409`](https://github.com/npm/cli/commit/6cc115409b7eb2df8e11db6232ee3d00e4316a7d) - `init-package-json@2.0.1` -* [`dbf9d6d1f`](https://github.com/npm/cli/commit/dbf9d6d1f060ea43b700409306574396a798127d) - `libnpmpublish@3.0.2` - -## 7.0.1 (2020-10-15) - -### DOCUMENTATION - -* [`03fca6a3b`](https://github.com/npm/cli/commit/03fca6a3b227f71562863bec7a1de1732bd719f1) - Adds docs on workspaces, explaining its basic concept and how to use it. - ([@ruyadorno](https://github.com/ruyadorno)) - -### BUG FIXES - -* [`2ccb63659`](https://github.com/npm/cli/commit/2ccb63659f9a757201658d5d019099b492d04a5b) - [#1951](https://github.com/npm/cli/issues/1951) - [#1956](https://github.com/npm/cli/pull/1956) - Handle errors from audit endpoint appropriately - ([@isaacs](https://github.com/isaacs)) - -### DEPENDENCIES - -* [`120e62736`](https://github.com/npm/cli/commit/120e6273604f15a2ce55668dfb2c23d06bf1e06c) - `node-gyp@7.1.1` -* [`6560b8d95`](https://github.com/npm/cli/commit/6560b8d952a613cefbd900186aa38df53bc201d1) - `@npmcli/arborist@1.0.2` - * do not drop scope information when fetching scoped package tarballs - * fix cycles/ordering resolution when peer deps require nesting -* [`282a1e008`](https://github.com/npm/cli/commit/282a1e00820b9abfb3465d044b30b2cade107909) - `npm-user-validate@1.0.1` -* [`b259edcb4`](https://github.com/npm/cli/commit/b259edcb4bac37e6f26d56af5f6666afbda8c126) - `hosted-git-info@3.0.7` - -## v7.0.0 (2020-10-12) - -### BUG FIXES - -* [`7bcdb3636`](https://github.com/npm/cli/commit/7bcdb3636e29291b9c722fe03a8450859dcb5b4f) - [#1949](https://github.com/npm/cli/pull/1949) fix: ensure `publishConfig` - is passed through ([@nlf](https://github.com/nlf)) -* [`97978462e`](https://github.com/npm/cli/commit/97978462e9050261e4ce2549e71fe94a48796577) - fix: patch `config.js` to remove duplicate vals - ([@darcyclarke](https://github.com/darcyclarke)) - -### DOCUMENTION - -* [`60769d757`](https://github.com/npm/cli/commit/60769d757859c88e2cceab66975f182a47822816) - [#1911](https://github.com/npm/cli/pull/1911) docs: v7 npm-install - refresh ([@ruyadorno](https://github.com/ruyadorno)) -* [`08de49042`](https://github.com/npm/cli/commit/08de4904255742cbf7477a20bdeebe82f283a406) - [#1938](https://github.com/npm/cli/pull/1938) docs: v7 using npm config - updates ([@ruyadorno](https://github.com/ruyadorno)) - -### DEPENDENCIES - -* [`15366a1cf`](https://github.com/npm/cli/commit/15366a1cf0073327b90ac7eb977ff8a73b52cc62) - `npm-registry-fetch@8.1.5` -* [`f04a74140`](https://github.com/npm/cli/commit/f04a74140bf65db36be3c379e0eb20dd6db3cc5c) - `init-package-json@2.0.0` - * [`1de21dce0`](https://github.com/npm/cli/commit/1de21dce0e56874203a789ce33124a4fc4d3b15f) - fix: support dot-separated aliases defined in a `.npmrc` ini files - for `init-*` configs ([@ruyadorno](https://github.com/ruyadorno)) -* [`a67275cd9`](https://github.com/npm/cli/commit/a67275cd9a75fa05ee3d3265832d0a015b14e81c) - `eslint@7.11.0` -* [`6fb83b78d`](https://github.com/npm/cli/commit/6fb83b78db09adfafd7cbd4b926e77802c4993e4) - `hosted-git-info@3.0.6` -* [`1ca30cc9b`](https://github.com/npm/cli/commit/1ca30cc9b8e7edc2043c1f848855f19781729dc9) - `libnpmfund@1.0.0` -* [`28a2d2ba4`](https://github.com/npm/cli/commit/28a2d2ba4a63808614f5d98685a64531e3198b93) - `@npmcli/arborist@1.0.0` - * [npm/rfcs#239](https://github.com/npm/rfcs/pull/239) Improve handling - of conflicting `peerDependencies` in transitive dependencies, so that - `--force` will always accept a best effort override, and - `--strict-peer-deps` will fail faster on conflicts. -* [`9306c6833`](https://github.com/npm/cli/commit/9306c6833e2e77675e0cfddd569b6b54a8bcf172) - `libnpmfund@1.0.1` -* [`fafb348ef`](https://github.com/npm/cli/commit/fafb348ef976116d47ada238beb258d5db5758a7) - `npm-package-arg@8.1.0` -* [`365f2e756`](https://github.com/npm/cli/commit/365f2e7565d0cfde858a43d894a77fb3c6338bb7) - `read-package-json@3.0.0` - -## v7.0.0-rc.4 (2020-10-09) - -* [`09b456f2d`](https://github.com/npm/cli/commit/09b456f2d776e2757956d2b9869febd1e01a1076) - `@npmcli/config@1.2.1` - * [#1919](https://github.com/npm/cli/pull/1919) - exposes `npm_config_user_agent` env variable - ([@nlf](https://github.com/nlf)) -* [`e859fba9e`](https://github.com/npm/cli/commit/e859fba9e7c267b0587b7d22da72e33f3e8f906b) - [#1936](https://github.com/npm/cli/pull/1936) - fix npx for non-interactive shells - ([@nlf](https://github.com/nlf)) -* [`9320b8e4f`](https://github.com/npm/cli/commit/9320b8e4f0e0338ea95e970ec9bbf0704def64b8) - [#1906](https://github.com/npm/cli/pull/1906) - restore old npx behavior of running existing bins first - ([@nlf](https://github.com/nlf)) -* [`7bd47ca2c`](https://github.com/npm/cli/commit/7bd47ca2c718df0a7d809f1992b7a87eece3f6dc) - `@npmcli/arborist@0.0.33` - * fixed handling of invalid package.json file -* [`02737453b`](https://github.com/npm/cli/commit/02737453bc2363daeef8c4e4b7d239e2299029b2) - `make-fetch-happen@8.0.10` - * do not calculate integrity values of http errors - -## v7.0.0-rc.3 (2020-10-06) - -* [`d816c2efa`](https://github.com/npm/cli/commit/d816c2efae41930cbdf4fff8657e0adc450d1dd4) - [`c8f0d5457`](https://github.com/npm/cli/commit/c8f0d5457dd913b425987ae30a611d4eb9e84b7d) - [`d48086d0d`](https://github.com/npm/cli/commit/d48086d0d3e006e76f364fb2c62b406a97ce8f68) - [`f34595f2e`](https://github.com/npm/cli/commit/f34595f2e5814a929049aca0349ce418a7f400c6) - [#1902](https://github.com/npm/cli/pull/1902) - tests for several commands - ([@nlf](https://github.com/nlf)) -* [`6d49207db`](https://github.com/npm/cli/commit/6d49207dbc5d66f91f4f462f05dd8916046e3a7b) - [#1903](https://github.com/npm/cli/pull/1903) - Revert "Remove unused npx binary" - ([@MylesBorins](https://github.com/MylesBorins)) -* [`138dfc202`](https://github.com/npm/cli/commit/138dfc202f401d2d93b4b5d2499799be6eb4ff0b) - set executable permissions on bins that node installer uses -* [`b06d68078`](https://github.com/npm/cli/commit/b06d68078830cc2446b1e51553db10e87591865b) - `@npmcli/arborist@0.0.32` - * Do not remove `node_modules` folders from Workspaces when - `loadActual` races with `buildIdealTree` ([@ruyadorno](https://github.com/ruyadorno)) -* [`2509e3a1b`](https://github.com/npm/cli/commit/2509e3a1bf76289062f1f6f06eee184df386054b) - `uuid@8.3.1` - -## v7.0.0-rc.2 (2020-10-02) - -* [`6de81a013`](https://github.com/npm/cli/commit/6de81a013833e0961abdec6f7c1ad50b63faaae6) - `@npmcli/run-script@1.7.2` - * Fix regression running 'install' scripts when package.json does not - contain a scripts object - -## v7.0.0-rc.1 (2020-10-02) - -* [`281a7f39a`](https://github.com/npm/cli/commit/281a7f39ac314bd7657ce2bcd7918b21eee99210) - `@npmcli/arborist@0.0.31` - * Allow `npm update` to update bundled root dependencies - * Only do implicit node-gyp build for gyp files named `binding.gyp` -* [`384f5ec47`](https://github.com/npm/cli/commit/384f5ec47091eed66c2a47f2c98df3ba7506ec9f) - update minipass-fetch to fix many 'cb() never called' errors -* [`7b1e75906`](https://github.com/npm/cli/commit/7b1e75906351bd73cde2f745ccaf63b9ad7de435) - `@npmcli/run-script@1.7.1` - * Only do implicit node-gyp build for gyp files named `binding.gyp` -* [`c20e2f0c7`](https://github.com/npm/cli/commit/c20e2f0c7766a04f999fdc64faad29277904c2d3) - [#1892](https://github.com/npm/cli/pull/1892) - Support `--omit` options in npm outdated - -## v7.0.0-rc.0 (2020-10-01) - -* [`3b417055c`](https://github.com/npm/cli/commit/3b417055cf07c4ef8e4c5063f00d3c24b5f5cbd2) - [#1859](https://github.com/npm/cli/pull/1859) - fix `proxy` and `https-proxy` config support - ([@badeggg](https://github.com/badeggg)) -* [`dd7d7a284`](https://github.com/npm/cli/commit/dd7d7a284d5150d1804d0cd5a85519c86adf3bc2) - `@npmcli/arborist@0.0.30` - * [#1849](https://github.com/npm/cli/issues/1849) Do not drop peer/dev - dep while saving if both set - * Do not install or build if there is a global top bin conflict - * Default to building node-gyp dependencies -* [`40c17e12c`](https://github.com/npm/cli/commit/40c17e12c5a734c37b88692e36221ac974c0c63d) - `cli-table3@0.6.0` -* [`47a8ca1d7`](https://github.com/npm/cli/commit/47a8ca1d72f0f0835b45cfb2c4fb8ab1218dc14a) - `byte-size@7.0.0` -* [`81073f99a`](https://github.com/npm/cli/commit/81073f99a93b680e3ca08b8f099e9aca2aaf50be) - `eslint@7.10.0` -* [`67793abd4`](https://github.com/npm/cli/commit/67793abd4abdf315816b6266ddb045289f607b03) - `eslint-plugin-import@2.22.1` -* [`a27e8d006`](https://github.com/npm/cli/commit/a27e8d00664e5d4c3e81d664253a10176adb39c8) - `is-cidr@4.0.2` -* [`893fed45e`](https://github.com/npm/cli/commit/893fed45e2272ef764ebf927c659fcf5e7b355b3) - `marked-man@0.7.0` -* [`bc20e0c8a`](https://github.com/npm/cli/commit/bc20e0c8ae30a202c72af88586ab9c167dff980a) - `rimraf@3.0.2` -* [`a2b8fd3c1`](https://github.com/npm/cli/commit/a2b8fd3c153ecca55cb2d60654fff207688532ab) - `uuid@8.3.0` -* [`ee4c85b87`](https://github.com/npm/cli/commit/ee4c85b878410143644460c3860ab706a8c925e0) - `write-file-atomic@3.0.3` -* [`4bdad5fdf`](https://github.com/npm/cli/commit/4bdad5fdf6ef387e2159b529ba4652f0221433b5) - `bin-links@2.2.1` -* [`c394937ec`](https://github.com/npm/cli/commit/c394937ec1911cd17ec42c8fc74773047d47322c) - `@npmcli/run-script@1.7.0` - * Default to building node-gyp dependencies and projects -* remove many unused dependencies - ([@ruyadorno](https://github.com/ruyadorno)) - * [`558e9781a`](https://github.com/npm/cli/commit/558e9781ada06b66be4d2d5d0f7e763f645eda25) - deep-equal - * [`2aa9a1f8a`](https://github.com/npm/cli/commit/2aa9a1f8a5773b9a960b14b51c8111fb964bc9ae) - request - * [`d77594e52`](https://github.com/npm/cli/commit/d77594e52f2f7d65d45347f542f48e4dbb6d2f26) - npm-registry-couchapp - * [`8ec84d9f6`](https://github.com/npm/cli/commit/8ec84d9f691686da67bd14c2728472c94ab3b955) - tacks - * [`a07b421f7`](https://github.com/npm/cli/commit/a07b421f708c13d8239e7283ad89611b24b23d0a) - lincesee - * [`41126e165`](https://github.com/npm/cli/commit/41126e165d3d5625a55e140b84fdd02052520146) - npm-cache-filename - * [`130da51b5`](https://github.com/npm/cli/commit/130da51b553e550584f31e2a8a961f4338f2a0cd) - npm-registry-mock - * [`b355af486`](https://github.com/npm/cli/commit/b355af48696bb5001c6d2b938974d9ab9f5e2360) - sprintf-js - * [`721c0a873`](https://github.com/npm/cli/commit/721c0a8736f3cd0a0e75e0b89518a431553843c6) - uid-number - * [`9c920e5f5`](https://github.com/npm/cli/commit/9c920e5f584e4d912aabc6e412693f7142242a89) - umask - * [`aae1c38bb`](https://github.com/npm/cli/commit/aae1c38bbb983cf40e9b3df012b18bebba5e5400) - config-chain - * [`450845eac`](https://github.com/npm/cli/commit/450845eaceb7e178c8ec7867a67e5cc948986904) - find-npm-prefix - * [`963d542d3`](https://github.com/npm/cli/commit/963d542d385c7fe26830a885fe40d96010d01862) - has-unicode - * [`cad9cbc70`](https://github.com/npm/cli/commit/cad9cbc70561c8638ed6e56286f753693f411000) - infer-owner - * [`3ae02914d`](https://github.com/npm/cli/commit/3ae02914d49f3302d25c85d2242096bb2291f9f4) - lockfile - * [`7bc474d7c`](https://github.com/npm/cli/commit/7bc474d7cb2e2e083fd8358d0648d7c5fb43707f) - once - * [`5c5e0099a`](https://github.com/npm/cli/commit/5c5e0099a4708ec84da3d2e427e16c4a9cfe3c8a) - retry - * [`cfaddd334`](https://github.com/npm/cli/commit/cfaddd334b8b1eddcefa3cd2a9b823ec140271a4) - sha - * [`3a978ffc7`](https://github.com/npm/cli/commit/3a978ffc7fddd6802c81996a5710b2efd15edc11) - slide - -## v7.0.0-beta.13 (2020-09-29) - -* [`405e051f7`](https://github.com/npm/cli/commit/405e051f724a2e79844f78f8ea9ba019fdc513aa) - Fix EBADPLATFORM error message - ([@#1876](https://github.com/#1876)) -* [`e4d911d21`](https://github.com/npm/cli/commit/e4d911d219899c0fdc12f8951b7d70e0887909f8) - `@npmcli/arborist@0.0.28` - * fix: workspaces install entering an infinite loop - * Save provided range if not a subset of savePrefix - * package-lock.json custom indentation - * Check engine and platform when building ideal tree -* [`90550b2e0`](https://github.com/npm/cli/commit/90550b2e023e7638134e91c80ed96828afb41539) - [#1853](https://github.com/npm/cli/pull/1853) - test coverage and refactor for token command - ([@nlf](https://github.com/nlf)) -* [`2715220c9`](https://github.com/npm/cli/commit/2715220c9b5d3f325e65e95bae2b5af8a485a579) - [#1858](https://github.com/npm/cli/pull/1858) - [#1813](https://github.com/npm/cli/issues/1813) - do not include omitted optional dependencies in install output - ([@ruyadorno](https://github.com/ruyadorno)) -* [`e225ddcf8`](https://github.com/npm/cli/commit/e225ddcf8d74a6b1cfb24ec49e37e3f5d06e5151) - [#1862](https://github.com/npm/cli/pull/1862) - [#1861](https://github.com/npm/cli/issues/1861) - respect depth when running `npm ls ` - ([@ruyadorno](https://github.com/ruyadorno)) -* [`2469ae515`](https://github.com/npm/cli/commit/2469ae5153fa4114a72684376a1b226aa07edf81) - [#1870](https://github.com/npm/cli/pull/1870) - [#1780](https://github.com/npm/cli/issues/1780) - Add 'fetch-timeout' config - ([@isaacs](https://github.com/isaacs)) -* [`52114b75e`](https://github.com/npm/cli/commit/52114b75e83db8a5e08f23889cce41c89af9eb93) - [#1871](https://github.com/npm/cli/pull/1871) - fix `npm ls` for linked dependencies - ([@ruyadorno](https://github.com/ruyadorno)) -* [`9981211c0`](https://github.com/npm/cli/commit/9981211c070ce2b1e34d30223d12bd275adcacf5) - [#1857](https://github.com/npm/cli/pull/1857) - [#1703](https://github.com/npm/cli/issues/1703) - fix `npm outdated` parsing invalid specs - ([@ruyadorno](https://github.com/ruyadorno)) - -## v7.0.0-beta.12 (2020-09-22) - -* [`24f3a5448`](https://github.com/npm/cli/commit/24f3a5448f021ad603046dfb9fd97ed66bd63bba) - [#1811](https://github.com/npm/cli/issues/1811) - npm ci should never save package.json or lockfile - ([@isaacs](https://github.com/isaacs)) -* [`5e780a5f0`](https://github.com/npm/cli/commit/5e780a5f067476c1d207173fc9249faf9eaac0c2) - remove unused spec parameter, assign error code - ([@nlf](https://github.com/nlf)) -* [`f019a248a`](https://github.com/npm/cli/commit/f019a248a67e8c46dbe41bf31f4818c5ca2138bf) - Remove unused npx binary - ([@isaacs](https://github.com/isaacs)) -* [`db157b3ce`](https://github.com/npm/cli/commit/db157b3ceb46327ca2089604d5f4fc9de391584e) - `@npmcli/arborist@0.0.27` - * Resolve race condition with conflicting bin links in local installs - * [#1812](https://github.com/npm/cli/issues/1812) Log engine mismatches more usefully - * [#1814](https://github.com/npm/cli/issues/1814) Do not loop trying to resolve dependencies that fail to load - * [npm/rfcs#224](https://github.com/npm/rfcs/pull/224) Do not automatically install optional peer dependencies - * Add the `strictPeerDeps` option, defaulting to `false` - * fix forwarding configs to resolve pkg spec when adding new deps -* [`b3a50d275`](https://github.com/npm/cli/commit/b3a50d27501e47c61b52c3cc4de99ff4e4641efe) - [#1846](https://github.com/npm/cli/pull/1846) - `@npmcli/run-script@1.6.0` - * This updates node-gyp to v7, allowing us to deduplicate a lot of significant dependencies. -* [`a1d375f6b`](https://github.com/npm/cli/commit/a1d375f6b0ee358be41110a49acc1c9fdb775fbe) - [#1819](https://github.com/npm/cli/pull/1819) - Add `--strict-peer-deps` option - ([@isaacs](https://github.com/isaacs)) -* [`5837a4843`](https://github.com/npm/cli/commit/5837a4843ab1f19fb62f60151f522ca0fa5449ae) - [#1699](https://github.com/npm/cli/pull/1699) - Use allow/deny list in docs - ([@luciomartinez](https://github.com/luciomartinez)) - -## v7.0.0-beta.11 (2020-09-16) - -* [`63005f4a9`](https://github.com/npm/cli/commit/63005f4a98d55786fda46f3bbb3feab044d078df) - [#1639](https://github.com/npm/cli/issues/1639) - npm view should not output extra newline ([@MylesBorins](https://github.com/MylesBorins)) -* [`3743a42c8`](https://github.com/npm/cli/commit/3743a42c854d9ea7e333d7ff86d206a4b079a352) - [#1750](https://github.com/npm/cli/pull/1750) - add outdated tests ([@claudiahdz](https://github.com/claudiahdz)) -* [`2019abdf1`](https://github.com/npm/cli/commit/2019abdf159eb13c9fb3a2bd2f35897a8f52b0d9) - [#1786](https://github.com/npm/cli/pull/1786) - add lib/link.js tests ([@ruyadorno](https://github.com/ruyadorno)) -* [`2f8d11968`](https://github.com/npm/cli/commit/2f8d11968607a74c8def3c05266049bee5e313eb) - `@npmcli/arborist@0.0.25` - * add meta vulnerability calculator for faster audits - * changed parsing specs to be relative to cwd - * fix logging script execution - * fix properly following resolved symlinks - * fix package.json dependencies order -* [`49b2bf5a7`](https://github.com/npm/cli/commit/49b2bf5a798b49d52166744088a80b8a39ccaeb6) - `@npmcli/config@1.1.8` - * fix unkown envs to be passed through - * fix setting correct globalPrefix on load -* [`f9aac351d`](https://github.com/npm/cli/commit/f9aac351dd36a19d14e1f951a2e8e20b41545822) - `libnpmversion@1.0.5` - * fix git ignored lockfiles - -## v7.0.0-beta.10 (2020-09-08) - -* [`7418970f0`](https://github.com/npm/cli/commit/7418970f03229dd2bce7973b99b981779aee6916) - Improve output of dependency node explanations -* [`5e49bdaa3`](https://github.com/npm/cli/commit/5e49bdaa34e29dbd25c687f8e6881747a86b7435) - [#1776](https://github.com/npm/cli/pull/1776) Add 'npm explain' command - -## v7.0.0-beta.9 (2020-09-04) - -* [`ef8f5676b`](https://github.com/npm/cli/commit/ef8f5676b1c90dcf44256b8ed1f61ddb6277c23a) - [#1757](https://github.com/npm/cli/pull/1757) - view: always fetch fullMetadata, and preferOnline -* [`ac5aa709a`](https://github.com/npm/cli/commit/ac5aa709a8609ec2beb7a8c60b3bde18f882f4e8) - [#1758](https://github.com/npm/cli/pull/1758) - fix scope config -* [`a36e2537f`](https://github.com/npm/cli/commit/a36e2537fd4c81df53fb6de01900beb9fa4fa0aa) - outdated: don't throw on non-version/tag/range dep -* [`371f0f062`](https://github.com/npm/cli/commit/371f0f06215ad8caf598c20e3d0d38ff597531e9) - `@npmcli/arborist@0.0.20` - - * Provide explanation objects for `ERESOLVE` errors - * Support overriding certain classes of `ERESOLVE` errors with `--force` - * Detect changes to package.json requiring package-lock dependency flag - re-evaluation - -* [`2a4e2e9ef`](https://github.com/npm/cli/commit/2a4e2e9efecb7f86147e5071c59cfc2461a5a7f5) - [#1761](https://github.com/npm/cli/pull/1761) - Explain `ERESOLVE` errors -* [`8e3e83bd4`](https://github.com/npm/cli/commit/8e3e83bd4f816bfed0efb8266985143ee9b94b86) - `@npmcli/arborist@0.0.21` - - * Remove bin links on prune - * Remove unnecessary tree walk for workspace projects - * Install workspaces on update:true - -* [`d6b134fd9`](https://github.com/npm/cli/commit/d6b134fd9005d911343831270615f80dfead7e3d) - [#1738](https://github.com/npm/cli/pull/1738) - [#1734](https://github.com/npm/cli/pull/1734) - fix package spec parsing during cache add process - ([@mjeanroy](https://github.com/mjeanroy)) -* [`f105eb833`](https://github.com/npm/cli/commit/f105eb8333fa3300c5b47464b129c1b0057ed7bf) - `npm-audit-report@2.1.4`: - - * Do not crash on cyclical meta-vulnerability references - -* [`03a9f569b`](https://github.com/npm/cli/commit/03a9f569b5121a173f14711980db297d4a04ac6b) - `opener@1.5.2` -* [`5616a23b4`](https://github.com/npm/cli/commit/5616a23b4b868d19aa100a6d86d781cc9bfd94f7) - `@npmcli/git@2.0.4` - - * Support `.git` files, so that git worktrees are respected - -## v7.0.0-beta.8 (2020-09-01) - -* [`834e62a0e`](https://github.com/npm/cli/commit/834e62a0e5b76e97cfe9ea3d3188661579ebc874) - * fix: npm ls extraneous workspaces - * `@npmcli/arborist@0.0.19` -* [`758b02358`](https://github.com/npm/cli/commit/758b02358613591ea877e26fcdb76e5b1d40f892) - [#1739](https://github.com/npm/cli/pull/1739) - add full install options to npm exec - ([@ruyadorno](https://github.com/ruyadorno)) -* [`2ee7c8a98`](https://github.com/npm/cli/commit/2ee7c8a98cf01225a3c9ac247139243f868e2e03) - `@npmcli/config@1.1.7` - ([@ruyadorno](https://github.com/ruyadorno)) - -## v7.0.0-beta.7 (2020-08-25) - -* [`b38f68acd`](https://github.com/npm/cli/commit/b38f68acd9292b7432c936db3b6d2d12e896f45d) - ensure `npm-command` HTTP header is sent properly -* [`9f200abb9`](https://github.com/npm/cli/commit/9f200abb94ea2127d9a104c225159b1b7080c82c) - Properly exit with error status code -* [`aa0152b58`](https://github.com/npm/cli/commit/aa0152b58f34f8cdae05be63853c6e0ace03236a) - [#1719](https://github.com/npm/cli/pull/1719) Detect CI properly -* [`50f9740ca`](https://github.com/npm/cli/commit/50f9740ca8000b1c4bd3155bf1bc3d58fb6f0e20) - [#1717](https://github.com/npm/cli/pull/1717) fund with multiple funding - sources ([@ruyadorno](https://github.com/ruyadorno)) -* [`3a63ecb6f`](https://github.com/npm/cli/commit/3a63ecb6f6a0b235660f73a3ffa329b1f131b0c3) - [#1718](https://github.com/npm/cli/pull/1718) - [RFC-0029](https://github.com/npm/rfcs/blob/latest/implemented/0029-add-ability-to-skip-hooks.md) - add ability to skip pre/post hooks to `npm run-script` by using - `--ignore-scripts` ([@ruyadorno](https://github.com/ruyadorno)) - -## v7.0.0-beta.6 (2020-08-21) - -* [`707207bdd`](https://github.com/npm/cli/commit/707207bddb2900d6f7a57ff864cef26cda75a71a) - add `@npmcli/config` dependency - -* [`5cb9a1d4d`](https://github.com/npm/cli/commit/5cb9a1d4d985aaa8e988c51fe5ae7f7ed3602811) - [#1688](https://github.com/npm/cli/pull/1688) use `@npmcli/config` for - configuration ([@isaacs](https://github.com/isaacs)) - -* [`a4295f5db`](https://github.com/npm/cli/commit/a4295f5db7667e8cc6b83abdad168619ad31a12f) - `npm-registry-fetch@8.1.4`: - - * Redact passwords from HTTP logs - -* [`a5a6a516d`](https://github.com/npm/cli/commit/a5a6a516d16828c1375eaf41d04468d919df4a57) - `json-parse-even-better-errors@2.3.0`: - - * Adds support for indentation/newline formatting preservation - -* [`a14054558`](https://github.com/npm/cli/commit/a1405455843db1b14938596303b29fb3ad4f90f0) - `read-package-json-fast@1.2.1`: - - * Adds support for indentation/newline formatting preservation - -* [`f8603c8af`](https://github.com/npm/cli/commit/f8603c8affefc342d81c109e4676d498a8359b78) - `libnpmversion@1.0.4`: - - * Adds support for indentation/newline formatting preservation - -* [`9891fa71c`](https://github.com/npm/cli/commit/9891fa71c88f425bef8d881c3795e5823d732e1f) - `read-package-json@2.1.2`: - - * Adds support for indentation/newline formatting preservation - -* [`b44768aac`](https://github.com/npm/cli/commit/b44768aace0e9c938ebd6d05a5de1cc4368e2d7d) - [#1662](https://github.com/npm/cli/issues/1662) - [#1693](https://github.com/npm/cli/issues/1693) - [#1690](https://github.com/npm/cli/issues/1690) - `@npmcli/arborist@0.0.17`: - - * Load root project `package.json` when running loadVirtual. - * Fetch metadata from registry when loading tree from outdated - package-lock.json file. This avoids a situation where a lockfile or - shrinkwrap from npm v5 would result in deleting dependencies on - install. - * Preserve `package.json` and `package-lock.json` formatting in all - places where these files are written. - -* [`281da6fdc`](https://github.com/npm/cli/commit/281da6fdcda3fb3860b73ed35daa234ad228c363) - `tar@6.0.5` - -* [`1faa5b33d`](https://github.com/npm/cli/commit/1faa5b33dcc6d7e4eba1c0d85ad30cf0c237c9e1) - [#1655](https://github.com/npm/cli/issues/1655) show usage when - `help-search` finds no results - -* [`10fcff73a`](https://github.com/npm/cli/commit/10fcff73a3381ea5e6dcb03888679ae4b501d2f0) - [#1695](https://github.com/npm/cli/issues/1695) fix `pulseWhileDone` - promise handling - -* [`88e4241c5`](https://github.com/npm/cli/commit/88e4241c5d4f512a4e2b09d26fcdcc7f877e65ed) - [#1698](https://github.com/npm/cli/pull/1698) add lib/logout.js unit - tests ([@ruyadorno](https://github.com/ruyadorno)) - -## v7.0.0-beta.5 (2020-08-18) - -* [`b718b0e28`](https://github.com/npm/cli/commit/b718b0e2844d9244cc63667f62ccf81864cc1092) - [#1657](https://github.com/npm/cli/pull/1657) display multiple versions - when using `--json` with `npm view` - ([@claudiahdz](https://github.com/claudiahdz)) -* [`9e7cc42f6`](https://github.com/npm/cli/commit/9e7cc42f687b479d96d222b61f76b2a30c7e6507) - [#1071](https://github.com/npm/cli/pull/1071) migrate from `meant` to - `leven` ([@jamesgeorge007](https://github.com/jamesgeorge007)) -* [`85027f40c`](https://github.com/npm/cli/commit/85027f40ca5237bd750a5633104d12bcc248551c) - [#1664](https://github.com/npm/cli/pull/1664) refactor and add tests for - `npm adduser` ([@ruyadorno](https://github.com/ruyadorno)) -* [`6e03e5583`](https://github.com/npm/cli/commit/6e03e55833d50fd0f5b7824ed14b7e2b14f70eaf) - [#1672](https://github.com/npm/cli/pull/1672) refactor and add tests for - `npm audit` ([@claudiahdz](https://github.com/claudiahdz)) - -## v7.0.0-beta.4 (2020-08-11) - -Replace some environment variables that were excluded. This implements the -[amendment to RFC0021](https://github.com/npm/rfcs/pull/183). - -* [`631142f4a`](https://github.com/npm/cli/commit/631142f4a13959fbe02dc115fb6efa55a3368795) - `@npmcli/run-script@1.5.0` -* [`da95386ae`](https://github.com/npm/cli/commit/da95386aedb3f0c0cc51761bfa750b64ac0eabc9) - [#1650](https://github.com/npm/cli/pull/1650) - [#1652](https://github.com/npm/cli/pull/1652) - include booleans, skip already-set envs - -## v7.0.0-beta.3 (2020-08-10) - -Bring back support for `npm audit --production`, fix a minor `npm version` -annoyance, and track down a very serious issue where a project could be -blown away when it matches a meta-dep in the tree. - -* [`5fb217701`](https://github.com/npm/cli/commit/5fb217701c060e37a3fb4a2e985f80fb015157b9) - [#1641](https://github.com/npm/cli/issues/1641) `@npmcli/arborist@0.0.15` -* [`3598fe1f2`](https://github.com/npm/cli/commit/3598fe1f2dfe6c55221bbac8aaf21feab74a936a) - `@npmcli/arborist@0.0.16` Add support for `npm audit --production` -* [`8ba2aeaee`](https://github.com/npm/cli/commit/8ba2aeaeeb77718cb06fe577fdd56dcdcbfe9c52) - `libnpmversion@1.0.3` - -## v7.0.0-beta.2 (2020-08-07) - -New notification style for updates, and a working doctor. - -* [`cf2819210`](https://github.com/npm/cli/commit/cf2819210327952696346486002239f9fc184a3e) - [#1622](https://github.com/npm/cli/pull/1622) - Improve abbrevs for install and help -* [`d062b2c02`](https://github.com/npm/cli/commit/d062b2c02a4d6d5f1a274aa8eb9c5969ca6253db) - new npm-specific update-notifier implementation -* [`f6d468a3b`](https://github.com/npm/cli/commit/f6d468a3b4bef0b3cc134065d776969869fca51e) - update doctor command -* [`b8b4d77af`](https://github.com/npm/cli/commit/b8b4d77af836f8c49832dda29a0de1b3c2d39233) - [#1638](https://github.com/npm/cli/pull/1638) - Direct users to our GitHub issues instead of npm.community - -## v7.0.0-beta.1 (2020-08-05) - -Fix some issues found in the beta pubish process, and initial attempts to -use npm v7 with [citgm](https://github.com/nodejs/citgm/). - -* [`2c305e8b7`](https://github.com/npm/cli/commit/2c305e8b7bfa28b07812df74f46983fad2cb85b6) - output generated tarball filename -* [`0808328c9`](https://github.com/npm/cli/commit/0808328c93d9cd975837eeb53202ce3844e1cf70) - pack: set correct filename for scoped packages - ([@isaacs](https://github.com/isaacs)) -* [`cf27df035`](https://github.com/npm/cli/commit/cf27df035cfba4f859d14859229bb90841b8fda6) - `@npmcli/arborist@0.0.14` ([@isaacs](https://github.com/isaacs)) - -## v7.0.0-beta.0 (2020-08-04) - -Major refactoring and overhaul of, well, pretty much everything. Almost -all dependencies have been updated, many have been removed, and the entire -`Installer` class is moved into -[`@npmcli/arborist`](http://npm.im/@npmcli/arborist). - -### Some High-level Changes and Improvements - -- You can install GitHub pull requests by adding `#pull/` to the - git url. So it'd be something like `npm install - github:user/project#pull/123` to install PR number 123 of the - `user/project` git repo. You can of course also use this in - dependencies, or anywhere else dependency specifiers are found. -- Initial Workspaces support is added. If you `npm install` in a project - with a `workspaces` declaration, npm will install all your sub-projects' - dependencies as well, and link everything up proper. -- `npm exec` is added, to run any arbitrary command as if it was an npm - script. This is sort of like `npx`, which is also ported to use `npm - exec` under the hood. -- `npm audit` output is tightened up, and prettified. Audit can also now - fix a few more classes of problems, sends far less data over the wire, - and doesn't place blame on the wrong maintainers. (Technically this is a - breaking change if you depend on the specific audit output, but it's - also a big improvement!) -- `npm install` got faster. Like a lot faster. "So fast you'll think it's - broken" faster. `npm ls` got even fasterer. A lot of stuff sped up, is - what we're saying. -- Support has been dropped for Node.js versions less than v10. - -### On the "Breaking" in "Breaking Changes" - -The Semantic Versioning specification precisely defines what constitutes a -"breaking" change. In a nutshell, it's any change that causes a you to -change _your_ code in order to start using _our_ code. We hasten to point -this out, because a "breaking change" does not mean that something about -the update is "broken", necessarily. - -We're sure that some things likely _are_ broken in this beta, because beta -software, and a healthy pessimism about things. But nothing is "broken" on -purpose here, and if you find a bug, we'd love for you to [let us -know](https://github.com/npm/cli/issues). - -### Known Issues, and What's Missing From This Beta (Why Not GA?) - -It's beta software! - -#### Tests - -We have not yet gotten to 100% test coverage of the npm CLI codebase. As -such, there are almost certainly bugs lying in wait. We _do_ have 100% -test coverage of most of the commands, and all recently-updated -dependencies in the npm stack, so it's certainly more well-tested than any -version of npm before. - -#### Docs - -The documentation is incorrect and out of date in most places. Prior to a -GA release, we'll be going through all of our documentation with a -fine-toothed comb to minimize the lies that it tells. - -#### Error Messaging - -There are a few cases where this release will just say something failed, -and not give you as much help as we'd like. We know, and we'll fix that -prior to the GA 7.0.0 release. - -In particular, if you install a project that has conflicting -`peerDependencies` in the tree, it'll just say "Unable to resolve package -tree". Prior to GA release, it'll tell you how to fix it. (For the time -being, just run it again with `--legacy-peer-deps`, and that'll make it -operate like npm v6.) - -#### Audit Issue - -There is a known performance issue in some cases that we've identified -where `npm audit` can spin wildly out of control like a dancer gripped by a -fever, heating up your laptop with fires of passion and CPU work. This -happens when a vulnerability is in a tree with a _lot_ of cross-linked -dependencies that all depend on one another. - -We have a fix for it, but if you run into this issue, you can run with -`--no-audit` to tell npm to chill out a little bit. - -That's about it! It's ready to use, and you should try it out. - -Now on to the list of **BREAKING CHANGES**! - -### Programmatic Usage - -- [RFC - 20](https://github.com/npm/rfcs/blob/latest/implemented/0020-npm-option-handling.md) - The CLI and its dependencies no longer use the `figgy-pudding` library - for configs. Configuration is done using a flat plain old JavaScript - object. -- The `lib/fetch-package-metadata.js` module is removed. Use - [`pacote`](http://npm.im/pacote) to fetch package metadata. -- [`@npmcli/arborist`](http://npm.im/@npmcli/arborist) should be used to do - most things programmatically involving dependency trees. -- The `onload-script` option is no longer supported. -- The `log-stream` option is no longer supported. -- `npm.load()` MUST be called with two arguments (the parsed cli options - and a callback). -- `npm.root` alias for `npm.dir` removed. -- The `package.json` in npm now defines an `exports` field, making it no - longer possible to `require()` npm's internal modules. (This was always - a bad idea, but now it won't work.) - -### All Registry Interactions - -The following affect all commands that contact the npm registry. - -- `referer` header no longer sent -- `npm-command` header added - -### All Lifecycle Scripts - -The environment for lifecycle scripts (eg, build scripts, `npm test`, etc.) -has changed. - -- [RFC - 21](https://github.com/npm/rfcs/blob/latest/implemented/0021-reduce-lifecycle-script-environment.md) - Environment no longer includes `npm_package_*` fields, or `npm_config_*` - fields for default configs. `npm_package_json`, `npm_package_integrity`, - `npm_package_resolved`, and `npm_command` environment variables added. - - (NB: this [will change a bit prior to a `v7.0.0` GA - release](https://github.com/npm/rfcs/pull/183)) - -- [RFC - 22](https://github.com/npm/rfcs/blob/latest/implemented/0022-quieter-install-scripts.md) - Scripts run during the normal course of installation are silenced unless - they exit in error (ie, with a signal or non-zero exit status code), and - are for a non-optional dependency. - -- [RFC - 24](https://github.com/npm/rfcs/blob/latest/implemented/0024-npm-run-traverse-directory-tree.md) - `PATH` environment variable includes all `node_modules/.bin` folders, - even if found outside of an existing `node_modules` folder hierarchy. - -- The `user`, `group`, `uid`, `gid`, and `unsafe-perms` configurations are - no longer relevant. When npm is run as root, scripts are always run with - the effective `uid` and `gid` of the working directory owner. - -- Commands that just run a single script (`npm test`, `npm start`, `npm - stop`, and `npm restart`) will now run their script even if - `--ignore-scripts` is set. Prior to the GA v7.0.0 release, [they will - _not_ run the pre/post scripts](https://github.com/npm/rfcs/pull/185), - however. (So, it'll be possible to run `npm test --ignore-scripts` to - run your test but not your linter, for example.) - -### npx - -The `npx` binary was rewritten in npm v7, and the standalone `npx` package -deprecated when v7.0.0 hits GA. `npx` uses the new `npm exec` command -instead of a separate argument parser and install process, with some -affordances to maintain backwards compatibility with the arguments it -accepted in previous versions. - -This resulted in some shifts in its functionality: - -- Any `npm` config value may be provided. -- To prevent security and user-experience problems from mistyping package - names, `npx` prompts before installing anything. Suppress this - prompt with the `-y` or `--yes` option. -- The `--no-install` option is deprecated, and will be converted to `--no`. -- Shell fallback functionality is removed, as it is not advisable. -- The `-p` argument is a shorthand for `--parseable` in npm, but shorthand - for `--package` in npx. This is maintained, but only for the `npx` - executable. (Ie, running `npm exec -p foo` will be different from - running `npx -p foo`.) -- The `--ignore-existing` option is removed. Locally installed bins are - always present in the executed process `PATH`. -- The `--npm` option is removed. `npx` will always use the `npm` it ships - with. -- The `--node-arg` and `-n` options are removed. -- The `--always-spawn` option is redundant, and thus removed. -- The `--shell` option is replaced with `--script-shell`, but maintained - in the `npx` executable for backwards compatibility. - -We do intend to continue supporting the `npx` that npm ships; just not the -`npm install -g npx` library that is out in the wild today. - -### Files On Disk - -- [RFC - 13](https://github.com/npm/rfcs/blob/latest/implemented/0013-no-package-json-_fields.md) - Installed `package.json` files no longer are mutated to include extra - metadata. (This extra metadata is stored in the lockfile.) -- `package-lock.json` is updated to a newer format, using - `"lockfileVersion": 2`. This format is backwards-compatible with npm CLI - versions using `"lockfileVersion": 1`, but older npm clients will print a - warning about the version mismatch. -- `yarn.lock` files used as source of package metadata and resolution - guidance, if available. (Prior to v7, they were ignored.) - -### Dependency Resolution - -These changes affect `install`, `ci`, `install-test`, `install-ci-test`, -`update`, `prune`, `dedupe`, `uninstall`, `link`, and `audit fix`. - -- [RFC - 25](https://github.com/npm/rfcs/blob/latest/implemented/0025-install-peer-deps.md) - `peerDependencies` are installed by default. This behavior can be - disabled by setting the `legacy-peer-deps` configuration flag. - - **BREAKING CHANGE**: this can cause some packages to not be - installable, if they have unresolveable peer dependency conflicts. - While the correct solution is to fix the conflict, this was not forced - upon users for several years, and some have come to rely on this lack - of correctness. Use the `--legacy-peer-deps` config flag if impacted. - -- [RFC - 23](https://github.com/npm/rfcs/blob/latest/implemented/0023-acceptDependencies.md) - Support for `acceptDependencies` is added. This can result in dependency - resolutions that previous versions of npm will incorrectly flag as invalid. - -- Git dependencies on known git hosts (GitHub, BitBucket, etc.) will - always attempt to fetch package contents from the relevant tarball CDNs - if possible, falling back to `git+ssh` for private packages. `resolved` - value in `package-lock.json` will always reflect the `git+ssh` url value. - Saved value in `package.json` dependencies will always reflect the - canonical shorthand value. - -- Support for the `--link` flag (to install a link to a globall-installed - copy of a module if present, otherwise install locally) has been removed. - Local installs are always local, and `npm link ` must be used - explicitly if desired. - -- Installing a dependency with the same name as the root project no longer - requires `--force`. (That is, the `ENOSELF` error is removed.) - -### Workspaces - -- [RFC - 26](https://github.com/npm/rfcs/blob/latest/implemented/0026-workspaces.md) - First phase of `workspaces` support is added. This changes npm's - behavior when a root project's `package.json` file contains a - `workspaces` field. - -### `npm update` - -- [RFC - 19](https://github.com/npm/rfcs/blob/latest/implemented/0019-remove-update-depth-option.md) - Update all dependencies when `npm update` is run without any arguments. - As it is no longer relevant, `--depth` config flag removed from `npm - update`. - -### `npm outdated` - -- [RFC - 27](https://github.com/npm/rfcs/blob/latest/implemented/0027-remove-depth-outdated.md) - Remove `--depth` config from `npm outdated`. Only top-level dependencies - are shown, unless `--all` config option is set. - -### `npm adduser`, `npm login` - -- The `--sso` options are deprecated, and will print a warning. - -### `npm audit` - -- Output and data structure is significantly refactored to call attention - to issues, identify classes of fixes not previously available, and - remove extraneous data not used for any purpose. - - **BREAKING CHANGE**: Any tools consuming the output of `npm audit` will - almost certainly need to be updated, as this has changed significantly, - both in the readable and `--json` output styles. - -### `npm dedupe` - -- Performs a full dependency tree reification to disk. As a result, `npm - dedupe` can cause missing or invalid packages to be installed or updated, - though it will only do this if required by the stated dependency - semantics. - -- Note that the `--prefer-dedupe` flag has been added, so that you may - install in a maximally deduplicated state from the outset. - -### `npm fund` - -- Human readable output updated, reinstating depth level to the printed - output. - -### `npm ls` - -- Extraneous dependencies are listed based on their location in the - `node_modules` tree. -- `npm ls` only prints the first level of dependencies by default. You can - make it print more of the tree by using `--depth=` to set a specific - depth, or `--all` to print all of them. - -### `npm pack`, `npm publish` - -- Generated gzipped tarballs no longer contain the zlib OS indicator. As a - result, they are truly dependent _only_ on the contents of the package, - and fully reproducible. However, anyone relying on this byte to identify - the operating system of a package's creation may no longer rely on it. - -### `npm rebuild` - -- Runs package installation scripts as well as re-creating links to bins. - Properly respects the `--ignore-scripts` and `--bin-links=false` - configuration options. - -### `npm build`, `npm unbuild` - -- These two internal commands were removed, as they are no longer needed. - -### `npm test` - -- When no test is specified, will fail with `missing script: test` rather - than injecting a synthetic `echo 'Error: no test specified'` test script - into the `package.json` data. - -## Credits - -Huge thanks to the people who wrote code for this update, as well as our -group of dedicated Open RFC call participants. Your participation has -contributed immeasurably to the quality and design of npm. diff --git a/deps/npm/CONTRIBUTING.md b/deps/npm/CONTRIBUTING.md deleted file mode 100644 index 3e3512ffeaec05..00000000000000 --- a/deps/npm/CONTRIBUTING.md +++ /dev/null @@ -1,191 +0,0 @@ -# npm CLI Contributor Roles and Responsibilities - -## Table of Contents - -* [Introduction](#introduction) -* [Code Structure](#code-structure) -* [Running Tests](#running-tests) -* [Debugging](#debugging) -* [Coverage](#coverage) -* [Benchmarking](#benchmarking) -* [Types of Contributions](#types-of-contributions) - * [Contributing an Issue?](#contributing-an-issue) - * [Contributing a Question?](#contributing-a-question) - * [Contributing a Bug Fix?](#contributing-a-bug-fix) - * [Contributing a Feature?](#contributing-a-bug-feature) -* [Development Dependencies](#development-dependencies) -* [Dependencies](#dependencies) - -## Introduction - -Welcome to the npm CLI Contributor Guide! This document outlines the npm CLI repository's process for community interaction and contribution. This includes the issue tracker, pull requests, wiki pages, and, to a certain extent, outside communication in the context of the npm CLI. This is an entry point for anyone wishing to contribute their time and effort to making npm a better tool for the JavaScript community! - -All interactions in the npm repository are covered by the [npm Code of Conduct](https://www.npmjs.com/policies/conduct) - - -## Code Structure -``` -/ -├── bin/ -│ │ # Directory for executable files. It's very rare that you -│ │ # will need to update a file in this directory. -│ │ -│ ├── npm # npm-cli entrypoint for bourne shell -│ ├── npm-cli.js # npm-cli entrypoint for node -│ ├── npm.cmd # npm-cli entrypoint for windows -│ ├── npx # npx entrypoint for bourne shell -│ ├── npx-cli.js # npx entrypoint for node -│ └── npx.cmd # npx entrypoint for windows -│ -├── docs/ 📖 -│ │ # Directory that contains the documentation website for -│ │ # the npm-cli. You can run this website locally, and have -│ │ # offline docs! 🔥📖🤓 -│ │ -│ ├── content/ # Markdown files for site content -│ ├── src/ # Source files for the website; gatsby related -│ └── package.json # Site manifest; scripts and dependencies -│ -├── lib/ 📦 -│ # All the Good Bits(tm) of the CLI project live here -│ -├── node_modules/ 🔋 -│ # Vendored dependencies for the CLI project (See the -│ # dependencies section below for more details). -│ -├── scripts/ 📜 -│ # We've created some helper scripts for working with the -│ # CLI project, specifically around managing our vendored -│ # dependencies, merging in pull-requests, and publishing -│ # releases. -│ -├── test/ 🧪 -│ # All the tests for the CLI live in this folder. We've -│ # got a lot of tests 🤓🧪🩺 -│ -├── CONTRIBUTING.md # This file! 🎉 -└── package.json # The projects main manifest file 📃 -``` - -## Running Tests - -``` -# Make sure you install the dependencies first before running tests. -$ npm install - -# Run tests for the CLI (it could take a while). -$ npm run test -``` - -## Debugging - -It can be tricky to track down issues in the CLI. It's a large code base that has been evolving for over a decade. There is a handy `make` command that will connect the **cloned repository** you have on your machine with the global command, so you can add `console.log` statements or debug any other way you feel most comfortable with. - -``` -# Clone the repository to start with -$ git clone git@github.com:npm/cli.git - -# Change working directories into the repository -$ cd cli - -# Make sure you have the latest code (if that's what you're trying to debug) -$ git fetch origin latest - -# Connect repository to the global namespace -$ make link - -################# -# ALTERNATIVELY -################# -# If you're working on a feature or bug, you can run the same command on your -# working branch and link that code. - -# Create new branch to work from (there are many ways) -$ git checkout -b feature/awesome-feature - -# Connect repository to global namespace -$ make link -``` - -## Coverage - -We try and make sure that each new feature or bug fix has tests to go along with them in order to keep code coverages consistent and increasing. We are actively striving for 100% code coverage! - -``` -# You can run the following command to find out coverage -$ npm run test-coverage -``` - -## Benchmarking - -We often want to know if the bug we've fixed for the feature we've added has any sort of performance impact. We've created a [benchmark suite](https://github.com/npm/benchmarks) to run against the CLI project from pull-requests. If you would like to know if there are any performance impacts to the work you're contributing, simply do the following: - -1. Make a pull-request against this repository -2. Add the following comment to the pull-request: "`test this please ✅`" - -This will trigger the [benchmark suite](https://github.com/npm/benchmarks) to run against your pull-request, and when it's finished running it will post a comment on your pull-request just like below. You'll be able to see the results from the suite inline in your pull-request. - -> You'll notice that the bot-user will also add a 🚀 reaction to your comment to -let you know that it's sent the request to start the benchmark suite. - -![image](https://user-images.githubusercontent.com/2818462/72312698-e2e57f80-3656-11ea-9fcf-4a8f6b97b0d1.png) - -If you've updated your pull-request and you'd like to run the the benchmark suite again, simple update your original comment, by adding `test this please ✅` again, or simply just adding another emoji to the **end**. _(The trigger is the phrase "test this please ✅" at the beginning of a comment. Updates will trigger as well, so long as the phrase stays at the beginning.)_. - -![image](https://user-images.githubusercontent.com/2818462/72313006-ec231c00-3657-11ea-9bd9-227634d67362.png) - -## Types of Contributions - -### Contributing an Issue? - -Great!! Is your [new issue](https://github.com/npm/cli/issues/new/choose) a [bug](https://github.com/npm/cli/issues/new?template=bug.md&title=%5BBUG%5D+%3Ctitle%3E), a [feature](https://github.com/npm/cli/issues/new?template=feature.md&title=%5BFEATURE%5D+%3Ctitle%3E), or a [question](https://github.com/npm/cli/issues/new?template=question.md&title=%5BQUESTION%5D+%3Ctitle%3E)? - -### Contributing a Question? - -Huh? 🤔 Got a situation you're not sure about?! Perfect! We've got some resources you can use. - -* Our [documentation site](https://docs.npmjs.com/) -* The local docs that come with the CLI project - - > **Example**: `npm help install --viewer browser` - -* The man pages that are built and shipped with the CLI - - > **Example**: `man npm-install` (only on linux/macOS) - -* Search of the [current issues](https://github.com/npm/cli/issues) - -### Contributing a Bug Fix? - -We'd be happy to triage and help! Head over to the issues and [create a new one](https://github.com/npm/cli/issues/new?template=bug.md&title=%5BBUG%5D+%3Ctitle%3E)! - -> We'll need a little bit of information about what happened, rather than "it broke". Such as: -* When did/does this bug happen? -* Can you reproduce it? _(Can you make it happen more than once.)_ -* What version of `node`/`npm` are you running on your computer? -* What did you expect it to do? -* What did it _actually do? -* etc... - -### Contributing a Feature? - -Snazzy, we're always up for fancy new things! If the feature is fairly minor, the team can triage it and prioritize it into our backlog. However, if the feature is a little more complex, then it's best to create an [RFC](https://en.wikipedia.org/wiki/Request_for_Comments) in our [RFC repository](https://github.com/npm/rfcs). Exactly how to do that is outlined in that repository. If you're not sure _exactly_ how to implement your idea, or don't want to make a document about your idea, then please create an issue on that repository. We consider these RRFC's, or a "Requesting Request For Comment". - -## Development Dependencies - -You'll need a few things installed in order to update and test the CLI project during development: - -* [node](https://nodejs.org/) v8 or greater - -> We recommend that you have a [node version manager](https://github.com/nvm-sh/nvm) installed if you plan on fixing bugs that might be present in a specific version of node. With a version manager you can easily switch versions of node and test if your changes to the CLI project are working. - -* [git](https://git-scm.com/) v2.11+ - - -## Dependencies - -> Package vendoring is commonly referred to as the case where dependent packages are stored in the same place as your project. That usually means you dependencies are checked into your source management system, such as Git. - -The CLI project vendors its dependencies in the `node_modules/` folder. Meaning all the dependencies that the CLI project uses are contained within the project itself. This is represented by the `bundledDependencies` section in the root level `package.json` file. The main reason for this is because the `npm` CLI project is distributed with the NodeJS runtime and needs to work out of the box, which means all dependencies need to be available after the runtime is installed. - -There are a couple scripts created to help manage this process in the `scripts/` folder. diff --git a/deps/npm/LICENSE b/deps/npm/LICENSE deleted file mode 100644 index 0b6c2287459632..00000000000000 --- a/deps/npm/LICENSE +++ /dev/null @@ -1,235 +0,0 @@ -The npm application -Copyright (c) npm, Inc. and Contributors -Licensed on the terms of The Artistic License 2.0 - -Node package dependencies of the npm application -Copyright (c) their respective copyright owners -Licensed on their respective license terms - -The npm public registry at https://registry.npmjs.org -and the npm website at https://www.npmjs.com -Operated by npm, Inc. -Use governed by terms published on https://www.npmjs.com - -"Node.js" -Trademark Joyent, Inc., https://joyent.com -Neither npm nor npm, Inc. are affiliated with Joyent, Inc. - -The Node.js application -Project of Node Foundation, https://nodejs.org - -The npm Logo -Copyright (c) Mathias Pettersson and Brian Hammond - -"Gubblebum Blocky" typeface -Copyright (c) Tjarda Koster, https://jelloween.deviantart.com -Used with permission - - --------- - - -The Artistic License 2.0 - -Copyright (c) 2000-2006, The Perl Foundation. - -Everyone is permitted to copy and distribute verbatim copies -of this license document, but changing it is not allowed. - -Preamble - -This license establishes the terms under which a given free software -Package may be copied, modified, distributed, and/or redistributed. -The intent is that the Copyright Holder maintains some artistic -control over the development of that Package while still keeping the -Package available as open source and free software. - -You are always permitted to make arrangements wholly outside of this -license directly with the Copyright Holder of a given Package. If the -terms of this license do not permit the full use that you propose to -make of the Package, you should contact the Copyright Holder and seek -a different licensing arrangement. - -Definitions - - "Copyright Holder" means the individual(s) or organization(s) - named in the copyright notice for the entire Package. - - "Contributor" means any party that has contributed code or other - material to the Package, in accordance with the Copyright Holder's - procedures. - - "You" and "your" means any person who would like to copy, - distribute, or modify the Package. - - "Package" means the collection of files distributed by the - Copyright Holder, and derivatives of that collection and/or of - those files. A given Package may consist of either the Standard - Version, or a Modified Version. - - "Distribute" means providing a copy of the Package or making it - accessible to anyone else, or in the case of a company or - organization, to others outside of your company or organization. - - "Distributor Fee" means any fee that you charge for Distributing - this Package or providing support for this Package to another - party. It does not mean licensing fees. - - "Standard Version" refers to the Package if it has not been - modified, or has been modified only in ways explicitly requested - by the Copyright Holder. - - "Modified Version" means the Package, if it has been changed, and - such changes were not explicitly requested by the Copyright - Holder. - - "Original License" means this Artistic License as Distributed with - the Standard Version of the Package, in its current version or as - it may be modified by The Perl Foundation in the future. - - "Source" form means the source code, documentation source, and - configuration files for the Package. - - "Compiled" form means the compiled bytecode, object code, binary, - or any other form resulting from mechanical transformation or - translation of the Source form. - - -Permission for Use and Modification Without Distribution - -(1) You are permitted to use the Standard Version and create and use -Modified Versions for any purpose without restriction, provided that -you do not Distribute the Modified Version. - - -Permissions for Redistribution of the Standard Version - -(2) You may Distribute verbatim copies of the Source form of the -Standard Version of this Package in any medium without restriction, -either gratis or for a Distributor Fee, provided that you duplicate -all of the original copyright notices and associated disclaimers. At -your discretion, such verbatim copies may or may not include a -Compiled form of the Package. - -(3) You may apply any bug fixes, portability changes, and other -modifications made available from the Copyright Holder. The resulting -Package will still be considered the Standard Version, and as such -will be subject to the Original License. - - -Distribution of Modified Versions of the Package as Source - -(4) You may Distribute your Modified Version as Source (either gratis -or for a Distributor Fee, and with or without a Compiled form of the -Modified Version) provided that you clearly document how it differs -from the Standard Version, including, but not limited to, documenting -any non-standard features, executables, or modules, and provided that -you do at least ONE of the following: - - (a) make the Modified Version available to the Copyright Holder - of the Standard Version, under the Original License, so that the - Copyright Holder may include your modifications in the Standard - Version. - - (b) ensure that installation of your Modified Version does not - prevent the user installing or running the Standard Version. In - addition, the Modified Version must bear a name that is different - from the name of the Standard Version. - - (c) allow anyone who receives a copy of the Modified Version to - make the Source form of the Modified Version available to others - under - - (i) the Original License or - - (ii) a license that permits the licensee to freely copy, - modify and redistribute the Modified Version using the same - licensing terms that apply to the copy that the licensee - received, and requires that the Source form of the Modified - Version, and of any works derived from it, be made freely - available in that license fees are prohibited but Distributor - Fees are allowed. - - -Distribution of Compiled Forms of the Standard Version -or Modified Versions without the Source - -(5) You may Distribute Compiled forms of the Standard Version without -the Source, provided that you include complete instructions on how to -get the Source of the Standard Version. Such instructions must be -valid at the time of your distribution. If these instructions, at any -time while you are carrying out such distribution, become invalid, you -must provide new instructions on demand or cease further distribution. -If you provide valid instructions or cease distribution within thirty -days after you become aware that the instructions are invalid, then -you do not forfeit any of your rights under this license. - -(6) You may Distribute a Modified Version in Compiled form without -the Source, provided that you comply with Section 4 with respect to -the Source of the Modified Version. - - -Aggregating or Linking the Package - -(7) You may aggregate the Package (either the Standard Version or -Modified Version) with other packages and Distribute the resulting -aggregation provided that you do not charge a licensing fee for the -Package. Distributor Fees are permitted, and licensing fees for other -components in the aggregation are permitted. The terms of this license -apply to the use and Distribution of the Standard or Modified Versions -as included in the aggregation. - -(8) You are permitted to link Modified and Standard Versions with -other works, to embed the Package in a larger work of your own, or to -build stand-alone binary or bytecode versions of applications that -include the Package, and Distribute the result without restriction, -provided the result does not expose a direct interface to the Package. - - -Items That are Not Considered Part of a Modified Version - -(9) Works (including, but not limited to, modules and scripts) that -merely extend or make use of the Package, do not, by themselves, cause -the Package to be a Modified Version. In addition, such works are not -considered parts of the Package itself, and are not subject to the -terms of this license. - - -General Provisions - -(10) Any use, modification, and distribution of the Standard or -Modified Versions is governed by this Artistic License. By using, -modifying or distributing the Package, you accept this license. Do not -use, modify, or distribute the Package, if you do not accept this -license. - -(11) If your Modified Version has been derived from a Modified -Version made by someone other than you, you are nevertheless required -to ensure that your Modified Version complies with the requirements of -this license. - -(12) This license does not grant you the right to use any trademark, -service mark, tradename, or logo of the Copyright Holder. - -(13) This license includes the non-exclusive, worldwide, -free-of-charge patent license to make, have made, use, offer to sell, -sell, import and otherwise transfer the Package with respect to any -patent claims licensable by the Copyright Holder that are necessarily -infringed by the Package. If you institute patent litigation -(including a cross-claim or counterclaim) against any party alleging -that the Package constitutes direct or contributory patent -infringement, then this Artistic License to you shall terminate on the -date that such litigation is filed. - -(14) Disclaimer of Warranty: -THE PACKAGE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS -IS' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. THE IMPLIED -WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR -NON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT PERMITTED BY YOUR LOCAL -LAW. UNLESS REQUIRED BY LAW, NO COPYRIGHT HOLDER OR CONTRIBUTOR WILL -BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL -DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THE PACKAGE, EVEN IF -ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - --------- diff --git a/deps/npm/Makefile b/deps/npm/Makefile deleted file mode 100644 index 83046c59aca9b2..00000000000000 --- a/deps/npm/Makefile +++ /dev/null @@ -1,100 +0,0 @@ -# vim: set softtabstop=2 shiftwidth=2: -SHELL = bash - -PUBLISHTAG = $(shell node scripts/publish-tag.js) -BRANCH = $(shell git rev-parse --abbrev-ref HEAD) - -markdowns = $(shell find docs -name '*.md' | grep -v 'index') - -# these docs have the @VERSION@ tag in them, so they have to be rebuilt -# whenever the package.json is touched, in case the version changed. -version_mandocs = $(shell grep -rl '@VERSION@' docs/content \ - |sed 's|.md|.1|g' \ - |sed 's|docs/content/commands/|man/man1/|g' ) - -cli_mandocs = $(shell find docs/content/commands -name '*.md' \ - |sed 's|.md|.1|g' \ - |sed 's|docs/content/commands/|man/man1/|g' ) - -files_mandocs = $(shell find docs/content/configuring-npm -name '*.md' \ - |sed 's|.md|.5|g' \ - |sed 's|docs/content/configuring-npm/|man/man5/|g' ) \ - -misc_mandocs = $(shell find docs/content/using-npm -name '*.md' \ - |sed 's|.md|.7|g' \ - |sed 's|docs/content/using-npm/|man/man7/|g' ) \ - -mandocs = $(cli_mandocs) $(files_mandocs) $(misc_mandocs) - -all: docs - -docs: mandocs htmldocs - -mandocs: dev-deps $(mandocs) - -$(version_mandocs): package.json - -htmldocs: dev-deps - node bin/npm-cli.js rebuild - cd docs && node dockhand.js >&2 - -clean: docs-clean gitclean - -docsclean: docs-clean - -docs-clean: - rm -rf man - -## build-time dependencies for the documentation -dev-deps: - node bin/npm-cli.js install --only=dev --no-audit --ignore-scripts - -## targets for man files, these are encouraged to be only built by running `make docs` or `make mandocs` -man/man1/%.1: docs/content/commands/%.md scripts/docs-build.js - @[ -d man/man1 ] || mkdir -p man/man1 - node scripts/docs-build.js $< $@ - -man/man5/npm-json.5: man/man5/package.json.5 - cp $< $@ - -man/man5/npm-global.5: man/man5/folders.5 - cp $< $@ - -man/man5/%.5: docs/content/configuring-npm/%.md scripts/docs-build.js - @[ -d man/man5 ] || mkdir -p man/man5 - node scripts/docs-build.js $< $@ - -man/man7/%.7: docs/content/using-npm/%.md scripts/docs-build.js - @[ -d man/man7 ] || mkdir -p man/man7 - node scripts/docs-build.js $< $@ - -test: dev-deps - node bin/npm-cli.js test - -ls-ok: - node . ls --production >/dev/null - -gitclean: - git clean -fd - -uninstall: - node bin/npm-cli.js rm -g -f npm - -link: uninstall - node bin/npm-cli.js link -f --ignore-scripts - -prune: - node bin/npm-cli.js prune --production --no-save --no-audit - @[[ "$(shell git status -s)" != "" ]] && echo "ERR: found unpruned files" && exit 1 || echo "git status is clean" - - -publish: gitclean ls-ok link test docs-clean docs prune - @git push origin :v$(shell node bin/npm-cli.js --no-timing -v) 2>&1 || true - git push origin $(BRANCH) &&\ - git push origin --tags &&\ - node bin/npm-cli.js publish --tag=$(PUBLISHTAG) - -release: gitclean ls-ok docs-clean docs prune - @bash scripts/release.sh - -.PHONY: all latest install dev link docs clean uninstall test man docs-clean docsclean release ls-ok dev-deps prune diff --git a/deps/npm/README.md b/deps/npm/README.md deleted file mode 100644 index 05da169f259619..00000000000000 --- a/deps/npm/README.md +++ /dev/null @@ -1,161 +0,0 @@ -npm(1) -- a JavaScript package manager -============================== - -[![Build Status](https://img.shields.io/travis/npm/cli/latest.svg)](https://travis-ci.org/npm/cli) - -## SYNOPSIS - -This is just enough info to get you up and running. - -Much more info will be available via `npm help` once it's installed. - -## IMPORTANT - -**You need node v6 or higher to run this program.** - -To install an old **and unsupported** version of npm that works on node v5 -and prior, clone the git repo and dig through the old tags and branches. - -**npm is configured to use npm, Inc.'s public registry at - by default.** Use of the npm public registry -is subject to terms of use available at . - -You can configure npm to use any compatible registry you -like, and even run your own registry. Check out the [doc on -registries](https://docs.npmjs.com/misc/registry). - -## Super Easy Install - -npm is bundled with [node](https://nodejs.org/en/download/). - -### Windows Computers - -[Get the MSI](https://nodejs.org/en/download/). npm is in it. - -### Apple Macintosh Computers - -[Get the pkg](https://nodejs.org/en/download/). npm is in it. - -### Other Sorts of Unices - -Run `make install`. npm will be installed with node. - -If you want a more fancy pants install (a different version, customized -paths, etc.) then read on. - -## Fancy Install (Unix) - -There's a pretty robust install script at -. You can download that and run it. - -Here's an example using curl: - -```sh -curl -L https://www.npmjs.com/install.sh | sh -``` - -### Slightly Fancier - -You can set any npm configuration params with that script: - -```sh -npm_config_prefix=/some/path sh install.sh -``` - -Or, you can run it in uber-debuggery mode: - -```sh -npm_debug=1 sh install.sh -``` - -### Even Fancier - -Get the code with git. Use `make` to build the docs and do other stuff. -If you plan on hacking on npm, `make link` is your friend. - -If you've got the npm source code, you can also semi-permanently set -arbitrary config keys using the `./configure --key=val ...`, and then -run npm commands by doing `node bin/npm-cli.js `. (This is helpful -for testing, or running stuff without actually installing npm itself.) - -## Windows Install or Upgrade - -Many improvements for Windows users have been made in npm 3 - you will have a better -experience if you run a recent version of npm. To upgrade, either use [Microsoft's -upgrade tool](https://github.com/felixrieseberg/npm-windows-upgrade), -[download a new version of Node](https://nodejs.org/en/download/), -or follow the Windows upgrade instructions in the -[Installing/upgrading npm](https://npm.community/t/installing-upgrading-npm/251/2) post. - -If that's not fancy enough for you, then you can fetch the code with -git, and mess with it directly. - -## Installing on Cygwin - -No. - -## Uninstalling - -So sad to see you go. - -```sh -sudo npm uninstall npm -g -``` -Or, if that fails, - -```sh -sudo make uninstall -``` - -## More Severe Uninstalling - -Usually, the above instructions are sufficient. That will remove -npm, but leave behind anything you've installed. - -If you would like to remove all the packages that you have installed, -then you can use the `npm ls` command to find them, and then `npm rm` to -remove them. - -To remove cruft left behind by npm 0.x, you can use the included -`clean-old.sh` script file. You can run it conveniently like this: - -```sh -npm explore npm -g -- sh scripts/clean-old.sh -``` - -npm uses two configuration files, one for per-user configs, and another -for global (every-user) configs. You can view them by doing: - -```sh -npm config get userconfig # defaults to ~/.npmrc -npm config get globalconfig # defaults to /usr/local/etc/npmrc -``` - -Uninstalling npm does not remove configuration files by default. You -must remove them yourself manually if you want them gone. Note that -this means that future npm installs will not remember the settings that -you have chosen. - -## More Docs - -Check out the [docs](https://docs.npmjs.com/). - -You can use the `npm help` command to read any of them. - -If you're a developer, and you want to use npm to publish your program, -you should [read this](https://docs.npmjs.com/misc/developers). - -## BUGS - -When you find issues, please report them: - -* web: - - -Be sure to include *all* of the output from the npm command that didn't work -as expected. The `npm-debug.log` file is also helpful to provide. - -## SEE ALSO - -* npm(1) -* npm-help(1) diff --git a/deps/npm/bin/node-gyp-bin/node-gyp b/deps/npm/bin/node-gyp-bin/node-gyp deleted file mode 100755 index 70efb6f339f768..00000000000000 --- a/deps/npm/bin/node-gyp-bin/node-gyp +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env sh -if [ "x$npm_config_node_gyp" = "x" ]; then - node "`dirname "$0"`/../../node_modules/node-gyp/bin/node-gyp.js" "$@" -else - "$npm_config_node_gyp" "$@" -fi diff --git a/deps/npm/bin/node-gyp-bin/node-gyp.cmd b/deps/npm/bin/node-gyp-bin/node-gyp.cmd deleted file mode 100755 index 1ef2ae0c68fc4b..00000000000000 --- a/deps/npm/bin/node-gyp-bin/node-gyp.cmd +++ /dev/null @@ -1,5 +0,0 @@ -if not defined npm_config_node_gyp ( - node "%~dp0\..\..\node_modules\node-gyp\bin\node-gyp.js" %* -) else ( - node "%npm_config_node_gyp%" %* -) diff --git a/deps/npm/bin/npm b/deps/npm/bin/npm deleted file mode 100755 index 4183703a7857e9..00000000000000 --- a/deps/npm/bin/npm +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/sh -(set -o igncr) 2>/dev/null && set -o igncr; # cygwin encoding fix - -basedir=`dirname "$0"` - -case `uname` in - *CYGWIN*) basedir=`cygpath -w "$basedir"`;; -esac - -NODE_EXE="$basedir/node.exe" -if ! [ -x "$NODE_EXE" ]; then - NODE_EXE="$basedir/node" -fi -if ! [ -x "$NODE_EXE" ]; then - NODE_EXE=node -fi - -NPM_CLI_JS="$basedir/node_modules/npm/bin/npm-cli.js" - -case `uname` in - *MINGW*) - NPM_PREFIX=`"$NODE_EXE" "$NPM_CLI_JS" prefix -g` - NPM_PREFIX_NPM_CLI_JS="$NPM_PREFIX/node_modules/npm/bin/npm-cli.js" - if [ -f "$NPM_PREFIX_NPM_CLI_JS" ]; then - NPM_CLI_JS="$NPM_PREFIX_NPM_CLI_JS" - fi - ;; - *CYGWIN*) - NPM_PREFIX=`"$NODE_EXE" "$NPM_CLI_JS" prefix -g` - NPM_PREFIX_NPM_CLI_JS="$NPM_PREFIX/node_modules/npm/bin/npm-cli.js" - if [ -f "$NPM_PREFIX_NPM_CLI_JS" ]; then - NPM_CLI_JS="$NPM_PREFIX_NPM_CLI_JS" - fi - ;; -esac - -"$NODE_EXE" "$NPM_CLI_JS" "$@" diff --git a/deps/npm/bin/npm-cli.js b/deps/npm/bin/npm-cli.js deleted file mode 100755 index 577abe03e7b8e9..00000000000000 --- a/deps/npm/bin/npm-cli.js +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env node -require('../lib/cli.js')(process) diff --git a/deps/npm/bin/npm.cmd b/deps/npm/bin/npm.cmd deleted file mode 100755 index f111c59d1efb6e..00000000000000 --- a/deps/npm/bin/npm.cmd +++ /dev/null @@ -1,19 +0,0 @@ -:: Created by npm, please don't edit manually. -@ECHO OFF - -SETLOCAL - -SET "NODE_EXE=%~dp0\node.exe" -IF NOT EXIST "%NODE_EXE%" ( - SET "NODE_EXE=node" -) - -SET "NPM_CLI_JS=%~dp0\node_modules\npm\bin\npm-cli.js" -FOR /F "delims=" %%F IN ('CALL "%NODE_EXE%" "%NPM_CLI_JS%" prefix -g') DO ( - SET "NPM_PREFIX_NPM_CLI_JS=%%F\node_modules\npm\bin\npm-cli.js" -) -IF EXIST "%NPM_PREFIX_NPM_CLI_JS%" ( - SET "NPM_CLI_JS=%NPM_PREFIX_NPM_CLI_JS%" -) - -"%NODE_EXE%" "%NPM_CLI_JS%" %* diff --git a/deps/npm/bin/npx b/deps/npm/bin/npx deleted file mode 100755 index f43754d620a8ad..00000000000000 --- a/deps/npm/bin/npx +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/sh - -# This is used by the Node.js installer, which expects the cygwin/mingw -# shell script to already be present in the npm dependency folder. - -(set -o igncr) 2>/dev/null && set -o igncr; # cygwin encoding fix - -basedir=`dirname "$0"` - -case `uname` in - *CYGWIN*) basedir=`cygpath -w "$basedir"`;; -esac - -NODE_EXE="$basedir/node.exe" -if ! [ -x "$NODE_EXE" ]; then - NODE_EXE=node -fi - -NPM_CLI_JS="$basedir/node_modules/npm/bin/npm-cli.js" -NPX_CLI_JS="$basedir/node_modules/npm/bin/npx-cli.js" - -case `uname` in - *MINGW*) - NPM_PREFIX=`"$NODE_EXE" "$NPM_CLI_JS" prefix -g` - NPM_PREFIX_NPX_CLI_JS="$NPM_PREFIX/node_modules/npm/bin/npx-cli.js" - if [ -f "$NPM_PREFIX_NPX_CLI_JS" ]; then - NPX_CLI_JS="$NPM_PREFIX_NPX_CLI_JS" - fi - ;; - *CYGWIN*) - NPM_PREFIX=`"$NODE_EXE" "$NPM_CLI_JS" prefix -g` - NPM_PREFIX_NPX_CLI_JS="$NPM_PREFIX/node_modules/npm/bin/npx-cli.js" - if [ -f "$NPM_PREFIX_NPX_CLI_JS" ]; then - NPX_CLI_JS="$NPM_PREFIX_NPX_CLI_JS" - fi - ;; -esac - -"$NODE_EXE" "$NPX_CLI_JS" "$@" diff --git a/deps/npm/bin/npx-cli.js b/deps/npm/bin/npx-cli.js deleted file mode 100755 index f4a419972f7cf4..00000000000000 --- a/deps/npm/bin/npx-cli.js +++ /dev/null @@ -1,128 +0,0 @@ -#!/usr/bin/env node - -const cli = require('../lib/cli.js') - -// run the resulting command as `npm exec ...args` -process.argv[1] = require.resolve('./npm-cli.js') -process.argv.splice(2, 0, 'exec') - -// TODO: remove the affordances for removed items in npm v9 -const removedSwitches = new Set([ - 'always-spawn', - 'ignore-existing', - 'shell-auto-fallback' -]) - -const removedOpts = new Set([ - 'npm', - 'node-arg', - 'n' -]) - -const removed = new Set([ - ...removedSwitches, - ...removedOpts -]) - -const { types, shorthands } = require('../lib/utils/config.js') -const npmSwitches = Object.entries(types) - .filter(([key, type]) => type === Boolean || - (Array.isArray(type) && type.includes(Boolean))) - .map(([key, type]) => key) - -// things that don't take a value -const switches = new Set([ - ...removedSwitches, - ...npmSwitches, - 'no-install', - 'quiet', - 'q', - 'version', - 'v', - 'help', - 'h' -]) - -// things that do take a value -const opts = new Set([ - ...removedOpts, - 'package', - 'p', - 'cache', - 'userconfig', - 'call', - 'c', - 'shell', - 'npm', - 'node-arg', - 'n' -]) - -// break out of loop when we find a positional argument or -- -// If we find a positional arg, we shove -- in front of it, and -// let the normal npm cli handle the rest. -let i -let sawRemovedFlags = false -for (i = 3; i < process.argv.length; i++) { - const arg = process.argv[i] - if (arg === '--') { - break - } else if (/^-/.test(arg)) { - const [key, ...v] = arg.replace(/^-+/, '').split('=') - - switch (key) { - case 'p': - process.argv[i] = ['--package', ...v].join('=') - break - - case 'shell': - process.argv[i] = ['--script-shell', ...v].join('=') - break - - case 'no-install': - process.argv[i] = '--yes=false' - break - - default: - // resolve shorthands and run again - if (shorthands[key] && !removed.has(key)) { - const a = [...shorthands[key]] - if (v.length) { - a.push(v.join('=')) - } - process.argv.splice(i, 1, ...a) - i-- - continue - } - break - } - - if (removed.has(key)) { - console.error(`npx: the --${key} argument has been removed.`) - sawRemovedFlags = true - process.argv.splice(i, 1) - i-- - } - - if (v.length === 0 && !switches.has(key) && - (opts.has(key) || !/^-/.test(process.argv[i + 1]))) { - // value will be next argument, skip over it. - if (removed.has(key)) { - // also remove the value for the cut key. - process.argv.splice(i + 1, 1) - } else { - i++ - } - } - } else { - // found a positional arg, put -- in front of it, and we're done - process.argv.splice(i, 0, '--') - break - } -} - -if (sawRemovedFlags) { - console.error('See `npm help exec` for more information') -} - -cli(process) diff --git a/deps/npm/bin/npx.cmd b/deps/npm/bin/npx.cmd deleted file mode 100755 index b79518ec505409..00000000000000 --- a/deps/npm/bin/npx.cmd +++ /dev/null @@ -1,20 +0,0 @@ -:: Created by npm, please don't edit manually. -@ECHO OFF - -SETLOCAL - -SET "NODE_EXE=%~dp0\node.exe" -IF NOT EXIST "%NODE_EXE%" ( - SET "NODE_EXE=node" -) - -SET "NPM_CLI_JS=%~dp0\node_modules\npm\bin\npm-cli.js" -SET "NPX_CLI_JS=%~dp0\node_modules\npm\bin\npx-cli.js" -FOR /F "delims=" %%F IN ('CALL "%NODE_EXE%" "%NPM_CLI_JS%" prefix -g') DO ( - SET "NPM_PREFIX_NPX_CLI_JS=%%F\node_modules\npm\bin\npx-cli.js" -) -IF EXIST "%NPM_PREFIX_NPX_CLI_JS%" ( - SET "NPX_CLI_JS=%NPM_PREFIX_NPX_CLI_JS%" -) - -"%NODE_EXE%" "%NPX_CLI_JS%" %* diff --git a/deps/npm/changelogs/CHANGELOG-1.md b/deps/npm/changelogs/CHANGELOG-1.md deleted file mode 100644 index ea409c3d998b7b..00000000000000 --- a/deps/npm/changelogs/CHANGELOG-1.md +++ /dev/null @@ -1,743 +0,0 @@ -### v1.4.29 (2015-10-29): - -#### THINGS ARE HAPPENING IN LTS LAND - -In a special one-off release as part of the [strategy to get a version of npm -into Node LTS that works with the current -registry](https://github.com/nodejs/LTS/issues/37), modify npm to print out -this deprecation banner literally every time npm is invoked to do anything: - -``` -npm WARN deprecated This version of npm lacks support for important features, -npm WARN deprecated such as scoped packages, offered by the primary npm -npm WARN deprecated registry. Consider upgrading to at least npm@2, if not the -npm WARN deprecated latest stable version. To upgrade to npm@2, run: -npm WARN deprecated -npm WARN deprecated npm -g install npm@latest-2 -npm WARN deprecated -npm WARN deprecated To upgrade to the latest stable version, run: -npm WARN deprecated -npm WARN deprecated npm -g install npm@latest -npm WARN deprecated -npm WARN deprecated (Depending on how Node.js was installed on your system, you -npm WARN deprecated may need to prefix the preceding commands with `sudo`, or if -npm WARN deprecated on Windows, run them from an Administrator prompt.) -npm WARN deprecated -npm WARN deprecated If you're running the version of npm bundled with -npm WARN deprecated Node.js 0.10 LTS, be aware that the next version of 0.10 LTS -npm WARN deprecated will be bundled with a version of npm@2, which has some small -npm WARN deprecated backwards-incompatible changes made to `npm run-script` and -npm WARN deprecated semver behavior. -``` - -The message basically tells the tale: Node 0.10 will finally be getting -`npm@2`, so those of you who haven't upgraded your build systems to deal with -its (relatively small) breaking changes should do so now. - -Also, this version doesn't even pretend that it can deal with scoped packages, -which, given the confusing behavior of older versions of `npm@1.4`, where it -would sometimes try to install packages from GitHub, is a distinct improvement. - -There is no good reason for you as an end user to upgrade to this version of -npm yourself. - -* [`709e9b4`](https://github.com/npm/npm/commit/709e9b44f5df9817a1c4babfbf26a2329bd265fb) - Print 20-line deprecation banner on all command invocations. - ([@othiym23](https://github.com/othiym23)) -* [`0c29d09`](https://github.com/npm/npm/commit/0c29d0906608e8e174bd30a7a245e19795326051) - Crash out immediately with an exhortation to upgrade on attempts to use - scoped packages. ([@othiym23](https://github.com/othiym23)) - -### v1.5.0-alpha-4 (2014-07-18): - -* fall back to `_auth` config as default auth when using default registry - ([@isaacs](https://github.com/isaacs)) -* support for 'init.version' for those who don't want to deal with semver 0.0.x - oddities ([@rvagg](https://github.com/rvagg)) -* [`be06213`](https://github.com/npm/npm/commit/be06213415f2d51a50d2c792b4cd0d3412a9a7b1) - remove residual support for `win` log level - ([@aterris](https://github.com/aterris)) - -### v1.5.0-alpha-3 (2014-07-17): - -* [`a3a85dd`](https://github.com/npm/npm/commit/a3a85dd004c9245a71ad2f0213bd1a9a90d64cd6) - `--save` scoped packages correctly ([@othiym23](https://github.com/othiym23)) -* [`18a3385`](https://github.com/npm/npm/commit/18a3385bcf8bfb8312239216afbffb7eec759150) - `npm-registry-client@3.0.2` ([@othiym23](https://github.com/othiym23)) -* [`375988b`](https://github.com/npm/npm/commit/375988b9bf5aa5170f06a790d624d31b1eb32c6d) - invalid package names are an early error for optional deps - ([@othiym23](https://github.com/othiym23)) -* consistently use `node-package-arg` instead of arbitrary package spec - splitting ([@othiym23](https://github.com/othiym23)) - -### v1.5.0-alpha-2 (2014-07-01): - -* [`54cf625`](https://github.com/npm/npm/commit/54cf62534e3331e3f454e609e44f0b944e819283) - fix handling for 301s in `npm-registry-client@3.0.1` - ([@Raynos](https://github.com/Raynos)) -* [`e410861`](https://github.com/npm/npm/commit/e410861c69a3799c1874614cb5b87af8124ff98d) - don't crash if no username set on `whoami` - ([@isaacs](https://github.com/isaacs)) -* [`0353dde`](https://github.com/npm/npm/commit/0353ddeaca8171aa7dbdd8102b7e2eb581a86406) - respect `--json` for output ([@isaacs](https://github.com/isaacs)) -* [`b3d112a`](https://github.com/npm/npm/commit/b3d112ae190b984cc1779b9e6de92218f22380c6) - outdated: Don't show headings if there's nothing to output - ([@isaacs](https://github.com/isaacs)) -* [`bb4b90c`](https://github.com/npm/npm/commit/bb4b90c80dbf906a1cb26d85bc0625dc2758acc3) - outdated: Default to `latest` rather than `*` for unspecified deps - ([@isaacs](https://github.com/isaacs)) - -### v1.5.0-alpha-1 (2014-07-01): - -* [`eef4884`](https://github.com/npm/npm/commit/eef4884d6487ee029813e60a5f9c54e67925d9fa) - use the correct piece of the spec for GitHub shortcuts - ([@othiym23](https://github.com/othiym23)) - -### v1.5.0-alpha-0 (2014-07-01): - -* [`7f55057`](https://github.com/npm/npm/commit/7f55057807cfdd9ceaf6331968e666424f48116c) - install scoped packages ([#5239](https://github.com/npm/npm/issues/5239)) - ([@othiym23](https://github.com/othiym23)) -* [`0df7e16`](https://github.com/npm/npm/commit/0df7e16c0232d8f4d036ebf4ec3563215517caac) - publish scoped packages ([#5239](https://github.com/npm/npm/issues/5239)) - ([@othiym23](https://github.com/othiym23)) -* [`0689ba2`](https://github.com/npm/npm/commit/0689ba249b92b4c6279a26804c96af6f92b3a501) - support (and save) --scope=@s config - ([@othiym23](https://github.com/othiym23)) -* [`f34878f`](https://github.com/npm/npm/commit/f34878fc4cee29901e4daf7bace94be01e25cad7) - scope credentials to registry ([@othiym23](https://github.com/othiym23)) -* [`0ac7ca2`](https://github.com/npm/npm/commit/0ac7ca233f7a69751fe4386af6c4daa3ee9fc0da) - capture and store bearer tokens when sent by registry - ([@othiym23](https://github.com/othiym23)) -* [`63c3277`](https://github.com/npm/npm/commit/63c3277f089b2c4417e922826bdc313ac854cad6) - only delete files that are created by npm - ([@othiym23](https://github.com/othiym23)) -* [`4f54043`](https://github.com/npm/npm/commit/4f540437091d1cbca3915cd20c2da83c2a88bb8e) - `npm-package-arg@2.0.0` ([@othiym23](https://github.com/othiym23)) -* [`9e1460e`](https://github.com/npm/npm/commit/9e1460e6ac9433019758481ec031358f4af4cd44) - `read-package-json@1.2.3` ([@othiym23](https://github.com/othiym23)) -* [`719d8ad`](https://github.com/npm/npm/commit/719d8adb9082401f905ff4207ede494661f8a554) - `fs-vacuum@1.2.1` ([@othiym23](https://github.com/othiym23)) -* [`9ef8fe4`](https://github.com/npm/npm/commit/9ef8fe4d6ead3acb3e88c712000e2d3a9480ebec) - `async-some@1.0.0` ([@othiym23](https://github.com/othiym23)) -* [`a964f65`](https://github.com/npm/npm/commit/a964f65ab662107b62a4ca58535ce817e8cca331) - `npmconf@2.0.1` ([@othiym23](https://github.com/othiym23)) -* [`113765b`](https://github.com/npm/npm/commit/113765bfb7d3801917c1d9f124b8b3d942bec89a) - `npm-registry-client@3.0.0` ([@othiym23](https://github.com/othiym23)) - -### v1.4.28 (2014-09-12): - -* [`f4540b6`](https://github.com/npm/npm/commit/f4540b6537a87e653d7495a9ddcf72949fdd4d14) - [#6043](https://github.com/npm/npm/issues/6043) defer rollbacks until just - before the CLI exits ([@isaacs](https://github.com/isaacs)) -* [`1eabfd5`](https://github.com/npm/npm/commit/1eabfd5c03f33c2bd28823714ff02059eeee3899) - [#6043](https://github.com/npm/npm/issues/6043) `slide@1.1.6`: wait until all - callbacks have finished before proceeding - ([@othiym23](https://github.com/othiym23)) - -### v1.4.27 (2014-09-04): - -* [`4cf3c8f`](https://github.com/npm/npm/commit/4cf3c8fd78c9e2693a5f899f50c28f4823c88e2e) - [#6007](https://github.com/npm/npm/issues/6007) request@2.42.0: properly set - headers on proxy requests ([@isaacs](https://github.com/isaacs)) -* [`403cb52`](https://github.com/npm/npm/commit/403cb526be1472bb7545fa8e62d4976382cdbbe5) - [#6055](https://github.com/npm/npm/issues/6055) npmconf@1.1.8: restore - case-insensitivity of environmental config - ([@iarna](https://github.com/iarna)) - -### v1.4.26 (2014-08-28): - -* [`eceea95`](https://github.com/npm/npm/commit/eceea95c804fa15b18e91c52c0beb08d42a3e77d) - `github-url-from-git@1.4.0`: add support for git+https and git+ssh - ([@stefanbuck](https://github.com/stefanbuck)) -* [`e561758`](https://github.com/npm/npm/commit/e5617587e7d7ab686192391ce55357dbc7fed0a3) - `columnify@1.2.1` ([@othiym23](https://github.com/othiym23)) -* [`0c4fab3`](https://github.com/npm/npm/commit/0c4fab372ee76eab01dda83b6749429a8564902e) - `cmd-shim@2.0.0`: upgrade to graceful-fs 3 - ([@ForbesLindesay](https://github.com/ForbesLindesay)) -* [`2d69e4d`](https://github.com/npm/npm/commit/2d69e4d95777671958b5e08d3b2f5844109d73e4) - `github-url-from-username-repo@1.0.0`: accept slashes in branch names - ([@robertkowalski](https://github.com/robertkowalski)) -* [`81f9b2b`](https://github.com/npm/npm/commit/81f9b2bac9d34c223ea093281ba3c495f23f10d1) - ensure lifecycle spawn errors caught properly - ([@isaacs](https://github.com/isaacs)) -* [`bfaab8c`](https://github.com/npm/npm/commit/bfaab8c6e0942382a96b250634ded22454c36b5a) - `npm-registry-client@2.0.7`: properly encode % in passwords - ([@isaacs](https://github.com/isaacs)) -* [`91cfb58`](https://github.com/npm/npm/commit/91cfb58dda851377ec604782263519f01fd96ad8) - doc: Fix 'npm help index' ([@isaacs](https://github.com/isaacs)) - -### v1.4.25 (2014-08-21): - -* [`64c0ec2`](https://github.com/npm/npm/commit/64c0ec241ef5d83761ca8de54acb3c41b079956e) - `npm-registry-client@2.0.6`: Print the notification header returned by the - registry, and make sure status codes are printed without gratuitous quotes - around them. - ([@othiym23](https://github.com/othiym23)) -* [`a8ed12b`](https://github.com/npm/npm/commit/a8ed12b) `tar@1.0.1`: - Add test for removing an extract target immediately after unpacking. - ([@isaacs](https://github.com/isaacs)) -* [`70fd11d`](https://github.com/npm/npm/commit/70fd11d) - `lockfile@1.0.0`: Fix incorrect interaction between `wait`, `stale`, - and `retries` options. Part 2 of race condition leading to `ENOENT` - errors. - ([@isaacs](https://github.com/isaacs)) -* [`0072c4d`](https://github.com/npm/npm/commit/0072c4d) - `fstream@1.0.2`: Fix a double-finish call which can result in excess - FS operations after the `close` event. Part 2 of race condition - leading to `ENOENT` errors. - ([@isaacs](https://github.com/isaacs)) - -### v1.4.24 (2014-08-14): - -* [`9344bd9`](https://github.com/npm/npm/commit/9344bd9b2929b5c399a0e0e0b34d45bce7bc24bb) - doc: add new changelog ([@othiym23](https://github.com/othiym23)) -* [`4be76fd`](https://github.com/npm/npm/commit/4be76fd65e895883c337a99f275ccc8c801adda3) - doc: update version doc to include `pre-*` increment args - ([@isaacs](https://github.com/isaacs)) -* [`e4f2620`](https://github.com/npm/npm/commit/e4f262036080a282ad60e236a9aeebd39fde9fe4) - build: add `make tag` to tag current release as `latest` - ([@isaacs](https://github.com/isaacs)) -* [`ec2596a`](https://github.com/npm/npm/commit/ec2596a7cb626772780b25b0a94a7e547a812bd5) - build: publish with `--tag=v1.4-next` ([@isaacs](https://github.com/isaacs)) -* [`9ee55f8`](https://github.com/npm/npm/commit/9ee55f892b8b473032a43c59912c5684fd1b39e6) - build: add script to output `v1.4-next` publish tag - ([@isaacs](https://github.com/isaacs)) -* [`aecb56f`](https://github.com/npm/npm/commit/aecb56f95a84687ea46920a0b98aaa587fee1568) - build: remove outdated `docpublish` make target - ([@isaacs](https://github.com/isaacs)) -* [`b57a9b7`](https://github.com/npm/npm/commit/b57a9b7ccd13e6b38831ed63595c8ea5763da247) - build: remove unpublish step from `make publish` - ([@isaacs](https://github.com/isaacs)) -* [`2c6acb9`](https://github.com/npm/npm/commit/2c6acb96c71c16106965d5cd829b67195dd673c7) - install: rename `.gitignore` when unpacking foreign tarballs - ([@isaacs](https://github.com/isaacs)) -* [`22f3681`](https://github.com/npm/npm/commit/22f3681923e993a47fc1769ba735bfa3dd138082) - cache: detect non-gzipped tar files more reliably - ([@isaacs](https://github.com/isaacs)) - -### v1.4.23 (2014-07-31): - -* [`8dd11d1`](https://github.com/npm/npm/commit/8dd11d1) update several - dependencies to avoid using `semver`s starting with 0. - -### v1.4.22 (2014-07-31): - -* [`d9a9e84`](https://github.com/npm/npm/commit/d9a9e84) `read-package-json@1.2.4` - ([@isaacs](https://github.com/isaacs)) -* [`86f0340`](https://github.com/npm/npm/commit/86f0340) - `github-url-from-git@1.2.0` ([@isaacs](https://github.com/isaacs)) -* [`a94136a`](https://github.com/npm/npm/commit/a94136a) `fstream@0.1.29` - ([@isaacs](https://github.com/isaacs)) -* [`bb82d18`](https://github.com/npm/npm/commit/bb82d18) `glob@4.0.5` - ([@isaacs](https://github.com/isaacs)) -* [`5b6bcf4`](https://github.com/npm/npm/commit/5b6bcf4) `cmd-shim@1.1.2` - ([@isaacs](https://github.com/isaacs)) -* [`c2aa8b3`](https://github.com/npm/npm/commit/c2aa8b3) license: Cleaned up - legalese with actual lawyer ([@isaacs](https://github.com/isaacs)) -* [`63fe0ee`](https://github.com/npm/npm/commit/63fe0ee) `init-package-json@1.0.0` - ([@isaacs](https://github.com/isaacs)) - -### v1.4.21 (2014-07-14): - -* [`88f51aa`](https://github.com/npm/npm/commit/88f51aa27eb9a958d1fa7ec50fee5cfdedd05110) - fix handling for 301s in `npm-registry-client@2.0.3` - ([@Raynos](https://github.com/Raynos)) - -### v1.4.20 (2014-07-02): - -* [`0353dde`](https://github.com/npm/npm/commit/0353ddeaca8171aa7dbdd8102b7e2eb581a86406) - respect `--json` for output ([@isaacs](https://github.com/isaacs)) -* [`b3d112a`](https://github.com/npm/npm/commit/b3d112ae190b984cc1779b9e6de92218f22380c6) - outdated: Don't show headings if there's nothing to output - ([@isaacs](https://github.com/isaacs)) -* [`bb4b90c`](https://github.com/npm/npm/commit/bb4b90c80dbf906a1cb26d85bc0625dc2758acc3) - outdated: Default to `latest` rather than `*` for unspecified deps - ([@isaacs](https://github.com/isaacs)) - -### v1.4.19 (2014-07-01): - -* [`f687433`](https://github.com/npm/npm/commit/f687433) relative URLS for - working non-root registry URLS ([@othiym23](https://github.com/othiym23)) -* [`bea190c`](https://github.com/npm/npm/commit/bea190c) - [#5591](https://github.com/npm/npm/issues/5591) bump nopt and npmconf - ([@isaacs](https://github.com/isaacs)) - -### v1.4.18 (2014-06-29): - -* Bump glob dependency from 4.0.2 to 4.0.3. It now uses graceful-fs when - available, increasing resilience to [various filesystem - errors](https://github.com/isaacs/node-graceful-fs#improvements-over-fs-module). - ([@isaacs](https://github.com/isaacs)) - -### v1.4.17 (2014-06-27): - -* replace escape codes with ansicolors - ([@othiym23](https://github.com/othiym23)) -* Allow to build all the docs OOTB. ([@GeJ](https://github.com/GeJ)) -* Use core.longpaths on win32 git - fixes - [#5525](https://github.com/npm/npm/issues/5525) ([@bmeck](https://github.com/bmeck)) -* `npmconf@1.1.2` ([@isaacs](https://github.com/isaacs)) -* Consolidate color sniffing in config/log loading process - ([@isaacs](https://github.com/isaacs)) -* add verbose log when project config file is ignored - ([@isaacs](https://github.com/isaacs)) -* npmconf: Float patch to remove 'scope' from config defs - ([@isaacs](https://github.com/isaacs)) -* doc: npm-explore can't handle a version - ([@robertkowalski](https://github.com/robertkowalski)) -* Add user-friendly errors for ENOSPC and EROFS. - ([@voodootikigod](https://github.com/voodootikigod)) -* bump tar and fstream deps ([@isaacs](https://github.com/isaacs)) -* Run the npm-registry-couchapp tests along with npm tests - ([@isaacs](https://github.com/isaacs)) - -### v1.2.8000 (2014-06-17): - -* Same as v1.4.16, but with the spinner disabled, and a version number that - starts with v1.2. - -### v1.4.16 (2014-06-17): - -* `npm-registry-client@2.0.2` ([@isaacs](https://github.com/isaacs)) -* `fstream@0.1.27` ([@isaacs](https://github.com/isaacs)) -* `sha@1.2.4` ([@isaacs](https://github.com/isaacs)) -* `rimraf@2.2.8` ([@isaacs](https://github.com/isaacs)) -* `npmlog@1.0.1` ([@isaacs](https://github.com/isaacs)) -* `npm-registry-client@2.0.1` ([@isaacs](https://github.com/isaacs)) -* removed redundant dependency ([@othiym23](https://github.com/othiym23)) -* `npmconf@1.0.5` ([@isaacs](https://github.com/isaacs)) -* Properly handle errors that can occur in the config-loading process - ([@isaacs](https://github.com/isaacs)) - -### v1.4.15 (2014-06-10): - -* cache: atomic de-race-ified package.json writing - ([@isaacs](https://github.com/isaacs)) -* `fstream@0.1.26` ([@isaacs](https://github.com/isaacs)) -* `graceful-fs@3.0.2` ([@isaacs](https://github.com/isaacs)) -* `osenv@0.1.0` ([@isaacs](https://github.com/isaacs)) -* Only spin the spinner when we're fetching stuff - ([@isaacs](https://github.com/isaacs)) -* Update `osenv@0.1.0` which removes ~/tmp as possible tmp-folder - ([@robertkowalski](https://github.com/robertkowalski)) -* `ini@1.2.1` ([@isaacs](https://github.com/isaacs)) -* `graceful-fs@3` ([@isaacs](https://github.com/isaacs)) -* Update glob and things depending on glob - ([@isaacs](https://github.com/isaacs)) -* github-url-from-username-repo and read-package-json updates - ([@isaacs](https://github.com/isaacs)) -* `editor@0.1.0` ([@isaacs](https://github.com/isaacs)) -* `columnify@1.1.0` ([@isaacs](https://github.com/isaacs)) -* bump ansi and associated deps ([@isaacs](https://github.com/isaacs)) - -### v1.4.14 (2014-06-05): - -* char-spinner: update to not bork windows - ([@isaacs](https://github.com/isaacs)) - -### v1.4.13 (2014-05-23): - -* Fix `npm install` on a tarball. - ([`ed3abf1`](https://github.com/npm/npm/commit/ed3abf1aa10000f0f687330e976d78d1955557f6), - [#5330](https://github.com/npm/npm/issues/5330), - [@othiym23](https://github.com/othiym23)) -* Fix an issue with the spinner on Node 0.8. - ([`9f00306`](https://github.com/npm/npm/commit/9f003067909440390198c0b8f92560d84da37762), - [@isaacs](https://github.com/isaacs)) -* Re-add `npm.commands.cache.clean` and `npm.commands.cache.read` APIs, and - document `npm.commands.cache.*` as npm-cache(3). - ([`e06799e`](https://github.com/npm/npm/commit/e06799e77e60c1fc51869619083a25e074d368b3), - [@isaacs](https://github.com/isaacs)) - -### v1.4.12 (2014-05-23): - -* remove normalize-package-data from top level, de-^-ify inflight dep - ([@isaacs](https://github.com/isaacs)) -* Always sort saved bundleDependencies ([@isaacs](https://github.com/isaacs)) -* add inflight to bundledDependencies - ([@othiym23](https://github.com/othiym23)) - -### v1.4.11 (2014-05-22): - -* fix `npm ls` labeling issue -* `node-gyp@0.13.1` -* default repository to https:// instead of git:// -* addLocalTarball: Remove extraneous unpack - ([@isaacs](https://github.com/isaacs)) -* Massive cache folder refactor ([@othiym23](https://github.com/othiym23) and - [@isaacs](https://github.com/isaacs)) -* Busy Spinner, no http noise ([@isaacs](https://github.com/isaacs)) -* Per-project .npmrc file support ([@isaacs](https://github.com/isaacs)) -* `npmconf@1.0.0`, Refactor config/uid/prefix loading process - ([@isaacs](https://github.com/isaacs)) -* Allow once-disallowed characters in passwords - ([@isaacs](https://github.com/isaacs)) -* Send npm version as 'version' header ([@isaacs](https://github.com/isaacs)) -* fix cygwin encoding issue (Karsten Tinnefeld) -* Allow non-github repositories with `npm repo` - ([@evanlucas](https://github.com/evanlucas)) -* Allow peer deps to be satisfied by grandparent -* Stop optional deps moving into deps on `update --save` - ([@timoxley](https://github.com/timoxley)) -* Ensure only matching deps update with `update --save*` - ([@timoxley](https://github.com/timoxley)) -* Add support for `prerelease`, `preminor`, `prepatch` to `npm version` - -### v1.4.10 (2014-05-05): - -* Don't set referer if already set -* fetch: Send referer and npm-session headers -* `run-script`: Support `--parseable` and `--json` -* list runnable scripts ([@evanlucas](https://github.com/evanlucas)) -* Use marked instead of ronn for html docs - -### v1.4.9 (2014-05-01): - -* Send referer header (with any potentially private stuff redacted) -* Fix critical typo bug in previous npm release - -### v1.4.8 (2014-05-01): - -* Check SHA before using files from cache -* adduser: allow change of the saved password -* Make `npm install` respect `config.unicode` -* Fix lifecycle to pass `Infinity` for config env value -* Don't return 0 exit code on invalid command -* cache: Handle 404s and other HTTP errors as errors -* Resolve ~ in path configs to env.HOME -* Include npm version in default user-agent conf -* npm init: Use ISC as default license, use save-prefix for deps -* Many test and doc fixes - -### v1.4.7 (2014-04-15): - -* Add `--save-prefix` option that can be used to override the default of `^` - when using `npm install --save` and its counterparts. - ([`64eefdf`](https://github.com/npm/npm/commit/64eefdfe26bb27db8dc90e3ab5d27a5ef18a4470), - [@thlorenz](https://github.com/thlorenz)) -* Allow `--silent` to silence the echoing of commands that occurs with `npm - run`. - ([`c95cf08`](https://github.com/npm/npm/commit/c95cf086e5b97dbb48ff95a72517b203a8f29eab), - [@Raynos](https://github.com/Raynos)) -* Some speed improvements to the cache, which should improve install times. - ([`cb94310`](https://github.com/npm/npm/commit/cb94310a6adb18cb7b881eacb8d67171eda8b744), - [`3b0870f`](https://github.com/npm/npm/commit/3b0870fb2f40358b3051abdab6be4319d196b99d), - [`120f5a9`](https://github.com/npm/npm/commit/120f5a93437bbbea9249801574a2f33e44e81c33), - [@isaacs](https://github.com/isaacs)) -* Improve ability to retry registry requests when a subset of the registry - servers are down. - ([`4a5257d`](https://github.com/npm/npm/commit/4a5257de3870ac3dafa39667379f19f6dcd6093e), - https://github.com/npm/npm-registry-client/commit/7686d02cb0b844626d6a401e58c0755ef3bc8432, - [@isaacs](https://github.com/isaacs)) -* Fix marking of peer dependencies as extraneous. - ([`779b164`](https://github.com/npm/npm/commit/779b1649764607b062c031c7e5c972151b4a1754), - https://github.com/npm/read-installed/commit/6680ba6ef235b1ca3273a00b70869798ad662ddc, - [@isaacs](https://github.com/isaacs)) -* Fix npm crashing when doing `npm shrinkwrap` in the presence of a - `package.json` with no dependencies. - ([`a9d9fa5`](https://github.com/npm/npm/commit/a9d9fa5ad3b8c925a589422b7be28d2735f320b0), - [@kislyuk](https://github.com/kislyuk)) -* Fix error when using `npm view` on packages that have no versions or have - been unpublished. - ([`94df2f5`](https://github.com/npm/npm/commit/94df2f56d684b35d1df043660180fc321b743dc8), - [@juliangruber](https://github.com/juliangruber); - [`2241a09`](https://github.com/npm/npm/commit/2241a09c843669c70633c399ce698cec3add40b3), - [@isaacs](https://github.com/isaacs)) - -### v1.4.6 (2014-03-19): - -* Fix extraneous package detection to work in more cases. - ([`f671286`](https://github.com/npm/npm/commit/f671286), npm/read-installed#20, - [@LaurentVB](https://github.com/LaurentVB)) - -### v1.4.5 (2014-03-18): - -* Sort dependencies in `package.json` when doing `npm install --save` and all - its variants. - ([`6fd6ff7`](https://github.com/npm/npm/commit/6fd6ff7e536ea6acd33037b1878d4eca1f931985), - [@domenic](https://github.com/domenic)) -* Add `--save-exact` option, usable alongside `--save` and its variants, which - will write the exact version number into `package.json` instead of the - appropriate semver-compatibility range. - ([`17f07df`](https://github.com/npm/npm/commit/17f07df8ad8e594304c2445bf7489cb53346f2c5), - [@timoxley](https://github.com/timoxley)) -* Accept gzipped content from the registry to speed up downloads and save - bandwidth. - ([`a3762de`](https://github.com/npm/npm/commit/a3762de843b842be8fa0ab57cdcd6b164f145942), - npm/npm-registry-client#40, [@fengmk2](https://github.com/fengmk2)) -* Fix `npm ls`'s `--depth` and `--log` options. - ([`1d29b17`](https://github.com/npm/npm/commit/1d29b17f5193d52a5c4faa412a95313dcf41ed91), - npm/read-installed#13, [@zertosh](https://github.com/zertosh)) -* Fix "Adding a cache directory to the cache will make the world implode" in - certain cases. - ([`9a4b2c4`](https://github.com/npm/npm/commit/9a4b2c4667c2b1e0054e3d5611ab86acb1760834), - domenic/path-is-inside#1, [@pmarques](https://github.com/pmarques)) -* Fix readmes not being uploaded in certain rare cases. - ([`527b72c`](https://github.com/npm/npm/commit/527b72cca6c55762b51e592c48a9f28cc7e2ff8b), - [@isaacs](https://github.com/isaacs)) - -### v1.4.4 (2014-02-20): - -* Add `npm t` as an alias for `npm test` (which is itself an alias for `npm run - test`, or even `npm run-script test`). We like making running your tests - easy. ([`14e650b`](https://github.com/npm/npm/commit/14e650bce0bfebba10094c961ac104a61417a5de), [@isaacs](https://github.com/isaacs)) - -### v1.4.3 (2014-02-16): - -* Add back `npm prune --production`, which was removed in 1.3.24. - ([`acc4d02`](https://github.com/npm/npm/commit/acc4d023c57d07704b20a0955e4bf10ee91bdc83), - [@davglass](https://github.com/davglass)) -* Default `npm install --save` and its counterparts to use the `^` version - specifier, instead of `~`. - ([`0a3151c`](https://github.com/npm/npm/commit/0a3151c9cbeb50c1c65895685c2eabdc7e2608dc), - [@mikolalysenko](https://github.com/mikolalysenko)) -* Make `npm shrinkwrap` output dependencies in a sorted order, so that diffs - between shrinkwrap files should be saner now. - ([`059b2bf`](https://github.com/npm/npm/commit/059b2bfd06ae775205a37257dca80142596a0113), - [@Raynos](https://github.com/Raynos)) -* Fix `npm dedupe` not correctly respecting dependency constraints. - ([`86028e9`](https://github.com/npm/npm/commit/86028e9fd8524d5e520ce01ba2ebab5a030103fc), - [@rafeca](https://github.com/rafeca)) -* Fix `npm ls` giving spurious warnings when you used `"latest"` as a version - specifier. - (https://github.com/npm/read-installed/commit/d2956400e0386931c926e0f30c334840e0938f14, - [@bajtos](https://github.com/bajtos)) -* Fixed a bug where using `npm link` on packages without a `name` value could - cause npm to delete itself. - ([`401a642`](https://github.com/npm/npm/commit/401a64286aa6665a94d1d2f13604f7014c5fce87), - [@isaacs](https://github.com/isaacs)) -* Fixed `npm install ./pkg@1.2.3` to actually install the directory at - `pkg@1.2.3`; before it would try to find version `1.2.3` of the package - `./pkg` in the npm registry. - ([`46d8768`](https://github.com/npm/npm/commit/46d876821d1dd94c050d5ebc86444bed12c56739), - [@rlidwka](https://github.com/rlidwka); see also - [`f851b79`](https://github.com/npm/npm/commit/f851b79a71d9a5f5125aa85877c94faaf91bea5f)) -* Fix `npm outdated` to respect the `color` configuration option. - ([`d4f6f3f`](https://github.com/npm/npm/commit/d4f6f3ff83bd14fb60d3ac6392cb8eb6b1c55ce1), - [@timoxley](https://github.com/timoxley)) -* Fix `npm outdated --parseable`. - ([`9575a23`](https://github.com/npm/npm/commit/9575a23f955ce3e75b509c89504ef0bd707c8cf6), - [@yhpark](https://github.com/yhpark)) -* Fix a lockfile-related errors when using certain Git URLs. - ([`164b97e`](https://github.com/npm/npm/commit/164b97e6089f64e686db7a9a24016f245effc37f), - [@nigelzor](https://github.com/nigelzor)) - -### v1.4.2 (2014-02-13): - -* Fixed an issue related to mid-publish GET requests made against the registry. - (https://github.com/npm/npm-registry-client/commit/acbec48372bc1816c67c9e7cbf814cf50437ff93, - [@isaacs](https://github.com/isaacs)) - -### v1.4.1 (2014-02-13): - -* Fix `npm shrinkwrap` forgetting to shrinkwrap dependencies that were also - development dependencies. - ([`9c575c5`](https://github.com/npm/npm/commit/9c575c56efa9b0c8b0d4a17cb9c1de3833004bcd), - [@diwu1989](https://github.com/diwu1989)) -* Fixed publishing of pre-existing packages with uppercase characters in their - name. - (https://github.com/npm/npm-registry-client/commit/9345d3b6c3d8510dd5c4418f27ee1fce59acebad, - [@isaacs](https://github.com/isaacs)) - -### v1.4.0 (2014-02-12): - -* Remove `npm publish --force`. See - https://github.com/npm/npmjs.org/issues/148. - ([@isaacs](https://github.com/isaacs), - npm/npm-registry-client@2c8dba990de6a59af6545b75cc00a6dc12777c2a) -* Other changes to the registry client related to saved configs and couch - logins. ([@isaacs](https://github.com/isaacs); - npm/npm-registry-client@25e2b019a1588155e5f87d035c27e79963b75951, - npm/npm-registry-client@9e41e9101b68036e0f078398785f618575f3cdde, - npm/npm-registry-client@2c8dba990de6a59af6545b75cc00a6dc12777c2a) -* Show an error to the user when doing `npm update` and the `package.json` - specifies a version that does not exist. - ([@evanlucas](https://github.com/evanlucas), - [`027a33a`](https://github.com/npm/npm/commit/027a33a5c594124cc1d82ddec5aee2c18bc8dc32)) -* Fix some issues with cache ownership in certain installation configurations. - ([@outcoldman](https://github.com/outcoldman), - [`a132690`](https://github.com/npm/npm/commit/a132690a2876cda5dcd1e4ca751f21dfcb11cb9e)) -* Fix issues where GitHub shorthand dependencies `user/repo` were not always - treated the same as full Git URLs. - ([@robertkowalski](https://github.com/robertkowalski), - https://github.com/meryn/normalize-package-data/commit/005d0b637aec1895117fcb4e3b49185eebf9e240) - -### v1.3.26 (2014-02-02): - -* Fixes and updates to publishing code - ([`735427a`](https://github.com/npm/npm/commit/735427a69ba4fe92aafa2d88f202aaa42920a9e2) - and - [`c0ac832`](https://github.com/npm/npm/commit/c0ac83224d49aa62e55577f8f27d53bbfd640dc5), - [@isaacs](https://github.com/isaacs)) -* Fix `npm bugs` with no arguments. - ([`b99d465`](https://github.com/npm/npm/commit/b99d465221ac03bca30976cbf4d62ca80ab34091), - [@Hoops](https://github.com/Hoops)) - -### v1.3.25 (2014-01-25): - -* Remove gubblebum blocky font from documentation headers. - ([`6940c9a`](https://github.com/npm/npm/commit/6940c9a100160056dc6be8f54a7ad7fa8ceda7e2), - [@isaacs](https://github.com/isaacs)) - -### v1.3.24 (2014-01-19): - -* Make the search output prettier, with nice truncated columns, and a `--long` - option to create wrapping columns. - ([`20439b2`](https://github.com/npm/npm/commit/20439b2) and - [`3a6942d`](https://github.com/npm/npm/commit/3a6942d), - [@timoxley](https://github.com/timoxley)) -* Support multiple packagenames in `npm docs`. - ([`823010b`](https://github.com/npm/npm/commit/823010b), - [@timoxley](https://github.com/timoxley)) -* Fix the `npm adduser` bug regarding "Error: default value must be string or - number" again. ([`b9b4248`](https://github.com/npm/npm/commit/b9b4248), - [@isaacs](https://github.com/isaacs)) -* Fix `scripts` entries containing whitespaces on Windows. - ([`80282ed`](https://github.com/npm/npm/commit/80282ed), - [@robertkowalski](https://github.com/robertkowalski)) -* Fix `npm update` for Git URLs that have credentials in them - ([`93fc364`](https://github.com/npm/npm/commit/93fc364), - [@danielsantiago](https://github.com/danielsantiago)) -* Fix `npm install` overwriting `npm link`-ed dependencies when they are tagged - Git dependencies. ([`af9bbd9`](https://github.com/npm/npm/commit/af9bbd9), - [@evanlucas](https://github.com/evanlucas)) -* Remove `npm prune --production` since it buggily removed some dependencies - that were necessary for production; see - [#4509](https://github.com/npm/npm/issues/4509). Hopefully it can make its - triumphant return, one day. - ([`1101b6a`](https://github.com/npm/npm/commit/1101b6a), - [@isaacs](https://github.com/isaacs)) - -Dependency updates: -* [`909cccf`](https://github.com/npm/npm/commit/909cccf) `read-package-json@1.1.6` -* [`a3891b6`](https://github.com/npm/npm/commit/a3891b6) `rimraf@2.2.6` -* [`ac6efbc`](https://github.com/npm/npm/commit/ac6efbc) `sha@1.2.3` -* [`dd30038`](https://github.com/npm/npm/commit/dd30038) `node-gyp@0.12.2` -* [`c8c3ebe`](https://github.com/npm/npm/commit/c8c3ebe) `npm-registry-client@0.3.3` -* [`4315286`](https://github.com/npm/npm/commit/4315286) `npmconf@0.1.12` - -### v1.3.23 (2014-01-03): - -* Properly handle installations that contained a certain class of circular - dependencies. - ([`5dc93e8`](https://github.com/npm/npm/commit/5dc93e8c82604c45b6067b1acf1c768e0bfce754), - [@substack](https://github.com/substack)) - -### v1.3.22 (2013-12-25): - -* Fix a critical bug in `npm adduser` that would manifest in the error message - "Error: default value must be string or number." - ([`fba4bd2`](https://github.com/npm/npm/commit/fba4bd24bc2ab00ccfeda2043aa53af7d75ef7ce), - [@isaacs](https://github.com/isaacs)) -* Allow `npm bugs` in the current directory to open the current package's bugs - URL. - ([`d04cf64`](https://github.com/npm/npm/commit/d04cf6483932c693452f3f778c2fa90f6153a4af), - [@evanlucas](https://github.com/evanlucas)) -* Several fixes to various error messages to include more useful or updated - information. - ([`1e6f2a7`](https://github.com/npm/npm/commit/1e6f2a72ca058335f9f5e7ca22d01e1a8bb0f9f7), - [`ff46366`](https://github.com/npm/npm/commit/ff46366bd40ff0ef33c7bac8400bc912c56201d1), - [`8b4bb48`](https://github.com/npm/npm/commit/8b4bb4815d80a3612186dc5549d698e7b988eb03); - [@rlidwka](https://github.com/rlidwka), - [@evanlucas](https://github.com/evanlucas)) - -### v1.3.21 (2013-12-17): - -* Fix a critical bug that prevented publishing due to incorrect hash - calculation. - ([`4ca4a2c`](https://github.com/npm/npm-registry-client/commit/4ca4a2c6333144299428be6b572e2691aa59852e), - [@dominictarr](https://github.com/dominictarr)) - -### v1.3.20 (2013-12-17): - -* Fixes a critical bug in v1.3.19. Thankfully, due to that bug, no one could - install npm v1.3.19 :) - -### v1.3.19 (2013-12-16): - -* Adds atomic PUTs for publishing packages, which should result in far fewer - requests and less room for replication errors on the server-side. - -### v1.3.18 (2013-12-16): - -* Added an `--ignore-scripts` option, which will prevent `package.json` scripts - from being run. Most notably, this will work on `npm install`, so e.g. `npm - install --ignore-scripts` will not run preinstall and prepublish scripts. - ([`d7e67bf`](https://github.com/npm/npm/commit/d7e67bf0d94b085652ec1c87d595afa6f650a8f6), - [@sqs](https://github.com/sqs)) -* Fixed a bug introduced in 1.3.16 that would manifest with certain cache - configurations, by causing spurious errors saying "Adding a cache directory - to the cache will make the world implode." - ([`966373f`](https://github.com/npm/npm/commit/966373fad8d741637f9744882bde9f6e94000865), - [@domenic](https://github.com/domenic)) -* Re-fixed the multiple download of URL dependencies, whose fix was reverted in - 1.3.17. - ([`a362c3f`](https://github.com/npm/npm/commit/a362c3f1919987419ed8a37c8defa19d2e6697b0), - [@spmason](https://github.com/spmason)) - -### v1.3.17 (2013-12-11): - -* This release reverts - [`644c2ff`](https://github.com/npm/npm/commit/644c2ff3e3d9c93764f7045762477f48864d64a7), - which avoided re-downloading URL and shinkwrap dependencies when doing `npm - install`. You can see the in-depth reasoning in - [`d8c907e`](https://github.com/npm/npm/commit/d8c907edc2019b75cff0f53467e34e0ffd7e5fba); - the problem was, that the patch changed the behavior of `npm install -f` to - reinstall all dependencies. -* A new version of the no-re-downloading fix has been submitted as - [#4303](https://github.com/npm/npm/issues/4303) and will hopefully be - included in the next release. - -### v1.3.16 (2013-12-11): - -* Git URL dependencies are now updated on `npm install`, fixing a two-year old - bug - ([`5829ecf`](https://github.com/npm/npm/commit/5829ecf032b392d2133bd351f53d3c644961396b), - [@robertkowalski](https://github.com/robertkowalski)). Additional progress on - reducing the resulting Git-related I/O is tracked as - [#4191](https://github.com/npm/npm/issues/4191), but for now, this will be a - big improvement. -* Added a `--json` mode to `npm outdated` to give a parseable output. - ([`0b6c9b7`](https://github.com/npm/npm/commit/0b6c9b7c8c5579f4d7d37a0c24d9b7a12ccbe5fe), - [@yyx990803](https://github.com/yyx990803)) -* Made `npm outdated` much prettier and more useful. It now outputs a - color-coded and easy-to-read table. - ([`fd3017f`](https://github.com/npm/npm/commit/fd3017fc3e9d42acf6394a5285122edb4dc16106), - [@quimcalpe](https://github.com/quimcalpe)) -* Added the `--depth` option to `npm outdated`, so that e.g. you can do `npm - outdated --depth=0` to show only top-level outdated dependencies. - ([`1d184ef`](https://github.com/npm/npm/commit/1d184ef3f4b4bc309d38e9128732e3e6fb46d49c), - [@yyx990803](https://github.com/yyx990803)) -* Added a `--no-git-tag-version` option to `npm version`, for doing the usual - job of `npm version` minus the Git tagging. This could be useful if you need - to increase the version in other related files before actually adding the - tag. - ([`59ca984`](https://github.com/npm/npm/commit/59ca9841ba4f4b2f11b8e72533f385c77ae9f8bd), - [@evanlucas](https://github.com/evanlucas)) -* Made `npm repo` and `npm docs` work without any arguments, adding them to the - list of npm commands that work on the package in the current directory when - invoked without arguments. - ([`bf9048e`](https://github.com/npm/npm/commit/bf9048e2fa16d43fbc4b328d162b0a194ca484e8), - [@robertkowalski](https://github.com/robertkowalski); - [`07600d0`](https://github.com/npm/npm/commit/07600d006c652507cb04ac0dae9780e35073dd67), - [@wilmoore](https://github.com/wilmoore)). There are a few other commands we - still want to implement this for; see - [#4204](https://github.com/npm/npm/issues/4204). -* Pass through the `GIT_SSL_NO_VERIFY` environment variable to Git, if it is - set; we currently do this with a few other environment variables, but we - missed that one. - ([`c625de9`](https://github.com/npm/npm/commit/c625de91770df24c189c77d2e4bc821f2265efa8), - [@arikon](https://github.com/arikon)) -* Fixed `npm dedupe` on Windows due to incorrect path separators being used - ([`7677de4`](https://github.com/npm/npm/commit/7677de4583100bc39407093ecc6bc13715bf8161), - [@mcolyer](https://github.com/mcolyer)). -* Fixed the `npm help` command when multiple words were searched for; it - previously gave a `ReferenceError`. - ([`6a28dd1`](https://github.com/npm/npm/commit/6a28dd147c6957a93db12b1081c6e0da44fe5e3c), - [@dereckson](https://github.com/dereckson)) -* Stopped re-downloading URL and shrinkwrap dependencies, as demonstrated in - [#3463](https://github.com/npm/npm/issues/3463) - ([`644c2ff`](https://github.com/isaacs/npm/commit/644c2ff3e3d9c93764f7045762477f48864d64a7), - [@spmason](https://github.com/spmason)). You can use the `--force` option to - force re-download and installation of all dependencies. diff --git a/deps/npm/changelogs/CHANGELOG-2.md b/deps/npm/changelogs/CHANGELOG-2.md deleted file mode 100644 index c4d2b777ebf120..00000000000000 --- a/deps/npm/changelogs/CHANGELOG-2.md +++ /dev/null @@ -1,5344 +0,0 @@ -### 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 particularly important to Windows folks due to -its addition of Visual Studio 2017 support. - -* [`cdd60e733`](https://github.com/npm/npm/commit/cdd60e733905a9994e1d6d832996bfdd12abeaee) - `node-gyp@3.6.0`: - Improvements to how Python is located. New `--devdir` flag. - Support for VS2017. - Chakracore support on ARM. - Remove path-array dependency, reducing size significantly. - ([@bnoordhuis](https://github.com/bnoordhuis)) - ([@mhart](https://github.com/mhart)) - ([@refack](https://github.com/refack)) - ([@kunalspathak](https://github.com/kunalspathak)) - -### v2.15.11 (2016-09-08): - -On we go with our monthly release cadence! This week is pretty much all -dependency updates and some documentation changes, as can be expected by now. - -Note that `npm@4` will almost certainly be released next month! It's not final -what we'll end up doing as far as LTS support goes, but the current thinking is -that, considering how small and resource-constrained our team is, support for -`npm@2` will be reduced to essentially maintenance, so we can better focus on -`npm@3` as the new LTS version (which will go into `node@6`), and `npm@4` as our -next main development version. - -#### DOCUMENTATION UPDATES - -* [`8f71038`](https://github.com/npm/npm/commit/8f71038310501ad5bc7445b2fa2ff0eaa377919a) - [#13892](https://github.com/npm/npm/pull/13892) - Update `LICENSE` file to match license on `master`. - ([@rvagg](https://github.com/rvagg)) -* [`e81b4f1`](https://github.com/npm/npm/commit/e81b4f1d18a4d79b7af8342747f2ed7dc3e84f0a) - [#12438](https://github.com/npm/npm/issues/12438) - Remind folks to use `#!/usr/bin/env node` in their `bin` scripts to make files - executable directly. - ([@mxstbr](https://github.com/mxstbr)) -* [`f89789f`](https://github.com/npm/npm/commit/f89789f43d65bfc74f64f15a99356841377e1af3) - [#13655](https://github.com/npm/npm/pull/13655) - Document line comment syntax for `.npmrc`. - ([@mdjasper](https://github.com/mdjasper)) -* [`5cd3abc`](https://github.com/npm/npm/commit/5cd3abc3511515e09b4a1b781c0520e84c267c5b) - [#13493](https://github.com/npm/npm/pull/13493) - Document that the user config file can itself be configured either through the - `$NPM_CONFIG_USERCONFIG` environment variable, or `--userconfig` command line - flag. - ([@jasonkarns](https://github.com/jasonkarns)) -* [`dd71ca0`](https://github.com/npm/npm/commit/dd71ca0efc2094b824ccc9e23af0fc915499f2e6) - [#13911](https://github.com/npm/npm/pull/13911) - Minor documentation reword and cleanup. - ([@othiym23](https://github.com/othiym23)) -* [`f7a320c`](https://github.com/npm/npm/commit/f7a320c816947d578a050c97e0fb9878954be0e8) - [#13682](https://github.com/npm/npm/pull/13682) - Minor grammar fix in documentation for `npm scripts`. - ([@Ajedi32](https://github.com/Ajedi32)) -* [`e5cb5e8`](https://github.com/npm/npm/commit/e5cb5e8fcf4642836fedf3f3421c994a8e27e19b) - [#13717](https://github.com/npm/npm/pull/13717) - Document that `npm link` will link the files specified in the `bin` field of - `package.json` to `{prefix}/bin/{name}`. - ([@legodude17](https://github.com/legodude17)) - -#### DEPENDENCY UPDATES -* [`8bef026`](https://github.com/npm/npm/commit/8bef026603b6da888edf0d41308d9e532abfcd54) - `graceful-fs@4.1.6` - ([@francescoinfante](https://github.com/francescoinfante)) -* [`9f73f4a`](https://github.com/npm/npm/commit/9f73f4aab5f56b256c5cf9e461e81abfa2844945) - `glob@7.0.6` - ([@isaacs](https://github.com/isaacs)) -* [`5391b7e`](https://github.com/npm/npm/commit/5391b7e8cd4401fbadbf54e810fdc965a3662a21) - `which@1.2.1` - ([@isaacs](https://github.com/isaacs)) -* [`43bfec8`](https://github.com/npm/npm/commit/43bfec8376dd8ded7d56a8dabd6139919544760e) - `retry@0.10.0` - ([@tim-kos](https://github.com/tim-kos)) -* [`39305f1`](https://github.com/npm/npm/commit/39305f1c76f74bf9789c769ef72a94ea9a81d119) - `readable-stream@2.1.5` - ([@calvinmetcalf](https://github.com/calvinmetcalf)) -* [`a5512fa`](https://github.com/npm/npm/commit/a5512fafd72e23755e77e28f1122b008bc12a733) - `once@1.4.0` - ([@zkochan](https://github.com/zkochan)) -* [`06a208b`](https://github.com/npm/npm/commit/06a208b178c1de3d0da58bc35a854d200fea8ef0) - `npm-registry-client@7.2.1`: - * [npm/npm-registry-client#142](https://github.com/npm/npm-registry-client/pull/142) Fix `EventEmitter` warning spam from error handlers on socket. ([@addaleax](https://github.com/addaleax)) - * [npm/npm-registry-client#131](https://github.com/npm/npm-registry-client/pull/131) Adds support for streaming request bodies. ([@aredridel](https://github.com/aredridel)) - * Fixes [#13656](https://github.com/npm/npm/issues/13656). - * Dependency updates. - * Documentation improvements. - ([@othiym23](https://github.com/othiym23)) -* [`4f759be`](https://github.com/npm/npm/commit/4f759be1fb5e23180b970350e58f40a513daa680) - `inherits@2.0.3` - ([@isaacs](https://github.com/isaacs)) -* [`4258b76`](https://github.com/npm/npm/commit/4258b764e2565f6294ae1e34a5653895290b62e3) - `tap@7.1.1` - ([@isaacs](https://github.com/isaacs)) - -### v2.15.10 (2016-08-11): - -Hi all, today's our first release coming out of the new monthly release -cadence. See below for details. We're all recovered from conferences now and -raring to go! For LTS we see some bug fixes, documentation improvements and -a host of dependency updates. - -The most dramatic bug fix is probably the inclusion of scoped modules in -bundled dependencies. Prior to this release and -[v3.10.7](https://github.com/npm/npm/releases/v3.10.7), npm had ignored -scoped modules found in `bundleDependencies` entirely. - -#### NEW RELEASE CADENCE - -Releasing npm has been, for the most part, a very prominent part of our -weekly process process. As part of our efforts to find the most effective -ways to allocate our team's resources, we decided last month that we would -try and slow our releases down to a monthly cadence, and see if we found -ourselves with as much extra time and attention as we expected to have. -Process experiments are useful for finding more effective ways to do our -work, and we're at least going to keep doing this for a whole quarter, and -then measure how well it worked out. It's entirely likely that we'll switch -back to a more frequent cadence, specially if we find that the value that -weekly cadence was providing the community is not worth sacrificing for a -bit of extra time. Does this affect you significantly? Let us know! - -#### WINDOWS CORNER CASES - -* [`405c404`](https://github.com/npm/npm/commit/405c4048c69c14d66e6179aba0c8a35e504e8041) - [#13023](https://github.com/npm/npm/pull/13023) - Fixed a Windows issue with the cache where callbacks could be called more than once. - ([@zkat](https://github.com/zkat)) - -* [`bf348dc`](https://github.com/npm/npm/commit/bf348dcfb944dc4b9f71b779bf172f86a2e1f474) - [#13023](https://github.com/npm/npm/pull/13023) - Fixed a Windows corner case with correct-mkdir where if SUDO_UID or - SUDO_GID were set then we would try to chown things even though that can't - work on Windows. - ([@zkat](https://github.com/zkat)) - -#### RACES IN THE CACHE - -* [`68f29f1`](https://github.com/npm/npm/commit/68f29f18f65c7a7e1c58eb6933af41d786971379) - [#12669](https://github.com/npm/npm/issues/12669) - Ignore ENOENT errors on chownr while adding packages to cache. This change - works around problems with race conditions and local packages. - ([@julianduque](https://github.com/julianduque)) - -#### BETTER GIT ENVIRONMENT WHITELISTING - -* [`5e96566`](https://github.com/npm/npm/commit/5e96566088f0d88c1ed10c5a9cbb7c0cd4aa2aee) - [#13358](https://github.com/npm/npm/pull/13358) - Add GIT_EXEC_PATH to Git environment whitelist. - ([@mhart](https://github.com/mhart)) - -#### DOCUMENTATION - -* [`363e381`](https://github.com/npm/npm/commit/363e381a4076ead89707a00cc4a447b1d59df3bc) - [#13319](https://github.com/npm/npm/pull/13319) - As Node.js 0.8 is no longer supported, remove mention of it from the README. - ([@watilde](https://github.com/watilde)) -* [`e8fafa8`](https://github.com/npm/npm/commit/e8fafa887c60eb8842c76c4b3dffe85eb49fa434) - [#10167](https://github.com/npm/npm/pull/10167) - Clarify in scope documentation that npm@2 is required for scoped packages. - ([@danpaz](https://github.com/danpaz)) - -#### DEPENDENCIES - -* [`66ef279`](https://github.com/npm/npm/commit/66ef279b7c3b3e4f9454474dddd057cc1f21873b) - [npm/fstream-npm#22](https://github.com/npm/fstream-npm/pull/22) - `fstream@1.1.1`: - Always include NOTICE files now. Fix inclusion of scoped modules as bundled dependencies. - ([@kemitchell](https://github.com/kemitchell)) - ([@forivall](https://github.com/forivall)) -* [`fe8385b`](https://github.com/npm/npm/commit/fe8385bd655502feb175eed175a6a06cafb2247a) - `glob@7.0.5`: - Update minimatch dep for security fix. See the minimatch update below for details. - ([@isaacs](https://github.com/isaacs)) -* [`51d49d2`](https://github.com/npm/npm/commit/51d49d2f79b4c69264de73a492ed54f87188d554) - [isaacs/node-graceful-fs#71](https://github.com/isaacs/node-graceful-fs/pull/71) - `graceful-fs@4.1.5`: - `graceful-fs` had a [bug fix](https://github.com/isaacs/node-graceful-fs/pull/71) which - fixes a problem ([nodejs/node#7846](https://github.com/nodejs/node/pull/7846)) exposed - by recent changes to Node.js. - ([@thefourtheye](https://github.com/thefourtheye)) -* [`5c8f39d`](https://github.com/npm/npm/commit/5c8f39d152c43e96b9006ffe865646a36a433a8a) - `minimatch@3.0.3`: - Handle extremely long and terrible patterns more gracefully. - There were some magic numbers that assumed that every extglob pattern starts - and ends with a specific number of characters in the regular expression. - Since !(||) patterns are a little bit more complicated, this led to creating - an invalid regular expression and throwing. - ([@isaacs](https://github.com/isaacs)) -* [`d681e16`](https://github.com/npm/npm/commit/d681e16a475a49d6196af9a5cedaaf88712f3a9f) - [npm/npm-user-validate#9](https://github.com/npm/npm-user-validate/pull/9) - `npm-user-validate@0.1.5`: - Use correct, lower username length limit. - ([@aredridel](https://github.com/aredridel)) -* [`f918994`](https://github.com/npm/npm/commit/f918994bd05ca965766cd573606ac35fb3032d6e) - `request@2.74.0`: - Update `request` dependency `tough-cookie` to `2.3.0` to - to address [https://nodesecurity.io/advisories/130](https://nodesecurity.io/advisories/130). - Versions 0.9.7 through 2.2.2 contain a vulnerable regular expression that, - under certain conditions involving long strings of semicolons in the - "Set-Cookie" header, causes the event loop to block for excessive amounts of - time. - ([@stash-sfdc](https://github.com/stash-sfdc)) -* [`5540cc4`](https://github.com/npm/npm/commit/5540cc4d6bde65071fb6fc2cb074e8598bd1276f) - [isaacs/rimraf#111](https://github.com/isaacs/rimraf/issues/111) - `rimraf@2.5.4`: Clarify assertions: cb is required, options are not. - ([@isaacs](https://github.com/isaacs)) -* [`6357928`](https://github.com/npm/npm/commit/6357928673be85f520dae2104fea58c35742bd65) - `spdx-license-ids@1.2.2`: - New licenses synced from spdx.org. - ([@shinnn](https://github.com/shinnn)) - -### v2.15.9 (2016-06-30): - -What's this? An LTS release? Yes, that is indeed so. Small, as usual, and as -LTSs should be, really, but a release nonetheless! - -The star of the show is an updated `node-gyp` with some goodies. The rest is -just docs and some CI stuff. - -Happy hacking! - -#### DEPENDENCY UPDATE! - -* [`f9a07cc`](https://github.com/npm/npm/commit/f9a07cc873f1915827d8df97d0c43204d1eb128c) - [#13200](https://github.com/npm/npm/pull/13200) - [`node-gyp@3.4.0`](https://github.com/nodejs/node-gyp/blob/master/CHANGELOG.md): - AIX, Visual Studio 2015, and logging improvements. Oh my~! - ([@rvagg](https://github.com/rvagg)) - -#### CI TWEAKS - -* [`bee83b8`](https://github.com/npm/npm/commit/bee83b8500c31aba65451dfcb082f9b5d1d5ce34) - Globally install `rimraf` on CI to make the LTS self-install work better. - ([@othiym23](https://github.com/othiym23)) -* [`6b8c0ab`](https://github.com/npm/npm/commit/6b8c0ab6fcbf8a37e8693acb8bbac22293b10893) - This new Travis configuration only runs coverage checks against Node.js LTS, - which speeds up all the other test runs. By, like, a lot. Also, the entire - file has been extensively commented, so the next time we need to mess with it, - we'll be able to better remember why all the weird bits are there. - ([@othiym23](https://github.com/othiym23)) - -#### DOCUMENTATION FIXES - -* [`2c7a5be`](https://github.com/npm/npm/commit/2c7a5be080276e3fdca3375ab0f8f5edffff753e) - [#13156](https://github.com/npm/npm/pull/13156) - Fix old reference to `doc/install` in a source comment. - ([@sheerun](https://github.com/sheerun)) -* [`e1cf78c`](https://github.com/npm/npm/commit/e1cf78c5b77f95383bd4a7fc6eeb8adbbe68e12e) - [#13189](https://github.com/npm/npm/pull/13189) - [#13113](https://github.com/npm/npm/issues/13113) - [#13189](https://github.com/npm/npm/pull/13189) - Fixes a link to `npm-tag(3)` that was breaking to instead point to - `npm-dist-tag(1)`, as reported by [@SimenB](https://github.com/SimenB) - ([@macdonst](https://github.com/macdonst)) - -### v2.15.8 (2016-06-17): - -There's a very important bug fix and a long-awaited (and significant!) -deprecation in this hotfix release. [Hold on.](http://butt.holdings/) - -#### *WHOA* - -When Node.js 6.0.0 was released, the CLI team noticed an alarming upsurge in -bugs related to important files (like `README.md`) not being included in -published packages. The new bugs looked much like -[#5082](https://github.com/npm/npm/issues/5082), which had been around in one -form or another since April, 2014. #5082 used to be a very rare (and obnoxious) -bug that the CLI team hadn't had much luck reproducing, and we'd basically -marked it down as a race condition that arose on machines using slow and / or -rotating-media-based hard drives. - -Under 6.0.0, the behavior was reliable enough to be nearly deterministic, and -made it very difficult for publishers using `.npmignore` files in combination -with `"files"` stanzas in `package.json` to get their packages onto the -registry without one or more files missing from the packed tarball. The entire -saga is contained within [the issue](https://github.com/npm/npm/issues/5082), -but the summary is that an improvement to the performance of -[`fs.realpath()`](https://nodejs.org/api/fs.html#fs_fs_realpath_path_options_callback) -made it much more likely that the packing code would lose the race. - -Fixing this has proven to be very difficult, in part because the code used by -npm to produce package tarballs is more complicated than, strictly speaking, it -needs to be. [**@evanlucas**](https://github.com/evanlucas) contributed [a -patch](https://github.com/npm/fstream/pull/50) that passed the tests in a -[special test suite](https://github.com/othiym23/eliminate-5082) that I -([**@othiym23**](https://github.com/othiym23)) created (with help from -[**@addaleax**](https://github.com/addaleax)), but only _after_ we'd released -the fixed version of that package did we learn that it actually made the -problem _worse_ in other situations in npm proper. Eventually, -[**@rvagg**](https://github.com/rvagg) put together a more durable fix that -appears to completely address the errant behavior under Node.js 6.0.0. That's -the patch included in this release. Everybody should chip in for redback -insurance for Rod and his family; he's done the community a huge favor. - -Does this mean the long (2+ year) saga of #5082 is now over? At this point, I'm -going to quote from my latest summary on the issue: - -> The CLI team (mostly me, with input from the rest of the team) has decided that -> the overall complexity of the interaction between `fstream`, `fstream-ignore`, -> `fstream-npm`, and `node-tar` has grown more convoluted than the team is -> comfortable (maybe even capable of) supporting. -> -> - While I believe that @rvagg's (very targeted) fix addresses _this_ issue, I -> would be shocked if there aren't other race conditions in npm's packing -> logic. I've already identified a couple other places in the code that are -> most likely race conditions, even if they're harder to trigger than the -> current one. -> - The way that dependency bundling is integrated leads to a situation in -> which a bunch of logic is duplicated between `fstream-npm` and -> `lib/utils/tar.js` in npm itself, and the way `fstream`'s extension -> mechanism works makes this difficult to clean up. This caused a nasty -> regression ([#13088](https://github.com/npm/fstream/pull/50), see below) as -> of ~`npm@3.8.7` where the dependencies of `bundledDependencies` were no -> longer being included in the built package tarballs. -> - The interaction between `.npmignore`, `.gitignore`, and `files` is hopelessly -> complicated, scattered in many places throughout the code. We've been -> discussing [making the ignores and includes logic clearer and more -> predictable](https://github.com/npm/npm/wiki/Files-and-Ignores), and the -> current code fights our efforts to clean that up. -> -> So, our intention is still to replace `fstream`, `fstream-ignore`, and -> `fstream-npm` with something much simpler and purpose-built. There's no real -> reason to have a stream abstraction here when a simple recursive-descent -> filesystem visitor and a synchronous function that can answer whether a given -> path should be included in the packed tarball would do the job adequately. -> -> What's not yet clear is whether we'll need to replace `node-tar` in the -> process. `node-tar` is a very robust implementation of tar (it handles, like, -> everything), and it also includes some very important tweaks to prevent several -> classes of security exploits involving maliciously crafted packages. However, -> its packing API involves passing in an `fstream` instance, so we'd either need -> to produce something that follows enough of `fstream`'s contract for `node-tar` -> to keep working, or swap `node-tar` out for something like `tar-stream` (and -> then ensuring that our use of `tar-stream` is secure, which could involve -> security patches for either npm or `tar-stream`). - -The testing and review of `fstream@1.0.10` that the team has done leads us to -believe that this bug is fixed, but I'm feeling more than a little paranoid -about fstream now, so it's important that people keep a close eye on their -publishes for a while and let us know immediately if they notice any -irregularities. - -* [`2c49265`](https://github.com/npm/npm/commit/2c49265c6746d29ae0cd5f3532d28c5950f9847e) - [#5082](https://github.com/npm/npm/issues/5082) `fstream@1.0.10`: Ensure that - entries are collected after a paused stream resumes. - ([@rvagg](https://github.com/rvagg)) -* [`92e4344`](https://github.com/npm/npm/commit/92e43444d9204f749f83512aeab5d5e0a2d085a7) - [#5082](https://github.com/npm/npm/issues/5082) Remove the warning introduced - in `npm@3.10.0`, because it should no longer be necessary. - ([@othiym23](https://github.com/othiym23)) - -#### GOODBYE, FAITHFUL FRIEND - -At NodeConf Adventure 2016 (RIP in peace, Mikeal Rogers's NodeConf!), the CLI -team had an opportunity to talk to representatives from some of the larger -companies that we knew were still using Node.js 0.8 in production. After asking -them whether they were still using 0.8, we got back blank stares and questions -like, "0.8? You mean, from four years ago?" After establishing that being able -to run npm in their legacy environments was no longer necessary, the CLI team -made the decision to drop support for 0.8. (Faithful observers of our [team -meetings](https://github.com/npm/npm/issues?utf8=%E2%9C%93&q=is%3Aissue+npm+cli+team+meeting+) -will have known this was the plan for NodeConf since the beginning of 2016.) - -In practice, this means only what's in the commit below: we've removed 0.8 from -our continuous integration test matrix below, and will no longer be habitually -testing changes under Node 0.8. We may also give ourselves permission to use -`setImmediate()` in test code. However, since the project still supports -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 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. - -(Confused about Node.js's LTS policy? [Don't -be!](https://github.com/nodejs/LTS) If you look at [this -diagram](https://github.com/nodejs/LTS/blob/ce364a94b0e0619eba570cd57be396573e1ef889/schedule.png), -it should make all of the preceding clear.) - -If, in practice, this doesn't work with distribution packagers or other -community stakeholders responsible for packaging and distributing Node.js and -npm, please reach out to us. Aligning the npm CLI's LTS policy with Node's -helps everybody minimize the amount of work they need to do, and since all of -our teams are small and very busy, this is somewhere between a necessity and -non-negotiable. - -* [`4a1ecc0`](https://github.com/npm/npm/commit/4a1ecc068fb2660bd9bc3e2e2372aa0176d2193b) - Remove 0.8 from the Node.js testing matrix, and reorder to match real-world - priority, with comments. ([@othiym23](https://github.com/othiym23)) - -### v2.15.7 (2016-06-16): - -It pains me greatly that we haven't been able to fix -[#5082](https://github.com/npm/npm/issues/5082) yet, but warning you away from -potentially publishing incomplete packages takes priority over feeling cheesy -about landing a warning to help keep y'all out of trouble, so here you go -(_please read this next bit_ (_please clap_)): - -#### DANGER: PUBLISHING ON NODE 6.0.0 - -Publishing and packing are buggy under Node versions greater than 6.0.0. -Please use Node.js LTS (4.4.x) to publish packages. See -[#5082](https://github.com/npm/npm/issues/5082) for details and current -status. - -* [`dff00ce`](https://github.com/npm/npm/commit/dff00cedd56b9c04370f840299a7e657a7a835c6) - [#13077](https://github.com/npm/npm/pull/13077) - Warn when using Node 6+. - ([@othiym23](https://github.com/othiym23)) - -#### PACKAGING CHANGES - -* [`1877171`](https://github.com/npm/npm/commit/1877171648e20595a82de34073b643f7e01a339f) - [#12873](https://github.com/npm/npm/issues/12873) - Ignore `.nyc_output`. This will help avoid an accidental publish or commit filled with - code coverage data. - ([@TheAlphaNerd](https://github.com/TheAlphaNerd)) - -#### DOCUMENTATION CHANGES - -* [`470ae86`](https://github.com/npm/npm/commit/470ae86e052ae2f29ebec15b7547230b6240042e) - [#12983](https://github.com/npm/npm/pull/12983) - Describe how to run the lifecycle scripts of dependencies. How you do - this changed with `npm` v2. - ([@Tapppi](https://github.com/Tapppi)) -* [`9cedf37`](https://github.com/npm/npm/commit/9cedf37e5a3e26d0ffd6351af8cac974e3e011c2) - [#12776](https://github.com/npm/npm/pull/12776) - Remove mention of `` arg for `run-script`. - ([@fibo](https://github.com/fibo)) -* [`55b8424`](https://github.com/npm/npm/commit/55b8424d7229f2021cac55f0b03de72403e7c0ff) - [#12840](https://github.com/npm/npm/pull/12840) - Remove sexualized language from comment. - ([@geek](https://github.com/geek)) -* [`d6bf0c3`](https://github.com/npm/npm/commit/d6bf0c393788a6398bf80b41c57956f2dbcf3b39) - [#12802](https://github.com/npm/npm/pull/12802) - Small grammar fix in `doc/cli/npm.md`. - ([@andresilveira](https://github.com/andresilveira)) - -#### DEPENDENCY UPDATES - -* [`2c2c568`](https://github.com/npm/npm/commit/2c2c56857ff801d5fe1b6d3157870cd16e65891b) - `readable-stream@2.1.4`: Brought up to date with Node 6.1.0's streams implementation. - ([@calvinmetcalf](https://github.com/calvinmetcalf)) -* [`d682e64`](https://github.com/npm/npm/commit/d682e6445845b0a2584935d5e2942409c43f6916) - [npm/npm-user-validate#8](https://github.com/npm/npm-user-validate/pull/8) - `npm-user-validate@0.1.4`: Add a maximum length limit for usernames based on - the (arbitrary) limit imposed by the primary npm registry. - ([@aredridel](https://github.com/aredridel)) -* [`448b65b`](https://github.com/npm/npm/commit/448b65b48cda3b782b714057fb4b8311cc1fa36a) - `which@1.2.10`: Remove unused dependency `is-absolute`, bug fixes. - ([@isaacs](https://github.com/isaacs)) -* [`7d15434`](https://github.com/npm/npm/commit/7d15434f0b0af8e70b119835b21968217224664f) - `require-inject@1.4.0`: Add `requireInject.withEmptyCache` and - `requireInject.installGlobally.andClearCache` to support loading modules to be - injected with an empty cache. - ([@iarna](https://github.com/iarna)) -* [`31845c0`](https://github.com/npm/npm/commit/31845c081bc6f3f8a2f3d83a3c792dccffbaa2a8) - `init-package-json@1.9.4`: - Replace use of reserved identifier `package` in, uh, the package. - ([@adius](https://github.com/adius)) -* [`d73ef3e`](https://github.com/npm/npm/commit/d73ef3e6b18d4905de668c5115bc6042905a02d9) - `glob@7.0.4`: Use userland `fs.realpath` implementation to get glob working under Node 6. - ([@isaacs](https://github.com/isaacs)) -* [`b47da85`](https://github.com/npm/npm/commit/b47da85cf83b946f2c8d29ab612c92028f31f6b0) - `inflight@1.0.5`: Correct link to package repository, add `"files"` stanza. - ([@iarna](https://github.com/iarna), [@jamestalmage](https://github.com/jamestalmage)) -* [`04815e4`](https://github.com/npm/npm/commit/04815e436035de785279fd000cdbc821cc1f3447) - [npm/npmlog#32](https://github.com/npm/npmlog/pull/32) - `npmlog@2.0.4`: Add `"files"` stanza to `package.json`. - ([@jamestalmage](https://github.com/jamestalmage)) -* [`9e29ad2`](https://github.com/npm/npm/commit/9e29ad227300bb970e7bcd21029944d4733e40db) - `wrappy@1.0.2`: Add `"files"` stanza to `package.json`. - ([@jamestalmage](https://github.com/jamestalmage)) -* [`44af4d4`](https://github.com/npm/npm/commit/44af4d475ac65bdce6d088173273ce4a4f74a49e) - `abbrev@1.0.9` ([@jorrit](https://github.com/jorrit)) -* [`6c977c0`](https://github.com/npm/npm/commit/6c977c0031d074479a26c7bec6ec83fd6c6526b2) - `npm-registry-client@7.1.2`: Add support for newer versions of `npmlog`. - ([@iarna](https://github.com/iarna)) - -### v2.15.6 (2016-05-12): - -I have a couple of doc fixes and a shrinkwrap fix for you all this week. - -#### PEER DEPENDENCIES AND SHRINKWRAPS - -* [`55c998a`](https://github.com/npm/npm/commit/55c998a098a306b90a84beef163a8890f9a616b1) - [#5135](https://github.com/npm/npm/issues/5135) - Fix a bug where peerDependencies & shrinkwraps didn't play nice together. (Where - the peerDependency resolver would end up installing its dep when it wasn't needed.) - ([@majgis](https://github.com/majgis)) - -#### NPM AND `node-gyp` DOCS IMPROVEMENTS - -* [`1826908`](https://github.com/npm/npm/commit/1826908b991510d8fbc71a0d0f2c01ff24fd83c2) - [#12636](https://github.com/npm/npm/pull/12636) - Improve `npm-scripts` documentation regarding when `node-gyp` is used. - ([@reconbot](https://github.com/reconbot)) -* [`f9ff7f3`](https://github.com/npm/npm/commit/f9ff7f36cc2c2c3fbb4f6eef91491b589d049d5f) - [#12586](https://github.com/npm/npm/pull/12586) - Correct `package.json` documentation as to when `node-gyp rebuild` called. - This now matches https://docs.npmjs.com/misc/scripts#default-values - ([@reconbot](https://github.com/reconbot)) - -### v2.15.5 (2016-05-05): - -This is a minor LTS release, bringing dependencies up to date and updating -our CI matrix to match what we support. - -Some of the dependency updates come out of our getting the development -branch's tests passing on Windows and so bring in fixes for a few Windows -related corner cases. - -#### CI UPDATES - -* [`bb6f0e5`](https://github.com/npm/npm/commit/bb6f0e5c95d4ad186768b1c962dd4c399f90ddb1) - [#12487](https://github.com/npm/npm/pull/12487) - Remove iojs from CI, add Node.js 6, prioritize 4 over 5. - ([@othiym23](https://github.com/othiym23)) - -#### DEPENDENCY UPDATES - -* [`f2f8753`](https://github.com/npm/npm/commit/f2f8753c4aef2a604a4bdca2677711c940234b8f) - `which@1.2.8`: - Properly handle relative path executables. - ([@isaacs](https://github.com/isaacs)) -* [`e287ca9`](https://github.com/npm/npm/commit/e287ca99c37680d8e4cfacf4cfebe2da98884865) - `read-package-json@2.0.4`: - Fix Windows issue with ENOTDIR detection. - ([@zkat](https://github.com/zkat)) -* [`1a0ce6c`](https://github.com/npm/npm/commit/1a0ce6cff4c347bad035dc89bba2ceed9dacbf73) - `realize-package-specifier@3.0.3`: - Use npa with windows fix. - Fix relative path resolution when the local file might also be a tag. - ([@zkat](https://github.com/zkat)) - ([@iarna](https://github.com/iarna)) -* [`a475c9a`](https://github.com/npm/npm/commit/a475c9a4e4b36d00080b11f379657ce68185adc6) - `lru-cache@4.0.1`: - Use Symbol if available. - ([@isaacs](https://github.com/isaacs)) -* [`7141e08`](https://github.com/npm/npm/commit/7141e08816c620b1889d7537c30dc5b254de4d1f) - `sorted-object@2.0.0` - ([@iamstarkov](https://github.com/iamstarkov)) -* [`27c6190`](https://github.com/npm/npm/commit/27c6190216cc8a5a280f0efbabb3444581968d40) - `request@2.72.0` - ([@simov](https://github.com/simov)) -* [`ab90daf`](https://github.com/npm/npm/commit/ab90daf70ba51b51f722fb4cd74ac5267621c4b4) - `readable-stream@2.1.2` - ([@calvinmetcalf](https://github.com/calvinmetcalf)) -* [`b1715f8`](https://github.com/npm/npm/commit/b1715f805426403273225bcfa91d1a52d7b56eb8) - `graceful-fs@4.1.4` - ([@isaacs](https://github.com/isaacs)) -* [`ca97de6`](https://github.com/npm/npm/commit/ca97de6c18059ef420235f4706898ad8758904e6) - `block-stream@0.0.9` - ([@isaacs](https://github.com/isaacs)) - -### v2.15.4 (2016-04-21): - -Gosh, it's been a peaceful couple of weeks! - -Overall, the CLI team has been focused on the project to [get the test suite -passing on Windows](https://github.com/npm/npm/pull/11444). Our efforts should -be paying off soon -- there's only a couple of tests left! - -It's very unlikely those particular changes will make their way into our current -`npm@2` LTS release, I think, but it will help `npm@3` a lot, as well as -whatever version makes it into [`node@6`, which will eventually be the next -Node.js LTS](https://github.com/nodejs/node/pull/6155). - -As far as this week goes, we've got a couple of dep updates and doc fixes. -Always happy to see community contributions flying in. 💚 - -#### DEP UPDATE MAGIC - -* [`b178c4a`](https://github.com/npm/npm/commit/b178c4ac9ce91c0a0794526a38b553c759132d18) - `spdx-license-ids@1.2.1`: - Minor project-related tweaks -- no license changes. - ([@shinnn](https://github.com/shinnn)) -* [`1adf179`](https://github.com/npm/npm/commit/1adf179948ab8cb97dfb2f46a61e9f37d944c42a) - `normalize-git-url@3.0.2`: - Fixes `file://` URLs on Windows. Turns out stuff like `file://C:\hello` is - actually fairly weird for a URL (it's not actually a valid URL, but we're just - gonna pretend.😉) - ([@zkat](https://github.com/zkat)) -* [`9cfd56c`](https://github.com/npm/npm/commit/9cfd56cdadc040c0b2fa7654cdb5e7d22dbef7cb) - `fs-vacuum@1.2.9`: - This one goes out to our fans at Big Blue: There was an AIX-specific issue - where `fs.rmDir` was failing with `EEXIST` instead of `ENOTEMPTY` with - non-empty directories. - ([@richardlau](https://github.com/richardlau)) - -#### HOORAY DOC CONTRIBUTIONS - -No seriously, we love these. Keep 'em comin'! - -* [`2afe8bf`](https://github.com/npm/npm/commit/2afe8bf415a159baa181a8102f72c96e1d189bc9) - [#12415](https://github.com/npm/npm/pull/12415) - Clarify that the `--cert` and `--key` options are actual certs and keys, not - paths to files containing them. - ([@rvedotrc](https://github.com/rvedotrc)) -* [`3522560`](https://github.com/npm/npm/commit/3522560b0a4bb6c9717a34f9728f156fd9760cad) - [#12107](https://github.com/npm/npm/pull/12107) - Document `npm login` as an alias to `npm adduser`. People are still surprised - by this so often. - ([@gnerkus](https://github.com/gnerkus)) - -### v2.15.3 (2016-03-31): - -Hiiiiiii!~👋 - -We're really happy to be getting more and more community contributions! Keep it -up! We really appreciate folks trying to help us, and we'll do our best to help -point you in the right direction. Even things like documentation are a huge -help. And remember -- you get socks for it, too!🎁 - -This week is as quiet as usual, aside from fixing a regression to `npm -deprecate` you might want to pay attention to! Other than that, just docs and -deps, as any good LTS release train should be. 🙆 - -#### FIXME - -* [`6e0b66e`](https://github.com/npm/npm/commit/6e0b66e282aa27d1b5371e2babaa859924121730) - [#11884](https://github.com/npm/npm/pull/11884) - Include `node_modules` in the list of files and directories that npm won't - include in packages ordinarily. (Modules listed in `bundledDependencies` and - things that those modules rely on, ARE included of course.) - ([@Jameskmonger](https://github.com/Jameskmonger)) -* [`9896290`](https://github.com/npm/npm/commit/98962909b160364030705575202ad133971033c1) - [#12079](https://github.com/npm/npm/pull/12079) - Back in `npm@2.13.1` we included [a patch that made it so `npm install pkg` - was basically `npm install pkg@latest` instead of - `pkg@*`](https://github.com/npm/npm/pull/9170) This is probably what most - users expected, but it also ended up [breaking `npm - deprecate`](https://github.com/npm/npm/pull/9170) when no version was provided - for a package. In that case, we were using `*` to mean "deprecate all - versions" and relying on the `pkg` -> `pkg@*` conversion. This patch fixes - `npm deprecate pkg` to work as it used to by special casing that particular - command's behavior. - ([@polm](https://github.com/polm)) -* [`6c1628f`](https://github.com/npm/npm/commit/6c1628f62b657db6c116be13849d00933a3388cd) - [#12146](https://github.com/npm/npm/pull/12146) - Adds `make doc-clean` to `prepublish` script, to clear out previously built - docs before publishing a new npm version. - ([@watilde](https://github.com/watilde)) -* [`6d3017e`](https://github.com/npm/npm/commit/6d3017e6eed8a771b395d10130ac1f498e2d3211) - [#12146](https://github.com/npm/npm/pull/12146) - Adds `doc-clean` phony target to `make publish`. - ([@watilde](https://github.com/watilde)) - -#### DOCS - -* [`d43921c`](https://github.com/npm/npm/commit/d43921c546617cdb94bbee444d7d67ef55f38dc5) - [#12147](https://github.com/npm/npm/pull/12147) - Document that the current behavior of `engines` is just to warn if the node - platform is incompatible. - ([@reconbot](https://github.com/reconbot)) -* [`3cfe99e`](https://github.com/npm/npm/commit/3cfe99e3a757c5d8cbb1c2789410e9802563abac) - [#12093](https://github.com/npm/npm/pull/12093) - Update `bugs` url in `package.json` to use the `https` URL for Github. - ([@watilde](https://github.com/watilde)) -* [`ecf865f`](https://github.com/npm/npm/commit/ecf865f4eed1419c75442e0d52bc34ba1647de15) - [#12075](https://github.com/npm/npm/pull/12075) - Add the `--ignore-scripts` flag to the `npm install` docs. - ([@paulirish](https://github.com/paulirish)) -* [`f0e6db3`](https://github.com/npm/npm/commit/f0e6db32827d88680ef2320e60c0863754a4fbc5) - [#12063](https://github.com/npm/npm/pull/12063) - Various minor fixes to the html docs homepage. - ([@watilde](https://github.com/watilde)) - -#### DEPS - -* [`e2660de`](https://github.com/npm/npm/commit/e2660de1c08ed68a1c6fc4ee75d10376595979be) - `npmlog@2.0.3` - ([@iarna](https://github.com/iarna)) - -### v2.15.2 (2016-03-24): - -It's always nice to see new contributors. 💚 - -This week sees another small release, but we're still chugging along on our -[Windows efforts](https://github.com/npm/npm/pull/11444). - -There's also some small process changes to our LTS process relatively recently -that you might wanna know about! 💁 - -For one, the `2.x` branch was removed in favor of just `lts`. If you're making -PRs exclusively against npm's LTS, please use that name from now on. `2.x` was -deleted. - -Also, [@othiym23](https://github.com/othiym23) put some time into [writing down -our LTS process and policy](https://github.com/npm/npm/wiki/LTS). Check it out -and ping us if you have questions or comments about it! - -In general, we're trying to make sure all our policy and such for our -contributors is written down, and we hope it makes it easier in general for -y'all. Forrest is also working on a shiny new Contributor's Guide right now, but -we'll link to that in the (near?) future, when it's ready to roll out. - -#### TESTS - -* [`1d0e468`](https://github.com/npm/npm/commit/1d0e468c06c7b8e2b95b7fe874a3399a16d9db74) - [#11931](https://github.com/npm/npm/pull/11931) - Removes a bunch of old, disabled tests that have just been sitting around, - doing nothing. - ([@othiym23](https://github.com/othiym23)) -* [`7ae8aa1`](https://github.com/npm/npm/commit/7ae8aa1d9dc47761024f6756114205db3fb2c80b) - [#11987](https://github.com/npm/npm/pull/11987) - There was a failure in the `outdated-symlink` test caused by using the default - registry instead of the mock registry tests. - ([@yodeyer](https://github.com/yodeyer)) - -#### DOCS - -* [`b2649fb`](https://github.com/npm/npm/commit/b2649fb360f239aadef1ab51a580cbf4fdf29722) - [#12006](https://github.com/npm/npm/pull/12006) - Access was Team and Team was Access, but someone from the community rolled - around and corrected it for us. Thanks a bunch! - ([@yaelz](https://github.com/yaelz)) - -### v2.15.1 (2016-03-17): - -#### SECURITY ADVISORY: BEARER TOKEN DISCLOSURE - -This release includes [the fix for a -vulnerability](https://github.com/npm/npm/commit/fea8cc92cee02c720b58f95f14d315507ccad401) -that could cause the unintentional leakage of bearer tokens. - -Here are details on this vulnerability and how it affects you. - -##### DETAILS - -Since 2014, npm’s registry has used HTTP bearer tokens to authenticate requests -from the npm’s command-line interface. A design flaw meant that the CLI was -sending these bearer tokens with _every_ request made by logged-in users, -regardless of the destination of their request. (The bearers only should have -been included for requests made against a registry or registries used for the -current install.) - -An attacker could exploit this flaw by setting up an HTTP server that could -collect authentication information, then use this authentication information to -impersonate the users whose tokens they collected. This impersonation would -allow them to do anything the compromised users could do, including publishing -new versions of packages. - -With the fixes we’ve released, the CLI will only send bearer tokens with -requests made against a registry. - -##### THINK YOU'RE AT RISK? REGENERATE YOUR TOKENS - -If you believe that your bearer token may have been leaked, [invalidate your -current npm bearer tokens](https://www.npmjs.com/settings/tokens) and rerun -`npm login` to generate new tokens. Keep in mind that this may cause continuous -integration builds in services like Travis to break, in which case you’ll need -to update the tokens in your CI server’s configuration. - -##### WILL THIS BREAK MY CURRENT SETUP? - -Maybe. - -npm’s CLI team believes that the fix won’t break any existing registry setups. -Due to the large number of registry software suites out in the wild, though, -it’s possible our change will be breaking in some cases. - -If so, please [file an issue](https://github.com/npm/npm/issues/new) describing -the software you’re using and how it broke. Our team will work with you to -mitigate the breakage. - -##### CREDIT & THANKS - -Thanks to Mitar, Will White & the team at Mapbox, Max Motovilov, and James -Taylor for reporting this vulnerability to npm. - -### BACK TO YOUR REGULARLY SCHEDULED PROGRAMMING - -Aside from that, it's another one of those releases again! Docs and tests, it -turns out, have a pretty easy time getting into LTS releases, and boring is -exactly how LTS should be. 💁 - -#### DOCS - -* [`981c89c`](https://github.com/npm/npm/commit/981c89c8e398ca22ab6bf466123b25728ef6f543) - [#11820](https://github.com/npm/npm/pull/11820) - The basic explanation for how `npm link` works was a bit confusing, and - somewhat incorrect. It should be clearer now. - ([@rhgb](https://github.com/rhgb)) -* [`35b2b45`](https://github.com/npm/npm/commit/35b2b45f181dcbfb297f53b577dc1f26efcf3aba) - [#11787](https://github.com/npm/npm/pull/11787) - The `verison` alias for `npm version` no longer shows up in the command list - when you do `npm -h`. - ([@doug-wade](https://github.com/doug-wade)) -* [`1c9d00f`](https://github.com/npm/npm/commit/1c9d00f788298a81a8a7293d7dcf430f01bdd7fd) - [#11786](https://github.com/npm/npm/pull/11786) - Add a comment to the `npm-scope.md` docs about `npm@>=2` being required in - order to use scoped packaged. - ([@doug-wade](https://github.com/doug-wade)) -* [`7d64fb1`](https://github.com/npm/npm/commit/7d64fb1452d360aa736f31c85d6776ce570b2365) - [#11762](https://github.com/npm/npm/pull/11762) - Roll back patch that previously advised people to use `--depth Infinity` - instead of `--depth 9999`. Just keep using `--depth 9999`. - ([@GriffinSchneider](https://github.com/GriffinSchneider)) - -#### TESTS - -* [`98a9ee4`](https://github.com/npm/npm/commit/98a9ee4773f83994b8eb63c0ff75a9283408ba1a) - [#11912](https://github.com/npm/npm/pull/11912) - Did you know npm can install itself? `npm install -g npm` is the way to - upgrade! Turns out that one of the tests that verified this functionality got - rewritten as part of our recent push for better tests, and in the process - omitted a detail about *how* the test ran. We're testing that corner case - again, now, by moving the install folder to `/tmp`, where the original legacy - test ran. - ([@iarna](https://github.com/iarna)) - -### v2.15.0 (2016-03-10): - -#### WHY IS THIS SEMVER-MINOR I THOUGHT THIS WAS LTS - -A brief note about LTS this week! - -npm, as you may know if you're using this `2.x` branch, has an LTS process for -releases. We also try and play nice with [Node.js' own LTS release -process](https://github.com/nodejs/LTS#lts-plan). That means we generally try to -avoid things like minor version bumps on our `2.x` branch (which is also tagged -`lts` in the `dist-tag`s). - -That said, we had a minor-bump update recently for `npm@3.8.0` which added a -`maxsockets` option to allow users to configure the number of concurrent sockets -that npm would keep open at a time -- a setting that has the potential to help a -bunch for people with fussy routers or internet connections that aren't very -happy with Node.js applications' usual concurrency storm. This change was done -to `npm-registry-client`, which we don't have a parallel LTS-tracking branch -for. - -After talking it over, we ended up deciding that this was a reasonable enough -addition to LTS, even though it's *technically* a `semver-minor` bump, taking -into account both its potential for bugfixing (specially on `2.x`!) and the -general hassle it would be to maintain another branch for `npm-registry-client`. - - -* [`6dd61e7`](https://github.com/npm/npm/commit/6dd61e781c145480dc255a3e6a748729868443fd) - Expose `maxsockets` config setting from new `npm-registry-client`. - ([@misterbyrne](https://github.com/misterbyrne)) -* [`8a021c3`](https://github.com/npm/npm/commit/8a021c35184e665bd1f3f70ae2f478af812ab614) - `npm-registry-client@7.1.0`: - Adds support for configuring the max number of concurrent sockets, defaulting - to `50`. - ([@iarna](https://github.com/iarna)) - -#### DOC PATCH IS HERE TOO - -* [`0ae9f74`](https://github.com/npm/npm/commit/0ae9f740001a1bdf5920bc464cf9e284d5d139f0) - [#11748](https://github.com/npm/npm/pull/11748) - Add command aliases as a separate section in documentation for npm - subcommands. - ([@watilde](https://github.com/watilde)) - -#### DEP UPDATES - -* [`bfc3888`](https://github.com/npm/npm/commit/bfc38887f832f701c16b7ee410c4e0220a90399f) - `strip-ansi@3.0.1` - ([@jbnicolai](https://github.com/jbnicolai)) -* [`d5f4d51`](https://github.com/npm/npm/commit/d5f4d51a1b7ea78d7431c7ed4fed30200b2622f8) - `node-gyp@3.3.1`: Fixes Android generator - ([@bnoordhuis](https://github.com/bnoordhuis)) -* [`4119df8`](https://github.com/npm/npm/commit/4119df8aecd2ae57b0492ad8c9a480d900833008) - `glob@7.0.3`: Some path-related fixes for Windows. - ([@isaacs](https://github.com/isaacs)) - -### v2.14.22 (2016-03-03): - -This week is all documentation improvements. In case you hadn't noticed, we -*love* doc patches. We love them so much, we give socks away if you submit -documentation PRs! - -These folks are all getting socks if they ask for them. The socks are -super-sweet. Do you have yours yet? 👣 - -* [`3f3c7d0`](https://github.com/npm/npm/commit/3f3c7d080f052a5db91ff6091f8b1b13f26b53d6) - [#11441](https://github.com/npm/npm/pull/11441) - Add a link to the [Contribution - Guidelines](https://github.com/npm/npm/wiki/Contributing-Guidelines) to the - main npm docs. - ([@watilde](https://github.com/watilde)) -* [`9f87bb1`](https://github.com/npm/npm/commit/9f87bb1934acb33b678c17b7827165b17c071a82) - [#11441](https://github.com/npm/npm/pull/11441) - Remove Google Group email from npm docs about contributing. - ([@watilde](https://github.com/watilde)) -* [`93eaab3`](https://github.com/npm/npm/commit/93eaab3ee5ad16c7d90d1a4b38a95403fcf3f0f6) - [#11474](https://github.com/npm/npm/pull/11474) - Fix an invalid JSON error overlooked in - [#11196](https://github.com/npm/npm/pull/11196). - ([@robludwig](https://github.com/robludwig)) -* [`a407ca2`](https://github.com/npm/npm/commit/a407ca2bcf6a05117e55cf2ab69376e09094995e) - [#11483](https://github.com/npm/npm/pull/11483) - Add more details and an example to the documentation for bundledDependencies. - ([@gnerkus](https://github.com/gnerkus)) -* [`2c851a2`](https://github.com/npm/npm/commit/2c851a231afd874baa77c42ea5ba539c454ac79c) - [#11490](https://github.com/npm/npm/pull/11490) - Document the `--registry` flag for `npm search`. - ([@plumlee](https://github.com/plumlee)) - -### v2.14.21 (2016-02-25): - -Good news, everyone! There's a new LTS release with a few shinies here and there! - -#### USE THIS ONE INSTEAD - -We had some cases where the versions of npm and node used in some scripting situations were different than the ideal, or what folks actually expected. These should be particularly helpful to our Windows friends! <3 - -* [`02813c5`](https://github.com/npm/npm/commit/02813c55782a9def23f7f1e614edc38c6c88aed3) [#9253](https://github.com/npm/npm/issues/9253) Fix a bug where, when running lifecycle scripts, if the Node.js binary you ran `npm` with wasn't in your `PATH`, `npm` wouldn't use it to run your scripts. ([@segrey](https://github.com/segrey) and [@narqo](https://github.com/narqo)) -* [`a985dd5`](https://github.com/npm/npm/commit/a985dd50e06ee51ba5544577f977c7440c227ba2) [#11526](https://github.com/npm/npm/pull/11526) Prefer locally installed npm in Git Bash -- previous behavior was to use the global one. This was done previously for other shells, but not for Git Bash. ([@destroyerofbuilds](https://github.com/destroyerofbuilds)) - -#### SOCKS FOR THE SOCK GOD - -* [`f961092`](https://github.com/npm/npm/commit/f9610920079d8b88ae464b30007a92c594bd85a8) - [#11636.](https://github.com/npm/npm/issues/11636.) - Document the `--save-bundle` option for `npm install`. - ([@datyayu](https://github.com/datyayu)) -* [`7c908b6`](https://github.com/npm/npm/commit/7c908b618f7123f0a3b860c71eb779e33df35964) - [#11644](https://github.com/npm/npm/pull/11644) - Add documentation for the `test` directory for packages. - ([@lewiscowper](https://github.com/lewiscowper)) - -#### INTERNAL TEST IMPROVEMENTS - -The npm CLI team's time recently has been sunk into npm's many years of tech debt. Specifically, we've been working on improving the test suite. This isn't user visible, but in future should mean a more stable, easier to contribute to npm. Ordinarily we don't report these kinds of changes in the change log, but I thought I might share this week as this chunk is bigger than usual. - -These patches were previously released for `npm@3`, and then ported back to `npm@2` LTS. - -* [`437c537`](https://github.com/npm/npm/commit/437c537e2be5923c6d2c2753154564ba13db8fd9) [#11613](https://github.com/npm/npm/pull/11613) Fix up one of the tests after rebasing the legacy test rewrite to `npm@2`. ([@zkat](https://github.com/zkat)) -* [`55abd0c`](https://github.com/npm/npm/commit/55abd0cc20e87a144d33ce2d459f65e7506da576) [#11613](https://github.com/npm/npm/pull/11613) Test that the `package.json` `files` section and `.npmignore` do what they're supposed to. ([@zkat](https://github.com/zkat)) -* [`a2b99b6`](https://github.com/npm/npm/commit/a2b99b6273ada14b2121ebc0acb7933e630edd9d) [#11613](https://github.com/npm/npm/pull/11613) Test that npm's distribution binary is complete and can be installed and used. ([@iarna](https://github.com/iarna)) -* [`8a8c36c`](https://github.com/npm/npm/commit/8a8c36ce51166006022e5c5d4f8655bbc458d651) [#11613](https://github.com/npm/npm/pull/11613) Test that environment variables are properly passed into scripts. - ([@iarna](https://github.com/zkat)) -* [`a95b550`](https://github.com/npm/npm/commit/a95b5507616bd51e83d7eab5f2337b1aff6480b1) [#11613](https://github.com/npm/npm/pull/11613) Test that we don't leak auth info into the environment. ([@iarna](https://github.com/iarna)) -* [`a1c1c52`](https://github.com/npm/npm/commit/a1c1c52efeab24f6dba154d054f85d9efc833486) [#11613](https://github.com/npm/npm/pull/11613) Remove all the relatively cryptic legacy tests and creates new tap tests that check the same functionality. The *legacy* tests were tests that were originally a shell script that was ported to javascript early in `npm`'s history. ([@iarna](https:\\github.com/iarna) and [@zkat](https://github.com/zkat)) -* [`9d89581`](https://github.com/npm/npm/commit/9d895811d3ee70c2e672f3d8fa06574495b5b488) [#11613](https://github.com/npm/npm/pull/11613) `tacks@1.0.9`: Add a package that provides a tool to generate fixtures from folders and, relatedly, a module that an create and tear down filesystem fixtures easily. ([@iarna](https://github.com/iarna)) - -### v2.14.20 (2016-02-18): - -Hope y'all are having a nice week! As usual, it's a fairly limited release. The -most notable thing is some dependency updates that might help the Node.js CI -setup for Windows run a little better, even if we have some work to do on that -path length things, still. - -#### WHITTLING AWAY AT PATH LENGTHS - -So for all of you who don't know -- Node.js does, in fact, support long Windows -paths. Unfortunately, depending on the tool and the Windows version, a lot of -external tooling does not. This means, for example, that some (all?) versions of -Windows Explorer *can literally never delete npm from their system entirely -because of deeply-nested npm dependencies*. Which is pretty gnarly. - -Incidentally, if you run into that in particularly, you can use -[rimraf](npm.im/rimraf) to remove such files 💁. - -The latest victim of this issue was the Node.js CI setup for testing on Windows, -which uses some tooling or another that croaks on the usual path length limit -for that OS: 255 characters. - -This issue, of course, is largely not a problem as of `npm@3`, with its flat -trees, but it still occasionally and viciously bites LTS. - -We've taken another baby step towards alleviating this in this release by -updating a couple of dependencies that were preventing `npmlog` from deduping, -and then doing a dedupe on that and `gauge`. Hopefully it helps. - -* [`4199551`](https://github.com/npm/npm/commit/41995517e617674710748ab6d262670c96124393) - [#11528](https://github.com/npm/npm/pull/11528) - `npm-install-checks@1.0.7`: Just updates the version of npmlog so we can - dedupe it better. - ([@zkat](https://github.com/zkat)) -* [`14d72c7`](https://github.com/npm/npm/commit/14d72c756b89e2d167eb52c1849263dbddcb9f35) - [#11552](https://github.com/npm/npm/pull/11552) - [#11528](https://github.com/npm/npm/pull/11528) - `node-gyp@3.3.0`: AIX support, new `gyp`, update `npmlog` (for the dedupe), - adds `--cafile` command line option, and allows configuration of Node.js and - io.js mirrors. - ([@rvagg](https://github.com/rvagg)) -* [`0453cb9`](https://github.com/npm/npm/commit/0453cb94b33520eb723b7072cd2654b1d0142533) - [#11528](https://github.com/npm/npm/pull/11528) - Do a `dedupe` on `gauge` to flatten our dependencies a bit more. - ([@zkat](https://github.com/zkat)) - -#### OTHER DEP STUFF - -* [`686c0b3`](https://github.com/npm/npm/commit/686c0b37ec3a7b65f9b3849e1099805e5221c408) - `rimraf@2.5.2`: Just updates to glob@7. - ([@isaacs](https://github.com/isaacs)) - -#### @wyze, DOCUMENTATION HERO OF THE PEOPLE, GETS THEIR OWN HEADER - -* [`7232948`](https://github.com/npm/npm/commit/72329484c775376cb40d5b348f453eaaf2f0b821) - [#11416](https://github.com/npm/npm/pull/11416) - Logout docs were using a section copy-pasted from the adduser docs. - ([@wyze](https://github.com/wyze)) -* [`922b33a`](https://github.com/npm/npm/commit/922b33aba4362e1e90f42e9348f061a1cc73eafb) - [#11414](https://github.com/npm/npm/pull/11414) - Add colon for consistency. - ([@wyze](https://github.com/wyze)) - -### v2.14.19 (2016-02-11): - -Really tiny micro-release this week! The main thing to note is a dependency -update that means we no longer have `graceful-fs@3` in our dependency tree. This -has some implications for being able to run on future Node.js releases, so -better to get this out the door. 😁 - -#### DEPS - -* [`a556e0f`](https://github.com/npm/npm/commit/a556e0f9dcb5d7b44224ba9c16c9d0dc6c8d2532) - `cmd-shim@2.0.2`: Final straggler using `graceful-fs@<4`. - ([@ForbesLindesay](https://github.com/ForbesLindesay)) - -#### DOCS - -* [`69a2d59`](https://github.com/npm/npm/commit/69a2d599bf0cba674ee268483e9bd5c14333b89f) - [#11391](https://github.com/npm/npm/pull/11391) - Fixed versions of `shrinkwrap.json` in examples in documentation for `npm - shrinkwrap`, which did not quite match up. - ([@xcatliu](https://github.com/xcatliu)) - -### v2.14.18 (2016-02-04): - -Clearly our docs are perfect after all those wonderful PRs, 'cause this week's -gonna be all about dependency updates. Note: There is a small security-related -fix included here! - -#### SECURITY-RELATED DEPENDENCY UPDATE - -* [`5c095ef`](https://github.com/npm/npm/commit/5c095eff8dc006980d4d083f2007e4dacff23be3) - [#11341](https://github.com/npm/npm/pull/11341) - `request@2.69.0`: Includes security-related dependency updates involving - `hawk` and `is-my-json-valid` - ([@remy](https://github.com/remy) and [@simov](https://github.com/simov)) - -#### OTHER DEPENDENCY UPDATES - -* [`f9c2668`](https://github.com/npm/npm/commit/f9c2668ca3e6e2602d91250ce61280e5e12d0a00) - `which@1.2.4` - ([@isaacs](https://github.com/isaacs)) -* [`2907c43`](https://github.com/npm/npm/commit/2907c43ad4ef87e5f730c2576f680d6837fcbad0) - `spdx-license-ids@1.2.0` - ([@shinnn](https://github.com/shinnn)) -* [`7734069`](https://github.com/npm/npm/commit/773406960bf7f4a87b2ecb6ebf593c62d0e9f95d) - `rimraf@2.5.1` - ([@isaacs](https://github.com/isaacs)) -* [`f4b39a7`](https://github.com/npm/npm/commit/f4b39a7dd5e1335d92aa22c46d99abb33f271b8b) - `retry@0.9.0` - ([@tim-kos](https://github.com/tim-kos)) -* [`ded1e7a`](https://github.com/npm/npm/commit/ded1e7a1c9c7bec29bb7c30a8f85546670e75b56) - Nest `retry@0.8.0` inside `npm-registry-client` to prevent invalid - dependency issue until the latter gets a dependency update. - ([@zkat](https://github.com/zkat)) -* [`ab9f867`](https://github.com/npm/npm/commit/ab9f8679f9687f91ad03adaab6211a897aeebbae) - `read-package-json@2.0.3` - ([@iarna](https://github.com/iarna)) -* [`b638c41`](https://github.com/npm/npm/commit/b638c41607bb936b9eaaceba2aeeda1d34e3a9b2) - `npmlog@2.0.2` - ([@iarna](https://github.com/iarna)) -* [`49f34af`](https://github.com/npm/npm/commit/49f34af463a674359269025d8438feb6a7c69960) - `init-package-json@1.9.3` - ([@iarna](https://github.com/iarna)) -* [`2305dab`](https://github.com/npm/npm/commit/2305dab4e7bff09bb7686cec653cf1e663dbf15d) - `graceful-fs@4.1.3`: Fixed `.close()` not being patched. - ([@isaacs](https://github.com/isaacs)) -* [`18496d9`](https://github.com/npm/npm/commit/18496d9a0fff94e3652655998e8333056aa52b15) - `fs-write-stream-atomic@1.0.8` - ([@iarna](https://github.com/iarna)) -* [`6637bc7`](https://github.com/npm/npm/commit/6637bc7a0e194d82554cd7c91e1794018fef5943) - `config-chain@1.1.10` - ([@dominictarr](https://github.com/dominictarr)) -* [`4222bad`](https://github.com/npm/npm/commit/4222badffed9e9edacea6a8a96a99a164d376158) - `columnify@1.5.4` - ([@timoxley](https://github.com/timoxley)) -* [`df9016f`](https://github.com/npm/npm/commit/df9016f327a2a9ce492ebc75b882b03069438e13) - `ansi@0.3.1`: Added a license file. - ([@TooTallNate](https://github.com/TooTallNate)) - -### v2.14.17 (2016-01-28): - -Another week, another small LTS release! - -#### BETTER ERROR REPORTING YAY - -So as it turns out, when stuff goes wrong, it's actually nice to give people a -better clue rather than just say "oh well 😏". - -* [`5b8ccb9`](https://github.com/npm/npm/commit/5b8ccb91cf11b4edb463609cd4ed1dee84ed4db0) - [#11289](https://github.com/npm/npm/pull/11289) - There is an obscure feature that lets you monkey-patch npm when it starts up. - If the module being required with this feature failed, it would previous just - make npm error out– this reduces that to a warning. - ([@evanlucas](https://github.com/evanlucas)) -* [`556e42a`](https://github.com/npm/npm/commit/556e42ac6bab078722ddc1dc6cce4428d001133b) - [#11300](https://github.com/npm/npm/pull/11300) - Report symlinked packages as 'linked' in the output for `npm outdated`. - ([@halhenke](https://github.com/halhenke)) -* [`3842317`](https://github.com/npm/npm/commit/3842317583e0ea2eca78e39aa03f5bc06ba21de7) - [#11290](https://github.com/npm/npm/pull/11290) - Suppress warnings about pre-release node versions. This should get node's CI - passing on non-Windows platforms without needing to modify the node version to - get rid of the pre-release suffix. - ([@iarna](https://github.com/iarna)) - -#### EVERYONE WANTS THOSE NPM SOCKS, GEEZE - -Did you know that you can get npm socks for contributing to our docs? I bet -these people do, and now so do you! - -* [`dcde451`](https://github.com/npm/npm/commit/dcde451cb85a6ca08acc6ef45782c652f1d8fc89) - [#11232](https://github.com/npm/npm/pull/11232) - Update automatically included/excluded packages in `package.json`. - ([@jscissr](https://github.com/jscissr)) -* [`e3f8d5b`](https://github.com/npm/npm/commit/e3f8d5be5ac5ec1d72db42f7abf50cc4a8c5935c) - [#11273](https://github.com/npm/npm/pull/11273) - Add an example for `npm view versions`. - ([@vedatmahir](https://github.com/vedatmahir)) -* [`6a06ef2`](https://github.com/npm/npm/commit/6a06ef2252748089f0013de951f2d06160b90306) - [#11272](https://github.com/npm/npm/pull/11272) - Fix a typo in `npm-update.md`. - ([@jonathanp](https://github.com/jonathanp)) -* [`2515ff1`](https://github.com/npm/npm/commit/2515ff1de28f0b261fb25c79a66bd762a65961c4) - [#11215](https://github.com/npm/npm/pull/11215) - Correct small thinko in docs for SPDX expressions. - ([@kemitchell](https://github.com/kemitchell)) -* [`70f897b`](https://github.com/npm/npm/commit/70f897b03da9a5d5d4fd34614e9ee40e6f9e9653) - [#11196](https://github.com/npm/npm/pull/11196) - Make JSON snippets valid JSON in `npm update` docs. - ([@s100](https://github.com/s100)) - -### v2.14.16 (2016-01-21): - -Good to see you all again! It's been a while since we had an LTS release, and -the team continues to work hard to both get the issue tracker under control, and -get our test suite to be awesome and reliable. - -This is also the first LTS release of this year. - -We're gonna have an interesting time -- most of our focus this year will be -around stability and maintainability of the CLI, so you might actually end up -seeing a number of updates even over here, just for the sake of making sure -we're stable, that bugs get fixed, and tests have proper coverage. - -What better way to start this effort, then, than getting Travis tests green, fix -a few things here and there, and tweak a bunch of documentation? 😁 - -#### FIX ALL THE BUGS AND TWEAK ALL THE THINGS - -* [`24b13fb`](https://github.com/npm/npm/commit/24b13fbc57d34db1d5b0a37bcca122c00deba978) - [#11158](https://github.com/npm/npm/pull/11158) - Fix custom node-gyp env var quoting on Windows. - ([@orangemocha](https://github.com/orangemocha)) -* [`e2503f2`](https://github.com/npm/npm/commit/e2503f2be40157b05a9c500ec3b5d16090ffee50) - [#11142](https://github.com/npm/npm/pull/11142) - Fix race condition with `correctMkdir` in the cache directory. - ([@Jimbly](https://github.com/Jimbly)) - -* [`5c0e4c4`](https://github.com/npm/npm/commit/5c0e4c45a29d774ab729e86044377d4e5e424252) - [#10940](https://github.com/npm/npm/pull/10940) - Ignore failures replacing `package.json`. writeFileAtomic is not atomic in - Windows, it fails if the file is being accessed concurrently. - ([@orangemocha](https://github.com/orangemocha)) -* [`2c44d8d`](https://github.com/npm/npm/commit/2c44d8dc8c267d5e054d0175ce2f4750f0986463) - [#10903](https://github.com/npm/npm/pull/10903) - Add tests for `npm adduser --scope`. - ([@ekmartin](https://github.com/ekmartin)) -* [`4cb25d0`](https://github.com/npm/npm/commit/4cb25d0fed5c7792dfd1aec891380ecc1f8a5761) - [#10903](https://github.com/npm/npm/pull/10903) - Add a message informing users when they have been successfully logged in. - ([@ekmartin](https://github.com/ekmartin)) -* [`fe3ec6d`](https://github.com/npm/npm/commit/fe3ec6d6658262054c0c19c55373c21e84ab9f17) - [#10628](https://github.com/npm/npm/pull/10628) - Tell users how to open an issue with a package that has errored. - ([@trodrigues](https://github.com/trodrigues)) - -#### DOCS DOCS DOCS - -We got a TON of lovely documentation patches, too! Thanks all for submitting! - -* [`22482a1`](https://github.com/npm/npm/commit/22482a1f22079d72c3f8ca55c2f0c153bdd024c0) - [#11188](https://github.com/npm/npm/pull/11188) - Briefly explain what's included when you publish. - ([@beaugunderson](https://github.com/beaugunderson)) -* [`fa47724`](https://github.com/npm/npm/commit/fa4772438df0c66a19309dd1c1a3ce43cbee5461) - [#11150](https://github.com/npm/npm/pull/11150) - Advise use of `--depth Infinity` instead of `--depth 9999` in `npm update`. - ([@halhenke](https://github.com/halhenke)) -* [`248ddfe`](https://github.com/npm/npm/commit/248ddfe8f7ddd3318e14bf61de41cab4a638c8a3) - [#11130](https://github.com/npm/npm/pull/11130) - Nuke "using npm programmatically" section from README. The programmatic npm - API is unsupported, and is not guaranteed not to break in non-major versions. - Removing this section so newcomers aren't encouraged to discover or use it. - ([@ljharb](https://github.com/ljharb)) -* [`ae9c452`](https://github.com/npm/npm/commit/ae9c4521222d60ab4a69c19fee5e361c62f41fae) - [#11128](https://github.com/npm/npm/pull/11128) - Add link to local paths section indocs for `package.json`. - ([@orangejulius](https://github.com/orangejulius)) -* [`663a8c6`](https://github.com/npm/npm/commit/663a8c6b4b1647f9b86c15ef32e30023edc8c060) - [#11044](https://github.com/npm/npm/pull/11044) - Update default value documentation for the color option in npm's config. - ([@scottaddie](https://github.com/scottaddie)) -* [`5c1dda0`](https://github.com/npm/npm/commit/5c1dda0d3a18b2954872dba33fbc696ff0700ffe) - [#11037](https://github.com/npm/npm/pull/11037) - Correct the name property max length constraint verbiage. - ([@scottaddie](https://github.com/scottaddie)) -* [`8288365`](https://github.com/npm/npm/commit/8288365d08e97fa3a5b0d31703c015a8be49e07f) - [#10990](https://github.com/npm/npm/pull/10990) - Update folder docs to reflect that process.installPrefix was removed as of - 0.8.x. - ([@jeffmcmahan](https://github.com/jeffmcmahan)) -* [`61d63fa`](https://github.com/npm/npm/commit/61d63fa22c4f09742180c2de460a4ffb6c32738e) - [#10790](https://github.com/npm/npm/pull/10790) - Clarify that `npm install foo` is the same as `npm install foo@latest` now. - ([@cvrebert](https://github.com/cvrebert)) -* [`442c920`](https://github.com/npm/npm/commit/442c9207f375354c91d36df8711ba2d33e1c97f3) - [#10789](https://github.com/npm/npm/pull/10789) - Link over to `npm-dist-tag(1)` in `npm install` docs when they talk about the - `pkg@` syntax. - ([@cvrebert](https://github.com/cvrebert)) -* [`dca7a5e`](https://github.com/npm/npm/commit/dca7a5e2be3bfa306a870a123707d35c732406c0) - [#10788](https://github.com/npm/npm/pull/10788) - Link to tag docs in docs for `npm publish --tag`. - ([@cvrebert](https://github.com/cvrebert)) -* [`a72904e`](https://github.com/npm/npm/commit/a72904e8d4ab1d43ae8150fbe3f6468b0cbb1efd) - [#10787](https://github.com/npm/npm/pull/10787) - Explain why the `latest` tag matters. - ([@cvrebert](https://github.com/cvrebert)) -* [`9d0697a`](https://github.com/npm/npm/commit/9d0697a534046df7efda32170014041bbc1f4e7d) - [#10785](https://github.com/npm/npm/pull/10785) - Replace some quite marks in `npm dist-tag` docs for the sake of consistency. - ([@cvrebert](https://github.com/cvrebert)) - -#### I REALLY LIKE GREEN. CAN YOU TELL? - -So Travis is all green now on `npm@2`, thanks to the removal of nock and a few -other test suite tweaks. This is a fantastic step towards making sure we can all -have confidence in our test suite! 🎉 - -* [`64995be`](https://github.com/npm/npm/commit/64995be6d874356b15c136f9867302d805dfe1e9) [`75ab216`](https://github.com/npm/npm/commit/75ab2164cf79e28ac7f7ebe714f3c5aee99c6626) [`a9f6fe9`](https://github.com/npm/npm/commit/a9f6fe9dc558f17c4a7b9eb83329ac080f7df4b7) [`649c193`](https://github.com/npm/npm/commit/649c193adadf714c2819837f9372a29d724a5ec0) [`94cb05e`](https://github.com/npm/npm/commit/94cb05eaa9e5ad6675cf15c4ac0a44fbdde05900) [`6541690`](https://github.com/npm/npm/commit/65416907008061ac5a5f66b1630a57776803b526) [`255be6f`](https://github.com/npm/npm/commit/255be6f5bca9e3d216f3a5cbdf6714c6c9fcf132) [`9e84fa4`](https://github.com/npm/npm/commit/9e84fa43c49d04cf86ca1678e2a61412f5559cb9) [`8a587b0`](https://github.com/npm/npm/commit/8a587b0c1696ae7302891fa6355fc3e8670e00d3) [`bf812a5`](https://github.com/npm/npm/commit/bf812a54e497a573493346399798aa0b9373ac24) - [#10903](https://github.com/npm/npm/pull/10903) - Get rid of nock from tests, and get Travis green. - ([@zkat](https://github.com/zkat) and [@iarna](https://github.com/iarna)) -* [`70a5310`](https://github.com/npm/npm/commit/70a5310712c6666e753ca8f3bfff4a780ec6292d) - `npm-registry-couchapp@2.6.12`: - Better 0.8 compatibility, and ability to run in travis docker stuff. This - means the test suite should run a lot faster, too! - ([@iarna](https://github.com/iarna)) -* [`28fae39`](https://github.com/npm/npm/commit/28fae399212eda5554e6c0ffd8c9591144ab7b9d) - Get rid of sudo, for Travis! - ([@zkat](https://github.com/zkat)) - -### v2.14.15 (2015-12-10): - -Did you know that Bob Ross reached the rank of master sergeant in the US Air -Force before becoming perhaps the most soothing painter of all time? - -#### TWO HAPPY LITTLE BUG FIXES - -* [`f482664`](https://github.com/npm/npm/commit/f4826645dc6b5c0f05c5f9187efb28c1a293554f) - [#10505](https://github.com/npm/npm/issues/10505) `npm ls --json --depth=0` - now respects the depth parameter, when it is zero and when it is not zero. - ([@MarkReeder](https://github.com/MarkReeder)) -* [`529fa1f`](https://github.com/npm/npm/commit/529fa1ff2c6432a773af99a1c5209c0865f7a19c) - [#9099](https://github.com/npm/npm/issues/9099) I had always thought you - could run `npm version` from subdirectories in your project, which is great, - because now you can. I guess I was just ahead of my time. - ([@ekmartin](https://github.com/ekmartin)) - -#### NOW PAINT IN SOME NICE DOCS CHANGES - -* [`1fc7f2b`](https://github.com/npm/npm/commit/1fc7f2b523ea760e08adb9b861b28e3ba450e565) - [#10546](https://github.com/npm/npm/issues/10546) Goodbye, FAQ! You were - cheeky and fun until you weren't! Don't worry: npm still loves everyone, - especially you! ([@ashleygwilliams](https://github.com/ashleygwilliams)) -* [`7fe6950`](https://github.com/npm/npm/commit/7fe6950b44d241bb4d90857a44d89d750af1e2b3) - [#10570](https://github.com/npm/npm/issues/10570) Update documentation URLs - to be HTTPS everywhere sensible. No HTTP shall be spared! - ([@rsp](https://github.com/rsp)) -* [`96ebb90`](https://github.com/npm/npm/commit/96ebb902439e4f6f37f8beffb589769146fecf24) - [#10650](https://github.com/npm/npm/issues/10650) Correctly note that there - are two lifecycle scripts run by an install phase in an example, instead of - three. ([@eymengunay](https://github.com/eymengunay)) -* [`5196893`](https://github.com/npm/npm/commit/5196893a7496f68a514b83641ff6b72f14d664dd) - [#10687](https://github.com/npm/npm/issues/10687) `npm outdated`'s output can - be a little puzzling sometimes. I've attempted to make it clearer, with some - examples, of what's going on with "wanted" and "latest" in more cases. - ([@othiym23](https://github.com/othiym23)) -* [`8e6712d`](https://github.com/npm/npm/commit/8e6712d4ee128858cab36c77723e35bddbb977ba) - [#10700](https://github.com/npm/npm/issues/10700) Hey, do you remember when - `search.npmjs.org` was a thing? I think I do? The last time I used it was in - like 2012, and it's gone now, so remove it from the docs. - ([@gagern](https://github.com/gagern)) -* [`27d2612`](https://github.com/npm/npm/commit/27d2612b3f5aa88b12c943d04e162ce4c3a350ae) - `semver@5.1.0`: Include BNF for SemVer expression grammar (which is also now - included in `npm help semver`). ([@isaacs](https://github.com/isaacs)) - -#### LAND YOUR DEPENDENCY UPGRADES IN PAIRS SO EVERYONE HAS A FRIEND - -* [`fc6c3c5`](https://github.com/npm/npm/commit/fc6c3c53a31e9e11c2616fcd378202e5b80bf286) - `request@2.67.0` ([@simov](https://github.com/simov)) -* [`07013fd`](https://github.com/npm/npm/commit/07013fd0fd55a2eb31fb9334631ee5d0dd5c41bb) - [isaacs/rimraf#89](https://github.com/isaacs/rimraf/pull/89) `rimraf@2.4.4` - ([@zerok](https://github.com/zerok)) -* [`bc149be`](https://github.com/npm/npm/commit/bc149bef871f0f00639509898cece531af3aa8b3) - [isaacs/once#7](https://github.com/isaacs/once/pull/7) `once@1.3.3` - ([@floatdrop](https://github.com/floatdrop)) -* [`ac598d3`](https://github.com/npm/npm/commit/ac598d36e1ad207bc0d8a7eadfd84b26146aec1f) - `lru-cache@3.2.0` ([@isaacs](https://github.com/isaacs)) -* [`1b915ce`](https://github.com/npm/npm/commit/1b915ce1e0787ccb6d8aa235d002d66565f2175d) - `npm-registry-client@7.0.9` ([@othiym23](https://github.com/othiym23)) -* [`df7dd78`](https://github.com/npm/npm/commit/df7dd78b8fe3cc58202996fa6c994fc55419bfa5) - `tap@2.3.1` ([@isaacs](https://github.com/isaacs)) - -### v2.14.14 (2015-12-03): - -#### FIX URL IN LICENSE - -The license incorrectly identified the registry URL as `registry.npmjs.com` and -this has been corrected to `registry.npmjs.org`. - -* [`6051a69`](https://github.com/npm/npm/commit/6051a69b1adc80f5f200077067e831643f655bd4) - [#10685](https://github.com/npm/npm/pull/10685) - Fix npm public registry URL in notices. - ([@kemitchell](https://github.com/kemitchell)) - -#### NO MORE MD5 - -We updated modules that had been using MD5 for non-security purposes. While -this is perfectly safe, if you compile Node in FIPS-compliance mode it will -explode if you try to use MD5. We've replaced MD5 with Murmur, which conveys -our intent better and is faster to boot. - -* [`30b5994`](https://github.com/npm/npm/commit/30b599496a9762482e1cef945a378e3a534fd366) - [#10629](https://github.com/npm/npm/issues/10629) - `write-file-atomic@1.1.4` - ([@othiym23](https://github.com/othiym23)) -* [`68c63ff`](https://github.com/npm/npm/commit/68c63ff1279d3d5ea7b2c970ab5562a8e0536f27) - [#10629](https://github.com/npm/npm/issues/10629) - `fs-write-stream-atomic@1.0.5` - ([@othiym23](https://github.com/othiym23)) - -#### DEPENDENCY UPDATES - -* [`e48e5a9`](https://github.com/npm/npm/commit/e48e5a90b4dcf76124b7e9ea3b295c1383e7f0c8) - [nodejs/node-gyp#831](https://github.com/nodejs/node-gyp/pull/831) - `node-gyp@3.2.1`: Improved \*BSD support. - ([@bnoordhuis](https://github.com/bnoordhuis)) - -### v2.14.13 (2015-11-25): - -#### THE npm CLI !== THE npm REGISTRY !== npm, INC. - -npm-the-CLI is licensed under the terms of the [Artistic License -2.0](https://github.com/npm/npm/blob/8d79c1a39dae908f27eaa37ff6b23515d505ef29/LICENSE), -which is a liberal open-source license that allows you to take this code and do -pretty much whatever you like with it (that is, of course, not legal language, -and if you're doing anything with npm that leaves you in doubt about your legal -rights, please seek the review of qualified counsel, which is to say, not -members of the CLI team, none of whom have passed the bar, to my knowledge). At -the same time the primary registry the CLI uses when looking up and downloading -packages is a commercial service run by npm, Inc., and it has its own [Terms of -Use](https://www.npmjs.com/policies/terms). - -Aside from clarifying the terms of use (and trying to make sure they're more -widely known), the only recent changes to npm's licenses have been making the -split between the CLI and registry clearer. You are still free to do whatever -you like with the CLI's source, and you are free to view, download, and publish -packages to and from `registry.npmjs.org`, but now the existing terms under -which you can do so are more clearly documented. Aside from the two commits -below, see also [the release notes for -`npm@2.14.11`](https://github.com/npm/npm/releases/tag/v2.14.11), which is where -the split between the CLI's code and the terms of use for the registry was -first made more clear. - -* [`1f3e936`](https://github.com/npm/npm/commit/1f3e936aab6840667948ef281e0c3621df365131) - [#10532](https://github.com/npm/npm/issues/10532) Clarify that - `registry.npmjs.org` is the default, but that you're free to use the npm CLI - with whatever registry you wish. ([@kemitchell](https://github.com/kemitchell)) -* [`6733539`](https://github.com/npm/npm/commit/6733539eeb9b32a5f2d1a6aa797987e2252fa760) - [#10532](https://github.com/npm/npm/issues/10532) Having semi-duplicate - release information in `README.md` was confusing and potentially inaccurate, - so remove it. ([@kemitchell](https://github.com/kemitchell)) - -#### EASE UP ON WINDOWS BASH USERS - -It turns out that a fair number of us use bash on Windows (through MINGW or -bundled with Git, plz – Cygwin is still a bridge too far, for both npm and -Node.js). [@jakub-g](https://github.com/jakub-g) did us all a favor and relaxed -the check for npm completion to support MINGW bash. Thanks, Jakub! - -* [`460cc09`](https://github.com/npm/npm/commit/460cc0950fd6a005c4e5c4f85af807814209b2bb) - [#10156](https://github.com/npm/npm/issues/10156) completion: enable on - Windows in git bash ([@jakub-g](https://github.com/jakub-g)) - -#### MAKE NODE-GYP A LITTLE BLUER - -* [`333e118`](https://github.com/npm/npm/commit/333e1181082842c21edc62f0ce515928424dff1f) - `node-gyp@3.2.0`: Support AIX, use `which` to find Python, updated to a newer - version of `gyp`, and more! ([@bnoordhuis](https://github.com/bnoordhuis)) - -#### WE LIKE SPDX AND ALL BUT IT'S NOT ACTUALLY A DIRECT DEP, SORRY - -* [`1f4b4bb`](https://github.com/npm/npm/commit/1f4b4bbdf8758281beecb7eaf75d05a6c4a77c15) - Removed `spdx` as a direct npm dependency, since we don't actually need it at - that level, and updated subdeps for `validate-npm-package-license` - ([@othiym23](https://github.com/othiym23)) - -#### A BOUNTEOUS THANKSGIVING CORNUCOPIA OF DOC TWEAKS - -These are great! Keep them coming! Sorry for letting them pile up so deep, -everybody. Also, a belated Thanksgiving to our Canadian friends, and a happy -Thanksgiving to all our friends in the USA. - -* [`6101f44`](https://github.com/npm/npm/commit/6101f44737645d9379c3396fae81bbc4d94e1f7e) - [#10250](https://github.com/npm/npm/issues/10250) Correct order of `org:team` - in `npm team` documentation. ([@louislarry](https://github.com/louislarry)) -* [`e8769f9`](https://github.com/npm/npm/commit/e8769f9807b91582c15ef130733e2e72b6c7bda4) - [#10371](https://github.com/npm/npm/issues/10371) Remove broken / duplicate - link to tag. ([@WickyNilliams](https://github.com/WickyNilliams)) -* [`1ae2dbe`](https://github.com/npm/npm/commit/1ae2dbe759feb80d8634569221ec6ee2c6d1d1ff) - [#10419](https://github.com/npm/npm/issues/10419) Remove references to - nonexistent `npm-rm(1)` documentation. ([@KenanY](https://github.com/KenanY)) -* [`777a271`](https://github.com/npm/npm/commit/777a271830a42d4ee62540a89f764a6e7d62de19) - [#10474](https://github.com/npm/npm/issues/10474) Clarify that install finds - dependencies in `package.json`. ([@sleekweasel](https://github.com/sleekweasel)) -* [`dcf4b5c`](https://github.com/npm/npm/commit/dcf4b5cbece1b0ef55ab7665d9acacc0b6b7cd6e) - [#10497](https://github.com/npm/npm/issues/10497) Clarify what a package is - slightly. ([@aredridel](https://github.com/aredridel)) -* [`447b3d6`](https://github.com/npm/npm/commit/447b3d669b2b6c483b8203754ac0a002c67bf015) - [#10539](https://github.com/npm/npm/issues/10539) Remove an extra, spuriously - capitalized letter. ([@alexlukin-softgrad](https://github.com/alexlukin-softgrad)) - -### v2.14.12 (2015-11-19): - -#### TEEN ORCS AT THE GATES - -This week heralds the general release of the primary npm registry's [new -support for private packages for -organizations](http://blog.npmjs.org/post/133542170540/private-packages-for-organizations). -For many potential users, it's the missing piece needed to make it easy for you -to move your organization's private work onto npm. And now it's here! The -functionality to support it has been in place in the CLI for a while now, -thanks to [@zkat](https://github.com/zkat)'s hard work. - -During our final testing before the release, our ace support team member -[@snopeks](https://github.com/snopeks) noticed that there had been some drift -between the CLI team's implementation and what npm was actually preparing to -ship. In the interests of everyone having a smooth experience with this -_extremely useful_ new feature, we quickly made a few changes to square up the -CLI and the web site experiences. - -* [`0e8b15e`](https://github.com/npm/npm/commit/0e8b15e9fbc89e31bd00e573b648846beddfb835) - [#9327](https://github.com/npm/npm/issues/9327) `npm access` no longer has - problems when run in a directory that doesn't contain a `package.json`. - ([@othiym23](https://github.com/othiym23)) -* [`c4e939c`](https://github.com/npm/npm/commit/c4e939c1d493601d25dcb88e6ffcca73076fd3fd) - [npm/npm-registry-client#126](https://github.com/npm/npm-registry-client/issues/126) - `npm-registry-client@7.0.8`: Allow the CLI to grant, revoke, and list - permissions on unscoped (public) packages on the primary registry. - ([@othiym23](https://github.com/othiym23)) - -#### A BRIEF NOTE ON NPM'S BACKWARDS COMPATIBILITY - -We don't often have much to say about the changes we make to our internal -testing and tooling, but I'm going to take this opportunity to reiterate that -npm tries hard to maintain compatibility with a wide variety of Node versions. -As this change shows, we want to ensure that npm works the same across: - -* Node.js 0.8 -* Node.js 0.10 -* Node.js 0.12 -* the latest io.js release -* Node.js 4 LTS -* Node.js 5 - -Contributors who send us pull requests often notice that it's very rare that -our tests pass across all of those versions (ironically, almost entirely due to -the packages we use for testing instead of any issues within npm itself). We're -currently beginning an effort, lasting the rest of 2015, to clean up our test -suite, and not only get it passing on all of the above versions of Node.js, but -working solidly on Windows as well. This is a compounding form of technical -debt that we're finally paying down, and our hope is that cleaning up the tests -will produce a more robust CLI that's a lot easier to write patches for. - -* [`d743620`](https://github.com/npm/npm/commit/d743620a0005213a65d25de771661b4d48a09717) - [#10233](https://github.com/npm/npm/issues/10233) Update Node.js versions - that Travis uses to test npm. ([@iarna](https://github.com/iarna)) - -#### TYPOS IN THE LICENSE, OH MY - -* [`58ac241`](https://github.com/npm/npm/commit/58ac241f556b2c202a8ee33321965e2540361ca7) - [#10478](https://github.com/npm/npm/issues/10478) Correct two typos in npm's - LICENSE. ([@jorrit](https://github.com/jorrit)) - -### v2.14.11 (2015-11-12): - -#### ASK FOR NOTHING, GET LATEST - -When you run `npm install foo`, you probably expect that you'll get the -`latest` version of `foo`, whatever that is. And good news! That's what 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 -(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 -range, it would also have to be `<=` the value of the `latest` dist-tag. -Further, it would exclude prerelease versions from the list of versions -considered for a match. - -This worked as expected most of the time, unless your `latest` was a prerelease -version, in which case that version wouldn't be used, to everyone's surprise. - -* [`6f0a646`](https://github.com/npm/npm/commit/6f0a646cd865b24fe3ff25365bf5421780e63e01) - [#10189](https://github.com/npm/npm/issues/10189) `npm-package-arg@4.1.0`: - Change the default version from `*` to `latest`. - ([@zkat](https://github.com/zkat)) - -#### LICENSE CLARIFICATION - -* [`54a9046`](https://github.com/npm/npm/commit/54a90461f068ea89baa5d70248cdf1581897936d) - [#10326](https://github.com/npm/npm/issues/10326) Clarify what-all is covered - by npm's license and point to the registry's terms of use. - ([@kemitchell](https://github.com/kemitchell)) - -#### CLOSER TO GREEN TRAVIS - -* [`28efd3d`](https://github.com/npm/npm/commit/28efd3d7dfb2fa3755076ae706ea4d38c6ee6900) - [#10232](https://github.com/npm/npm/issues/10232) `nock@1.9.0`: Downgrade - nock to a version that doesn't depend on streams2 in core so that more of our - tests can pass in 0.8. ([@iarna](https://github.com/iarna)) - -#### A BUG FIX - -* [`eacac8f`](https://github.com/npm/npm/commit/eacac8f05014d15217c3d8264d0b00a72eafe2d2) - [#9965](https://github.com/npm/npm/issues/9965) Fix a corrupt `package.json` - file introduced by a merge conflict in - [`022691a`](https://github.com/npm/npm/commit/022691a). - ([@waynebloss](https://github.com/waynebloss)) - -#### A DEPENDENCY UPGRADE - -* [`ea7d8e0`](https://github.com/npm/npm/commit/ea7d8e00a67a3d5877ed72c9728909c848468a9b) - [npm/nopt#51](https://github.com/npm/nopt/pull/51) `nopt@3.0.6`: Allow - types checked to be validated by passed-in name in addition to the JS name of - the type / class. ([@wbecker](https://github.com/wbecker)) - -### v2.14.10 (2015-11-05): - -There's nothing in here that that isn't in the `npm@3.4.0` release notes, but -all of the commit shasums have been adjusted to be correct. Enjoy! - -#### BUG FIXES VIA DEPENDENCY UPDATES - -* [`204c558`](https://github.com/npm/npm/commit/204c558c06637a753c0b41d0cf19f564a1ac3715) - [#8640](https://github.com/npm/npm/issues/8640) - [npm/normalize-package-data#69](https://github.com/npm/normalize-package-data/pull/69) - `normalize-package-data@2.3.5`: Fix a bug where if you didn't specify the - name of a scoped module's binary, it would install it such that it was - impossible to call it. ([@iarna](https://github.com/iarna)) -* [`bbdf4ee`](https://github.com/npm/npm/commit/bbdf4ee0a3cd12be6a2ace255b67d573a72f1f8f) - [npm/fstream-npm#14](https://github.com/npm/fstream-npm/pull/14) - `fstream-npm@1.0.7`: Only filter `config.gypi` when it's in the build - directory. ([@mscdex](https://github.com/mscdex)) -* [`d82ff81`](https://github.com/npm/npm/commit/d82ff81403e906931fac701775723626dcb443b3) - [npm/fstream-npm#15](https://github.com/npm/fstream-npm/pull/15) - `fstream-npm@1.0.6`: Stop including directories that happened to have names - matching whitelisted npm files in npm module tarballs. The most common cause - was that if you had a README directory then everything in it would be - included if wanted it or not. ([@taion](https://github.com/taion)) - -#### DOCUMENTATION FIXES - -* [`16361d1`](https://github.com/npm/npm/commit/16361d122f2ff6d1a4729c66153b7c24c698fd19) - [#10036](https://github.com/npm/npm/pull/10036) Fix typo / over-abbreviation. - ([@ifdattic](https://github.com/ifdattic)) -* [`d1343dd`](https://github.com/npm/npm/commit/d1343dda42f113dc322f95687f5a8c7d71a97c35) - [#10176](https://github.com/npm/npm/pull/10176) Fix broken link, scopes => - scope. ([@ashleygwilliams](https://github.com/ashleygwilliams)) -* [`110663d`](https://github.com/npm/npm/commit/110663d000a3908a4853393d9abae481700cf4dc) - [#9460](https://github.com/npm/npm/issue/9460) Specifying the default command - run by "npm start" and the fact that you can pass it arguments. - ([@JuanCaicedo](https://github.com/JuanCaicedo)) - -#### DEPENDENCY UPDATES FOR THEIR OWN SAKE - -* [`7476d2d`](https://github.com/npm/npm/commit/7476d2d31552a41671c425aa7fcc2844e0381008) - [npm/npmlog#19](https://github.com/npm/npmlog/pull/19) - `npmlog@2.0.0`: Make it possible to emit log messages with `error` as the - prefix. - ([@bengl](https://github.com/bengl)) -* [`6ca7888`](https://github.com/npm/npm/commit/6ca7888862cfe8bf802dc7c66632c102acd94cf5) - `read-package-json@2.0.2`: Minor cleanups. - ([@KenanY](https://github.com/KenanY)) - -### v2.14.9 (2015-10-29): - -There's still life in `npm@2`, but for now, enjoy these dependency upgrades! -Also, [@othiym23](https://github.com/othiym23) says hi! _waves_ -[@zkat](https://github.com/zkat) has her hands full, and -[@iarna](https://github.com/iarna)'s handling `npm@3`, so I'm dealing with -`npm@2` and the totally nonexistent weird bridge `npm@1.4` LTS release that may -or may not be happening this week. - -#### CAN'T STOP WON'T STOP UPDATING THOSE DEPENDENCIES - -* [`f52f0cb`](https://github.com/npm/npm/commit/f52f0cb51526314197e9d67619feebbd82a397b7) - [#10150](https://github.com/npm/npm/issues/10150) `chmodr@1.0.2`: Use - `fs.lstat()` to check if an entry is a directory, making `chmodr()` work - properly with NFS mounts on Windows. ([@sheerun](https://github.com/sheerun)) -* [`f7011d7`](https://github.com/npm/npm/commit/f7011d7b3b1d9148a6cd8f7b8359d6fe3269a912) - [#10150](https://github.com/npm/npm/issues/10150) `which@1.2.0`: Additional - command-line parameters, which is nice but not used by npm. - ([@isaacs](https://github.com/isaacs)) -* [`ebcc0d8`](https://github.com/npm/npm/commit/ebcc0d8629388da0b849bbbad590382cd7268f51) - [#10150](https://github.com/npm/npm/issues/10150) `minimatch@3.0.0`: Don't - package browser version. ([@isaacs](https://github.com/isaacs)) -* [`8c98dce`](https://github.com/npm/npm/commit/8c98dce5ffe242bafbe92b849e73e8de1803e256) - [#10150](https://github.com/npm/npm/issues/10150) `fstream-ignore@1.0.3`: - Upgrade to use `minimatch@3` (for deduping purposes). - ([@othiym23](https://github.com/othiym23)) -* [`db9ef33`](https://github.com/npm/npm/commit/db9ef337c253ecf21c921055bf8742e10d1cb3bb) - [#10150](https://github.com/npm/npm/issues/10150) `request@2.65.0`: - Dependency upgrades and a few bug fixes, mostly related to cookie handling. - ([@simov](https://github.com/simov)) - -#### DEVDEPENDENCIES TOO, I GUESS, IT'S COOL - -* [`dfbf621`](https://github.com/npm/npm/commit/dfbf621afa09c46991249b4f9a995d1823ea7ede) - [#10150](https://github.com/npm/npm/issues/10150) `tap@2.2.0`: Better - handling of test order handling (including some test fixes for npm). - ([@isaacs](https://github.com/isaacs)) -* [`cf5ad5a`](https://github.com/npm/npm/commit/cf5ad5a8c88bfd72e30ef8a8d1d3c5508e0b3c23) - [#10150](https://github.com/npm/npm/issues/10150) `nock@2.16.0`: More - expectations, documentation, and bug fixes. - ([@pgte](https://github.com/pgte)) - -### v2.14.8 (2015-10-08): - -#### SLOWLY RECOVERING FROM FEELINGS - -OS&F is definitely my favorite convention I've gone to. Y'all should check it -out next year! Rebecca and Kat are back, although Forrest is out at -[&yet conf](http://andyetconf.com/). - -This week sees another tiny LTS release with non-code-related patches -- just -CI/release things. - -Meanwhile, have you heard? `npm@3` is much faster now! Go upgrade with `npm -install -g npm@latest` and give it a whirl if you haven't already! - -#### IF YOU CHANGE CASING ON A FILE, YOU ARE NOT MY FRIEND - -Seriously. I love me some case-sensitive filesystems, but a lot of us have to -deal with `git` and its funky support for case normalizing systems. Have mercy -and just don't bother if all you're changing is casing, please? Otherwise, I -have to do this little dance to prevent horrible conflicts. - -* [`c3a7b61`](https://github.com/npm/npm/commit/c3a7b619786650a45653c8b55b8741fc7bb5cfda) - [#9804](https://github.com/npm/npm/pulls/9804) Remove the readme file with - weird casing. - ([@zkat](https://github.com/zkat)) -* [`f3f619e`](https://github.com/npm/npm/commit/f3f619e06e4be1378dbf286f897b50e9c69c9557) - [#9804](https://github.com/npm/npm/pulls/9804) Add the readme file back in, - with desired casing. - ([@zkat](https://github.com/zkat)) - -#### IDK. OUR CI DOESN'T EVEN FULLY WORK YET BUT SURE - -Either way, it's nice to make sure we're running stuff on the latest Node. `4.2` -is getting released very soon, though (this week?), and that'll be the first -official LTS release! - -* [`bd0b9ab`](https://github.com/npm/npm/commit/bd0b9ab6e60a31448794bbd88f94672572c3cb55) - [#9827](https://github.com/npm/npm/pulls/9827) Add node `4.0` and `4.1` to - TravisCI - ([@JaKXz](https://github.com/JaKXz)) - -### v2.14.7 (2015-10-01): - -#### MORE RELEASE STAGGERING?! - -Hi all, and greetings from [Open Source & Feelings](http://osfeels.com)! - -So we're switching gears a little with how we handle our weekly releases: from -now on, we're going to stagger release weeks between dependency bumps and -regular patches. So, this week, aside from a doc change, we'll be doing only -version bumps. Expect actual patches next week! - -#### TOTALLY FOLLOWING THE RULES ALREADY - -So I snuck this in, because it's our own [@snopeks](https://github.com/snopeks)' -first contribution to the main `npm` repo. She's been helping with building -support documents for Orgs, and contributed her general intro guide to the new -feature so you can read it with `npm help orgs` right in your terminal! - -* [`8324ea0`](https://github.com/npm/npm/commit/8324ea023ace4e08b6b8959ad199e2457af9f9cf) - [#9761](https://github.com/npm/npm/pull/9761) Added general user guide for - Orgs. - ([@snopeks](https://github.com/snopeks)) - -#### JUST. ONE. MORE. - -* [`9a502ca`](https://github.com/npm/npm/commit/9a502ca96e2d43ec75a8f684c9ca33af7e910f0a) - Use unique package name in tests to work around weird test-state-based - failures. - ([@iarna](https://github.com/iarna)) - -#### OKAY ACTUALLY THE THING I WAS SUPPOSED TO DO - -Anyway -- here's your version bump! :) - -* [`4aeb94c`](https://github.com/npm/npm/commit/4aeb94c9f0df3f41802cf2e0397a998f3b527c25) - `request@2.64.0`: No longer defaulting to `application/json` for `json` - requests. Also some minor doc and packaging patches. - ([@simov](https://github.com/simov)) - `minimatch@3.0.0`: No longer packaging browser modules. - ([@isaacs](https://github.com/isaacs)) -* [`a18b213`](https://github.com/npm/npm/commit/a18b213e6945a8f5faf882927829ac95f844e2aa) - `glob@5.0.15`: Upgraded `minimatch` dependency. - ([@isaacs](https://github.com/isaacs)) -* [`9eb64d4`](https://github.com/npm/npm/commit/9eb64e44509519ca9d788502edb2eba4cea5c86b) - `nock@2.13.0` - ([@pgte](https://github.com/pgte)) - -### v2.14.6 (2015-09-24): - -#### `¯\_(ツ)_/¯` - -Since `2.x` is LTS now, you can expect a slowdown in overall release sizes. On -top of that, we had our all-company-npm-internal-conf thing on Monday and -Tuesday so there wasn't really time to do much at all. - -Still, we're bringing you a couple of tiny little changes this week! - -* [`7b7da13`](https://github.com/npm/npm/commit/7b7da13c6cdf5eae53c20d5c69afc4c16e6f715d) - [#9471](https://github.com/npm/npm/pull/9471) When the port for a tarball is - different than the registry it's in, but the hostname is the same, the - protocol is now allowed to change, too. - ([@fastest963](https://github.com/fastest963)) -* [`6643ada`](https://github.com/npm/npm/commit/6643adaf9f37f08893e3ad28b797c55a36b2a152) - `request@2.63.0`: Use `application/json` as the default content type when - making `json` requests. - ([@simov](https://github.com/simov)) - -### v2.14.5 (2015-09-17): - -#### NPM IS DEAD. LONG LIVE NPM - -That's right folks. As of this week, `npm@next` is `npm@3`, which means it'll be -`npm@latest` next week! There's some really great shiny new things over there, -and you should really take a look. - -Many kudos to [@iarna](https://github.com/iarna) for her hard work on `npm@3`! - -Don't worry, we'll keep `2.x` around for a while (as LTS), but you won't see -many, if any, new features on this end. From now on, we're going to use -`latest-2` and `next-2` as the dist tags for the `npm@2` branch. - -#### OKAY THAT'S FINE CAN I DEPRECATE THINGS NOW? - -Yes! Specially if you're using scoped packages. Apparently, deprecating them -never worked, but that should be better now. :) - -* [`eca7b24`](https://github.com/npm/npm/commit/eca7b24de9a0090da02a93a69726f5e70ab80543) - [#9558](https://github.com/npm/npm/issues/9558) Add tests for npm deprecate. - ([@zkat](https://github.com/zkat)) -* [`648fe16`](https://github.com/npm/npm/commit/648fe16157ef0db22395ae056d1dd4b4c1605bf4) - [#9558](https://github.com/npm/npm/issues/9558) `npm-registry-client@7.0.7`: - Fixes `npm deprecate` so you can actually deprecate scoped modules now (it - never worked). - ([@zkat](https://github.com/zkat)) - -#### WTF IS `node-waf` - -idk. Some old thing. We don't talk about it anymore. - -* [`cf1b39f`](https://github.com/npm/npm/commit/cf1b39fc95a9ffad7fba4c2fee705c53b19d1d16) - [#9584](https://github.com/npm/npm/issues/9584) Fix ancient references to - `node-waf` in the docs to refer to the `node-gyp` version of things. - ([@KenanY](https://github.com/KenanY)) - -#### THE `graceful-fs` AND `node-gyp` SAGA CONTINUES - -Last week had some sweeping `graceful-fs` upgrades, and this takes care of one -of the stragglers, as well as bumping `node-gyp`. `node@4` users might be -excited about this, or even `node@<4` users who previously had to cherry-pick a -bunch of patches to get the latest npm working. - -* [`e07354f`](https://github.com/npm/npm/commit/e07354f3ff3a6be568fe950f1f825897f72912d8) - `sha@2.0.1`: Upgraded graceful-fs! - ([@ForbesLindesay](https://github.com/ForbesLindesay)) -* [`83cb6ee`](https://github.com/npm/npm/commit/83cb6ee4045b85e565e9678ca1878877e1dc75bd) - `node-gyp@3.0.3` - ([@rvagg](https://github.com/rvagg)) - -#### DEPS! DEPS! MORE DEPS! OK STOP DEPS - -* [`0d60888`](https://github.com/npm/npm/commit/0d608889615a1cb63f5f852337e955053f201aeb) - `normalize-package-data@2.3.4`: Use an external package to check for built-in - node modules. - ([@sindresorhus](https://github.com/sindresorhus)) -* [`79b4dac`](https://github.com/npm/npm/commit/79b4dac11f1c2d8ad5489fc3104734e1c10d4793) - `retry@0.8.0` - ([@tim-kos](https://github.com/tim-kos)) -* [`c164941`](https://github.com/npm/npm/commit/c164941d3c792904d5b126a4fd36eefbe0699f52) - `request@2.62.0`: node 4 added to build targets. Option initialization issues - fixed. - ([@simov](https://github.com/simov)) -* [`0fd878a`](https://github.com/npm/npm/commit/0fd878a44d5ae303325808d1f00df4dce7549d50) - `lru-cache@2.7.0`: Cache serialization support and fixes a cache length bug. - ([@isaacs](https://github.com/isaacs)) -* [`6a7a114`](https://github.com/npm/npm/commit/6a7a114a45b4699995d6e09164fdfd0fa1274591) - `nock@2.12.0` - ([@pgte](https://github.com/pgte)) -* [`6b25e6d`](https://github.com/npm/npm/commit/6b25e6d2235c11f4444104db4545cb42a0267666) - `semver@5.0.3`: Removed uglify-js dead code. - ([@isaacs](https://github.com/isaacs)) - -### v2.14.4 (2015-09-10): - -#### THE GREAT NODEv4 SAGA - -So [Node 4 is out now](https://nodejs.org/en/blog/release/v4.0.0/) and that's -going to involve a number of things over in npm land. Most importantly, it's the -last major release that will include the `2.x` branch of npm. That also means -that `2.x` is going to go into LTS mode in the coming weeks -- once `npm@3` -becomes our official `latest` release. You can most likely expect Node 5 to -include `npm@3` by default, whenever that happens. We'll go into more detail -about LTS at that point, as well, so keep your eyes peeled for announcements! - -#### NODE IS DEAD. LONG LIVE NODE! - -Node 4 being released means that a few things that used to be floating patches -are finally making it right into npm proper. This week, we've got two such -updates, both to dependencies: - -* [`505d9e4`](https://github.com/npm/npm/commit/505d9e40c13b8b0bb3f70ee9886f7b73ba569407) - `node-gyp@3.0.1`: Support for node nightlies and compilation for both node and - io.js without extra patching - ([@rvagg](https://github.com/rvagg)) - -[@thefourtheye](https://github.com/thefourtheye) was kind enough to submit a -*bunch* of PRs to npm's dependencies updating them to `graceful-fs@4.1.2`, which -mainly makes it so we're no longer monkey-patching `fs`. The following are all -updates related to this: - -* [`10cb189`](https://github.com/npm/npm/commit/10cb189c773fef804214018d57509cc7a943184b) - `write-file-atomic@1.1.3` - ([@thefourtheye](https://github.com/thefourtheye)) -* [`edfb80b`](https://github.com/npm/npm/commit/edfb80b39f8cfce9a993f139eb98248001198e09) - `tar@2.2.1` - ([@thefourtheye](https://github.com/thefourtheye)) -* [`aa6e1ee`](https://github.com/npm/npm/commit/aa6e1eede7d71fa69d7256afdfbaa3406bc39a5b) - `read-package-json@2.0.1` - ([@thefourtheye](https://github.com/thefourtheye)) -* [`18971a3`](https://github.com/npm/npm/commit/18971a361635ed3958ecd39b63930ae1e56f8612) - `read-installed@4.0.3` - ([@thefourtheye](https://github.com/thefourtheye)) -* [`a4cba71`](https://github.com/npm/npm/commit/a4cba71bd2532236fda7385bf55e8790cafd4f0a) - `fstream@1.0.8` - ([@thefourtheye](https://github.com/thefourtheye)) -* [`70a38e2`](https://github.com/npm/npm/commit/70a38e29418951ac61ab6cf269d188074fe8ac3a) - `fs-write-stream-atomic@1.0.4` - ([@thefourtheye](https://github.com/thefourtheye)) -* [`9cbd20f`](https://github.com/npm/npm/commit/9cbd20f691e37960e4ba12d401abd1069657cb47) - `fs-vacuum@1.2.7` - ([@thefourtheye](https://github.com/thefourtheye)) - -#### OTHER PATCHES - -* [`c4dd521`](https://github.com/npm/npm/commit/c4dd5213b2f3283ea0392845e5f78cac4573529e) - [#9506](https://github.com/npm/npm/issues/9506) Make `npm link` work on - Windows when using node pre-release/RC releases. - ([@jon-hall](https://github.com/jon-hall)) -* [`b6bc29c`](https://github.com/npm/npm/commit/b6bc29c1401b3d6b570c09cbef1866bdb0436b59) - [#9544](https://github.com/npm/npm/issues/9549) `process.binding` is being - deprecated, so our only direct usage has been removed. - ([@ChALkeR](https://github.com/ChALkeR)) - -#### MORE DEPENDENCIES! - -* [`d940594`](https://github.com/npm/npm/commit/d940594e479a7f012b6dd6952e8ef985ba2a6216) - `tap@1.4.1` - ([@isaacs](https://github.com/isaacs)) -* [`ee38486`](https://github.com/npm/npm/commit/ee3848669331fd98879a3175789d963543f67ce3) - `which@1.1.2`: Added tests for Windows-related dead code that was previously - helping a silent failure happen. Travis stuff, too. - ([@isaacs](https://github.com/isaacs)) - -#### DOC UPDATES - -* [`475daf5`](https://github.com/npm/npm/commit/475daf54ad07777938d1d7ee1a3e576961e84510) - [#9492](https://github.com/npm/npm/issues/9492) Clarify how `.npmignore` and - `.gitignore` are found and used by npm. - ([@addaleax](https://github.com/addaleax)) -* [`b2c391d`](https://github.com/npm/npm/commit/b2c391d7833249626a6d7650363a83bcc778717a) - `nopt@3.0.4`: Minor clarifications to docs about how array and errors work. - ([@zkat](https://github.com/zkat)) - -### v2.14.3 (2015-09-03): - -#### TEAMS AND ORGS STILL BETA. CLI CODE STILL SOLID. - -Our closed beta for Teens and Orcs is happening! The web team is hard at work -making sure everything looks pretty and usable and such. Once we fix things -stemming from that beta, you can expect the feature to be available publicly. -Some time after that, it'll even be available for free for FOSS orgs. It'll Be -Done When It's Done™. - -#### OH GOOD, I CAN ACTUALLY UPSTREAM NOW - -Looks like last week's release foiled our own test suite when trying to upstream -it to Node! Just a friendly reminder that no, `.npmrc` is no longer included -then you pack/release a package! [@othiym23](https://github.com/othiym23) and -[@isaacs](https://github.com/isaacs) managed to suss the really strange test -failures resulting from that, and we've patched it in this release. - -* [`01a3428`](https://github.com/npm/npm/commit/01a3428534b754dca89a56fd1e49f55cb22f6f25) - [#9476](https://github.com/npm/npm/issues/9476) test: Recreate missing - `.npmrc` files when missing so downstream packagers can run tests on packed - npm. - ([@othiym23](https://github.com/othiym23)) - -#### TALKING ABOUT THE CHANGELOG IN THE CHANGELOG IS LIKE, POMO OR SOMETHING - -* [`c1e7a83`](https://github.com/npm/npm/commit/c1e7a83c0ae7aadf01aecc57cf8a0ae2009d4da8) - [#9431](https://github.com/npm/npm/issues/9431) CHANGELOG: clarify - windows-related nature of patch - ([@saper](https://github.com/saper)) - -#### devDependencies UPDATED - -No actual dep updates this week, but we're bumping a couple of devDeps: - -* [`8454835`](https://github.com/npm/npm/commit/84548351bfd63e3e305d195abbcad24c6b7c3e8e) - `tap@1.4.0`: Add `t.contains()` as alias to `t.match()` - ([@isaacs](https://github.com/isaacs)) -* [`13d2216`](https://github.com/npm/npm/commit/13d22161bcdeb6e1ed095d5ba2f77e6abfffa5eb) - `deep-equal@1.0.1`: Make `null == undefined` in non-strict mode - ([@isaacs](https://github.com/isaacs)) - -### v2.14.2 (2015-08-27): - -#### GETTING THAT PESKY `preferGlobal` WARNING RIGHT - -So apparently the `preferGlobal` option hasn't quite been warning correctly for -some time. But now it should be all better! tl;dr: if you try and install a -dependency with `preferGlobal: true`, and it's _not already_ in your -`package.json`, you'll get a warning that the author would really rather you -install it with `--global`. This should prevent Windows PowerShell from thinking -npm has failed just because of a benign warning. - -* [`bbb25f3`](https://github.com/npm/npm/commit/bbb25f30d582f8979168c79233a9f8f840974f90) - [#8841](https://github.com/npm/npm/issues/8841) - [#9409](https://github.com/npm/npm/issues/9409) The `preferGlobal` - warning shouldn't happen if the dependency being installed is listed in - `devDependencies`. ([@saper](https://github.com/saper)) -* [`222fcec`](https://github.com/npm/npm/commit/222fcec85ccd30d35899e5037079fb14625af4e2) - [#9409](https://github.com/npm/npm/issues/9409) `preferGlobal` now prints a - warning when there are no dependencies for the current package. - ([@zkat](https://github.com/zkat)) -* [`5cfed6d`](https://github.com/npm/npm/commit/5cfed6d7a1a5f2731688cfc8293b5e43a6355393) - [#9409](https://github.com/npm/npm/issues/9409) Verify that - `preferGlobal` is warning as expected (when a `preferGlobal` dependency is - installed, but isn't listed in either `dependencies` or `devDependencies`). - ([@zkat](https://github.com/zkat)) - -#### BUMP +1 - -* [`eeafce2`](https://github.com/npm/npm/commit/eeafce2d06883c0f51bf403415b6bc5f2647eba3) - `validate-npm-package-license@3.0.1`: Include additional metadata in parsed license object, - useful for license checkers. ([@kemitchell](https://github.com/kemitchell)) -* [`1502a28`](https://github.com/npm/npm/commit/1502a285f84aa548806b3eafc8889e6288e810f3) - `normalise-package-data@2.3.2`: Updated to use `validate-npm-package-license@3.0.1`. - ([@othiym23](https://github.com/othiym23)) -* [`cbde823`](https://github.com/npm/npm/commit/cbde8233436bf0ea62a4740869b4990322c20659) - `init-package-json@1.9.1`: Add a `silent` option to suppress output on writing the - generated `package.json`. Also, updated to use `validate-npm-package-license@3.0.1`. - ([@zkat](https://github.com/zkat)) -* [`08fda46`](https://github.com/npm/npm/commit/08fda465452b4d77f1ced8050ee3a35a77fc30a5) - `tar@2.2.0`: Minor improvements. ([@othiym23](https://github.com/othiym23)) -* [`dc2f20b`](https://github.com/npm/npm/commit/dc2f20b53fff77203139c863b48da0e959df2ac9) - `rimraf@2.4.3`: `EPERM` now triggers a delay / retry loop (since Windows throws - this when things still hold a handle). ([@isaacs](https://github.com/isaacs)) -* [`e8acb27`](https://github.com/npm/npm/commit/e8acb273aa67ee0394d0431650e1b2a7d09c8554) - `read@1.0.7`: Fix licensing ambiguity. ([@isaacs](https://github.com/isaacs)) - -#### OTHER STUFF THAT'S RELEVANT - -* [`73a1ee0`](https://github.com/npm/npm/commit/73a1ee0be90fa1928521b63f28bef83b8ffab61d) - [#9386](https://github.com/npm/npm/issues/9386) Include additional unignorable files in - documentation. - ([@mjhasbach](https://github.com/mjhasbach)) -* [`0313e40`](https://github.com/npm/npm/commit/0313e40ee0f757fce8861be590ad668c23d7be53) - [#9396](https://github.com/npm/npm/issues/9396) Improve the `EISDIR` error - message returned by npm's error-handling code to give users a better hint of - what's most likely going on. Usually, error reports with this error code are - about people trying to install things without a `package.json`. - ([@KenanY](https://github.com/KenanY)) -* [`2677457`](https://github.com/npm/npm/commit/26774579c739c5951351e58263cf4d6ea3d66ec8) - [#9360](https://github.com/npm/npm/issues/9360) Make it easier to run - only _some_ of npm tests with lifecycle scripts via `npm tap test/tap/testname.js`. - ([@iarna](https://github.com/iarna)) - -### v2.14.1 (2015-08-20): - -#### SECURITY FIX - -There are patches for two information leaks of moderate severity in `npm@2.14.1`: - -1. In some cases, npm was leaking sensitive credential information into the - child environment when running package and lifecycle scripts. This could - lead to packages being published with files (most notably `config.gypi`, a - file created by `node-gyp` that is a cache of environmental information - regenerated on every run) containing the bearer tokens used to authenticate - users to the registry. Users with affected packages have been notified (and - the affected tokens invalidated), and now npm has been modified to not - upload files that could contain this information, as well as scrubbing the - sensitive information out of the environment passed to child scripts. -2. Per-package `.npmrc` files are used by some maintainers as a way to scope - those packages to a specific registry and its credentials. This is a - reasonable use case, but by default `.npmrc` was packed into packages, - leaking those credentials. npm will no longer include `.npmrc` when packing - tarballs. - -If you maintain packages and believe you may be affected by either -of the above scenarios (especially if you've received a security -notification from npm recently), please upgrade to `npm@2.14.1` as -soon as possible. If you believe you may have inadvertently leaked -your credentials, upgrade to `npm@2.14.1` on the affected machine, -and run `npm logout` and then `npm login`. Your access tokens will be -invalidated, which will eliminate any risk posed by tokens inadvertently -included in published packages. We apologize for the inconvenience this -causes, as well as the oversight that led to the existence of this issue -in the first place. - -Huge thanks to [@ChALkeR](https://github.com/ChALkeR) for bringing these -issues to our attention, and for helping us identify affected packages -and maintainers. Thanks also to the Node.js security working group for -their coördination with the team in our response to this issue. We -appreciate everybody's patience and understanding tremendously. - -* [`b9474a8`](https://github.com/npm/npm/commit/b9474a843ca55b7c5fac6da33989e8eb39aff8b1) - `fstream-npm@1.0.5`: Stop publishing build cruft (`config.gypi`) and per-project - `.npmrc` files to keep local configuration out of published packages. - ([@othiym23](https://github.com/othiym23)) -* [`13c286d`](https://github.com/npm/npm/commit/13c286dbdc3fa8fec4cb79fc4d1ee505c8a41b2e) - [#9348](https://github.com/npm/npm/issues/9348) Filter "private" - (underscore-prefixed, even when scoped to a registry) configuration values - out of child environments. ([@othiym23](https://github.com/othiym23)) - -#### BETTER WINDOWS INTEGRATION, ONE STEP AT A TIME - -* [`e40e71f`](https://github.com/npm/npm/commit/e40e71f2f838a8a42392f44e3eeec04e323ab743) - [#6412](https://github.com/npm/npm/issues/6412) Improve the search strategy - used by the npm shims for Windows to prioritize your own local npm installs. - npm has really needed this tweak for a long time, so hammer on it and let us - know if you run into issues, but with luck it will Just Work. - ([@joaocgreis](https://github.com/joaocgreis)) -* [`204ebbb`](https://github.com/npm/npm/commit/204ebbb3e0cab696a429a878ceeb4a7e78ec2b94) - [#8751](https://github.com/npm/npm/issues/8751) - [#7333](https://github.com/npm/npm/issues/7333) Keep [autorun - scripts](https://technet.microsoft.com/en-us/sysinternals/bb963902.aspx) from - interfering with npm package and lifecycle script execution on Windows by - adding `/d` and `/s` when invoking `cmd.exe`. - ([@saper](https://github.com/saper)) - -#### IT SEEMED LIKE AN IDEA AT THE TIME - -* [`286f3d9`](https://github.com/npm/npm/commit/286f3d97103812f0fd84b70352addbe899e258f9) - [#9201](https://github.com/npm/npm/pull/9201) For a while npm was building - HTML partials for use on [`docs.npmjs.com`](https://docs.npmjs.com), but we - weren't actually using them. Stop building them, which makes running the full - test suite and installation process around a third faster. - ([@isaacs](https://github.com/isaacs)) - -#### A SINGLE LONELY DEPENDENCY UPGRADE - -* [`b343b95`](https://github.com/npm/npm/commit/b343b956ef777e321e4251ddc96ec6d80827d9e2) - `request@2.61.0`: Bug fixes and keep-alive tweaks. - ([@simov](https://github.com/simov)) - -### v2.14.0 (2015-08-13): - -#### IT'S HERE! KINDA! - -This release adds support for teens and orcs (err, teams and organizations) to -the npm CLI! Note that the web site and registry-side features of this are -still not ready for public consumption. - -A beta should be starting in the next couple of weeks, and the features -themselves will become public once all that's done. Keep an eye out for more -news! - -All of these changes were done under [`#9011`](https://github.com/npm/npm/pull/9011): - -* [`6424170`](https://github.com/npm/npm/commit/6424170fc17c666a6efc090370ec691e0cab1792) - Added new `npm team` command and subcommands. - ([@zkat](https://github.com/zkat)) -* [`52220d1`](https://github.com/npm/npm/commit/52220d146d474ec29b683bd99c06f75cbd46a9f4) - Added documentation for new `npm team` command. - ([@zkat](https://github.com/zkat)) -* [`4e66830`](https://github.com/npm/npm/commit/4e668304850d02df8eb27a779fda76fe5de645e7) - Updated `npm access` to support teams and organizations. - ([@zkat](https://github.com/zkat)) -* [`ea3eb87`](https://github.com/npm/npm/commit/ea3eb8733d9fa09ce34106b1b19fb1a8f95844a5) - Gussied up docs for `npm access` with new commands. - ([@zkat](https://github.com/zkat)) -* [`6e0b431`](https://github.com/npm/npm/commit/6e0b431c1de5e329c86e57d097aa88ebfedea864) - Fix up `npm whoami` to make the underlying API usable elsewhere. - ([@zkat](https://github.com/zkat)) -* [`f29c931`](https://github.com/npm/npm/commit/f29c931012ce5ccd69c29d83548f27e443bf7e62) - `npm-registry-client@7.0.1`: Upgrade `npm-registry-client` API to support - `team` and `access` calls against the registry. - ([@zkat](https://github.com/zkat)) - -#### A FEW EXTRA VERSION BUMPS - -* [`c977e12`](https://github.com/npm/npm/commit/c977e12cbfa50c2f52fc807f5cc19ba1cc1b39bf) - `init-package-json@1.8.0`: Checks for some `npm@3` metadata. - ([@iarna](https://github.com/iarna)) -* [`5c8c9e5`](https://github.com/npm/npm/commit/5c8c9e5ae177ba7d0d298cfa42f3fc7f0271e4ec) - `columnify@1.5.2`: Updated some dependencies. - ([@timoxley](https://github.com/timoxley)) -* [`5d56742`](https://github.com/npm/npm/commit/5d567425768b75aeab402c817a53d8b2bc60d8de) - `chownr@1.0.1`: Tests, docs, and minor style nits. - ([@isaacs](https://github.com/isaacs)) - -#### ALSO A DOC FIX - -* [`846fcc7`](https://github.com/npm/npm/commit/846fcc79b86984b109a97366b0422f995a45f8bf) - [`#9200`](https://github.com/npm/npm/pull/9200) Remove single quotes - around semver range, thus making it valid semver. - ([@KenanY](https://github.com/KenanY)) - -### v2.13.5 (2015-08-07): - -This is another quiet week for the `npm@2` release. -[@zkat](https://github.com/zkat) has been working hard on polishing the CLI -bits of the registry's new feature to support direct management of teams and -organizations, and [@iarna](https://github.com/iarna) continues to work through -the list of issues blocking the general release of `npm@3`, which is looking -more and more solid all the time. - -[@othiym23](https://github.com/othiym23) and [@zkat](https://github.com/zkat) -have also been at this week's Node.js / io.js [collaborator -summit](https://github.com/nodejs/summit/tree/master), both as facilitators and -participants. This is a valuable opportunity to get some face time with other -contributors and to work through a bunch of important discussions, but it does -leave us feeling kind of sleepy. Running meetings is hard! - -What does that leave for this release? A few of the more tricky bug fixes that -have been sitting around for a little while now, and a couple dependency -upgrades. Nothing too fancy, but most of these were contributed by developers -like _you_, which we think is swell. Thanks! - -#### BUG FIXES - -* [`d7271b8`](https://github.com/npm/npm/commit/d7271b8226712479cdd339bf85faf7e394923e0d) - [#4530](https://github.com/npm/npm/issues/4530) The bash completion script - for npm no longer alters global completion behavior around word breaks. - ([@whitty](https://github.com/whitty)) -* [`c9ce294`](https://github.com/npm/npm/commit/c9ce29415a0a8fc610690b6e9d91b64d6e36cfcc) - [#7198](https://github.com/npm/npm/issues/7198) When setting up dependencies - to be shared via `npm link `, only run the lifecycle scripts during - the original link, not when running `npm link ` or `npm install - --link` against them. ([@murgatroid99](https://github.com/murgatroid99)) -* [`422da66`](https://github.com/npm/npm/commit/422da664bd3ce71313da447f170507faf5aac46a) - [#9108](https://github.com/npm/npm/issues/9108) Clear up minor confusion - around wording in `bundledDependencies` section of `package.json` docs. - ([@derekpeterson](https://github.com/derekpeterson)) -* [`6b42d99`](https://github.com/npm/npm/commit/6b42d99460885e715772d3487b1c548d2bc8a738) - [#9146](https://github.com/npm/npm/issues/9146) Include scripts that run for - `preversion`, `version`, and `postversion` in the section for lifecycle - scripts rather than the generic `npm run-script` output. - ([@othiym23](https://github.com/othiym23)) - -#### NOPE, NOT DONE WITH DEPENDENCY UPDATES - -* [`91a48bb`](https://github.com/npm/npm/commit/91a48bb5ef5a990781c86f8b69b8a32cf4fac2d9) - `chmodr@1.0.1`: Ignore symbolic links when recursively changing mode, just - like the Unix command. ([@isaacs](https://github.com/isaacs)) -* [`4bbc86e`](https://github.com/npm/npm/commit/4bbc86e3825e2eee9a8758ba26bdea0cb6a2581e) - `nock@2.10.0` ([@pgte](https://github.com/pgte)) - -### v2.13.4 (2015-07-30): - -#### JULY ENDS ON A FAIRLY QUIET NOTE - -Hey everyone! I hope you've had a great week. We're having a fairly small -release this week while we wrap up Teams and Orgs (or, as we've taken to calling -it internally, _Teens and Orcs_). - -In other exciting news, a bunch of us are gonna be at the [Node.js Collaborator -Summit](https://github.com/nodejs/summit/issues/1), and you can also find us at -[wafflejs](https://wafflejs.com/) on Wednesday. Hopefully we'll be seeing some -of you there. :) - -#### THE PATCH!!! - -So here it is. The patch. Hope it helps. (Thanks, -[@ktarplee](https://github.com/ktarplee)!) - -* [`2e58c48`](https://github.com/npm/npm/commit/2e58c4819e3cafe4ae23ab7f4a520fe09258cfd7) - [#9033](https://github.com/npm/npm/pull/9033) `npm version` now works on git - submodules - ([@ktarplee](https://github.com/ktarplee)) - -#### OH AND THERE'S A DEV DEPENDENCIES UPDATE - -Hooray. - -* [`d204683`](https://github.com/npm/npm/commit/d2046839d471322e61e3ceb0f00e78e5c481f967) - `nock@2.9.1` - ([@pgte](https://github.com/pgte)) - -### v2.13.3 (2015-07-23): - -#### I'M SAVING THE GOOD JOKES FOR MORE INTERESTING RELEASES - -It's pretty hard to outdo last week's release buuuuut~ I promise I'll have a -treat when we release our shiny new **Teams and Organizations** feature! :D -(Coming Soon™). It'll be a real *gem*. - -That means it's a pretty low-key release this week. We got some nice -documentation tweaks, a few bugfixes, and other such things, though! - -Oh, and a _bunch of version bumps_. Thanks, `semver`! - -#### IT'S THE LITTLE THINGS THAT MATTER - -* [`2fac6ae`](https://github.com/npm/npm/commit/2fac6aeffefba2934c3db395b525d931599c34d8) - [#9012](https://github.com/npm/npm/issues/9012) A convenience for releases -- - using the globally-installed npm before now was causing minor annoyances, so - we just use the exact same npm we're releasing to build the new release. - ([@zkat](https://github.com/zkat)) - -#### WHAT DOES THIS BUTTON DO? - -There's a couple of doc updates! The last one might be interesting. - -* [`4cd3205`](https://github.com/npm/npm/commit/4cd32050c0f89b7f1ae486354fa2c35eea302ba5) - [#9002](https://github.com/npm/npm/issues/9002) Updated docs to list the - various files that npm automatically includes and excludes, regardless of - settings. - ([@SimenB](https://github.com/SimenB)) -* [`cf09e75`](https://github.com/npm/npm/commit/cf09e754931739af32647d667b671e72a4c79081) - [#9022](https://github.com/npm/npm/issues/9022) Document the `"access"` field - in `"publishConfig"`. Did you know you don't need to use `--access=public` - when publishing scoped packages?! Just put it in your `package.json`! - Go refresh yourself on scopes packages by [checking our docs](https://docs.npmjs.com/getting-started/scoped-packages) on them. - ([@boennemann](https://github.com/boennemann)) -* [`bfd73da`](https://github.com/npm/npm/commit/bfd73da33349cc2afb8278953b2ae16ea95023de) - [#9013](https://github.com/npm/npm/issues/9013) fixed typo in changelog - ([@radarhere](https://github.com/radarhere)) - -#### THE SEMVER MAJOR VERSION APOCALYPSE IS UPON US - -Basically, `semver` is up to `@5`, and that meant we needed to go in an update a -bunch of our dependencies manually. `node-gyp` is still pending update, since -it's not ours, though! - -* [`9232e58`](https://github.com/npm/npm/commit/9232e58d54c032c23716ef976023d36a42bfdcc9) - [#8972](https://github.com/npm/npm/issues/8972) `init-package-json@1.7.1` - ([@othiym23](https://github.com/othiym23)) -* [`ba44f6b`](https://github.com/npm/npm/commit/ba44f6b4201a4faee025341b123e372d8f45b6d9) - [#8972](https://github.com/npm/npm/issues/8972) `normalize-package-data@2.3.1` - ([@othiym23](https://github.com/othiym23)) -* [`3901d3c`](https://github.com/npm/npm/commit/3901d3cf191880bb4420b1d6b8aedbcd8fc26cdf) - [#8972](https://github.com/npm/npm/issues/8972) `npm-install-checks@1.0.6` - ([@othiym23](https://github.com/othiym23)) -* [`ffcc7dd`](https://github.com/npm/npm/commit/ffcc7dd12f8bb94ff0f64c465c57e460b3f24a24) - [#8972](https://github.com/npm/npm/issues/8972) `npm-package-arg@4.0.2` - ([@othiym23](https://github.com/othiym23)) -* [`7128f9e`](https://github.com/npm/npm/commit/7128f9ec10c0c8482087511b716dbddb54249626) - [#8972](https://github.com/npm/npm/issues/8972) `npm-registry-client@6.5.1` - ([@othiym23](https://github.com/othiym23)) -* [`af28911`](https://github.com/npm/npm/commit/af28911ecd54a844f848c6ae41887097d6aa2f3b) - [#8972](https://github.com/npm/npm/issues/8972) `read-installed@4.0.2` - ([@othiym23](https://github.com/othiym23)) -* [`3cc817a`](https://github.com/npm/npm/commit/3cc817a0f34f698b580ff6ff02308700efc54f7c) - [#8972](https://github.com/npm/npm/issues/8972) node-gyp needs its own version - of semver - ([@othiym23](https://github.com/othiym23)) -* [`f98eccc`](https://github.com/npm/npm/commit/f98eccc6e3a6699ca0aa9ecbad93a3b995583871) - [#8972](https://github.com/npm/npm/issues/8972) `semver@5.0.1`: Stop including - browser builds. - ([@isaacs](https://github.com/isaacs)) - -#### \*BUMP\* - -And some other version bumps for good measure. - -* [`254ecfb`](https://github.com/npm/npm/commit/254ecfb04f026c2fd16427db01a53600c1892c8b) - [#8990](https://github.com/npm/npm/issues/8990) `marked-man@0.1.5`: Fixes an - issue with documentation rendering where backticks in 2nd-level headers would - break rendering (?!?!) - ([@steveklabnik](https://github.com/steveklabnik)) -* [`79efd79`](https://github.com/npm/npm/commit/79efd79ac216da8cee8636fb2ed926b0196a4eb6) - `minimatch@2.0.10`: A pattern like `'*.!(x).!(y)'` should not match a name - like `'a.xyz.yab'`. - ([@isaacs](https://github.com/isaacs)) -* [`39c7dc9`](https://github.com/npm/npm/commit/39c7dc9a4e17cd35a5ed882ba671821c9a900f9e) - `request@2.60.0`: A few bug fixes and doc updates. - ([@simov](https://github.com/simov)) -* [`72d3c3a`](https://github.com/npm/npm/commit/72d3c3a9e1e461608aa21b14c01a650333330da9) - `rimraf@2.4.2`: Minor doc and dep updates - ([@isaacs](https://github.com/isaacs)) -* [`7513035`](https://github.com/npm/npm/commit/75130356a06f5f4fbec3786aac9f9f0b36dfe010) - `nock@2.9.1` - ([@pgte](https://github.com/pgte)) -* [`3d9aa82`](https://github.com/npm/npm/commit/3d9aa82260f0643a32c13d0c1ed16f644b6fd4ab) - Fixes this thing where Kat decided to save `nock` as a regular dependency ;) - ([@othiym23](https://github.com/othiym23)) - -### v2.13.2 (2015-07-16): - -#### HOLD ON TO YOUR TENTACLES... IT'S NPM RELEASE TIME! - -Kat: Hooray! Full team again, and we've got a pretty small patch release this -week, about everyone's favorite recurring issue: git URLs! - -Rebecca: No Way! Again? - -Kat: The ride never ends! In the meantime, there's some fun, exciting work in -the background to get orgs and teams out the door. Keep an eye out for news. :) - -Rebecca: And make sure to keep an eye out for patches for the super-fresh -`npm@3`! - -#### LET'S GIT INKY - -Rebecca: So what's this about another git URL issue? - -Kat: Welp, I apparently broke backwards-compatibility on what are actually -invalid `git+https` URLs! So I'm making it work, but we're gonna deprecate URLs -that look like `git+https://user@host:path/is/here`. - -Rebecca: What should we use instead?! - -Kat: Just do me a solid and use `git+ssh://user@host:path/here` or -`git+https://user@host/absolute/https/path` instead! - -* [`769f06e`](https://github.com/npm/npm/commit/769f06e5455d7a9fc738379de2e05868df0dab6f) - Updated tests for `getResolved` so the URLs are run through - `normalize-git-url`. - ([@zkat](https://github.com/zkat)) -* [`edbae68`](https://github.com/npm/npm/commit/edbae685bf48971e878ced373d6825fc1891ee47) - [#8881](https://github.com/npm/npm/issues/8881) Added tests to verify that `git+https:` URLs are handled compatibly. - ([@zkat](https://github.com/zkat)) - -#### NEWS FLASH! DOCUMENTATION IMPROVEMENTS! - -* [`bad4e014`](https://github.com/npm/npm/commit/bad4e0143cc95754a682f1da543b2b4e196e924b) - [#8924](https://github.com/npm/npm/pull/8924) Make sure documented default - values in `lib/cache.js` properly correspond to current code. - ([@watilde](https://github.com/watilde)) -* [`e7a11fd`](https://github.com/npm/npm/commit/e7a11fdf70e333cdfe3dac94a1a30907adb76d59) - [#8036](https://github.com/npm/npm/issues/8036) Clarify the documentation for - `.npmrc` to clarify that it's not read at the project level when doing global - installs. - ([@espadrine](https://github.com/espadrine)) - -#### STAY FRESH~ - -Kat: That's it for npm core changes! - -Rebecca: Great! Let's look at the fresh new dependencies, then! - -Kat: See you all next week! - -Both: Stay Freeesh~ - -(some cat form of Forrest can be seen snoring in the corner) - -* [`bfa1f45`](https://github.com/npm/npm/bfa1f45ee760d05039557d2245b7e3df9fda8def) - `normalize-git-url@3.0.1`: Fixes url normalization such that `git+https:` - accepts scp syntax, but get converted into absolute-path `https:` URLs. Also - fixes scp syntax so you can have absolute paths after the `:` - (`git@myhost.org:/some/absolute/place.git`) - ([@zkat](https://github.com/zkat)) -* [`6f757d2`](https://github.com/npm/npm/6f757d22b53f91da0bebec6b5d16c1f4dbe130b4) - `glob@5.0.15`: Better handling of ENOTSUP - ([@isaacs](https://github.com/isaacs)) -* [`0920819`](https://github.com/npm/npm/09208197fb8b0c6d5dbf6bd7f59970cf366de989) - `node-gyp@2.0.2`: Fixes an issue with long paths on Win32 - ([@TooTallNate](https://github.com/TooTallNate)) - -### v2.13.1 (2015-07-09): - -#### KAUAI WAS NICE. I MISS IT. - -But Forrest's still kinda on vacation, and not just mentally, because he's -hanging out with the fine meatbags at CascadiaFest. Enjoy this small bug -release. - -#### MAKE OURSELVES HAPPY - -* [`40981f2`](https://github.com/npm/npm/commit/40981f2e0c9c12bb003ccf188169afd1d201f5af) - [#8862](https://github.com/npm/npm/issues/8862) Make the lifecycle's safety - check work with scoped packages. ([@tcort](https://github.com/tcort)) -* [`5125856`](https://github.com/npm/npm/commit/512585622481dbbda9a0306932468d59efaff658) - [#8855](https://github.com/npm/npm/issues/8855) Make dependency versions of - `"*"` match `"latest"` when all versions are prerelease. - ([@iarna](https://github.com/iarna)) -* [`22fdc1d`](https://github.com/npm/npm/commit/22fdc1d52602ba7098af978c75fca8f7d1060141) - Visually emphasize the correct way to write lifecycle scripts. - ([@josh-egan](https://github.com/josh-egan)) - -#### MAKE TRAVIS HAPPY - -* [`413c3ac`](https://github.com/npm/npm/commit/413c3ac2ab2437f3011c6ca0d1630109ec14e604) - Use npm's `2.x` branch for testing its `2.x` branch. - ([@iarna](https://github.com/iarna)) -* [`7602f64`](https://github.com/npm/npm/commit/7602f64826f7a465d9f3a20bd87a376d992607e6) - Don't prompt for GnuPG passphrase in version lifecycle tests. - ([@othiym23](https://github.com/othiym23)) - -#### MAKE `npm outdated` HAPPY - -* [`d338668`](https://github.com/npm/npm/commit/d338668601d1ebe5247a26237106e80ea8cd7f48) - [#8796](https://github.com/npm/npm/issues/8796) `fstream-npm@1.0.4`: When packing the - package tarball, npm no longer crashes for packages with certain combinations of - `.npmignore` entries, `.gitignore` entries, and lifecycle scripts. - ([@iarna](https://github.com/iarna)) -* [`dbe7c9c`](https://github.com/npm/npm/commit/dbe7c9c74734be870d16dd61b9e7f746123011f6) - `nock@2.7.0`: Add matching based on query strings. - ([@othiym23](https://github.com/othiym23)) - -There are new versions of `strip-ansi` and `ansi-regex`, but npm only uses them -indirectly, so we pushed them down into their dependencies where they can get -updated at their own pace. - -* [`06b6ca5`](https://github.com/npm/npm/commit/06b6ca5b5333025f10c8d901628859bd4678e027) - undeduplicate `ansi-regex` ([@othiym23](https://github.com/othiym23)) -* [`b168e33`](https://github.com/npm/npm/commit/b168e33ad46faf47020a45f72ba8cec8c644bdb9) - undeduplicate `strip-ansi` ([@othiym23](https://github.com/othiym23)) - -### v2.13.0 (2015-07-02): - -#### FORREST IS OUT! LET'S SNEAK IN ALL THE THINGS! - -Well, not _everything_. Just a couple of goodies, like the new `npm ping` -command, and the ability to add files to the commits created by `npm version` -with the new version hooks. There's also a couple of bugfixes in `npm` itself -and some of its dependencies. Here we go! - -#### YES HELLO THIS IS NPM REGISTRY SORRY NO DOG HERE - -Yes, that's right! We now have a dedicated `npm ping` command. It's super simple -and super easy. You ping. We tell you whether you pinged right by saying hello -right back. This should help out folks dealing with things like proxy issues or -other registry-access debugging issues. Give it a shot! - -This addresses [#5750](https://github.com/npm/npm/issues/5750), and will help -with the `npm doctor` stuff described in -[#6756](https://github.com/npm/npm/issues/6756). - -* [`f1f7a85`](https://github.com/npm/npm/commit/f1f7a85) - Add ping command to CLI - ([@michaelnisi](https://github.com/michaelnisi)) -* [`8cec629`](https://github.com/npm/npm/commit/8cec629) - Add ping command to npm-registry-client - ([@michaelnisi](https://github.com/michaelnisi)) -* [`0c0c92d`](https://github.com/npm/npm/0c0c92d) - Fixed ping command issues (added docs, tests, fixed minor bugs, etc) - ([@zkat](https://github.com/zkat)) - -#### I'VE WANTED THIS FOR `version` SINCE LIKE LITERALLY FOREVER AND A DAY - -Seriously! This patch lets you add files to the `version` commit before it's -made, So you can add additional metadata files, more automated changes to -`package.json`, or even generate `CHANGELOG.md` automatically pre-commit if -you're into that sort of thing. I'm so happy this is there I can't even. Do you -have other fun usecases for this? Tell -[npmbot (@npmjs)](http://twitter.com/npmjs) about it! - -* [`582f170`](https://github.com/npm/npm/commit/582f170) - [#8620](https://github.com/npm/npm/issues/8620) version: Allow scripts to add - files to the commit. - ([@jamestalmage](https://github.com/jamestalmage)) - -#### ALL YOUR FILE DESCRIPTORS ARE BELONG TO US - -We've had problems in the past with things like `EMFILE` errors popping up when -trying to install packages with a bunch of dependencies. Isaac patched up -[`graceful-fs`](https://github.com/isaacs/node-graceful-fs) to handle this case -better, so we should be seeing fewer of those. - -* [`022691a`](https://github.com/npm/npm/commit/022691a) - `graceful-fs@4.1.2`: Updated so we can monkey patch globally. - ([@isaacs](https://github.com/isaacs)) -* [`c9fb0fd`](https://github.com/npm/npm/commit/c9fb0fd) - Globally monkey-patch graceful-fs. This should fix some errors when installing - packages with lots of dependencies. - ([@isaacs](https://github.com/isaacs)) - -#### READ THE FINE DOCS. THEY'VE IMPROVED - -* [`5587d0d`](https://github.com/npm/npm/commit/5587d0d) - Nice clarification for `directories.bin` - ([@ujane](https://github.com/ujane)) -* [`20673c7`](https://github.com/npm/npm/commit/20673c7) - Hey, Windows folks! Check out - [`nvm-windows`](https://github.com/coreybutler/nvm-windows) - ([@ArtskydJ](https://github.com/ArtskydJ)) - -#### MORE NUMBERS! MORE VALUE! - -* [`5afa2d5`](https://github.com/npm/npm/commit/5afa2d5) - `validate-npm-package-name@2.2.2`: Documented package name rules in README - ([@zeusdeux](https://github.com/zeusdeux)) -* [`021f4d9`](https://github.com/npm/npm/commit/021f4d9) - `rimraf@2.4.1`: [#74](https://github.com/isaacs/rimraf/issues/74) Use async - function for bin (to better handle Window's `EBUSY`) - ([@isaacs](https://github.com/isaacs)) -* [`5223432`](https://github.com/npm/npm/commit/5223432) - `osenv@0.1.3`: Use `os.homedir()` polyfill for more reliable output. io.js - added the function and the polyfill does a better job than the prior solution. - ([@sindresorhus](https://github.com/sindresorhus)) -* [`8ebbc90`](https://github.com/npm/npm/commit/8ebbc90) - `npm-cache-filename@1.0.2`: Make sure different git references get different - cache folders. This should prevent `foo/bar#v1.0` and `foo/bar#master` from - sharing the same cache folder. - ([@tomekwi](https://github.com/tomekwi)) -* [`367b854`](https://github.com/npm/npm/commit/367b854) - `lru-cache@2.6.5`: Minor test/typo changes - ([@isaacs](https://github.com/isaacs)) -* [`9fcae61`](https://github.com/npm/npm/commit/9fcae61) - `glob@5.0.13`: Tiny doc change + stop firing 'match' events for ignored items. - ([@isaacs](https://github.com/isaacs)) - -#### OH AND ONE MORE THING - -* [`7827249`](https://github.com/npm/npm/commit/7827249) - `PeerDependencies` errors now include the package version. - ([@NickHeiner](https://github.com/NickHeiner)) - -### v2.12.1 (2015-06-25): - -#### HEY WHERE DID EVERYBODY GO - -I keep [hearing some commotion](https://github.com/npm/npm/releases/tag/v3.0.0). -Is there something going on? Like, a party or something? Anyway, here's a small -release with at least two significant bug fixes, at least one of which some of -you have been waiting for for quite a while. - -#### REMEMBER WHEN I SAID "REMEMBER WHEN I SAID THAT THING ABOUT PERMISSIONS?"? - -`npm@2.12.0` has a change that introduces a fix for a permissions problem -whereby the `_locks` directory in the cache directory can up being owned by -root. The fix in 2.12.0 takes care of that problem, but introduces a new -problem for Windows users where npm tries to call `process.getuid()`, which -doesn't exist on Windows. It was easy enough to fix (but more or less -impossible to test, thanks to all the external dependencies involved with -permissions and platforms and whatnot), but as a result, Windows users might -want to skip `npm@2.12.0` and go straight to `npm@2.12.1`. Sorry about that! - -* [`7e5da23`](https://github.com/npm/npm/commit/7e5da238ee869201fdb9027c27b79b0f76b440a8) - When using the new, "fixed" cache directory creator, be extra-careful to not - call `process.getuid()` on platforms that lack it. - ([@othiym23](https://github.com/othiym23)) - -#### WHEW! ALL DONE FIXING GIT FOREVER! - -New npm CLI team hero [@zkat](https://github.com/zkat) has finally (FINALLY) -fixed the regression somebody (hi!) introduced a couple months ago whereby git -URLs of the format `git+ssh://user@githost.com:org/repo.git` suddenly stopped -working, and also started being saved (and cached) incorrectly. I am 100% sure -there are absolutely no more bugs in the git caching code at all ever. Mm hm. -Yep. Pretty sure. Maybe. Hmm... I hope. - -*Sighs audibly.* - -[Let us know](http://github.com/npm/npm/issues/new) if we broke something else -with this fix. - -* [`94ca4a7`](https://github.com/npm/npm/commit/94ca4a711619ba8e40ce3d20bc42b13cdb7611b7) - [#8031](https://github.com/npm/npm/issues/8031) Even though - `git+ssh://user@githost.com:org/repo.git` isn't a URL, treat it like one for - the purposes of npm. ([@zkat](https://github.com/zkat)) -* [`e7f56e5`](https://github.com/npm/npm/commit/e7f56e5a97fcf1c52d5c5bee71303b0126129815) - [#8031](https://github.com/npm/npm/issues/8031) `normalize-git-url@2.0.0`: - Handle git URLs (and URL-like remote refs) in a manner consistent with npm's - docs. ([@zkat](https://github.com/zkat)) - -#### YEP, THERE ARE STILL DEPENDENCY UPGRADES - -* [`679bf47`](https://github.com/npm/npm/commit/679bf4745ac2cfbb01c9ce273e189807fd04fa33) - [#40](http://github.com/npm/read-installed/issues/40) `read-installed@4.0.1`: - Handle prerelease versions in top-level dependencies not in `package.json` - without marking those packages as invalid. - ([@benjamn](https://github.com/benjamn)) -* [`3a67410`](https://github.com/npm/npm/commit/3a6741068c9119174c920496778aeee870ebdac0) - `tap@1.3.1` ([@isaacs](https://github.com/isaacs)) -* [`151904a`](https://github.com/npm/npm/commit/151904af39dc24567f8c98529a2a64a4dbcc960a) - `nopt@3.0.3` ([@isaacs](https://github.com/isaacs)) - -### v2.12.0 (2015-06-18): - -#### REMEMBER WHEN I SAID THAT THING ABOUT PERMISSIONS? - -About [a million people](https://github.com/npm/npm/issues?utf8=%E2%9C%93&q=is%3Aissue+EACCES+_locks) -have filed issues related to having a tough time using npm after they've run -npm once or twice with sudo. "Don't worry about it!" I said. "We've fixed all -those permissions problems ages ago! Use this one weird trick and you'll never -have to deal with this again!" - -Well, uh, if you run npm with root the first time you run npm on a machine, it -turns out that the directory npm uses to store lockfiles ends up being owned by -the wrong user (almost always root), and that can, well, it can cause problems -sometimes. By which I mean every time you run npm without being root it'll barf -with `EACCES` errors. Whoops! - -This is an obnoxious regression, and to prevent it from recurring, we've made -it so that the cache, cached git remotes, and the lockfile directories are all -created and maintained using the same utilty module, which not only creates the -relevant paths with the correct permissions, but will fix the permissions on -those directories (if it can) when it notices that they're broken. An `npm -install` run as root ought to be sufficient to fix things up (and if that -doesn't work, first tell us about it, and then run `sudo chown -R $(whoami) -$HOME/.npm`) - -Also, I apologize for inadvertently gaslighting any of you by claiming this bug -wasn't actually a bug. I do think we've got this permanently dealt with now, -but I'll be paying extra-close attention to permissions issues related to the -cache for a while. - -* [`85d1a53`](https://github.com/npm/npm/commit/85d1a53d7b5e0fc04823187e522ae3711ede61fa) - Set permissions on lock directory to the owner of the process. - ([@othiym23](https://github.com/othiym23)) - -#### I WENT TO NODECONF AND ALL I GOT WAS THIS LOUSY SPDX T-SHIRT - -That's not literally true. We spent very little time discussing SPDX, -[@kemitchell](https://github.com/kemitchell) is a champ, and I had a lot of fun -playing drum & bass to a mostly empty Boogie Barn and only ended up with one -moderately severe cold for my pains. Another winner of a NodeConf! (I would -probably wear a SPDX T-shirt if somebody gave me one, though.) - -A bunch of us did have a spirited discussion of the basics of open-source -intellectual property, and the convergence of me, -[@kemitchell](https://github.com/kemitchell), and -[@jandrieu](https://github.com/jandrieu) in one place allowed us to hammmer out -a small but significant issue that had been bedeviling early adopters of the -new SPDX expression syntax in `package.json` license fields: how to deal with -packages that are left without a license on purpose. - -Refer to [the docs](https://github.com/npm/npm/blob/16a3dd545b10f8a2464e2037506ce39124739b41/doc/files/package.json.md#license) -for the specifics, but the short version is that instead of using -`LicenseRef-LICENSE` for proprietary licenses, you can now use either -`UNLICENSED` if you want to make it clear that you don't _want_ your software -to be licensed (and want npm to stop warning you about this), or `SEE LICENSE -IN ` if there's a license with custom text you want to use. At some -point in the near term, we'll be updating npm to verify that the mentioned -file actually exists, but for now you're all on the honor system. - -* [`4827fc7`](https://github.com/npm/npm/commit/4827fc784117c17f35dd9b51b21d1eff6094f661) - [#8557](https://github.com/npm/npm/issues/8557) - `normalize-package-data@2.2.1`: Allow `UNLICENSED` and `SEE LICENSE IN - ` in "license" field of `package.json`. - ([@kemitchell](https://github.com/kemitchell)) -* [`16a3dd5`](https://github.com/npm/npm/commit/16a3dd545b10f8a2464e2037506ce39124739b41) - [#8557](https://github.com/npm/npm/issues/8557) Document the new accepted - values for the "license" field. - ([@kemitchell](https://github.com/kemitchell)) -* [`8155311`](https://github.com/npm/npm/commit/81553119350deaf199e79e38e35b52a5c8ad206c) - [#8557](https://github.com/npm/npm/issues/8557) `init-package-json@1.7.0`: - Support new "license" field values at init time. - ([@kemitchell](https://github.com/kemitchell)) - -#### SMALLISH BUG FIXES - -* [`9d8cac9`](https://github.com/npm/npm/commit/9d8cac94a258db648a2b1069b1c8c6529c79d013) - [#8548](https://github.com/npm/npm/issues/8548) Remove extraneous newline - from `npm view` output, making it easier to use in shell scripts. - ([@eush77](https://github.com/eush77)) -* [`765fd4b`](https://github.com/npm/npm/commit/765fd4bfca8ea3e2a4a399765b17eec40a3d893d) - [#8521](https://github.com/npm/npm/issues/8521) When checking for outdated - packages, or updating packages, raise an error when the registry is - unreachable instead of silently "succeeding". - ([@ryantemple](https://github.com/ryantemple)) - -#### SMALLERISH DOCUMENTATION TWEAKS - -* [`5018335`](https://github.com/npm/npm/commit/5018335ce1754a9f771954ecbc1a93acde9b8c0a) - [#8365](https://github.com/npm/npm/issues/8365) Add details about which git - environment variables are whitelisted by npm. - ([@nmalaguti](https://github.com/nmalaguti)) -* [`bed9edd`](https://github.com/npm/npm/commit/bed9edddfdcc6d22a80feab33b53e4ef9172ec72) - [#8554](https://github.com/npm/npm/issues/8554) Fix typo in version docs. - ([@rainyday](https://github.com/rainyday)) - -#### WELL, I GUESS THERE ARE MORE DEPENDENCY UPGRADES - -* [`7ce2f06`](https://github.com/npm/npm/commit/7ce2f06f6f34d469b1d2e248084d4f3fef10c05e) - `request@2.58.0`: Refactor tunneling logic, and use `extend` instead of - abusing `util._extend`. ([@simov](https://github.com/simov)) -* [`e6c6195`](https://github.com/npm/npm/commit/e6c61954aad42e20eec49745615c7640b2026a6c) - `nock@2.6.0`: Refined interception behavior. - ([@pgte](https://github.com/pgte)) -* [`9583cc3`](https://github.com/npm/npm/commit/9583cc3cb192c2fced006927cfba7cd37b588605) - `fstream-npm@1.0.3`: Ensure that `main` entry in `package.json` is always - included in the bundled package tarball. - ([@coderhaoxin](https://github.com/coderhaoxin)) -* [`df89493`](https://github.com/npm/npm/commit/df894930f2716adac28740b29b2e863170919990) - `fstream@1.0.7` ([@isaacs](https://github.com/isaacs)) -* [`9744049`](https://github.com/npm/npm/commit/974404934758124aa8ae5b54f7d5257c3bd6b588) - `dezalgo@1.0.3`: `dezalgo` should be usable in the browser, and can be now - that `asap` has been upgraded to be browserifiable. - ([@mvayngrib](https://github.com/mvayngrib)) - -### v2.11.3 (2015-06-11): - -This was a very quiet week. This release was done by -[@iarna](https://github.com/iarna), while the rest of the team hangs out at -NodeConf Adventure! - -#### TESTS IN 0.8 FAIL LESS - -* [`5b3b3c2`](https://github.com/npm/npm/commit/5b3b3c2) - [#8491](//github.com/npm/npm/pull/8491) - Updates a test to use only 0.8 compatible features - ([@watilde](https://github.com/watilde)) - -#### THE TREADMILL OF UPDATES NEVER CEASES - -* [`9f439da`](https://github.com/npm/npm/commit/9f439da) - `spdx@0.4.1`: License range updates - ([@kemitchell](https://github.com/kemitchell)) -* [`2dd055b`](https://github.com/npm/npm/commit/2dd055b) - `normalize-package-data@2.2.1`: Fixes a crashing bug when the package.json - `scripts` property is not an object. - ([@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 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)) -* [`7395977`](https://github.com/npm/npm/commit/7395977) - `rimraf@2.4.0` ([@isaacs](https://github.com/isaacs)) - -### v2.11.2 (2015-06-04): - -Another small release this week, brought to you by the latest addition to the -CLI team, [@zkat](https://github.com/zkat) (Hi, all!) - -Mostly small documentation tweaks and version updates. Oh! And `npm outdated` -is actually sorted now. Rejoice! - -It's gonna be a while before we get another palindromic version number. Enjoy it -while it lasts. :3 - -#### QUALITY OF LIFE HAS NEVER BEEN BETTER - -* [`31aada4`](https://github.com/npm/npm/commit/31aada4ccc369c0903ff7f233f464955d12c6fe2) - [#8401](https://github.com/npm/npm/issues/8401) `npm outdated` output is just - that much nicer to consume now, due to sorting by name. - ([@watilde](https://github.com/watilde)) -* [`458a919`](https://github.com/npm/npm/commit/458a91925d8b20c5e672ba71a86745aad654abaf) - [#8469](https://github.com/npm/npm/pull/8469) Explicitly set `cwd` for - `preversion`, `version`, and `postversion` scripts. This makes the scripts - findable relative to the root dir. - ([@alexkwolfe](https://github.com/alexkwolfe)) -* [`55d6d71`](https://github.com/npm/npm/commit/55d6d71562e979e745c9db88861cc39f99b9f3ec) - Ensure package name and version are included in display during `npm version` - lifecycle execution. Gets rid of those little `undefined`s in the console. - ([@othiym23](https://github.com/othiym23)) - -#### WORDS HAVE NEVER BEEN QUITE THIS READABLE - -* [`3901e49`](https://github.com/npm/npm/commit/3901e4974c800e7f9fba4a5b2ff88da1126d5ef8) - [#8462](https://github.com/npm/npm/pull/8462) English apparently requires - correspondence between indefinite articles and attached nouns. - ([@Enet4](https://github.com/Enet4)) -* [`5a744e4`](https://github.com/npm/npm/commit/5a744e4b143ef7b2f50c80a1d96fdae4204d452b) - [#8421](https://github.com/npm/npm/pull/8421) The effect of `npm prune`'s - `--production` flag and how to use it have been documented a bit better. - ([@foiseworth](https://github.com/foiseworth)) -* [`eada625`](https://github.com/npm/npm/commit/eada625993485f0a2c5324b06f02bfa0a95ce4bc) - We've updated our `.mailmap` and `AUTHORS` files to make sure credit is given - where credit is due. ([@othiym23](https://github.com/othiym23)) - -#### VERSION NUMBERS HAVE NEVER BEEN BIGGER - -* [`c929fd1`](https://github.com/npm/npm/commit/c929fd1d0604b5878ed05706447e078d3e41f5b3) - `readable-stream@1.1.13`: Manually deduped `v1.1.13` (streams3) to make - deduping more reliable on `npm@<3`. ([@othiym23](https://github.com/othiym23)) -* [`a9b4b78`](https://github.com/npm/npm/commit/a9b4b78dcc85571fd1cdd737903f7f37a5e6a755) - `request@2.57.0`: Replace dependency on IncomingMessage's `.client` with - `.socket` as the former was deprecated in io.js 2.2.0. - ([@othiym23](https://github.com/othiym23)) -* [`4b5e557`](https://github.com/npm/npm/commit/4b5e557a23cdefd521ad154111e3d4dcc81f1cdb) - `abbrev@1.0.7`: Better testing, with coverage. - ([@othiym23](https://github.com/othiym23)) -* [`561affe`](https://github.com/npm/npm/commit/561affee21df9bbea5a47298f2452f533be8f359) - `semver@4.3.6`: .npmignore added for less cruft, and better testing, with coverage. - ([@othiym23](https://github.com/othiym23)) -* [`60aef3c`](https://github.com/npm/npm/commit/60aef3cf5d84d757752db3eb8ede2cb385469e7b) - `graceful-fs@3.0.8`: io.js fixes. - ([@zkat](https://github.com/zkat)) -* [`f8bd453`](https://github.com/npm/npm/commit/f8bd453b1a1c46ba7666cb166595e8a011eae443) - `config-chain@1.1.9`: Added MIT license to package.json - ([@zkat](https://github.com/zkat)) - -### v2.11.1 (2015-05-28): - -This release brought to you from poolside at the Omni Amelia Island Resort and -JSConf 2015, which is why it's so tiny. - -#### CONFERENCE WIFI CAN'T STOP THESE BUG FIXES - -* [`cf109a6`](https://github.com/npm/npm/commit/cf109a682f38a059a994da953d5c1b4aaece5e2f) - [#8381](https://github.com/npm/npm/issues/8381) Documented a subtle gotcha - with `.npmrc`, which is that it needs to have its permissions set such that - only the owner can read or write the file. - ([@colakong](https://github.com/colakong)) -* [`180da67`](https://github.com/npm/npm/commit/180da67c9fa53103d625e2f031626c2453c7ebcd) - [#8365](https://github.com/npm/npm/issues/8365) Git 2.3 adds support for - `GIT_SSH_COMMAND`, which allows you to pass an explicit git command (with, - for example, a specific identity passed in on the command line). - ([@nmalaguti](https://github.com/nmalaguti)) - -#### MY (VIRGIN) PINA COLADA IS GETTING LOW, BETTER UPGRADE THESE DEPENDENCIES - -* [`b72de41`](https://github.com/npm/npm/commit/b72de41c5cc9f0c46d3fa8f062c75bd273641474) - `node-gyp@2.0.0`: Use a newer version of `gyp`, and generally improve support - for Visual Studios and Windows. - ([@TooTallNate](https://github.com/TooTallNate)) -* [`8edbe21`](https://github.com/npm/npm/commit/8edbe210af41e8f248f5bb92c72de92f54fda3b1) - `node-gyp@2.0.1`: Don't crash when Python's version doesn't parse as valid - semver. ([@TooTallNate](https://github.com/TooTallNate)) -* [`ba0e0a8`](https://github.com/npm/npm/commit/ba0e0a845a4f29717aba566b416a27d1a22f5d08) - `glob@5.0.10`: Add coverage to tests. ([@isaacs](https://github.com/isaacs)) -* [`7333701`](https://github.com/npm/npm/commit/7333701b5d4f01673f37d64992c63c4e15864d6d) - `request@2.56.0`: Bug fixes and dependency upgrades. - ([@simov](https://github.com/simov)) - -### v2.11.0 (2015-05-21): - -For the first time in a very long time, we've added new events to the life -cycle used by `npm run-script`. Since running `npm version (major|minor|patch)` -is typically the last thing many developers do before publishing their updated -packages, it makes sense to add life cycle hooks to run tests or otherwise -preflight the package before doing a full publish. Thanks, as always, to the -indefatigable [@watilde](https://github.com/watilde) for yet another great -usability improvement for npm! - -#### FEATURELETS - -* [`b07f7c7`](https://github.com/npm/npm/commit/b07f7c7c1e5021730b3c320f1b3a46e70f8a21ff) - [#7906](https://github.com/npm/npm/issues/7906) - Add new [`scripts`](https://github.com/npm/npm/blob/master/doc/misc/npm-scripts.md) to - allow you to run scripts before and after - the [`npm version`](https://github.com/npm/npm/blob/master/doc/cli/npm-version.md) - command has run. This makes it easy to, for instance, require that your - test suite passes before bumping the version by just adding `"preversion": - "npm test"` to the scripts section of your `package.json`. - ([@watilde](https://github.com/watilde)) -* [`8a46136`](https://github.com/npm/npm/commit/8a46136f42e416cbadb533bcf89d73d681ed421d) - [#8185](https://github.com/npm/npm/issues/8185) - When we get a "not found" error from the registry, we'll now check to see - if the package name you specified is invalid and if so, give you a better - error message. ([@thefourtheye](https://github.com/thefourtheye)) - -#### BUG FIXES - -* [`9bcf573`](https://github.com/npm/npm/commit/9bcf5730bd0316f210dafea898afe9103849cea9) - [#8324](https://github.com/npm/npm/pull/8324) On Windows, when you've configured a - custom `node-gyp`, run it with node itself instead of using the default open action (which - is almost never what you want). ([@bangbang93](https://github.com/bangbang93)) -* [`1da9b04`](https://github.com/npm/npm/commit/1da9b0411d3416c7fca17d08cbbcfca7ae86e92d) - [#7195](https://github.com/npm/npm/issues/7195) - [#7260](https://github.com/npm/npm/issues/7260) `npm-registry-client@6.4.0`: - (Re-)allow publication of existing mixed-case packages (part 1). - ([@smikes](https://github.com/smikes)) -* [`e926783`](https://github.com/npm/npm/commit/e9267830ab261c751f12723e84d2458ae9238646) - [#7195](https://github.com/npm/npm/issues/7195) - [#7260](https://github.com/npm/npm/issues/7260) - `normalize-package-data@2.2.0`: (Re-)allow publication of existing mixed-case - packages (part 2). ([@smikes](https://github.com/smikes)) - -#### DOCUMENTATION IMPROVEMENTS - -* [`f62ee05`](https://github.com/npm/npm/commit/f62ee05333b141539a8e851c620dd2e82ff06860) - [#8314](https://github.com/npm/npm/issues/8314) Update the README to warn - folks away from using the CLI's internal API. For the love of glob, just use a - child process to run the CLI! ([@claycarpenter](https://github.com/claycarpenter)) -* [`1093921`](https://github.com/npm/npm/commit/1093921c04db41ab46db24a170a634a4b2acd8d9) - [#8279](https://github.com/npm/npm/pull/8279) - Update the documentation to note that, yes, you can publish scoped packages to the - public registry now! ([@mantoni](https://github.com/mantoni)) -* [`f87cde5`](https://github.com/npm/npm/commit/f87cde5234a760d3e515ffdaacaed6f5b71dbf44) - [#8292](https://github.com/npm/npm/pull/8292) - Fix typo in an example and grammar in the description in - the [shrinkwrap documentation](https://github.com/npm/npm/blob/master/doc/cli/npm-shrinkwrap.md). - ([@vshih](https://github.com/vshih)) -* [`d3526ce`](https://github.com/npm/npm/commit/d3526ceb09a0c29fdb7d4124536ae09057d033e7) - Improve the formatting in - the [shrinkwrap documentation](https://github.com/npm/npm/blob/master/doc/cli/npm-shrinkwrap.md). - ([@othiym23](https://github.com/othiym23)) -* [`19fe6d2`](https://github.com/npm/npm/commit/19fe6d20883e28956ff916fe4dae42d73ee6195b) - [#8311](https://github.com/npm/npm/pull/8311) - Update [README.md](https://github.com/npm/npm#readme) to use syntax highlighting in - its code samples and bits of shell scripts. ([@SimenB](https://github.com/SimenB)) - -#### DEPENDENCY UPDATES! ALWAYS AND FOREVER! - -* [`fc52160`](https://github.com/npm/npm/commit/fc52160d0223226fffe4166f42fdfd3b899b3c1e) - [#4700](https://github.com/npm/npm/issues/4700) [#5044](https://github.com/npm/npm/issues/5044) - `init-package-json@1.6.0`: Make entering an invalid version while running `npm init` give - you an immediate error and prompt you to correct it. ([@watilde](https://github.com/watilde)) -* [`738853e`](https://github.com/npm/npm/commit/738853eb1f55636476a2a410c2c04732eec9d51e) - [#7763](https://github.com/npm/npm/issues/7763) `fs-write-stream-atomic@1.0.3`: Fix a bug - where errors would not propagate, making error messages unhelpful. - ([@iarna](https://github.com/iarna)) -* [`6d74a2d`](https://github.com/npm/npm/commit/6d74a2d2ac7f92750cf6a2cfafae1af23b569098) - `npm-package-arg@4.0.1`: Fix tests on windows ([@Bacra](https://github.com)) and with - more recent `hosted-git-info`. ([@iarna](https://github.com/iarna)) -* [`50f7178`](https://github.com/npm/npm/commit/50f717852fbf713ef6cbc4e0a9ab42657decbbbd) - `hosted-git-info@2.1.4`: Correct spelling in its documentation. - ([@iarna](https://github.com/iarna)) -* [`d7956ca`](https://github.com/npm/npm/commit/d7956ca17c057d5383ff0d3fc5cf6ac2940b034d) - `glob@5.0.7`: Fix a bug where unusual error conditions could make - further use of the module fail. ([@isaacs](https://github.com/isaacs)) -* [`44f7d74`](https://github.com/npm/npm/commit/44f7d74c5d3181d37da7ea7949c86b344153f8d9) - `tap@1.1.0`: Update to the most recent tap to get a whole host of bug - fixes and integration with [coveralls](https://coveralls.io/). - ([@isaacs](https://github.com/isaacs)) -* [`c21e8a8`](https://github.com/npm/npm/commit/c21e8a8d94bcf0ad79dc583ddc53f8366d4813b3) - `nock@2.2.0` ([@othiym23](https://github.com/othiym23)) - -#### LICENSE FILES FOR THE LICENSE GOD - -* Add missing ISC license file to package ([@kasicka](https://github.com/kasicka)): - * [`aa9908c`](https://github.com/npm/npm/commit/aa9908c20017729673b9d410b77f9a16b7aae8a4) `realize-package-specifier@3.0.1` - * [`23a3b1a`](https://github.com/npm/npm/commit/23a3b1a726b9176c70ce0ccf3cd9d25c54429bdf) `fs-vacuum@1.2.6` - * [`8e04bba`](https://github.com/npm/npm/commit/8e04bba830d4353d84751d21803cd127c96153a7) `dezalgo@1.0.2` - * [`50f7178`](https://github.com/npm/npm/commit/50f717852fbf713ef6cbc4e0a9ab42657decbbbd) `hosted-git-info@2.1.4` - * [`6a54917`](https://github.com/npm/npm/commit/6a54917fbd4df995495a95d4b548defd44b77c93) `write-file-atomic@1.1.2` - * [`971f92c`](https://github.com/npm/npm/commit/971f92c4a4e5514217d1e4db45d1ccf71a60ff19) `async-some@1.0.2` - * [`67b50b7`](https://github.com/npm/npm/commit/67b50b7667a42bb3340a660eb2e617e1a554d2d4) `normalize-git-url@1.0.1` - -#### SPDX LICENSE UPDATES - -* Switch license to - [BSD-2-Clause](http://spdx.org/licenses/BSD-2-Clause.html#licenseText) from - plain "BSD" ([@isaacs](https://github.com/isaacs)): - * [`efdb733`](https://github.com/npm/npm/commit/efdb73332eeedcad4c609796929070b62abb37ab) `npm-user-validate@0.1.2` - * [`e926783`](https://github.com/npm/npm/commit/e9267830ab261c751f12723e84d2458ae9238646) `normalize-package-data@2.2.0` -* Switch license to [ISC](http://spdx.org/licenses/ISC.html#licenseText) from - [BSD](http://spdx.org/licenses/BSD-2-Clause.html#licenseText) - ([@isaacs](https://github.com/isaacs)): - * [`c300956`](https://github.com/npm/npm/commit/c3009565a964f0ead4ac4ab234b1a458e2365f17) `block-stream@0.0.8` - * [`1de1253`](https://github.com/npm/npm/commit/1de125355765fecd31e682ed0ff9d2edbeac0bb0) `lockfile@1.0.1` - * [`0d5698a`](https://github.com/npm/npm/commit/0d5698ab132e376c7aec93ae357c274932116220) `osenv@0.1.1` - * [`2e84921`](https://github.com/npm/npm/commit/2e84921474e1ffb18de9fce4616e73171fa8046d) `abbrev@1.0.6` - * [`872fac9`](https://github.com/npm/npm/commit/872fac9d10c11607e4d0348c08a683b84e64d30b) `chmodr@0.1.1` - * [`01eb7f6`](https://github.com/npm/npm/commit/01eb7f60acba584346ad8aae846657899f3b6887) `chownr@0.0.2` - * [`294336f`](https://github.com/npm/npm/commit/294336f0f31c7b9fe31a50075ed750db6db134d1) `read@1.0.6` - * [`ebdf6a1`](https://github.com/npm/npm/commit/ebdf6a14d17962cdb7128402c53b452f91d44ca7) `graceful-fs@3.0.7` -* Switch license to [ISC](http://spdx.org/licenses/ISC.html#licenseText) from - [MIT](http://spdx.org/licenses/MIT.html#licenseText) - ([@isaacs](https://github.com/isaacs)): - * [`e5d237f`](https://github.com/npm/npm/commit/e5d237fc0f436dd2a89437ebf8a9632a2e35ccbe) `nopt@3.0.2` - * [`79fef14`](https://github.com/npm/npm/commit/79fef1421b78f044980f0d1bf0e97039b6992710) `rimraf@2.3.4` - * [`22527da`](https://github.com/npm/npm/commit/22527da4816e7c2746cdc0317c5fb4a85152d554) `minimatch@2.0.8` - * [`882ac87`](https://github.com/npm/npm/commit/882ac87a6c4123ca985d7ad4394ea5085e5b0ef5) `lru-cache@2.6.4` - * [`9d9d015`](https://github.com/npm/npm/commit/9d9d015a2e972f68664dda54fbb204db28b21ede) `npmlog@1.2.1` - -### v2.10.1 (2015-05-14): - -#### BUG FIXES & DOCUMENTATION TWEAKS - -* [`dc77520`](https://github.com/npm/npm/commit/dc7752013ffce13a3d3f13e518a0052c22fc1158) - When getting back a 404 from a request to a private registry that uses a - registry path that extends past the root - (`http://registry.enterprise.co/path/to/registry`), display the name of the - nonexistent package, rather than the first element in the registry API path. - Sorry, Artifactory users! ([@hayes](https://github.com/hayes)) -* [`f70dea9`](https://github.com/npm/npm/commit/f70dea9b4766f6eaa55012c3e8087e9cb04fd4ce) - Make clearer that `--registry` can be used on a per-publish basis to push a - package to a non-default registry. ([@mischkl](https://github.com/mischkl)) -* [`a3e26f5`](https://github.com/npm/npm/commit/a3e26f5b4465991a941a325468ab7725670d2a94) - Did you know that GitHub shortcuts can have commit-ishes included - (`org/repo#branch`)? They can! ([@iarna](https://github.com/iarna)) -* [`0e2c091`](https://github.com/npm/npm/commit/0e2c091a539b61fdc60423b6bbaaf30c24e4b1b8) - Some errors from `readPackage` were being swallowed, potentially leading to - invalid package trees on disk. ([@smikes](https://github.com/smikes)) - -#### DEPENDENCY UPDATES! STILL! MORE! AGAIN! - -* [`0b901ad`](https://github.com/npm/npm/commit/0b901ad0811d84dda6ca0755a9adc8d47825edd0) - `lru-cache@2.6.3`: Removed some cruft from the published package. - ([@isaacs](https://github.com/isaacs)) -* [`d713e0b`](https://github.com/npm/npm/commit/d713e0b14930c563e3fdb6ac6323bae2a8924652) - `mkdirp@0.5.1`: Made compliant with `standard`, dropped support for Node 0.6, - added (Travis) support for Node 0.12 and io.js. - ([@isaacs](https://github.com/isaacs)) -* [`a2d6578`](https://github.com/npm/npm/commit/a2d6578b6554c5c9d48fe2006751759f4da57520) - `glob@1.0.3`: Updated to use `tap@1`. ([@isaacs](https://github.com/isaacs)) -* [`64cd1a5`](https://github.com/npm/npm/commit/64cd1a570aaa5f24ccba190948ec9456297c97f5) - `fstream@ 1.0.6`: Made compliant with [`standard`](http://npm.im/standard) - (done by [@othiym23](https://github.com/othiym23), and then debugged and - fixed by [@iarna](https://github.com/iarna)), and license changed to ISC. - ([@othiym23](https://github.com/othiym23) / - [@iarna](https://github.com/iarna)) -* [`b527a7c`](https://github.com/npm/npm/commit/b527a7c2ba3c4002f443dd2c536ff4ff41a38b86) - `which@1.1.1`: Callers can pass in their own `PATH` instead of relying on - `process.env`. ([@isaacs](https://github.com/isaacs)) - -### v2.10.0 (2015-05-8): - -#### THE IMPLICATIONS ARE MORE PROFOUND THAN THEY APPEAR - -If you've done much development in The Enterprise®™, you know that keeping -track of software licenses is far more important than one might expect / hope / -fear. Tracking licenses is a hassle, and while many (if not most) of us have -(reluctantly) gotten around to setting a license to use by default with all our -new projects (even if it's just WTFPL), that's about as far as most of us think -about it. In big enterprise shops, ensuring that projects don't inadvertently -use software with unacceptably encumbered licenses is serious business, and -developers spend a surprising (and appalling) amount of time ensuring that -licensing is covered by writing automated checkers and other license auditing -tools. - -The Linux Foundation has been working on a machine-parseable syntax for license -expressions in the form of [SPDX](https://spdx.org/), an appropriately -enterprisey acronym. IP attorney and JavaScript culture hero [Kyle -Mitchell](http://kemitchell.com/) has put a considerable amount of effort into -bringing SPDX to JavaScript and Node. He's written -[`spdx.js`](https://github.com/kemitchell/spdx.js), a JavaScript SPDX -expression parser, and has integrated it into npm in a few different ways. - -For you as a user of npm, this means: - -* npm now has proper support for dual licensing in `package.json`, due to - SPDX's compound expression syntax. Run `npm help package.json` for details. -* npm will warn you if the `package.json` for your project is either missing a - `"license"` field, or if the value of that field isn't a valid SPDX - expression (pro tip: `"BSD"` becomes `"BSD-2-Clause"` in SPDX (unless you - really want one of its variants); `"MIT"` and `"ISC"` are fine as-is; the - [full list](https://github.com/shinnn/spdx-license-ids/blob/master/spdx-license-ids.json) - is its own package). -* `npm init` now demands that you use a valid SPDX expression when using it - interactively (pro tip: I mostly use `npm init -y`, having previously run - `npm config set init.license=MIT` / `npm config set init.author.email=foo` / - `npm config set init.author.name=me`). -* The documentation for `package.json` has been updated to tell you how to use - the `"license"` field properly with SPDX. - -In general, this shouldn't be a big deal for anybody other than people trying -to run their own automated license validators, but in the long run, if -everybody switches to this format, many people's lives will be made much -simpler. I think this is an important improvement for npm and am very thankful -to Kyle for taking the lead on this. Also, even if you think all of this is -completely stupid, just [choose a license](http://en.wikipedia.org/wiki/License-free_software) -anyway. Future you will thank past you someday, unless you are -[djb](http://cr.yp.to/), in which case you are djb, and more power to you. - -* [`8669f7d`](https://github.com/npm/npm/commit/8669f7d88c472ccdd60e140106ac43cca636a648) - [#8179](https://github.com/npm/npm/issues/8179) Document how to use SPDX in - `license` stanzas in `package.json`, including how to migrate from old busted - license declaration arrays to fancy new compound-license clauses. - ([@kemitchell](https://github.com/kemitchell)) -* [`98ad98c`](https://github.com/npm/npm/commit/98ad98cb11f3d3ba29a488ef1ab050b066d9c7f6) - [#8197](https://github.com/npm/npm/issues/8197) `init-package-json@1.5.0` - Ensure that packages bootstrapped with `npm init` use an SPDX-compliant - license expression. ([@kemitchell](https://github.com/kemitchell)) -* [`2ad3905`](https://github.com/npm/npm/commit/2ad3905e9139b0be2b22accf707b814469de813e) - [#8197](https://github.com/npm/npm/issues/8197) - `normalize-package-data@2.1.0`: Warn when a package is missing a license - declaration, or using a license expression that isn't valid SPDX. - ([@kemitchell](https://github.com/kemitchell)) -* [`127bb73`](https://github.com/npm/npm/commit/127bb73ccccc59a1267851c702d8ebd3f3a97e81) - [#8197](https://github.com/npm/npm/issues/8197) `tar@2.1.1`: Switch from - `BSD` to `ISC` for license, where the latter is valid SPDX. - ([@othiym23](https://github.com/othiym23)) -* [`e9a933a`](https://github.com/npm/npm/commit/e9a933a9148180d9d799f99f4154f5110ff2cace) - [#8197](https://github.com/npm/npm/issues/8197) `once@1.3.2`: Switch from - `BSD` to `ISC` for license, where the latter is valid SPDX. - ([@othiym23](https://github.com/othiym23)) -* [`412401f`](https://github.com/npm/npm/commit/412401fb6a19b18f3e02d97a24d4dafed650c186) - [#8197](https://github.com/npm/npm/issues/8197) `semver@4.3.4`: Switch from - `BSD` to `ISC` for license, where the latter is valid SPDX. - ([@othiym23](https://github.com/othiym23)) - -As a corollary to the previous changes, I've put some work into making `npm -install` spew out fewer pointless warnings about missing values in transitive -dependencies. From now on, npm will only warn you about missing READMEs, -license fields, and the like for top-level projects (including packages you -directly install into your application, but we may relax that eventually). - -Practically _nobody_ liked having those warnings displayed for child -dependencies, for the simple reason that there was very little that anybody -could _do_ about those warnings, unless they happened to be the maintainers of -those dependencies themselves. Since many, many projects don't have -SPDX-compliant licenses, the number of warnings reached a level where they ran -the risk of turning into a block of visual noise that developers (read: me, and -probably you) would ignore forever. - -So I fixed it. If you still want to see the messages about child dependencies, -they're still there, but have been pushed down a logging level to `info`. You -can display them by running `npm install -d` or `npm install --loglevel=info`. - -* [`eb18245`](https://github.com/npm/npm/commit/eb18245f55fb4cd62a36867744bcd1b7be0a33e2) - Only warn on normalization errors for top-level dependencies. Transitive - dependency validation warnings are logged at `info` level. - ([@othiym23](https://github.com/othiym23)) - -#### BUG FIXES - -* [`e40e809`](https://github.com/npm/npm/commit/e40e8095d2bc9fa4eb8f01aa22067e0068fa8a54) - `tap@1.0.1`: TAP: The Next Generation. Fix up many tests to they work - properly with the new major version of `node-tap`. Look at all the colors! - ([@isaacs](https://github.com/isaacs)) -* [`f9314e9`](https://github.com/npm/npm/commit/f9314e97d26532c0ef2b03e98f3ed300b7cd5026) - `nock@1.9.0`: Minor tweaks and bug fixes. ([@pgte](https://github.com/pgte)) -* [`45c2b1a`](https://github.com/npm/npm/commit/45c2b1aaa051733fa352074994ae6e569fd51e8b) - [#8187](https://github.com/npm/npm/issues/8187) `npm ls` wasn't properly - recognizing dependencies installed from GitHub repositories as git - dependencies, and so wasn't displaying them as such. - ([@zornme](https://github.com/zornme)) -* [`1ab57c3`](https://github.com/npm/npm/commit/1ab57c38116c0403965c92bf60121f0f251433e4) - In some cases, `npm help` was using something that looked like a regular - expression where a glob pattern should be used, and vice versa. - ([@isaacs](https://github.com/isaacs)) - -### v2.9.1 (2015-04-30): - -#### WOW! MORE GIT FIXES! YOU LOVE THOSE! - -The first item below is actually a pretty big deal, as it fixes (with a -one-word change and a much, much longer test case (thanks again, -[@iarna](https://github.com/iarna))) a regression that's been around for months -now. If you're depending on multiple branches of a single git dependency in a -single project, you probably want to check out `npm@2.9.1` and verify that -things (again?) work correctly in your project. - -* [`178a6ad`](https://github.com/npm/npm/commit/178a6ad540215820d16217465a5f220d8c95a313) - [#7202](https://github.com/npm/npm/issues/7202) When caching git - dependencies, do so by the whole URL, including the branch name, so that if a - single application depends on multiple branches from the same repository (in - practice, multiple version tags), every install is of the correct version, - instead of reusing whichever branch the caching process happened to check out - first. ([@iarna](https://github.com/iarna)) -* [`63b79cc`](https://github.com/npm/npm/commit/63b79ccde092a9cb3b1f34abe43e1d2ba69c0dbf) - [#8084](https://github.com/npm/npm/issues/8084) Ensure that Bitbucket, - GitHub, and Gitlab dependencies are installed the same way as non-hosted git - dependencies, fixing `npm install --link`. - ([@laiso](https://github.com/laiso)) - -#### DOCUMENTATION FIXES AND TWEAKS - -These changes may seem simple and small (except Lin's fix to the package name -restrictions, which was more an egregious oversight on our part), but cleaner -documentation makes npm significantly more pleasant to use. I really appreciate -all the typo fixes, clarifications, and formatting tweaks people send us, and -am delighted that we get so many of these pull requests. Thanks, everybody! - -* [`ca478dc`](https://github.com/npm/npm/commit/ca478dcaa29b8f07cd6fe515a3c4518166819291) - [#8137](https://github.com/npm/npm/issues/8137) Somehow, we had failed to - clearly document the full restrictions on package names. - [@linclark](https://github.com/linclark) has now fixed that, although we will - take with us to our graves the reasons why the maximum package name length is 214 - characters (well, OK, it was that that was the longest name in the registry - when we decided to put a cap on the name length). - ([@linclark](https://github.com/linclark)) -* [`b574076`](https://github.com/npm/npm/commit/b5740767c320c1eff3576a8d63952534a0fbb936) - [#8079](https://github.com/npm/npm/issues/8079) Make the `npm shrinkwrap` - documentation use code formatting for examples consistently. It would be - great to do this for more commands HINT HINT. - ([@RichardLitt](https://github.com/RichardLitt)) -* [`1ff636e`](https://github.com/npm/npm/commit/1ff636e2db3852a53e38c866fed7eafdacd307fc) - [#8105](https://github.com/npm/npm/issues/8105) Document that the global - `npmrc` goes in `$PREFIX/etc/npmrc`, instead of `$PREFIX/npmrc`. - ([@anttti](https://github.com/anttti)) -* [`c3f2f7c`](https://github.com/npm/npm/commit/c3f2f7c299342e1c1eccc55a976a63c607f51621) - [#8127](https://github.com/npm/npm/issues/8127) Document how to use `npm run - build` directly (hint: it's different from `npm build`!). - ([@mikemaccana](https://github.com/mikemaccana)) -* [`873e467`](https://github.com/npm/npm/commit/873e46757e1986761b15353f94580a071adcb383) - [#8069](https://github.com/npm/npm/issues/8069) Take the old, dead npm - mailing list address out of `package.json`. It seems that people don't have - much trouble figuring out how to report errors to npm. - ([@robertkowalski](https://github.com/robertkowalski)) - -#### ENROBUSTIFICATIONMENT - -* [`5abfc9c`](https://github.com/npm/npm/commit/5abfc9c9017da714e47a3aece750836b4f9af6a9) - [#7973](https://github.com/npm/npm/issues/7973) `npm run-script` completion - will only suggest run scripts, instead of including dependencies. If for some - reason you still wanted it to suggest dependencies, let us know. - ([@mantoni](https://github.com/mantoni)) -* [`4b564f0`](https://github.com/npm/npm/commit/4b564f0ce979dc74c09604f4d46fd25a2ee63804) - [#8081](https://github.com/npm/npm/issues/8081) Use `osenv` to parse the - environment's `PATH` in a platform-neutral way. - ([@watilde](https://github.com/watilde)) -* [`a4b6238`](https://github.com/npm/npm/commit/a4b62387b41848818973eeed056fd5c6570274f3) - [#8094](https://github.com/npm/npm/issues/8094) When we refactored the - configuration code to split out checking for IPv4 local addresses, we - inadvertently completely broke it by failing to return the values. In - addition, just the call to `os.getInterfaces()` could throw on systems where - querying the network configuration requires elevated privileges (e.g. Amazon - Lambda). Add the return, and trap errors so they don't cause npm to explode. - Thanks to [@mhart](https://github.com/mhart) for bringing this to our - attention! ([@othiym23](https://github.com/othiym23)) - -#### DEPENDENCY UPDATES WAIT FOR NO SOPHONT - -* [`000cd8b`](https://github.com/npm/npm/commit/000cd8b52104942ac3404f0ad0651d82f573da37) - `rimraf@2.3.3`: More informative assertions on argument validation failure. - ([@isaacs](https://github.com/isaacs)) -* [`530a2e3`](https://github.com/npm/npm/commit/530a2e369128270f3e098f0e9be061533003b0eb) - `lru-cache@2.6.2`: Revert to old key access-time behavior, as it was correct - all along. ([@isaacs](https://github.com/isaacs)) -* [`d88958c`](https://github.com/npm/npm/commit/d88958ca02ce81b027b9919aec539d0145875a59) - `minimatch@2.0.7`: Feature detection and test improvements. - ([@isaacs](https://github.com/isaacs)) -* [`3fa39e4`](https://github.com/npm/npm/commit/3fa39e4d492609d5d045033896dcd99f7b875329) - `nock@1.7.1` ([@pgte](https://github.com/pgte)) - -### v2.9.0 (2015-04-23): - -This week was kind of a breather to concentrate on fixing up the tests on the -`multi-stage` branch, and not mess with git issues for a little while. -Unfortunately, There are now enough severe git issues that we'll probably have -to spend another couple weeks tackling them. In the meantime, enjoy these two -small features. They're just enough to qualify for a semver-minor bump: - -#### NANOFEATURES - -* [`2799322`](https://github.com/npm/npm/commit/279932298ce5b589c5eea9439ac40b88b99c6a4a) - [#7426](https://github.com/npm/npm/issues/7426) Include local modules in `npm - outdated` and `npm update`. ([@ArnaudRinquin](https://github.com/ArnaudRinquin)) -* [`2114862`](https://github.com/npm/npm/commit/21148620fa03a582f4ec436bb16bd472664f2737) - [#8014](https://github.com/npm/npm/issues/8014) The prefix used before the - version on version tags is now configurable via `tag-version-prefix`. Be - careful with this one and read the docs before using it. - ([@kkragenbrink](https://github.com/kkragenbrink)) - -#### OTHER MINOR TWEAKS - -* [`18ce0ec`](https://github.com/npm/npm/commit/18ce0ecd2d94ad3af01e997f1396515892dd363c) - [#3032](https://github.com/npm/npm/issues/3032) `npm unpublish` will now use - the registry set in `package.json`, just like `npm publish`. This only - applies, for now, when unpublishing the entire package, as unpublishing a - single version requires the name be included on the command line and - therefore doesn't read from `package.json`. ([@watilde](https://github.com/watilde)) -* [`9ad2100`](https://github.com/npm/npm/commit/9ad210042242e51d52b2a8b633d8e59248f5faa4) - [#8008](https://github.com/npm/npm/issues/8008) Once again, when considering - what to install on `npm install`, include `devDependencies`. - ([@smikes](https://github.com/smikes)) -* [`5466260`](https://github.com/npm/npm/commit/546626059909dca1906454e820ca4e315c1795bd) - [#8003](https://github.com/npm/npm/issues/8003) Clarify the documentation - around scopes to make it easier to understand how they support private - packages. ([@smikes](https://github.com/smikes)) - -#### DEPENDENCIES WILL NOT STOP UNTIL YOU ARE VERY SLEEPY - -* [`faf65a7`](https://github.com/npm/npm/commit/faf65a7bbb2fad13216f64ed8f1243bafe743f97) - `init-package-json@1.4.2`: If there are multiple validation errors and - warnings, ensure they all get displayed (includes a rad new way of testing - `init-package-json` contributed by - [@michaelnisi](https://github.com/michaelnisi)). - ([@MisumiRize](https://github.com/MisumiRize)) -* [`7f10f38`](https://github.com/npm/npm/commit/7f10f38d29a8423d7cde8103fa7b64ac728da1e0) - `editor@1.0.0`: `1.0.0` is literally more than `0.1.0` (no change aside from - version number). ([@substack](https://github.com/substack)) -* [`4979af3`](https://github.com/npm/npm/commit/4979af3fcae5a3962383b7fdad3162381e62eefe) - [#6805](https://github.com/npm/npm/issues/6805) `npm-registry-client@6.3.3`: - Decode scoped package names sent by the registry so they look nicer. - ([@mmalecki](https://github.com/mmalecki)) - -### v2.8.4 (2015-04-16): - -This is the fourth release of npm this week, so it's mostly just landing a few -small outstanding PRs on dependencies and some tiny documentation tweaks. -`npm@2.8.3` is where the real action is. - -* [`ee2bd77`](https://github.com/npm/npm/commit/ee2bd77f3c64d38735d1d31028224a5c40422a9b) - [#7983](https://github.com/npm/npm/issues/7983) `tar@2.1.0`: Better error - reporting in corrupted tar files, and add support for the `fromBase` flag - (rescued from the dustbin of history by - [@deanmarano](https://github.com/deanmarano)). - ([@othiym23](https://github.com/othiym23)) -* [`d8eee6c`](https://github.com/npm/npm/commit/d8eee6cf9d2ff7aca68dfaed2de76824a3e0d9af) - `init-package-json@1.4.1`: Add support for a default author, and only add - scope to a package name once. ([@othiym23](https://github.com/othiym23)) -* [`4fc5d98`](https://github.com/npm/npm/commit/4fc5d98b785f601c60d4dc0a2c8674f0cccf6262) - `lru-cache@2.6.1`: Small tweaks to cache value aging and entry counting that - are irrelevant to npm. ([@isaacs](https://github.com/isaacs)) -* [`1fe5840`](https://github.com/npm/npm/commit/1fe584089f5bef133de5518aa26eaf6064be2bf7) - [#7946](https://github.com/npm/npm/issues/7946) Make `npm init` text - friendlier. ([@sandfox](https://github.com/sandfox)) - -### v2.8.3 (2015-04-15): - -#### TWO SMALL GIT TWEAKS - -This is the last of a set of releases intended to ensure npm's git support is -robust enough that we can stop working on it for a while. These fixes are -small, but prevent a common crasher and clear up one of the more confusing -error messages coming out of npm when working with repositories hosted on git. - -* [`387f889`](https://github.com/npm/npm/commit/387f889c0e8fb617d9cc9a42ed0a3ec49424ab5d) - [#7961](https://github.com/npm/npm/issues/7961) Ensure that hosted git SSH - URLs always have a valid protocol when stored in `resolved` fields in - `npm-shrinkwrap.json`. ([@othiym23](https://github.com/othiym23)) -* [`394c2f5`](https://github.com/npm/npm/commit/394c2f5a1227232c0baf42fbba1402aafe0d6ffb) - Switch the order in which hosted Git providers are checked to `git:`, - `git+https:`, then `git+ssh:` (from `git:`, `git+ssh:`, then `git+https:`) in - an effort to go from most to least likely to succeed, to make for less - confusing error message. ([@othiym23](https://github.com/othiym23)) - -### v2.8.2 (2015-04-14): - -#### PEACE IN OUR TIME - -npm has been having an issue with CouchDB's web server since the release -of io.js and Node.js 0.12.0 that has consumed a huge amount of my time -to little visible effect. Sam Mikes picked up the thread from me, and -after a [_lot_ of effort](https://github.com/npm/npm/issues/7699#issuecomment-93091111) -figured out that ultimately there are probably a couple problems with -the new HTTP Agent keep-alive handling in new versions of Node. In -addition, `npm-registry-client` was gratuitously sending a body along -with a GET request which was triggering the bugs. Sam removed about 10 bytes from -one file in `npm-registry-client`, and this problem, which has been bugging us for months, -completely went away. - -In conclusion, Sam Mikes is great, and anybody using a private registry -hosted on CouchDB should thank him for his hard work. Also, thanks to -the community at large for pitching in on this bug, which has been -around for months now. - -* [`431c3bf`](https://github.com/npm/npm/commit/431c3bf6cdec50f9f0c735f478cb2f3f337d3313) - [#7699](https://github.com/npm/npm/issues/7699) `npm-registry-client@6.3.2`: - Don't send body with HTTP GET requests when logging in. - ([@smikes](https://github.com/smikes)) - -### v2.8.1 (2015-04-12): - -#### CORRECTION: NPM'S GIT INTEGRATION IS DOING OKAY - -A [helpful bug report](https://github.com/npm/npm/issues/7872#issuecomment-91809553) -led to another round of changes to -[`hosted-git-info`](https://github.com/npm/hosted-git-info/commit/827163c74531b69985d1ede7abced4861e7b0cd4), -some additional test-writing, and a bunch of hands-on testing against actual -private repositories. While the complexity of npm's git dependency handling is -nearly fractal (because npm is very complex, and git is even more complex), -it's feeling way more solid than it has for a while. We think this is a -substantial improvement over what we had before, so give `npm@2.8.1` a shot if -you have particularly complex git use cases and -[let us know](https://github.com/npm/npm/issues/new) how it goes. - -(NOTE: These changes mostly affect cloning and saving references to packages -hosted in git repositories, and don't address some known issues with things -like lifecycle scripts not being run on npm dependencies. Work continues on -other issues that affect parity between git and npm registry packages.) - -* [`66377c6`](https://github.com/npm/npm/commit/66377c6ece2cf4d53d9a618b7d9824e1452bc293) - [#7872](https://github.com/npm/npm/issues/7872) `hosted-git-info@2.1.2`: Pass - through credentials embedded in SSH and HTTPs git URLs. - ([@othiym23](https://github.com/othiym23)) -* [`15efe12`](https://github.com/npm/npm/commit/15efe124753257728a0ddc64074fa5a4b9c2eb30) - [#7872](https://github.com/npm/npm/issues/7872) Use the new version of - `hosted-git-info` to pass along credentials embedded in git URLs. Test it. - Test it a lot. ([@othiym23](https://github.com/othiym23)) - -#### SCOPED DEPENDENCIES AND PEER DEPENDENCIES: NOT QUITE REESE'S - -Big thanks to [@ewie](https://github.com/ewie) for identifying an issue with -how npm was handling `peerDependencies` that were implicitly installed from the -`package.json` files of scoped dependencies. This -[will be a moot point](https://github.com/npm/npm/issues/6565#issuecomment-74971689) -with the release of `npm@3`, but until then, it's important that -`peerDependency` auto-installation work as expected. - -* [`b027319`](https://github.com/npm/npm/commit/b0273190c71eba14395ddfdd1d9f7ba625297523) - [#7920](https://github.com/npm/npm/issues/7920) Scoped packages with - `peerDependencies` were installing the `peerDependencies` into the wrong - directory. ([@ewie](https://github.com/ewie)) -* [`649e31a`](https://github.com/npm/npm/commit/649e31ae4fd02568bae5dc6b4ea783431ce3d63e) - [#7920](https://github.com/npm/npm/issues/7920) Test `peerDependency` - installs involving scoped packages using `npm-package-arg` instead of simple - path tests, for consistency. ([@othiym23](https://github.com/othiym23)) - -#### MAKING IT EASIER TO WRITE NPM TESTS, VERSION 0.0.1 - -[@iarna](https://github.com/iarna) and I -([@othiym23](https://github.com/othiym23)) have been discussing a -[candidate plan](https://github.com/npm/npm/wiki/rewriting-npm's-tests:-a-plan-maybe) -for improving npm's test suite, with the goal of making it easier for new -contributors to get involved with npm by reducing the learning curve -necessary to be able to write good tests for proposed changes. This is the -first substantial piece of that effort. Here's what the commit message for -[`ed7e249`](https://github.com/npm/npm/commit/ed7e249d50444312cd266942ce3b89e1ca049bdf) -had to say about this work: - -> It's too difficult for npm contributors to figure out what the conventional -> style is for tests. Part of the problem is that the documentation in -> CONTRIBUTING.md is inadequate, but another important factor is that the tests -> themselves are written in a variety of styles. One of the most notable -> examples of this is the fact that many tests use fixture directories to store -> precooked test scenarios and package.json files. -> -> This had some negative consequences: -> -> * tests weren't idempotent -> * subtle dependencies between tests existed -> * new tests get written in this deprecated style because it's not -> obvious that the style is out of favor -> * it's hard to figure out why a lot of those directories existed, -> because they served a variety of purposes, so it was difficult to -> tell when it was safe to remove them -> -> All in all, the fixture directories were a major source of technical debt, and -> cleaning them up, while time-consuming, makes the whole test suite much more -> approachable, and makes it more likely that new tests written by outside -> contributors will follow a conventional style. To support that, all of the -> tests touched by this changed were cleaned up to pass the `standard` style -> checker. - -And here's a little extra context from a comment I left on [#7929](https://github.com/npm/npm/issues/7929): - -> One of the other things that encouraged me was looking at this -> [presentation on technical debt](http://www.slideshare.net/nnja/pycon-2015-technical-debt-the-monster-in-your-closet) -> from Pycon 2015, especially slide 53, which I interpreted in terms of -> difficulty getting new contributors to submit patches to an OSS project like -> npm. npm has a long ways to go, but I feel good about this change. - -* [`ed7e249`](https://github.com/npm/npm/commit/ed7e249d50444312cd266942ce3b89e1ca049bdf) - [#7929](https://github.com/npm/npm/issues/7929) Eliminate fixture directories - from `test/tap`, leaving each test self-contained. - ([@othiym23](https://github.com/othiym23)) -* [`4928d30`](https://github.com/npm/npm/commit/4928d30140821c63e03fffed73f8d88ebdc43710) - [#7929](https://github.com/npm/npm/issues/7929) Move fixture files from - `test/tap/*` to `test/fixtures`. ([@othiym23](https://github.com/othiym23)) -* [`e925deb`](https://github.com/npm/npm/commit/e925debca91092a814c1a00933babc3a8cf975be) - [#7929](https://github.com/npm/npm/issues/7929) Tweak the run scripts to stop - slaughtering the CPU on doc rebuild. - ([@othiym23](https://github.com/othiym23)) -* [`65bf7cf`](https://github.com/npm/npm/commit/65bf7cffaf91c426b676c47529eee796f8b8b75c) - [#7923](https://github.com/npm/npm/issues/7923) Use an alias of scripts and - run-scripts in `npm run test-all` ([@watilde](https://github.com/watilde)) -* [`756a3fb`](https://github.com/npm/npm/commit/756a3fbb852a2469afe706635ed88d22c37743e5) - [#7923](https://github.com/npm/npm/issues/7923) Sync timeout time of `npm - run-script test-all` to be the same as `test` and `tap` scripts. - ([@watilde](https://github.com/watilde)) -* [`8299b5f`](https://github.com/npm/npm/commit/8299b5fb6373354a7fbaab6f333863758812ae90) - Set a timeout for tap tests for `npm run-script test-all`. - ([@othiym23](https://github.com/othiym23)) - -#### THE EVER-BEATING DRUM OF DEPENDENCY UPDATES - -* [`d90d0b9`](https://github.com/npm/npm/commit/d90d0b992acbf62fd5d68debf9d1dbd6cfa20804) - [#7924](https://github.com/npm/npm/issues/7924) Remove `child-process-close`, - as it was included for Node 0.6 compatibility, and npm no longer supports - 0.6. ([@robertkowalski](https://github.com/robertkowalski)) -* [`16427c1`](https://github.com/npm/npm/commit/16427c1f3ea3d71ee753c62eb4c2663c7b32b84f) - `lru-cache@2.5.2`: More accurate updating of expiry times when `maxAge` is - set. ([@isaacs](https://github.com/isaacs)) -* [`03cce83`](https://github.com/npm/npm/commit/03cce83b64344a9e0fe036dce214f4d68cfcc9e7) - `nock@1.6.0`: Mocked network error handling. - ([@pgte](https://github.com/pgte)) -* [`f93b1f0`](https://github.com/npm/npm/commit/f93b1f0b7eb5d1b8a7967e837bbd756db1091d00) - `glob@5.0.5`: Use `path-is-absolute` polyfill, allowing newer Node.js and - io.js versions to use `path.isAbsolute()`. - ([@sindresorhus](https://github.com/sindresorhus)) -* [`a70d694`](https://github.com/npm/npm/commit/a70d69495a6e96997e64855d9e749d943ee6d64f) - `request@2.55.0`: Bug fixes and simplification. - ([@simov](https://github.com/simov)) -* [`2aecc6f`](https://github.com/npm/npm/commit/2aecc6f4083526feeb14615b4e5484edc66175b5) - `columnify@1.5.1`: Switch to using babel from 6to5. - ([@timoxley](https://github.com/timoxley)) - -### v2.8.0 (2015-04-09): - -#### WE WILL NEVER BE DONE FIXING NPM'S GIT SUPPORT - -If you look at [the last release's release -notes](https://github.com/npm/npm/blob/master/CHANGELOG.md#git-mean-git-tuff-git-all-the-way-away-from-my-stuff), -you will note that they confidently assert that it's perfectly OK to force all -GitHub URLs through the same `git:` -> `git+ssh:` fallback flow for cloning. It -turns out that many users depend on `git+https:` URLs in their build -environments because they use GitHub auth tokens instead of SSH keys. Also, in -some cases you just want to be able to explicitly say how a given dependency -should be cloned from GitHub. - -Because of the way we resolved the inconsistency in GitHub shorthand handling -[before](https://github.com/npm/npm/blob/master/CHANGELOG.md#bug-fixes-1), this -turned out to be difficult to work around. So instead of hacking around it, we -completely redid how git is handled within npm and its attendant packages. -Again. This time, we changed things so that `normalize-package-data` and -`read-package-json` leave more of the git logic to npm itself, which makes -handling shorthand syntax consistently much easier, and also allows users to -resume using explicit, fully-qualified git URLs without npm messing with them. - -Here's a summary of what's changed: - -* Instead of converting the GitHub shorthand syntax to a `git+ssh:`, `git:`, or - `git+https:` URL and saving that, save the shorthand itself to - `package.json`. -* If presented with shortcuts, try cloning via the git protocol, SSH, and HTTPS - (in that order). -* No longer prompt for credentials -- it didn't work right with the spinner, - and wasn't guaranteed to work anyway. We may experiment with doing this a - better way in the future. Users can override this by setting `GIT_ASKPASS` in - their environment if they want to experiment with interactive cloning, but - should also set `--no-spin` on the npm command line (or run `npm config set - spin=false`). -* **EXPERIMENTAL FEATURE**: Add support for `github:`, `gist:`, `bitbucket:`, - and `gitlab:` shorthand prefixes. GitHub shortcuts will continue to be - normalized to `org/repo` instead of being saved as `github:org/repo`, but - `gitlab:`, `gist:`, and `bitbucket:` prefixes will be used on the command - line and from `package.json`. BE CAREFUL WITH THIS. `package.json` files - published with the new shorthand syntax can _only_ be read by `npm@2.8.0` and - later, and this feature is mostly meant for playing around with it. If you - want to save git dependencies in a form that older versions of npm can read, - use `--save-exact`, which will save the git URL and resolved commit hash of - the head of the branch in a manner similar to the way that `--save-exact` - pins versions for registry dependencies. This is documented (so check `npm - help install` for details), but we're not going to make a lot of noise about - it until it has a chance to bake in a little more. - -It is [@othiym23](https://github.com/othiym23)'s sincere hope that this will -resolve all of the inconsistencies users were seeing with GitHub and git-hosted -packages, but given the level of change here, that may just be a fond wish. -Extra testing of this change is requested. - -* [`6b0f588`](https://github.com/npm/npm/commit/6b0f58877f37df9904490ffbaaad33862bd36dce) - [#7867](https://github.com/npm/npm/issues/7867) Use git shorthand and git - URLs as presented by user. Support new `hosted-git-info` shortcut syntax. - Save shorthand in `package.json`. Try cloning via `git:`, `git+ssh:`, and - `git+https:`, in that order, when supported by the underlying hosting - provider. ([@othiym23](https://github.com/othiym23)) -* [`75d4267`](https://github.com/npm/npm/commit/75d426787869d54ca7400408f562f971b34649ef) - [#7867](https://github.com/npm/npm/issues/7867) Document new GitHub, GitHub - gist, Bitbucket, and GitLab shorthand syntax. - ([@othiym23](https://github.com/othiym23)) -* [`7d92c75`](https://github.com/npm/npm/commit/7d92c7592998d90ec883fa989ca74f04ec1b93de) - [#7867](https://github.com/npm/npm/issues/7867) When `--save-exact` is used - with git shorthand or URLs, save the fully-resolved URL, with branch name - resolved to the exact hash for the commit checked out. - ([@othiym23](https://github.com/othiym23)) -* [`9220e59`](https://github.com/npm/npm/commit/9220e59f8def8c82c6d331a39ba29ad4c44e3a9b) - [#7867](https://github.com/npm/npm/issues/7867) Ensure that non-prefixed and - non-normalized GitHub shortcuts are saved to `package.json`. - ([@othiym23](https://github.com/othiym23)) -* [`dd398e9`](https://github.com/npm/npm/commit/dd398e98a8eba27eeba84378200da3d078fdf980) - [#7867](https://github.com/npm/npm/issues/7867) `hosted-git-info@2.1.1`: - Ensure that `gist:` shorthand survives being round-tripped through - `package.json`. ([@othiym23](https://github.com/othiym23)) -* [`33d1420`](https://github.com/npm/npm/commit/33d1420bf2f629332fceb2ac7e174e63ac48f96a) - [#7867](https://github.com/npm/npm/issues/7867) `hosted-git-info@2.1.0`: Add - support for auth embedded directly in git URLs. - ([@othiym23](https://github.com/othiym23)) -* [`23a1d5a`](https://github.com/npm/npm/commit/23a1d5a540e8db27f5cd0245de7c3694e2bddad1) - [#7867](https://github.com/npm/npm/issues/7867) `hosted-git-info@2.0.2`: Make - it possible to determine in which form a hosted git URL was passed. - ([@iarna](https://github.com/iarna)) -* [`eaf75ac`](https://github.com/npm/npm/commit/eaf75acb718611ad5cfb360084ec86938d9c66c5) - [#7867](https://github.com/npm/npm/issues/7867) - `normalize-package-data@2.0.0`: Normalize GitHub specifiers so they pass - through shortcut syntax and preserve explicit URLs. - ([@iarna](https://github.com/iarna)) -* [`95e0535`](https://github.com/npm/npm/commit/95e0535e365e0aca49c634dd2061a0369b0475f1) - [#7867](https://github.com/npm/npm/issues/7867) `npm-package-arg@4.0.0`: Add - git URL and shortcut to hosted git spec and use `hosted-git-info@2.0.2`. - ([@iarna](https://github.com/iarna)) -* [`a808926`](https://github.com/npm/npm/commit/a8089268d5f3d57f42dbaba02ff6437da5121191) - [#7867](https://github.com/npm/npm/issues/7867) - `realize-package-specifier@3.0.0`: Use `npm-package-arg@4.0.0` and test - shortcut specifier behavior. ([@iarna](https://github.com/iarna)) -* [`6dd1e03`](https://github.com/npm/npm/commit/6dd1e039bddf8cf5383343f91d84bc5d78acd083) - [#7867](https://github.com/npm/npm/issues/7867) `init-package-json@1.4.0`: - Allow dependency on `read-package-json@2.0.0`. - ([@iarna](https://github.com/iarna)) -* [`63254bb`](https://github.com/npm/npm/commit/63254bb6358f66752aca6aa1a275271b3ae03f7c) - [#7867](https://github.com/npm/npm/issues/7867) `read-installed@4.0.0`: Use - `read-package-json@2.0.0`. ([@iarna](https://github.com/iarna)) -* [`254b887`](https://github.com/npm/npm/commit/254b8871f5a173bb464cc5b0ace460c7878b8097) - [#7867](https://github.com/npm/npm/issues/7867) `read-package-json@2.0.0`: - Use `normalize-package-data@2.0.0`. ([@iarna](https://github.com/iarna)) -* [`0b9f8be`](https://github.com/npm/npm/commit/0b9f8be62fe5252abe54d49e36a696f4816c2eca) - [#7867](https://github.com/npm/npm/issues/7867) `npm-registry-client@6.3.0`: - Mark compatibility with `normalize-package-data@2.0.0` and - `npm-package-arg@4.0.0`. ([@iarna](https://github.com/iarna)) -* [`f40ecaa`](https://github.com/npm/npm/commit/f40ecaad68f77abc50eb6f5b224e31dec3d250fc) - [#7867](https://github.com/npm/npm/issues/7867) Extract a common method to - use when cloning git repos for testing. - ([@othiym23](https://github.com/othiym23)) - -#### TEST FIXES FOR NODE 0.8 - -npm continues to [get closer](https://github.com/npm/npm/issues/7842) to being -completely green on Travis for Node 0.8. - -* [`26d36e9`](https://github.com/npm/npm/commit/26d36e9cf0eca69fe1863d2ea536c28555b9e8de) - [#7842](https://github.com/npm/npm/issues/7842) When spawning child - processes, map exit code 127 to ENOENT so Node 0.8 handles child process - failures the same as later versions. - ([@SonicHedgehog](https://github.com/SonicHedgehog)) -* [`54cd895`](https://github.com/npm/npm/commit/54cd8956ea783f96749e46597d8c2cb9397c5d5f) - [#7842](https://github.com/npm/npm/issues/7842) Node 0.8 requires -e with -p - when evaluating snippets; fix test. - ([@SonicHedgehog](https://github.com/SonicHedgehog)) - -#### SMALL FIX AND DOC TWEAK - -* [`20e9003`](https://github.com/npm/npm/commit/20e90031b847e9f7c7168f3dad8b1e526f9a2586) - `tar@2.0.1`: Fix regression where relative symbolic links within an - extraction root that pointed within an extraction root would get normalized - to absolute symbolic links. ([@isaacs](https://github.com/isaacs)) -* [`2ef8898`](https://github.com/npm/npm/commit/2ef88989c41bee1578570bb2172c90ede129dbd1) - [#7879](https://github.com/npm/npm/issues/7879) Better document that `npm - publish --tag=foo` will not set `latest` to that version. - ([@linclark](https://github.com/linclark)) - -### v2.7.6 (2015-04-02): - -#### GIT MEAN, GIT TUFF, GIT ALL THE WAY AWAY FROM MY STUFF - -Part of the reason that we're reluctant to take patches to how npm deals with -git dependencies is that every time we touch the git support, something breaks. -The last few releases are a case in point. `npm@2.7.4` completely broke -installing private modules from GitHub, and `npm@2.7.5` fixed them at the cost -of logging a misleading error message that caused many people to believe that -their dependencies hadn't been successfully installed when they actually had -been. - -This all started from a desire to ensure that GitHub shortcut syntax is being -handled correctly. The correct behavior is for npm to try to clone all -dependencies on GitHub (whether they're specified with the GitHub -`organization/repository` shortcut syntax or not) via the plain `git:` protocol -first, and to fall back to using `git+ssh:` if `git:` doesn't work. Previously, -sometimes npm would use `git:` and `git+ssh:` in some cases (most notably when -using GitHub shortcut syntax on the command line), and use `git+https:` in -others (when the GitHub shortcut syntax was present in `package.json`). This -led to subtle and hard-to-understand inconsistencies, and we're glad that as of -`npm@2.7.6`, we've finally gotten things to where they were before we started, -only slightly more consistent overall. - -We are now going to go back to our policy of being extremely reluctant to touch -the code that handles Git dependencies. - -* [`b747593`](https://github.com/npm/npm/commit/b7475936f473f029e6a027ba1b16277523747d0b) - [#7630](https://github.com/npm/npm/issues/7630) Don't automatically log all - git failures as errors. `maybeGithub` needs to be able to fail without - logging to support its fallback logic. - ([@othiym23](https://github.com/othiym23)) -* [`cd67a0d`](https://github.com/npm/npm/commit/cd67a0db07891d20871822696c26692c8a84866a) - [#7829](https://github.com/npm/npm/issues/7829) When fetching a git remote - URL, handle failures gracefully (without assuming standard output exists). - ([@othiym23](https://github.com/othiym23)) -* [`637c7d1`](https://github.com/npm/npm/commit/637c7d1411fe07f409cf91f2e65fd70685cb253c) - [#7829](https://github.com/npm/npm/issues/7829) When fetching a git remote - URL, handle failures gracefully (without assuming standard _error_ exists). - ([@othiym23](https://github.com/othiym23)) - -#### OTHER SIGNIFICANT FIXES - -* [`78005eb`](https://github.com/npm/npm/commit/78005ebb6f4103c20f077669c3929b7ea46a4c0d) - [#7743](https://github.com/npm/npm/issues/7743) Always quote arguments passed - to `npm run-script`. This allows build systems and the like to safely escape - glob patterns passed as arguments to `run-scripts` with `npm run-script - -``` - -This bundle can be used with different module systems; it creates global `Ajv` if no module system is found. - -The browser bundle is available on [cdnjs](https://cdnjs.com/libraries/ajv). - -Ajv is tested with these browsers: - -[![Sauce Test Status](https://saucelabs.com/browser-matrix/epoberezkin.svg)](https://saucelabs.com/u/epoberezkin) - -__Please note__: some frameworks, e.g. Dojo, may redefine global require in such way that is not compatible with CommonJS module format. In such case Ajv bundle has to be loaded before the framework and then you can use global Ajv (see issue [#234](https://github.com/ajv-validator/ajv/issues/234)). - - -### Ajv and Content Security Policies (CSP) - -If you're using Ajv to compile a schema (the typical use) in a browser document that is loaded with a Content Security Policy (CSP), that policy will require a `script-src` directive that includes the value `'unsafe-eval'`. -:warning: NOTE, however, that `unsafe-eval` is NOT recommended in a secure CSP[[1]](https://developer.chrome.com/extensions/contentSecurityPolicy#relaxing-eval), as it has the potential to open the document to cross-site scripting (XSS) attacks. - -In order to make use of Ajv without easing your CSP, you can [pre-compile a schema using the CLI](https://github.com/ajv-validator/ajv-cli#compile-schemas). This will transpile the schema JSON into a JavaScript file that exports a `validate` function that works simlarly to a schema compiled at runtime. - -Note that pre-compilation of schemas is performed using [ajv-pack](https://github.com/ajv-validator/ajv-pack) and there are [some limitations to the schema features it can compile](https://github.com/ajv-validator/ajv-pack#limitations). A successfully pre-compiled schema is equivalent to the same schema compiled at runtime. - - -## Command line interface - -CLI is available as a separate npm package [ajv-cli](https://github.com/ajv-validator/ajv-cli). It supports: - -- compiling JSON Schemas to test their validity -- BETA: generating standalone module exporting a validation function to be used without Ajv (using [ajv-pack](https://github.com/ajv-validator/ajv-pack)) -- migrate schemas to draft-07 (using [json-schema-migrate](https://github.com/epoberezkin/json-schema-migrate)) -- validating data file(s) against JSON Schema -- testing expected validity of data against JSON Schema -- referenced schemas -- custom meta-schemas -- files in JSON, JSON5, YAML, and JavaScript format -- all Ajv options -- reporting changes in data after validation in [JSON-patch](https://tools.ietf.org/html/rfc6902) format - - -## Validation keywords - -Ajv supports all validation keywords from draft-07 of JSON Schema standard: - -- [type](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#type) -- [for numbers](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#keywords-for-numbers) - maximum, minimum, exclusiveMaximum, exclusiveMinimum, multipleOf -- [for strings](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#keywords-for-strings) - maxLength, minLength, pattern, format -- [for arrays](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#keywords-for-arrays) - maxItems, minItems, uniqueItems, items, additionalItems, [contains](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#contains) -- [for objects](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#keywords-for-objects) - maxProperties, minProperties, required, properties, patternProperties, additionalProperties, dependencies, [propertyNames](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#propertynames) -- [for all types](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#keywords-for-all-types) - enum, [const](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#const) -- [compound keywords](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#compound-keywords) - not, oneOf, anyOf, allOf, [if/then/else](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#ifthenelse) - -With [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package Ajv also supports validation keywords from [JSON Schema extension proposals](https://github.com/json-schema/json-schema/wiki/v5-Proposals) for JSON Schema standard: - -- [patternRequired](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#patternrequired-proposed) - like `required` but with patterns that some property should match. -- [formatMaximum, formatMinimum, formatExclusiveMaximum, formatExclusiveMinimum](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#formatmaximum--formatminimum-and-exclusiveformatmaximum--exclusiveformatminimum-proposed) - setting limits for date, time, etc. - -See [JSON Schema validation keywords](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md) for more details. - - -## Annotation keywords - -JSON Schema specification defines several annotation keywords that describe schema itself but do not perform any validation. - -- `title` and `description`: information about the data represented by that schema -- `$comment` (NEW in draft-07): information for developers. With option `$comment` Ajv logs or passes the comment string to the user-supplied function. See [Options](#options). -- `default`: a default value of the data instance, see [Assigning defaults](#assigning-defaults). -- `examples` (NEW in draft-06): an array of data instances. Ajv does not check the validity of these instances against the schema. -- `readOnly` and `writeOnly` (NEW in draft-07): marks data-instance as read-only or write-only in relation to the source of the data (database, api, etc.). -- `contentEncoding`: [RFC 2045](https://tools.ietf.org/html/rfc2045#section-6.1 ), e.g., "base64". -- `contentMediaType`: [RFC 2046](https://tools.ietf.org/html/rfc2046), e.g., "image/png". - -__Please note__: Ajv does not implement validation of the keywords `examples`, `contentEncoding` and `contentMediaType` but it reserves them. If you want to create a plugin that implements some of them, it should remove these keywords from the instance. - - -## Formats - -Ajv implements formats defined by JSON Schema specification and several other formats. It is recommended NOT to use "format" keyword implementations with untrusted data, as they use potentially unsafe regular expressions - see [ReDoS attack](#redos-attack). - -__Please note__: if you need to use "format" keyword to validate untrusted data, you MUST assess their suitability and safety for your validation scenarios. - -The following formats are implemented for string validation with "format" keyword: - -- _date_: full-date according to [RFC3339](http://tools.ietf.org/html/rfc3339#section-5.6). -- _time_: time with optional time-zone. -- _date-time_: date-time from the same source (time-zone is mandatory). `date`, `time` and `date-time` validate ranges in `full` mode and only regexp in `fast` mode (see [options](#options)). -- _uri_: full URI. -- _uri-reference_: URI reference, including full and relative URIs. -- _uri-template_: URI template according to [RFC6570](https://tools.ietf.org/html/rfc6570) -- _url_ (deprecated): [URL record](https://url.spec.whatwg.org/#concept-url). -- _email_: email address. -- _hostname_: host name according to [RFC1034](http://tools.ietf.org/html/rfc1034#section-3.5). -- _ipv4_: IP address v4. -- _ipv6_: IP address v6. -- _regex_: tests whether a string is a valid regular expression by passing it to RegExp constructor. -- _uuid_: Universally Unique IDentifier according to [RFC4122](http://tools.ietf.org/html/rfc4122). -- _json-pointer_: JSON-pointer according to [RFC6901](https://tools.ietf.org/html/rfc6901). -- _relative-json-pointer_: relative JSON-pointer according to [this draft](http://tools.ietf.org/html/draft-luff-relative-json-pointer-00). - -__Please note__: JSON Schema draft-07 also defines formats `iri`, `iri-reference`, `idn-hostname` and `idn-email` for URLs, hostnames and emails with international characters. Ajv does not implement these formats. If you create Ajv plugin that implements them please make a PR to mention this plugin here. - -There are two modes of format validation: `fast` and `full`. This mode affects formats `date`, `time`, `date-time`, `uri`, `uri-reference`, and `email`. See [Options](#options) for details. - -You can add additional formats and replace any of the formats above using [addFormat](#api-addformat) method. - -The option `unknownFormats` allows changing the default behaviour when an unknown format is encountered. In this case Ajv can either fail schema compilation (default) or ignore it (default in versions before 5.0.0). You also can allow specific format(s) that will be ignored. See [Options](#options) for details. - -You can find regular expressions used for format validation and the sources that were used in [formats.js](https://github.com/ajv-validator/ajv/blob/master/lib/compile/formats.js). - - -## Combining schemas with $ref - -You can structure your validation logic across multiple schema files and have schemas reference each other using `$ref` keyword. - -Example: - -```javascript -var schema = { - "$id": "http://example.com/schemas/schema.json", - "type": "object", - "properties": { - "foo": { "$ref": "defs.json#/definitions/int" }, - "bar": { "$ref": "defs.json#/definitions/str" } - } -}; - -var defsSchema = { - "$id": "http://example.com/schemas/defs.json", - "definitions": { - "int": { "type": "integer" }, - "str": { "type": "string" } - } -}; -``` - -Now to compile your schema you can either pass all schemas to Ajv instance: - -```javascript -var ajv = new Ajv({schemas: [schema, defsSchema]}); -var validate = ajv.getSchema('http://example.com/schemas/schema.json'); -``` - -or use `addSchema` method: - -```javascript -var ajv = new Ajv; -var validate = ajv.addSchema(defsSchema) - .compile(schema); -``` - -See [Options](#options) and [addSchema](#api) method. - -__Please note__: -- `$ref` is resolved as the uri-reference using schema $id as the base URI (see the example). -- References can be recursive (and mutually recursive) to implement the schemas for different data structures (such as linked lists, trees, graphs, etc.). -- You don't have to host your schema files at the URIs that you use as schema $id. These URIs are only used to identify the schemas, and according to JSON Schema specification validators should not expect to be able to download the schemas from these URIs. -- The actual location of the schema file in the file system is not used. -- You can pass the identifier of the schema as the second parameter of `addSchema` method or as a property name in `schemas` option. This identifier can be used instead of (or in addition to) schema $id. -- You cannot have the same $id (or the schema identifier) used for more than one schema - the exception will be thrown. -- You can implement dynamic resolution of the referenced schemas using `compileAsync` method. In this way you can store schemas in any system (files, web, database, etc.) and reference them without explicitly adding to Ajv instance. See [Asynchronous schema compilation](#asynchronous-schema-compilation). - - -## $data reference - -With `$data` option you can use values from the validated data as the values for the schema keywords. See [proposal](https://github.com/json-schema-org/json-schema-spec/issues/51) for more information about how it works. - -`$data` reference is supported in the keywords: const, enum, format, maximum/minimum, exclusiveMaximum / exclusiveMinimum, maxLength / minLength, maxItems / minItems, maxProperties / minProperties, formatMaximum / formatMinimum, formatExclusiveMaximum / formatExclusiveMinimum, multipleOf, pattern, required, uniqueItems. - -The value of "$data" should be a [JSON-pointer](https://tools.ietf.org/html/rfc6901) to the data (the root is always the top level data object, even if the $data reference is inside a referenced subschema) or a [relative JSON-pointer](http://tools.ietf.org/html/draft-luff-relative-json-pointer-00) (it is relative to the current point in data; if the $data reference is inside a referenced subschema it cannot point to the data outside of the root level for this subschema). - -Examples. - -This schema requires that the value in property `smaller` is less or equal than the value in the property larger: - -```javascript -var ajv = new Ajv({$data: true}); - -var schema = { - "properties": { - "smaller": { - "type": "number", - "maximum": { "$data": "1/larger" } - }, - "larger": { "type": "number" } - } -}; - -var validData = { - smaller: 5, - larger: 7 -}; - -ajv.validate(schema, validData); // true -``` - -This schema requires that the properties have the same format as their field names: - -```javascript -var schema = { - "additionalProperties": { - "type": "string", - "format": { "$data": "0#" } - } -}; - -var validData = { - 'date-time': '1963-06-19T08:30:06.283185Z', - email: 'joe.bloggs@example.com' -} -``` - -`$data` reference is resolved safely - it won't throw even if some property is undefined. If `$data` resolves to `undefined` the validation succeeds (with the exclusion of `const` keyword). If `$data` resolves to incorrect type (e.g. not "number" for maximum keyword) the validation fails. - - -## $merge and $patch keywords - -With the package [ajv-merge-patch](https://github.com/ajv-validator/ajv-merge-patch) you can use the keywords `$merge` and `$patch` that allow extending JSON Schemas with patches using formats [JSON Merge Patch (RFC 7396)](https://tools.ietf.org/html/rfc7396) and [JSON Patch (RFC 6902)](https://tools.ietf.org/html/rfc6902). - -To add keywords `$merge` and `$patch` to Ajv instance use this code: - -```javascript -require('ajv-merge-patch')(ajv); -``` - -Examples. - -Using `$merge`: - -```json -{ - "$merge": { - "source": { - "type": "object", - "properties": { "p": { "type": "string" } }, - "additionalProperties": false - }, - "with": { - "properties": { "q": { "type": "number" } } - } - } -} -``` - -Using `$patch`: - -```json -{ - "$patch": { - "source": { - "type": "object", - "properties": { "p": { "type": "string" } }, - "additionalProperties": false - }, - "with": [ - { "op": "add", "path": "/properties/q", "value": { "type": "number" } } - ] - } -} -``` - -The schemas above are equivalent to this schema: - -```json -{ - "type": "object", - "properties": { - "p": { "type": "string" }, - "q": { "type": "number" } - }, - "additionalProperties": false -} -``` - -The properties `source` and `with` in the keywords `$merge` and `$patch` can use absolute or relative `$ref` to point to other schemas previously added to the Ajv instance or to the fragments of the current schema. - -See the package [ajv-merge-patch](https://github.com/ajv-validator/ajv-merge-patch) for more information. - - -## Defining custom keywords - -The advantages of using custom keywords are: - -- allow creating validation scenarios that cannot be expressed using JSON Schema -- simplify your schemas -- help bringing a bigger part of the validation logic to your schemas -- make your schemas more expressive, less verbose and closer to your application domain -- implement custom data processors that modify your data (`modifying` option MUST be used in keyword definition) and/or create side effects while the data is being validated - -If a keyword is used only for side-effects and its validation result is pre-defined, use option `valid: true/false` in keyword definition to simplify both generated code (no error handling in case of `valid: true`) and your keyword functions (no need to return any validation result). - -The concerns you have to be aware of when extending JSON Schema standard with custom keywords are the portability and understanding of your schemas. You will have to support these custom keywords on other platforms and to properly document these keywords so that everybody can understand them in your schemas. - -You can define custom keywords with [addKeyword](#api-addkeyword) method. Keywords are defined on the `ajv` instance level - new instances will not have previously defined keywords. - -Ajv allows defining keywords with: -- validation function -- compilation function -- macro function -- inline compilation function that should return code (as string) that will be inlined in the currently compiled schema. - -Example. `range` and `exclusiveRange` keywords using compiled schema: - -```javascript -ajv.addKeyword('range', { - type: 'number', - compile: function (sch, parentSchema) { - var min = sch[0]; - var max = sch[1]; - - return parentSchema.exclusiveRange === true - ? function (data) { return data > min && data < max; } - : function (data) { return data >= min && data <= max; } - } -}); - -var schema = { "range": [2, 4], "exclusiveRange": true }; -var validate = ajv.compile(schema); -console.log(validate(2.01)); // true -console.log(validate(3.99)); // true -console.log(validate(2)); // false -console.log(validate(4)); // false -``` - -Several custom keywords (typeof, instanceof, range and propertyNames) are defined in [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package - they can be used for your schemas and as a starting point for your own custom keywords. - -See [Defining custom keywords](https://github.com/ajv-validator/ajv/blob/master/CUSTOM.md) for more details. - - -## Asynchronous schema compilation - -During asynchronous compilation remote references are loaded using supplied function. See `compileAsync` [method](#api-compileAsync) and `loadSchema` [option](#options). - -Example: - -```javascript -var ajv = new Ajv({ loadSchema: loadSchema }); - -ajv.compileAsync(schema).then(function (validate) { - var valid = validate(data); - // ... -}); - -function loadSchema(uri) { - return request.json(uri).then(function (res) { - if (res.statusCode >= 400) - throw new Error('Loading error: ' + res.statusCode); - return res.body; - }); -} -``` - -__Please note__: [Option](#options) `missingRefs` should NOT be set to `"ignore"` or `"fail"` for asynchronous compilation to work. - - -## Asynchronous validation - -Example in Node.js REPL: https://tonicdev.com/esp/ajv-asynchronous-validation - -You can define custom formats and keywords that perform validation asynchronously by accessing database or some other service. You should add `async: true` in the keyword or format definition (see [addFormat](#api-addformat), [addKeyword](#api-addkeyword) and [Defining custom keywords](#defining-custom-keywords)). - -If your schema uses asynchronous formats/keywords or refers to some schema that contains them it should have `"$async": true` keyword so that Ajv can compile it correctly. If asynchronous format/keyword or reference to asynchronous schema is used in the schema without `$async` keyword Ajv will throw an exception during schema compilation. - -__Please note__: all asynchronous subschemas that are referenced from the current or other schemas should have `"$async": true` keyword as well, otherwise the schema compilation will fail. - -Validation function for an asynchronous custom format/keyword should return a promise that resolves with `true` or `false` (or rejects with `new Ajv.ValidationError(errors)` if you want to return custom errors from the keyword function). - -Ajv compiles asynchronous schemas to [es7 async functions](http://tc39.github.io/ecmascript-asyncawait/) that can optionally be transpiled with [nodent](https://github.com/MatAtBread/nodent). Async functions are supported in Node.js 7+ and all modern browsers. You can also supply any other transpiler as a function via `processCode` option. See [Options](#options). - -The compiled validation function has `$async: true` property (if the schema is asynchronous), so you can differentiate these functions if you are using both synchronous and asynchronous schemas. - -Validation result will be a promise that resolves with validated data or rejects with an exception `Ajv.ValidationError` that contains the array of validation errors in `errors` property. - - -Example: - -```javascript -var ajv = new Ajv; -// require('ajv-async')(ajv); - -ajv.addKeyword('idExists', { - async: true, - type: 'number', - validate: checkIdExists -}); - - -function checkIdExists(schema, data) { - return knex(schema.table) - .select('id') - .where('id', data) - .then(function (rows) { - return !!rows.length; // true if record is found - }); -} - -var schema = { - "$async": true, - "properties": { - "userId": { - "type": "integer", - "idExists": { "table": "users" } - }, - "postId": { - "type": "integer", - "idExists": { "table": "posts" } - } - } -}; - -var validate = ajv.compile(schema); - -validate({ userId: 1, postId: 19 }) -.then(function (data) { - console.log('Data is valid', data); // { userId: 1, postId: 19 } -}) -.catch(function (err) { - if (!(err instanceof Ajv.ValidationError)) throw err; - // data is invalid - console.log('Validation errors:', err.errors); -}); -``` - -### Using transpilers with asynchronous validation functions. - -[ajv-async](https://github.com/ajv-validator/ajv-async) uses [nodent](https://github.com/MatAtBread/nodent) to transpile async functions. To use another transpiler you should separately install it (or load its bundle in the browser). - - -#### Using nodent - -```javascript -var ajv = new Ajv; -require('ajv-async')(ajv); -// in the browser if you want to load ajv-async bundle separately you can: -// window.ajvAsync(ajv); -var validate = ajv.compile(schema); // transpiled es7 async function -validate(data).then(successFunc).catch(errorFunc); -``` - - -#### Using other transpilers - -```javascript -var ajv = new Ajv({ processCode: transpileFunc }); -var validate = ajv.compile(schema); // transpiled es7 async function -validate(data).then(successFunc).catch(errorFunc); -``` - -See [Options](#options). - - -## Security considerations - -JSON Schema, if properly used, can replace data sanitisation. It doesn't replace other API security considerations. It also introduces additional security aspects to consider. - - -##### Security contact - -To report a security vulnerability, please use the -[Tidelift security contact](https://tidelift.com/security). -Tidelift will coordinate the fix and disclosure. Please do NOT report security vulnerabilities via GitHub issues. - - -##### Untrusted schemas - -Ajv treats JSON schemas as trusted as your application code. This security model is based on the most common use case, when the schemas are static and bundled together with the application. - -If your schemas are received from untrusted sources (or generated from untrusted data) there are several scenarios you need to prevent: -- compiling schemas can cause stack overflow (if they are too deep) -- compiling schemas can be slow (e.g. [#557](https://github.com/ajv-validator/ajv/issues/557)) -- validating certain data can be slow - -It is difficult to predict all the scenarios, but at the very least it may help to limit the size of untrusted schemas (e.g. limit JSON string length) and also the maximum schema object depth (that can be high for relatively small JSON strings). You also may want to mitigate slow regular expressions in `pattern` and `patternProperties` keywords. - -Regardless the measures you take, using untrusted schemas increases security risks. - - -##### Circular references in JavaScript objects - -Ajv does not support schemas and validated data that have circular references in objects. See [issue #802](https://github.com/ajv-validator/ajv/issues/802). - -An attempt to compile such schemas or validate such data would cause stack overflow (or will not complete in case of asynchronous validation). Depending on the parser you use, untrusted data can lead to circular references. - - -##### Security risks of trusted schemas - -Some keywords in JSON Schemas can lead to very slow validation for certain data. These keywords include (but may be not limited to): - -- `pattern` and `format` for large strings - in some cases using `maxLength` can help mitigate it, but certain regular expressions can lead to exponential validation time even with relatively short strings (see [ReDoS attack](#redos-attack)). -- `patternProperties` for large property names - use `propertyNames` to mitigate, but some regular expressions can have exponential evaluation time as well. -- `uniqueItems` for large non-scalar arrays - use `maxItems` to mitigate - -__Please note__: The suggestions above to prevent slow validation would only work if you do NOT use `allErrors: true` in production code (using it would continue validation after validation errors). - -You can validate your JSON schemas against [this meta-schema](https://github.com/ajv-validator/ajv/blob/master/lib/refs/json-schema-secure.json) to check that these recommendations are followed: - -```javascript -const isSchemaSecure = ajv.compile(require('ajv/lib/refs/json-schema-secure.json')); - -const schema1 = {format: 'email'}; -isSchemaSecure(schema1); // false - -const schema2 = {format: 'email', maxLength: MAX_LENGTH}; -isSchemaSecure(schema2); // true -``` - -__Please note__: following all these recommendation is not a guarantee that validation of untrusted data is safe - it can still lead to some undesirable results. - - -##### Content Security Policies (CSP) -See [Ajv and Content Security Policies (CSP)](#ajv-and-content-security-policies-csp) - - -## ReDoS attack - -Certain regular expressions can lead to the exponential evaluation time even with relatively short strings. - -Please assess the regular expressions you use in the schemas on their vulnerability to this attack - see [safe-regex](https://github.com/substack/safe-regex), for example. - -__Please note__: some formats that Ajv implements use [regular expressions](https://github.com/ajv-validator/ajv/blob/master/lib/compile/formats.js) that can be vulnerable to ReDoS attack, so if you use Ajv to validate data from untrusted sources __it is strongly recommended__ to consider the following: - -- making assessment of "format" implementations in Ajv. -- using `format: 'fast'` option that simplifies some of the regular expressions (although it does not guarantee that they are safe). -- replacing format implementations provided by Ajv with your own implementations of "format" keyword that either uses different regular expressions or another approach to format validation. Please see [addFormat](#api-addformat) method. -- disabling format validation by ignoring "format" keyword with option `format: false` - -Whatever mitigation you choose, please assume all formats provided by Ajv as potentially unsafe and make your own assessment of their suitability for your validation scenarios. - - -## Filtering data - -With [option `removeAdditional`](#options) (added by [andyscott](https://github.com/andyscott)) you can filter data during the validation. - -This option modifies original data. - -Example: - -```javascript -var ajv = new Ajv({ removeAdditional: true }); -var schema = { - "additionalProperties": false, - "properties": { - "foo": { "type": "number" }, - "bar": { - "additionalProperties": { "type": "number" }, - "properties": { - "baz": { "type": "string" } - } - } - } -} - -var data = { - "foo": 0, - "additional1": 1, // will be removed; `additionalProperties` == false - "bar": { - "baz": "abc", - "additional2": 2 // will NOT be removed; `additionalProperties` != false - }, -} - -var validate = ajv.compile(schema); - -console.log(validate(data)); // true -console.log(data); // { "foo": 0, "bar": { "baz": "abc", "additional2": 2 } -``` - -If `removeAdditional` option in the example above were `"all"` then both `additional1` and `additional2` properties would have been removed. - -If the option were `"failing"` then property `additional1` would have been removed regardless of its value and property `additional2` would have been removed only if its value were failing the schema in the inner `additionalProperties` (so in the example above it would have stayed because it passes the schema, but any non-number would have been removed). - -__Please note__: If you use `removeAdditional` option with `additionalProperties` keyword inside `anyOf`/`oneOf` keywords your validation can fail with this schema, for example: - -```json -{ - "type": "object", - "oneOf": [ - { - "properties": { - "foo": { "type": "string" } - }, - "required": [ "foo" ], - "additionalProperties": false - }, - { - "properties": { - "bar": { "type": "integer" } - }, - "required": [ "bar" ], - "additionalProperties": false - } - ] -} -``` - -The intention of the schema above is to allow objects with either the string property "foo" or the integer property "bar", but not with both and not with any other properties. - -With the option `removeAdditional: true` the validation will pass for the object `{ "foo": "abc"}` but will fail for the object `{"bar": 1}`. It happens because while the first subschema in `oneOf` is validated, the property `bar` is removed because it is an additional property according to the standard (because it is not included in `properties` keyword in the same schema). - -While this behaviour is unexpected (issues [#129](https://github.com/ajv-validator/ajv/issues/129), [#134](https://github.com/ajv-validator/ajv/issues/134)), it is correct. To have the expected behaviour (both objects are allowed and additional properties are removed) the schema has to be refactored in this way: - -```json -{ - "type": "object", - "properties": { - "foo": { "type": "string" }, - "bar": { "type": "integer" } - }, - "additionalProperties": false, - "oneOf": [ - { "required": [ "foo" ] }, - { "required": [ "bar" ] } - ] -} -``` - -The schema above is also more efficient - it will compile into a faster function. - - -## Assigning defaults - -With [option `useDefaults`](#options) Ajv will assign values from `default` keyword in the schemas of `properties` and `items` (when it is the array of schemas) to the missing properties and items. - -With the option value `"empty"` properties and items equal to `null` or `""` (empty string) will be considered missing and assigned defaults. - -This option modifies original data. - -__Please note__: the default value is inserted in the generated validation code as a literal, so the value inserted in the data will be the deep clone of the default in the schema. - - -Example 1 (`default` in `properties`): - -```javascript -var ajv = new Ajv({ useDefaults: true }); -var schema = { - "type": "object", - "properties": { - "foo": { "type": "number" }, - "bar": { "type": "string", "default": "baz" } - }, - "required": [ "foo", "bar" ] -}; - -var data = { "foo": 1 }; - -var validate = ajv.compile(schema); - -console.log(validate(data)); // true -console.log(data); // { "foo": 1, "bar": "baz" } -``` - -Example 2 (`default` in `items`): - -```javascript -var schema = { - "type": "array", - "items": [ - { "type": "number" }, - { "type": "string", "default": "foo" } - ] -} - -var data = [ 1 ]; - -var validate = ajv.compile(schema); - -console.log(validate(data)); // true -console.log(data); // [ 1, "foo" ] -``` - -`default` keywords in other cases are ignored: - -- not in `properties` or `items` subschemas -- in schemas inside `anyOf`, `oneOf` and `not` (see [#42](https://github.com/ajv-validator/ajv/issues/42)) -- in `if` subschema of `switch` keyword -- in schemas generated by custom macro keywords - -The [`strictDefaults` option](#options) customizes Ajv's behavior for the defaults that Ajv ignores (`true` raises an error, and `"log"` outputs a warning). - - -## Coercing data types - -When you are validating user inputs all your data properties are usually strings. The option `coerceTypes` allows you to have your data types coerced to the types specified in your schema `type` keywords, both to pass the validation and to use the correctly typed data afterwards. - -This option modifies original data. - -__Please note__: if you pass a scalar value to the validating function its type will be coerced and it will pass the validation, but the value of the variable you pass won't be updated because scalars are passed by value. - - -Example 1: - -```javascript -var ajv = new Ajv({ coerceTypes: true }); -var schema = { - "type": "object", - "properties": { - "foo": { "type": "number" }, - "bar": { "type": "boolean" } - }, - "required": [ "foo", "bar" ] -}; - -var data = { "foo": "1", "bar": "false" }; - -var validate = ajv.compile(schema); - -console.log(validate(data)); // true -console.log(data); // { "foo": 1, "bar": false } -``` - -Example 2 (array coercions): - -```javascript -var ajv = new Ajv({ coerceTypes: 'array' }); -var schema = { - "properties": { - "foo": { "type": "array", "items": { "type": "number" } }, - "bar": { "type": "boolean" } - } -}; - -var data = { "foo": "1", "bar": ["false"] }; - -var validate = ajv.compile(schema); - -console.log(validate(data)); // true -console.log(data); // { "foo": [1], "bar": false } -``` - -The coercion rules, as you can see from the example, are different from JavaScript both to validate user input as expected and to have the coercion reversible (to correctly validate cases where different types are defined in subschemas of "anyOf" and other compound keywords). - -See [Coercion rules](https://github.com/ajv-validator/ajv/blob/master/COERCION.md) for details. - - -## API - -##### new Ajv(Object options) -> Object - -Create Ajv instance. - - -##### .compile(Object schema) -> Function<Object data> - -Generate validating function and cache the compiled schema for future use. - -Validating function returns a boolean value. This function has properties `errors` and `schema`. Errors encountered during the last validation are assigned to `errors` property (it is assigned `null` if there was no errors). `schema` property contains the reference to the original schema. - -The schema passed to this method will be validated against meta-schema unless `validateSchema` option is false. If schema is invalid, an error will be thrown. See [options](#options). - - -##### .compileAsync(Object schema [, Boolean meta] [, Function callback]) -> Promise - -Asynchronous version of `compile` method that loads missing remote schemas using asynchronous function in `options.loadSchema`. This function returns a Promise that resolves to a validation function. An optional callback passed to `compileAsync` will be called with 2 parameters: error (or null) and validating function. The returned promise will reject (and the callback will be called with an error) when: - -- missing schema can't be loaded (`loadSchema` returns a Promise that rejects). -- a schema containing a missing reference is loaded, but the reference cannot be resolved. -- schema (or some loaded/referenced schema) is invalid. - -The function compiles schema and loads the first missing schema (or meta-schema) until all missing schemas are loaded. - -You can asynchronously compile meta-schema by passing `true` as the second parameter. - -See example in [Asynchronous compilation](#asynchronous-schema-compilation). - - -##### .validate(Object schema|String key|String ref, data) -> Boolean - -Validate data using passed schema (it will be compiled and cached). - -Instead of the schema you can use the key that was previously passed to `addSchema`, the schema id if it was present in the schema or any previously resolved reference. - -Validation errors will be available in the `errors` property of Ajv instance (`null` if there were no errors). - -__Please note__: every time this method is called the errors are overwritten so you need to copy them to another variable if you want to use them later. - -If the schema is asynchronous (has `$async` keyword on the top level) this method returns a Promise. See [Asynchronous validation](#asynchronous-validation). - - -##### .addSchema(Array<Object>|Object schema [, String key]) -> Ajv - -Add schema(s) to validator instance. This method does not compile schemas (but it still validates them). Because of that dependencies can be added in any order and circular dependencies are supported. It also prevents unnecessary compilation of schemas that are containers for other schemas but not used as a whole. - -Array of schemas can be passed (schemas should have ids), the second parameter will be ignored. - -Key can be passed that can be used to reference the schema and will be used as the schema id if there is no id inside the schema. If the key is not passed, the schema id will be used as the key. - - -Once the schema is added, it (and all the references inside it) can be referenced in other schemas and used to validate data. - -Although `addSchema` does not compile schemas, explicit compilation is not required - the schema will be compiled when it is used first time. - -By default the schema is validated against meta-schema before it is added, and if the schema does not pass validation the exception is thrown. This behaviour is controlled by `validateSchema` option. - -__Please note__: Ajv uses the [method chaining syntax](https://en.wikipedia.org/wiki/Method_chaining) for all methods with the prefix `add*` and `remove*`. -This allows you to do nice things like the following. - -```javascript -var validate = new Ajv().addSchema(schema).addFormat(name, regex).getSchema(uri); -``` - -##### .addMetaSchema(Array<Object>|Object schema [, String key]) -> Ajv - -Adds meta schema(s) that can be used to validate other schemas. That function should be used instead of `addSchema` because there may be instance options that would compile a meta schema incorrectly (at the moment it is `removeAdditional` option). - -There is no need to explicitly add draft-07 meta schema (http://json-schema.org/draft-07/schema) - it is added by default, unless option `meta` is set to `false`. You only need to use it if you have a changed meta-schema that you want to use to validate your schemas. See `validateSchema`. - - -##### .validateSchema(Object schema) -> Boolean - -Validates schema. This method should be used to validate schemas rather than `validate` due to the inconsistency of `uri` format in JSON Schema standard. - -By default this method is called automatically when the schema is added, so you rarely need to use it directly. - -If schema doesn't have `$schema` property, it is validated against draft 6 meta-schema (option `meta` should not be false). - -If schema has `$schema` property, then the schema with this id (that should be previously added) is used to validate passed schema. - -Errors will be available at `ajv.errors`. - - -##### .getSchema(String key) -> Function<Object data> - -Retrieve compiled schema previously added with `addSchema` by the key passed to `addSchema` or by its full reference (id). The returned validating function has `schema` property with the reference to the original schema. - - -##### .removeSchema([Object schema|String key|String ref|RegExp pattern]) -> Ajv - -Remove added/cached schema. Even if schema is referenced by other schemas it can be safely removed as dependent schemas have local references. - -Schema can be removed using: -- key passed to `addSchema` -- it's full reference (id) -- RegExp that should match schema id or key (meta-schemas won't be removed) -- actual schema object that will be stable-stringified to remove schema from cache - -If no parameter is passed all schemas but meta-schemas will be removed and the cache will be cleared. - - -##### .addFormat(String name, String|RegExp|Function|Object format) -> Ajv - -Add custom format to validate strings or numbers. It can also be used to replace pre-defined formats for Ajv instance. - -Strings are converted to RegExp. - -Function should return validation result as `true` or `false`. - -If object is passed it should have properties `validate`, `compare` and `async`: - -- _validate_: a string, RegExp or a function as described above. -- _compare_: an optional comparison function that accepts two strings and compares them according to the format meaning. This function is used with keywords `formatMaximum`/`formatMinimum` (defined in [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package). It should return `1` if the first value is bigger than the second value, `-1` if it is smaller and `0` if it is equal. -- _async_: an optional `true` value if `validate` is an asynchronous function; in this case it should return a promise that resolves with a value `true` or `false`. -- _type_: an optional type of data that the format applies to. It can be `"string"` (default) or `"number"` (see https://github.com/ajv-validator/ajv/issues/291#issuecomment-259923858). If the type of data is different, the validation will pass. - -Custom formats can be also added via `formats` option. - - -##### .addKeyword(String keyword, Object definition) -> Ajv - -Add custom validation keyword to Ajv instance. - -Keyword should be different from all standard JSON Schema keywords and different from previously defined keywords. There is no way to redefine keywords or to remove keyword definition from the instance. - -Keyword must start with a letter, `_` or `$`, and may continue with letters, numbers, `_`, `$`, or `-`. -It is recommended to use an application-specific prefix for keywords to avoid current and future name collisions. - -Example Keywords: -- `"xyz-example"`: valid, and uses prefix for the xyz project to avoid name collisions. -- `"example"`: valid, but not recommended as it could collide with future versions of JSON Schema etc. -- `"3-example"`: invalid as numbers are not allowed to be the first character in a keyword - -Keyword definition is an object with the following properties: - -- _type_: optional string or array of strings with data type(s) that the keyword applies to. If not present, the keyword will apply to all types. -- _validate_: validating function -- _compile_: compiling function -- _macro_: macro function -- _inline_: compiling function that returns code (as string) -- _schema_: an optional `false` value used with "validate" keyword to not pass schema -- _metaSchema_: an optional meta-schema for keyword schema -- _dependencies_: an optional list of properties that must be present in the parent schema - it will be checked during schema compilation -- _modifying_: `true` MUST be passed if keyword modifies data -- _statements_: `true` can be passed in case inline keyword generates statements (as opposed to expression) -- _valid_: pass `true`/`false` to pre-define validation result, the result returned from validation function will be ignored. This option cannot be used with macro keywords. -- _$data_: an optional `true` value to support [$data reference](#data-reference) as the value of custom keyword. The reference will be resolved at validation time. If the keyword has meta-schema it would be extended to allow $data and it will be used to validate the resolved value. Supporting $data reference requires that keyword has validating function (as the only option or in addition to compile, macro or inline function). -- _async_: an optional `true` value if the validation function is asynchronous (whether it is compiled or passed in _validate_ property); in this case it should return a promise that resolves with a value `true` or `false`. This option is ignored in case of "macro" and "inline" keywords. -- _errors_: an optional boolean or string `"full"` indicating whether keyword returns errors. If this property is not set Ajv will determine if the errors were set in case of failed validation. - -_compile_, _macro_ and _inline_ are mutually exclusive, only one should be used at a time. _validate_ can be used separately or in addition to them to support $data reference. - -__Please note__: If the keyword is validating data type that is different from the type(s) in its definition, the validation function will not be called (and expanded macro will not be used), so there is no need to check for data type inside validation function or inside schema returned by macro function (unless you want to enforce a specific type and for some reason do not want to use a separate `type` keyword for that). In the same way as standard keywords work, if the keyword does not apply to the data type being validated, the validation of this keyword will succeed. - -See [Defining custom keywords](#defining-custom-keywords) for more details. - - -##### .getKeyword(String keyword) -> Object|Boolean - -Returns custom keyword definition, `true` for pre-defined keywords and `false` if the keyword is unknown. - - -##### .removeKeyword(String keyword) -> Ajv - -Removes custom or pre-defined keyword so you can redefine them. - -While this method can be used to extend pre-defined keywords, it can also be used to completely change their meaning - it may lead to unexpected results. - -__Please note__: schemas compiled before the keyword is removed will continue to work without changes. To recompile schemas use `removeSchema` method and compile them again. - - -##### .errorsText([Array<Object> errors [, Object options]]) -> String - -Returns the text with all errors in a String. - -Options can have properties `separator` (string used to separate errors, ", " by default) and `dataVar` (the variable name that dataPaths are prefixed with, "data" by default). - - -## Options - -Defaults: - -```javascript -{ - // validation and reporting options: - $data: false, - allErrors: false, - verbose: false, - $comment: false, // NEW in Ajv version 6.0 - jsonPointers: false, - uniqueItems: true, - unicode: true, - nullable: false, - format: 'fast', - formats: {}, - unknownFormats: true, - schemas: {}, - logger: undefined, - // referenced schema options: - schemaId: '$id', - missingRefs: true, - extendRefs: 'ignore', // recommended 'fail' - loadSchema: undefined, // function(uri: string): Promise {} - // options to modify validated data: - removeAdditional: false, - useDefaults: false, - coerceTypes: false, - // strict mode options - strictDefaults: false, - strictKeywords: false, - strictNumbers: false, - // asynchronous validation options: - transpile: undefined, // requires ajv-async package - // advanced options: - meta: true, - validateSchema: true, - addUsedSchema: true, - inlineRefs: true, - passContext: false, - loopRequired: Infinity, - ownProperties: false, - multipleOfPrecision: false, - errorDataPath: 'object', // deprecated - messages: true, - sourceCode: false, - processCode: undefined, // function (str: string, schema: object): string {} - cache: new Cache, - serialize: undefined -} -``` - -##### Validation and reporting options - -- _$data_: support [$data references](#data-reference). Draft 6 meta-schema that is added by default will be extended to allow them. If you want to use another meta-schema you need to use $dataMetaSchema method to add support for $data reference. See [API](#api). -- _allErrors_: check all rules collecting all errors. Default is to return after the first error. -- _verbose_: include the reference to the part of the schema (`schema` and `parentSchema`) and validated data in errors (false by default). -- _$comment_ (NEW in Ajv version 6.0): log or pass the value of `$comment` keyword to a function. Option values: - - `false` (default): ignore $comment keyword. - - `true`: log the keyword value to console. - - function: pass the keyword value, its schema path and root schema to the specified function -- _jsonPointers_: set `dataPath` property of errors using [JSON Pointers](https://tools.ietf.org/html/rfc6901) instead of JavaScript property access notation. -- _uniqueItems_: validate `uniqueItems` keyword (true by default). -- _unicode_: calculate correct length of strings with unicode pairs (true by default). Pass `false` to use `.length` of strings that is faster, but gives "incorrect" lengths of strings with unicode pairs - each unicode pair is counted as two characters. -- _nullable_: support keyword "nullable" from [Open API 3 specification](https://swagger.io/docs/specification/data-models/data-types/). -- _format_: formats validation mode. Option values: - - `"fast"` (default) - simplified and fast validation (see [Formats](#formats) for details of which formats are available and affected by this option). - - `"full"` - more restrictive and slow validation. E.g., 25:00:00 and 2015/14/33 will be invalid time and date in 'full' mode but it will be valid in 'fast' mode. - - `false` - ignore all format keywords. -- _formats_: an object with custom formats. Keys and values will be passed to `addFormat` method. -- _keywords_: an object with custom keywords. Keys and values will be passed to `addKeyword` method. -- _unknownFormats_: handling of unknown formats. Option values: - - `true` (default) - if an unknown format is encountered the exception is thrown during schema compilation. If `format` keyword value is [$data reference](#data-reference) and it is unknown the validation will fail. - - `[String]` - an array of unknown format names that will be ignored. This option can be used to allow usage of third party schemas with format(s) for which you don't have definitions, but still fail if another unknown format is used. If `format` keyword value is [$data reference](#data-reference) and it is not in this array the validation will fail. - - `"ignore"` - to log warning during schema compilation and always pass validation (the default behaviour in versions before 5.0.0). This option is not recommended, as it allows to mistype format name and it won't be validated without any error message. This behaviour is required by JSON Schema specification. -- _schemas_: an array or object of schemas that will be added to the instance. In case you pass the array the schemas must have IDs in them. When the object is passed the method `addSchema(value, key)` will be called for each schema in this object. -- _logger_: sets the logging method. Default is the global `console` object that should have methods `log`, `warn` and `error`. See [Error logging](#error-logging). Option values: - - custom logger - it should have methods `log`, `warn` and `error`. If any of these methods is missing an exception will be thrown. - - `false` - logging is disabled. - - -##### Referenced schema options - -- _schemaId_: this option defines which keywords are used as schema URI. Option value: - - `"$id"` (default) - only use `$id` keyword as schema URI (as specified in JSON Schema draft-06/07), ignore `id` keyword (if it is present a warning will be logged). - - `"id"` - only use `id` keyword as schema URI (as specified in JSON Schema draft-04), ignore `$id` keyword (if it is present a warning will be logged). - - `"auto"` - use both `$id` and `id` keywords as schema URI. If both are present (in the same schema object) and different the exception will be thrown during schema compilation. -- _missingRefs_: handling of missing referenced schemas. Option values: - - `true` (default) - if the reference cannot be resolved during compilation the exception is thrown. The thrown error has properties `missingRef` (with hash fragment) and `missingSchema` (without it). Both properties are resolved relative to the current base id (usually schema id, unless it was substituted). - - `"ignore"` - to log error during compilation and always pass validation. - - `"fail"` - to log error and successfully compile schema but fail validation if this rule is checked. -- _extendRefs_: validation of other keywords when `$ref` is present in the schema. Option values: - - `"ignore"` (default) - when `$ref` is used other keywords are ignored (as per [JSON Reference](https://tools.ietf.org/html/draft-pbryan-zyp-json-ref-03#section-3) standard). A warning will be logged during the schema compilation. - - `"fail"` (recommended) - if other validation keywords are used together with `$ref` the exception will be thrown when the schema is compiled. This option is recommended to make sure schema has no keywords that are ignored, which can be confusing. - - `true` - validate all keywords in the schemas with `$ref` (the default behaviour in versions before 5.0.0). -- _loadSchema_: asynchronous function that will be used to load remote schemas when `compileAsync` [method](#api-compileAsync) is used and some reference is missing (option `missingRefs` should NOT be 'fail' or 'ignore'). This function should accept remote schema uri as a parameter and return a Promise that resolves to a schema. See example in [Asynchronous compilation](#asynchronous-schema-compilation). - - -##### Options to modify validated data - -- _removeAdditional_: remove additional properties - see example in [Filtering data](#filtering-data). This option is not used if schema is added with `addMetaSchema` method. Option values: - - `false` (default) - not to remove additional properties - - `"all"` - all additional properties are removed, regardless of `additionalProperties` keyword in schema (and no validation is made for them). - - `true` - only additional properties with `additionalProperties` keyword equal to `false` are removed. - - `"failing"` - additional properties that fail schema validation will be removed (where `additionalProperties` keyword is `false` or schema). -- _useDefaults_: replace missing or undefined properties and items with the values from corresponding `default` keywords. Default behaviour is to ignore `default` keywords. This option is not used if schema is added with `addMetaSchema` method. See examples in [Assigning defaults](#assigning-defaults). Option values: - - `false` (default) - do not use defaults - - `true` - insert defaults by value (object literal is used). - - `"empty"` - in addition to missing or undefined, use defaults for properties and items that are equal to `null` or `""` (an empty string). - - `"shared"` (deprecated) - insert defaults by reference. If the default is an object, it will be shared by all instances of validated data. If you modify the inserted default in the validated data, it will be modified in the schema as well. -- _coerceTypes_: change data type of data to match `type` keyword. See the example in [Coercing data types](#coercing-data-types) and [coercion rules](https://github.com/ajv-validator/ajv/blob/master/COERCION.md). Option values: - - `false` (default) - no type coercion. - - `true` - coerce scalar data types. - - `"array"` - in addition to coercions between scalar types, coerce scalar data to an array with one element and vice versa (as required by the schema). - - -##### Strict mode options - -- _strictDefaults_: report ignored `default` keywords in schemas. Option values: - - `false` (default) - ignored defaults are not reported - - `true` - if an ignored default is present, throw an error - - `"log"` - if an ignored default is present, log warning -- _strictKeywords_: report unknown keywords in schemas. Option values: - - `false` (default) - unknown keywords are not reported - - `true` - if an unknown keyword is present, throw an error - - `"log"` - if an unknown keyword is present, log warning -- _strictNumbers_: validate numbers strictly, failing validation for NaN and Infinity. Option values: - - `false` (default) - NaN or Infinity will pass validation for numeric types - - `true` - NaN or Infinity will not pass validation for numeric types - -##### Asynchronous validation options - -- _transpile_: Requires [ajv-async](https://github.com/ajv-validator/ajv-async) package. It determines whether Ajv transpiles compiled asynchronous validation function. Option values: - - `undefined` (default) - transpile with [nodent](https://github.com/MatAtBread/nodent) if async functions are not supported. - - `true` - always transpile with nodent. - - `false` - do not transpile; if async functions are not supported an exception will be thrown. - - -##### Advanced options - -- _meta_: add [meta-schema](http://json-schema.org/documentation.html) so it can be used by other schemas (true by default). If an object is passed, it will be used as the default meta-schema for schemas that have no `$schema` keyword. This default meta-schema MUST have `$schema` keyword. -- _validateSchema_: validate added/compiled schemas against meta-schema (true by default). `$schema` property in the schema can be http://json-schema.org/draft-07/schema or absent (draft-07 meta-schema will be used) or can be a reference to the schema previously added with `addMetaSchema` method. Option values: - - `true` (default) - if the validation fails, throw the exception. - - `"log"` - if the validation fails, log error. - - `false` - skip schema validation. -- _addUsedSchema_: by default methods `compile` and `validate` add schemas to the instance if they have `$id` (or `id`) property that doesn't start with "#". If `$id` is present and it is not unique the exception will be thrown. Set this option to `false` to skip adding schemas to the instance and the `$id` uniqueness check when these methods are used. This option does not affect `addSchema` method. -- _inlineRefs_: Affects compilation of referenced schemas. Option values: - - `true` (default) - the referenced schemas that don't have refs in them are inlined, regardless of their size - that substantially improves performance at the cost of the bigger size of compiled schema functions. - - `false` - to not inline referenced schemas (they will be compiled as separate functions). - - integer number - to limit the maximum number of keywords of the schema that will be inlined. -- _passContext_: pass validation context to custom keyword functions. If this option is `true` and you pass some context to the compiled validation function with `validate.call(context, data)`, the `context` will be available as `this` in your custom keywords. By default `this` is Ajv instance. -- _loopRequired_: by default `required` keyword is compiled into a single expression (or a sequence of statements in `allErrors` mode). In case of a very large number of properties in this keyword it may result in a very big validation function. Pass integer to set the number of properties above which `required` keyword will be validated in a loop - smaller validation function size but also worse performance. -- _ownProperties_: by default Ajv iterates over all enumerable object properties; when this option is `true` only own enumerable object properties (i.e. found directly on the object rather than on its prototype) are iterated. Contributed by @mbroadst. -- _multipleOfPrecision_: by default `multipleOf` keyword is validated by comparing the result of division with parseInt() of that result. It works for dividers that are bigger than 1. For small dividers such as 0.01 the result of the division is usually not integer (even when it should be integer, see issue [#84](https://github.com/ajv-validator/ajv/issues/84)). If you need to use fractional dividers set this option to some positive integer N to have `multipleOf` validated using this formula: `Math.abs(Math.round(division) - division) < 1e-N` (it is slower but allows for float arithmetics deviations). -- _errorDataPath_ (deprecated): set `dataPath` to point to 'object' (default) or to 'property' when validating keywords `required`, `additionalProperties` and `dependencies`. -- _messages_: Include human-readable messages in errors. `true` by default. `false` can be passed when custom messages are used (e.g. with [ajv-i18n](https://github.com/ajv-validator/ajv-i18n)). -- _sourceCode_: add `sourceCode` property to validating function (for debugging; this code can be different from the result of toString call). -- _processCode_: an optional function to process generated code before it is passed to Function constructor. It can be used to either beautify (the validating function is generated without line-breaks) or to transpile code. Starting from version 5.0.0 this option replaced options: - - `beautify` that formatted the generated function using [js-beautify](https://github.com/beautify-web/js-beautify). If you want to beautify the generated code pass a function calling `require('js-beautify').js_beautify` as `processCode: code => js_beautify(code)`. - - `transpile` that transpiled asynchronous validation function. You can still use `transpile` option with [ajv-async](https://github.com/ajv-validator/ajv-async) package. See [Asynchronous validation](#asynchronous-validation) for more information. -- _cache_: an optional instance of cache to store compiled schemas using stable-stringified schema as a key. For example, set-associative cache [sacjs](https://github.com/epoberezkin/sacjs) can be used. If not passed then a simple hash is used which is good enough for the common use case (a limited number of statically defined schemas). Cache should have methods `put(key, value)`, `get(key)`, `del(key)` and `clear()`. -- _serialize_: an optional function to serialize schema to cache key. Pass `false` to use schema itself as a key (e.g., if WeakMap used as a cache). By default [fast-json-stable-stringify](https://github.com/epoberezkin/fast-json-stable-stringify) is used. - - -## Validation errors - -In case of validation failure, Ajv assigns the array of errors to `errors` property of validation function (or to `errors` property of Ajv instance when `validate` or `validateSchema` methods were called). In case of [asynchronous validation](#asynchronous-validation), the returned promise is rejected with exception `Ajv.ValidationError` that has `errors` property. - - -### Error objects - -Each error is an object with the following properties: - -- _keyword_: validation keyword. -- _dataPath_: the path to the part of the data that was validated. By default `dataPath` uses JavaScript property access notation (e.g., `".prop[1].subProp"`). When the option `jsonPointers` is true (see [Options](#options)) `dataPath` will be set using JSON pointer standard (e.g., `"/prop/1/subProp"`). -- _schemaPath_: the path (JSON-pointer as a URI fragment) to the schema of the keyword that failed validation. -- _params_: the object with the additional information about error that can be used to create custom error messages (e.g., using [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) package). See below for parameters set by all keywords. -- _message_: the standard error message (can be excluded with option `messages` set to false). -- _schema_: the schema of the keyword (added with `verbose` option). -- _parentSchema_: the schema containing the keyword (added with `verbose` option) -- _data_: the data validated by the keyword (added with `verbose` option). - -__Please note__: `propertyNames` keyword schema validation errors have an additional property `propertyName`, `dataPath` points to the object. After schema validation for each property name, if it is invalid an additional error is added with the property `keyword` equal to `"propertyNames"`. - - -### Error parameters - -Properties of `params` object in errors depend on the keyword that failed validation. - -- `maxItems`, `minItems`, `maxLength`, `minLength`, `maxProperties`, `minProperties` - property `limit` (number, the schema of the keyword). -- `additionalItems` - property `limit` (the maximum number of allowed items in case when `items` keyword is an array of schemas and `additionalItems` is false). -- `additionalProperties` - property `additionalProperty` (the property not used in `properties` and `patternProperties` keywords). -- `dependencies` - properties: - - `property` (dependent property), - - `missingProperty` (required missing dependency - only the first one is reported currently) - - `deps` (required dependencies, comma separated list as a string), - - `depsCount` (the number of required dependencies). -- `format` - property `format` (the schema of the keyword). -- `maximum`, `minimum` - properties: - - `limit` (number, the schema of the keyword), - - `exclusive` (boolean, the schema of `exclusiveMaximum` or `exclusiveMinimum`), - - `comparison` (string, comparison operation to compare the data to the limit, with the data on the left and the limit on the right; can be "<", "<=", ">", ">=") -- `multipleOf` - property `multipleOf` (the schema of the keyword) -- `pattern` - property `pattern` (the schema of the keyword) -- `required` - property `missingProperty` (required property that is missing). -- `propertyNames` - property `propertyName` (an invalid property name). -- `patternRequired` (in ajv-keywords) - property `missingPattern` (required pattern that did not match any property). -- `type` - property `type` (required type(s), a string, can be a comma-separated list) -- `uniqueItems` - properties `i` and `j` (indices of duplicate items). -- `const` - property `allowedValue` pointing to the value (the schema of the keyword). -- `enum` - property `allowedValues` pointing to the array of values (the schema of the keyword). -- `$ref` - property `ref` with the referenced schema URI. -- `oneOf` - property `passingSchemas` (array of indices of passing schemas, null if no schema passes). -- custom keywords (in case keyword definition doesn't create errors) - property `keyword` (the keyword name). - - -### Error logging - -Using the `logger` option when initiallizing Ajv will allow you to define custom logging. Here you can build upon the exisiting logging. The use of other logging packages is supported as long as the package or its associated wrapper exposes the required methods. If any of the required methods are missing an exception will be thrown. -- **Required Methods**: `log`, `warn`, `error` - -```javascript -var otherLogger = new OtherLogger(); -var ajv = new Ajv({ - logger: { - log: console.log.bind(console), - warn: function warn() { - otherLogger.logWarn.apply(otherLogger, arguments); - }, - error: function error() { - otherLogger.logError.apply(otherLogger, arguments); - console.error.apply(console, arguments); - } - } -}); -``` - - -## Plugins - -Ajv can be extended with plugins that add custom keywords, formats or functions to process generated code. When such plugin is published as npm package it is recommended that it follows these conventions: - -- it exports a function -- this function accepts ajv instance as the first parameter and returns the same instance to allow chaining -- this function can accept an optional configuration as the second parameter - -If you have published a useful plugin please submit a PR to add it to the next section. - - -## Related packages - -- [ajv-async](https://github.com/ajv-validator/ajv-async) - plugin to configure async validation mode -- [ajv-bsontype](https://github.com/BoLaMN/ajv-bsontype) - plugin to validate mongodb's bsonType formats -- [ajv-cli](https://github.com/jessedc/ajv-cli) - command line interface -- [ajv-errors](https://github.com/ajv-validator/ajv-errors) - plugin for custom error messages -- [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) - internationalised error messages -- [ajv-istanbul](https://github.com/ajv-validator/ajv-istanbul) - plugin to instrument generated validation code to measure test coverage of your schemas -- [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) - plugin with custom validation keywords (select, typeof, etc.) -- [ajv-merge-patch](https://github.com/ajv-validator/ajv-merge-patch) - plugin with keywords $merge and $patch -- [ajv-pack](https://github.com/ajv-validator/ajv-pack) - produces a compact module exporting validation functions -- [ajv-formats-draft2019](https://github.com/luzlab/ajv-formats-draft2019) - format validators for draft2019 that aren't already included in ajv (ie. `idn-hostname`, `idn-email`, `iri`, `iri-reference` and `duration`). - -## Some packages using Ajv - -- [webpack](https://github.com/webpack/webpack) - a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser -- [jsonscript-js](https://github.com/JSONScript/jsonscript-js) - the interpreter for [JSONScript](http://www.jsonscript.org) - scripted processing of existing endpoints and services -- [osprey-method-handler](https://github.com/mulesoft-labs/osprey-method-handler) - Express middleware for validating requests and responses based on a RAML method object, used in [osprey](https://github.com/mulesoft/osprey) - validating API proxy generated from a RAML definition -- [har-validator](https://github.com/ahmadnassri/har-validator) - HTTP Archive (HAR) validator -- [jsoneditor](https://github.com/josdejong/jsoneditor) - a web-based tool to view, edit, format, and validate JSON http://jsoneditoronline.org -- [JSON Schema Lint](https://github.com/nickcmaynard/jsonschemalint) - a web tool to validate JSON/YAML document against a single JSON Schema http://jsonschemalint.com -- [objection](https://github.com/vincit/objection.js) - SQL-friendly ORM for Node.js -- [table](https://github.com/gajus/table) - formats data into a string table -- [ripple-lib](https://github.com/ripple/ripple-lib) - a JavaScript API for interacting with [Ripple](https://ripple.com) in Node.js and the browser -- [restbase](https://github.com/wikimedia/restbase) - distributed storage with REST API & dispatcher for backend services built to provide a low-latency & high-throughput API for Wikipedia / Wikimedia content -- [hippie-swagger](https://github.com/CacheControl/hippie-swagger) - [Hippie](https://github.com/vesln/hippie) wrapper that provides end to end API testing with swagger validation -- [react-form-controlled](https://github.com/seeden/react-form-controlled) - React controlled form components with validation -- [rabbitmq-schema](https://github.com/tjmehta/rabbitmq-schema) - a schema definition module for RabbitMQ graphs and messages -- [@query/schema](https://www.npmjs.com/package/@query/schema) - stream filtering with a URI-safe query syntax parsing to JSON Schema -- [chai-ajv-json-schema](https://github.com/peon374/chai-ajv-json-schema) - chai plugin to us JSON Schema with expect in mocha tests -- [grunt-jsonschema-ajv](https://github.com/SignpostMarv/grunt-jsonschema-ajv) - Grunt plugin for validating files against JSON Schema -- [extract-text-webpack-plugin](https://github.com/webpack-contrib/extract-text-webpack-plugin) - extract text from bundle into a file -- [electron-builder](https://github.com/electron-userland/electron-builder) - a solution to package and build a ready for distribution Electron app -- [addons-linter](https://github.com/mozilla/addons-linter) - Mozilla Add-ons Linter -- [gh-pages-generator](https://github.com/epoberezkin/gh-pages-generator) - multi-page site generator converting markdown files to GitHub pages -- [ESLint](https://github.com/eslint/eslint) - the pluggable linting utility for JavaScript and JSX - - -## Tests - -``` -npm install -git submodule update --init -npm test -``` - -## Contributing - -All validation functions are generated using doT templates in [dot](https://github.com/ajv-validator/ajv/tree/master/lib/dot) folder. Templates are precompiled so doT is not a run-time dependency. - -`npm run build` - compiles templates to [dotjs](https://github.com/ajv-validator/ajv/tree/master/lib/dotjs) folder. - -`npm run watch` - automatically compiles templates when files in dot folder change - -Please see [Contributing guidelines](https://github.com/ajv-validator/ajv/blob/master/CONTRIBUTING.md) - - -## Changes history - -See https://github.com/ajv-validator/ajv/releases - -__Please note__: [Changes in version 7.0.0-beta](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0-beta.0) - -[Version 6.0.0](https://github.com/ajv-validator/ajv/releases/tag/v6.0.0). - -## Code of conduct - -Please review and follow the [Code of conduct](https://github.com/ajv-validator/ajv/blob/master/CODE_OF_CONDUCT.md). - -Please report any unacceptable behaviour to ajv.validator@gmail.com - it will be reviewed by the project team. - - -## Open-source software support - -Ajv is a part of [Tidelift subscription](https://tidelift.com/subscription/pkg/npm-ajv?utm_source=npm-ajv&utm_medium=referral&utm_campaign=readme) - it provides a centralised support to open-source software users, in addition to the support provided by software maintainers. - - -## License - -[MIT](https://github.com/ajv-validator/ajv/blob/master/LICENSE) diff --git a/deps/npm/node_modules/ajv/dist/ajv.bundle.js b/deps/npm/node_modules/ajv/dist/ajv.bundle.js deleted file mode 100644 index e4d9d156ff7578..00000000000000 --- a/deps/npm/node_modules/ajv/dist/ajv.bundle.js +++ /dev/null @@ -1,7189 +0,0 @@ -(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.Ajv = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i; -// For the source: https://gist.github.com/dperini/729294 -// For test cases: https://mathiasbynens.be/demo/url-regex -// @todo Delete current URL in favour of the commented out URL rule when this issue is fixed https://github.com/eslint/eslint/issues/7983. -// var URL = /^(?:(?:https?|ftp):\/\/)(?:\S+(?::\S*)?@)?(?:(?!10(?:\.\d{1,3}){3})(?!127(?:\.\d{1,3}){3})(?!169\.254(?:\.\d{1,3}){2})(?!192\.168(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u{00a1}-\u{ffff}0-9]+-)*[a-z\u{00a1}-\u{ffff}0-9]+)(?:\.(?:[a-z\u{00a1}-\u{ffff}0-9]+-)*[a-z\u{00a1}-\u{ffff}0-9]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu; -var URL = /^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i; -var UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i; -var JSON_POINTER = /^(?:\/(?:[^~/]|~0|~1)*)*$/; -var JSON_POINTER_URI_FRAGMENT = /^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i; -var RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/; - - -module.exports = formats; - -function formats(mode) { - mode = mode == 'full' ? 'full' : 'fast'; - return util.copy(formats[mode]); -} - - -formats.fast = { - // date: http://tools.ietf.org/html/rfc3339#section-5.6 - date: /^\d\d\d\d-[0-1]\d-[0-3]\d$/, - // date-time: http://tools.ietf.org/html/rfc3339#section-5.6 - time: /^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i, - 'date-time': /^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i, - // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js - uri: /^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i, - 'uri-reference': /^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i, - 'uri-template': URITEMPLATE, - url: URL, - // email (sources from jsen validator): - // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363 - // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'willful violation') - email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i, - hostname: HOSTNAME, - // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html - ipv4: /^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/, - // optimized http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses - ipv6: /^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i, - regex: regex, - // uuid: http://tools.ietf.org/html/rfc4122 - uuid: UUID, - // JSON-pointer: https://tools.ietf.org/html/rfc6901 - // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A - 'json-pointer': JSON_POINTER, - 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT, - // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00 - 'relative-json-pointer': RELATIVE_JSON_POINTER -}; - - -formats.full = { - date: date, - time: time, - 'date-time': date_time, - uri: uri, - 'uri-reference': URIREF, - 'uri-template': URITEMPLATE, - url: URL, - email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i, - hostname: HOSTNAME, - ipv4: /^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/, - ipv6: /^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i, - regex: regex, - uuid: UUID, - 'json-pointer': JSON_POINTER, - 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT, - 'relative-json-pointer': RELATIVE_JSON_POINTER -}; - - -function isLeapYear(year) { - // https://tools.ietf.org/html/rfc3339#appendix-C - return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0); -} - - -function date(str) { - // full-date from http://tools.ietf.org/html/rfc3339#section-5.6 - var matches = str.match(DATE); - if (!matches) return false; - - var year = +matches[1]; - var month = +matches[2]; - var day = +matches[3]; - - return month >= 1 && month <= 12 && day >= 1 && - day <= (month == 2 && isLeapYear(year) ? 29 : DAYS[month]); -} - - -function time(str, full) { - var matches = str.match(TIME); - if (!matches) return false; - - var hour = matches[1]; - var minute = matches[2]; - var second = matches[3]; - var timeZone = matches[5]; - return ((hour <= 23 && minute <= 59 && second <= 59) || - (hour == 23 && minute == 59 && second == 60)) && - (!full || timeZone); -} - - -var DATE_TIME_SEPARATOR = /t|\s/i; -function date_time(str) { - // http://tools.ietf.org/html/rfc3339#section-5.6 - var dateTime = str.split(DATE_TIME_SEPARATOR); - return dateTime.length == 2 && date(dateTime[0]) && time(dateTime[1], true); -} - - -var NOT_URI_FRAGMENT = /\/|:/; -function uri(str) { - // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required "." - return NOT_URI_FRAGMENT.test(str) && URI.test(str); -} - - -var Z_ANCHOR = /[^\\]\\Z/; -function regex(str) { - if (Z_ANCHOR.test(str)) return false; - try { - new RegExp(str); - return true; - } catch(e) { - return false; - } -} - -},{"./util":10}],5:[function(require,module,exports){ -'use strict'; - -var resolve = require('./resolve') - , util = require('./util') - , errorClasses = require('./error_classes') - , stableStringify = require('fast-json-stable-stringify'); - -var validateGenerator = require('../dotjs/validate'); - -/** - * Functions below are used inside compiled validations function - */ - -var ucs2length = util.ucs2length; -var equal = require('fast-deep-equal'); - -// this error is thrown by async schemas to return validation errors via exception -var ValidationError = errorClasses.Validation; - -module.exports = compile; - - -/** - * Compiles schema to validation function - * @this Ajv - * @param {Object} schema schema object - * @param {Object} root object with information about the root schema for this schema - * @param {Object} localRefs the hash of local references inside the schema (created by resolve.id), used for inline resolution - * @param {String} baseId base ID for IDs in the schema - * @return {Function} validation function - */ -function compile(schema, root, localRefs, baseId) { - /* jshint validthis: true, evil: true */ - /* eslint no-shadow: 0 */ - var self = this - , opts = this._opts - , refVal = [ undefined ] - , refs = {} - , patterns = [] - , patternsHash = {} - , defaults = [] - , defaultsHash = {} - , customRules = []; - - root = root || { schema: schema, refVal: refVal, refs: refs }; - - var c = checkCompiling.call(this, schema, root, baseId); - var compilation = this._compilations[c.index]; - if (c.compiling) return (compilation.callValidate = callValidate); - - var formats = this._formats; - var RULES = this.RULES; - - try { - var v = localCompile(schema, root, localRefs, baseId); - compilation.validate = v; - var cv = compilation.callValidate; - if (cv) { - cv.schema = v.schema; - cv.errors = null; - cv.refs = v.refs; - cv.refVal = v.refVal; - cv.root = v.root; - cv.$async = v.$async; - if (opts.sourceCode) cv.source = v.source; - } - return v; - } finally { - endCompiling.call(this, schema, root, baseId); - } - - /* @this {*} - custom context, see passContext option */ - function callValidate() { - /* jshint validthis: true */ - var validate = compilation.validate; - var result = validate.apply(this, arguments); - callValidate.errors = validate.errors; - return result; - } - - function localCompile(_schema, _root, localRefs, baseId) { - var isRoot = !_root || (_root && _root.schema == _schema); - if (_root.schema != root.schema) - return compile.call(self, _schema, _root, localRefs, baseId); - - var $async = _schema.$async === true; - - var sourceCode = validateGenerator({ - isTop: true, - schema: _schema, - isRoot: isRoot, - baseId: baseId, - root: _root, - schemaPath: '', - errSchemaPath: '#', - errorPath: '""', - MissingRefError: errorClasses.MissingRef, - RULES: RULES, - validate: validateGenerator, - util: util, - resolve: resolve, - resolveRef: resolveRef, - usePattern: usePattern, - useDefault: useDefault, - useCustomRule: useCustomRule, - opts: opts, - formats: formats, - logger: self.logger, - self: self - }); - - sourceCode = vars(refVal, refValCode) + vars(patterns, patternCode) - + vars(defaults, defaultCode) + vars(customRules, customRuleCode) - + sourceCode; - - if (opts.processCode) sourceCode = opts.processCode(sourceCode, _schema); - // console.log('\n\n\n *** \n', JSON.stringify(sourceCode)); - var validate; - try { - var makeValidate = new Function( - 'self', - 'RULES', - 'formats', - 'root', - 'refVal', - 'defaults', - 'customRules', - 'equal', - 'ucs2length', - 'ValidationError', - sourceCode - ); - - validate = makeValidate( - self, - RULES, - formats, - root, - refVal, - defaults, - customRules, - equal, - ucs2length, - ValidationError - ); - - refVal[0] = validate; - } catch(e) { - self.logger.error('Error compiling schema, function code:', sourceCode); - throw e; - } - - validate.schema = _schema; - validate.errors = null; - validate.refs = refs; - validate.refVal = refVal; - validate.root = isRoot ? validate : _root; - if ($async) validate.$async = true; - if (opts.sourceCode === true) { - validate.source = { - code: sourceCode, - patterns: patterns, - defaults: defaults - }; - } - - return validate; - } - - function resolveRef(baseId, ref, isRoot) { - ref = resolve.url(baseId, ref); - var refIndex = refs[ref]; - var _refVal, refCode; - if (refIndex !== undefined) { - _refVal = refVal[refIndex]; - refCode = 'refVal[' + refIndex + ']'; - return resolvedRef(_refVal, refCode); - } - if (!isRoot && root.refs) { - var rootRefId = root.refs[ref]; - if (rootRefId !== undefined) { - _refVal = root.refVal[rootRefId]; - refCode = addLocalRef(ref, _refVal); - return resolvedRef(_refVal, refCode); - } - } - - refCode = addLocalRef(ref); - var v = resolve.call(self, localCompile, root, ref); - if (v === undefined) { - var localSchema = localRefs && localRefs[ref]; - if (localSchema) { - v = resolve.inlineRef(localSchema, opts.inlineRefs) - ? localSchema - : compile.call(self, localSchema, root, localRefs, baseId); - } - } - - if (v === undefined) { - removeLocalRef(ref); - } else { - replaceLocalRef(ref, v); - return resolvedRef(v, refCode); - } - } - - function addLocalRef(ref, v) { - var refId = refVal.length; - refVal[refId] = v; - refs[ref] = refId; - return 'refVal' + refId; - } - - function removeLocalRef(ref) { - delete refs[ref]; - } - - function replaceLocalRef(ref, v) { - var refId = refs[ref]; - refVal[refId] = v; - } - - function resolvedRef(refVal, code) { - return typeof refVal == 'object' || typeof refVal == 'boolean' - ? { code: code, schema: refVal, inline: true } - : { code: code, $async: refVal && !!refVal.$async }; - } - - function usePattern(regexStr) { - var index = patternsHash[regexStr]; - if (index === undefined) { - index = patternsHash[regexStr] = patterns.length; - patterns[index] = regexStr; - } - return 'pattern' + index; - } - - function useDefault(value) { - switch (typeof value) { - case 'boolean': - case 'number': - return '' + value; - case 'string': - return util.toQuotedString(value); - case 'object': - if (value === null) return 'null'; - var valueStr = stableStringify(value); - var index = defaultsHash[valueStr]; - if (index === undefined) { - index = defaultsHash[valueStr] = defaults.length; - defaults[index] = value; - } - return 'default' + index; - } - } - - function useCustomRule(rule, schema, parentSchema, it) { - if (self._opts.validateSchema !== false) { - var deps = rule.definition.dependencies; - if (deps && !deps.every(function(keyword) { - return Object.prototype.hasOwnProperty.call(parentSchema, keyword); - })) - throw new Error('parent schema must have all required keywords: ' + deps.join(',')); - - var validateSchema = rule.definition.validateSchema; - if (validateSchema) { - var valid = validateSchema(schema); - if (!valid) { - var message = 'keyword schema is invalid: ' + self.errorsText(validateSchema.errors); - if (self._opts.validateSchema == 'log') self.logger.error(message); - else throw new Error(message); - } - } - } - - var compile = rule.definition.compile - , inline = rule.definition.inline - , macro = rule.definition.macro; - - var validate; - if (compile) { - validate = compile.call(self, schema, parentSchema, it); - } else if (macro) { - validate = macro.call(self, schema, parentSchema, it); - if (opts.validateSchema !== false) self.validateSchema(validate, true); - } else if (inline) { - validate = inline.call(self, it, rule.keyword, schema, parentSchema); - } else { - validate = rule.definition.validate; - if (!validate) return; - } - - if (validate === undefined) - throw new Error('custom keyword "' + rule.keyword + '"failed to compile'); - - var index = customRules.length; - customRules[index] = validate; - - return { - code: 'customRule' + index, - validate: validate - }; - } -} - - -/** - * Checks if the schema is currently compiled - * @this Ajv - * @param {Object} schema schema to compile - * @param {Object} root root object - * @param {String} baseId base schema ID - * @return {Object} object with properties "index" (compilation index) and "compiling" (boolean) - */ -function checkCompiling(schema, root, baseId) { - /* jshint validthis: true */ - var index = compIndex.call(this, schema, root, baseId); - if (index >= 0) return { index: index, compiling: true }; - index = this._compilations.length; - this._compilations[index] = { - schema: schema, - root: root, - baseId: baseId - }; - return { index: index, compiling: false }; -} - - -/** - * Removes the schema from the currently compiled list - * @this Ajv - * @param {Object} schema schema to compile - * @param {Object} root root object - * @param {String} baseId base schema ID - */ -function endCompiling(schema, root, baseId) { - /* jshint validthis: true */ - var i = compIndex.call(this, schema, root, baseId); - if (i >= 0) this._compilations.splice(i, 1); -} - - -/** - * Index of schema compilation in the currently compiled list - * @this Ajv - * @param {Object} schema schema to compile - * @param {Object} root root object - * @param {String} baseId base schema ID - * @return {Integer} compilation index - */ -function compIndex(schema, root, baseId) { - /* jshint validthis: true */ - for (var i=0; i= 0xD800 && value <= 0xDBFF && pos < len) { - // high surrogate, and there is a next character - value = str.charCodeAt(pos); - if ((value & 0xFC00) == 0xDC00) pos++; // low surrogate - } - } - return length; -}; - -},{}],10:[function(require,module,exports){ -'use strict'; - - -module.exports = { - copy: copy, - checkDataType: checkDataType, - checkDataTypes: checkDataTypes, - coerceToTypes: coerceToTypes, - toHash: toHash, - getProperty: getProperty, - escapeQuotes: escapeQuotes, - equal: require('fast-deep-equal'), - ucs2length: require('./ucs2length'), - varOccurences: varOccurences, - varReplace: varReplace, - schemaHasRules: schemaHasRules, - schemaHasRulesExcept: schemaHasRulesExcept, - schemaUnknownRules: schemaUnknownRules, - toQuotedString: toQuotedString, - getPathExpr: getPathExpr, - getPath: getPath, - getData: getData, - unescapeFragment: unescapeFragment, - unescapeJsonPointer: unescapeJsonPointer, - escapeFragment: escapeFragment, - escapeJsonPointer: escapeJsonPointer -}; - - -function copy(o, to) { - to = to || {}; - for (var key in o) to[key] = o[key]; - return to; -} - - -function checkDataType(dataType, data, strictNumbers, negate) { - var EQUAL = negate ? ' !== ' : ' === ' - , AND = negate ? ' || ' : ' && ' - , OK = negate ? '!' : '' - , NOT = negate ? '' : '!'; - switch (dataType) { - case 'null': return data + EQUAL + 'null'; - case 'array': return OK + 'Array.isArray(' + data + ')'; - case 'object': return '(' + OK + data + AND + - 'typeof ' + data + EQUAL + '"object"' + AND + - NOT + 'Array.isArray(' + data + '))'; - case 'integer': return '(typeof ' + data + EQUAL + '"number"' + AND + - NOT + '(' + data + ' % 1)' + - AND + data + EQUAL + data + - (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')'; - case 'number': return '(typeof ' + data + EQUAL + '"' + dataType + '"' + - (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')'; - default: return 'typeof ' + data + EQUAL + '"' + dataType + '"'; - } -} - - -function checkDataTypes(dataTypes, data, strictNumbers) { - switch (dataTypes.length) { - case 1: return checkDataType(dataTypes[0], data, strictNumbers, true); - default: - var code = ''; - var types = toHash(dataTypes); - if (types.array && types.object) { - code = types.null ? '(': '(!' + data + ' || '; - code += 'typeof ' + data + ' !== "object")'; - delete types.null; - delete types.array; - delete types.object; - } - if (types.number) delete types.integer; - for (var t in types) - code += (code ? ' && ' : '' ) + checkDataType(t, data, strictNumbers, true); - - return code; - } -} - - -var COERCE_TO_TYPES = toHash([ 'string', 'number', 'integer', 'boolean', 'null' ]); -function coerceToTypes(optionCoerceTypes, dataTypes) { - if (Array.isArray(dataTypes)) { - var types = []; - for (var i=0; i= lvl) throw new Error('Cannot access property/index ' + up + ' levels up, current level is ' + lvl); - return paths[lvl - up]; - } - - if (up > lvl) throw new Error('Cannot access data ' + up + ' levels up, current level is ' + lvl); - data = 'data' + ((lvl - up) || ''); - if (!jsonPointer) return data; - } - - var expr = data; - var segments = jsonPointer.split('/'); - for (var i=0; i', - $notOp = $isMax ? '>' : '<', - $errorKeyword = undefined; - if (!($isData || typeof $schema == 'number' || $schema === undefined)) { - throw new Error($keyword + ' must be number'); - } - if (!($isDataExcl || $schemaExcl === undefined || typeof $schemaExcl == 'number' || typeof $schemaExcl == 'boolean')) { - throw new Error($exclusiveKeyword + ' must be number or boolean'); - } - if ($isDataExcl) { - var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr), - $exclusive = 'exclusive' + $lvl, - $exclType = 'exclType' + $lvl, - $exclIsNumber = 'exclIsNumber' + $lvl, - $opExpr = 'op' + $lvl, - $opStr = '\' + ' + $opExpr + ' + \''; - out += ' var schemaExcl' + ($lvl) + ' = ' + ($schemaValueExcl) + '; '; - $schemaValueExcl = 'schemaExcl' + $lvl; - out += ' var ' + ($exclusive) + '; var ' + ($exclType) + ' = typeof ' + ($schemaValueExcl) + '; if (' + ($exclType) + ' != \'boolean\' && ' + ($exclType) + ' != \'undefined\' && ' + ($exclType) + ' != \'number\') { '; - var $errorKeyword = $exclusiveKeyword; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ($errorKeyword || '_exclusiveLimit') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} '; - if (it.opts.messages !== false) { - out += ' , message: \'' + ($exclusiveKeyword) + ' should be boolean\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += ' } else if ( '; - if ($isData) { - out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || '; - } - out += ' ' + ($exclType) + ' == \'number\' ? ( (' + ($exclusive) + ' = ' + ($schemaValue) + ' === undefined || ' + ($schemaValueExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ') ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValueExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) : ( (' + ($exclusive) + ' = ' + ($schemaValueExcl) + ' === true) ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValue) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { var op' + ($lvl) + ' = ' + ($exclusive) + ' ? \'' + ($op) + '\' : \'' + ($op) + '=\'; '; - if ($schema === undefined) { - $errorKeyword = $exclusiveKeyword; - $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword; - $schemaValue = $schemaValueExcl; - $isData = $isDataExcl; - } - } else { - var $exclIsNumber = typeof $schemaExcl == 'number', - $opStr = $op; - if ($exclIsNumber && $isData) { - var $opExpr = '\'' + $opStr + '\''; - out += ' if ( '; - if ($isData) { - out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || '; - } - out += ' ( ' + ($schemaValue) + ' === undefined || ' + ($schemaExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ' ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { '; - } else { - if ($exclIsNumber && $schema === undefined) { - $exclusive = true; - $errorKeyword = $exclusiveKeyword; - $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword; - $schemaValue = $schemaExcl; - $notOp += '='; - } else { - if ($exclIsNumber) $schemaValue = Math[$isMax ? 'min' : 'max']($schemaExcl, $schema); - if ($schemaExcl === ($exclIsNumber ? $schemaValue : true)) { - $exclusive = true; - $errorKeyword = $exclusiveKeyword; - $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword; - $notOp += '='; - } else { - $exclusive = false; - $opStr += '='; - } - } - var $opExpr = '\'' + $opStr + '\''; - out += ' if ( '; - if ($isData) { - out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || '; - } - out += ' ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' || ' + ($data) + ' !== ' + ($data) + ') { '; - } - } - $errorKeyword = $errorKeyword || $keyword; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ($errorKeyword || '_limit') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { comparison: ' + ($opExpr) + ', limit: ' + ($schemaValue) + ', exclusive: ' + ($exclusive) + ' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should be ' + ($opStr) + ' '; - if ($isData) { - out += '\' + ' + ($schemaValue); - } else { - out += '' + ($schemaValue) + '\''; - } - } - if (it.opts.verbose) { - out += ' , schema: '; - if ($isData) { - out += 'validate.schema' + ($schemaPath); - } else { - out += '' + ($schema); - } - out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += ' } '; - if ($breakOnError) { - out += ' else { '; - } - return out; -} - -},{}],14:[function(require,module,exports){ -'use strict'; -module.exports = function generate__limitItems(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $errorKeyword; - var $data = 'data' + ($dataLvl || ''); - var $isData = it.opts.$data && $schema && $schema.$data, - $schemaValue; - if ($isData) { - out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; - $schemaValue = 'schema' + $lvl; - } else { - $schemaValue = $schema; - } - if (!($isData || typeof $schema == 'number')) { - throw new Error($keyword + ' must be number'); - } - var $op = $keyword == 'maxItems' ? '>' : '<'; - out += 'if ( '; - if ($isData) { - out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || '; - } - out += ' ' + ($data) + '.length ' + ($op) + ' ' + ($schemaValue) + ') { '; - var $errorKeyword = $keyword; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ($errorKeyword || '_limitItems') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should NOT have '; - if ($keyword == 'maxItems') { - out += 'more'; - } else { - out += 'fewer'; - } - out += ' than '; - if ($isData) { - out += '\' + ' + ($schemaValue) + ' + \''; - } else { - out += '' + ($schema); - } - out += ' items\' '; - } - if (it.opts.verbose) { - out += ' , schema: '; - if ($isData) { - out += 'validate.schema' + ($schemaPath); - } else { - out += '' + ($schema); - } - out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += '} '; - if ($breakOnError) { - out += ' else { '; - } - return out; -} - -},{}],15:[function(require,module,exports){ -'use strict'; -module.exports = function generate__limitLength(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $errorKeyword; - var $data = 'data' + ($dataLvl || ''); - var $isData = it.opts.$data && $schema && $schema.$data, - $schemaValue; - if ($isData) { - out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; - $schemaValue = 'schema' + $lvl; - } else { - $schemaValue = $schema; - } - if (!($isData || typeof $schema == 'number')) { - throw new Error($keyword + ' must be number'); - } - var $op = $keyword == 'maxLength' ? '>' : '<'; - out += 'if ( '; - if ($isData) { - out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || '; - } - if (it.opts.unicode === false) { - out += ' ' + ($data) + '.length '; - } else { - out += ' ucs2length(' + ($data) + ') '; - } - out += ' ' + ($op) + ' ' + ($schemaValue) + ') { '; - var $errorKeyword = $keyword; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ($errorKeyword || '_limitLength') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should NOT be '; - if ($keyword == 'maxLength') { - out += 'longer'; - } else { - out += 'shorter'; - } - out += ' than '; - if ($isData) { - out += '\' + ' + ($schemaValue) + ' + \''; - } else { - out += '' + ($schema); - } - out += ' characters\' '; - } - if (it.opts.verbose) { - out += ' , schema: '; - if ($isData) { - out += 'validate.schema' + ($schemaPath); - } else { - out += '' + ($schema); - } - out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += '} '; - if ($breakOnError) { - out += ' else { '; - } - return out; -} - -},{}],16:[function(require,module,exports){ -'use strict'; -module.exports = function generate__limitProperties(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $errorKeyword; - var $data = 'data' + ($dataLvl || ''); - var $isData = it.opts.$data && $schema && $schema.$data, - $schemaValue; - if ($isData) { - out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; - $schemaValue = 'schema' + $lvl; - } else { - $schemaValue = $schema; - } - if (!($isData || typeof $schema == 'number')) { - throw new Error($keyword + ' must be number'); - } - var $op = $keyword == 'maxProperties' ? '>' : '<'; - out += 'if ( '; - if ($isData) { - out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || '; - } - out += ' Object.keys(' + ($data) + ').length ' + ($op) + ' ' + ($schemaValue) + ') { '; - var $errorKeyword = $keyword; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ($errorKeyword || '_limitProperties') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should NOT have '; - if ($keyword == 'maxProperties') { - out += 'more'; - } else { - out += 'fewer'; - } - out += ' than '; - if ($isData) { - out += '\' + ' + ($schemaValue) + ' + \''; - } else { - out += '' + ($schema); - } - out += ' properties\' '; - } - if (it.opts.verbose) { - out += ' , schema: '; - if ($isData) { - out += 'validate.schema' + ($schemaPath); - } else { - out += '' + ($schema); - } - out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += '} '; - if ($breakOnError) { - out += ' else { '; - } - return out; -} - -},{}],17:[function(require,module,exports){ -'use strict'; -module.exports = function generate_allOf(it, $keyword, $ruleType) { - var out = ' '; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $it = it.util.copy(it); - var $closingBraces = ''; - $it.level++; - var $nextValid = 'valid' + $it.level; - var $currentBaseId = $it.baseId, - $allSchemasEmpty = true; - var arr1 = $schema; - if (arr1) { - var $sch, $i = -1, - l1 = arr1.length - 1; - while ($i < l1) { - $sch = arr1[$i += 1]; - if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) { - $allSchemasEmpty = false; - $it.schema = $sch; - $it.schemaPath = $schemaPath + '[' + $i + ']'; - $it.errSchemaPath = $errSchemaPath + '/' + $i; - out += ' ' + (it.validate($it)) + ' '; - $it.baseId = $currentBaseId; - if ($breakOnError) { - out += ' if (' + ($nextValid) + ') { '; - $closingBraces += '}'; - } - } - } - } - if ($breakOnError) { - if ($allSchemasEmpty) { - out += ' if (true) { '; - } else { - out += ' ' + ($closingBraces.slice(0, -1)) + ' '; - } - } - return out; -} - -},{}],18:[function(require,module,exports){ -'use strict'; -module.exports = function generate_anyOf(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $data = 'data' + ($dataLvl || ''); - var $valid = 'valid' + $lvl; - var $errs = 'errs__' + $lvl; - var $it = it.util.copy(it); - var $closingBraces = ''; - $it.level++; - var $nextValid = 'valid' + $it.level; - var $noEmptySchema = $schema.every(function($sch) { - return (it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all)); - }); - if ($noEmptySchema) { - var $currentBaseId = $it.baseId; - out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = false; '; - var $wasComposite = it.compositeRule; - it.compositeRule = $it.compositeRule = true; - var arr1 = $schema; - if (arr1) { - var $sch, $i = -1, - l1 = arr1.length - 1; - while ($i < l1) { - $sch = arr1[$i += 1]; - $it.schema = $sch; - $it.schemaPath = $schemaPath + '[' + $i + ']'; - $it.errSchemaPath = $errSchemaPath + '/' + $i; - out += ' ' + (it.validate($it)) + ' '; - $it.baseId = $currentBaseId; - out += ' ' + ($valid) + ' = ' + ($valid) + ' || ' + ($nextValid) + '; if (!' + ($valid) + ') { '; - $closingBraces += '}'; - } - } - it.compositeRule = $it.compositeRule = $wasComposite; - out += ' ' + ($closingBraces) + ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('anyOf') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} '; - if (it.opts.messages !== false) { - out += ' , message: \'should match some schema in anyOf\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError(vErrors); '; - } else { - out += ' validate.errors = vErrors; return false; '; - } - } - out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } '; - if (it.opts.allErrors) { - out += ' } '; - } - } else { - if ($breakOnError) { - out += ' if (true) { '; - } - } - return out; -} - -},{}],19:[function(require,module,exports){ -'use strict'; -module.exports = function generate_comment(it, $keyword, $ruleType) { - var out = ' '; - var $schema = it.schema[$keyword]; - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $comment = it.util.toQuotedString($schema); - if (it.opts.$comment === true) { - out += ' console.log(' + ($comment) + ');'; - } else if (typeof it.opts.$comment == 'function') { - out += ' self._opts.$comment(' + ($comment) + ', ' + (it.util.toQuotedString($errSchemaPath)) + ', validate.root.schema);'; - } - return out; -} - -},{}],20:[function(require,module,exports){ -'use strict'; -module.exports = function generate_const(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $data = 'data' + ($dataLvl || ''); - var $valid = 'valid' + $lvl; - var $isData = it.opts.$data && $schema && $schema.$data, - $schemaValue; - if ($isData) { - out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; - $schemaValue = 'schema' + $lvl; - } else { - $schemaValue = $schema; - } - if (!$isData) { - out += ' var schema' + ($lvl) + ' = validate.schema' + ($schemaPath) + ';'; - } - out += 'var ' + ($valid) + ' = equal(' + ($data) + ', schema' + ($lvl) + '); if (!' + ($valid) + ') { '; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('const') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValue: schema' + ($lvl) + ' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should be equal to constant\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += ' }'; - if ($breakOnError) { - out += ' else { '; - } - return out; -} - -},{}],21:[function(require,module,exports){ -'use strict'; -module.exports = function generate_contains(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $data = 'data' + ($dataLvl || ''); - var $valid = 'valid' + $lvl; - var $errs = 'errs__' + $lvl; - var $it = it.util.copy(it); - var $closingBraces = ''; - $it.level++; - var $nextValid = 'valid' + $it.level; - var $idx = 'i' + $lvl, - $dataNxt = $it.dataLevel = it.dataLevel + 1, - $nextData = 'data' + $dataNxt, - $currentBaseId = it.baseId, - $nonEmptySchema = (it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all)); - out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';'; - if ($nonEmptySchema) { - var $wasComposite = it.compositeRule; - it.compositeRule = $it.compositeRule = true; - $it.schema = $schema; - $it.schemaPath = $schemaPath; - $it.errSchemaPath = $errSchemaPath; - out += ' var ' + ($nextValid) + ' = false; for (var ' + ($idx) + ' = 0; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { '; - $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true); - var $passData = $data + '[' + $idx + ']'; - $it.dataPathArr[$dataNxt] = $idx; - var $code = it.validate($it); - $it.baseId = $currentBaseId; - if (it.util.varOccurences($code, $nextData) < 2) { - out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' '; - } else { - out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' '; - } - out += ' if (' + ($nextValid) + ') break; } '; - it.compositeRule = $it.compositeRule = $wasComposite; - out += ' ' + ($closingBraces) + ' if (!' + ($nextValid) + ') {'; - } else { - out += ' if (' + ($data) + '.length == 0) {'; - } - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('contains') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} '; - if (it.opts.messages !== false) { - out += ' , message: \'should contain a valid item\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += ' } else { '; - if ($nonEmptySchema) { - out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } '; - } - if (it.opts.allErrors) { - out += ' } '; - } - return out; -} - -},{}],22:[function(require,module,exports){ -'use strict'; -module.exports = function generate_custom(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $errorKeyword; - var $data = 'data' + ($dataLvl || ''); - var $valid = 'valid' + $lvl; - var $errs = 'errs__' + $lvl; - var $isData = it.opts.$data && $schema && $schema.$data, - $schemaValue; - if ($isData) { - out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; - $schemaValue = 'schema' + $lvl; - } else { - $schemaValue = $schema; - } - var $rule = this, - $definition = 'definition' + $lvl, - $rDef = $rule.definition, - $closingBraces = ''; - var $compile, $inline, $macro, $ruleValidate, $validateCode; - if ($isData && $rDef.$data) { - $validateCode = 'keywordValidate' + $lvl; - var $validateSchema = $rDef.validateSchema; - out += ' var ' + ($definition) + ' = RULES.custom[\'' + ($keyword) + '\'].definition; var ' + ($validateCode) + ' = ' + ($definition) + '.validate;'; - } else { - $ruleValidate = it.useCustomRule($rule, $schema, it.schema, it); - if (!$ruleValidate) return; - $schemaValue = 'validate.schema' + $schemaPath; - $validateCode = $ruleValidate.code; - $compile = $rDef.compile; - $inline = $rDef.inline; - $macro = $rDef.macro; - } - var $ruleErrs = $validateCode + '.errors', - $i = 'i' + $lvl, - $ruleErr = 'ruleErr' + $lvl, - $asyncKeyword = $rDef.async; - if ($asyncKeyword && !it.async) throw new Error('async keyword in sync schema'); - if (!($inline || $macro)) { - out += '' + ($ruleErrs) + ' = null;'; - } - out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';'; - if ($isData && $rDef.$data) { - $closingBraces += '}'; - out += ' if (' + ($schemaValue) + ' === undefined) { ' + ($valid) + ' = true; } else { '; - if ($validateSchema) { - $closingBraces += '}'; - out += ' ' + ($valid) + ' = ' + ($definition) + '.validateSchema(' + ($schemaValue) + '); if (' + ($valid) + ') { '; - } - } - if ($inline) { - if ($rDef.statements) { - out += ' ' + ($ruleValidate.validate) + ' '; - } else { - out += ' ' + ($valid) + ' = ' + ($ruleValidate.validate) + '; '; - } - } else if ($macro) { - var $it = it.util.copy(it); - var $closingBraces = ''; - $it.level++; - var $nextValid = 'valid' + $it.level; - $it.schema = $ruleValidate.validate; - $it.schemaPath = ''; - var $wasComposite = it.compositeRule; - it.compositeRule = $it.compositeRule = true; - var $code = it.validate($it).replace(/validate\.schema/g, $validateCode); - it.compositeRule = $it.compositeRule = $wasComposite; - out += ' ' + ($code); - } else { - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; - out += ' ' + ($validateCode) + '.call( '; - if (it.opts.passContext) { - out += 'this'; - } else { - out += 'self'; - } - if ($compile || $rDef.schema === false) { - out += ' , ' + ($data) + ' '; - } else { - out += ' , ' + ($schemaValue) + ' , ' + ($data) + ' , validate.schema' + (it.schemaPath) + ' '; - } - out += ' , (dataPath || \'\')'; - if (it.errorPath != '""') { - out += ' + ' + (it.errorPath); - } - var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData', - $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty'; - out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ' , rootData ) '; - var def_callRuleValidate = out; - out = $$outStack.pop(); - if ($rDef.errors === false) { - out += ' ' + ($valid) + ' = '; - if ($asyncKeyword) { - out += 'await '; - } - out += '' + (def_callRuleValidate) + '; '; - } else { - if ($asyncKeyword) { - $ruleErrs = 'customErrors' + $lvl; - out += ' var ' + ($ruleErrs) + ' = null; try { ' + ($valid) + ' = await ' + (def_callRuleValidate) + '; } catch (e) { ' + ($valid) + ' = false; if (e instanceof ValidationError) ' + ($ruleErrs) + ' = e.errors; else throw e; } '; - } else { - out += ' ' + ($ruleErrs) + ' = null; ' + ($valid) + ' = ' + (def_callRuleValidate) + '; '; - } - } - } - if ($rDef.modifying) { - out += ' if (' + ($parentData) + ') ' + ($data) + ' = ' + ($parentData) + '[' + ($parentDataProperty) + '];'; - } - out += '' + ($closingBraces); - if ($rDef.valid) { - if ($breakOnError) { - out += ' if (true) { '; - } - } else { - out += ' if ( '; - if ($rDef.valid === undefined) { - out += ' !'; - if ($macro) { - out += '' + ($nextValid); - } else { - out += '' + ($valid); - } - } else { - out += ' ' + (!$rDef.valid) + ' '; - } - out += ') { '; - $errorKeyword = $rule.keyword; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ($errorKeyword || 'custom') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { keyword: \'' + ($rule.keyword) + '\' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should pass "' + ($rule.keyword) + '" keyword validation\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - var def_customError = out; - out = $$outStack.pop(); - if ($inline) { - if ($rDef.errors) { - if ($rDef.errors != 'full') { - out += ' for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + ' 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) { - out += ' ' + ($nextValid) + ' = true; if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined '; - if ($ownProperties) { - out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($property)) + '\') '; - } - out += ') { '; - $it.schema = $sch; - $it.schemaPath = $schemaPath + it.util.getProperty($property); - $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($property); - out += ' ' + (it.validate($it)) + ' '; - $it.baseId = $currentBaseId; - out += ' } '; - if ($breakOnError) { - out += ' if (' + ($nextValid) + ') { '; - $closingBraces += '}'; - } - } - } - if ($breakOnError) { - out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {'; - } - return out; -} - -},{}],24:[function(require,module,exports){ -'use strict'; -module.exports = function generate_enum(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $data = 'data' + ($dataLvl || ''); - var $valid = 'valid' + $lvl; - var $isData = it.opts.$data && $schema && $schema.$data, - $schemaValue; - if ($isData) { - out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; - $schemaValue = 'schema' + $lvl; - } else { - $schemaValue = $schema; - } - var $i = 'i' + $lvl, - $vSchema = 'schema' + $lvl; - if (!$isData) { - out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + ';'; - } - out += 'var ' + ($valid) + ';'; - if ($isData) { - out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {'; - } - out += '' + ($valid) + ' = false;for (var ' + ($i) + '=0; ' + ($i) + '<' + ($vSchema) + '.length; ' + ($i) + '++) if (equal(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + '])) { ' + ($valid) + ' = true; break; }'; - if ($isData) { - out += ' } '; - } - out += ' if (!' + ($valid) + ') { '; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('enum') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValues: schema' + ($lvl) + ' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should be equal to one of the allowed values\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += ' }'; - if ($breakOnError) { - out += ' else { '; - } - return out; -} - -},{}],25:[function(require,module,exports){ -'use strict'; -module.exports = function generate_format(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $data = 'data' + ($dataLvl || ''); - if (it.opts.format === false) { - if ($breakOnError) { - out += ' if (true) { '; - } - return out; - } - var $isData = it.opts.$data && $schema && $schema.$data, - $schemaValue; - if ($isData) { - out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; - $schemaValue = 'schema' + $lvl; - } else { - $schemaValue = $schema; - } - var $unknownFormats = it.opts.unknownFormats, - $allowUnknown = Array.isArray($unknownFormats); - if ($isData) { - var $format = 'format' + $lvl, - $isObject = 'isObject' + $lvl, - $formatType = 'formatType' + $lvl; - out += ' var ' + ($format) + ' = formats[' + ($schemaValue) + ']; var ' + ($isObject) + ' = typeof ' + ($format) + ' == \'object\' && !(' + ($format) + ' instanceof RegExp) && ' + ($format) + '.validate; var ' + ($formatType) + ' = ' + ($isObject) + ' && ' + ($format) + '.type || \'string\'; if (' + ($isObject) + ') { '; - if (it.async) { - out += ' var async' + ($lvl) + ' = ' + ($format) + '.async; '; - } - out += ' ' + ($format) + ' = ' + ($format) + '.validate; } if ( '; - if ($isData) { - out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'string\') || '; - } - out += ' ('; - if ($unknownFormats != 'ignore') { - out += ' (' + ($schemaValue) + ' && !' + ($format) + ' '; - if ($allowUnknown) { - out += ' && self._opts.unknownFormats.indexOf(' + ($schemaValue) + ') == -1 '; - } - out += ') || '; - } - out += ' (' + ($format) + ' && ' + ($formatType) + ' == \'' + ($ruleType) + '\' && !(typeof ' + ($format) + ' == \'function\' ? '; - if (it.async) { - out += ' (async' + ($lvl) + ' ? await ' + ($format) + '(' + ($data) + ') : ' + ($format) + '(' + ($data) + ')) '; - } else { - out += ' ' + ($format) + '(' + ($data) + ') '; - } - out += ' : ' + ($format) + '.test(' + ($data) + '))))) {'; - } else { - var $format = it.formats[$schema]; - if (!$format) { - if ($unknownFormats == 'ignore') { - it.logger.warn('unknown format "' + $schema + '" ignored in schema at path "' + it.errSchemaPath + '"'); - if ($breakOnError) { - out += ' if (true) { '; - } - return out; - } else if ($allowUnknown && $unknownFormats.indexOf($schema) >= 0) { - if ($breakOnError) { - out += ' if (true) { '; - } - return out; - } else { - throw new Error('unknown format "' + $schema + '" is used in schema at path "' + it.errSchemaPath + '"'); - } - } - var $isObject = typeof $format == 'object' && !($format instanceof RegExp) && $format.validate; - var $formatType = $isObject && $format.type || 'string'; - if ($isObject) { - var $async = $format.async === true; - $format = $format.validate; - } - if ($formatType != $ruleType) { - if ($breakOnError) { - out += ' if (true) { '; - } - return out; - } - if ($async) { - if (!it.async) throw new Error('async format in sync schema'); - var $formatRef = 'formats' + it.util.getProperty($schema) + '.validate'; - out += ' if (!(await ' + ($formatRef) + '(' + ($data) + '))) { '; - } else { - out += ' if (! '; - var $formatRef = 'formats' + it.util.getProperty($schema); - if ($isObject) $formatRef += '.validate'; - if (typeof $format == 'function') { - out += ' ' + ($formatRef) + '(' + ($data) + ') '; - } else { - out += ' ' + ($formatRef) + '.test(' + ($data) + ') '; - } - out += ') { '; - } - } - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('format') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { format: '; - if ($isData) { - out += '' + ($schemaValue); - } else { - out += '' + (it.util.toQuotedString($schema)); - } - out += ' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should match format "'; - if ($isData) { - out += '\' + ' + ($schemaValue) + ' + \''; - } else { - out += '' + (it.util.escapeQuotes($schema)); - } - out += '"\' '; - } - if (it.opts.verbose) { - out += ' , schema: '; - if ($isData) { - out += 'validate.schema' + ($schemaPath); - } else { - out += '' + (it.util.toQuotedString($schema)); - } - out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += ' } '; - if ($breakOnError) { - out += ' else { '; - } - return out; -} - -},{}],26:[function(require,module,exports){ -'use strict'; -module.exports = function generate_if(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $data = 'data' + ($dataLvl || ''); - var $valid = 'valid' + $lvl; - var $errs = 'errs__' + $lvl; - var $it = it.util.copy(it); - $it.level++; - var $nextValid = 'valid' + $it.level; - var $thenSch = it.schema['then'], - $elseSch = it.schema['else'], - $thenPresent = $thenSch !== undefined && (it.opts.strictKeywords ? (typeof $thenSch == 'object' && Object.keys($thenSch).length > 0) || $thenSch === false : it.util.schemaHasRules($thenSch, it.RULES.all)), - $elsePresent = $elseSch !== undefined && (it.opts.strictKeywords ? (typeof $elseSch == 'object' && Object.keys($elseSch).length > 0) || $elseSch === false : it.util.schemaHasRules($elseSch, it.RULES.all)), - $currentBaseId = $it.baseId; - if ($thenPresent || $elsePresent) { - var $ifClause; - $it.createErrors = false; - $it.schema = $schema; - $it.schemaPath = $schemaPath; - $it.errSchemaPath = $errSchemaPath; - out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = true; '; - var $wasComposite = it.compositeRule; - it.compositeRule = $it.compositeRule = true; - out += ' ' + (it.validate($it)) + ' '; - $it.baseId = $currentBaseId; - $it.createErrors = true; - out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } '; - it.compositeRule = $it.compositeRule = $wasComposite; - if ($thenPresent) { - out += ' if (' + ($nextValid) + ') { '; - $it.schema = it.schema['then']; - $it.schemaPath = it.schemaPath + '.then'; - $it.errSchemaPath = it.errSchemaPath + '/then'; - out += ' ' + (it.validate($it)) + ' '; - $it.baseId = $currentBaseId; - out += ' ' + ($valid) + ' = ' + ($nextValid) + '; '; - if ($thenPresent && $elsePresent) { - $ifClause = 'ifClause' + $lvl; - out += ' var ' + ($ifClause) + ' = \'then\'; '; - } else { - $ifClause = '\'then\''; - } - out += ' } '; - if ($elsePresent) { - out += ' else { '; - } - } else { - out += ' if (!' + ($nextValid) + ') { '; - } - if ($elsePresent) { - $it.schema = it.schema['else']; - $it.schemaPath = it.schemaPath + '.else'; - $it.errSchemaPath = it.errSchemaPath + '/else'; - out += ' ' + (it.validate($it)) + ' '; - $it.baseId = $currentBaseId; - out += ' ' + ($valid) + ' = ' + ($nextValid) + '; '; - if ($thenPresent && $elsePresent) { - $ifClause = 'ifClause' + $lvl; - out += ' var ' + ($ifClause) + ' = \'else\'; '; - } else { - $ifClause = '\'else\''; - } - out += ' } '; - } - out += ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('if') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { failingKeyword: ' + ($ifClause) + ' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should match "\' + ' + ($ifClause) + ' + \'" schema\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError(vErrors); '; - } else { - out += ' validate.errors = vErrors; return false; '; - } - } - out += ' } '; - if ($breakOnError) { - out += ' else { '; - } - } else { - if ($breakOnError) { - out += ' if (true) { '; - } - } - return out; -} - -},{}],27:[function(require,module,exports){ -'use strict'; - -//all requires must be explicit because browserify won't work with dynamic requires -module.exports = { - '$ref': require('./ref'), - allOf: require('./allOf'), - anyOf: require('./anyOf'), - '$comment': require('./comment'), - const: require('./const'), - contains: require('./contains'), - dependencies: require('./dependencies'), - 'enum': require('./enum'), - format: require('./format'), - 'if': require('./if'), - items: require('./items'), - maximum: require('./_limit'), - minimum: require('./_limit'), - maxItems: require('./_limitItems'), - minItems: require('./_limitItems'), - maxLength: require('./_limitLength'), - minLength: require('./_limitLength'), - maxProperties: require('./_limitProperties'), - minProperties: require('./_limitProperties'), - multipleOf: require('./multipleOf'), - not: require('./not'), - oneOf: require('./oneOf'), - pattern: require('./pattern'), - properties: require('./properties'), - propertyNames: require('./propertyNames'), - required: require('./required'), - uniqueItems: require('./uniqueItems'), - validate: require('./validate') -}; - -},{"./_limit":13,"./_limitItems":14,"./_limitLength":15,"./_limitProperties":16,"./allOf":17,"./anyOf":18,"./comment":19,"./const":20,"./contains":21,"./dependencies":23,"./enum":24,"./format":25,"./if":26,"./items":28,"./multipleOf":29,"./not":30,"./oneOf":31,"./pattern":32,"./properties":33,"./propertyNames":34,"./ref":35,"./required":36,"./uniqueItems":37,"./validate":38}],28:[function(require,module,exports){ -'use strict'; -module.exports = function generate_items(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $data = 'data' + ($dataLvl || ''); - var $valid = 'valid' + $lvl; - var $errs = 'errs__' + $lvl; - var $it = it.util.copy(it); - var $closingBraces = ''; - $it.level++; - var $nextValid = 'valid' + $it.level; - var $idx = 'i' + $lvl, - $dataNxt = $it.dataLevel = it.dataLevel + 1, - $nextData = 'data' + $dataNxt, - $currentBaseId = it.baseId; - out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';'; - if (Array.isArray($schema)) { - var $additionalItems = it.schema.additionalItems; - if ($additionalItems === false) { - out += ' ' + ($valid) + ' = ' + ($data) + '.length <= ' + ($schema.length) + '; '; - var $currErrSchemaPath = $errSchemaPath; - $errSchemaPath = it.errSchemaPath + '/additionalItems'; - out += ' if (!' + ($valid) + ') { '; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('additionalItems') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schema.length) + ' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should NOT have more than ' + ($schema.length) + ' items\' '; - } - if (it.opts.verbose) { - out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += ' } '; - $errSchemaPath = $currErrSchemaPath; - if ($breakOnError) { - $closingBraces += '}'; - out += ' else { '; - } - } - var arr1 = $schema; - if (arr1) { - var $sch, $i = -1, - l1 = arr1.length - 1; - while ($i < l1) { - $sch = arr1[$i += 1]; - if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) { - out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($i) + ') { '; - var $passData = $data + '[' + $i + ']'; - $it.schema = $sch; - $it.schemaPath = $schemaPath + '[' + $i + ']'; - $it.errSchemaPath = $errSchemaPath + '/' + $i; - $it.errorPath = it.util.getPathExpr(it.errorPath, $i, it.opts.jsonPointers, true); - $it.dataPathArr[$dataNxt] = $i; - var $code = it.validate($it); - $it.baseId = $currentBaseId; - if (it.util.varOccurences($code, $nextData) < 2) { - out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' '; - } else { - out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' '; - } - out += ' } '; - if ($breakOnError) { - out += ' if (' + ($nextValid) + ') { '; - $closingBraces += '}'; - } - } - } - } - if (typeof $additionalItems == 'object' && (it.opts.strictKeywords ? (typeof $additionalItems == 'object' && Object.keys($additionalItems).length > 0) || $additionalItems === false : it.util.schemaHasRules($additionalItems, it.RULES.all))) { - $it.schema = $additionalItems; - $it.schemaPath = it.schemaPath + '.additionalItems'; - $it.errSchemaPath = it.errSchemaPath + '/additionalItems'; - out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($schema.length) + ') { for (var ' + ($idx) + ' = ' + ($schema.length) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { '; - $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true); - var $passData = $data + '[' + $idx + ']'; - $it.dataPathArr[$dataNxt] = $idx; - var $code = it.validate($it); - $it.baseId = $currentBaseId; - if (it.util.varOccurences($code, $nextData) < 2) { - out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' '; - } else { - out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' '; - } - if ($breakOnError) { - out += ' if (!' + ($nextValid) + ') break; '; - } - out += ' } } '; - if ($breakOnError) { - out += ' if (' + ($nextValid) + ') { '; - $closingBraces += '}'; - } - } - } else if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) { - $it.schema = $schema; - $it.schemaPath = $schemaPath; - $it.errSchemaPath = $errSchemaPath; - out += ' for (var ' + ($idx) + ' = ' + (0) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { '; - $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true); - var $passData = $data + '[' + $idx + ']'; - $it.dataPathArr[$dataNxt] = $idx; - var $code = it.validate($it); - $it.baseId = $currentBaseId; - if (it.util.varOccurences($code, $nextData) < 2) { - out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' '; - } else { - out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' '; - } - if ($breakOnError) { - out += ' if (!' + ($nextValid) + ') break; '; - } - out += ' }'; - } - if ($breakOnError) { - out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {'; - } - return out; -} - -},{}],29:[function(require,module,exports){ -'use strict'; -module.exports = function generate_multipleOf(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $data = 'data' + ($dataLvl || ''); - var $isData = it.opts.$data && $schema && $schema.$data, - $schemaValue; - if ($isData) { - out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; - $schemaValue = 'schema' + $lvl; - } else { - $schemaValue = $schema; - } - if (!($isData || typeof $schema == 'number')) { - throw new Error($keyword + ' must be number'); - } - out += 'var division' + ($lvl) + ';if ('; - if ($isData) { - out += ' ' + ($schemaValue) + ' !== undefined && ( typeof ' + ($schemaValue) + ' != \'number\' || '; - } - out += ' (division' + ($lvl) + ' = ' + ($data) + ' / ' + ($schemaValue) + ', '; - if (it.opts.multipleOfPrecision) { - out += ' Math.abs(Math.round(division' + ($lvl) + ') - division' + ($lvl) + ') > 1e-' + (it.opts.multipleOfPrecision) + ' '; - } else { - out += ' division' + ($lvl) + ' !== parseInt(division' + ($lvl) + ') '; - } - out += ' ) '; - if ($isData) { - out += ' ) '; - } - out += ' ) { '; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('multipleOf') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { multipleOf: ' + ($schemaValue) + ' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should be multiple of '; - if ($isData) { - out += '\' + ' + ($schemaValue); - } else { - out += '' + ($schemaValue) + '\''; - } - } - if (it.opts.verbose) { - out += ' , schema: '; - if ($isData) { - out += 'validate.schema' + ($schemaPath); - } else { - out += '' + ($schema); - } - out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += '} '; - if ($breakOnError) { - out += ' else { '; - } - return out; -} - -},{}],30:[function(require,module,exports){ -'use strict'; -module.exports = function generate_not(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $data = 'data' + ($dataLvl || ''); - var $errs = 'errs__' + $lvl; - var $it = it.util.copy(it); - $it.level++; - var $nextValid = 'valid' + $it.level; - if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) { - $it.schema = $schema; - $it.schemaPath = $schemaPath; - $it.errSchemaPath = $errSchemaPath; - out += ' var ' + ($errs) + ' = errors; '; - var $wasComposite = it.compositeRule; - it.compositeRule = $it.compositeRule = true; - $it.createErrors = false; - var $allErrorsOption; - if ($it.opts.allErrors) { - $allErrorsOption = $it.opts.allErrors; - $it.opts.allErrors = false; - } - out += ' ' + (it.validate($it)) + ' '; - $it.createErrors = true; - if ($allErrorsOption) $it.opts.allErrors = $allErrorsOption; - it.compositeRule = $it.compositeRule = $wasComposite; - out += ' if (' + ($nextValid) + ') { '; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('not') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} '; - if (it.opts.messages !== false) { - out += ' , message: \'should NOT be valid\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } '; - if (it.opts.allErrors) { - out += ' } '; - } - } else { - out += ' var err = '; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('not') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} '; - if (it.opts.messages !== false) { - out += ' , message: \'should NOT be valid\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - if ($breakOnError) { - out += ' if (false) { '; - } - } - return out; -} - -},{}],31:[function(require,module,exports){ -'use strict'; -module.exports = function generate_oneOf(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $data = 'data' + ($dataLvl || ''); - var $valid = 'valid' + $lvl; - var $errs = 'errs__' + $lvl; - var $it = it.util.copy(it); - var $closingBraces = ''; - $it.level++; - var $nextValid = 'valid' + $it.level; - var $currentBaseId = $it.baseId, - $prevValid = 'prevValid' + $lvl, - $passingSchemas = 'passingSchemas' + $lvl; - out += 'var ' + ($errs) + ' = errors , ' + ($prevValid) + ' = false , ' + ($valid) + ' = false , ' + ($passingSchemas) + ' = null; '; - var $wasComposite = it.compositeRule; - it.compositeRule = $it.compositeRule = true; - var arr1 = $schema; - if (arr1) { - var $sch, $i = -1, - l1 = arr1.length - 1; - while ($i < l1) { - $sch = arr1[$i += 1]; - if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) { - $it.schema = $sch; - $it.schemaPath = $schemaPath + '[' + $i + ']'; - $it.errSchemaPath = $errSchemaPath + '/' + $i; - out += ' ' + (it.validate($it)) + ' '; - $it.baseId = $currentBaseId; - } else { - out += ' var ' + ($nextValid) + ' = true; '; - } - if ($i) { - out += ' if (' + ($nextValid) + ' && ' + ($prevValid) + ') { ' + ($valid) + ' = false; ' + ($passingSchemas) + ' = [' + ($passingSchemas) + ', ' + ($i) + ']; } else { '; - $closingBraces += '}'; - } - out += ' if (' + ($nextValid) + ') { ' + ($valid) + ' = ' + ($prevValid) + ' = true; ' + ($passingSchemas) + ' = ' + ($i) + '; }'; - } - } - it.compositeRule = $it.compositeRule = $wasComposite; - out += '' + ($closingBraces) + 'if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('oneOf') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { passingSchemas: ' + ($passingSchemas) + ' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should match exactly one schema in oneOf\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError(vErrors); '; - } else { - out += ' validate.errors = vErrors; return false; '; - } - } - out += '} else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; }'; - if (it.opts.allErrors) { - out += ' } '; - } - return out; -} - -},{}],32:[function(require,module,exports){ -'use strict'; -module.exports = function generate_pattern(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $data = 'data' + ($dataLvl || ''); - var $isData = it.opts.$data && $schema && $schema.$data, - $schemaValue; - if ($isData) { - out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; - $schemaValue = 'schema' + $lvl; - } else { - $schemaValue = $schema; - } - var $regexp = $isData ? '(new RegExp(' + $schemaValue + '))' : it.usePattern($schema); - out += 'if ( '; - if ($isData) { - out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'string\') || '; - } - out += ' !' + ($regexp) + '.test(' + ($data) + ') ) { '; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('pattern') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { pattern: '; - if ($isData) { - out += '' + ($schemaValue); - } else { - out += '' + (it.util.toQuotedString($schema)); - } - out += ' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should match pattern "'; - if ($isData) { - out += '\' + ' + ($schemaValue) + ' + \''; - } else { - out += '' + (it.util.escapeQuotes($schema)); - } - out += '"\' '; - } - if (it.opts.verbose) { - out += ' , schema: '; - if ($isData) { - out += 'validate.schema' + ($schemaPath); - } else { - out += '' + (it.util.toQuotedString($schema)); - } - out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += '} '; - if ($breakOnError) { - out += ' else { '; - } - return out; -} - -},{}],33:[function(require,module,exports){ -'use strict'; -module.exports = function generate_properties(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $data = 'data' + ($dataLvl || ''); - var $errs = 'errs__' + $lvl; - var $it = it.util.copy(it); - var $closingBraces = ''; - $it.level++; - var $nextValid = 'valid' + $it.level; - var $key = 'key' + $lvl, - $idx = 'idx' + $lvl, - $dataNxt = $it.dataLevel = it.dataLevel + 1, - $nextData = 'data' + $dataNxt, - $dataProperties = 'dataProperties' + $lvl; - var $schemaKeys = Object.keys($schema || {}).filter(notProto), - $pProperties = it.schema.patternProperties || {}, - $pPropertyKeys = Object.keys($pProperties).filter(notProto), - $aProperties = it.schema.additionalProperties, - $someProperties = $schemaKeys.length || $pPropertyKeys.length, - $noAdditional = $aProperties === false, - $additionalIsSchema = typeof $aProperties == 'object' && Object.keys($aProperties).length, - $removeAdditional = it.opts.removeAdditional, - $checkAdditional = $noAdditional || $additionalIsSchema || $removeAdditional, - $ownProperties = it.opts.ownProperties, - $currentBaseId = it.baseId; - var $required = it.schema.required; - if ($required && !(it.opts.$data && $required.$data) && $required.length < it.opts.loopRequired) { - var $requiredHash = it.util.toHash($required); - } - - function notProto(p) { - return p !== '__proto__'; - } - out += 'var ' + ($errs) + ' = errors;var ' + ($nextValid) + ' = true;'; - if ($ownProperties) { - out += ' var ' + ($dataProperties) + ' = undefined;'; - } - if ($checkAdditional) { - if ($ownProperties) { - out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; '; - } else { - out += ' for (var ' + ($key) + ' in ' + ($data) + ') { '; - } - if ($someProperties) { - out += ' var isAdditional' + ($lvl) + ' = !(false '; - if ($schemaKeys.length) { - if ($schemaKeys.length > 8) { - out += ' || validate.schema' + ($schemaPath) + '.hasOwnProperty(' + ($key) + ') '; - } else { - var arr1 = $schemaKeys; - if (arr1) { - var $propertyKey, i1 = -1, - l1 = arr1.length - 1; - while (i1 < l1) { - $propertyKey = arr1[i1 += 1]; - out += ' || ' + ($key) + ' == ' + (it.util.toQuotedString($propertyKey)) + ' '; - } - } - } - } - if ($pPropertyKeys.length) { - var arr2 = $pPropertyKeys; - if (arr2) { - var $pProperty, $i = -1, - l2 = arr2.length - 1; - while ($i < l2) { - $pProperty = arr2[$i += 1]; - out += ' || ' + (it.usePattern($pProperty)) + '.test(' + ($key) + ') '; - } - } - } - out += ' ); if (isAdditional' + ($lvl) + ') { '; - } - if ($removeAdditional == 'all') { - out += ' delete ' + ($data) + '[' + ($key) + ']; '; - } else { - var $currentErrorPath = it.errorPath; - var $additionalProperty = '\' + ' + $key + ' + \''; - if (it.opts._errorDataPathProperty) { - it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers); - } - if ($noAdditional) { - if ($removeAdditional) { - out += ' delete ' + ($data) + '[' + ($key) + ']; '; - } else { - out += ' ' + ($nextValid) + ' = false; '; - var $currErrSchemaPath = $errSchemaPath; - $errSchemaPath = it.errSchemaPath + '/additionalProperties'; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('additionalProperties') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { additionalProperty: \'' + ($additionalProperty) + '\' } '; - if (it.opts.messages !== false) { - out += ' , message: \''; - if (it.opts._errorDataPathProperty) { - out += 'is an invalid additional property'; - } else { - out += 'should NOT have additional properties'; - } - out += '\' '; - } - if (it.opts.verbose) { - out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - $errSchemaPath = $currErrSchemaPath; - if ($breakOnError) { - out += ' break; '; - } - } - } else if ($additionalIsSchema) { - if ($removeAdditional == 'failing') { - out += ' var ' + ($errs) + ' = errors; '; - var $wasComposite = it.compositeRule; - it.compositeRule = $it.compositeRule = true; - $it.schema = $aProperties; - $it.schemaPath = it.schemaPath + '.additionalProperties'; - $it.errSchemaPath = it.errSchemaPath + '/additionalProperties'; - $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers); - var $passData = $data + '[' + $key + ']'; - $it.dataPathArr[$dataNxt] = $key; - var $code = it.validate($it); - $it.baseId = $currentBaseId; - if (it.util.varOccurences($code, $nextData) < 2) { - out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' '; - } else { - out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' '; - } - out += ' if (!' + ($nextValid) + ') { errors = ' + ($errs) + '; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete ' + ($data) + '[' + ($key) + ']; } '; - it.compositeRule = $it.compositeRule = $wasComposite; - } else { - $it.schema = $aProperties; - $it.schemaPath = it.schemaPath + '.additionalProperties'; - $it.errSchemaPath = it.errSchemaPath + '/additionalProperties'; - $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers); - var $passData = $data + '[' + $key + ']'; - $it.dataPathArr[$dataNxt] = $key; - var $code = it.validate($it); - $it.baseId = $currentBaseId; - if (it.util.varOccurences($code, $nextData) < 2) { - out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' '; - } else { - out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' '; - } - if ($breakOnError) { - out += ' if (!' + ($nextValid) + ') break; '; - } - } - } - it.errorPath = $currentErrorPath; - } - if ($someProperties) { - out += ' } '; - } - out += ' } '; - if ($breakOnError) { - out += ' if (' + ($nextValid) + ') { '; - $closingBraces += '}'; - } - } - var $useDefaults = it.opts.useDefaults && !it.compositeRule; - if ($schemaKeys.length) { - var arr3 = $schemaKeys; - if (arr3) { - var $propertyKey, i3 = -1, - l3 = arr3.length - 1; - while (i3 < l3) { - $propertyKey = arr3[i3 += 1]; - var $sch = $schema[$propertyKey]; - if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) { - var $prop = it.util.getProperty($propertyKey), - $passData = $data + $prop, - $hasDefault = $useDefaults && $sch.default !== undefined; - $it.schema = $sch; - $it.schemaPath = $schemaPath + $prop; - $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($propertyKey); - $it.errorPath = it.util.getPath(it.errorPath, $propertyKey, it.opts.jsonPointers); - $it.dataPathArr[$dataNxt] = it.util.toQuotedString($propertyKey); - var $code = it.validate($it); - $it.baseId = $currentBaseId; - if (it.util.varOccurences($code, $nextData) < 2) { - $code = it.util.varReplace($code, $nextData, $passData); - var $useData = $passData; - } else { - var $useData = $nextData; - out += ' var ' + ($nextData) + ' = ' + ($passData) + '; '; - } - if ($hasDefault) { - out += ' ' + ($code) + ' '; - } else { - if ($requiredHash && $requiredHash[$propertyKey]) { - out += ' if ( ' + ($useData) + ' === undefined '; - if ($ownProperties) { - out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') '; - } - out += ') { ' + ($nextValid) + ' = false; '; - var $currentErrorPath = it.errorPath, - $currErrSchemaPath = $errSchemaPath, - $missingProperty = it.util.escapeQuotes($propertyKey); - if (it.opts._errorDataPathProperty) { - it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers); - } - $errSchemaPath = it.errSchemaPath + '/required'; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } '; - if (it.opts.messages !== false) { - out += ' , message: \''; - if (it.opts._errorDataPathProperty) { - out += 'is a required property'; - } else { - out += 'should have required property \\\'' + ($missingProperty) + '\\\''; - } - out += '\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - $errSchemaPath = $currErrSchemaPath; - it.errorPath = $currentErrorPath; - out += ' } else { '; - } else { - if ($breakOnError) { - out += ' if ( ' + ($useData) + ' === undefined '; - if ($ownProperties) { - out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') '; - } - out += ') { ' + ($nextValid) + ' = true; } else { '; - } else { - out += ' if (' + ($useData) + ' !== undefined '; - if ($ownProperties) { - out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') '; - } - out += ' ) { '; - } - } - out += ' ' + ($code) + ' } '; - } - } - if ($breakOnError) { - out += ' if (' + ($nextValid) + ') { '; - $closingBraces += '}'; - } - } - } - } - if ($pPropertyKeys.length) { - var arr4 = $pPropertyKeys; - if (arr4) { - var $pProperty, i4 = -1, - l4 = arr4.length - 1; - while (i4 < l4) { - $pProperty = arr4[i4 += 1]; - var $sch = $pProperties[$pProperty]; - if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) { - $it.schema = $sch; - $it.schemaPath = it.schemaPath + '.patternProperties' + it.util.getProperty($pProperty); - $it.errSchemaPath = it.errSchemaPath + '/patternProperties/' + it.util.escapeFragment($pProperty); - if ($ownProperties) { - out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; '; - } else { - out += ' for (var ' + ($key) + ' in ' + ($data) + ') { '; - } - out += ' if (' + (it.usePattern($pProperty)) + '.test(' + ($key) + ')) { '; - $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers); - var $passData = $data + '[' + $key + ']'; - $it.dataPathArr[$dataNxt] = $key; - var $code = it.validate($it); - $it.baseId = $currentBaseId; - if (it.util.varOccurences($code, $nextData) < 2) { - out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' '; - } else { - out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' '; - } - if ($breakOnError) { - out += ' if (!' + ($nextValid) + ') break; '; - } - out += ' } '; - if ($breakOnError) { - out += ' else ' + ($nextValid) + ' = true; '; - } - out += ' } '; - if ($breakOnError) { - out += ' if (' + ($nextValid) + ') { '; - $closingBraces += '}'; - } - } - } - } - } - if ($breakOnError) { - out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {'; - } - return out; -} - -},{}],34:[function(require,module,exports){ -'use strict'; -module.exports = function generate_propertyNames(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $data = 'data' + ($dataLvl || ''); - var $errs = 'errs__' + $lvl; - var $it = it.util.copy(it); - var $closingBraces = ''; - $it.level++; - var $nextValid = 'valid' + $it.level; - out += 'var ' + ($errs) + ' = errors;'; - if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) { - $it.schema = $schema; - $it.schemaPath = $schemaPath; - $it.errSchemaPath = $errSchemaPath; - var $key = 'key' + $lvl, - $idx = 'idx' + $lvl, - $i = 'i' + $lvl, - $invalidName = '\' + ' + $key + ' + \'', - $dataNxt = $it.dataLevel = it.dataLevel + 1, - $nextData = 'data' + $dataNxt, - $dataProperties = 'dataProperties' + $lvl, - $ownProperties = it.opts.ownProperties, - $currentBaseId = it.baseId; - if ($ownProperties) { - out += ' var ' + ($dataProperties) + ' = undefined; '; - } - if ($ownProperties) { - out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; '; - } else { - out += ' for (var ' + ($key) + ' in ' + ($data) + ') { '; - } - out += ' var startErrs' + ($lvl) + ' = errors; '; - var $passData = $key; - var $wasComposite = it.compositeRule; - it.compositeRule = $it.compositeRule = true; - var $code = it.validate($it); - $it.baseId = $currentBaseId; - if (it.util.varOccurences($code, $nextData) < 2) { - out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' '; - } else { - out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' '; - } - it.compositeRule = $it.compositeRule = $wasComposite; - out += ' if (!' + ($nextValid) + ') { for (var ' + ($i) + '=startErrs' + ($lvl) + '; ' + ($i) + ' 0) || $propertySch === false : it.util.schemaHasRules($propertySch, it.RULES.all)))) { - $required[$required.length] = $property; - } - } - } - } else { - var $required = $schema; - } - } - if ($isData || $required.length) { - var $currentErrorPath = it.errorPath, - $loopRequired = $isData || $required.length >= it.opts.loopRequired, - $ownProperties = it.opts.ownProperties; - if ($breakOnError) { - out += ' var missing' + ($lvl) + '; '; - if ($loopRequired) { - if (!$isData) { - out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; '; - } - var $i = 'i' + $lvl, - $propertyPath = 'schema' + $lvl + '[' + $i + ']', - $missingProperty = '\' + ' + $propertyPath + ' + \''; - if (it.opts._errorDataPathProperty) { - it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers); - } - out += ' var ' + ($valid) + ' = true; '; - if ($isData) { - out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {'; - } - out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { ' + ($valid) + ' = ' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] !== undefined '; - if ($ownProperties) { - out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) '; - } - out += '; if (!' + ($valid) + ') break; } '; - if ($isData) { - out += ' } '; - } - out += ' if (!' + ($valid) + ') { '; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } '; - if (it.opts.messages !== false) { - out += ' , message: \''; - if (it.opts._errorDataPathProperty) { - out += 'is a required property'; - } else { - out += 'should have required property \\\'' + ($missingProperty) + '\\\''; - } - out += '\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += ' } else { '; - } else { - out += ' if ( '; - var arr2 = $required; - if (arr2) { - var $propertyKey, $i = -1, - l2 = arr2.length - 1; - while ($i < l2) { - $propertyKey = arr2[$i += 1]; - if ($i) { - out += ' || '; - } - var $prop = it.util.getProperty($propertyKey), - $useData = $data + $prop; - out += ' ( ( ' + ($useData) + ' === undefined '; - if ($ownProperties) { - out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') '; - } - out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) '; - } - } - out += ') { '; - var $propertyPath = 'missing' + $lvl, - $missingProperty = '\' + ' + $propertyPath + ' + \''; - if (it.opts._errorDataPathProperty) { - it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath; - } - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } '; - if (it.opts.messages !== false) { - out += ' , message: \''; - if (it.opts._errorDataPathProperty) { - out += 'is a required property'; - } else { - out += 'should have required property \\\'' + ($missingProperty) + '\\\''; - } - out += '\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += ' } else { '; - } - } else { - if ($loopRequired) { - if (!$isData) { - out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; '; - } - var $i = 'i' + $lvl, - $propertyPath = 'schema' + $lvl + '[' + $i + ']', - $missingProperty = '\' + ' + $propertyPath + ' + \''; - if (it.opts._errorDataPathProperty) { - it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers); - } - if ($isData) { - out += ' if (' + ($vSchema) + ' && !Array.isArray(' + ($vSchema) + ')) { var err = '; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } '; - if (it.opts.messages !== false) { - out += ' , message: \''; - if (it.opts._errorDataPathProperty) { - out += 'is a required property'; - } else { - out += 'should have required property \\\'' + ($missingProperty) + '\\\''; - } - out += '\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if (' + ($vSchema) + ' !== undefined) { '; - } - out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { if (' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] === undefined '; - if ($ownProperties) { - out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) '; - } - out += ') { var err = '; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } '; - if (it.opts.messages !== false) { - out += ' , message: \''; - if (it.opts._errorDataPathProperty) { - out += 'is a required property'; - } else { - out += 'should have required property \\\'' + ($missingProperty) + '\\\''; - } - out += '\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } '; - if ($isData) { - out += ' } '; - } - } else { - var arr3 = $required; - if (arr3) { - var $propertyKey, i3 = -1, - l3 = arr3.length - 1; - while (i3 < l3) { - $propertyKey = arr3[i3 += 1]; - var $prop = it.util.getProperty($propertyKey), - $missingProperty = it.util.escapeQuotes($propertyKey), - $useData = $data + $prop; - if (it.opts._errorDataPathProperty) { - it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers); - } - out += ' if ( ' + ($useData) + ' === undefined '; - if ($ownProperties) { - out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') '; - } - out += ') { var err = '; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } '; - if (it.opts.messages !== false) { - out += ' , message: \''; - if (it.opts._errorDataPathProperty) { - out += 'is a required property'; - } else { - out += 'should have required property \\\'' + ($missingProperty) + '\\\''; - } - out += '\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } '; - } - } - } - } - it.errorPath = $currentErrorPath; - } else if ($breakOnError) { - out += ' if (true) {'; - } - return out; -} - -},{}],37:[function(require,module,exports){ -'use strict'; -module.exports = function generate_uniqueItems(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $data = 'data' + ($dataLvl || ''); - var $valid = 'valid' + $lvl; - var $isData = it.opts.$data && $schema && $schema.$data, - $schemaValue; - if ($isData) { - out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; - $schemaValue = 'schema' + $lvl; - } else { - $schemaValue = $schema; - } - if (($schema || $isData) && it.opts.uniqueItems !== false) { - if ($isData) { - out += ' var ' + ($valid) + '; if (' + ($schemaValue) + ' === false || ' + ($schemaValue) + ' === undefined) ' + ($valid) + ' = true; else if (typeof ' + ($schemaValue) + ' != \'boolean\') ' + ($valid) + ' = false; else { '; - } - out += ' var i = ' + ($data) + '.length , ' + ($valid) + ' = true , j; if (i > 1) { '; - var $itemType = it.schema.items && it.schema.items.type, - $typeIsArray = Array.isArray($itemType); - if (!$itemType || $itemType == 'object' || $itemType == 'array' || ($typeIsArray && ($itemType.indexOf('object') >= 0 || $itemType.indexOf('array') >= 0))) { - out += ' outer: for (;i--;) { for (j = i; j--;) { if (equal(' + ($data) + '[i], ' + ($data) + '[j])) { ' + ($valid) + ' = false; break outer; } } } '; - } else { - out += ' var itemIndices = {}, item; for (;i--;) { var item = ' + ($data) + '[i]; '; - var $method = 'checkDataType' + ($typeIsArray ? 's' : ''); - out += ' if (' + (it.util[$method]($itemType, 'item', it.opts.strictNumbers, true)) + ') continue; '; - if ($typeIsArray) { - out += ' if (typeof item == \'string\') item = \'"\' + item; '; - } - out += ' if (typeof itemIndices[item] == \'number\') { ' + ($valid) + ' = false; j = itemIndices[item]; break; } itemIndices[item] = i; } '; - } - out += ' } '; - if ($isData) { - out += ' } '; - } - out += ' if (!' + ($valid) + ') { '; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('uniqueItems') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { i: i, j: j } '; - if (it.opts.messages !== false) { - out += ' , message: \'should NOT have duplicate items (items ## \' + j + \' and \' + i + \' are identical)\' '; - } - if (it.opts.verbose) { - out += ' , schema: '; - if ($isData) { - out += 'validate.schema' + ($schemaPath); - } else { - out += '' + ($schema); - } - out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += ' } '; - if ($breakOnError) { - out += ' else { '; - } - } else { - if ($breakOnError) { - out += ' if (true) { '; - } - } - return out; -} - -},{}],38:[function(require,module,exports){ -'use strict'; -module.exports = function generate_validate(it, $keyword, $ruleType) { - var out = ''; - var $async = it.schema.$async === true, - $refKeywords = it.util.schemaHasRulesExcept(it.schema, it.RULES.all, '$ref'), - $id = it.self._getId(it.schema); - if (it.opts.strictKeywords) { - var $unknownKwd = it.util.schemaUnknownRules(it.schema, it.RULES.keywords); - if ($unknownKwd) { - var $keywordsMsg = 'unknown keyword: ' + $unknownKwd; - if (it.opts.strictKeywords === 'log') it.logger.warn($keywordsMsg); - else throw new Error($keywordsMsg); - } - } - if (it.isTop) { - out += ' var validate = '; - if ($async) { - it.async = true; - out += 'async '; - } - out += 'function(data, dataPath, parentData, parentDataProperty, rootData) { \'use strict\'; '; - if ($id && (it.opts.sourceCode || it.opts.processCode)) { - out += ' ' + ('/\*# sourceURL=' + $id + ' */') + ' '; - } - } - if (typeof it.schema == 'boolean' || !($refKeywords || it.schema.$ref)) { - var $keyword = 'false schema'; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $errorKeyword; - var $data = 'data' + ($dataLvl || ''); - var $valid = 'valid' + $lvl; - if (it.schema === false) { - if (it.isTop) { - $breakOnError = true; - } else { - out += ' var ' + ($valid) + ' = false; '; - } - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ($errorKeyword || 'false schema') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} '; - if (it.opts.messages !== false) { - out += ' , message: \'boolean schema is false\' '; - } - if (it.opts.verbose) { - out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - } else { - if (it.isTop) { - if ($async) { - out += ' return data; '; - } else { - out += ' validate.errors = null; return true; '; - } - } else { - out += ' var ' + ($valid) + ' = true; '; - } - } - if (it.isTop) { - out += ' }; return validate; '; - } - return out; - } - if (it.isTop) { - var $top = it.isTop, - $lvl = it.level = 0, - $dataLvl = it.dataLevel = 0, - $data = 'data'; - it.rootId = it.resolve.fullPath(it.self._getId(it.root.schema)); - it.baseId = it.baseId || it.rootId; - delete it.isTop; - it.dataPathArr = [""]; - if (it.schema.default !== undefined && it.opts.useDefaults && it.opts.strictDefaults) { - var $defaultMsg = 'default is ignored in the schema root'; - if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg); - else throw new Error($defaultMsg); - } - out += ' var vErrors = null; '; - out += ' var errors = 0; '; - out += ' if (rootData === undefined) rootData = data; '; - } else { - var $lvl = it.level, - $dataLvl = it.dataLevel, - $data = 'data' + ($dataLvl || ''); - if ($id) it.baseId = it.resolve.url(it.baseId, $id); - if ($async && !it.async) throw new Error('async schema in sync schema'); - out += ' var errs_' + ($lvl) + ' = errors;'; - } - var $valid = 'valid' + $lvl, - $breakOnError = !it.opts.allErrors, - $closingBraces1 = '', - $closingBraces2 = ''; - var $errorKeyword; - var $typeSchema = it.schema.type, - $typeIsArray = Array.isArray($typeSchema); - if ($typeSchema && it.opts.nullable && it.schema.nullable === true) { - if ($typeIsArray) { - if ($typeSchema.indexOf('null') == -1) $typeSchema = $typeSchema.concat('null'); - } else if ($typeSchema != 'null') { - $typeSchema = [$typeSchema, 'null']; - $typeIsArray = true; - } - } - if ($typeIsArray && $typeSchema.length == 1) { - $typeSchema = $typeSchema[0]; - $typeIsArray = false; - } - if (it.schema.$ref && $refKeywords) { - if (it.opts.extendRefs == 'fail') { - throw new Error('$ref: validation keywords used in schema at path "' + it.errSchemaPath + '" (see option extendRefs)'); - } else if (it.opts.extendRefs !== true) { - $refKeywords = false; - it.logger.warn('$ref: keywords ignored in schema at path "' + it.errSchemaPath + '"'); - } - } - if (it.schema.$comment && it.opts.$comment) { - out += ' ' + (it.RULES.all.$comment.code(it, '$comment')); - } - if ($typeSchema) { - if (it.opts.coerceTypes) { - var $coerceToTypes = it.util.coerceToTypes(it.opts.coerceTypes, $typeSchema); - } - var $rulesGroup = it.RULES.types[$typeSchema]; - if ($coerceToTypes || $typeIsArray || $rulesGroup === true || ($rulesGroup && !$shouldUseGroup($rulesGroup))) { - var $schemaPath = it.schemaPath + '.type', - $errSchemaPath = it.errSchemaPath + '/type'; - var $schemaPath = it.schemaPath + '.type', - $errSchemaPath = it.errSchemaPath + '/type', - $method = $typeIsArray ? 'checkDataTypes' : 'checkDataType'; - out += ' if (' + (it.util[$method]($typeSchema, $data, it.opts.strictNumbers, true)) + ') { '; - if ($coerceToTypes) { - var $dataType = 'dataType' + $lvl, - $coerced = 'coerced' + $lvl; - out += ' var ' + ($dataType) + ' = typeof ' + ($data) + '; var ' + ($coerced) + ' = undefined; '; - if (it.opts.coerceTypes == 'array') { - out += ' if (' + ($dataType) + ' == \'object\' && Array.isArray(' + ($data) + ') && ' + ($data) + '.length == 1) { ' + ($data) + ' = ' + ($data) + '[0]; ' + ($dataType) + ' = typeof ' + ($data) + '; if (' + (it.util.checkDataType(it.schema.type, $data, it.opts.strictNumbers)) + ') ' + ($coerced) + ' = ' + ($data) + '; } '; - } - out += ' if (' + ($coerced) + ' !== undefined) ; '; - var arr1 = $coerceToTypes; - if (arr1) { - var $type, $i = -1, - l1 = arr1.length - 1; - while ($i < l1) { - $type = arr1[$i += 1]; - if ($type == 'string') { - out += ' else if (' + ($dataType) + ' == \'number\' || ' + ($dataType) + ' == \'boolean\') ' + ($coerced) + ' = \'\' + ' + ($data) + '; else if (' + ($data) + ' === null) ' + ($coerced) + ' = \'\'; '; - } else if ($type == 'number' || $type == 'integer') { - out += ' else if (' + ($dataType) + ' == \'boolean\' || ' + ($data) + ' === null || (' + ($dataType) + ' == \'string\' && ' + ($data) + ' && ' + ($data) + ' == +' + ($data) + ' '; - if ($type == 'integer') { - out += ' && !(' + ($data) + ' % 1)'; - } - out += ')) ' + ($coerced) + ' = +' + ($data) + '; '; - } else if ($type == 'boolean') { - out += ' else if (' + ($data) + ' === \'false\' || ' + ($data) + ' === 0 || ' + ($data) + ' === null) ' + ($coerced) + ' = false; else if (' + ($data) + ' === \'true\' || ' + ($data) + ' === 1) ' + ($coerced) + ' = true; '; - } else if ($type == 'null') { - out += ' else if (' + ($data) + ' === \'\' || ' + ($data) + ' === 0 || ' + ($data) + ' === false) ' + ($coerced) + ' = null; '; - } else if (it.opts.coerceTypes == 'array' && $type == 'array') { - out += ' else if (' + ($dataType) + ' == \'string\' || ' + ($dataType) + ' == \'number\' || ' + ($dataType) + ' == \'boolean\' || ' + ($data) + ' == null) ' + ($coerced) + ' = [' + ($data) + ']; '; - } - } - } - out += ' else { '; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ($errorKeyword || 'type') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \''; - if ($typeIsArray) { - out += '' + ($typeSchema.join(",")); - } else { - out += '' + ($typeSchema); - } - out += '\' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should be '; - if ($typeIsArray) { - out += '' + ($typeSchema.join(",")); - } else { - out += '' + ($typeSchema); - } - out += '\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += ' } if (' + ($coerced) + ' !== undefined) { '; - var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData', - $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty'; - out += ' ' + ($data) + ' = ' + ($coerced) + '; '; - if (!$dataLvl) { - out += 'if (' + ($parentData) + ' !== undefined)'; - } - out += ' ' + ($parentData) + '[' + ($parentDataProperty) + '] = ' + ($coerced) + '; } '; - } else { - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ($errorKeyword || 'type') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \''; - if ($typeIsArray) { - out += '' + ($typeSchema.join(",")); - } else { - out += '' + ($typeSchema); - } - out += '\' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should be '; - if ($typeIsArray) { - out += '' + ($typeSchema.join(",")); - } else { - out += '' + ($typeSchema); - } - out += '\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - } - out += ' } '; - } - } - if (it.schema.$ref && !$refKeywords) { - out += ' ' + (it.RULES.all.$ref.code(it, '$ref')) + ' '; - if ($breakOnError) { - out += ' } if (errors === '; - if ($top) { - out += '0'; - } else { - out += 'errs_' + ($lvl); - } - out += ') { '; - $closingBraces2 += '}'; - } - } else { - var arr2 = it.RULES; - if (arr2) { - var $rulesGroup, i2 = -1, - l2 = arr2.length - 1; - while (i2 < l2) { - $rulesGroup = arr2[i2 += 1]; - if ($shouldUseGroup($rulesGroup)) { - if ($rulesGroup.type) { - out += ' if (' + (it.util.checkDataType($rulesGroup.type, $data, it.opts.strictNumbers)) + ') { '; - } - if (it.opts.useDefaults) { - if ($rulesGroup.type == 'object' && it.schema.properties) { - var $schema = it.schema.properties, - $schemaKeys = Object.keys($schema); - var arr3 = $schemaKeys; - if (arr3) { - var $propertyKey, i3 = -1, - l3 = arr3.length - 1; - while (i3 < l3) { - $propertyKey = arr3[i3 += 1]; - var $sch = $schema[$propertyKey]; - if ($sch.default !== undefined) { - var $passData = $data + it.util.getProperty($propertyKey); - if (it.compositeRule) { - if (it.opts.strictDefaults) { - var $defaultMsg = 'default is ignored for: ' + $passData; - if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg); - else throw new Error($defaultMsg); - } - } else { - out += ' if (' + ($passData) + ' === undefined '; - if (it.opts.useDefaults == 'empty') { - out += ' || ' + ($passData) + ' === null || ' + ($passData) + ' === \'\' '; - } - out += ' ) ' + ($passData) + ' = '; - if (it.opts.useDefaults == 'shared') { - out += ' ' + (it.useDefault($sch.default)) + ' '; - } else { - out += ' ' + (JSON.stringify($sch.default)) + ' '; - } - out += '; '; - } - } - } - } - } else if ($rulesGroup.type == 'array' && Array.isArray(it.schema.items)) { - var arr4 = it.schema.items; - if (arr4) { - var $sch, $i = -1, - l4 = arr4.length - 1; - while ($i < l4) { - $sch = arr4[$i += 1]; - if ($sch.default !== undefined) { - var $passData = $data + '[' + $i + ']'; - if (it.compositeRule) { - if (it.opts.strictDefaults) { - var $defaultMsg = 'default is ignored for: ' + $passData; - if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg); - else throw new Error($defaultMsg); - } - } else { - out += ' if (' + ($passData) + ' === undefined '; - if (it.opts.useDefaults == 'empty') { - out += ' || ' + ($passData) + ' === null || ' + ($passData) + ' === \'\' '; - } - out += ' ) ' + ($passData) + ' = '; - if (it.opts.useDefaults == 'shared') { - out += ' ' + (it.useDefault($sch.default)) + ' '; - } else { - out += ' ' + (JSON.stringify($sch.default)) + ' '; - } - out += '; '; - } - } - } - } - } - } - var arr5 = $rulesGroup.rules; - if (arr5) { - var $rule, i5 = -1, - l5 = arr5.length - 1; - while (i5 < l5) { - $rule = arr5[i5 += 1]; - if ($shouldUseRule($rule)) { - var $code = $rule.code(it, $rule.keyword, $rulesGroup.type); - if ($code) { - out += ' ' + ($code) + ' '; - if ($breakOnError) { - $closingBraces1 += '}'; - } - } - } - } - } - if ($breakOnError) { - out += ' ' + ($closingBraces1) + ' '; - $closingBraces1 = ''; - } - if ($rulesGroup.type) { - out += ' } '; - if ($typeSchema && $typeSchema === $rulesGroup.type && !$coerceToTypes) { - out += ' else { '; - var $schemaPath = it.schemaPath + '.type', - $errSchemaPath = it.errSchemaPath + '/type'; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ($errorKeyword || 'type') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \''; - if ($typeIsArray) { - out += '' + ($typeSchema.join(",")); - } else { - out += '' + ($typeSchema); - } - out += '\' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should be '; - if ($typeIsArray) { - out += '' + ($typeSchema.join(",")); - } else { - out += '' + ($typeSchema); - } - out += '\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += ' } '; - } - } - if ($breakOnError) { - out += ' if (errors === '; - if ($top) { - out += '0'; - } else { - out += 'errs_' + ($lvl); - } - out += ') { '; - $closingBraces2 += '}'; - } - } - } - } - } - if ($breakOnError) { - out += ' ' + ($closingBraces2) + ' '; - } - if ($top) { - if ($async) { - out += ' if (errors === 0) return data; '; - out += ' else throw new ValidationError(vErrors); '; - } else { - out += ' validate.errors = vErrors; '; - out += ' return errors === 0; '; - } - out += ' }; return validate;'; - } else { - out += ' var ' + ($valid) + ' = errors === errs_' + ($lvl) + ';'; - } - - function $shouldUseGroup($rulesGroup) { - var rules = $rulesGroup.rules; - for (var i = 0; i < rules.length; i++) - if ($shouldUseRule(rules[i])) return true; - } - - function $shouldUseRule($rule) { - return it.schema[$rule.keyword] !== undefined || ($rule.implements && $ruleImplementsSomeKeyword($rule)); - } - - function $ruleImplementsSomeKeyword($rule) { - var impl = $rule.implements; - for (var i = 0; i < impl.length; i++) - if (it.schema[impl[i]] !== undefined) return true; - } - return out; -} - -},{}],39:[function(require,module,exports){ -'use strict'; - -var IDENTIFIER = /^[a-z_$][a-z0-9_$-]*$/i; -var customRuleCode = require('./dotjs/custom'); -var definitionSchema = require('./definition_schema'); - -module.exports = { - add: addKeyword, - get: getKeyword, - remove: removeKeyword, - validate: validateKeyword -}; - - -/** - * Define custom keyword - * @this Ajv - * @param {String} keyword custom keyword, should be unique (including different from all standard, custom and macro keywords). - * @param {Object} definition keyword definition object with properties `type` (type(s) which the keyword applies to), `validate` or `compile`. - * @return {Ajv} this for method chaining - */ -function addKeyword(keyword, definition) { - /* jshint validthis: true */ - /* eslint no-shadow: 0 */ - var RULES = this.RULES; - if (RULES.keywords[keyword]) - throw new Error('Keyword ' + keyword + ' is already defined'); - - if (!IDENTIFIER.test(keyword)) - throw new Error('Keyword ' + keyword + ' is not a valid identifier'); - - if (definition) { - this.validateKeyword(definition, true); - - var dataType = definition.type; - if (Array.isArray(dataType)) { - for (var i=0; i 1) { - sets[0] = sets[0].slice(0, -1); - var xl = sets.length - 1; - for (var x = 1; x < xl; ++x) { - sets[x] = sets[x].slice(1, -1); - } - sets[xl] = sets[xl].slice(1); - return sets.join(''); - } else { - return sets[0]; - } -} -function subexp(str) { - return "(?:" + str + ")"; -} -function typeOf(o) { - return o === undefined ? "undefined" : o === null ? "null" : Object.prototype.toString.call(o).split(" ").pop().split("]").shift().toLowerCase(); -} -function toUpperCase(str) { - return str.toUpperCase(); -} -function toArray(obj) { - return obj !== undefined && obj !== null ? obj instanceof Array ? obj : typeof obj.length !== "number" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj) : []; -} -function assign(target, source) { - var obj = target; - if (source) { - for (var key in source) { - obj[key] = source[key]; - } - } - return obj; -} - -function buildExps(isIRI) { - var ALPHA$$ = "[A-Za-z]", - CR$ = "[\\x0D]", - DIGIT$$ = "[0-9]", - DQUOTE$$ = "[\\x22]", - HEXDIG$$ = merge(DIGIT$$, "[A-Fa-f]"), - //case-insensitive - LF$$ = "[\\x0A]", - SP$$ = "[\\x20]", - PCT_ENCODED$ = subexp(subexp("%[EFef]" + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%[89A-Fa-f]" + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%" + HEXDIG$$ + HEXDIG$$)), - //expanded - GEN_DELIMS$$ = "[\\:\\/\\?\\#\\[\\]\\@]", - SUB_DELIMS$$ = "[\\!\\$\\&\\'\\(\\)\\*\\+\\,\\;\\=]", - RESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$), - UCSCHAR$$ = isIRI ? "[\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]" : "[]", - //subset, excludes bidi control characters - IPRIVATE$$ = isIRI ? "[\\uE000-\\uF8FF]" : "[]", - //subset - UNRESERVED$$ = merge(ALPHA$$, DIGIT$$, "[\\-\\.\\_\\~]", UCSCHAR$$), - SCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, "[\\+\\-\\.]") + "*"), - USERINFO$ = subexp(subexp(PCT_ENCODED$ + "|" + merge(UNRESERVED$$, SUB_DELIMS$$, "[\\:]")) + "*"), - DEC_OCTET$ = subexp(subexp("25[0-5]") + "|" + subexp("2[0-4]" + DIGIT$$) + "|" + subexp("1" + DIGIT$$ + DIGIT$$) + "|" + subexp("[1-9]" + DIGIT$$) + "|" + DIGIT$$), - DEC_OCTET_RELAXED$ = subexp(subexp("25[0-5]") + "|" + subexp("2[0-4]" + DIGIT$$) + "|" + subexp("1" + DIGIT$$ + DIGIT$$) + "|" + subexp("0?[1-9]" + DIGIT$$) + "|0?0?" + DIGIT$$), - //relaxed parsing rules - IPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + "\\." + DEC_OCTET_RELAXED$ + "\\." + DEC_OCTET_RELAXED$ + "\\." + DEC_OCTET_RELAXED$), - H16$ = subexp(HEXDIG$$ + "{1,4}"), - LS32$ = subexp(subexp(H16$ + "\\:" + H16$) + "|" + IPV4ADDRESS$), - IPV6ADDRESS1$ = subexp(subexp(H16$ + "\\:") + "{6}" + LS32$), - // 6( h16 ":" ) ls32 - IPV6ADDRESS2$ = subexp("\\:\\:" + subexp(H16$ + "\\:") + "{5}" + LS32$), - // "::" 5( h16 ":" ) ls32 - IPV6ADDRESS3$ = subexp(subexp(H16$) + "?\\:\\:" + subexp(H16$ + "\\:") + "{4}" + LS32$), - //[ h16 ] "::" 4( h16 ":" ) ls32 - IPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,1}" + H16$) + "?\\:\\:" + subexp(H16$ + "\\:") + "{3}" + LS32$), - //[ *1( h16 ":" ) h16 ] "::" 3( h16 ":" ) ls32 - IPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,2}" + H16$) + "?\\:\\:" + subexp(H16$ + "\\:") + "{2}" + LS32$), - //[ *2( h16 ":" ) h16 ] "::" 2( h16 ":" ) ls32 - IPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,3}" + H16$) + "?\\:\\:" + H16$ + "\\:" + LS32$), - //[ *3( h16 ":" ) h16 ] "::" h16 ":" ls32 - IPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,4}" + H16$) + "?\\:\\:" + LS32$), - //[ *4( h16 ":" ) h16 ] "::" ls32 - IPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,5}" + H16$) + "?\\:\\:" + H16$), - //[ *5( h16 ":" ) h16 ] "::" h16 - IPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,6}" + H16$) + "?\\:\\:"), - //[ *6( h16 ":" ) h16 ] "::" - IPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join("|")), - ZONEID$ = subexp(subexp(UNRESERVED$$ + "|" + PCT_ENCODED$) + "+"), - //RFC 6874 - IPV6ADDRZ$ = subexp(IPV6ADDRESS$ + "\\%25" + ZONEID$), - //RFC 6874 - IPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp("\\%25|\\%(?!" + HEXDIG$$ + "{2})") + ZONEID$), - //RFC 6874, with relaxed parsing rules - IPVFUTURE$ = subexp("[vV]" + HEXDIG$$ + "+\\." + merge(UNRESERVED$$, SUB_DELIMS$$, "[\\:]") + "+"), - IP_LITERAL$ = subexp("\\[" + subexp(IPV6ADDRZ_RELAXED$ + "|" + IPV6ADDRESS$ + "|" + IPVFUTURE$) + "\\]"), - //RFC 6874 - REG_NAME$ = subexp(subexp(PCT_ENCODED$ + "|" + merge(UNRESERVED$$, SUB_DELIMS$$)) + "*"), - HOST$ = subexp(IP_LITERAL$ + "|" + IPV4ADDRESS$ + "(?!" + REG_NAME$ + ")" + "|" + REG_NAME$), - PORT$ = subexp(DIGIT$$ + "*"), - AUTHORITY$ = subexp(subexp(USERINFO$ + "@") + "?" + HOST$ + subexp("\\:" + PORT$) + "?"), - PCHAR$ = subexp(PCT_ENCODED$ + "|" + merge(UNRESERVED$$, SUB_DELIMS$$, "[\\:\\@]")), - SEGMENT$ = subexp(PCHAR$ + "*"), - SEGMENT_NZ$ = subexp(PCHAR$ + "+"), - SEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + "|" + merge(UNRESERVED$$, SUB_DELIMS$$, "[\\@]")) + "+"), - PATH_ABEMPTY$ = subexp(subexp("\\/" + SEGMENT$) + "*"), - PATH_ABSOLUTE$ = subexp("\\/" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + "?"), - //simplified - PATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$), - //simplified - PATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$), - //simplified - PATH_EMPTY$ = "(?!" + PCHAR$ + ")", - PATH$ = subexp(PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_NOSCHEME$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$), - QUERY$ = subexp(subexp(PCHAR$ + "|" + merge("[\\/\\?]", IPRIVATE$$)) + "*"), - FRAGMENT$ = subexp(subexp(PCHAR$ + "|[\\/\\?]") + "*"), - HIER_PART$ = subexp(subexp("\\/\\/" + AUTHORITY$ + PATH_ABEMPTY$) + "|" + PATH_ABSOLUTE$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$), - URI$ = subexp(SCHEME$ + "\\:" + HIER_PART$ + subexp("\\?" + QUERY$) + "?" + subexp("\\#" + FRAGMENT$) + "?"), - RELATIVE_PART$ = subexp(subexp("\\/\\/" + AUTHORITY$ + PATH_ABEMPTY$) + "|" + PATH_ABSOLUTE$ + "|" + PATH_NOSCHEME$ + "|" + PATH_EMPTY$), - RELATIVE$ = subexp(RELATIVE_PART$ + subexp("\\?" + QUERY$) + "?" + subexp("\\#" + FRAGMENT$) + "?"), - URI_REFERENCE$ = subexp(URI$ + "|" + RELATIVE$), - ABSOLUTE_URI$ = subexp(SCHEME$ + "\\:" + HIER_PART$ + subexp("\\?" + QUERY$) + "?"), - GENERIC_REF$ = "^(" + SCHEME$ + ")\\:" + subexp(subexp("\\/\\/(" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?)") + "?(" + PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$ + ")") + subexp("\\?(" + QUERY$ + ")") + "?" + subexp("\\#(" + FRAGMENT$ + ")") + "?$", - RELATIVE_REF$ = "^(){0}" + subexp(subexp("\\/\\/(" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?)") + "?(" + PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_NOSCHEME$ + "|" + PATH_EMPTY$ + ")") + subexp("\\?(" + QUERY$ + ")") + "?" + subexp("\\#(" + FRAGMENT$ + ")") + "?$", - ABSOLUTE_REF$ = "^(" + SCHEME$ + ")\\:" + subexp(subexp("\\/\\/(" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?)") + "?(" + PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$ + ")") + subexp("\\?(" + QUERY$ + ")") + "?$", - SAMEDOC_REF$ = "^" + subexp("\\#(" + FRAGMENT$ + ")") + "?$", - AUTHORITY_REF$ = "^" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?$"; - return { - NOT_SCHEME: new RegExp(merge("[^]", ALPHA$$, DIGIT$$, "[\\+\\-\\.]"), "g"), - NOT_USERINFO: new RegExp(merge("[^\\%\\:]", UNRESERVED$$, SUB_DELIMS$$), "g"), - NOT_HOST: new RegExp(merge("[^\\%\\[\\]\\:]", UNRESERVED$$, SUB_DELIMS$$), "g"), - NOT_PATH: new RegExp(merge("[^\\%\\/\\:\\@]", UNRESERVED$$, SUB_DELIMS$$), "g"), - NOT_PATH_NOSCHEME: new RegExp(merge("[^\\%\\/\\@]", UNRESERVED$$, SUB_DELIMS$$), "g"), - NOT_QUERY: new RegExp(merge("[^\\%]", UNRESERVED$$, SUB_DELIMS$$, "[\\:\\@\\/\\?]", IPRIVATE$$), "g"), - NOT_FRAGMENT: new RegExp(merge("[^\\%]", UNRESERVED$$, SUB_DELIMS$$, "[\\:\\@\\/\\?]"), "g"), - ESCAPE: new RegExp(merge("[^]", UNRESERVED$$, SUB_DELIMS$$), "g"), - UNRESERVED: new RegExp(UNRESERVED$$, "g"), - OTHER_CHARS: new RegExp(merge("[^\\%]", UNRESERVED$$, RESERVED$$), "g"), - PCT_ENCODED: new RegExp(PCT_ENCODED$, "g"), - IPV4ADDRESS: new RegExp("^(" + IPV4ADDRESS$ + ")$"), - IPV6ADDRESS: new RegExp("^\\[?(" + IPV6ADDRESS$ + ")" + subexp(subexp("\\%25|\\%(?!" + HEXDIG$$ + "{2})") + "(" + ZONEID$ + ")") + "?\\]?$") //RFC 6874, with relaxed parsing rules - }; -} -var URI_PROTOCOL = buildExps(false); - -var IRI_PROTOCOL = buildExps(true); - -var slicedToArray = function () { - function sliceIterator(arr, i) { - var _arr = []; - var _n = true; - var _d = false; - var _e = undefined; - - try { - for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { - _arr.push(_s.value); - - if (i && _arr.length === i) break; - } - } catch (err) { - _d = true; - _e = err; - } finally { - try { - if (!_n && _i["return"]) _i["return"](); - } finally { - if (_d) throw _e; - } - } - - return _arr; - } - - return function (arr, i) { - if (Array.isArray(arr)) { - return arr; - } else if (Symbol.iterator in Object(arr)) { - return sliceIterator(arr, i); - } else { - throw new TypeError("Invalid attempt to destructure non-iterable instance"); - } - }; -}(); - - - - - - - - - - - - - -var toConsumableArray = function (arr) { - if (Array.isArray(arr)) { - for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; - - return arr2; - } else { - return Array.from(arr); - } -}; - -/** Highest positive signed 32-bit float value */ - -var maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1 - -/** Bootstring parameters */ -var base = 36; -var tMin = 1; -var tMax = 26; -var skew = 38; -var damp = 700; -var initialBias = 72; -var initialN = 128; // 0x80 -var delimiter = '-'; // '\x2D' - -/** Regular expressions */ -var regexPunycode = /^xn--/; -var regexNonASCII = /[^\0-\x7E]/; // non-ASCII chars -var regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g; // RFC 3490 separators - -/** Error messages */ -var errors = { - 'overflow': 'Overflow: input needs wider integers to process', - 'not-basic': 'Illegal input >= 0x80 (not a basic code point)', - 'invalid-input': 'Invalid input' -}; - -/** Convenience shortcuts */ -var baseMinusTMin = base - tMin; -var floor = Math.floor; -var stringFromCharCode = String.fromCharCode; - -/*--------------------------------------------------------------------------*/ - -/** - * A generic error utility function. - * @private - * @param {String} type The error type. - * @returns {Error} Throws a `RangeError` with the applicable error message. - */ -function error$1(type) { - throw new RangeError(errors[type]); -} - -/** - * A generic `Array#map` utility function. - * @private - * @param {Array} array The array to iterate over. - * @param {Function} callback The function that gets called for every array - * item. - * @returns {Array} A new array of values returned by the callback function. - */ -function map(array, fn) { - var result = []; - var length = array.length; - while (length--) { - result[length] = fn(array[length]); - } - return result; -} - -/** - * A simple `Array#map`-like wrapper to work with domain name strings or email - * addresses. - * @private - * @param {String} domain The domain name or email address. - * @param {Function} callback The function that gets called for every - * character. - * @returns {Array} A new string of characters returned by the callback - * function. - */ -function mapDomain(string, fn) { - var parts = string.split('@'); - var result = ''; - if (parts.length > 1) { - // In email addresses, only the domain name should be punycoded. Leave - // the local part (i.e. everything up to `@`) intact. - result = parts[0] + '@'; - string = parts[1]; - } - // Avoid `split(regex)` for IE8 compatibility. See #17. - string = string.replace(regexSeparators, '\x2E'); - var labels = string.split('.'); - var encoded = map(labels, fn).join('.'); - return result + encoded; -} - -/** - * Creates an array containing the numeric code points of each Unicode - * character in the string. While JavaScript uses UCS-2 internally, - * this function will convert a pair of surrogate halves (each of which - * UCS-2 exposes as separate characters) into a single code point, - * matching UTF-16. - * @see `punycode.ucs2.encode` - * @see - * @memberOf punycode.ucs2 - * @name decode - * @param {String} string The Unicode input string (UCS-2). - * @returns {Array} The new array of code points. - */ -function ucs2decode(string) { - var output = []; - var counter = 0; - var length = string.length; - while (counter < length) { - var value = string.charCodeAt(counter++); - if (value >= 0xD800 && value <= 0xDBFF && counter < length) { - // It's a high surrogate, and there is a next character. - var extra = string.charCodeAt(counter++); - if ((extra & 0xFC00) == 0xDC00) { - // Low surrogate. - output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); - } else { - // It's an unmatched surrogate; only append this code unit, in case the - // next code unit is the high surrogate of a surrogate pair. - output.push(value); - counter--; - } - } else { - output.push(value); - } - } - return output; -} - -/** - * Creates a string based on an array of numeric code points. - * @see `punycode.ucs2.decode` - * @memberOf punycode.ucs2 - * @name encode - * @param {Array} codePoints The array of numeric code points. - * @returns {String} The new Unicode string (UCS-2). - */ -var ucs2encode = function ucs2encode(array) { - return String.fromCodePoint.apply(String, toConsumableArray(array)); -}; - -/** - * Converts a basic code point into a digit/integer. - * @see `digitToBasic()` - * @private - * @param {Number} codePoint The basic numeric code point value. - * @returns {Number} The numeric value of a basic code point (for use in - * representing integers) in the range `0` to `base - 1`, or `base` if - * the code point does not represent a value. - */ -var basicToDigit = function basicToDigit(codePoint) { - if (codePoint - 0x30 < 0x0A) { - return codePoint - 0x16; - } - if (codePoint - 0x41 < 0x1A) { - return codePoint - 0x41; - } - if (codePoint - 0x61 < 0x1A) { - return codePoint - 0x61; - } - return base; -}; - -/** - * Converts a digit/integer into a basic code point. - * @see `basicToDigit()` - * @private - * @param {Number} digit The numeric value of a basic code point. - * @returns {Number} The basic code point whose value (when used for - * representing integers) is `digit`, which needs to be in the range - * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is - * used; else, the lowercase form is used. The behavior is undefined - * if `flag` is non-zero and `digit` has no uppercase form. - */ -var digitToBasic = function digitToBasic(digit, flag) { - // 0..25 map to ASCII a..z or A..Z - // 26..35 map to ASCII 0..9 - return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5); -}; - -/** - * Bias adaptation function as per section 3.4 of RFC 3492. - * https://tools.ietf.org/html/rfc3492#section-3.4 - * @private - */ -var adapt = function adapt(delta, numPoints, firstTime) { - var k = 0; - delta = firstTime ? floor(delta / damp) : delta >> 1; - delta += floor(delta / numPoints); - for (; /* no initialization */delta > baseMinusTMin * tMax >> 1; k += base) { - delta = floor(delta / baseMinusTMin); - } - return floor(k + (baseMinusTMin + 1) * delta / (delta + skew)); -}; - -/** - * Converts a Punycode string of ASCII-only symbols to a string of Unicode - * symbols. - * @memberOf punycode - * @param {String} input The Punycode string of ASCII-only symbols. - * @returns {String} The resulting string of Unicode symbols. - */ -var decode = function decode(input) { - // Don't use UCS-2. - var output = []; - var inputLength = input.length; - var i = 0; - var n = initialN; - var bias = initialBias; - - // Handle the basic code points: let `basic` be the number of input code - // points before the last delimiter, or `0` if there is none, then copy - // the first basic code points to the output. - - var basic = input.lastIndexOf(delimiter); - if (basic < 0) { - basic = 0; - } - - for (var j = 0; j < basic; ++j) { - // if it's not a basic code point - if (input.charCodeAt(j) >= 0x80) { - error$1('not-basic'); - } - output.push(input.charCodeAt(j)); - } - - // Main decoding loop: start just after the last delimiter if any basic code - // points were copied; start at the beginning otherwise. - - for (var index = basic > 0 ? basic + 1 : 0; index < inputLength;) /* no final expression */{ - - // `index` is the index of the next character to be consumed. - // Decode a generalized variable-length integer into `delta`, - // which gets added to `i`. The overflow checking is easier - // if we increase `i` as we go, then subtract off its starting - // value at the end to obtain `delta`. - var oldi = i; - for (var w = 1, k = base;; /* no condition */k += base) { - - if (index >= inputLength) { - error$1('invalid-input'); - } - - var digit = basicToDigit(input.charCodeAt(index++)); - - if (digit >= base || digit > floor((maxInt - i) / w)) { - error$1('overflow'); - } - - i += digit * w; - var t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias; - - if (digit < t) { - break; - } - - var baseMinusT = base - t; - if (w > floor(maxInt / baseMinusT)) { - error$1('overflow'); - } - - w *= baseMinusT; - } - - var out = output.length + 1; - bias = adapt(i - oldi, out, oldi == 0); - - // `i` was supposed to wrap around from `out` to `0`, - // incrementing `n` each time, so we'll fix that now: - if (floor(i / out) > maxInt - n) { - error$1('overflow'); - } - - n += floor(i / out); - i %= out; - - // Insert `n` at position `i` of the output. - output.splice(i++, 0, n); - } - - return String.fromCodePoint.apply(String, output); -}; - -/** - * Converts a string of Unicode symbols (e.g. a domain name label) to a - * Punycode string of ASCII-only symbols. - * @memberOf punycode - * @param {String} input The string of Unicode symbols. - * @returns {String} The resulting Punycode string of ASCII-only symbols. - */ -var encode = function encode(input) { - var output = []; - - // Convert the input in UCS-2 to an array of Unicode code points. - input = ucs2decode(input); - - // Cache the length. - var inputLength = input.length; - - // Initialize the state. - var n = initialN; - var delta = 0; - var bias = initialBias; - - // Handle the basic code points. - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = input[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var _currentValue2 = _step.value; - - if (_currentValue2 < 0x80) { - output.push(stringFromCharCode(_currentValue2)); - } - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator.return) { - _iterator.return(); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - - var basicLength = output.length; - var handledCPCount = basicLength; - - // `handledCPCount` is the number of code points that have been handled; - // `basicLength` is the number of basic code points. - - // Finish the basic string with a delimiter unless it's empty. - if (basicLength) { - output.push(delimiter); - } - - // Main encoding loop: - while (handledCPCount < inputLength) { - - // All non-basic code points < n have been handled already. Find the next - // larger one: - var m = maxInt; - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; - - try { - for (var _iterator2 = input[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - var currentValue = _step2.value; - - if (currentValue >= n && currentValue < m) { - m = currentValue; - } - } - - // Increase `delta` enough to advance the decoder's state to , - // but guard against overflow. - } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; - } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2.return) { - _iterator2.return(); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } - } - - var handledCPCountPlusOne = handledCPCount + 1; - if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) { - error$1('overflow'); - } - - delta += (m - n) * handledCPCountPlusOne; - n = m; - - var _iteratorNormalCompletion3 = true; - var _didIteratorError3 = false; - var _iteratorError3 = undefined; - - try { - for (var _iterator3 = input[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { - var _currentValue = _step3.value; - - if (_currentValue < n && ++delta > maxInt) { - error$1('overflow'); - } - if (_currentValue == n) { - // Represent delta as a generalized variable-length integer. - var q = delta; - for (var k = base;; /* no condition */k += base) { - var t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias; - if (q < t) { - break; - } - var qMinusT = q - t; - var baseMinusT = base - t; - output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))); - q = floor(qMinusT / baseMinusT); - } - - output.push(stringFromCharCode(digitToBasic(q, 0))); - bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength); - delta = 0; - ++handledCPCount; - } - } - } catch (err) { - _didIteratorError3 = true; - _iteratorError3 = err; - } finally { - try { - if (!_iteratorNormalCompletion3 && _iterator3.return) { - _iterator3.return(); - } - } finally { - if (_didIteratorError3) { - throw _iteratorError3; - } - } - } - - ++delta; - ++n; - } - return output.join(''); -}; - -/** - * Converts a Punycode string representing a domain name or an email address - * to Unicode. Only the Punycoded parts of the input will be converted, i.e. - * it doesn't matter if you call it on a string that has already been - * converted to Unicode. - * @memberOf punycode - * @param {String} input The Punycoded domain name or email address to - * convert to Unicode. - * @returns {String} The Unicode representation of the given Punycode - * string. - */ -var toUnicode = function toUnicode(input) { - return mapDomain(input, function (string) { - return regexPunycode.test(string) ? decode(string.slice(4).toLowerCase()) : string; - }); -}; - -/** - * Converts a Unicode string representing a domain name or an email address to - * Punycode. Only the non-ASCII parts of the domain name will be converted, - * i.e. it doesn't matter if you call it with a domain that's already in - * ASCII. - * @memberOf punycode - * @param {String} input The domain name or email address to convert, as a - * Unicode string. - * @returns {String} The Punycode representation of the given domain name or - * email address. - */ -var toASCII = function toASCII(input) { - return mapDomain(input, function (string) { - return regexNonASCII.test(string) ? 'xn--' + encode(string) : string; - }); -}; - -/*--------------------------------------------------------------------------*/ - -/** Define the public API */ -var punycode = { - /** - * A string representing the current Punycode.js version number. - * @memberOf punycode - * @type String - */ - 'version': '2.1.0', - /** - * An object of methods to convert from JavaScript's internal character - * representation (UCS-2) to Unicode code points, and back. - * @see - * @memberOf punycode - * @type Object - */ - 'ucs2': { - 'decode': ucs2decode, - 'encode': ucs2encode - }, - 'decode': decode, - 'encode': encode, - 'toASCII': toASCII, - 'toUnicode': toUnicode -}; - -/** - * URI.js - * - * @fileoverview An RFC 3986 compliant, scheme extendable URI parsing/validating/resolving library for JavaScript. - * @author Gary Court - * @see http://github.com/garycourt/uri-js - */ -/** - * Copyright 2011 Gary Court. All rights reserved. - * - * 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 GARY COURT ``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 GARY COURT 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. - * - * The views and conclusions contained in the software and documentation are those of the - * authors and should not be interpreted as representing official policies, either expressed - * or implied, of Gary Court. - */ -var SCHEMES = {}; -function pctEncChar(chr) { - var c = chr.charCodeAt(0); - var e = void 0; - if (c < 16) e = "%0" + c.toString(16).toUpperCase();else if (c < 128) e = "%" + c.toString(16).toUpperCase();else if (c < 2048) e = "%" + (c >> 6 | 192).toString(16).toUpperCase() + "%" + (c & 63 | 128).toString(16).toUpperCase();else e = "%" + (c >> 12 | 224).toString(16).toUpperCase() + "%" + (c >> 6 & 63 | 128).toString(16).toUpperCase() + "%" + (c & 63 | 128).toString(16).toUpperCase(); - return e; -} -function pctDecChars(str) { - var newStr = ""; - var i = 0; - var il = str.length; - while (i < il) { - var c = parseInt(str.substr(i + 1, 2), 16); - if (c < 128) { - newStr += String.fromCharCode(c); - i += 3; - } else if (c >= 194 && c < 224) { - if (il - i >= 6) { - var c2 = parseInt(str.substr(i + 4, 2), 16); - newStr += String.fromCharCode((c & 31) << 6 | c2 & 63); - } else { - newStr += str.substr(i, 6); - } - i += 6; - } else if (c >= 224) { - if (il - i >= 9) { - var _c = parseInt(str.substr(i + 4, 2), 16); - var c3 = parseInt(str.substr(i + 7, 2), 16); - newStr += String.fromCharCode((c & 15) << 12 | (_c & 63) << 6 | c3 & 63); - } else { - newStr += str.substr(i, 9); - } - i += 9; - } else { - newStr += str.substr(i, 3); - i += 3; - } - } - return newStr; -} -function _normalizeComponentEncoding(components, protocol) { - function decodeUnreserved(str) { - var decStr = pctDecChars(str); - return !decStr.match(protocol.UNRESERVED) ? str : decStr; - } - if (components.scheme) components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_SCHEME, ""); - if (components.userinfo !== undefined) components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase); - if (components.host !== undefined) components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase); - if (components.path !== undefined) components.path = String(components.path).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(components.scheme ? protocol.NOT_PATH : protocol.NOT_PATH_NOSCHEME, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase); - if (components.query !== undefined) components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase); - if (components.fragment !== undefined) components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase); - return components; -} - -function _stripLeadingZeros(str) { - return str.replace(/^0*(.*)/, "$1") || "0"; -} -function _normalizeIPv4(host, protocol) { - var matches = host.match(protocol.IPV4ADDRESS) || []; - - var _matches = slicedToArray(matches, 2), - address = _matches[1]; - - if (address) { - return address.split(".").map(_stripLeadingZeros).join("."); - } else { - return host; - } -} -function _normalizeIPv6(host, protocol) { - var matches = host.match(protocol.IPV6ADDRESS) || []; - - var _matches2 = slicedToArray(matches, 3), - address = _matches2[1], - zone = _matches2[2]; - - if (address) { - var _address$toLowerCase$ = address.toLowerCase().split('::').reverse(), - _address$toLowerCase$2 = slicedToArray(_address$toLowerCase$, 2), - last = _address$toLowerCase$2[0], - first = _address$toLowerCase$2[1]; - - var firstFields = first ? first.split(":").map(_stripLeadingZeros) : []; - var lastFields = last.split(":").map(_stripLeadingZeros); - var isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]); - var fieldCount = isLastFieldIPv4Address ? 7 : 8; - var lastFieldsStart = lastFields.length - fieldCount; - var fields = Array(fieldCount); - for (var x = 0; x < fieldCount; ++x) { - fields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || ''; - } - if (isLastFieldIPv4Address) { - fields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol); - } - var allZeroFields = fields.reduce(function (acc, field, index) { - if (!field || field === "0") { - var lastLongest = acc[acc.length - 1]; - if (lastLongest && lastLongest.index + lastLongest.length === index) { - lastLongest.length++; - } else { - acc.push({ index: index, length: 1 }); - } - } - return acc; - }, []); - var longestZeroFields = allZeroFields.sort(function (a, b) { - return b.length - a.length; - })[0]; - var newHost = void 0; - if (longestZeroFields && longestZeroFields.length > 1) { - var newFirst = fields.slice(0, longestZeroFields.index); - var newLast = fields.slice(longestZeroFields.index + longestZeroFields.length); - newHost = newFirst.join(":") + "::" + newLast.join(":"); - } else { - newHost = fields.join(":"); - } - if (zone) { - newHost += "%" + zone; - } - return newHost; - } else { - return host; - } -} -var URI_PARSE = /^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i; -var NO_MATCH_IS_UNDEFINED = "".match(/(){0}/)[1] === undefined; -function parse(uriString) { - var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - - var components = {}; - var protocol = options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL; - if (options.reference === "suffix") uriString = (options.scheme ? options.scheme + ":" : "") + "//" + uriString; - var matches = uriString.match(URI_PARSE); - if (matches) { - if (NO_MATCH_IS_UNDEFINED) { - //store each component - components.scheme = matches[1]; - components.userinfo = matches[3]; - components.host = matches[4]; - components.port = parseInt(matches[5], 10); - components.path = matches[6] || ""; - components.query = matches[7]; - components.fragment = matches[8]; - //fix port number - if (isNaN(components.port)) { - components.port = matches[5]; - } - } else { - //IE FIX for improper RegExp matching - //store each component - components.scheme = matches[1] || undefined; - components.userinfo = uriString.indexOf("@") !== -1 ? matches[3] : undefined; - components.host = uriString.indexOf("//") !== -1 ? matches[4] : undefined; - components.port = parseInt(matches[5], 10); - components.path = matches[6] || ""; - components.query = uriString.indexOf("?") !== -1 ? matches[7] : undefined; - components.fragment = uriString.indexOf("#") !== -1 ? matches[8] : undefined; - //fix port number - if (isNaN(components.port)) { - components.port = uriString.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/) ? matches[4] : undefined; - } - } - if (components.host) { - //normalize IP hosts - components.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol); - } - //determine reference type - if (components.scheme === undefined && components.userinfo === undefined && components.host === undefined && components.port === undefined && !components.path && components.query === undefined) { - components.reference = "same-document"; - } else if (components.scheme === undefined) { - components.reference = "relative"; - } else if (components.fragment === undefined) { - components.reference = "absolute"; - } else { - components.reference = "uri"; - } - //check for reference errors - if (options.reference && options.reference !== "suffix" && options.reference !== components.reference) { - components.error = components.error || "URI is not a " + options.reference + " reference."; - } - //find scheme handler - var schemeHandler = SCHEMES[(options.scheme || components.scheme || "").toLowerCase()]; - //check if scheme can't handle IRIs - if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) { - //if host component is a domain name - if (components.host && (options.domainHost || schemeHandler && schemeHandler.domainHost)) { - //convert Unicode IDN -> ASCII IDN - try { - components.host = punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()); - } catch (e) { - components.error = components.error || "Host's domain name can not be converted to ASCII via punycode: " + e; - } - } - //convert IRI -> URI - _normalizeComponentEncoding(components, URI_PROTOCOL); - } else { - //normalize encodings - _normalizeComponentEncoding(components, protocol); - } - //perform scheme specific parsing - if (schemeHandler && schemeHandler.parse) { - schemeHandler.parse(components, options); - } - } else { - components.error = components.error || "URI can not be parsed."; - } - return components; -} - -function _recomposeAuthority(components, options) { - var protocol = options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL; - var uriTokens = []; - if (components.userinfo !== undefined) { - uriTokens.push(components.userinfo); - uriTokens.push("@"); - } - if (components.host !== undefined) { - //normalize IP hosts, add brackets and escape zone separator for IPv6 - uriTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, function (_, $1, $2) { - return "[" + $1 + ($2 ? "%25" + $2 : "") + "]"; - })); - } - if (typeof components.port === "number" || typeof components.port === "string") { - uriTokens.push(":"); - uriTokens.push(String(components.port)); - } - return uriTokens.length ? uriTokens.join("") : undefined; -} - -var RDS1 = /^\.\.?\//; -var RDS2 = /^\/\.(\/|$)/; -var RDS3 = /^\/\.\.(\/|$)/; -var RDS5 = /^\/?(?:.|\n)*?(?=\/|$)/; -function removeDotSegments(input) { - var output = []; - while (input.length) { - if (input.match(RDS1)) { - input = input.replace(RDS1, ""); - } else if (input.match(RDS2)) { - input = input.replace(RDS2, "/"); - } else if (input.match(RDS3)) { - input = input.replace(RDS3, "/"); - output.pop(); - } else if (input === "." || input === "..") { - input = ""; - } else { - var im = input.match(RDS5); - if (im) { - var s = im[0]; - input = input.slice(s.length); - output.push(s); - } else { - throw new Error("Unexpected dot segment condition"); - } - } - } - return output.join(""); -} - -function serialize(components) { - var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - - var protocol = options.iri ? IRI_PROTOCOL : URI_PROTOCOL; - var uriTokens = []; - //find scheme handler - var schemeHandler = SCHEMES[(options.scheme || components.scheme || "").toLowerCase()]; - //perform scheme specific serialization - if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options); - if (components.host) { - //if host component is an IPv6 address - if (protocol.IPV6ADDRESS.test(components.host)) {} - //TODO: normalize IPv6 address as per RFC 5952 - - //if host component is a domain name - else if (options.domainHost || schemeHandler && schemeHandler.domainHost) { - //convert IDN via punycode - try { - components.host = !options.iri ? punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()) : punycode.toUnicode(components.host); - } catch (e) { - components.error = components.error || "Host's domain name can not be converted to " + (!options.iri ? "ASCII" : "Unicode") + " via punycode: " + e; - } - } - } - //normalize encoding - _normalizeComponentEncoding(components, protocol); - if (options.reference !== "suffix" && components.scheme) { - uriTokens.push(components.scheme); - uriTokens.push(":"); - } - var authority = _recomposeAuthority(components, options); - if (authority !== undefined) { - if (options.reference !== "suffix") { - uriTokens.push("//"); - } - uriTokens.push(authority); - if (components.path && components.path.charAt(0) !== "/") { - uriTokens.push("/"); - } - } - if (components.path !== undefined) { - var s = components.path; - if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) { - s = removeDotSegments(s); - } - if (authority === undefined) { - s = s.replace(/^\/\//, "/%2F"); //don't allow the path to start with "//" - } - uriTokens.push(s); - } - if (components.query !== undefined) { - uriTokens.push("?"); - uriTokens.push(components.query); - } - if (components.fragment !== undefined) { - uriTokens.push("#"); - uriTokens.push(components.fragment); - } - return uriTokens.join(""); //merge tokens into a string -} - -function resolveComponents(base, relative) { - var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; - var skipNormalization = arguments[3]; - - var target = {}; - if (!skipNormalization) { - base = parse(serialize(base, options), options); //normalize base components - relative = parse(serialize(relative, options), options); //normalize relative components - } - options = options || {}; - if (!options.tolerant && relative.scheme) { - target.scheme = relative.scheme; - //target.authority = relative.authority; - target.userinfo = relative.userinfo; - target.host = relative.host; - target.port = relative.port; - target.path = removeDotSegments(relative.path || ""); - target.query = relative.query; - } else { - if (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) { - //target.authority = relative.authority; - target.userinfo = relative.userinfo; - target.host = relative.host; - target.port = relative.port; - target.path = removeDotSegments(relative.path || ""); - target.query = relative.query; - } else { - if (!relative.path) { - target.path = base.path; - if (relative.query !== undefined) { - target.query = relative.query; - } else { - target.query = base.query; - } - } else { - if (relative.path.charAt(0) === "/") { - target.path = removeDotSegments(relative.path); - } else { - if ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) { - target.path = "/" + relative.path; - } else if (!base.path) { - target.path = relative.path; - } else { - target.path = base.path.slice(0, base.path.lastIndexOf("/") + 1) + relative.path; - } - target.path = removeDotSegments(target.path); - } - target.query = relative.query; - } - //target.authority = base.authority; - target.userinfo = base.userinfo; - target.host = base.host; - target.port = base.port; - } - target.scheme = base.scheme; - } - target.fragment = relative.fragment; - return target; -} - -function resolve(baseURI, relativeURI, options) { - var schemelessOptions = assign({ scheme: 'null' }, options); - return serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions); -} - -function normalize(uri, options) { - if (typeof uri === "string") { - uri = serialize(parse(uri, options), options); - } else if (typeOf(uri) === "object") { - uri = parse(serialize(uri, options), options); - } - return uri; -} - -function equal(uriA, uriB, options) { - if (typeof uriA === "string") { - uriA = serialize(parse(uriA, options), options); - } else if (typeOf(uriA) === "object") { - uriA = serialize(uriA, options); - } - if (typeof uriB === "string") { - uriB = serialize(parse(uriB, options), options); - } else if (typeOf(uriB) === "object") { - uriB = serialize(uriB, options); - } - return uriA === uriB; -} - -function escapeComponent(str, options) { - return str && str.toString().replace(!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE, pctEncChar); -} - -function unescapeComponent(str, options) { - return str && str.toString().replace(!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED, pctDecChars); -} - -var handler = { - scheme: "http", - domainHost: true, - parse: function parse(components, options) { - //report missing host - if (!components.host) { - components.error = components.error || "HTTP URIs must have a host."; - } - return components; - }, - serialize: function serialize(components, options) { - var secure = String(components.scheme).toLowerCase() === "https"; - //normalize the default port - if (components.port === (secure ? 443 : 80) || components.port === "") { - components.port = undefined; - } - //normalize the empty path - if (!components.path) { - components.path = "/"; - } - //NOTE: We do not parse query strings for HTTP URIs - //as WWW Form Url Encoded query strings are part of the HTML4+ spec, - //and not the HTTP spec. - return components; - } -}; - -var handler$1 = { - scheme: "https", - domainHost: handler.domainHost, - parse: handler.parse, - serialize: handler.serialize -}; - -function isSecure(wsComponents) { - return typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === "wss"; -} -//RFC 6455 -var handler$2 = { - scheme: "ws", - domainHost: true, - parse: function parse(components, options) { - var wsComponents = components; - //indicate if the secure flag is set - wsComponents.secure = isSecure(wsComponents); - //construct resouce name - wsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : ''); - wsComponents.path = undefined; - wsComponents.query = undefined; - return wsComponents; - }, - serialize: function serialize(wsComponents, options) { - //normalize the default port - if (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === "") { - wsComponents.port = undefined; - } - //ensure scheme matches secure flag - if (typeof wsComponents.secure === 'boolean') { - wsComponents.scheme = wsComponents.secure ? 'wss' : 'ws'; - wsComponents.secure = undefined; - } - //reconstruct path from resource name - if (wsComponents.resourceName) { - var _wsComponents$resourc = wsComponents.resourceName.split('?'), - _wsComponents$resourc2 = slicedToArray(_wsComponents$resourc, 2), - path = _wsComponents$resourc2[0], - query = _wsComponents$resourc2[1]; - - wsComponents.path = path && path !== '/' ? path : undefined; - wsComponents.query = query; - wsComponents.resourceName = undefined; - } - //forbid fragment component - wsComponents.fragment = undefined; - return wsComponents; - } -}; - -var handler$3 = { - scheme: "wss", - domainHost: handler$2.domainHost, - parse: handler$2.parse, - serialize: handler$2.serialize -}; - -var O = {}; -var isIRI = true; -//RFC 3986 -var UNRESERVED$$ = "[A-Za-z0-9\\-\\.\\_\\~" + (isIRI ? "\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF" : "") + "]"; -var HEXDIG$$ = "[0-9A-Fa-f]"; //case-insensitive -var PCT_ENCODED$ = subexp(subexp("%[EFef]" + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%[89A-Fa-f]" + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%" + HEXDIG$$ + HEXDIG$$)); //expanded -//RFC 5322, except these symbols as per RFC 6068: @ : / ? # [ ] & ; = -//const ATEXT$$ = "[A-Za-z0-9\\!\\#\\$\\%\\&\\'\\*\\+\\-\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~]"; -//const WSP$$ = "[\\x20\\x09]"; -//const OBS_QTEXT$$ = "[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F]"; //(%d1-8 / %d11-12 / %d14-31 / %d127) -//const QTEXT$$ = merge("[\\x21\\x23-\\x5B\\x5D-\\x7E]", OBS_QTEXT$$); //%d33 / %d35-91 / %d93-126 / obs-qtext -//const VCHAR$$ = "[\\x21-\\x7E]"; -//const WSP$$ = "[\\x20\\x09]"; -//const OBS_QP$ = subexp("\\\\" + merge("[\\x00\\x0D\\x0A]", OBS_QTEXT$$)); //%d0 / CR / LF / obs-qtext -//const FWS$ = subexp(subexp(WSP$$ + "*" + "\\x0D\\x0A") + "?" + WSP$$ + "+"); -//const QUOTED_PAIR$ = subexp(subexp("\\\\" + subexp(VCHAR$$ + "|" + WSP$$)) + "|" + OBS_QP$); -//const QUOTED_STRING$ = subexp('\\"' + subexp(FWS$ + "?" + QCONTENT$) + "*" + FWS$ + "?" + '\\"'); -var ATEXT$$ = "[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]"; -var QTEXT$$ = "[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]"; -var VCHAR$$ = merge(QTEXT$$, "[\\\"\\\\]"); -var SOME_DELIMS$$ = "[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]"; -var UNRESERVED = new RegExp(UNRESERVED$$, "g"); -var PCT_ENCODED = new RegExp(PCT_ENCODED$, "g"); -var NOT_LOCAL_PART = new RegExp(merge("[^]", ATEXT$$, "[\\.]", '[\\"]', VCHAR$$), "g"); -var NOT_HFNAME = new RegExp(merge("[^]", UNRESERVED$$, SOME_DELIMS$$), "g"); -var NOT_HFVALUE = NOT_HFNAME; -function decodeUnreserved(str) { - var decStr = pctDecChars(str); - return !decStr.match(UNRESERVED) ? str : decStr; -} -var handler$4 = { - scheme: "mailto", - parse: function parse$$1(components, options) { - var mailtoComponents = components; - var to = mailtoComponents.to = mailtoComponents.path ? mailtoComponents.path.split(",") : []; - mailtoComponents.path = undefined; - if (mailtoComponents.query) { - var unknownHeaders = false; - var headers = {}; - var hfields = mailtoComponents.query.split("&"); - for (var x = 0, xl = hfields.length; x < xl; ++x) { - var hfield = hfields[x].split("="); - switch (hfield[0]) { - case "to": - var toAddrs = hfield[1].split(","); - for (var _x = 0, _xl = toAddrs.length; _x < _xl; ++_x) { - to.push(toAddrs[_x]); - } - break; - case "subject": - mailtoComponents.subject = unescapeComponent(hfield[1], options); - break; - case "body": - mailtoComponents.body = unescapeComponent(hfield[1], options); - break; - default: - unknownHeaders = true; - headers[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options); - break; - } - } - if (unknownHeaders) mailtoComponents.headers = headers; - } - mailtoComponents.query = undefined; - for (var _x2 = 0, _xl2 = to.length; _x2 < _xl2; ++_x2) { - var addr = to[_x2].split("@"); - addr[0] = unescapeComponent(addr[0]); - if (!options.unicodeSupport) { - //convert Unicode IDN -> ASCII IDN - try { - addr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase()); - } catch (e) { - mailtoComponents.error = mailtoComponents.error || "Email address's domain name can not be converted to ASCII via punycode: " + e; - } - } else { - addr[1] = unescapeComponent(addr[1], options).toLowerCase(); - } - to[_x2] = addr.join("@"); - } - return mailtoComponents; - }, - serialize: function serialize$$1(mailtoComponents, options) { - var components = mailtoComponents; - var to = toArray(mailtoComponents.to); - if (to) { - for (var x = 0, xl = to.length; x < xl; ++x) { - var toAddr = String(to[x]); - var atIdx = toAddr.lastIndexOf("@"); - var localPart = toAddr.slice(0, atIdx).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar); - var domain = toAddr.slice(atIdx + 1); - //convert IDN via punycode - try { - domain = !options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain); - } catch (e) { - components.error = components.error || "Email address's domain name can not be converted to " + (!options.iri ? "ASCII" : "Unicode") + " via punycode: " + e; - } - to[x] = localPart + "@" + domain; - } - components.path = to.join(","); - } - var headers = mailtoComponents.headers = mailtoComponents.headers || {}; - if (mailtoComponents.subject) headers["subject"] = mailtoComponents.subject; - if (mailtoComponents.body) headers["body"] = mailtoComponents.body; - var fields = []; - for (var name in headers) { - if (headers[name] !== O[name]) { - fields.push(name.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) + "=" + headers[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar)); - } - } - if (fields.length) { - components.query = fields.join("&"); - } - return components; - } -}; - -var URN_PARSE = /^([^\:]+)\:(.*)/; -//RFC 2141 -var handler$5 = { - scheme: "urn", - parse: function parse$$1(components, options) { - var matches = components.path && components.path.match(URN_PARSE); - var urnComponents = components; - if (matches) { - var scheme = options.scheme || urnComponents.scheme || "urn"; - var nid = matches[1].toLowerCase(); - var nss = matches[2]; - var urnScheme = scheme + ":" + (options.nid || nid); - var schemeHandler = SCHEMES[urnScheme]; - urnComponents.nid = nid; - urnComponents.nss = nss; - urnComponents.path = undefined; - if (schemeHandler) { - urnComponents = schemeHandler.parse(urnComponents, options); - } - } else { - urnComponents.error = urnComponents.error || "URN can not be parsed."; - } - return urnComponents; - }, - serialize: function serialize$$1(urnComponents, options) { - var scheme = options.scheme || urnComponents.scheme || "urn"; - var nid = urnComponents.nid; - var urnScheme = scheme + ":" + (options.nid || nid); - var schemeHandler = SCHEMES[urnScheme]; - if (schemeHandler) { - urnComponents = schemeHandler.serialize(urnComponents, options); - } - var uriComponents = urnComponents; - var nss = urnComponents.nss; - uriComponents.path = (nid || options.nid) + ":" + nss; - return uriComponents; - } -}; - -var UUID = /^[0-9A-Fa-f]{8}(?:\-[0-9A-Fa-f]{4}){3}\-[0-9A-Fa-f]{12}$/; -//RFC 4122 -var handler$6 = { - scheme: "urn:uuid", - parse: function parse(urnComponents, options) { - var uuidComponents = urnComponents; - uuidComponents.uuid = uuidComponents.nss; - uuidComponents.nss = undefined; - if (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) { - uuidComponents.error = uuidComponents.error || "UUID is not valid."; - } - return uuidComponents; - }, - serialize: function serialize(uuidComponents, options) { - var urnComponents = uuidComponents; - //normalize UUID - urnComponents.nss = (uuidComponents.uuid || "").toLowerCase(); - return urnComponents; - } -}; - -SCHEMES[handler.scheme] = handler; -SCHEMES[handler$1.scheme] = handler$1; -SCHEMES[handler$2.scheme] = handler$2; -SCHEMES[handler$3.scheme] = handler$3; -SCHEMES[handler$4.scheme] = handler$4; -SCHEMES[handler$5.scheme] = handler$5; -SCHEMES[handler$6.scheme] = handler$6; - -exports.SCHEMES = SCHEMES; -exports.pctEncChar = pctEncChar; -exports.pctDecChars = pctDecChars; -exports.parse = parse; -exports.removeDotSegments = removeDotSegments; -exports.serialize = serialize; -exports.resolveComponents = resolveComponents; -exports.resolve = resolve; -exports.normalize = normalize; -exports.equal = equal; -exports.escapeComponent = escapeComponent; -exports.unescapeComponent = unescapeComponent; - -Object.defineProperty(exports, '__esModule', { value: true }); - -}))); - - -},{}],"ajv":[function(require,module,exports){ -'use strict'; - -var compileSchema = require('./compile') - , resolve = require('./compile/resolve') - , Cache = require('./cache') - , SchemaObject = require('./compile/schema_obj') - , stableStringify = require('fast-json-stable-stringify') - , formats = require('./compile/formats') - , rules = require('./compile/rules') - , $dataMetaSchema = require('./data') - , util = require('./compile/util'); - -module.exports = Ajv; - -Ajv.prototype.validate = validate; -Ajv.prototype.compile = compile; -Ajv.prototype.addSchema = addSchema; -Ajv.prototype.addMetaSchema = addMetaSchema; -Ajv.prototype.validateSchema = validateSchema; -Ajv.prototype.getSchema = getSchema; -Ajv.prototype.removeSchema = removeSchema; -Ajv.prototype.addFormat = addFormat; -Ajv.prototype.errorsText = errorsText; - -Ajv.prototype._addSchema = _addSchema; -Ajv.prototype._compile = _compile; - -Ajv.prototype.compileAsync = require('./compile/async'); -var customKeyword = require('./keyword'); -Ajv.prototype.addKeyword = customKeyword.add; -Ajv.prototype.getKeyword = customKeyword.get; -Ajv.prototype.removeKeyword = customKeyword.remove; -Ajv.prototype.validateKeyword = customKeyword.validate; - -var errorClasses = require('./compile/error_classes'); -Ajv.ValidationError = errorClasses.Validation; -Ajv.MissingRefError = errorClasses.MissingRef; -Ajv.$dataMetaSchema = $dataMetaSchema; - -var META_SCHEMA_ID = 'http://json-schema.org/draft-07/schema'; - -var META_IGNORE_OPTIONS = [ 'removeAdditional', 'useDefaults', 'coerceTypes', 'strictDefaults' ]; -var META_SUPPORT_DATA = ['/properties']; - -/** - * Creates validator instance. - * Usage: `Ajv(opts)` - * @param {Object} opts optional options - * @return {Object} ajv instance - */ -function Ajv(opts) { - if (!(this instanceof Ajv)) return new Ajv(opts); - opts = this._opts = util.copy(opts) || {}; - setLogger(this); - this._schemas = {}; - this._refs = {}; - this._fragments = {}; - this._formats = formats(opts.format); - - this._cache = opts.cache || new Cache; - this._loadingSchemas = {}; - this._compilations = []; - this.RULES = rules(); - this._getId = chooseGetId(opts); - - opts.loopRequired = opts.loopRequired || Infinity; - if (opts.errorDataPath == 'property') opts._errorDataPathProperty = true; - if (opts.serialize === undefined) opts.serialize = stableStringify; - this._metaOpts = getMetaSchemaOptions(this); - - if (opts.formats) addInitialFormats(this); - if (opts.keywords) addInitialKeywords(this); - addDefaultMetaSchema(this); - if (typeof opts.meta == 'object') this.addMetaSchema(opts.meta); - if (opts.nullable) this.addKeyword('nullable', {metaSchema: {type: 'boolean'}}); - addInitialSchemas(this); -} - - - -/** - * Validate data using schema - * Schema will be compiled and cached (using serialized JSON as key. [fast-json-stable-stringify](https://github.com/epoberezkin/fast-json-stable-stringify) is used to serialize. - * @this Ajv - * @param {String|Object} schemaKeyRef key, ref or schema object - * @param {Any} data to be validated - * @return {Boolean} validation result. Errors from the last validation will be available in `ajv.errors` (and also in compiled schema: `schema.errors`). - */ -function validate(schemaKeyRef, data) { - var v; - if (typeof schemaKeyRef == 'string') { - v = this.getSchema(schemaKeyRef); - if (!v) throw new Error('no schema with key or ref "' + schemaKeyRef + '"'); - } else { - var schemaObj = this._addSchema(schemaKeyRef); - v = schemaObj.validate || this._compile(schemaObj); - } - - var valid = v(data); - if (v.$async !== true) this.errors = v.errors; - return valid; -} - - -/** - * Create validating function for passed schema. - * @this Ajv - * @param {Object} schema schema object - * @param {Boolean} _meta true if schema is a meta-schema. Used internally to compile meta schemas of custom keywords. - * @return {Function} validating function - */ -function compile(schema, _meta) { - var schemaObj = this._addSchema(schema, undefined, _meta); - return schemaObj.validate || this._compile(schemaObj); -} - - -/** - * Adds schema to the instance. - * @this Ajv - * @param {Object|Array} schema schema or array of schemas. If array is passed, `key` and other parameters will be ignored. - * @param {String} key Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`. - * @param {Boolean} _skipValidation true to skip schema validation. Used internally, option validateSchema should be used instead. - * @param {Boolean} _meta true if schema is a meta-schema. Used internally, addMetaSchema should be used instead. - * @return {Ajv} this for method chaining - */ -function addSchema(schema, key, _skipValidation, _meta) { - if (Array.isArray(schema)){ - for (var i=0; i} errors optional array of validation errors, if not passed errors from the instance are used. - * @param {Object} options optional options with properties `separator` and `dataVar`. - * @return {String} human readable string with all errors descriptions - */ -function errorsText(errors, options) { - errors = errors || this.errors; - if (!errors) return 'No errors'; - options = options || {}; - var separator = options.separator === undefined ? ', ' : options.separator; - var dataVar = options.dataVar === undefined ? 'data' : options.dataVar; - - var text = ''; - for (var i=0; i%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,u=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i,h=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,d=/^(?:\/(?:[^~/]|~0|~1)*)*$/,p=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,f=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;function m(e){return a.copy(m[e="full"==e?"full":"fast"])}function v(e){var r=e.match(o);if(!r)return!1;var t,a=+r[2],s=+r[3];return 1<=a&&a<=12&&1<=s&&s<=(2!=a||((t=+r[1])%4!=0||t%100==0&&t%400!=0)?i[a]:29)}function y(e,r){var t=e.match(n);if(!t)return!1;var a=t[1],s=t[2],o=t[3];return(a<=23&&s<=59&&o<=59||23==a&&59==s&&60==o)&&(!r||t[5])}(r.exports=m).fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,"uri-template":c,url:u,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:s,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:w,uuid:h,"json-pointer":d,"json-pointer-uri-fragment":p,"relative-json-pointer":f},m.full={date:v,time:y,"date-time":function(e){var r=e.split(g);return 2==r.length&&v(r[0])&&y(r[1],!0)},uri:function(e){return P.test(e)&&l.test(e)},"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":c,url:u,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:s,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:w,uuid:h,"json-pointer":d,"json-pointer-uri-fragment":p,"relative-json-pointer":f};var g=/t|\s/i;var P=/\/|:/;var E=/[^\\]\\Z/;function w(e){if(E.test(e))return!1;try{return new RegExp(e),!0}catch(e){return!1}}},{"./util":10}],5:[function(e,r,t){"use strict";var R=e("./resolve"),$=e("./util"),j=e("./error_classes"),D=e("fast-json-stable-stringify"),O=e("../dotjs/validate"),I=$.ucs2length,A=e("fast-deep-equal"),k=j.Validation;function C(e,c,u,r){var d=this,p=this._opts,h=[void 0],f={},l=[],t={},m=[],a={},v=[],s=function(e,r,t){var a=L.call(this,e,r,t);return 0<=a?{index:a,compiling:!0}:{index:a=this._compilations.length,compiling:!(this._compilations[a]={schema:e,root:r,baseId:t})}}.call(this,e,c=c||{schema:e,refVal:h,refs:f},r),o=this._compilations[s.index];if(s.compiling)return o.callValidate=P;var y=this._formats,g=this.RULES;try{var i=E(e,c,u,r);o.validate=i;var n=o.callValidate;return n&&(n.schema=i.schema,n.errors=null,n.refs=i.refs,n.refVal=i.refVal,n.root=i.root,n.$async=i.$async,p.sourceCode&&(n.source=i.source)),i}finally{(function(e,r,t){var a=L.call(this,e,r,t);0<=a&&this._compilations.splice(a,1)}).call(this,e,c,r)}function P(){var e=o.validate,r=e.apply(this,arguments);return P.errors=e.errors,r}function E(e,r,t,a){var s=!r||r&&r.schema==e;if(r.schema!=c.schema)return C.call(d,e,r,t,a);var o=!0===e.$async,i=O({isTop:!0,schema:e,isRoot:s,baseId:a,root:r,schemaPath:"",errSchemaPath:"#",errorPath:'""',MissingRefError:j.MissingRef,RULES:g,validate:O,util:$,resolve:R,resolveRef:w,usePattern:_,useDefault:F,useCustomRule:x,opts:p,formats:y,logger:d.logger,self:d}),i=Q(h,z)+Q(l,N)+Q(m,q)+Q(v,T)+i;p.processCode&&(i=p.processCode(i,e));try{var n=new Function("self","RULES","formats","root","refVal","defaults","customRules","equal","ucs2length","ValidationError",i)(d,g,y,c,h,m,v,A,I,k);h[0]=n}catch(e){throw d.logger.error("Error compiling schema, function code:",i),e}return n.schema=e,n.errors=null,n.refs=f,n.refVal=h,n.root=s?n:r,o&&(n.$async=!0),!0===p.sourceCode&&(n.source={code:i,patterns:l,defaults:m}),n}function w(e,r,t){r=R.url(e,r);var a,s,o=f[r];if(void 0!==o)return S(a=h[o],s="refVal["+o+"]");if(!t&&c.refs){var i=c.refs[r];if(void 0!==i)return S(a=c.refVal[i],s=b(r,a))}s=b(r);var n,l=R.call(d,E,c,r);if(void 0!==l||(n=u&&u[r])&&(l=R.inlineRef(n,p.inlineRefs)?n:C.call(d,n,c,u,e)),void 0!==l)return S(h[f[r]]=l,s);delete f[r]}function b(e,r){var t=h.length;return h[t]=r,"refVal"+(f[e]=t)}function S(e,r){return"object"==typeof e||"boolean"==typeof e?{code:r,schema:e,inline:!0}:{code:r,$async:e&&!!e.$async}}function _(e){var r=t[e];return void 0===r&&(r=t[e]=l.length,l[r]=e),"pattern"+r}function F(e){switch(typeof e){case"boolean":case"number":return""+e;case"string":return $.toQuotedString(e);case"object":if(null===e)return"null";var r=D(e),t=a[r];return void 0===t&&(t=a[r]=m.length,m[t]=e),"default"+t}}function x(e,r,t,a){if(!1!==d._opts.validateSchema){var s=e.definition.dependencies;if(s&&!s.every(function(e){return Object.prototype.hasOwnProperty.call(t,e)}))throw new Error("parent schema must have all required keywords: "+s.join(","));var o=e.definition.validateSchema;if(o)if(!o(r)){var i="keyword schema is invalid: "+d.errorsText(o.errors);if("log"!=d._opts.validateSchema)throw new Error(i);d.logger.error(i)}}var n,l=e.definition.compile,c=e.definition.inline,u=e.definition.macro;if(l)n=l.call(d,r,t,a);else if(u)n=u.call(d,r,t,a),!1!==p.validateSchema&&d.validateSchema(n,!0);else if(c)n=c.call(d,a,e.keyword,r,t);else if(!(n=e.definition.validate))return;if(void 0===n)throw new Error('custom keyword "'+e.keyword+'"failed to compile');var h=v.length;return{code:"customRule"+h,validate:v[h]=n}}}function L(e,r,t){for(var a=0;a",_=P?">":"<",F=void 0;if(!y&&"number"!=typeof d&&void 0!==d)throw new Error(r+" must be number");if(!b&&void 0!==w&&"number"!=typeof w&&"boolean"!=typeof w)throw new Error(E+" must be number or boolean");b?(o="exclIsNumber"+u,i="' + "+(n="op"+u)+" + '",c+=" var schemaExcl"+u+" = "+(t=e.util.getData(w.$data,h,e.dataPathArr))+"; ",F=E,(l=l||[]).push(c+=" var "+(a="exclusive"+u)+"; var "+(s="exclType"+u)+" = typeof "+(t="schemaExcl"+u)+"; if ("+s+" != 'boolean' && "+s+" != 'undefined' && "+s+" != 'number') { "),c="",!1!==e.createErrors?(c+=" { keyword: '"+(F||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(f)+" , params: {} ",!1!==e.opts.messages&&(c+=" , message: '"+E+" should be boolean' "),e.opts.verbose&&(c+=" , schema: validate.schema"+p+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+v+" "),c+=" } "):c+=" {} ",x=c,c=l.pop(),c+=!e.compositeRule&&m?e.async?" throw new ValidationError(["+x+"]); ":" validate.errors = ["+x+"]; return false; ":" var err = "+x+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",c+=" } else if ( ",y&&(c+=" ("+g+" !== undefined && typeof "+g+" != 'number') || "),c+=" "+s+" == 'number' ? ( ("+a+" = "+g+" === undefined || "+t+" "+S+"= "+g+") ? "+v+" "+_+"= "+t+" : "+v+" "+_+" "+g+" ) : ( ("+a+" = "+t+" === true) ? "+v+" "+_+"= "+g+" : "+v+" "+_+" "+g+" ) || "+v+" !== "+v+") { var op"+u+" = "+a+" ? '"+S+"' : '"+S+"='; ",void 0===d&&(f=e.errSchemaPath+"/"+(F=E),g=t,y=b)):(i=S,(o="number"==typeof w)&&y?(n="'"+i+"'",c+=" if ( ",y&&(c+=" ("+g+" !== undefined && typeof "+g+" != 'number') || "),c+=" ( "+g+" === undefined || "+w+" "+S+"= "+g+" ? "+v+" "+_+"= "+w+" : "+v+" "+_+" "+g+" ) || "+v+" !== "+v+") { "):(o&&void 0===d?(a=!0,f=e.errSchemaPath+"/"+(F=E),g=w,_+="="):(o&&(g=Math[P?"min":"max"](w,d)),w===(!o||g)?(a=!0,f=e.errSchemaPath+"/"+(F=E),_+="="):(a=!1,i+="=")),n="'"+i+"'",c+=" if ( ",y&&(c+=" ("+g+" !== undefined && typeof "+g+" != 'number') || "),c+=" "+v+" "+_+" "+g+" || "+v+" !== "+v+") { ")),F=F||r,(l=l||[]).push(c),c="",!1!==e.createErrors?(c+=" { keyword: '"+(F||"_limit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(f)+" , params: { comparison: "+n+", limit: "+g+", exclusive: "+a+" } ",!1!==e.opts.messages&&(c+=" , message: 'should be "+i+" ",c+=y?"' + "+g:g+"'"),e.opts.verbose&&(c+=" , schema: ",c+=y?"validate.schema"+p:""+d,c+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+v+" "),c+=" } "):c+=" {} ";var x=c;return c=l.pop(),c+=!e.compositeRule&&m?e.async?" throw new ValidationError(["+x+"]); ":" validate.errors = ["+x+"]; return false; ":" var err = "+x+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",c+=" } ",m&&(c+=" else { "),c}},{}],14:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.level,s=e.dataLevel,o=e.schema[r],i=e.schemaPath+e.util.getProperty(r),n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(s||""),u=e.opts.$data&&o&&o.$data,h=u?(t+=" var schema"+a+" = "+e.util.getData(o.$data,s,e.dataPathArr)+"; ","schema"+a):o;if(!u&&"number"!=typeof o)throw new Error(r+" must be number");t+="if ( ",u&&(t+=" ("+h+" !== undefined && typeof "+h+" != 'number') || ");var d=r,p=p||[];p.push(t+=" "+c+".length "+("maxItems"==r?">":"<")+" "+h+") { "),t="",!1!==e.createErrors?(t+=" { keyword: '"+(d||"_limitItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { limit: "+h+" } ",!1!==e.opts.messages&&(t+=" , message: 'should NOT have ",t+="maxItems"==r?"more":"fewer",t+=" than ",t+=u?"' + "+h+" + '":""+o,t+=" items' "),e.opts.verbose&&(t+=" , schema: ",t+=u?"validate.schema"+i:""+o,t+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ";var f=t,t=p.pop();return t+=!e.compositeRule&&l?e.async?" throw new ValidationError(["+f+"]); ":" validate.errors = ["+f+"]; return false; ":" var err = "+f+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+="} ",l&&(t+=" else { "),t}},{}],15:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.level,s=e.dataLevel,o=e.schema[r],i=e.schemaPath+e.util.getProperty(r),n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(s||""),u=e.opts.$data&&o&&o.$data,h=u?(t+=" var schema"+a+" = "+e.util.getData(o.$data,s,e.dataPathArr)+"; ","schema"+a):o;if(!u&&"number"!=typeof o)throw new Error(r+" must be number");t+="if ( ",u&&(t+=" ("+h+" !== undefined && typeof "+h+" != 'number') || "),t+=!1===e.opts.unicode?" "+c+".length ":" ucs2length("+c+") ";var d=r,p=p||[];p.push(t+=" "+("maxLength"==r?">":"<")+" "+h+") { "),t="",!1!==e.createErrors?(t+=" { keyword: '"+(d||"_limitLength")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { limit: "+h+" } ",!1!==e.opts.messages&&(t+=" , message: 'should NOT be ",t+="maxLength"==r?"longer":"shorter",t+=" than ",t+=u?"' + "+h+" + '":""+o,t+=" characters' "),e.opts.verbose&&(t+=" , schema: ",t+=u?"validate.schema"+i:""+o,t+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ";var f=t,t=p.pop();return t+=!e.compositeRule&&l?e.async?" throw new ValidationError(["+f+"]); ":" validate.errors = ["+f+"]; return false; ":" var err = "+f+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+="} ",l&&(t+=" else { "),t}},{}],16:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.level,s=e.dataLevel,o=e.schema[r],i=e.schemaPath+e.util.getProperty(r),n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(s||""),u=e.opts.$data&&o&&o.$data,h=u?(t+=" var schema"+a+" = "+e.util.getData(o.$data,s,e.dataPathArr)+"; ","schema"+a):o;if(!u&&"number"!=typeof o)throw new Error(r+" must be number");t+="if ( ",u&&(t+=" ("+h+" !== undefined && typeof "+h+" != 'number') || ");var d=r,p=p||[];p.push(t+=" Object.keys("+c+").length "+("maxProperties"==r?">":"<")+" "+h+") { "),t="",!1!==e.createErrors?(t+=" { keyword: '"+(d||"_limitProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { limit: "+h+" } ",!1!==e.opts.messages&&(t+=" , message: 'should NOT have ",t+="maxProperties"==r?"more":"fewer",t+=" than ",t+=u?"' + "+h+" + '":""+o,t+=" properties' "),e.opts.verbose&&(t+=" , schema: ",t+=u?"validate.schema"+i:""+o,t+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ";var f=t,t=p.pop();return t+=!e.compositeRule&&l?e.async?" throw new ValidationError(["+f+"]); ":" validate.errors = ["+f+"]; return false; ":" var err = "+f+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+="} ",l&&(t+=" else { "),t}},{}],17:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.schema[r],s=e.schemaPath+e.util.getProperty(r),o=e.errSchemaPath+"/"+r,i=!e.opts.allErrors,n=e.util.copy(e),l="";n.level++;var c="valid"+n.level,u=n.baseId,h=!0,d=a;if(d)for(var p,f=-1,m=d.length-1;f "+_+") { ",x=c+"["+_+"]",d.schema=$,d.schemaPath=i+"["+_+"]",d.errSchemaPath=n+"/"+_,d.errorPath=e.util.getPathExpr(e.errorPath,_,e.opts.jsonPointers,!0),d.dataPathArr[v]=_,R=e.validate(d),d.baseId=g,e.util.varOccurences(R,y)<2?t+=" "+e.util.varReplace(R,y,x)+" ":t+=" var "+y+" = "+x+"; "+R+" ",t+=" } ",l&&(t+=" if ("+f+") { ",p+="}"))}"object"==typeof b&&(e.opts.strictKeywords?"object"==typeof b&&0 "+o.length+") { for (var "+m+" = "+o.length+"; "+m+" < "+c+".length; "+m+"++) { ",d.errorPath=e.util.getPathExpr(e.errorPath,m,e.opts.jsonPointers,!0),x=c+"["+m+"]",d.dataPathArr[v]=m,R=e.validate(d),d.baseId=g,e.util.varOccurences(R,y)<2?t+=" "+e.util.varReplace(R,y,x)+" ":t+=" var "+y+" = "+x+"; "+R+" ",l&&(t+=" if (!"+f+") break; "),t+=" } } ",l&&(t+=" if ("+f+") { ",p+="}"))}else{(e.opts.strictKeywords?"object"==typeof o&&0 1e-"+e.opts.multipleOfPrecision+" ":" division"+a+" !== parseInt(division"+a+") ",t+=" ) ",u&&(t+=" ) ");var d=d||[];d.push(t+=" ) { "),t="",!1!==e.createErrors?(t+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { multipleOf: "+h+" } ",!1!==e.opts.messages&&(t+=" , message: 'should be multiple of ",t+=u?"' + "+h:h+"'"),e.opts.verbose&&(t+=" , schema: ",t+=u?"validate.schema"+i:""+o,t+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ";var p=t,t=d.pop();return t+=!e.compositeRule&&l?e.async?" throw new ValidationError(["+p+"]); ":" validate.errors = ["+p+"]; return false; ":" var err = "+p+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+="} ",l&&(t+=" else { "),t}},{}],30:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.level,s=e.dataLevel,o=e.schema[r],i=e.schemaPath+e.util.getProperty(r),n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(s||""),u="errs__"+a,h=e.util.copy(e);h.level++;var d,p,f,m,v="valid"+h.level;return(e.opts.strictKeywords?"object"==typeof o&&0 1) { ",t=e.schema.items&&e.schema.items.type,a=Array.isArray(t),!t||"object"==t||"array"==t||a&&(0<=t.indexOf("object")||0<=t.indexOf("array"))?i+=" outer: for (;i--;) { for (j = i; j--;) { if (equal("+p+"[i], "+p+"[j])) { "+f+" = false; break outer; } } } ":(i+=" var itemIndices = {}, item; for (;i--;) { var item = "+p+"[i]; ",i+=" if ("+e.util["checkDataType"+(a?"s":"")](t,"item",e.opts.strictNumbers,!0)+") continue; ",a&&(i+=" if (typeof item == 'string') item = '\"' + item; "),i+=" if (typeof itemIndices[item] == 'number') { "+f+" = false; j = itemIndices[item]; break; } itemIndices[item] = i; } "),i+=" } ",m&&(i+=" } "),(s=s||[]).push(i+=" if (!"+f+") { "),i="",!1!==e.createErrors?(i+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { i: i, j: j } ",!1!==e.opts.messages&&(i+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),e.opts.verbose&&(i+=" , schema: ",i+=m?"validate.schema"+u:""+c,i+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),i+=" } "):i+=" {} ",o=i,i=s.pop(),i+=!e.compositeRule&&d?e.async?" throw new ValidationError(["+o+"]); ":" validate.errors = ["+o+"]; return false; ":" var err = "+o+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+=" } ",d&&(i+=" else { ")):d&&(i+=" if (true) { "),i}},{}],38:[function(e,r,t){"use strict";r.exports=function(a,e){var r="",t=!0===a.schema.$async,s=a.util.schemaHasRulesExcept(a.schema,a.RULES.all,"$ref"),o=a.self._getId(a.schema);if(a.opts.strictKeywords){var i=a.util.schemaUnknownRules(a.schema,a.RULES.keywords);if(i){var n="unknown keyword: "+i;if("log"!==a.opts.strictKeywords)throw new Error(n);a.logger.warn(n)}}if(a.isTop&&(r+=" var validate = ",t&&(a.async=!0,r+="async "),r+="function(data, dataPath, parentData, parentDataProperty, rootData) { 'use strict'; ",o&&(a.opts.sourceCode||a.opts.processCode)&&(r+=" /*# sourceURL="+o+" */ ")),"boolean"==typeof a.schema||!s&&!a.schema.$ref){var l=a.level,c=a.dataLevel,u=a.schema[e="false schema"],h=a.schemaPath+a.util.getProperty(e),d=a.errSchemaPath+"/"+e,p=!a.opts.allErrors,f="data"+(c||""),m="valid"+l;return!1===a.schema?(a.isTop?p=!0:r+=" var "+m+" = false; ",(U=U||[]).push(r),r="",!1!==a.createErrors?(r+=" { keyword: 'false schema' , dataPath: (dataPath || '') + "+a.errorPath+" , schemaPath: "+a.util.toQuotedString(d)+" , params: {} ",!1!==a.opts.messages&&(r+=" , message: 'boolean schema is false' "),a.opts.verbose&&(r+=" , schema: false , parentSchema: validate.schema"+a.schemaPath+" , data: "+f+" "),r+=" } "):r+=" {} ",D=r,r=U.pop(),r+=!a.compositeRule&&p?a.async?" throw new ValidationError(["+D+"]); ":" validate.errors = ["+D+"]; return false; ":" var err = "+D+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "):r+=a.isTop?t?" return data; ":" validate.errors = null; return true; ":" var "+m+" = true; ",a.isTop&&(r+=" }; return validate; "),r}if(a.isTop){var v=a.isTop,l=a.level=0,c=a.dataLevel=0,f="data";if(a.rootId=a.resolve.fullPath(a.self._getId(a.root.schema)),a.baseId=a.baseId||a.rootId,delete a.isTop,a.dataPathArr=[""],void 0!==a.schema.default&&a.opts.useDefaults&&a.opts.strictDefaults){var y="default is ignored in the schema root";if("log"!==a.opts.strictDefaults)throw new Error(y);a.logger.warn(y)}r+=" var vErrors = null; ",r+=" var errors = 0; ",r+=" if (rootData === undefined) rootData = data; "}else{l=a.level,f="data"+((c=a.dataLevel)||"");if(o&&(a.baseId=a.resolve.url(a.baseId,o)),t&&!a.async)throw new Error("async schema in sync schema");r+=" var errs_"+l+" = errors;"}var g,m="valid"+l,p=!a.opts.allErrors,P="",E="",w=a.schema.type,b=Array.isArray(w);if(w&&a.opts.nullable&&!0===a.schema.nullable&&(b?-1==w.indexOf("null")&&(w=w.concat("null")):"null"!=w&&(w=[w,"null"],b=!0)),b&&1==w.length&&(w=w[0],b=!1),a.schema.$ref&&s){if("fail"==a.opts.extendRefs)throw new Error('$ref: validation keywords used in schema at path "'+a.errSchemaPath+'" (see option extendRefs)');!0!==a.opts.extendRefs&&(s=!1,a.logger.warn('$ref: keywords ignored in schema at path "'+a.errSchemaPath+'"'))}if(a.schema.$comment&&a.opts.$comment&&(r+=" "+a.RULES.all.$comment.code(a,"$comment")),w){a.opts.coerceTypes&&(g=a.util.coerceToTypes(a.opts.coerceTypes,w));var S=a.RULES.types[w];if(g||b||!0===S||S&&!Z(S)){h=a.schemaPath+".type",d=a.errSchemaPath+"/type",h=a.schemaPath+".type",d=a.errSchemaPath+"/type";if(r+=" if ("+a.util[b?"checkDataTypes":"checkDataType"](w,f,a.opts.strictNumbers,!0)+") { ",g){var _="dataType"+l,F="coerced"+l;r+=" var "+_+" = typeof "+f+"; var "+F+" = undefined; ","array"==a.opts.coerceTypes&&(r+=" if ("+_+" == 'object' && Array.isArray("+f+") && "+f+".length == 1) { "+f+" = "+f+"[0]; "+_+" = typeof "+f+"; if ("+a.util.checkDataType(a.schema.type,f,a.opts.strictNumbers)+") "+F+" = "+f+"; } "),r+=" if ("+F+" !== undefined) ; ";var x=g;if(x)for(var R,$=-1,j=x.length-1;$= 0x80 (not a basic code point)","invalid-input":"Invalid input"},k=Math.floor,C=String.fromCharCode;function L(e){throw new RangeError(i[e])}function n(e,r){var t=e.split("@"),a="";return 1>1,e+=k(e/r);455k((A-a)/h))&&L("overflow"),a+=p*h;var f=d<=o?1:o+26<=d?26:d-o;if(pk(A/m)&&L("overflow"),h*=m}var v=r.length+1,o=z(a-u,v,0==u);k(a/v)>A-s&&L("overflow"),s+=k(a/v),a%=v,r.splice(a++,0,s)}return String.fromCodePoint.apply(String,r)}function c(e){var r=[],t=(e=N(e)).length,a=128,s=0,o=72,i=!0,n=!1,l=void 0;try{for(var c,u=e[Symbol.iterator]();!(i=(c=u.next()).done);i=!0){var h=c.value;h<128&&r.push(C(h))}}catch(e){n=!0,l=e}finally{try{!i&&u.return&&u.return()}finally{if(n)throw l}}var d=r.length,p=d;for(d&&r.push("-");pk((A-s)/w)&&L("overflow"),s+=(f-a)*w,a=f;var b=!0,S=!1,_=void 0;try{for(var F,x=e[Symbol.iterator]();!(b=(F=x.next()).done);b=!0){var R=F.value;if(RA&&L("overflow"),R==a){for(var $=s,j=36;;j+=36){var D=j<=o?1:o+26<=j?26:j-o;if($>6|192).toString(16).toUpperCase()+"%"+(63&r|128).toString(16).toUpperCase():"%"+(r>>12|224).toString(16).toUpperCase()+"%"+(r>>6&63|128).toString(16).toUpperCase()+"%"+(63&r|128).toString(16).toUpperCase()}function p(e){for(var r="",t=0,a=e.length;tA-Z\\x5E-\\x7E]",'[\\"\\\\]')),Y=new RegExp(K,"g"),W=new RegExp("(?:(?:%[EFef][0-9A-Fa-f]%[0-9A-Fa-f][0-9A-Fa-f]%[0-9A-Fa-f][0-9A-Fa-f])|(?:%[89A-Fa-f][0-9A-Fa-f]%[0-9A-Fa-f][0-9A-Fa-f])|(?:%[0-9A-Fa-f][0-9A-Fa-f]))","g"),X=new RegExp(J("[^]","[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]","[\\.]",'[\\"]',G),"g"),ee=new RegExp(J("[^]",K,"[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]"),"g"),re=ee;function te(e){var r=p(e);return r.match(Y)?r:e}var ae={scheme:"mailto",parse:function(e,r){var t=e,a=t.to=t.path?t.path.split(","):[];if(t.path=void 0,t.query){for(var s=!1,o={},i=t.query.split("&"),n=0,l=i.length;n); - - message: string; - errors: Array; - ajv: true; - validation: true; - } - - class MissingRefError extends Error { - constructor(baseId: string, ref: string, message?: string); - static message: (baseId: string, ref: string) => string; - - message: string; - missingRef: string; - missingSchema: string; - } -} - -declare namespace ajv { - type ValidationError = AjvErrors.ValidationError; - - type MissingRefError = AjvErrors.MissingRefError; - - interface Ajv { - /** - * Validate data using schema - * Schema will be compiled and cached (using serialized JSON as key, [fast-json-stable-stringify](https://github.com/epoberezkin/fast-json-stable-stringify) is used to serialize by default). - * @param {string|object|Boolean} schemaKeyRef key, ref or schema object - * @param {Any} data to be validated - * @return {Boolean} validation result. Errors from the last validation will be available in `ajv.errors` (and also in compiled schema: `schema.errors`). - */ - validate(schemaKeyRef: object | string | boolean, data: any): boolean | PromiseLike; - /** - * Create validating function for passed schema. - * @param {object|Boolean} schema schema object - * @return {Function} validating function - */ - compile(schema: object | boolean): ValidateFunction; - /** - * Creates validating function for passed schema with asynchronous loading of missing schemas. - * `loadSchema` option should be a function that accepts schema uri and node-style callback. - * @this Ajv - * @param {object|Boolean} schema schema object - * @param {Boolean} meta optional true to compile meta-schema; this parameter can be skipped - * @param {Function} callback optional node-style callback, it is always called with 2 parameters: error (or null) and validating function. - * @return {PromiseLike} validating function - */ - compileAsync(schema: object | boolean, meta?: Boolean, callback?: (err: Error, validate: ValidateFunction) => any): PromiseLike; - /** - * Adds schema to the instance. - * @param {object|Array} schema schema or array of schemas. If array is passed, `key` and other parameters will be ignored. - * @param {string} key Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`. - * @return {Ajv} this for method chaining - */ - addSchema(schema: Array | object, key?: string): Ajv; - /** - * Add schema that will be used to validate other schemas - * options in META_IGNORE_OPTIONS are alway set to false - * @param {object} schema schema object - * @param {string} key optional schema key - * @return {Ajv} this for method chaining - */ - addMetaSchema(schema: object, key?: string): Ajv; - /** - * Validate schema - * @param {object|Boolean} schema schema to validate - * @return {Boolean} true if schema is valid - */ - validateSchema(schema: object | boolean): boolean; - /** - * Get compiled schema from the instance by `key` or `ref`. - * @param {string} keyRef `key` that was passed to `addSchema` or full schema reference (`schema.id` or resolved id). - * @return {Function} schema validating function (with property `schema`). Returns undefined if keyRef can't be resolved to an existing schema. - */ - getSchema(keyRef: string): ValidateFunction | undefined; - /** - * Remove cached schema(s). - * If no parameter is passed all schemas but meta-schemas are removed. - * If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed. - * Even if schema is referenced by other schemas it still can be removed as other schemas have local references. - * @param {string|object|RegExp|Boolean} schemaKeyRef key, ref, pattern to match key/ref or schema object - * @return {Ajv} this for method chaining - */ - removeSchema(schemaKeyRef?: object | string | RegExp | boolean): Ajv; - /** - * Add custom format - * @param {string} name format name - * @param {string|RegExp|Function} format string is converted to RegExp; function should return boolean (true when valid) - * @return {Ajv} this for method chaining - */ - addFormat(name: string, format: FormatValidator | FormatDefinition): Ajv; - /** - * Define custom keyword - * @this Ajv - * @param {string} keyword custom keyword, should be a valid identifier, should be different from all standard, custom and macro keywords. - * @param {object} definition keyword definition object with properties `type` (type(s) which the keyword applies to), `validate` or `compile`. - * @return {Ajv} this for method chaining - */ - addKeyword(keyword: string, definition: KeywordDefinition): Ajv; - /** - * Get keyword definition - * @this Ajv - * @param {string} keyword pre-defined or custom keyword. - * @return {object|Boolean} custom keyword definition, `true` if it is a predefined keyword, `false` otherwise. - */ - getKeyword(keyword: string): object | boolean; - /** - * Remove keyword - * @this Ajv - * @param {string} keyword pre-defined or custom keyword. - * @return {Ajv} this for method chaining - */ - removeKeyword(keyword: string): Ajv; - /** - * Validate keyword - * @this Ajv - * @param {object} definition keyword definition object - * @param {boolean} throwError true to throw exception if definition is invalid - * @return {boolean} validation result - */ - validateKeyword(definition: KeywordDefinition, throwError: boolean): boolean; - /** - * Convert array of error message objects to string - * @param {Array} errors optional array of validation errors, if not passed errors from the instance are used. - * @param {object} options optional options with properties `separator` and `dataVar`. - * @return {string} human readable string with all errors descriptions - */ - errorsText(errors?: Array | null, options?: ErrorsTextOptions): string; - errors?: Array | null; - _opts: Options; - } - - interface CustomLogger { - log(...args: any[]): any; - warn(...args: any[]): any; - error(...args: any[]): any; - } - - interface ValidateFunction { - ( - data: any, - dataPath?: string, - parentData?: object | Array, - parentDataProperty?: string | number, - rootData?: object | Array - ): boolean | PromiseLike; - schema?: object | boolean; - errors?: null | Array; - refs?: object; - refVal?: Array; - root?: ValidateFunction | object; - $async?: true; - source?: object; - } - - interface Options { - $data?: boolean; - allErrors?: boolean; - verbose?: boolean; - jsonPointers?: boolean; - uniqueItems?: boolean; - unicode?: boolean; - format?: false | string; - formats?: object; - keywords?: object; - unknownFormats?: true | string[] | 'ignore'; - schemas?: Array | object; - schemaId?: '$id' | 'id' | 'auto'; - missingRefs?: true | 'ignore' | 'fail'; - extendRefs?: true | 'ignore' | 'fail'; - loadSchema?: (uri: string, cb?: (err: Error, schema: object) => void) => PromiseLike; - removeAdditional?: boolean | 'all' | 'failing'; - useDefaults?: boolean | 'empty' | 'shared'; - coerceTypes?: boolean | 'array'; - strictDefaults?: boolean | 'log'; - strictKeywords?: boolean | 'log'; - strictNumbers?: boolean; - async?: boolean | string; - transpile?: string | ((code: string) => string); - meta?: boolean | object; - validateSchema?: boolean | 'log'; - addUsedSchema?: boolean; - inlineRefs?: boolean | number; - passContext?: boolean; - loopRequired?: number; - ownProperties?: boolean; - multipleOfPrecision?: boolean | number; - errorDataPath?: string, - messages?: boolean; - sourceCode?: boolean; - processCode?: (code: string, schema: object) => string; - cache?: object; - logger?: CustomLogger | false; - nullable?: boolean; - serialize?: ((schema: object | boolean) => any) | false; - } - - type FormatValidator = string | RegExp | ((data: string) => boolean | PromiseLike); - type NumberFormatValidator = ((data: number) => boolean | PromiseLike); - - interface NumberFormatDefinition { - type: "number", - validate: NumberFormatValidator; - compare?: (data1: number, data2: number) => number; - async?: boolean; - } - - interface StringFormatDefinition { - type?: "string", - validate: FormatValidator; - compare?: (data1: string, data2: string) => number; - async?: boolean; - } - - type FormatDefinition = NumberFormatDefinition | StringFormatDefinition; - - interface KeywordDefinition { - type?: string | Array; - async?: boolean; - $data?: boolean; - errors?: boolean | string; - metaSchema?: object; - // schema: false makes validate not to expect schema (ValidateFunction) - schema?: boolean; - statements?: boolean; - dependencies?: Array; - modifying?: boolean; - valid?: boolean; - // one and only one of the following properties should be present - validate?: SchemaValidateFunction | ValidateFunction; - compile?: (schema: any, parentSchema: object, it: CompilationContext) => ValidateFunction; - macro?: (schema: any, parentSchema: object, it: CompilationContext) => object | boolean; - inline?: (it: CompilationContext, keyword: string, schema: any, parentSchema: object) => string; - } - - interface CompilationContext { - level: number; - dataLevel: number; - dataPathArr: string[]; - schema: any; - schemaPath: string; - baseId: string; - async: boolean; - opts: Options; - formats: { - [index: string]: FormatDefinition | undefined; - }; - keywords: { - [index: string]: KeywordDefinition | undefined; - }; - compositeRule: boolean; - validate: (schema: object) => boolean; - util: { - copy(obj: any, target?: any): any; - toHash(source: string[]): { [index: string]: true | undefined }; - equal(obj: any, target: any): boolean; - getProperty(str: string): string; - schemaHasRules(schema: object, rules: any): string; - escapeQuotes(str: string): string; - toQuotedString(str: string): string; - getData(jsonPointer: string, dataLevel: number, paths: string[]): string; - escapeJsonPointer(str: string): string; - unescapeJsonPointer(str: string): string; - escapeFragment(str: string): string; - unescapeFragment(str: string): string; - }; - self: Ajv; - } - - interface SchemaValidateFunction { - ( - schema: any, - data: any, - parentSchema?: object, - dataPath?: string, - parentData?: object | Array, - parentDataProperty?: string | number, - rootData?: object | Array - ): boolean | PromiseLike; - errors?: Array; - } - - interface ErrorsTextOptions { - separator?: string; - dataVar?: string; - } - - interface ErrorObject { - keyword: string; - dataPath: string; - schemaPath: string; - params: ErrorParameters; - // Added to validation errors of propertyNames keyword schema - propertyName?: string; - // Excluded if messages set to false. - message?: string; - // These are added with the `verbose` option. - schema?: any; - parentSchema?: object; - data?: any; - } - - type ErrorParameters = RefParams | LimitParams | AdditionalPropertiesParams | - DependenciesParams | FormatParams | ComparisonParams | - MultipleOfParams | PatternParams | RequiredParams | - TypeParams | UniqueItemsParams | CustomParams | - PatternRequiredParams | PropertyNamesParams | - IfParams | SwitchParams | NoParams | EnumParams; - - interface RefParams { - ref: string; - } - - interface LimitParams { - limit: number; - } - - interface AdditionalPropertiesParams { - additionalProperty: string; - } - - interface DependenciesParams { - property: string; - missingProperty: string; - depsCount: number; - deps: string; - } - - interface FormatParams { - format: string - } - - interface ComparisonParams { - comparison: string; - limit: number | string; - exclusive: boolean; - } - - interface MultipleOfParams { - multipleOf: number; - } - - interface PatternParams { - pattern: string; - } - - interface RequiredParams { - missingProperty: string; - } - - interface TypeParams { - type: string; - } - - interface UniqueItemsParams { - i: number; - j: number; - } - - interface CustomParams { - keyword: string; - } - - interface PatternRequiredParams { - missingPattern: string; - } - - interface PropertyNamesParams { - propertyName: string; - } - - interface IfParams { - failingKeyword: string; - } - - interface SwitchParams { - caseIndex: number; - } - - interface NoParams { } - - interface EnumParams { - allowedValues: Array; - } -} - -export = ajv; diff --git a/deps/npm/node_modules/ajv/lib/ajv.js b/deps/npm/node_modules/ajv/lib/ajv.js deleted file mode 100644 index 06a45b650b3ac5..00000000000000 --- a/deps/npm/node_modules/ajv/lib/ajv.js +++ /dev/null @@ -1,506 +0,0 @@ -'use strict'; - -var compileSchema = require('./compile') - , resolve = require('./compile/resolve') - , Cache = require('./cache') - , SchemaObject = require('./compile/schema_obj') - , stableStringify = require('fast-json-stable-stringify') - , formats = require('./compile/formats') - , rules = require('./compile/rules') - , $dataMetaSchema = require('./data') - , util = require('./compile/util'); - -module.exports = Ajv; - -Ajv.prototype.validate = validate; -Ajv.prototype.compile = compile; -Ajv.prototype.addSchema = addSchema; -Ajv.prototype.addMetaSchema = addMetaSchema; -Ajv.prototype.validateSchema = validateSchema; -Ajv.prototype.getSchema = getSchema; -Ajv.prototype.removeSchema = removeSchema; -Ajv.prototype.addFormat = addFormat; -Ajv.prototype.errorsText = errorsText; - -Ajv.prototype._addSchema = _addSchema; -Ajv.prototype._compile = _compile; - -Ajv.prototype.compileAsync = require('./compile/async'); -var customKeyword = require('./keyword'); -Ajv.prototype.addKeyword = customKeyword.add; -Ajv.prototype.getKeyword = customKeyword.get; -Ajv.prototype.removeKeyword = customKeyword.remove; -Ajv.prototype.validateKeyword = customKeyword.validate; - -var errorClasses = require('./compile/error_classes'); -Ajv.ValidationError = errorClasses.Validation; -Ajv.MissingRefError = errorClasses.MissingRef; -Ajv.$dataMetaSchema = $dataMetaSchema; - -var META_SCHEMA_ID = 'http://json-schema.org/draft-07/schema'; - -var META_IGNORE_OPTIONS = [ 'removeAdditional', 'useDefaults', 'coerceTypes', 'strictDefaults' ]; -var META_SUPPORT_DATA = ['/properties']; - -/** - * Creates validator instance. - * Usage: `Ajv(opts)` - * @param {Object} opts optional options - * @return {Object} ajv instance - */ -function Ajv(opts) { - if (!(this instanceof Ajv)) return new Ajv(opts); - opts = this._opts = util.copy(opts) || {}; - setLogger(this); - this._schemas = {}; - this._refs = {}; - this._fragments = {}; - this._formats = formats(opts.format); - - this._cache = opts.cache || new Cache; - this._loadingSchemas = {}; - this._compilations = []; - this.RULES = rules(); - this._getId = chooseGetId(opts); - - opts.loopRequired = opts.loopRequired || Infinity; - if (opts.errorDataPath == 'property') opts._errorDataPathProperty = true; - if (opts.serialize === undefined) opts.serialize = stableStringify; - this._metaOpts = getMetaSchemaOptions(this); - - if (opts.formats) addInitialFormats(this); - if (opts.keywords) addInitialKeywords(this); - addDefaultMetaSchema(this); - if (typeof opts.meta == 'object') this.addMetaSchema(opts.meta); - if (opts.nullable) this.addKeyword('nullable', {metaSchema: {type: 'boolean'}}); - addInitialSchemas(this); -} - - - -/** - * Validate data using schema - * Schema will be compiled and cached (using serialized JSON as key. [fast-json-stable-stringify](https://github.com/epoberezkin/fast-json-stable-stringify) is used to serialize. - * @this Ajv - * @param {String|Object} schemaKeyRef key, ref or schema object - * @param {Any} data to be validated - * @return {Boolean} validation result. Errors from the last validation will be available in `ajv.errors` (and also in compiled schema: `schema.errors`). - */ -function validate(schemaKeyRef, data) { - var v; - if (typeof schemaKeyRef == 'string') { - v = this.getSchema(schemaKeyRef); - if (!v) throw new Error('no schema with key or ref "' + schemaKeyRef + '"'); - } else { - var schemaObj = this._addSchema(schemaKeyRef); - v = schemaObj.validate || this._compile(schemaObj); - } - - var valid = v(data); - if (v.$async !== true) this.errors = v.errors; - return valid; -} - - -/** - * Create validating function for passed schema. - * @this Ajv - * @param {Object} schema schema object - * @param {Boolean} _meta true if schema is a meta-schema. Used internally to compile meta schemas of custom keywords. - * @return {Function} validating function - */ -function compile(schema, _meta) { - var schemaObj = this._addSchema(schema, undefined, _meta); - return schemaObj.validate || this._compile(schemaObj); -} - - -/** - * Adds schema to the instance. - * @this Ajv - * @param {Object|Array} schema schema or array of schemas. If array is passed, `key` and other parameters will be ignored. - * @param {String} key Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`. - * @param {Boolean} _skipValidation true to skip schema validation. Used internally, option validateSchema should be used instead. - * @param {Boolean} _meta true if schema is a meta-schema. Used internally, addMetaSchema should be used instead. - * @return {Ajv} this for method chaining - */ -function addSchema(schema, key, _skipValidation, _meta) { - if (Array.isArray(schema)){ - for (var i=0; i} errors optional array of validation errors, if not passed errors from the instance are used. - * @param {Object} options optional options with properties `separator` and `dataVar`. - * @return {String} human readable string with all errors descriptions - */ -function errorsText(errors, options) { - errors = errors || this.errors; - if (!errors) return 'No errors'; - options = options || {}; - var separator = options.separator === undefined ? ', ' : options.separator; - var dataVar = options.dataVar === undefined ? 'data' : options.dataVar; - - var text = ''; - for (var i=0; i%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i; -// For the source: https://gist.github.com/dperini/729294 -// For test cases: https://mathiasbynens.be/demo/url-regex -// @todo Delete current URL in favour of the commented out URL rule when this issue is fixed https://github.com/eslint/eslint/issues/7983. -// var URL = /^(?:(?:https?|ftp):\/\/)(?:\S+(?::\S*)?@)?(?:(?!10(?:\.\d{1,3}){3})(?!127(?:\.\d{1,3}){3})(?!169\.254(?:\.\d{1,3}){2})(?!192\.168(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u{00a1}-\u{ffff}0-9]+-)*[a-z\u{00a1}-\u{ffff}0-9]+)(?:\.(?:[a-z\u{00a1}-\u{ffff}0-9]+-)*[a-z\u{00a1}-\u{ffff}0-9]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu; -var URL = /^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i; -var UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i; -var JSON_POINTER = /^(?:\/(?:[^~/]|~0|~1)*)*$/; -var JSON_POINTER_URI_FRAGMENT = /^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i; -var RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/; - - -module.exports = formats; - -function formats(mode) { - mode = mode == 'full' ? 'full' : 'fast'; - return util.copy(formats[mode]); -} - - -formats.fast = { - // date: http://tools.ietf.org/html/rfc3339#section-5.6 - date: /^\d\d\d\d-[0-1]\d-[0-3]\d$/, - // date-time: http://tools.ietf.org/html/rfc3339#section-5.6 - time: /^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i, - 'date-time': /^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i, - // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js - uri: /^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i, - 'uri-reference': /^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i, - 'uri-template': URITEMPLATE, - url: URL, - // email (sources from jsen validator): - // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363 - // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'willful violation') - email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i, - hostname: HOSTNAME, - // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html - ipv4: /^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/, - // optimized http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses - ipv6: /^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i, - regex: regex, - // uuid: http://tools.ietf.org/html/rfc4122 - uuid: UUID, - // JSON-pointer: https://tools.ietf.org/html/rfc6901 - // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A - 'json-pointer': JSON_POINTER, - 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT, - // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00 - 'relative-json-pointer': RELATIVE_JSON_POINTER -}; - - -formats.full = { - date: date, - time: time, - 'date-time': date_time, - uri: uri, - 'uri-reference': URIREF, - 'uri-template': URITEMPLATE, - url: URL, - email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i, - hostname: HOSTNAME, - ipv4: /^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/, - ipv6: /^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i, - regex: regex, - uuid: UUID, - 'json-pointer': JSON_POINTER, - 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT, - 'relative-json-pointer': RELATIVE_JSON_POINTER -}; - - -function isLeapYear(year) { - // https://tools.ietf.org/html/rfc3339#appendix-C - return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0); -} - - -function date(str) { - // full-date from http://tools.ietf.org/html/rfc3339#section-5.6 - var matches = str.match(DATE); - if (!matches) return false; - - var year = +matches[1]; - var month = +matches[2]; - var day = +matches[3]; - - return month >= 1 && month <= 12 && day >= 1 && - day <= (month == 2 && isLeapYear(year) ? 29 : DAYS[month]); -} - - -function time(str, full) { - var matches = str.match(TIME); - if (!matches) return false; - - var hour = matches[1]; - var minute = matches[2]; - var second = matches[3]; - var timeZone = matches[5]; - return ((hour <= 23 && minute <= 59 && second <= 59) || - (hour == 23 && minute == 59 && second == 60)) && - (!full || timeZone); -} - - -var DATE_TIME_SEPARATOR = /t|\s/i; -function date_time(str) { - // http://tools.ietf.org/html/rfc3339#section-5.6 - var dateTime = str.split(DATE_TIME_SEPARATOR); - return dateTime.length == 2 && date(dateTime[0]) && time(dateTime[1], true); -} - - -var NOT_URI_FRAGMENT = /\/|:/; -function uri(str) { - // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required "." - return NOT_URI_FRAGMENT.test(str) && URI.test(str); -} - - -var Z_ANCHOR = /[^\\]\\Z/; -function regex(str) { - if (Z_ANCHOR.test(str)) return false; - try { - new RegExp(str); - return true; - } catch(e) { - return false; - } -} diff --git a/deps/npm/node_modules/ajv/lib/compile/index.js b/deps/npm/node_modules/ajv/lib/compile/index.js deleted file mode 100644 index 97518c42479dbb..00000000000000 --- a/deps/npm/node_modules/ajv/lib/compile/index.js +++ /dev/null @@ -1,387 +0,0 @@ -'use strict'; - -var resolve = require('./resolve') - , util = require('./util') - , errorClasses = require('./error_classes') - , stableStringify = require('fast-json-stable-stringify'); - -var validateGenerator = require('../dotjs/validate'); - -/** - * Functions below are used inside compiled validations function - */ - -var ucs2length = util.ucs2length; -var equal = require('fast-deep-equal'); - -// this error is thrown by async schemas to return validation errors via exception -var ValidationError = errorClasses.Validation; - -module.exports = compile; - - -/** - * Compiles schema to validation function - * @this Ajv - * @param {Object} schema schema object - * @param {Object} root object with information about the root schema for this schema - * @param {Object} localRefs the hash of local references inside the schema (created by resolve.id), used for inline resolution - * @param {String} baseId base ID for IDs in the schema - * @return {Function} validation function - */ -function compile(schema, root, localRefs, baseId) { - /* jshint validthis: true, evil: true */ - /* eslint no-shadow: 0 */ - var self = this - , opts = this._opts - , refVal = [ undefined ] - , refs = {} - , patterns = [] - , patternsHash = {} - , defaults = [] - , defaultsHash = {} - , customRules = []; - - root = root || { schema: schema, refVal: refVal, refs: refs }; - - var c = checkCompiling.call(this, schema, root, baseId); - var compilation = this._compilations[c.index]; - if (c.compiling) return (compilation.callValidate = callValidate); - - var formats = this._formats; - var RULES = this.RULES; - - try { - var v = localCompile(schema, root, localRefs, baseId); - compilation.validate = v; - var cv = compilation.callValidate; - if (cv) { - cv.schema = v.schema; - cv.errors = null; - cv.refs = v.refs; - cv.refVal = v.refVal; - cv.root = v.root; - cv.$async = v.$async; - if (opts.sourceCode) cv.source = v.source; - } - return v; - } finally { - endCompiling.call(this, schema, root, baseId); - } - - /* @this {*} - custom context, see passContext option */ - function callValidate() { - /* jshint validthis: true */ - var validate = compilation.validate; - var result = validate.apply(this, arguments); - callValidate.errors = validate.errors; - return result; - } - - function localCompile(_schema, _root, localRefs, baseId) { - var isRoot = !_root || (_root && _root.schema == _schema); - if (_root.schema != root.schema) - return compile.call(self, _schema, _root, localRefs, baseId); - - var $async = _schema.$async === true; - - var sourceCode = validateGenerator({ - isTop: true, - schema: _schema, - isRoot: isRoot, - baseId: baseId, - root: _root, - schemaPath: '', - errSchemaPath: '#', - errorPath: '""', - MissingRefError: errorClasses.MissingRef, - RULES: RULES, - validate: validateGenerator, - util: util, - resolve: resolve, - resolveRef: resolveRef, - usePattern: usePattern, - useDefault: useDefault, - useCustomRule: useCustomRule, - opts: opts, - formats: formats, - logger: self.logger, - self: self - }); - - sourceCode = vars(refVal, refValCode) + vars(patterns, patternCode) - + vars(defaults, defaultCode) + vars(customRules, customRuleCode) - + sourceCode; - - if (opts.processCode) sourceCode = opts.processCode(sourceCode, _schema); - // console.log('\n\n\n *** \n', JSON.stringify(sourceCode)); - var validate; - try { - var makeValidate = new Function( - 'self', - 'RULES', - 'formats', - 'root', - 'refVal', - 'defaults', - 'customRules', - 'equal', - 'ucs2length', - 'ValidationError', - sourceCode - ); - - validate = makeValidate( - self, - RULES, - formats, - root, - refVal, - defaults, - customRules, - equal, - ucs2length, - ValidationError - ); - - refVal[0] = validate; - } catch(e) { - self.logger.error('Error compiling schema, function code:', sourceCode); - throw e; - } - - validate.schema = _schema; - validate.errors = null; - validate.refs = refs; - validate.refVal = refVal; - validate.root = isRoot ? validate : _root; - if ($async) validate.$async = true; - if (opts.sourceCode === true) { - validate.source = { - code: sourceCode, - patterns: patterns, - defaults: defaults - }; - } - - return validate; - } - - function resolveRef(baseId, ref, isRoot) { - ref = resolve.url(baseId, ref); - var refIndex = refs[ref]; - var _refVal, refCode; - if (refIndex !== undefined) { - _refVal = refVal[refIndex]; - refCode = 'refVal[' + refIndex + ']'; - return resolvedRef(_refVal, refCode); - } - if (!isRoot && root.refs) { - var rootRefId = root.refs[ref]; - if (rootRefId !== undefined) { - _refVal = root.refVal[rootRefId]; - refCode = addLocalRef(ref, _refVal); - return resolvedRef(_refVal, refCode); - } - } - - refCode = addLocalRef(ref); - var v = resolve.call(self, localCompile, root, ref); - if (v === undefined) { - var localSchema = localRefs && localRefs[ref]; - if (localSchema) { - v = resolve.inlineRef(localSchema, opts.inlineRefs) - ? localSchema - : compile.call(self, localSchema, root, localRefs, baseId); - } - } - - if (v === undefined) { - removeLocalRef(ref); - } else { - replaceLocalRef(ref, v); - return resolvedRef(v, refCode); - } - } - - function addLocalRef(ref, v) { - var refId = refVal.length; - refVal[refId] = v; - refs[ref] = refId; - return 'refVal' + refId; - } - - function removeLocalRef(ref) { - delete refs[ref]; - } - - function replaceLocalRef(ref, v) { - var refId = refs[ref]; - refVal[refId] = v; - } - - function resolvedRef(refVal, code) { - return typeof refVal == 'object' || typeof refVal == 'boolean' - ? { code: code, schema: refVal, inline: true } - : { code: code, $async: refVal && !!refVal.$async }; - } - - function usePattern(regexStr) { - var index = patternsHash[regexStr]; - if (index === undefined) { - index = patternsHash[regexStr] = patterns.length; - patterns[index] = regexStr; - } - return 'pattern' + index; - } - - function useDefault(value) { - switch (typeof value) { - case 'boolean': - case 'number': - return '' + value; - case 'string': - return util.toQuotedString(value); - case 'object': - if (value === null) return 'null'; - var valueStr = stableStringify(value); - var index = defaultsHash[valueStr]; - if (index === undefined) { - index = defaultsHash[valueStr] = defaults.length; - defaults[index] = value; - } - return 'default' + index; - } - } - - function useCustomRule(rule, schema, parentSchema, it) { - if (self._opts.validateSchema !== false) { - var deps = rule.definition.dependencies; - if (deps && !deps.every(function(keyword) { - return Object.prototype.hasOwnProperty.call(parentSchema, keyword); - })) - throw new Error('parent schema must have all required keywords: ' + deps.join(',')); - - var validateSchema = rule.definition.validateSchema; - if (validateSchema) { - var valid = validateSchema(schema); - if (!valid) { - var message = 'keyword schema is invalid: ' + self.errorsText(validateSchema.errors); - if (self._opts.validateSchema == 'log') self.logger.error(message); - else throw new Error(message); - } - } - } - - var compile = rule.definition.compile - , inline = rule.definition.inline - , macro = rule.definition.macro; - - var validate; - if (compile) { - validate = compile.call(self, schema, parentSchema, it); - } else if (macro) { - validate = macro.call(self, schema, parentSchema, it); - if (opts.validateSchema !== false) self.validateSchema(validate, true); - } else if (inline) { - validate = inline.call(self, it, rule.keyword, schema, parentSchema); - } else { - validate = rule.definition.validate; - if (!validate) return; - } - - if (validate === undefined) - throw new Error('custom keyword "' + rule.keyword + '"failed to compile'); - - var index = customRules.length; - customRules[index] = validate; - - return { - code: 'customRule' + index, - validate: validate - }; - } -} - - -/** - * Checks if the schema is currently compiled - * @this Ajv - * @param {Object} schema schema to compile - * @param {Object} root root object - * @param {String} baseId base schema ID - * @return {Object} object with properties "index" (compilation index) and "compiling" (boolean) - */ -function checkCompiling(schema, root, baseId) { - /* jshint validthis: true */ - var index = compIndex.call(this, schema, root, baseId); - if (index >= 0) return { index: index, compiling: true }; - index = this._compilations.length; - this._compilations[index] = { - schema: schema, - root: root, - baseId: baseId - }; - return { index: index, compiling: false }; -} - - -/** - * Removes the schema from the currently compiled list - * @this Ajv - * @param {Object} schema schema to compile - * @param {Object} root root object - * @param {String} baseId base schema ID - */ -function endCompiling(schema, root, baseId) { - /* jshint validthis: true */ - var i = compIndex.call(this, schema, root, baseId); - if (i >= 0) this._compilations.splice(i, 1); -} - - -/** - * Index of schema compilation in the currently compiled list - * @this Ajv - * @param {Object} schema schema to compile - * @param {Object} root root object - * @param {String} baseId base schema ID - * @return {Integer} compilation index - */ -function compIndex(schema, root, baseId) { - /* jshint validthis: true */ - for (var i=0; i= 0xD800 && value <= 0xDBFF && pos < len) { - // high surrogate, and there is a next character - value = str.charCodeAt(pos); - if ((value & 0xFC00) == 0xDC00) pos++; // low surrogate - } - } - return length; -}; diff --git a/deps/npm/node_modules/ajv/lib/compile/util.js b/deps/npm/node_modules/ajv/lib/compile/util.js deleted file mode 100644 index ef07b8c7579723..00000000000000 --- a/deps/npm/node_modules/ajv/lib/compile/util.js +++ /dev/null @@ -1,239 +0,0 @@ -'use strict'; - - -module.exports = { - copy: copy, - checkDataType: checkDataType, - checkDataTypes: checkDataTypes, - coerceToTypes: coerceToTypes, - toHash: toHash, - getProperty: getProperty, - escapeQuotes: escapeQuotes, - equal: require('fast-deep-equal'), - ucs2length: require('./ucs2length'), - varOccurences: varOccurences, - varReplace: varReplace, - schemaHasRules: schemaHasRules, - schemaHasRulesExcept: schemaHasRulesExcept, - schemaUnknownRules: schemaUnknownRules, - toQuotedString: toQuotedString, - getPathExpr: getPathExpr, - getPath: getPath, - getData: getData, - unescapeFragment: unescapeFragment, - unescapeJsonPointer: unescapeJsonPointer, - escapeFragment: escapeFragment, - escapeJsonPointer: escapeJsonPointer -}; - - -function copy(o, to) { - to = to || {}; - for (var key in o) to[key] = o[key]; - return to; -} - - -function checkDataType(dataType, data, strictNumbers, negate) { - var EQUAL = negate ? ' !== ' : ' === ' - , AND = negate ? ' || ' : ' && ' - , OK = negate ? '!' : '' - , NOT = negate ? '' : '!'; - switch (dataType) { - case 'null': return data + EQUAL + 'null'; - case 'array': return OK + 'Array.isArray(' + data + ')'; - case 'object': return '(' + OK + data + AND + - 'typeof ' + data + EQUAL + '"object"' + AND + - NOT + 'Array.isArray(' + data + '))'; - case 'integer': return '(typeof ' + data + EQUAL + '"number"' + AND + - NOT + '(' + data + ' % 1)' + - AND + data + EQUAL + data + - (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')'; - case 'number': return '(typeof ' + data + EQUAL + '"' + dataType + '"' + - (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')'; - default: return 'typeof ' + data + EQUAL + '"' + dataType + '"'; - } -} - - -function checkDataTypes(dataTypes, data, strictNumbers) { - switch (dataTypes.length) { - case 1: return checkDataType(dataTypes[0], data, strictNumbers, true); - default: - var code = ''; - var types = toHash(dataTypes); - if (types.array && types.object) { - code = types.null ? '(': '(!' + data + ' || '; - code += 'typeof ' + data + ' !== "object")'; - delete types.null; - delete types.array; - delete types.object; - } - if (types.number) delete types.integer; - for (var t in types) - code += (code ? ' && ' : '' ) + checkDataType(t, data, strictNumbers, true); - - return code; - } -} - - -var COERCE_TO_TYPES = toHash([ 'string', 'number', 'integer', 'boolean', 'null' ]); -function coerceToTypes(optionCoerceTypes, dataTypes) { - if (Array.isArray(dataTypes)) { - var types = []; - for (var i=0; i= lvl) throw new Error('Cannot access property/index ' + up + ' levels up, current level is ' + lvl); - return paths[lvl - up]; - } - - if (up > lvl) throw new Error('Cannot access data ' + up + ' levels up, current level is ' + lvl); - data = 'data' + ((lvl - up) || ''); - if (!jsonPointer) return data; - } - - var expr = data; - var segments = jsonPointer.split('/'); - for (var i=0; i' - , $notOp = $isMax ? '>' : '<' - , $errorKeyword = undefined; - - if (!($isData || typeof $schema == 'number' || $schema === undefined)) { - throw new Error($keyword + ' must be number'); - } - if (!($isDataExcl || $schemaExcl === undefined - || typeof $schemaExcl == 'number' - || typeof $schemaExcl == 'boolean')) { - throw new Error($exclusiveKeyword + ' must be number or boolean'); - } -}} - -{{? $isDataExcl }} - {{ - var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr) - , $exclusive = 'exclusive' + $lvl - , $exclType = 'exclType' + $lvl - , $exclIsNumber = 'exclIsNumber' + $lvl - , $opExpr = 'op' + $lvl - , $opStr = '\' + ' + $opExpr + ' + \''; - }} - var schemaExcl{{=$lvl}} = {{=$schemaValueExcl}}; - {{ $schemaValueExcl = 'schemaExcl' + $lvl; }} - - var {{=$exclusive}}; - var {{=$exclType}} = typeof {{=$schemaValueExcl}}; - if ({{=$exclType}} != 'boolean' && {{=$exclType}} != 'undefined' && {{=$exclType}} != 'number') { - {{ var $errorKeyword = $exclusiveKeyword; }} - {{# def.error:'_exclusiveLimit' }} - } else if ({{# def.$dataNotType:'number' }} - {{=$exclType}} == 'number' - ? ( - ({{=$exclusive}} = {{=$schemaValue}} === undefined || {{=$schemaValueExcl}} {{=$op}}= {{=$schemaValue}}) - ? {{=$data}} {{=$notOp}}= {{=$schemaValueExcl}} - : {{=$data}} {{=$notOp}} {{=$schemaValue}} - ) - : ( - ({{=$exclusive}} = {{=$schemaValueExcl}} === true) - ? {{=$data}} {{=$notOp}}= {{=$schemaValue}} - : {{=$data}} {{=$notOp}} {{=$schemaValue}} - ) - || {{=$data}} !== {{=$data}}) { - var op{{=$lvl}} = {{=$exclusive}} ? '{{=$op}}' : '{{=$op}}='; - {{ - if ($schema === undefined) { - $errorKeyword = $exclusiveKeyword; - $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword; - $schemaValue = $schemaValueExcl; - $isData = $isDataExcl; - } - }} -{{??}} - {{ - var $exclIsNumber = typeof $schemaExcl == 'number' - , $opStr = $op; /*used in error*/ - }} - - {{? $exclIsNumber && $isData }} - {{ var $opExpr = '\'' + $opStr + '\''; /*used in error*/ }} - if ({{# def.$dataNotType:'number' }} - ( {{=$schemaValue}} === undefined - || {{=$schemaExcl}} {{=$op}}= {{=$schemaValue}} - ? {{=$data}} {{=$notOp}}= {{=$schemaExcl}} - : {{=$data}} {{=$notOp}} {{=$schemaValue}} ) - || {{=$data}} !== {{=$data}}) { - {{??}} - {{ - if ($exclIsNumber && $schema === undefined) { - {{# def.setExclusiveLimit }} - $schemaValue = $schemaExcl; - $notOp += '='; - } else { - if ($exclIsNumber) - $schemaValue = Math[$isMax ? 'min' : 'max']($schemaExcl, $schema); - - if ($schemaExcl === ($exclIsNumber ? $schemaValue : true)) { - {{# def.setExclusiveLimit }} - $notOp += '='; - } else { - $exclusive = false; - $opStr += '='; - } - } - - var $opExpr = '\'' + $opStr + '\''; /*used in error*/ - }} - - if ({{# def.$dataNotType:'number' }} - {{=$data}} {{=$notOp}} {{=$schemaValue}} - || {{=$data}} !== {{=$data}}) { - {{?}} -{{?}} - {{ $errorKeyword = $errorKeyword || $keyword; }} - {{# def.error:'_limit' }} - } {{? $breakOnError }} else { {{?}} diff --git a/deps/npm/node_modules/ajv/lib/dot/_limitItems.jst b/deps/npm/node_modules/ajv/lib/dot/_limitItems.jst deleted file mode 100644 index 741329e7769ffc..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dot/_limitItems.jst +++ /dev/null @@ -1,12 +0,0 @@ -{{# def.definitions }} -{{# def.errors }} -{{# def.setupKeyword }} -{{# def.$data }} - -{{# def.numberKeyword }} - -{{ var $op = $keyword == 'maxItems' ? '>' : '<'; }} -if ({{# def.$dataNotType:'number' }} {{=$data}}.length {{=$op}} {{=$schemaValue}}) { - {{ var $errorKeyword = $keyword; }} - {{# def.error:'_limitItems' }} -} {{? $breakOnError }} else { {{?}} diff --git a/deps/npm/node_modules/ajv/lib/dot/_limitLength.jst b/deps/npm/node_modules/ajv/lib/dot/_limitLength.jst deleted file mode 100644 index 285c66bd2eed2d..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dot/_limitLength.jst +++ /dev/null @@ -1,12 +0,0 @@ -{{# def.definitions }} -{{# def.errors }} -{{# def.setupKeyword }} -{{# def.$data }} - -{{# def.numberKeyword }} - -{{ var $op = $keyword == 'maxLength' ? '>' : '<'; }} -if ({{# def.$dataNotType:'number' }} {{# def.strLength }} {{=$op}} {{=$schemaValue}}) { - {{ var $errorKeyword = $keyword; }} - {{# def.error:'_limitLength' }} -} {{? $breakOnError }} else { {{?}} diff --git a/deps/npm/node_modules/ajv/lib/dot/_limitProperties.jst b/deps/npm/node_modules/ajv/lib/dot/_limitProperties.jst deleted file mode 100644 index c4c21551abc3db..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dot/_limitProperties.jst +++ /dev/null @@ -1,12 +0,0 @@ -{{# def.definitions }} -{{# def.errors }} -{{# def.setupKeyword }} -{{# def.$data }} - -{{# def.numberKeyword }} - -{{ var $op = $keyword == 'maxProperties' ? '>' : '<'; }} -if ({{# def.$dataNotType:'number' }} Object.keys({{=$data}}).length {{=$op}} {{=$schemaValue}}) { - {{ var $errorKeyword = $keyword; }} - {{# def.error:'_limitProperties' }} -} {{? $breakOnError }} else { {{?}} diff --git a/deps/npm/node_modules/ajv/lib/dot/allOf.jst b/deps/npm/node_modules/ajv/lib/dot/allOf.jst deleted file mode 100644 index 0e782fe98e2da1..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dot/allOf.jst +++ /dev/null @@ -1,32 +0,0 @@ -{{# def.definitions }} -{{# def.errors }} -{{# def.setupKeyword }} -{{# def.setupNextLevel }} - -{{ - var $currentBaseId = $it.baseId - , $allSchemasEmpty = true; -}} - -{{~ $schema:$sch:$i }} - {{? {{# def.nonEmptySchema:$sch }} }} - {{ - $allSchemasEmpty = false; - $it.schema = $sch; - $it.schemaPath = $schemaPath + '[' + $i + ']'; - $it.errSchemaPath = $errSchemaPath + '/' + $i; - }} - - {{# def.insertSubschemaCode }} - - {{# def.ifResultValid }} - {{?}} -{{~}} - -{{? $breakOnError }} - {{? $allSchemasEmpty }} - if (true) { - {{??}} - {{= $closingBraces.slice(0,-1) }} - {{?}} -{{?}} diff --git a/deps/npm/node_modules/ajv/lib/dot/anyOf.jst b/deps/npm/node_modules/ajv/lib/dot/anyOf.jst deleted file mode 100644 index ea909ee628e6b3..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dot/anyOf.jst +++ /dev/null @@ -1,46 +0,0 @@ -{{# def.definitions }} -{{# def.errors }} -{{# def.setupKeyword }} -{{# def.setupNextLevel }} - -{{ - var $noEmptySchema = $schema.every(function($sch) { - return {{# def.nonEmptySchema:$sch }}; - }); -}} -{{? $noEmptySchema }} - {{ var $currentBaseId = $it.baseId; }} - var {{=$errs}} = errors; - var {{=$valid}} = false; - - {{# def.setCompositeRule }} - - {{~ $schema:$sch:$i }} - {{ - $it.schema = $sch; - $it.schemaPath = $schemaPath + '[' + $i + ']'; - $it.errSchemaPath = $errSchemaPath + '/' + $i; - }} - - {{# def.insertSubschemaCode }} - - {{=$valid}} = {{=$valid}} || {{=$nextValid}}; - - if (!{{=$valid}}) { - {{ $closingBraces += '}'; }} - {{~}} - - {{# def.resetCompositeRule }} - - {{= $closingBraces }} - - if (!{{=$valid}}) { - {{# def.extraError:'anyOf' }} - } else { - {{# def.resetErrors }} - {{? it.opts.allErrors }} } {{?}} -{{??}} - {{? $breakOnError }} - if (true) { - {{?}} -{{?}} diff --git a/deps/npm/node_modules/ajv/lib/dot/coerce.def b/deps/npm/node_modules/ajv/lib/dot/coerce.def deleted file mode 100644 index c947ed6af81d25..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dot/coerce.def +++ /dev/null @@ -1,51 +0,0 @@ -{{## def.coerceType: - {{ - var $dataType = 'dataType' + $lvl - , $coerced = 'coerced' + $lvl; - }} - var {{=$dataType}} = typeof {{=$data}}; - var {{=$coerced}} = undefined; - - {{? it.opts.coerceTypes == 'array' }} - if ({{=$dataType}} == 'object' && Array.isArray({{=$data}}) && {{=$data}}.length == 1) { - {{=$data}} = {{=$data}}[0]; - {{=$dataType}} = typeof {{=$data}}; - if ({{=it.util.checkDataType(it.schema.type, $data, it.opts.strictNumbers)}}) {{=$coerced}} = {{=$data}}; - } - {{?}} - - if ({{=$coerced}} !== undefined) ; - {{~ $coerceToTypes:$type:$i }} - {{? $type == 'string' }} - else if ({{=$dataType}} == 'number' || {{=$dataType}} == 'boolean') - {{=$coerced}} = '' + {{=$data}}; - else if ({{=$data}} === null) {{=$coerced}} = ''; - {{?? $type == 'number' || $type == 'integer' }} - else if ({{=$dataType}} == 'boolean' || {{=$data}} === null - || ({{=$dataType}} == 'string' && {{=$data}} && {{=$data}} == +{{=$data}} - {{? $type == 'integer' }} && !({{=$data}} % 1){{?}})) - {{=$coerced}} = +{{=$data}}; - {{?? $type == 'boolean' }} - else if ({{=$data}} === 'false' || {{=$data}} === 0 || {{=$data}} === null) - {{=$coerced}} = false; - else if ({{=$data}} === 'true' || {{=$data}} === 1) - {{=$coerced}} = true; - {{?? $type == 'null' }} - else if ({{=$data}} === '' || {{=$data}} === 0 || {{=$data}} === false) - {{=$coerced}} = null; - {{?? it.opts.coerceTypes == 'array' && $type == 'array' }} - else if ({{=$dataType}} == 'string' || {{=$dataType}} == 'number' || {{=$dataType}} == 'boolean' || {{=$data}} == null) - {{=$coerced}} = [{{=$data}}]; - {{?}} - {{~}} - else { - {{# def.error:'type' }} - } - - if ({{=$coerced}} !== undefined) { - {{# def.setParentData }} - {{=$data}} = {{=$coerced}}; - {{? !$dataLvl }}if ({{=$parentData}} !== undefined){{?}} - {{=$parentData}}[{{=$parentDataProperty}}] = {{=$coerced}}; - } -#}} diff --git a/deps/npm/node_modules/ajv/lib/dot/comment.jst b/deps/npm/node_modules/ajv/lib/dot/comment.jst deleted file mode 100644 index f95915035c6b5b..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dot/comment.jst +++ /dev/null @@ -1,9 +0,0 @@ -{{# def.definitions }} -{{# def.setupKeyword }} - -{{ var $comment = it.util.toQuotedString($schema); }} -{{? it.opts.$comment === true }} - console.log({{=$comment}}); -{{?? typeof it.opts.$comment == 'function' }} - self._opts.$comment({{=$comment}}, {{=it.util.toQuotedString($errSchemaPath)}}, validate.root.schema); -{{?}} diff --git a/deps/npm/node_modules/ajv/lib/dot/const.jst b/deps/npm/node_modules/ajv/lib/dot/const.jst deleted file mode 100644 index 2aa22980d7fc6d..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dot/const.jst +++ /dev/null @@ -1,11 +0,0 @@ -{{# def.definitions }} -{{# def.errors }} -{{# def.setupKeyword }} -{{# def.$data }} - -{{? !$isData }} - var schema{{=$lvl}} = validate.schema{{=$schemaPath}}; -{{?}} -var {{=$valid}} = equal({{=$data}}, schema{{=$lvl}}); -{{# def.checkError:'const' }} -{{? $breakOnError }} else { {{?}} diff --git a/deps/npm/node_modules/ajv/lib/dot/contains.jst b/deps/npm/node_modules/ajv/lib/dot/contains.jst deleted file mode 100644 index 4dc9967418dece..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dot/contains.jst +++ /dev/null @@ -1,55 +0,0 @@ -{{# def.definitions }} -{{# def.errors }} -{{# def.setupKeyword }} -{{# def.setupNextLevel }} - - -{{ - var $idx = 'i' + $lvl - , $dataNxt = $it.dataLevel = it.dataLevel + 1 - , $nextData = 'data' + $dataNxt - , $currentBaseId = it.baseId - , $nonEmptySchema = {{# def.nonEmptySchema:$schema }}; -}} - -var {{=$errs}} = errors; -var {{=$valid}}; - -{{? $nonEmptySchema }} - {{# def.setCompositeRule }} - - {{ - $it.schema = $schema; - $it.schemaPath = $schemaPath; - $it.errSchemaPath = $errSchemaPath; - }} - - var {{=$nextValid}} = false; - - for (var {{=$idx}} = 0; {{=$idx}} < {{=$data}}.length; {{=$idx}}++) { - {{ - $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true); - var $passData = $data + '[' + $idx + ']'; - $it.dataPathArr[$dataNxt] = $idx; - }} - - {{# def.generateSubschemaCode }} - {{# def.optimizeValidate }} - - if ({{=$nextValid}}) break; - } - - {{# def.resetCompositeRule }} - {{= $closingBraces }} - - if (!{{=$nextValid}}) { -{{??}} - if ({{=$data}}.length == 0) { -{{?}} - - {{# def.error:'contains' }} - } else { - {{? $nonEmptySchema }} - {{# def.resetErrors }} - {{?}} - {{? it.opts.allErrors }} } {{?}} diff --git a/deps/npm/node_modules/ajv/lib/dot/custom.jst b/deps/npm/node_modules/ajv/lib/dot/custom.jst deleted file mode 100644 index d30588fb0b4b5f..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dot/custom.jst +++ /dev/null @@ -1,191 +0,0 @@ -{{# def.definitions }} -{{# def.errors }} -{{# def.setupKeyword }} -{{# def.$data }} - -{{ - var $rule = this - , $definition = 'definition' + $lvl - , $rDef = $rule.definition - , $closingBraces = ''; - var $validate = $rDef.validate; - var $compile, $inline, $macro, $ruleValidate, $validateCode; -}} - -{{? $isData && $rDef.$data }} - {{ - $validateCode = 'keywordValidate' + $lvl; - var $validateSchema = $rDef.validateSchema; - }} - var {{=$definition}} = RULES.custom['{{=$keyword}}'].definition; - var {{=$validateCode}} = {{=$definition}}.validate; -{{??}} - {{ - $ruleValidate = it.useCustomRule($rule, $schema, it.schema, it); - if (!$ruleValidate) return; - $schemaValue = 'validate.schema' + $schemaPath; - $validateCode = $ruleValidate.code; - $compile = $rDef.compile; - $inline = $rDef.inline; - $macro = $rDef.macro; - }} -{{?}} - -{{ - var $ruleErrs = $validateCode + '.errors' - , $i = 'i' + $lvl - , $ruleErr = 'ruleErr' + $lvl - , $asyncKeyword = $rDef.async; - - if ($asyncKeyword && !it.async) - throw new Error('async keyword in sync schema'); -}} - - -{{? !($inline || $macro) }}{{=$ruleErrs}} = null;{{?}} -var {{=$errs}} = errors; -var {{=$valid}}; - -{{## def.callRuleValidate: - {{=$validateCode}}.call( - {{? it.opts.passContext }}this{{??}}self{{?}} - {{? $compile || $rDef.schema === false }} - , {{=$data}} - {{??}} - , {{=$schemaValue}} - , {{=$data}} - , validate.schema{{=it.schemaPath}} - {{?}} - , {{# def.dataPath }} - {{# def.passParentData }} - , rootData - ) -#}} - -{{## def.extendErrors:_inline: - for (var {{=$i}}={{=$errs}}; {{=$i}} 0) - || _schema === false - : it.util.schemaHasRules(_schema, it.RULES.all)) -#}} - - -{{## def.strLength: - {{? it.opts.unicode === false }} - {{=$data}}.length - {{??}} - ucs2length({{=$data}}) - {{?}} -#}} - - -{{## def.willOptimize: - it.util.varOccurences($code, $nextData) < 2 -#}} - - -{{## def.generateSubschemaCode: - {{ - var $code = it.validate($it); - $it.baseId = $currentBaseId; - }} -#}} - - -{{## def.insertSubschemaCode: - {{= it.validate($it) }} - {{ $it.baseId = $currentBaseId; }} -#}} - - -{{## def._optimizeValidate: - it.util.varReplace($code, $nextData, $passData) -#}} - - -{{## def.optimizeValidate: - {{? {{# def.willOptimize}} }} - {{= {{# def._optimizeValidate }} }} - {{??}} - var {{=$nextData}} = {{=$passData}}; - {{= $code }} - {{?}} -#}} - - -{{## def.$data: - {{ - var $isData = it.opts.$data && $schema && $schema.$data - , $schemaValue; - }} - {{? $isData }} - var schema{{=$lvl}} = {{= it.util.getData($schema.$data, $dataLvl, it.dataPathArr) }}; - {{ $schemaValue = 'schema' + $lvl; }} - {{??}} - {{ $schemaValue = $schema; }} - {{?}} -#}} - - -{{## def.$dataNotType:_type: - {{?$isData}} ({{=$schemaValue}} !== undefined && typeof {{=$schemaValue}} != _type) || {{?}} -#}} - - -{{## def.check$dataIsArray: - if (schema{{=$lvl}} === undefined) {{=$valid}} = true; - else if (!Array.isArray(schema{{=$lvl}})) {{=$valid}} = false; - else { -#}} - - -{{## def.numberKeyword: - {{? !($isData || typeof $schema == 'number') }} - {{ throw new Error($keyword + ' must be number'); }} - {{?}} -#}} - - -{{## def.beginDefOut: - {{ - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; - }} -#}} - - -{{## def.storeDefOut:_variable: - {{ - var _variable = out; - out = $$outStack.pop(); - }} -#}} - - -{{## def.dataPath:(dataPath || ''){{? it.errorPath != '""'}} + {{= it.errorPath }}{{?}}#}} - -{{## def.setParentData: - {{ - var $parentData = $dataLvl ? 'data' + (($dataLvl-1)||'') : 'parentData' - , $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty'; - }} -#}} - -{{## def.passParentData: - {{# def.setParentData }} - , {{= $parentData }} - , {{= $parentDataProperty }} -#}} - - -{{## def.iterateProperties: - {{? $ownProperties }} - {{=$dataProperties}} = {{=$dataProperties}} || Object.keys({{=$data}}); - for (var {{=$idx}}=0; {{=$idx}}<{{=$dataProperties}}.length; {{=$idx}}++) { - var {{=$key}} = {{=$dataProperties}}[{{=$idx}}]; - {{??}} - for (var {{=$key}} in {{=$data}}) { - {{?}} -#}} - - -{{## def.noPropertyInData: - {{=$useData}} === undefined - {{? $ownProperties }} - || !{{# def.isOwnProperty }} - {{?}} -#}} - - -{{## def.isOwnProperty: - Object.prototype.hasOwnProperty.call({{=$data}}, '{{=it.util.escapeQuotes($propertyKey)}}') -#}} diff --git a/deps/npm/node_modules/ajv/lib/dot/dependencies.jst b/deps/npm/node_modules/ajv/lib/dot/dependencies.jst deleted file mode 100644 index e4bdddec8eb953..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dot/dependencies.jst +++ /dev/null @@ -1,79 +0,0 @@ -{{# def.definitions }} -{{# def.errors }} -{{# def.missing }} -{{# def.setupKeyword }} -{{# def.setupNextLevel }} - - -{{## def.propertyInData: - {{=$data}}{{= it.util.getProperty($property) }} !== undefined - {{? $ownProperties }} - && Object.prototype.hasOwnProperty.call({{=$data}}, '{{=it.util.escapeQuotes($property)}}') - {{?}} -#}} - - -{{ - var $schemaDeps = {} - , $propertyDeps = {} - , $ownProperties = it.opts.ownProperties; - - for ($property in $schema) { - if ($property == '__proto__') continue; - var $sch = $schema[$property]; - var $deps = Array.isArray($sch) ? $propertyDeps : $schemaDeps; - $deps[$property] = $sch; - } -}} - -var {{=$errs}} = errors; - -{{ var $currentErrorPath = it.errorPath; }} - -var missing{{=$lvl}}; -{{ for (var $property in $propertyDeps) { }} - {{ $deps = $propertyDeps[$property]; }} - {{? $deps.length }} - if ({{# def.propertyInData }} - {{? $breakOnError }} - && ({{# def.checkMissingProperty:$deps }})) { - {{# def.errorMissingProperty:'dependencies' }} - {{??}} - ) { - {{~ $deps:$propertyKey }} - {{# def.allErrorsMissingProperty:'dependencies' }} - {{~}} - {{?}} - } {{# def.elseIfValid }} - {{?}} -{{ } }} - -{{ - it.errorPath = $currentErrorPath; - var $currentBaseId = $it.baseId; -}} - - -{{ for (var $property in $schemaDeps) { }} - {{ var $sch = $schemaDeps[$property]; }} - {{? {{# def.nonEmptySchema:$sch }} }} - {{=$nextValid}} = true; - - if ({{# def.propertyInData }}) { - {{ - $it.schema = $sch; - $it.schemaPath = $schemaPath + it.util.getProperty($property); - $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($property); - }} - - {{# def.insertSubschemaCode }} - } - - {{# def.ifResultValid }} - {{?}} -{{ } }} - -{{? $breakOnError }} - {{= $closingBraces }} - if ({{=$errs}} == errors) { -{{?}} diff --git a/deps/npm/node_modules/ajv/lib/dot/enum.jst b/deps/npm/node_modules/ajv/lib/dot/enum.jst deleted file mode 100644 index 357c2e8c081d12..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dot/enum.jst +++ /dev/null @@ -1,30 +0,0 @@ -{{# def.definitions }} -{{# def.errors }} -{{# def.setupKeyword }} -{{# def.$data }} - -{{ - var $i = 'i' + $lvl - , $vSchema = 'schema' + $lvl; -}} - -{{? !$isData }} - var {{=$vSchema}} = validate.schema{{=$schemaPath}}; -{{?}} -var {{=$valid}}; - -{{?$isData}}{{# def.check$dataIsArray }}{{?}} - -{{=$valid}} = false; - -for (var {{=$i}}=0; {{=$i}}<{{=$vSchema}}.length; {{=$i}}++) - if (equal({{=$data}}, {{=$vSchema}}[{{=$i}}])) { - {{=$valid}} = true; - break; - } - -{{? $isData }} } {{?}} - -{{# def.checkError:'enum' }} - -{{? $breakOnError }} else { {{?}} diff --git a/deps/npm/node_modules/ajv/lib/dot/errors.def b/deps/npm/node_modules/ajv/lib/dot/errors.def deleted file mode 100644 index 5c5752cb04db90..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dot/errors.def +++ /dev/null @@ -1,194 +0,0 @@ -{{# def.definitions }} - -{{## def._error:_rule: - {{ 'istanbul ignore else'; }} - {{? it.createErrors !== false }} - { - keyword: '{{= $errorKeyword || _rule }}' - , dataPath: (dataPath || '') + {{= it.errorPath }} - , schemaPath: {{=it.util.toQuotedString($errSchemaPath)}} - , params: {{# def._errorParams[_rule] }} - {{? it.opts.messages !== false }} - , message: {{# def._errorMessages[_rule] }} - {{?}} - {{? it.opts.verbose }} - , schema: {{# def._errorSchemas[_rule] }} - , parentSchema: validate.schema{{=it.schemaPath}} - , data: {{=$data}} - {{?}} - } - {{??}} - {} - {{?}} -#}} - - -{{## def._addError:_rule: - if (vErrors === null) vErrors = [err]; - else vErrors.push(err); - errors++; -#}} - - -{{## def.addError:_rule: - var err = {{# def._error:_rule }}; - {{# def._addError:_rule }} -#}} - - -{{## def.error:_rule: - {{# def.beginDefOut}} - {{# def._error:_rule }} - {{# def.storeDefOut:__err }} - - {{? !it.compositeRule && $breakOnError }} - {{ 'istanbul ignore if'; }} - {{? it.async }} - throw new ValidationError([{{=__err}}]); - {{??}} - validate.errors = [{{=__err}}]; - return false; - {{?}} - {{??}} - var err = {{=__err}}; - {{# def._addError:_rule }} - {{?}} -#}} - - -{{## def.extraError:_rule: - {{# def.addError:_rule}} - {{? !it.compositeRule && $breakOnError }} - {{ 'istanbul ignore if'; }} - {{? it.async }} - throw new ValidationError(vErrors); - {{??}} - validate.errors = vErrors; - return false; - {{?}} - {{?}} -#}} - - -{{## def.checkError:_rule: - if (!{{=$valid}}) { - {{# def.error:_rule }} - } -#}} - - -{{## def.resetErrors: - errors = {{=$errs}}; - if (vErrors !== null) { - if ({{=$errs}}) vErrors.length = {{=$errs}}; - else vErrors = null; - } -#}} - - -{{## def.concatSchema:{{?$isData}}' + {{=$schemaValue}} + '{{??}}{{=$schema}}{{?}}#}} -{{## def.appendSchema:{{?$isData}}' + {{=$schemaValue}}{{??}}{{=$schemaValue}}'{{?}}#}} -{{## def.concatSchemaEQ:{{?$isData}}' + {{=$schemaValue}} + '{{??}}{{=it.util.escapeQuotes($schema)}}{{?}}#}} - -{{## def._errorMessages = { - 'false schema': "'boolean schema is false'", - $ref: "'can\\\'t resolve reference {{=it.util.escapeQuotes($schema)}}'", - additionalItems: "'should NOT have more than {{=$schema.length}} items'", - additionalProperties: "'{{? it.opts._errorDataPathProperty }}is an invalid additional property{{??}}should NOT have additional properties{{?}}'", - anyOf: "'should match some schema in anyOf'", - const: "'should be equal to constant'", - contains: "'should contain a valid item'", - dependencies: "'should have {{? $deps.length == 1 }}property {{= it.util.escapeQuotes($deps[0]) }}{{??}}properties {{= it.util.escapeQuotes($deps.join(\", \")) }}{{?}} when property {{= it.util.escapeQuotes($property) }} is present'", - 'enum': "'should be equal to one of the allowed values'", - format: "'should match format \"{{#def.concatSchemaEQ}}\"'", - 'if': "'should match \"' + {{=$ifClause}} + '\" schema'", - _limit: "'should be {{=$opStr}} {{#def.appendSchema}}", - _exclusiveLimit: "'{{=$exclusiveKeyword}} should be boolean'", - _limitItems: "'should NOT have {{?$keyword=='maxItems'}}more{{??}}fewer{{?}} than {{#def.concatSchema}} items'", - _limitLength: "'should NOT be {{?$keyword=='maxLength'}}longer{{??}}shorter{{?}} than {{#def.concatSchema}} characters'", - _limitProperties:"'should NOT have {{?$keyword=='maxProperties'}}more{{??}}fewer{{?}} than {{#def.concatSchema}} properties'", - multipleOf: "'should be multiple of {{#def.appendSchema}}", - not: "'should NOT be valid'", - oneOf: "'should match exactly one schema in oneOf'", - pattern: "'should match pattern \"{{#def.concatSchemaEQ}}\"'", - propertyNames: "'property name \\'{{=$invalidName}}\\' is invalid'", - required: "'{{? it.opts._errorDataPathProperty }}is a required property{{??}}should have required property \\'{{=$missingProperty}}\\'{{?}}'", - type: "'should be {{? $typeIsArray }}{{= $typeSchema.join(\",\") }}{{??}}{{=$typeSchema}}{{?}}'", - uniqueItems: "'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)'", - custom: "'should pass \"{{=$rule.keyword}}\" keyword validation'", - patternRequired: "'should have property matching pattern \\'{{=$missingPattern}}\\''", - switch: "'should pass \"switch\" keyword validation'", - _formatLimit: "'should be {{=$opStr}} \"{{#def.concatSchemaEQ}}\"'", - _formatExclusiveLimit: "'{{=$exclusiveKeyword}} should be boolean'" -} #}} - - -{{## def.schemaRefOrVal: {{?$isData}}validate.schema{{=$schemaPath}}{{??}}{{=$schema}}{{?}} #}} -{{## def.schemaRefOrQS: {{?$isData}}validate.schema{{=$schemaPath}}{{??}}{{=it.util.toQuotedString($schema)}}{{?}} #}} - -{{## def._errorSchemas = { - 'false schema': "false", - $ref: "{{=it.util.toQuotedString($schema)}}", - additionalItems: "false", - additionalProperties: "false", - anyOf: "validate.schema{{=$schemaPath}}", - const: "validate.schema{{=$schemaPath}}", - contains: "validate.schema{{=$schemaPath}}", - dependencies: "validate.schema{{=$schemaPath}}", - 'enum': "validate.schema{{=$schemaPath}}", - format: "{{#def.schemaRefOrQS}}", - 'if': "validate.schema{{=$schemaPath}}", - _limit: "{{#def.schemaRefOrVal}}", - _exclusiveLimit: "validate.schema{{=$schemaPath}}", - _limitItems: "{{#def.schemaRefOrVal}}", - _limitLength: "{{#def.schemaRefOrVal}}", - _limitProperties:"{{#def.schemaRefOrVal}}", - multipleOf: "{{#def.schemaRefOrVal}}", - not: "validate.schema{{=$schemaPath}}", - oneOf: "validate.schema{{=$schemaPath}}", - pattern: "{{#def.schemaRefOrQS}}", - propertyNames: "validate.schema{{=$schemaPath}}", - required: "validate.schema{{=$schemaPath}}", - type: "validate.schema{{=$schemaPath}}", - uniqueItems: "{{#def.schemaRefOrVal}}", - custom: "validate.schema{{=$schemaPath}}", - patternRequired: "validate.schema{{=$schemaPath}}", - switch: "validate.schema{{=$schemaPath}}", - _formatLimit: "{{#def.schemaRefOrQS}}", - _formatExclusiveLimit: "validate.schema{{=$schemaPath}}" -} #}} - - -{{## def.schemaValueQS: {{?$isData}}{{=$schemaValue}}{{??}}{{=it.util.toQuotedString($schema)}}{{?}} #}} - -{{## def._errorParams = { - 'false schema': "{}", - $ref: "{ ref: '{{=it.util.escapeQuotes($schema)}}' }", - additionalItems: "{ limit: {{=$schema.length}} }", - additionalProperties: "{ additionalProperty: '{{=$additionalProperty}}' }", - anyOf: "{}", - const: "{ allowedValue: schema{{=$lvl}} }", - contains: "{}", - dependencies: "{ property: '{{= it.util.escapeQuotes($property) }}', missingProperty: '{{=$missingProperty}}', depsCount: {{=$deps.length}}, deps: '{{= it.util.escapeQuotes($deps.length==1 ? $deps[0] : $deps.join(\", \")) }}' }", - 'enum': "{ allowedValues: schema{{=$lvl}} }", - format: "{ format: {{#def.schemaValueQS}} }", - 'if': "{ failingKeyword: {{=$ifClause}} }", - _limit: "{ comparison: {{=$opExpr}}, limit: {{=$schemaValue}}, exclusive: {{=$exclusive}} }", - _exclusiveLimit: "{}", - _limitItems: "{ limit: {{=$schemaValue}} }", - _limitLength: "{ limit: {{=$schemaValue}} }", - _limitProperties:"{ limit: {{=$schemaValue}} }", - multipleOf: "{ multipleOf: {{=$schemaValue}} }", - not: "{}", - oneOf: "{ passingSchemas: {{=$passingSchemas}} }", - pattern: "{ pattern: {{#def.schemaValueQS}} }", - propertyNames: "{ propertyName: '{{=$invalidName}}' }", - required: "{ missingProperty: '{{=$missingProperty}}' }", - type: "{ type: '{{? $typeIsArray }}{{= $typeSchema.join(\",\") }}{{??}}{{=$typeSchema}}{{?}}' }", - uniqueItems: "{ i: i, j: j }", - custom: "{ keyword: '{{=$rule.keyword}}' }", - patternRequired: "{ missingPattern: '{{=$missingPattern}}' }", - switch: "{ caseIndex: {{=$caseIndex}} }", - _formatLimit: "{ comparison: {{=$opExpr}}, limit: {{#def.schemaValueQS}}, exclusive: {{=$exclusive}} }", - _formatExclusiveLimit: "{}" -} #}} diff --git a/deps/npm/node_modules/ajv/lib/dot/format.jst b/deps/npm/node_modules/ajv/lib/dot/format.jst deleted file mode 100644 index 37f14da80ef8f0..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dot/format.jst +++ /dev/null @@ -1,106 +0,0 @@ -{{# def.definitions }} -{{# def.errors }} -{{# def.setupKeyword }} - -{{## def.skipFormat: - {{? $breakOnError }} if (true) { {{?}} - {{ return out; }} -#}} - -{{? it.opts.format === false }}{{# def.skipFormat }}{{?}} - - -{{# def.$data }} - - -{{## def.$dataCheckFormat: - {{# def.$dataNotType:'string' }} - ({{? $unknownFormats != 'ignore' }} - ({{=$schemaValue}} && !{{=$format}} - {{? $allowUnknown }} - && self._opts.unknownFormats.indexOf({{=$schemaValue}}) == -1 - {{?}}) || - {{?}} - ({{=$format}} && {{=$formatType}} == '{{=$ruleType}}' - && !(typeof {{=$format}} == 'function' - ? {{? it.async}} - (async{{=$lvl}} ? await {{=$format}}({{=$data}}) : {{=$format}}({{=$data}})) - {{??}} - {{=$format}}({{=$data}}) - {{?}} - : {{=$format}}.test({{=$data}})))) -#}} - -{{## def.checkFormat: - {{ - var $formatRef = 'formats' + it.util.getProperty($schema); - if ($isObject) $formatRef += '.validate'; - }} - {{? typeof $format == 'function' }} - {{=$formatRef}}({{=$data}}) - {{??}} - {{=$formatRef}}.test({{=$data}}) - {{?}} -#}} - - -{{ - var $unknownFormats = it.opts.unknownFormats - , $allowUnknown = Array.isArray($unknownFormats); -}} - -{{? $isData }} - {{ - var $format = 'format' + $lvl - , $isObject = 'isObject' + $lvl - , $formatType = 'formatType' + $lvl; - }} - var {{=$format}} = formats[{{=$schemaValue}}]; - var {{=$isObject}} = typeof {{=$format}} == 'object' - && !({{=$format}} instanceof RegExp) - && {{=$format}}.validate; - var {{=$formatType}} = {{=$isObject}} && {{=$format}}.type || 'string'; - if ({{=$isObject}}) { - {{? it.async}} - var async{{=$lvl}} = {{=$format}}.async; - {{?}} - {{=$format}} = {{=$format}}.validate; - } - if ({{# def.$dataCheckFormat }}) { -{{??}} - {{ var $format = it.formats[$schema]; }} - {{? !$format }} - {{? $unknownFormats == 'ignore' }} - {{ it.logger.warn('unknown format "' + $schema + '" ignored in schema at path "' + it.errSchemaPath + '"'); }} - {{# def.skipFormat }} - {{?? $allowUnknown && $unknownFormats.indexOf($schema) >= 0 }} - {{# def.skipFormat }} - {{??}} - {{ throw new Error('unknown format "' + $schema + '" is used in schema at path "' + it.errSchemaPath + '"'); }} - {{?}} - {{?}} - {{ - var $isObject = typeof $format == 'object' - && !($format instanceof RegExp) - && $format.validate; - var $formatType = $isObject && $format.type || 'string'; - if ($isObject) { - var $async = $format.async === true; - $format = $format.validate; - } - }} - {{? $formatType != $ruleType }} - {{# def.skipFormat }} - {{?}} - {{? $async }} - {{ - if (!it.async) throw new Error('async format in sync schema'); - var $formatRef = 'formats' + it.util.getProperty($schema) + '.validate'; - }} - if (!(await {{=$formatRef}}({{=$data}}))) { - {{??}} - if (!{{# def.checkFormat }}) { - {{?}} -{{?}} - {{# def.error:'format' }} - } {{? $breakOnError }} else { {{?}} diff --git a/deps/npm/node_modules/ajv/lib/dot/if.jst b/deps/npm/node_modules/ajv/lib/dot/if.jst deleted file mode 100644 index adb50361245a1f..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dot/if.jst +++ /dev/null @@ -1,73 +0,0 @@ -{{# def.definitions }} -{{# def.errors }} -{{# def.setupKeyword }} -{{# def.setupNextLevel }} - - -{{## def.validateIfClause:_clause: - {{ - $it.schema = it.schema['_clause']; - $it.schemaPath = it.schemaPath + '._clause'; - $it.errSchemaPath = it.errSchemaPath + '/_clause'; - }} - {{# def.insertSubschemaCode }} - {{=$valid}} = {{=$nextValid}}; - {{? $thenPresent && $elsePresent }} - {{ $ifClause = 'ifClause' + $lvl; }} - var {{=$ifClause}} = '_clause'; - {{??}} - {{ $ifClause = '\'_clause\''; }} - {{?}} -#}} - -{{ - var $thenSch = it.schema['then'] - , $elseSch = it.schema['else'] - , $thenPresent = $thenSch !== undefined && {{# def.nonEmptySchema:$thenSch }} - , $elsePresent = $elseSch !== undefined && {{# def.nonEmptySchema:$elseSch }} - , $currentBaseId = $it.baseId; -}} - -{{? $thenPresent || $elsePresent }} - {{ - var $ifClause; - $it.createErrors = false; - $it.schema = $schema; - $it.schemaPath = $schemaPath; - $it.errSchemaPath = $errSchemaPath; - }} - var {{=$errs}} = errors; - var {{=$valid}} = true; - - {{# def.setCompositeRule }} - {{# def.insertSubschemaCode }} - {{ $it.createErrors = true; }} - {{# def.resetErrors }} - {{# def.resetCompositeRule }} - - {{? $thenPresent }} - if ({{=$nextValid}}) { - {{# def.validateIfClause:then }} - } - {{? $elsePresent }} - else { - {{?}} - {{??}} - if (!{{=$nextValid}}) { - {{?}} - - {{? $elsePresent }} - {{# def.validateIfClause:else }} - } - {{?}} - - if (!{{=$valid}}) { - {{# def.extraError:'if' }} - } - {{? $breakOnError }} else { {{?}} -{{??}} - {{? $breakOnError }} - if (true) { - {{?}} -{{?}} - diff --git a/deps/npm/node_modules/ajv/lib/dot/items.jst b/deps/npm/node_modules/ajv/lib/dot/items.jst deleted file mode 100644 index acc932a26eea8c..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dot/items.jst +++ /dev/null @@ -1,98 +0,0 @@ -{{# def.definitions }} -{{# def.errors }} -{{# def.setupKeyword }} -{{# def.setupNextLevel }} - - -{{## def.validateItems:startFrom: - for (var {{=$idx}} = {{=startFrom}}; {{=$idx}} < {{=$data}}.length; {{=$idx}}++) { - {{ - $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true); - var $passData = $data + '[' + $idx + ']'; - $it.dataPathArr[$dataNxt] = $idx; - }} - - {{# def.generateSubschemaCode }} - {{# def.optimizeValidate }} - - {{? $breakOnError }} - if (!{{=$nextValid}}) break; - {{?}} - } -#}} - -{{ - var $idx = 'i' + $lvl - , $dataNxt = $it.dataLevel = it.dataLevel + 1 - , $nextData = 'data' + $dataNxt - , $currentBaseId = it.baseId; -}} - -var {{=$errs}} = errors; -var {{=$valid}}; - -{{? Array.isArray($schema) }} - {{ /* 'items' is an array of schemas */}} - {{ var $additionalItems = it.schema.additionalItems; }} - {{? $additionalItems === false }} - {{=$valid}} = {{=$data}}.length <= {{= $schema.length }}; - {{ - var $currErrSchemaPath = $errSchemaPath; - $errSchemaPath = it.errSchemaPath + '/additionalItems'; - }} - {{# def.checkError:'additionalItems' }} - {{ $errSchemaPath = $currErrSchemaPath; }} - {{# def.elseIfValid}} - {{?}} - - {{~ $schema:$sch:$i }} - {{? {{# def.nonEmptySchema:$sch }} }} - {{=$nextValid}} = true; - - if ({{=$data}}.length > {{=$i}}) { - {{ - var $passData = $data + '[' + $i + ']'; - $it.schema = $sch; - $it.schemaPath = $schemaPath + '[' + $i + ']'; - $it.errSchemaPath = $errSchemaPath + '/' + $i; - $it.errorPath = it.util.getPathExpr(it.errorPath, $i, it.opts.jsonPointers, true); - $it.dataPathArr[$dataNxt] = $i; - }} - - {{# def.generateSubschemaCode }} - {{# def.optimizeValidate }} - } - - {{# def.ifResultValid }} - {{?}} - {{~}} - - {{? typeof $additionalItems == 'object' && {{# def.nonEmptySchema:$additionalItems }} }} - {{ - $it.schema = $additionalItems; - $it.schemaPath = it.schemaPath + '.additionalItems'; - $it.errSchemaPath = it.errSchemaPath + '/additionalItems'; - }} - {{=$nextValid}} = true; - - if ({{=$data}}.length > {{= $schema.length }}) { - {{# def.validateItems: $schema.length }} - } - - {{# def.ifResultValid }} - {{?}} - -{{?? {{# def.nonEmptySchema:$schema }} }} - {{ /* 'items' is a single schema */}} - {{ - $it.schema = $schema; - $it.schemaPath = $schemaPath; - $it.errSchemaPath = $errSchemaPath; - }} - {{# def.validateItems: 0 }} -{{?}} - -{{? $breakOnError }} - {{= $closingBraces }} - if ({{=$errs}} == errors) { -{{?}} diff --git a/deps/npm/node_modules/ajv/lib/dot/missing.def b/deps/npm/node_modules/ajv/lib/dot/missing.def deleted file mode 100644 index a73b9f966e9e84..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dot/missing.def +++ /dev/null @@ -1,39 +0,0 @@ -{{## def.checkMissingProperty:_properties: - {{~ _properties:$propertyKey:$i }} - {{?$i}} || {{?}} - {{ - var $prop = it.util.getProperty($propertyKey) - , $useData = $data + $prop; - }} - ( ({{# def.noPropertyInData }}) && (missing{{=$lvl}} = {{= it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop) }}) ) - {{~}} -#}} - - -{{## def.errorMissingProperty:_error: - {{ - var $propertyPath = 'missing' + $lvl - , $missingProperty = '\' + ' + $propertyPath + ' + \''; - if (it.opts._errorDataPathProperty) { - it.errorPath = it.opts.jsonPointers - ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) - : $currentErrorPath + ' + ' + $propertyPath; - } - }} - {{# def.error:_error }} -#}} - - -{{## def.allErrorsMissingProperty:_error: - {{ - var $prop = it.util.getProperty($propertyKey) - , $missingProperty = it.util.escapeQuotes($propertyKey) - , $useData = $data + $prop; - if (it.opts._errorDataPathProperty) { - it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers); - } - }} - if ({{# def.noPropertyInData }}) { - {{# def.addError:_error }} - } -#}} diff --git a/deps/npm/node_modules/ajv/lib/dot/multipleOf.jst b/deps/npm/node_modules/ajv/lib/dot/multipleOf.jst deleted file mode 100644 index 6d88a456f3817f..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dot/multipleOf.jst +++ /dev/null @@ -1,22 +0,0 @@ -{{# def.definitions }} -{{# def.errors }} -{{# def.setupKeyword }} -{{# def.$data }} - -{{# def.numberKeyword }} - -var division{{=$lvl}}; -if ({{?$isData}} - {{=$schemaValue}} !== undefined && ( - typeof {{=$schemaValue}} != 'number' || - {{?}} - (division{{=$lvl}} = {{=$data}} / {{=$schemaValue}}, - {{? it.opts.multipleOfPrecision }} - Math.abs(Math.round(division{{=$lvl}}) - division{{=$lvl}}) > 1e-{{=it.opts.multipleOfPrecision}} - {{??}} - division{{=$lvl}} !== parseInt(division{{=$lvl}}) - {{?}} - ) - {{?$isData}} ) {{?}} ) { - {{# def.error:'multipleOf' }} -} {{? $breakOnError }} else { {{?}} diff --git a/deps/npm/node_modules/ajv/lib/dot/not.jst b/deps/npm/node_modules/ajv/lib/dot/not.jst deleted file mode 100644 index e03185ae874052..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dot/not.jst +++ /dev/null @@ -1,43 +0,0 @@ -{{# def.definitions }} -{{# def.errors }} -{{# def.setupKeyword }} -{{# def.setupNextLevel }} - -{{? {{# def.nonEmptySchema:$schema }} }} - {{ - $it.schema = $schema; - $it.schemaPath = $schemaPath; - $it.errSchemaPath = $errSchemaPath; - }} - - var {{=$errs}} = errors; - - {{# def.setCompositeRule }} - - {{ - $it.createErrors = false; - var $allErrorsOption; - if ($it.opts.allErrors) { - $allErrorsOption = $it.opts.allErrors; - $it.opts.allErrors = false; - } - }} - {{= it.validate($it) }} - {{ - $it.createErrors = true; - if ($allErrorsOption) $it.opts.allErrors = $allErrorsOption; - }} - - {{# def.resetCompositeRule }} - - if ({{=$nextValid}}) { - {{# def.error:'not' }} - } else { - {{# def.resetErrors }} - {{? it.opts.allErrors }} } {{?}} -{{??}} - {{# def.addError:'not' }} - {{? $breakOnError}} - if (false) { - {{?}} -{{?}} diff --git a/deps/npm/node_modules/ajv/lib/dot/oneOf.jst b/deps/npm/node_modules/ajv/lib/dot/oneOf.jst deleted file mode 100644 index bcce2c6ed5afe7..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dot/oneOf.jst +++ /dev/null @@ -1,54 +0,0 @@ -{{# def.definitions }} -{{# def.errors }} -{{# def.setupKeyword }} -{{# def.setupNextLevel }} - -{{ - var $currentBaseId = $it.baseId - , $prevValid = 'prevValid' + $lvl - , $passingSchemas = 'passingSchemas' + $lvl; -}} - -var {{=$errs}} = errors - , {{=$prevValid}} = false - , {{=$valid}} = false - , {{=$passingSchemas}} = null; - -{{# def.setCompositeRule }} - -{{~ $schema:$sch:$i }} - {{? {{# def.nonEmptySchema:$sch }} }} - {{ - $it.schema = $sch; - $it.schemaPath = $schemaPath + '[' + $i + ']'; - $it.errSchemaPath = $errSchemaPath + '/' + $i; - }} - - {{# def.insertSubschemaCode }} - {{??}} - var {{=$nextValid}} = true; - {{?}} - - {{? $i }} - if ({{=$nextValid}} && {{=$prevValid}}) { - {{=$valid}} = false; - {{=$passingSchemas}} = [{{=$passingSchemas}}, {{=$i}}]; - } else { - {{ $closingBraces += '}'; }} - {{?}} - - if ({{=$nextValid}}) { - {{=$valid}} = {{=$prevValid}} = true; - {{=$passingSchemas}} = {{=$i}}; - } -{{~}} - -{{# def.resetCompositeRule }} - -{{= $closingBraces }} - -if (!{{=$valid}}) { - {{# def.extraError:'oneOf' }} -} else { - {{# def.resetErrors }} -{{? it.opts.allErrors }} } {{?}} diff --git a/deps/npm/node_modules/ajv/lib/dot/pattern.jst b/deps/npm/node_modules/ajv/lib/dot/pattern.jst deleted file mode 100644 index 3a37ef6cb85602..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dot/pattern.jst +++ /dev/null @@ -1,14 +0,0 @@ -{{# def.definitions }} -{{# def.errors }} -{{# def.setupKeyword }} -{{# def.$data }} - -{{ - var $regexp = $isData - ? '(new RegExp(' + $schemaValue + '))' - : it.usePattern($schema); -}} - -if ({{# def.$dataNotType:'string' }} !{{=$regexp}}.test({{=$data}}) ) { - {{# def.error:'pattern' }} -} {{? $breakOnError }} else { {{?}} diff --git a/deps/npm/node_modules/ajv/lib/dot/properties.jst b/deps/npm/node_modules/ajv/lib/dot/properties.jst deleted file mode 100644 index 5cebb9b12e948e..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dot/properties.jst +++ /dev/null @@ -1,245 +0,0 @@ -{{# def.definitions }} -{{# def.errors }} -{{# def.setupKeyword }} -{{# def.setupNextLevel }} - - -{{## def.validateAdditional: - {{ /* additionalProperties is schema */ - $it.schema = $aProperties; - $it.schemaPath = it.schemaPath + '.additionalProperties'; - $it.errSchemaPath = it.errSchemaPath + '/additionalProperties'; - $it.errorPath = it.opts._errorDataPathProperty - ? it.errorPath - : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers); - var $passData = $data + '[' + $key + ']'; - $it.dataPathArr[$dataNxt] = $key; - }} - - {{# def.generateSubschemaCode }} - {{# def.optimizeValidate }} -#}} - - -{{ - var $key = 'key' + $lvl - , $idx = 'idx' + $lvl - , $dataNxt = $it.dataLevel = it.dataLevel + 1 - , $nextData = 'data' + $dataNxt - , $dataProperties = 'dataProperties' + $lvl; - - var $schemaKeys = Object.keys($schema || {}).filter(notProto) - , $pProperties = it.schema.patternProperties || {} - , $pPropertyKeys = Object.keys($pProperties).filter(notProto) - , $aProperties = it.schema.additionalProperties - , $someProperties = $schemaKeys.length || $pPropertyKeys.length - , $noAdditional = $aProperties === false - , $additionalIsSchema = typeof $aProperties == 'object' - && Object.keys($aProperties).length - , $removeAdditional = it.opts.removeAdditional - , $checkAdditional = $noAdditional || $additionalIsSchema || $removeAdditional - , $ownProperties = it.opts.ownProperties - , $currentBaseId = it.baseId; - - var $required = it.schema.required; - if ($required && !(it.opts.$data && $required.$data) && $required.length < it.opts.loopRequired) { - var $requiredHash = it.util.toHash($required); - } - - function notProto(p) { return p !== '__proto__'; } -}} - - -var {{=$errs}} = errors; -var {{=$nextValid}} = true; -{{? $ownProperties }} - var {{=$dataProperties}} = undefined; -{{?}} - -{{? $checkAdditional }} - {{# def.iterateProperties }} - {{? $someProperties }} - var isAdditional{{=$lvl}} = !(false - {{? $schemaKeys.length }} - {{? $schemaKeys.length > 8 }} - || validate.schema{{=$schemaPath}}.hasOwnProperty({{=$key}}) - {{??}} - {{~ $schemaKeys:$propertyKey }} - || {{=$key}} == {{= it.util.toQuotedString($propertyKey) }} - {{~}} - {{?}} - {{?}} - {{? $pPropertyKeys.length }} - {{~ $pPropertyKeys:$pProperty:$i }} - || {{= it.usePattern($pProperty) }}.test({{=$key}}) - {{~}} - {{?}} - ); - - if (isAdditional{{=$lvl}}) { - {{?}} - {{? $removeAdditional == 'all' }} - delete {{=$data}}[{{=$key}}]; - {{??}} - {{ - var $currentErrorPath = it.errorPath; - var $additionalProperty = '\' + ' + $key + ' + \''; - if (it.opts._errorDataPathProperty) { - it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers); - } - }} - {{? $noAdditional }} - {{? $removeAdditional }} - delete {{=$data}}[{{=$key}}]; - {{??}} - {{=$nextValid}} = false; - {{ - var $currErrSchemaPath = $errSchemaPath; - $errSchemaPath = it.errSchemaPath + '/additionalProperties'; - }} - {{# def.error:'additionalProperties' }} - {{ $errSchemaPath = $currErrSchemaPath; }} - {{? $breakOnError }} break; {{?}} - {{?}} - {{?? $additionalIsSchema }} - {{? $removeAdditional == 'failing' }} - var {{=$errs}} = errors; - {{# def.setCompositeRule }} - - {{# def.validateAdditional }} - - if (!{{=$nextValid}}) { - errors = {{=$errs}}; - if (validate.errors !== null) { - if (errors) validate.errors.length = errors; - else validate.errors = null; - } - delete {{=$data}}[{{=$key}}]; - } - - {{# def.resetCompositeRule }} - {{??}} - {{# def.validateAdditional }} - {{? $breakOnError }} if (!{{=$nextValid}}) break; {{?}} - {{?}} - {{?}} - {{ it.errorPath = $currentErrorPath; }} - {{?}} - {{? $someProperties }} - } - {{?}} - } - - {{# def.ifResultValid }} -{{?}} - -{{ var $useDefaults = it.opts.useDefaults && !it.compositeRule; }} - -{{? $schemaKeys.length }} - {{~ $schemaKeys:$propertyKey }} - {{ var $sch = $schema[$propertyKey]; }} - - {{? {{# def.nonEmptySchema:$sch}} }} - {{ - var $prop = it.util.getProperty($propertyKey) - , $passData = $data + $prop - , $hasDefault = $useDefaults && $sch.default !== undefined; - $it.schema = $sch; - $it.schemaPath = $schemaPath + $prop; - $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($propertyKey); - $it.errorPath = it.util.getPath(it.errorPath, $propertyKey, it.opts.jsonPointers); - $it.dataPathArr[$dataNxt] = it.util.toQuotedString($propertyKey); - }} - - {{# def.generateSubschemaCode }} - - {{? {{# def.willOptimize }} }} - {{ - $code = {{# def._optimizeValidate }}; - var $useData = $passData; - }} - {{??}} - {{ var $useData = $nextData; }} - var {{=$nextData}} = {{=$passData}}; - {{?}} - - {{? $hasDefault }} - {{= $code }} - {{??}} - {{? $requiredHash && $requiredHash[$propertyKey] }} - if ({{# def.noPropertyInData }}) { - {{=$nextValid}} = false; - {{ - var $currentErrorPath = it.errorPath - , $currErrSchemaPath = $errSchemaPath - , $missingProperty = it.util.escapeQuotes($propertyKey); - if (it.opts._errorDataPathProperty) { - it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers); - } - $errSchemaPath = it.errSchemaPath + '/required'; - }} - {{# def.error:'required' }} - {{ $errSchemaPath = $currErrSchemaPath; }} - {{ it.errorPath = $currentErrorPath; }} - } else { - {{??}} - {{? $breakOnError }} - if ({{# def.noPropertyInData }}) { - {{=$nextValid}} = true; - } else { - {{??}} - if ({{=$useData}} !== undefined - {{? $ownProperties }} - && {{# def.isOwnProperty }} - {{?}} - ) { - {{?}} - {{?}} - - {{= $code }} - } - {{?}} {{ /* $hasDefault */ }} - {{?}} {{ /* def.nonEmptySchema */ }} - - {{# def.ifResultValid }} - {{~}} -{{?}} - -{{? $pPropertyKeys.length }} - {{~ $pPropertyKeys:$pProperty }} - {{ var $sch = $pProperties[$pProperty]; }} - - {{? {{# def.nonEmptySchema:$sch}} }} - {{ - $it.schema = $sch; - $it.schemaPath = it.schemaPath + '.patternProperties' + it.util.getProperty($pProperty); - $it.errSchemaPath = it.errSchemaPath + '/patternProperties/' - + it.util.escapeFragment($pProperty); - }} - - {{# def.iterateProperties }} - if ({{= it.usePattern($pProperty) }}.test({{=$key}})) { - {{ - $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers); - var $passData = $data + '[' + $key + ']'; - $it.dataPathArr[$dataNxt] = $key; - }} - - {{# def.generateSubschemaCode }} - {{# def.optimizeValidate }} - - {{? $breakOnError }} if (!{{=$nextValid}}) break; {{?}} - } - {{? $breakOnError }} else {{=$nextValid}} = true; {{?}} - } - - {{# def.ifResultValid }} - {{?}} {{ /* def.nonEmptySchema */ }} - {{~}} -{{?}} - - -{{? $breakOnError }} - {{= $closingBraces }} - if ({{=$errs}} == errors) { -{{?}} diff --git a/deps/npm/node_modules/ajv/lib/dot/propertyNames.jst b/deps/npm/node_modules/ajv/lib/dot/propertyNames.jst deleted file mode 100644 index d456ccafc4b587..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dot/propertyNames.jst +++ /dev/null @@ -1,52 +0,0 @@ -{{# def.definitions }} -{{# def.errors }} -{{# def.setupKeyword }} -{{# def.setupNextLevel }} - -var {{=$errs}} = errors; - -{{? {{# def.nonEmptySchema:$schema }} }} - {{ - $it.schema = $schema; - $it.schemaPath = $schemaPath; - $it.errSchemaPath = $errSchemaPath; - }} - - {{ - var $key = 'key' + $lvl - , $idx = 'idx' + $lvl - , $i = 'i' + $lvl - , $invalidName = '\' + ' + $key + ' + \'' - , $dataNxt = $it.dataLevel = it.dataLevel + 1 - , $nextData = 'data' + $dataNxt - , $dataProperties = 'dataProperties' + $lvl - , $ownProperties = it.opts.ownProperties - , $currentBaseId = it.baseId; - }} - - {{? $ownProperties }} - var {{=$dataProperties}} = undefined; - {{?}} - {{# def.iterateProperties }} - var startErrs{{=$lvl}} = errors; - - {{ var $passData = $key; }} - {{# def.setCompositeRule }} - {{# def.generateSubschemaCode }} - {{# def.optimizeValidate }} - {{# def.resetCompositeRule }} - - if (!{{=$nextValid}}) { - for (var {{=$i}}=startErrs{{=$lvl}}; {{=$i}}= it.opts.loopRequired - , $ownProperties = it.opts.ownProperties; - }} - - {{? $breakOnError }} - var missing{{=$lvl}}; - {{? $loopRequired }} - {{# def.setupLoop }} - var {{=$valid}} = true; - - {{?$isData}}{{# def.check$dataIsArray }}{{?}} - - for (var {{=$i}} = 0; {{=$i}} < {{=$vSchema}}.length; {{=$i}}++) { - {{=$valid}} = {{=$data}}[{{=$vSchema}}[{{=$i}}]] !== undefined - {{? $ownProperties }} - && {{# def.isRequiredOwnProperty }} - {{?}}; - if (!{{=$valid}}) break; - } - - {{? $isData }} } {{?}} - - {{# def.checkError:'required' }} - else { - {{??}} - if ({{# def.checkMissingProperty:$required }}) { - {{# def.errorMissingProperty:'required' }} - } else { - {{?}} - {{??}} - {{? $loopRequired }} - {{# def.setupLoop }} - {{? $isData }} - if ({{=$vSchema}} && !Array.isArray({{=$vSchema}})) { - {{# def.addError:'required' }} - } else if ({{=$vSchema}} !== undefined) { - {{?}} - - for (var {{=$i}} = 0; {{=$i}} < {{=$vSchema}}.length; {{=$i}}++) { - if ({{=$data}}[{{=$vSchema}}[{{=$i}}]] === undefined - {{? $ownProperties }} - || !{{# def.isRequiredOwnProperty }} - {{?}}) { - {{# def.addError:'required' }} - } - } - - {{? $isData }} } {{?}} - {{??}} - {{~ $required:$propertyKey }} - {{# def.allErrorsMissingProperty:'required' }} - {{~}} - {{?}} - {{?}} - - {{ it.errorPath = $currentErrorPath; }} - -{{?? $breakOnError }} - if (true) { -{{?}} diff --git a/deps/npm/node_modules/ajv/lib/dot/uniqueItems.jst b/deps/npm/node_modules/ajv/lib/dot/uniqueItems.jst deleted file mode 100644 index e69b8308d2c47d..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dot/uniqueItems.jst +++ /dev/null @@ -1,62 +0,0 @@ -{{# def.definitions }} -{{# def.errors }} -{{# def.setupKeyword }} -{{# def.$data }} - - -{{? ($schema || $isData) && it.opts.uniqueItems !== false }} - {{? $isData }} - var {{=$valid}}; - if ({{=$schemaValue}} === false || {{=$schemaValue}} === undefined) - {{=$valid}} = true; - else if (typeof {{=$schemaValue}} != 'boolean') - {{=$valid}} = false; - else { - {{?}} - - var i = {{=$data}}.length - , {{=$valid}} = true - , j; - if (i > 1) { - {{ - var $itemType = it.schema.items && it.schema.items.type - , $typeIsArray = Array.isArray($itemType); - }} - {{? !$itemType || $itemType == 'object' || $itemType == 'array' || - ($typeIsArray && ($itemType.indexOf('object') >= 0 || $itemType.indexOf('array') >= 0)) }} - outer: - for (;i--;) { - for (j = i; j--;) { - if (equal({{=$data}}[i], {{=$data}}[j])) { - {{=$valid}} = false; - break outer; - } - } - } - {{??}} - var itemIndices = {}, item; - for (;i--;) { - var item = {{=$data}}[i]; - {{ var $method = 'checkDataType' + ($typeIsArray ? 's' : ''); }} - if ({{= it.util[$method]($itemType, 'item', it.opts.strictNumbers, true) }}) continue; - {{? $typeIsArray}} - if (typeof item == 'string') item = '"' + item; - {{?}} - if (typeof itemIndices[item] == 'number') { - {{=$valid}} = false; - j = itemIndices[item]; - break; - } - itemIndices[item] = i; - } - {{?}} - } - - {{? $isData }} } {{?}} - - if (!{{=$valid}}) { - {{# def.error:'uniqueItems' }} - } {{? $breakOnError }} else { {{?}} -{{??}} - {{? $breakOnError }} if (true) { {{?}} -{{?}} diff --git a/deps/npm/node_modules/ajv/lib/dot/validate.jst b/deps/npm/node_modules/ajv/lib/dot/validate.jst deleted file mode 100644 index 32087e71c0d53e..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dot/validate.jst +++ /dev/null @@ -1,276 +0,0 @@ -{{# def.definitions }} -{{# def.errors }} -{{# def.defaults }} -{{# def.coerce }} - -{{ /** - * schema compilation (render) time: - * it = { schema, RULES, _validate, opts } - * it.validate - this template function, - * it is used recursively to generate code for subschemas - * - * runtime: - * "validate" is a variable name to which this function will be assigned - * validateRef etc. are defined in the parent scope in index.js - */ }} - -{{ - var $async = it.schema.$async === true - , $refKeywords = it.util.schemaHasRulesExcept(it.schema, it.RULES.all, '$ref') - , $id = it.self._getId(it.schema); -}} - -{{ - if (it.opts.strictKeywords) { - var $unknownKwd = it.util.schemaUnknownRules(it.schema, it.RULES.keywords); - if ($unknownKwd) { - var $keywordsMsg = 'unknown keyword: ' + $unknownKwd; - if (it.opts.strictKeywords === 'log') it.logger.warn($keywordsMsg); - else throw new Error($keywordsMsg); - } - } -}} - -{{? it.isTop }} - var validate = {{?$async}}{{it.async = true;}}async {{?}}function(data, dataPath, parentData, parentDataProperty, rootData) { - 'use strict'; - {{? $id && (it.opts.sourceCode || it.opts.processCode) }} - {{= '/\*# sourceURL=' + $id + ' */' }} - {{?}} -{{?}} - -{{? typeof it.schema == 'boolean' || !($refKeywords || it.schema.$ref) }} - {{ var $keyword = 'false schema'; }} - {{# def.setupKeyword }} - {{? it.schema === false}} - {{? it.isTop}} - {{ $breakOnError = true; }} - {{??}} - var {{=$valid}} = false; - {{?}} - {{# def.error:'false schema' }} - {{??}} - {{? it.isTop}} - {{? $async }} - return data; - {{??}} - validate.errors = null; - return true; - {{?}} - {{??}} - var {{=$valid}} = true; - {{?}} - {{?}} - - {{? it.isTop}} - }; - return validate; - {{?}} - - {{ return out; }} -{{?}} - - -{{? it.isTop }} - {{ - var $top = it.isTop - , $lvl = it.level = 0 - , $dataLvl = it.dataLevel = 0 - , $data = 'data'; - it.rootId = it.resolve.fullPath(it.self._getId(it.root.schema)); - it.baseId = it.baseId || it.rootId; - delete it.isTop; - - it.dataPathArr = [""]; - - if (it.schema.default !== undefined && it.opts.useDefaults && it.opts.strictDefaults) { - var $defaultMsg = 'default is ignored in the schema root'; - if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg); - else throw new Error($defaultMsg); - } - }} - - var vErrors = null; {{ /* don't edit, used in replace */ }} - var errors = 0; {{ /* don't edit, used in replace */ }} - if (rootData === undefined) rootData = data; {{ /* don't edit, used in replace */ }} -{{??}} - {{ - var $lvl = it.level - , $dataLvl = it.dataLevel - , $data = 'data' + ($dataLvl || ''); - - if ($id) it.baseId = it.resolve.url(it.baseId, $id); - - if ($async && !it.async) throw new Error('async schema in sync schema'); - }} - - var errs_{{=$lvl}} = errors; -{{?}} - -{{ - var $valid = 'valid' + $lvl - , $breakOnError = !it.opts.allErrors - , $closingBraces1 = '' - , $closingBraces2 = ''; - - var $errorKeyword; - var $typeSchema = it.schema.type - , $typeIsArray = Array.isArray($typeSchema); - - if ($typeSchema && it.opts.nullable && it.schema.nullable === true) { - if ($typeIsArray) { - if ($typeSchema.indexOf('null') == -1) - $typeSchema = $typeSchema.concat('null'); - } else if ($typeSchema != 'null') { - $typeSchema = [$typeSchema, 'null']; - $typeIsArray = true; - } - } - - if ($typeIsArray && $typeSchema.length == 1) { - $typeSchema = $typeSchema[0]; - $typeIsArray = false; - } -}} - -{{## def.checkType: - {{ - var $schemaPath = it.schemaPath + '.type' - , $errSchemaPath = it.errSchemaPath + '/type' - , $method = $typeIsArray ? 'checkDataTypes' : 'checkDataType'; - }} - - if ({{= it.util[$method]($typeSchema, $data, it.opts.strictNumbers, true) }}) { -#}} - -{{? it.schema.$ref && $refKeywords }} - {{? it.opts.extendRefs == 'fail' }} - {{ throw new Error('$ref: validation keywords used in schema at path "' + it.errSchemaPath + '" (see option extendRefs)'); }} - {{?? it.opts.extendRefs !== true }} - {{ - $refKeywords = false; - it.logger.warn('$ref: keywords ignored in schema at path "' + it.errSchemaPath + '"'); - }} - {{?}} -{{?}} - -{{? it.schema.$comment && it.opts.$comment }} - {{= it.RULES.all.$comment.code(it, '$comment') }} -{{?}} - -{{? $typeSchema }} - {{? it.opts.coerceTypes }} - {{ var $coerceToTypes = it.util.coerceToTypes(it.opts.coerceTypes, $typeSchema); }} - {{?}} - - {{ var $rulesGroup = it.RULES.types[$typeSchema]; }} - {{? $coerceToTypes || $typeIsArray || $rulesGroup === true || - ($rulesGroup && !$shouldUseGroup($rulesGroup)) }} - {{ - var $schemaPath = it.schemaPath + '.type' - , $errSchemaPath = it.errSchemaPath + '/type'; - }} - {{# def.checkType }} - {{? $coerceToTypes }} - {{# def.coerceType }} - {{??}} - {{# def.error:'type' }} - {{?}} - } - {{?}} -{{?}} - - -{{? it.schema.$ref && !$refKeywords }} - {{= it.RULES.all.$ref.code(it, '$ref') }} - {{? $breakOnError }} - } - if (errors === {{?$top}}0{{??}}errs_{{=$lvl}}{{?}}) { - {{ $closingBraces2 += '}'; }} - {{?}} -{{??}} - {{~ it.RULES:$rulesGroup }} - {{? $shouldUseGroup($rulesGroup) }} - {{? $rulesGroup.type }} - if ({{= it.util.checkDataType($rulesGroup.type, $data, it.opts.strictNumbers) }}) { - {{?}} - {{? it.opts.useDefaults }} - {{? $rulesGroup.type == 'object' && it.schema.properties }} - {{# def.defaultProperties }} - {{?? $rulesGroup.type == 'array' && Array.isArray(it.schema.items) }} - {{# def.defaultItems }} - {{?}} - {{?}} - {{~ $rulesGroup.rules:$rule }} - {{? $shouldUseRule($rule) }} - {{ var $code = $rule.code(it, $rule.keyword, $rulesGroup.type); }} - {{? $code }} - {{= $code }} - {{? $breakOnError }} - {{ $closingBraces1 += '}'; }} - {{?}} - {{?}} - {{?}} - {{~}} - {{? $breakOnError }} - {{= $closingBraces1 }} - {{ $closingBraces1 = ''; }} - {{?}} - {{? $rulesGroup.type }} - } - {{? $typeSchema && $typeSchema === $rulesGroup.type && !$coerceToTypes }} - else { - {{ - var $schemaPath = it.schemaPath + '.type' - , $errSchemaPath = it.errSchemaPath + '/type'; - }} - {{# def.error:'type' }} - } - {{?}} - {{?}} - - {{? $breakOnError }} - if (errors === {{?$top}}0{{??}}errs_{{=$lvl}}{{?}}) { - {{ $closingBraces2 += '}'; }} - {{?}} - {{?}} - {{~}} -{{?}} - -{{? $breakOnError }} {{= $closingBraces2 }} {{?}} - -{{? $top }} - {{? $async }} - if (errors === 0) return data; {{ /* don't edit, used in replace */ }} - else throw new ValidationError(vErrors); {{ /* don't edit, used in replace */ }} - {{??}} - validate.errors = vErrors; {{ /* don't edit, used in replace */ }} - return errors === 0; {{ /* don't edit, used in replace */ }} - {{?}} - }; - - return validate; -{{??}} - var {{=$valid}} = errors === errs_{{=$lvl}}; -{{?}} - -{{ - function $shouldUseGroup($rulesGroup) { - var rules = $rulesGroup.rules; - for (var i=0; i < rules.length; i++) - if ($shouldUseRule(rules[i])) - return true; - } - - function $shouldUseRule($rule) { - return it.schema[$rule.keyword] !== undefined || - ($rule.implements && $ruleImplementsSomeKeyword($rule)); - } - - function $ruleImplementsSomeKeyword($rule) { - var impl = $rule.implements; - for (var i=0; i < impl.length; i++) - if (it.schema[impl[i]] !== undefined) - return true; - } -}} diff --git a/deps/npm/node_modules/ajv/lib/dotjs/README.md b/deps/npm/node_modules/ajv/lib/dotjs/README.md deleted file mode 100644 index 4d994846c81f63..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dotjs/README.md +++ /dev/null @@ -1,3 +0,0 @@ -These files are compiled dot templates from dot folder. - -Do NOT edit them directly, edit the templates and run `npm run build` from main ajv folder. diff --git a/deps/npm/node_modules/ajv/lib/dotjs/_limit.js b/deps/npm/node_modules/ajv/lib/dotjs/_limit.js deleted file mode 100644 index 05a1979dcb8e92..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dotjs/_limit.js +++ /dev/null @@ -1,163 +0,0 @@ -'use strict'; -module.exports = function generate__limit(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $errorKeyword; - var $data = 'data' + ($dataLvl || ''); - var $isData = it.opts.$data && $schema && $schema.$data, - $schemaValue; - if ($isData) { - out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; - $schemaValue = 'schema' + $lvl; - } else { - $schemaValue = $schema; - } - var $isMax = $keyword == 'maximum', - $exclusiveKeyword = $isMax ? 'exclusiveMaximum' : 'exclusiveMinimum', - $schemaExcl = it.schema[$exclusiveKeyword], - $isDataExcl = it.opts.$data && $schemaExcl && $schemaExcl.$data, - $op = $isMax ? '<' : '>', - $notOp = $isMax ? '>' : '<', - $errorKeyword = undefined; - if (!($isData || typeof $schema == 'number' || $schema === undefined)) { - throw new Error($keyword + ' must be number'); - } - if (!($isDataExcl || $schemaExcl === undefined || typeof $schemaExcl == 'number' || typeof $schemaExcl == 'boolean')) { - throw new Error($exclusiveKeyword + ' must be number or boolean'); - } - if ($isDataExcl) { - var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr), - $exclusive = 'exclusive' + $lvl, - $exclType = 'exclType' + $lvl, - $exclIsNumber = 'exclIsNumber' + $lvl, - $opExpr = 'op' + $lvl, - $opStr = '\' + ' + $opExpr + ' + \''; - out += ' var schemaExcl' + ($lvl) + ' = ' + ($schemaValueExcl) + '; '; - $schemaValueExcl = 'schemaExcl' + $lvl; - out += ' var ' + ($exclusive) + '; var ' + ($exclType) + ' = typeof ' + ($schemaValueExcl) + '; if (' + ($exclType) + ' != \'boolean\' && ' + ($exclType) + ' != \'undefined\' && ' + ($exclType) + ' != \'number\') { '; - var $errorKeyword = $exclusiveKeyword; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ($errorKeyword || '_exclusiveLimit') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} '; - if (it.opts.messages !== false) { - out += ' , message: \'' + ($exclusiveKeyword) + ' should be boolean\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += ' } else if ( '; - if ($isData) { - out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || '; - } - out += ' ' + ($exclType) + ' == \'number\' ? ( (' + ($exclusive) + ' = ' + ($schemaValue) + ' === undefined || ' + ($schemaValueExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ') ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValueExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) : ( (' + ($exclusive) + ' = ' + ($schemaValueExcl) + ' === true) ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValue) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { var op' + ($lvl) + ' = ' + ($exclusive) + ' ? \'' + ($op) + '\' : \'' + ($op) + '=\'; '; - if ($schema === undefined) { - $errorKeyword = $exclusiveKeyword; - $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword; - $schemaValue = $schemaValueExcl; - $isData = $isDataExcl; - } - } else { - var $exclIsNumber = typeof $schemaExcl == 'number', - $opStr = $op; - if ($exclIsNumber && $isData) { - var $opExpr = '\'' + $opStr + '\''; - out += ' if ( '; - if ($isData) { - out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || '; - } - out += ' ( ' + ($schemaValue) + ' === undefined || ' + ($schemaExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ' ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { '; - } else { - if ($exclIsNumber && $schema === undefined) { - $exclusive = true; - $errorKeyword = $exclusiveKeyword; - $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword; - $schemaValue = $schemaExcl; - $notOp += '='; - } else { - if ($exclIsNumber) $schemaValue = Math[$isMax ? 'min' : 'max']($schemaExcl, $schema); - if ($schemaExcl === ($exclIsNumber ? $schemaValue : true)) { - $exclusive = true; - $errorKeyword = $exclusiveKeyword; - $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword; - $notOp += '='; - } else { - $exclusive = false; - $opStr += '='; - } - } - var $opExpr = '\'' + $opStr + '\''; - out += ' if ( '; - if ($isData) { - out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || '; - } - out += ' ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' || ' + ($data) + ' !== ' + ($data) + ') { '; - } - } - $errorKeyword = $errorKeyword || $keyword; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ($errorKeyword || '_limit') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { comparison: ' + ($opExpr) + ', limit: ' + ($schemaValue) + ', exclusive: ' + ($exclusive) + ' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should be ' + ($opStr) + ' '; - if ($isData) { - out += '\' + ' + ($schemaValue); - } else { - out += '' + ($schemaValue) + '\''; - } - } - if (it.opts.verbose) { - out += ' , schema: '; - if ($isData) { - out += 'validate.schema' + ($schemaPath); - } else { - out += '' + ($schema); - } - out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += ' } '; - if ($breakOnError) { - out += ' else { '; - } - return out; -} diff --git a/deps/npm/node_modules/ajv/lib/dotjs/_limitItems.js b/deps/npm/node_modules/ajv/lib/dotjs/_limitItems.js deleted file mode 100644 index e092a559ea0ae0..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dotjs/_limitItems.js +++ /dev/null @@ -1,80 +0,0 @@ -'use strict'; -module.exports = function generate__limitItems(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $errorKeyword; - var $data = 'data' + ($dataLvl || ''); - var $isData = it.opts.$data && $schema && $schema.$data, - $schemaValue; - if ($isData) { - out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; - $schemaValue = 'schema' + $lvl; - } else { - $schemaValue = $schema; - } - if (!($isData || typeof $schema == 'number')) { - throw new Error($keyword + ' must be number'); - } - var $op = $keyword == 'maxItems' ? '>' : '<'; - out += 'if ( '; - if ($isData) { - out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || '; - } - out += ' ' + ($data) + '.length ' + ($op) + ' ' + ($schemaValue) + ') { '; - var $errorKeyword = $keyword; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ($errorKeyword || '_limitItems') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should NOT have '; - if ($keyword == 'maxItems') { - out += 'more'; - } else { - out += 'fewer'; - } - out += ' than '; - if ($isData) { - out += '\' + ' + ($schemaValue) + ' + \''; - } else { - out += '' + ($schema); - } - out += ' items\' '; - } - if (it.opts.verbose) { - out += ' , schema: '; - if ($isData) { - out += 'validate.schema' + ($schemaPath); - } else { - out += '' + ($schema); - } - out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += '} '; - if ($breakOnError) { - out += ' else { '; - } - return out; -} diff --git a/deps/npm/node_modules/ajv/lib/dotjs/_limitLength.js b/deps/npm/node_modules/ajv/lib/dotjs/_limitLength.js deleted file mode 100644 index ecbd3fe1906f34..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dotjs/_limitLength.js +++ /dev/null @@ -1,85 +0,0 @@ -'use strict'; -module.exports = function generate__limitLength(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $errorKeyword; - var $data = 'data' + ($dataLvl || ''); - var $isData = it.opts.$data && $schema && $schema.$data, - $schemaValue; - if ($isData) { - out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; - $schemaValue = 'schema' + $lvl; - } else { - $schemaValue = $schema; - } - if (!($isData || typeof $schema == 'number')) { - throw new Error($keyword + ' must be number'); - } - var $op = $keyword == 'maxLength' ? '>' : '<'; - out += 'if ( '; - if ($isData) { - out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || '; - } - if (it.opts.unicode === false) { - out += ' ' + ($data) + '.length '; - } else { - out += ' ucs2length(' + ($data) + ') '; - } - out += ' ' + ($op) + ' ' + ($schemaValue) + ') { '; - var $errorKeyword = $keyword; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ($errorKeyword || '_limitLength') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should NOT be '; - if ($keyword == 'maxLength') { - out += 'longer'; - } else { - out += 'shorter'; - } - out += ' than '; - if ($isData) { - out += '\' + ' + ($schemaValue) + ' + \''; - } else { - out += '' + ($schema); - } - out += ' characters\' '; - } - if (it.opts.verbose) { - out += ' , schema: '; - if ($isData) { - out += 'validate.schema' + ($schemaPath); - } else { - out += '' + ($schema); - } - out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += '} '; - if ($breakOnError) { - out += ' else { '; - } - return out; -} diff --git a/deps/npm/node_modules/ajv/lib/dotjs/_limitProperties.js b/deps/npm/node_modules/ajv/lib/dotjs/_limitProperties.js deleted file mode 100644 index d232755ad0b21e..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dotjs/_limitProperties.js +++ /dev/null @@ -1,80 +0,0 @@ -'use strict'; -module.exports = function generate__limitProperties(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $errorKeyword; - var $data = 'data' + ($dataLvl || ''); - var $isData = it.opts.$data && $schema && $schema.$data, - $schemaValue; - if ($isData) { - out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; - $schemaValue = 'schema' + $lvl; - } else { - $schemaValue = $schema; - } - if (!($isData || typeof $schema == 'number')) { - throw new Error($keyword + ' must be number'); - } - var $op = $keyword == 'maxProperties' ? '>' : '<'; - out += 'if ( '; - if ($isData) { - out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || '; - } - out += ' Object.keys(' + ($data) + ').length ' + ($op) + ' ' + ($schemaValue) + ') { '; - var $errorKeyword = $keyword; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ($errorKeyword || '_limitProperties') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should NOT have '; - if ($keyword == 'maxProperties') { - out += 'more'; - } else { - out += 'fewer'; - } - out += ' than '; - if ($isData) { - out += '\' + ' + ($schemaValue) + ' + \''; - } else { - out += '' + ($schema); - } - out += ' properties\' '; - } - if (it.opts.verbose) { - out += ' , schema: '; - if ($isData) { - out += 'validate.schema' + ($schemaPath); - } else { - out += '' + ($schema); - } - out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += '} '; - if ($breakOnError) { - out += ' else { '; - } - return out; -} diff --git a/deps/npm/node_modules/ajv/lib/dotjs/allOf.js b/deps/npm/node_modules/ajv/lib/dotjs/allOf.js deleted file mode 100644 index fb8c2e4bbefe95..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dotjs/allOf.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; -module.exports = function generate_allOf(it, $keyword, $ruleType) { - var out = ' '; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $it = it.util.copy(it); - var $closingBraces = ''; - $it.level++; - var $nextValid = 'valid' + $it.level; - var $currentBaseId = $it.baseId, - $allSchemasEmpty = true; - var arr1 = $schema; - if (arr1) { - var $sch, $i = -1, - l1 = arr1.length - 1; - while ($i < l1) { - $sch = arr1[$i += 1]; - if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) { - $allSchemasEmpty = false; - $it.schema = $sch; - $it.schemaPath = $schemaPath + '[' + $i + ']'; - $it.errSchemaPath = $errSchemaPath + '/' + $i; - out += ' ' + (it.validate($it)) + ' '; - $it.baseId = $currentBaseId; - if ($breakOnError) { - out += ' if (' + ($nextValid) + ') { '; - $closingBraces += '}'; - } - } - } - } - if ($breakOnError) { - if ($allSchemasEmpty) { - out += ' if (true) { '; - } else { - out += ' ' + ($closingBraces.slice(0, -1)) + ' '; - } - } - return out; -} diff --git a/deps/npm/node_modules/ajv/lib/dotjs/anyOf.js b/deps/npm/node_modules/ajv/lib/dotjs/anyOf.js deleted file mode 100644 index 0600a9d42bce5b..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dotjs/anyOf.js +++ /dev/null @@ -1,73 +0,0 @@ -'use strict'; -module.exports = function generate_anyOf(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $data = 'data' + ($dataLvl || ''); - var $valid = 'valid' + $lvl; - var $errs = 'errs__' + $lvl; - var $it = it.util.copy(it); - var $closingBraces = ''; - $it.level++; - var $nextValid = 'valid' + $it.level; - var $noEmptySchema = $schema.every(function($sch) { - return (it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all)); - }); - if ($noEmptySchema) { - var $currentBaseId = $it.baseId; - out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = false; '; - var $wasComposite = it.compositeRule; - it.compositeRule = $it.compositeRule = true; - var arr1 = $schema; - if (arr1) { - var $sch, $i = -1, - l1 = arr1.length - 1; - while ($i < l1) { - $sch = arr1[$i += 1]; - $it.schema = $sch; - $it.schemaPath = $schemaPath + '[' + $i + ']'; - $it.errSchemaPath = $errSchemaPath + '/' + $i; - out += ' ' + (it.validate($it)) + ' '; - $it.baseId = $currentBaseId; - out += ' ' + ($valid) + ' = ' + ($valid) + ' || ' + ($nextValid) + '; if (!' + ($valid) + ') { '; - $closingBraces += '}'; - } - } - it.compositeRule = $it.compositeRule = $wasComposite; - out += ' ' + ($closingBraces) + ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('anyOf') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} '; - if (it.opts.messages !== false) { - out += ' , message: \'should match some schema in anyOf\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError(vErrors); '; - } else { - out += ' validate.errors = vErrors; return false; '; - } - } - out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } '; - if (it.opts.allErrors) { - out += ' } '; - } - } else { - if ($breakOnError) { - out += ' if (true) { '; - } - } - return out; -} diff --git a/deps/npm/node_modules/ajv/lib/dotjs/comment.js b/deps/npm/node_modules/ajv/lib/dotjs/comment.js deleted file mode 100644 index dd66bb8f0f951a..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dotjs/comment.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; -module.exports = function generate_comment(it, $keyword, $ruleType) { - var out = ' '; - var $schema = it.schema[$keyword]; - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $comment = it.util.toQuotedString($schema); - if (it.opts.$comment === true) { - out += ' console.log(' + ($comment) + ');'; - } else if (typeof it.opts.$comment == 'function') { - out += ' self._opts.$comment(' + ($comment) + ', ' + (it.util.toQuotedString($errSchemaPath)) + ', validate.root.schema);'; - } - return out; -} diff --git a/deps/npm/node_modules/ajv/lib/dotjs/const.js b/deps/npm/node_modules/ajv/lib/dotjs/const.js deleted file mode 100644 index 15b7c619fff050..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dotjs/const.js +++ /dev/null @@ -1,56 +0,0 @@ -'use strict'; -module.exports = function generate_const(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $data = 'data' + ($dataLvl || ''); - var $valid = 'valid' + $lvl; - var $isData = it.opts.$data && $schema && $schema.$data, - $schemaValue; - if ($isData) { - out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; - $schemaValue = 'schema' + $lvl; - } else { - $schemaValue = $schema; - } - if (!$isData) { - out += ' var schema' + ($lvl) + ' = validate.schema' + ($schemaPath) + ';'; - } - out += 'var ' + ($valid) + ' = equal(' + ($data) + ', schema' + ($lvl) + '); if (!' + ($valid) + ') { '; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('const') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValue: schema' + ($lvl) + ' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should be equal to constant\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += ' }'; - if ($breakOnError) { - out += ' else { '; - } - return out; -} diff --git a/deps/npm/node_modules/ajv/lib/dotjs/contains.js b/deps/npm/node_modules/ajv/lib/dotjs/contains.js deleted file mode 100644 index 7d763009073aa3..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dotjs/contains.js +++ /dev/null @@ -1,81 +0,0 @@ -'use strict'; -module.exports = function generate_contains(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $data = 'data' + ($dataLvl || ''); - var $valid = 'valid' + $lvl; - var $errs = 'errs__' + $lvl; - var $it = it.util.copy(it); - var $closingBraces = ''; - $it.level++; - var $nextValid = 'valid' + $it.level; - var $idx = 'i' + $lvl, - $dataNxt = $it.dataLevel = it.dataLevel + 1, - $nextData = 'data' + $dataNxt, - $currentBaseId = it.baseId, - $nonEmptySchema = (it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all)); - out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';'; - if ($nonEmptySchema) { - var $wasComposite = it.compositeRule; - it.compositeRule = $it.compositeRule = true; - $it.schema = $schema; - $it.schemaPath = $schemaPath; - $it.errSchemaPath = $errSchemaPath; - out += ' var ' + ($nextValid) + ' = false; for (var ' + ($idx) + ' = 0; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { '; - $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true); - var $passData = $data + '[' + $idx + ']'; - $it.dataPathArr[$dataNxt] = $idx; - var $code = it.validate($it); - $it.baseId = $currentBaseId; - if (it.util.varOccurences($code, $nextData) < 2) { - out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' '; - } else { - out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' '; - } - out += ' if (' + ($nextValid) + ') break; } '; - it.compositeRule = $it.compositeRule = $wasComposite; - out += ' ' + ($closingBraces) + ' if (!' + ($nextValid) + ') {'; - } else { - out += ' if (' + ($data) + '.length == 0) {'; - } - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('contains') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} '; - if (it.opts.messages !== false) { - out += ' , message: \'should contain a valid item\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += ' } else { '; - if ($nonEmptySchema) { - out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } '; - } - if (it.opts.allErrors) { - out += ' } '; - } - return out; -} diff --git a/deps/npm/node_modules/ajv/lib/dotjs/custom.js b/deps/npm/node_modules/ajv/lib/dotjs/custom.js deleted file mode 100644 index f3e641e701709c..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dotjs/custom.js +++ /dev/null @@ -1,228 +0,0 @@ -'use strict'; -module.exports = function generate_custom(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $errorKeyword; - var $data = 'data' + ($dataLvl || ''); - var $valid = 'valid' + $lvl; - var $errs = 'errs__' + $lvl; - var $isData = it.opts.$data && $schema && $schema.$data, - $schemaValue; - if ($isData) { - out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; - $schemaValue = 'schema' + $lvl; - } else { - $schemaValue = $schema; - } - var $rule = this, - $definition = 'definition' + $lvl, - $rDef = $rule.definition, - $closingBraces = ''; - var $compile, $inline, $macro, $ruleValidate, $validateCode; - if ($isData && $rDef.$data) { - $validateCode = 'keywordValidate' + $lvl; - var $validateSchema = $rDef.validateSchema; - out += ' var ' + ($definition) + ' = RULES.custom[\'' + ($keyword) + '\'].definition; var ' + ($validateCode) + ' = ' + ($definition) + '.validate;'; - } else { - $ruleValidate = it.useCustomRule($rule, $schema, it.schema, it); - if (!$ruleValidate) return; - $schemaValue = 'validate.schema' + $schemaPath; - $validateCode = $ruleValidate.code; - $compile = $rDef.compile; - $inline = $rDef.inline; - $macro = $rDef.macro; - } - var $ruleErrs = $validateCode + '.errors', - $i = 'i' + $lvl, - $ruleErr = 'ruleErr' + $lvl, - $asyncKeyword = $rDef.async; - if ($asyncKeyword && !it.async) throw new Error('async keyword in sync schema'); - if (!($inline || $macro)) { - out += '' + ($ruleErrs) + ' = null;'; - } - out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';'; - if ($isData && $rDef.$data) { - $closingBraces += '}'; - out += ' if (' + ($schemaValue) + ' === undefined) { ' + ($valid) + ' = true; } else { '; - if ($validateSchema) { - $closingBraces += '}'; - out += ' ' + ($valid) + ' = ' + ($definition) + '.validateSchema(' + ($schemaValue) + '); if (' + ($valid) + ') { '; - } - } - if ($inline) { - if ($rDef.statements) { - out += ' ' + ($ruleValidate.validate) + ' '; - } else { - out += ' ' + ($valid) + ' = ' + ($ruleValidate.validate) + '; '; - } - } else if ($macro) { - var $it = it.util.copy(it); - var $closingBraces = ''; - $it.level++; - var $nextValid = 'valid' + $it.level; - $it.schema = $ruleValidate.validate; - $it.schemaPath = ''; - var $wasComposite = it.compositeRule; - it.compositeRule = $it.compositeRule = true; - var $code = it.validate($it).replace(/validate\.schema/g, $validateCode); - it.compositeRule = $it.compositeRule = $wasComposite; - out += ' ' + ($code); - } else { - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; - out += ' ' + ($validateCode) + '.call( '; - if (it.opts.passContext) { - out += 'this'; - } else { - out += 'self'; - } - if ($compile || $rDef.schema === false) { - out += ' , ' + ($data) + ' '; - } else { - out += ' , ' + ($schemaValue) + ' , ' + ($data) + ' , validate.schema' + (it.schemaPath) + ' '; - } - out += ' , (dataPath || \'\')'; - if (it.errorPath != '""') { - out += ' + ' + (it.errorPath); - } - var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData', - $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty'; - out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ' , rootData ) '; - var def_callRuleValidate = out; - out = $$outStack.pop(); - if ($rDef.errors === false) { - out += ' ' + ($valid) + ' = '; - if ($asyncKeyword) { - out += 'await '; - } - out += '' + (def_callRuleValidate) + '; '; - } else { - if ($asyncKeyword) { - $ruleErrs = 'customErrors' + $lvl; - out += ' var ' + ($ruleErrs) + ' = null; try { ' + ($valid) + ' = await ' + (def_callRuleValidate) + '; } catch (e) { ' + ($valid) + ' = false; if (e instanceof ValidationError) ' + ($ruleErrs) + ' = e.errors; else throw e; } '; - } else { - out += ' ' + ($ruleErrs) + ' = null; ' + ($valid) + ' = ' + (def_callRuleValidate) + '; '; - } - } - } - if ($rDef.modifying) { - out += ' if (' + ($parentData) + ') ' + ($data) + ' = ' + ($parentData) + '[' + ($parentDataProperty) + '];'; - } - out += '' + ($closingBraces); - if ($rDef.valid) { - if ($breakOnError) { - out += ' if (true) { '; - } - } else { - out += ' if ( '; - if ($rDef.valid === undefined) { - out += ' !'; - if ($macro) { - out += '' + ($nextValid); - } else { - out += '' + ($valid); - } - } else { - out += ' ' + (!$rDef.valid) + ' '; - } - out += ') { '; - $errorKeyword = $rule.keyword; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ($errorKeyword || 'custom') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { keyword: \'' + ($rule.keyword) + '\' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should pass "' + ($rule.keyword) + '" keyword validation\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - var def_customError = out; - out = $$outStack.pop(); - if ($inline) { - if ($rDef.errors) { - if ($rDef.errors != 'full') { - out += ' for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + ' 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) { - out += ' ' + ($nextValid) + ' = true; if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined '; - if ($ownProperties) { - out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($property)) + '\') '; - } - out += ') { '; - $it.schema = $sch; - $it.schemaPath = $schemaPath + it.util.getProperty($property); - $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($property); - out += ' ' + (it.validate($it)) + ' '; - $it.baseId = $currentBaseId; - out += ' } '; - if ($breakOnError) { - out += ' if (' + ($nextValid) + ') { '; - $closingBraces += '}'; - } - } - } - if ($breakOnError) { - out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {'; - } - return out; -} diff --git a/deps/npm/node_modules/ajv/lib/dotjs/enum.js b/deps/npm/node_modules/ajv/lib/dotjs/enum.js deleted file mode 100644 index 90580b9ff7940f..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dotjs/enum.js +++ /dev/null @@ -1,66 +0,0 @@ -'use strict'; -module.exports = function generate_enum(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $data = 'data' + ($dataLvl || ''); - var $valid = 'valid' + $lvl; - var $isData = it.opts.$data && $schema && $schema.$data, - $schemaValue; - if ($isData) { - out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; - $schemaValue = 'schema' + $lvl; - } else { - $schemaValue = $schema; - } - var $i = 'i' + $lvl, - $vSchema = 'schema' + $lvl; - if (!$isData) { - out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + ';'; - } - out += 'var ' + ($valid) + ';'; - if ($isData) { - out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {'; - } - out += '' + ($valid) + ' = false;for (var ' + ($i) + '=0; ' + ($i) + '<' + ($vSchema) + '.length; ' + ($i) + '++) if (equal(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + '])) { ' + ($valid) + ' = true; break; }'; - if ($isData) { - out += ' } '; - } - out += ' if (!' + ($valid) + ') { '; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('enum') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValues: schema' + ($lvl) + ' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should be equal to one of the allowed values\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += ' }'; - if ($breakOnError) { - out += ' else { '; - } - return out; -} diff --git a/deps/npm/node_modules/ajv/lib/dotjs/format.js b/deps/npm/node_modules/ajv/lib/dotjs/format.js deleted file mode 100644 index cd9a5693e70e90..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dotjs/format.js +++ /dev/null @@ -1,150 +0,0 @@ -'use strict'; -module.exports = function generate_format(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $data = 'data' + ($dataLvl || ''); - if (it.opts.format === false) { - if ($breakOnError) { - out += ' if (true) { '; - } - return out; - } - var $isData = it.opts.$data && $schema && $schema.$data, - $schemaValue; - if ($isData) { - out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; - $schemaValue = 'schema' + $lvl; - } else { - $schemaValue = $schema; - } - var $unknownFormats = it.opts.unknownFormats, - $allowUnknown = Array.isArray($unknownFormats); - if ($isData) { - var $format = 'format' + $lvl, - $isObject = 'isObject' + $lvl, - $formatType = 'formatType' + $lvl; - out += ' var ' + ($format) + ' = formats[' + ($schemaValue) + ']; var ' + ($isObject) + ' = typeof ' + ($format) + ' == \'object\' && !(' + ($format) + ' instanceof RegExp) && ' + ($format) + '.validate; var ' + ($formatType) + ' = ' + ($isObject) + ' && ' + ($format) + '.type || \'string\'; if (' + ($isObject) + ') { '; - if (it.async) { - out += ' var async' + ($lvl) + ' = ' + ($format) + '.async; '; - } - out += ' ' + ($format) + ' = ' + ($format) + '.validate; } if ( '; - if ($isData) { - out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'string\') || '; - } - out += ' ('; - if ($unknownFormats != 'ignore') { - out += ' (' + ($schemaValue) + ' && !' + ($format) + ' '; - if ($allowUnknown) { - out += ' && self._opts.unknownFormats.indexOf(' + ($schemaValue) + ') == -1 '; - } - out += ') || '; - } - out += ' (' + ($format) + ' && ' + ($formatType) + ' == \'' + ($ruleType) + '\' && !(typeof ' + ($format) + ' == \'function\' ? '; - if (it.async) { - out += ' (async' + ($lvl) + ' ? await ' + ($format) + '(' + ($data) + ') : ' + ($format) + '(' + ($data) + ')) '; - } else { - out += ' ' + ($format) + '(' + ($data) + ') '; - } - out += ' : ' + ($format) + '.test(' + ($data) + '))))) {'; - } else { - var $format = it.formats[$schema]; - if (!$format) { - if ($unknownFormats == 'ignore') { - it.logger.warn('unknown format "' + $schema + '" ignored in schema at path "' + it.errSchemaPath + '"'); - if ($breakOnError) { - out += ' if (true) { '; - } - return out; - } else if ($allowUnknown && $unknownFormats.indexOf($schema) >= 0) { - if ($breakOnError) { - out += ' if (true) { '; - } - return out; - } else { - throw new Error('unknown format "' + $schema + '" is used in schema at path "' + it.errSchemaPath + '"'); - } - } - var $isObject = typeof $format == 'object' && !($format instanceof RegExp) && $format.validate; - var $formatType = $isObject && $format.type || 'string'; - if ($isObject) { - var $async = $format.async === true; - $format = $format.validate; - } - if ($formatType != $ruleType) { - if ($breakOnError) { - out += ' if (true) { '; - } - return out; - } - if ($async) { - if (!it.async) throw new Error('async format in sync schema'); - var $formatRef = 'formats' + it.util.getProperty($schema) + '.validate'; - out += ' if (!(await ' + ($formatRef) + '(' + ($data) + '))) { '; - } else { - out += ' if (! '; - var $formatRef = 'formats' + it.util.getProperty($schema); - if ($isObject) $formatRef += '.validate'; - if (typeof $format == 'function') { - out += ' ' + ($formatRef) + '(' + ($data) + ') '; - } else { - out += ' ' + ($formatRef) + '.test(' + ($data) + ') '; - } - out += ') { '; - } - } - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('format') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { format: '; - if ($isData) { - out += '' + ($schemaValue); - } else { - out += '' + (it.util.toQuotedString($schema)); - } - out += ' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should match format "'; - if ($isData) { - out += '\' + ' + ($schemaValue) + ' + \''; - } else { - out += '' + (it.util.escapeQuotes($schema)); - } - out += '"\' '; - } - if (it.opts.verbose) { - out += ' , schema: '; - if ($isData) { - out += 'validate.schema' + ($schemaPath); - } else { - out += '' + (it.util.toQuotedString($schema)); - } - out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += ' } '; - if ($breakOnError) { - out += ' else { '; - } - return out; -} diff --git a/deps/npm/node_modules/ajv/lib/dotjs/if.js b/deps/npm/node_modules/ajv/lib/dotjs/if.js deleted file mode 100644 index 94d27ad853836d..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dotjs/if.js +++ /dev/null @@ -1,103 +0,0 @@ -'use strict'; -module.exports = function generate_if(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $data = 'data' + ($dataLvl || ''); - var $valid = 'valid' + $lvl; - var $errs = 'errs__' + $lvl; - var $it = it.util.copy(it); - $it.level++; - var $nextValid = 'valid' + $it.level; - var $thenSch = it.schema['then'], - $elseSch = it.schema['else'], - $thenPresent = $thenSch !== undefined && (it.opts.strictKeywords ? (typeof $thenSch == 'object' && Object.keys($thenSch).length > 0) || $thenSch === false : it.util.schemaHasRules($thenSch, it.RULES.all)), - $elsePresent = $elseSch !== undefined && (it.opts.strictKeywords ? (typeof $elseSch == 'object' && Object.keys($elseSch).length > 0) || $elseSch === false : it.util.schemaHasRules($elseSch, it.RULES.all)), - $currentBaseId = $it.baseId; - if ($thenPresent || $elsePresent) { - var $ifClause; - $it.createErrors = false; - $it.schema = $schema; - $it.schemaPath = $schemaPath; - $it.errSchemaPath = $errSchemaPath; - out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = true; '; - var $wasComposite = it.compositeRule; - it.compositeRule = $it.compositeRule = true; - out += ' ' + (it.validate($it)) + ' '; - $it.baseId = $currentBaseId; - $it.createErrors = true; - out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } '; - it.compositeRule = $it.compositeRule = $wasComposite; - if ($thenPresent) { - out += ' if (' + ($nextValid) + ') { '; - $it.schema = it.schema['then']; - $it.schemaPath = it.schemaPath + '.then'; - $it.errSchemaPath = it.errSchemaPath + '/then'; - out += ' ' + (it.validate($it)) + ' '; - $it.baseId = $currentBaseId; - out += ' ' + ($valid) + ' = ' + ($nextValid) + '; '; - if ($thenPresent && $elsePresent) { - $ifClause = 'ifClause' + $lvl; - out += ' var ' + ($ifClause) + ' = \'then\'; '; - } else { - $ifClause = '\'then\''; - } - out += ' } '; - if ($elsePresent) { - out += ' else { '; - } - } else { - out += ' if (!' + ($nextValid) + ') { '; - } - if ($elsePresent) { - $it.schema = it.schema['else']; - $it.schemaPath = it.schemaPath + '.else'; - $it.errSchemaPath = it.errSchemaPath + '/else'; - out += ' ' + (it.validate($it)) + ' '; - $it.baseId = $currentBaseId; - out += ' ' + ($valid) + ' = ' + ($nextValid) + '; '; - if ($thenPresent && $elsePresent) { - $ifClause = 'ifClause' + $lvl; - out += ' var ' + ($ifClause) + ' = \'else\'; '; - } else { - $ifClause = '\'else\''; - } - out += ' } '; - } - out += ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('if') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { failingKeyword: ' + ($ifClause) + ' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should match "\' + ' + ($ifClause) + ' + \'" schema\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError(vErrors); '; - } else { - out += ' validate.errors = vErrors; return false; '; - } - } - out += ' } '; - if ($breakOnError) { - out += ' else { '; - } - } else { - if ($breakOnError) { - out += ' if (true) { '; - } - } - return out; -} diff --git a/deps/npm/node_modules/ajv/lib/dotjs/index.js b/deps/npm/node_modules/ajv/lib/dotjs/index.js deleted file mode 100644 index 2fb1b00ef69f67..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dotjs/index.js +++ /dev/null @@ -1,33 +0,0 @@ -'use strict'; - -//all requires must be explicit because browserify won't work with dynamic requires -module.exports = { - '$ref': require('./ref'), - allOf: require('./allOf'), - anyOf: require('./anyOf'), - '$comment': require('./comment'), - const: require('./const'), - contains: require('./contains'), - dependencies: require('./dependencies'), - 'enum': require('./enum'), - format: require('./format'), - 'if': require('./if'), - items: require('./items'), - maximum: require('./_limit'), - minimum: require('./_limit'), - maxItems: require('./_limitItems'), - minItems: require('./_limitItems'), - maxLength: require('./_limitLength'), - minLength: require('./_limitLength'), - maxProperties: require('./_limitProperties'), - minProperties: require('./_limitProperties'), - multipleOf: require('./multipleOf'), - not: require('./not'), - oneOf: require('./oneOf'), - pattern: require('./pattern'), - properties: require('./properties'), - propertyNames: require('./propertyNames'), - required: require('./required'), - uniqueItems: require('./uniqueItems'), - validate: require('./validate') -}; diff --git a/deps/npm/node_modules/ajv/lib/dotjs/items.js b/deps/npm/node_modules/ajv/lib/dotjs/items.js deleted file mode 100644 index bee5d67da246f3..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dotjs/items.js +++ /dev/null @@ -1,140 +0,0 @@ -'use strict'; -module.exports = function generate_items(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $data = 'data' + ($dataLvl || ''); - var $valid = 'valid' + $lvl; - var $errs = 'errs__' + $lvl; - var $it = it.util.copy(it); - var $closingBraces = ''; - $it.level++; - var $nextValid = 'valid' + $it.level; - var $idx = 'i' + $lvl, - $dataNxt = $it.dataLevel = it.dataLevel + 1, - $nextData = 'data' + $dataNxt, - $currentBaseId = it.baseId; - out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';'; - if (Array.isArray($schema)) { - var $additionalItems = it.schema.additionalItems; - if ($additionalItems === false) { - out += ' ' + ($valid) + ' = ' + ($data) + '.length <= ' + ($schema.length) + '; '; - var $currErrSchemaPath = $errSchemaPath; - $errSchemaPath = it.errSchemaPath + '/additionalItems'; - out += ' if (!' + ($valid) + ') { '; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('additionalItems') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schema.length) + ' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should NOT have more than ' + ($schema.length) + ' items\' '; - } - if (it.opts.verbose) { - out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += ' } '; - $errSchemaPath = $currErrSchemaPath; - if ($breakOnError) { - $closingBraces += '}'; - out += ' else { '; - } - } - var arr1 = $schema; - if (arr1) { - var $sch, $i = -1, - l1 = arr1.length - 1; - while ($i < l1) { - $sch = arr1[$i += 1]; - if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) { - out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($i) + ') { '; - var $passData = $data + '[' + $i + ']'; - $it.schema = $sch; - $it.schemaPath = $schemaPath + '[' + $i + ']'; - $it.errSchemaPath = $errSchemaPath + '/' + $i; - $it.errorPath = it.util.getPathExpr(it.errorPath, $i, it.opts.jsonPointers, true); - $it.dataPathArr[$dataNxt] = $i; - var $code = it.validate($it); - $it.baseId = $currentBaseId; - if (it.util.varOccurences($code, $nextData) < 2) { - out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' '; - } else { - out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' '; - } - out += ' } '; - if ($breakOnError) { - out += ' if (' + ($nextValid) + ') { '; - $closingBraces += '}'; - } - } - } - } - if (typeof $additionalItems == 'object' && (it.opts.strictKeywords ? (typeof $additionalItems == 'object' && Object.keys($additionalItems).length > 0) || $additionalItems === false : it.util.schemaHasRules($additionalItems, it.RULES.all))) { - $it.schema = $additionalItems; - $it.schemaPath = it.schemaPath + '.additionalItems'; - $it.errSchemaPath = it.errSchemaPath + '/additionalItems'; - out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($schema.length) + ') { for (var ' + ($idx) + ' = ' + ($schema.length) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { '; - $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true); - var $passData = $data + '[' + $idx + ']'; - $it.dataPathArr[$dataNxt] = $idx; - var $code = it.validate($it); - $it.baseId = $currentBaseId; - if (it.util.varOccurences($code, $nextData) < 2) { - out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' '; - } else { - out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' '; - } - if ($breakOnError) { - out += ' if (!' + ($nextValid) + ') break; '; - } - out += ' } } '; - if ($breakOnError) { - out += ' if (' + ($nextValid) + ') { '; - $closingBraces += '}'; - } - } - } else if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) { - $it.schema = $schema; - $it.schemaPath = $schemaPath; - $it.errSchemaPath = $errSchemaPath; - out += ' for (var ' + ($idx) + ' = ' + (0) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { '; - $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true); - var $passData = $data + '[' + $idx + ']'; - $it.dataPathArr[$dataNxt] = $idx; - var $code = it.validate($it); - $it.baseId = $currentBaseId; - if (it.util.varOccurences($code, $nextData) < 2) { - out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' '; - } else { - out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' '; - } - if ($breakOnError) { - out += ' if (!' + ($nextValid) + ') break; '; - } - out += ' }'; - } - if ($breakOnError) { - out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {'; - } - return out; -} diff --git a/deps/npm/node_modules/ajv/lib/dotjs/multipleOf.js b/deps/npm/node_modules/ajv/lib/dotjs/multipleOf.js deleted file mode 100644 index 9d6401b8f723f0..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dotjs/multipleOf.js +++ /dev/null @@ -1,80 +0,0 @@ -'use strict'; -module.exports = function generate_multipleOf(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $data = 'data' + ($dataLvl || ''); - var $isData = it.opts.$data && $schema && $schema.$data, - $schemaValue; - if ($isData) { - out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; - $schemaValue = 'schema' + $lvl; - } else { - $schemaValue = $schema; - } - if (!($isData || typeof $schema == 'number')) { - throw new Error($keyword + ' must be number'); - } - out += 'var division' + ($lvl) + ';if ('; - if ($isData) { - out += ' ' + ($schemaValue) + ' !== undefined && ( typeof ' + ($schemaValue) + ' != \'number\' || '; - } - out += ' (division' + ($lvl) + ' = ' + ($data) + ' / ' + ($schemaValue) + ', '; - if (it.opts.multipleOfPrecision) { - out += ' Math.abs(Math.round(division' + ($lvl) + ') - division' + ($lvl) + ') > 1e-' + (it.opts.multipleOfPrecision) + ' '; - } else { - out += ' division' + ($lvl) + ' !== parseInt(division' + ($lvl) + ') '; - } - out += ' ) '; - if ($isData) { - out += ' ) '; - } - out += ' ) { '; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('multipleOf') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { multipleOf: ' + ($schemaValue) + ' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should be multiple of '; - if ($isData) { - out += '\' + ' + ($schemaValue); - } else { - out += '' + ($schemaValue) + '\''; - } - } - if (it.opts.verbose) { - out += ' , schema: '; - if ($isData) { - out += 'validate.schema' + ($schemaPath); - } else { - out += '' + ($schema); - } - out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += '} '; - if ($breakOnError) { - out += ' else { '; - } - return out; -} diff --git a/deps/npm/node_modules/ajv/lib/dotjs/not.js b/deps/npm/node_modules/ajv/lib/dotjs/not.js deleted file mode 100644 index f50c93785b7129..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dotjs/not.js +++ /dev/null @@ -1,84 +0,0 @@ -'use strict'; -module.exports = function generate_not(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $data = 'data' + ($dataLvl || ''); - var $errs = 'errs__' + $lvl; - var $it = it.util.copy(it); - $it.level++; - var $nextValid = 'valid' + $it.level; - if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) { - $it.schema = $schema; - $it.schemaPath = $schemaPath; - $it.errSchemaPath = $errSchemaPath; - out += ' var ' + ($errs) + ' = errors; '; - var $wasComposite = it.compositeRule; - it.compositeRule = $it.compositeRule = true; - $it.createErrors = false; - var $allErrorsOption; - if ($it.opts.allErrors) { - $allErrorsOption = $it.opts.allErrors; - $it.opts.allErrors = false; - } - out += ' ' + (it.validate($it)) + ' '; - $it.createErrors = true; - if ($allErrorsOption) $it.opts.allErrors = $allErrorsOption; - it.compositeRule = $it.compositeRule = $wasComposite; - out += ' if (' + ($nextValid) + ') { '; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('not') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} '; - if (it.opts.messages !== false) { - out += ' , message: \'should NOT be valid\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } '; - if (it.opts.allErrors) { - out += ' } '; - } - } else { - out += ' var err = '; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('not') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} '; - if (it.opts.messages !== false) { - out += ' , message: \'should NOT be valid\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - if ($breakOnError) { - out += ' if (false) { '; - } - } - return out; -} diff --git a/deps/npm/node_modules/ajv/lib/dotjs/oneOf.js b/deps/npm/node_modules/ajv/lib/dotjs/oneOf.js deleted file mode 100644 index dfe2fd550ef289..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dotjs/oneOf.js +++ /dev/null @@ -1,73 +0,0 @@ -'use strict'; -module.exports = function generate_oneOf(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $data = 'data' + ($dataLvl || ''); - var $valid = 'valid' + $lvl; - var $errs = 'errs__' + $lvl; - var $it = it.util.copy(it); - var $closingBraces = ''; - $it.level++; - var $nextValid = 'valid' + $it.level; - var $currentBaseId = $it.baseId, - $prevValid = 'prevValid' + $lvl, - $passingSchemas = 'passingSchemas' + $lvl; - out += 'var ' + ($errs) + ' = errors , ' + ($prevValid) + ' = false , ' + ($valid) + ' = false , ' + ($passingSchemas) + ' = null; '; - var $wasComposite = it.compositeRule; - it.compositeRule = $it.compositeRule = true; - var arr1 = $schema; - if (arr1) { - var $sch, $i = -1, - l1 = arr1.length - 1; - while ($i < l1) { - $sch = arr1[$i += 1]; - if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) { - $it.schema = $sch; - $it.schemaPath = $schemaPath + '[' + $i + ']'; - $it.errSchemaPath = $errSchemaPath + '/' + $i; - out += ' ' + (it.validate($it)) + ' '; - $it.baseId = $currentBaseId; - } else { - out += ' var ' + ($nextValid) + ' = true; '; - } - if ($i) { - out += ' if (' + ($nextValid) + ' && ' + ($prevValid) + ') { ' + ($valid) + ' = false; ' + ($passingSchemas) + ' = [' + ($passingSchemas) + ', ' + ($i) + ']; } else { '; - $closingBraces += '}'; - } - out += ' if (' + ($nextValid) + ') { ' + ($valid) + ' = ' + ($prevValid) + ' = true; ' + ($passingSchemas) + ' = ' + ($i) + '; }'; - } - } - it.compositeRule = $it.compositeRule = $wasComposite; - out += '' + ($closingBraces) + 'if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('oneOf') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { passingSchemas: ' + ($passingSchemas) + ' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should match exactly one schema in oneOf\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError(vErrors); '; - } else { - out += ' validate.errors = vErrors; return false; '; - } - } - out += '} else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; }'; - if (it.opts.allErrors) { - out += ' } '; - } - return out; -} diff --git a/deps/npm/node_modules/ajv/lib/dotjs/pattern.js b/deps/npm/node_modules/ajv/lib/dotjs/pattern.js deleted file mode 100644 index 1d74d6b04be0ac..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dotjs/pattern.js +++ /dev/null @@ -1,75 +0,0 @@ -'use strict'; -module.exports = function generate_pattern(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $data = 'data' + ($dataLvl || ''); - var $isData = it.opts.$data && $schema && $schema.$data, - $schemaValue; - if ($isData) { - out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; - $schemaValue = 'schema' + $lvl; - } else { - $schemaValue = $schema; - } - var $regexp = $isData ? '(new RegExp(' + $schemaValue + '))' : it.usePattern($schema); - out += 'if ( '; - if ($isData) { - out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'string\') || '; - } - out += ' !' + ($regexp) + '.test(' + ($data) + ') ) { '; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('pattern') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { pattern: '; - if ($isData) { - out += '' + ($schemaValue); - } else { - out += '' + (it.util.toQuotedString($schema)); - } - out += ' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should match pattern "'; - if ($isData) { - out += '\' + ' + ($schemaValue) + ' + \''; - } else { - out += '' + (it.util.escapeQuotes($schema)); - } - out += '"\' '; - } - if (it.opts.verbose) { - out += ' , schema: '; - if ($isData) { - out += 'validate.schema' + ($schemaPath); - } else { - out += '' + (it.util.toQuotedString($schema)); - } - out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += '} '; - if ($breakOnError) { - out += ' else { '; - } - return out; -} diff --git a/deps/npm/node_modules/ajv/lib/dotjs/properties.js b/deps/npm/node_modules/ajv/lib/dotjs/properties.js deleted file mode 100644 index bc5ee55478090b..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dotjs/properties.js +++ /dev/null @@ -1,335 +0,0 @@ -'use strict'; -module.exports = function generate_properties(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $data = 'data' + ($dataLvl || ''); - var $errs = 'errs__' + $lvl; - var $it = it.util.copy(it); - var $closingBraces = ''; - $it.level++; - var $nextValid = 'valid' + $it.level; - var $key = 'key' + $lvl, - $idx = 'idx' + $lvl, - $dataNxt = $it.dataLevel = it.dataLevel + 1, - $nextData = 'data' + $dataNxt, - $dataProperties = 'dataProperties' + $lvl; - var $schemaKeys = Object.keys($schema || {}).filter(notProto), - $pProperties = it.schema.patternProperties || {}, - $pPropertyKeys = Object.keys($pProperties).filter(notProto), - $aProperties = it.schema.additionalProperties, - $someProperties = $schemaKeys.length || $pPropertyKeys.length, - $noAdditional = $aProperties === false, - $additionalIsSchema = typeof $aProperties == 'object' && Object.keys($aProperties).length, - $removeAdditional = it.opts.removeAdditional, - $checkAdditional = $noAdditional || $additionalIsSchema || $removeAdditional, - $ownProperties = it.opts.ownProperties, - $currentBaseId = it.baseId; - var $required = it.schema.required; - if ($required && !(it.opts.$data && $required.$data) && $required.length < it.opts.loopRequired) { - var $requiredHash = it.util.toHash($required); - } - - function notProto(p) { - return p !== '__proto__'; - } - out += 'var ' + ($errs) + ' = errors;var ' + ($nextValid) + ' = true;'; - if ($ownProperties) { - out += ' var ' + ($dataProperties) + ' = undefined;'; - } - if ($checkAdditional) { - if ($ownProperties) { - out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; '; - } else { - out += ' for (var ' + ($key) + ' in ' + ($data) + ') { '; - } - if ($someProperties) { - out += ' var isAdditional' + ($lvl) + ' = !(false '; - if ($schemaKeys.length) { - if ($schemaKeys.length > 8) { - out += ' || validate.schema' + ($schemaPath) + '.hasOwnProperty(' + ($key) + ') '; - } else { - var arr1 = $schemaKeys; - if (arr1) { - var $propertyKey, i1 = -1, - l1 = arr1.length - 1; - while (i1 < l1) { - $propertyKey = arr1[i1 += 1]; - out += ' || ' + ($key) + ' == ' + (it.util.toQuotedString($propertyKey)) + ' '; - } - } - } - } - if ($pPropertyKeys.length) { - var arr2 = $pPropertyKeys; - if (arr2) { - var $pProperty, $i = -1, - l2 = arr2.length - 1; - while ($i < l2) { - $pProperty = arr2[$i += 1]; - out += ' || ' + (it.usePattern($pProperty)) + '.test(' + ($key) + ') '; - } - } - } - out += ' ); if (isAdditional' + ($lvl) + ') { '; - } - if ($removeAdditional == 'all') { - out += ' delete ' + ($data) + '[' + ($key) + ']; '; - } else { - var $currentErrorPath = it.errorPath; - var $additionalProperty = '\' + ' + $key + ' + \''; - if (it.opts._errorDataPathProperty) { - it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers); - } - if ($noAdditional) { - if ($removeAdditional) { - out += ' delete ' + ($data) + '[' + ($key) + ']; '; - } else { - out += ' ' + ($nextValid) + ' = false; '; - var $currErrSchemaPath = $errSchemaPath; - $errSchemaPath = it.errSchemaPath + '/additionalProperties'; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('additionalProperties') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { additionalProperty: \'' + ($additionalProperty) + '\' } '; - if (it.opts.messages !== false) { - out += ' , message: \''; - if (it.opts._errorDataPathProperty) { - out += 'is an invalid additional property'; - } else { - out += 'should NOT have additional properties'; - } - out += '\' '; - } - if (it.opts.verbose) { - out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - $errSchemaPath = $currErrSchemaPath; - if ($breakOnError) { - out += ' break; '; - } - } - } else if ($additionalIsSchema) { - if ($removeAdditional == 'failing') { - out += ' var ' + ($errs) + ' = errors; '; - var $wasComposite = it.compositeRule; - it.compositeRule = $it.compositeRule = true; - $it.schema = $aProperties; - $it.schemaPath = it.schemaPath + '.additionalProperties'; - $it.errSchemaPath = it.errSchemaPath + '/additionalProperties'; - $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers); - var $passData = $data + '[' + $key + ']'; - $it.dataPathArr[$dataNxt] = $key; - var $code = it.validate($it); - $it.baseId = $currentBaseId; - if (it.util.varOccurences($code, $nextData) < 2) { - out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' '; - } else { - out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' '; - } - out += ' if (!' + ($nextValid) + ') { errors = ' + ($errs) + '; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete ' + ($data) + '[' + ($key) + ']; } '; - it.compositeRule = $it.compositeRule = $wasComposite; - } else { - $it.schema = $aProperties; - $it.schemaPath = it.schemaPath + '.additionalProperties'; - $it.errSchemaPath = it.errSchemaPath + '/additionalProperties'; - $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers); - var $passData = $data + '[' + $key + ']'; - $it.dataPathArr[$dataNxt] = $key; - var $code = it.validate($it); - $it.baseId = $currentBaseId; - if (it.util.varOccurences($code, $nextData) < 2) { - out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' '; - } else { - out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' '; - } - if ($breakOnError) { - out += ' if (!' + ($nextValid) + ') break; '; - } - } - } - it.errorPath = $currentErrorPath; - } - if ($someProperties) { - out += ' } '; - } - out += ' } '; - if ($breakOnError) { - out += ' if (' + ($nextValid) + ') { '; - $closingBraces += '}'; - } - } - var $useDefaults = it.opts.useDefaults && !it.compositeRule; - if ($schemaKeys.length) { - var arr3 = $schemaKeys; - if (arr3) { - var $propertyKey, i3 = -1, - l3 = arr3.length - 1; - while (i3 < l3) { - $propertyKey = arr3[i3 += 1]; - var $sch = $schema[$propertyKey]; - if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) { - var $prop = it.util.getProperty($propertyKey), - $passData = $data + $prop, - $hasDefault = $useDefaults && $sch.default !== undefined; - $it.schema = $sch; - $it.schemaPath = $schemaPath + $prop; - $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($propertyKey); - $it.errorPath = it.util.getPath(it.errorPath, $propertyKey, it.opts.jsonPointers); - $it.dataPathArr[$dataNxt] = it.util.toQuotedString($propertyKey); - var $code = it.validate($it); - $it.baseId = $currentBaseId; - if (it.util.varOccurences($code, $nextData) < 2) { - $code = it.util.varReplace($code, $nextData, $passData); - var $useData = $passData; - } else { - var $useData = $nextData; - out += ' var ' + ($nextData) + ' = ' + ($passData) + '; '; - } - if ($hasDefault) { - out += ' ' + ($code) + ' '; - } else { - if ($requiredHash && $requiredHash[$propertyKey]) { - out += ' if ( ' + ($useData) + ' === undefined '; - if ($ownProperties) { - out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') '; - } - out += ') { ' + ($nextValid) + ' = false; '; - var $currentErrorPath = it.errorPath, - $currErrSchemaPath = $errSchemaPath, - $missingProperty = it.util.escapeQuotes($propertyKey); - if (it.opts._errorDataPathProperty) { - it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers); - } - $errSchemaPath = it.errSchemaPath + '/required'; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } '; - if (it.opts.messages !== false) { - out += ' , message: \''; - if (it.opts._errorDataPathProperty) { - out += 'is a required property'; - } else { - out += 'should have required property \\\'' + ($missingProperty) + '\\\''; - } - out += '\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - $errSchemaPath = $currErrSchemaPath; - it.errorPath = $currentErrorPath; - out += ' } else { '; - } else { - if ($breakOnError) { - out += ' if ( ' + ($useData) + ' === undefined '; - if ($ownProperties) { - out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') '; - } - out += ') { ' + ($nextValid) + ' = true; } else { '; - } else { - out += ' if (' + ($useData) + ' !== undefined '; - if ($ownProperties) { - out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') '; - } - out += ' ) { '; - } - } - out += ' ' + ($code) + ' } '; - } - } - if ($breakOnError) { - out += ' if (' + ($nextValid) + ') { '; - $closingBraces += '}'; - } - } - } - } - if ($pPropertyKeys.length) { - var arr4 = $pPropertyKeys; - if (arr4) { - var $pProperty, i4 = -1, - l4 = arr4.length - 1; - while (i4 < l4) { - $pProperty = arr4[i4 += 1]; - var $sch = $pProperties[$pProperty]; - if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) { - $it.schema = $sch; - $it.schemaPath = it.schemaPath + '.patternProperties' + it.util.getProperty($pProperty); - $it.errSchemaPath = it.errSchemaPath + '/patternProperties/' + it.util.escapeFragment($pProperty); - if ($ownProperties) { - out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; '; - } else { - out += ' for (var ' + ($key) + ' in ' + ($data) + ') { '; - } - out += ' if (' + (it.usePattern($pProperty)) + '.test(' + ($key) + ')) { '; - $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers); - var $passData = $data + '[' + $key + ']'; - $it.dataPathArr[$dataNxt] = $key; - var $code = it.validate($it); - $it.baseId = $currentBaseId; - if (it.util.varOccurences($code, $nextData) < 2) { - out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' '; - } else { - out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' '; - } - if ($breakOnError) { - out += ' if (!' + ($nextValid) + ') break; '; - } - out += ' } '; - if ($breakOnError) { - out += ' else ' + ($nextValid) + ' = true; '; - } - out += ' } '; - if ($breakOnError) { - out += ' if (' + ($nextValid) + ') { '; - $closingBraces += '}'; - } - } - } - } - } - if ($breakOnError) { - out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {'; - } - return out; -} diff --git a/deps/npm/node_modules/ajv/lib/dotjs/propertyNames.js b/deps/npm/node_modules/ajv/lib/dotjs/propertyNames.js deleted file mode 100644 index 2a54a08f45e549..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dotjs/propertyNames.js +++ /dev/null @@ -1,81 +0,0 @@ -'use strict'; -module.exports = function generate_propertyNames(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $data = 'data' + ($dataLvl || ''); - var $errs = 'errs__' + $lvl; - var $it = it.util.copy(it); - var $closingBraces = ''; - $it.level++; - var $nextValid = 'valid' + $it.level; - out += 'var ' + ($errs) + ' = errors;'; - if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) { - $it.schema = $schema; - $it.schemaPath = $schemaPath; - $it.errSchemaPath = $errSchemaPath; - var $key = 'key' + $lvl, - $idx = 'idx' + $lvl, - $i = 'i' + $lvl, - $invalidName = '\' + ' + $key + ' + \'', - $dataNxt = $it.dataLevel = it.dataLevel + 1, - $nextData = 'data' + $dataNxt, - $dataProperties = 'dataProperties' + $lvl, - $ownProperties = it.opts.ownProperties, - $currentBaseId = it.baseId; - if ($ownProperties) { - out += ' var ' + ($dataProperties) + ' = undefined; '; - } - if ($ownProperties) { - out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; '; - } else { - out += ' for (var ' + ($key) + ' in ' + ($data) + ') { '; - } - out += ' var startErrs' + ($lvl) + ' = errors; '; - var $passData = $key; - var $wasComposite = it.compositeRule; - it.compositeRule = $it.compositeRule = true; - var $code = it.validate($it); - $it.baseId = $currentBaseId; - if (it.util.varOccurences($code, $nextData) < 2) { - out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' '; - } else { - out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' '; - } - it.compositeRule = $it.compositeRule = $wasComposite; - out += ' if (!' + ($nextValid) + ') { for (var ' + ($i) + '=startErrs' + ($lvl) + '; ' + ($i) + ' 0) || $propertySch === false : it.util.schemaHasRules($propertySch, it.RULES.all)))) { - $required[$required.length] = $property; - } - } - } - } else { - var $required = $schema; - } - } - if ($isData || $required.length) { - var $currentErrorPath = it.errorPath, - $loopRequired = $isData || $required.length >= it.opts.loopRequired, - $ownProperties = it.opts.ownProperties; - if ($breakOnError) { - out += ' var missing' + ($lvl) + '; '; - if ($loopRequired) { - if (!$isData) { - out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; '; - } - var $i = 'i' + $lvl, - $propertyPath = 'schema' + $lvl + '[' + $i + ']', - $missingProperty = '\' + ' + $propertyPath + ' + \''; - if (it.opts._errorDataPathProperty) { - it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers); - } - out += ' var ' + ($valid) + ' = true; '; - if ($isData) { - out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {'; - } - out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { ' + ($valid) + ' = ' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] !== undefined '; - if ($ownProperties) { - out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) '; - } - out += '; if (!' + ($valid) + ') break; } '; - if ($isData) { - out += ' } '; - } - out += ' if (!' + ($valid) + ') { '; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } '; - if (it.opts.messages !== false) { - out += ' , message: \''; - if (it.opts._errorDataPathProperty) { - out += 'is a required property'; - } else { - out += 'should have required property \\\'' + ($missingProperty) + '\\\''; - } - out += '\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += ' } else { '; - } else { - out += ' if ( '; - var arr2 = $required; - if (arr2) { - var $propertyKey, $i = -1, - l2 = arr2.length - 1; - while ($i < l2) { - $propertyKey = arr2[$i += 1]; - if ($i) { - out += ' || '; - } - var $prop = it.util.getProperty($propertyKey), - $useData = $data + $prop; - out += ' ( ( ' + ($useData) + ' === undefined '; - if ($ownProperties) { - out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') '; - } - out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) '; - } - } - out += ') { '; - var $propertyPath = 'missing' + $lvl, - $missingProperty = '\' + ' + $propertyPath + ' + \''; - if (it.opts._errorDataPathProperty) { - it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath; - } - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } '; - if (it.opts.messages !== false) { - out += ' , message: \''; - if (it.opts._errorDataPathProperty) { - out += 'is a required property'; - } else { - out += 'should have required property \\\'' + ($missingProperty) + '\\\''; - } - out += '\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += ' } else { '; - } - } else { - if ($loopRequired) { - if (!$isData) { - out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; '; - } - var $i = 'i' + $lvl, - $propertyPath = 'schema' + $lvl + '[' + $i + ']', - $missingProperty = '\' + ' + $propertyPath + ' + \''; - if (it.opts._errorDataPathProperty) { - it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers); - } - if ($isData) { - out += ' if (' + ($vSchema) + ' && !Array.isArray(' + ($vSchema) + ')) { var err = '; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } '; - if (it.opts.messages !== false) { - out += ' , message: \''; - if (it.opts._errorDataPathProperty) { - out += 'is a required property'; - } else { - out += 'should have required property \\\'' + ($missingProperty) + '\\\''; - } - out += '\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if (' + ($vSchema) + ' !== undefined) { '; - } - out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { if (' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] === undefined '; - if ($ownProperties) { - out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) '; - } - out += ') { var err = '; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } '; - if (it.opts.messages !== false) { - out += ' , message: \''; - if (it.opts._errorDataPathProperty) { - out += 'is a required property'; - } else { - out += 'should have required property \\\'' + ($missingProperty) + '\\\''; - } - out += '\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } '; - if ($isData) { - out += ' } '; - } - } else { - var arr3 = $required; - if (arr3) { - var $propertyKey, i3 = -1, - l3 = arr3.length - 1; - while (i3 < l3) { - $propertyKey = arr3[i3 += 1]; - var $prop = it.util.getProperty($propertyKey), - $missingProperty = it.util.escapeQuotes($propertyKey), - $useData = $data + $prop; - if (it.opts._errorDataPathProperty) { - it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers); - } - out += ' if ( ' + ($useData) + ' === undefined '; - if ($ownProperties) { - out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') '; - } - out += ') { var err = '; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } '; - if (it.opts.messages !== false) { - out += ' , message: \''; - if (it.opts._errorDataPathProperty) { - out += 'is a required property'; - } else { - out += 'should have required property \\\'' + ($missingProperty) + '\\\''; - } - out += '\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } '; - } - } - } - } - it.errorPath = $currentErrorPath; - } else if ($breakOnError) { - out += ' if (true) {'; - } - return out; -} diff --git a/deps/npm/node_modules/ajv/lib/dotjs/uniqueItems.js b/deps/npm/node_modules/ajv/lib/dotjs/uniqueItems.js deleted file mode 100644 index 0736a0ed2333c6..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dotjs/uniqueItems.js +++ /dev/null @@ -1,86 +0,0 @@ -'use strict'; -module.exports = function generate_uniqueItems(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $data = 'data' + ($dataLvl || ''); - var $valid = 'valid' + $lvl; - var $isData = it.opts.$data && $schema && $schema.$data, - $schemaValue; - if ($isData) { - out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; - $schemaValue = 'schema' + $lvl; - } else { - $schemaValue = $schema; - } - if (($schema || $isData) && it.opts.uniqueItems !== false) { - if ($isData) { - out += ' var ' + ($valid) + '; if (' + ($schemaValue) + ' === false || ' + ($schemaValue) + ' === undefined) ' + ($valid) + ' = true; else if (typeof ' + ($schemaValue) + ' != \'boolean\') ' + ($valid) + ' = false; else { '; - } - out += ' var i = ' + ($data) + '.length , ' + ($valid) + ' = true , j; if (i > 1) { '; - var $itemType = it.schema.items && it.schema.items.type, - $typeIsArray = Array.isArray($itemType); - if (!$itemType || $itemType == 'object' || $itemType == 'array' || ($typeIsArray && ($itemType.indexOf('object') >= 0 || $itemType.indexOf('array') >= 0))) { - out += ' outer: for (;i--;) { for (j = i; j--;) { if (equal(' + ($data) + '[i], ' + ($data) + '[j])) { ' + ($valid) + ' = false; break outer; } } } '; - } else { - out += ' var itemIndices = {}, item; for (;i--;) { var item = ' + ($data) + '[i]; '; - var $method = 'checkDataType' + ($typeIsArray ? 's' : ''); - out += ' if (' + (it.util[$method]($itemType, 'item', it.opts.strictNumbers, true)) + ') continue; '; - if ($typeIsArray) { - out += ' if (typeof item == \'string\') item = \'"\' + item; '; - } - out += ' if (typeof itemIndices[item] == \'number\') { ' + ($valid) + ' = false; j = itemIndices[item]; break; } itemIndices[item] = i; } '; - } - out += ' } '; - if ($isData) { - out += ' } '; - } - out += ' if (!' + ($valid) + ') { '; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('uniqueItems') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { i: i, j: j } '; - if (it.opts.messages !== false) { - out += ' , message: \'should NOT have duplicate items (items ## \' + j + \' and \' + i + \' are identical)\' '; - } - if (it.opts.verbose) { - out += ' , schema: '; - if ($isData) { - out += 'validate.schema' + ($schemaPath); - } else { - out += '' + ($schema); - } - out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += ' } '; - if ($breakOnError) { - out += ' else { '; - } - } else { - if ($breakOnError) { - out += ' if (true) { '; - } - } - return out; -} diff --git a/deps/npm/node_modules/ajv/lib/dotjs/validate.js b/deps/npm/node_modules/ajv/lib/dotjs/validate.js deleted file mode 100644 index f295824b9325af..00000000000000 --- a/deps/npm/node_modules/ajv/lib/dotjs/validate.js +++ /dev/null @@ -1,482 +0,0 @@ -'use strict'; -module.exports = function generate_validate(it, $keyword, $ruleType) { - var out = ''; - var $async = it.schema.$async === true, - $refKeywords = it.util.schemaHasRulesExcept(it.schema, it.RULES.all, '$ref'), - $id = it.self._getId(it.schema); - if (it.opts.strictKeywords) { - var $unknownKwd = it.util.schemaUnknownRules(it.schema, it.RULES.keywords); - if ($unknownKwd) { - var $keywordsMsg = 'unknown keyword: ' + $unknownKwd; - if (it.opts.strictKeywords === 'log') it.logger.warn($keywordsMsg); - else throw new Error($keywordsMsg); - } - } - if (it.isTop) { - out += ' var validate = '; - if ($async) { - it.async = true; - out += 'async '; - } - out += 'function(data, dataPath, parentData, parentDataProperty, rootData) { \'use strict\'; '; - if ($id && (it.opts.sourceCode || it.opts.processCode)) { - out += ' ' + ('/\*# sourceURL=' + $id + ' */') + ' '; - } - } - if (typeof it.schema == 'boolean' || !($refKeywords || it.schema.$ref)) { - var $keyword = 'false schema'; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $errorKeyword; - var $data = 'data' + ($dataLvl || ''); - var $valid = 'valid' + $lvl; - if (it.schema === false) { - if (it.isTop) { - $breakOnError = true; - } else { - out += ' var ' + ($valid) + ' = false; '; - } - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ($errorKeyword || 'false schema') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} '; - if (it.opts.messages !== false) { - out += ' , message: \'boolean schema is false\' '; - } - if (it.opts.verbose) { - out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - } else { - if (it.isTop) { - if ($async) { - out += ' return data; '; - } else { - out += ' validate.errors = null; return true; '; - } - } else { - out += ' var ' + ($valid) + ' = true; '; - } - } - if (it.isTop) { - out += ' }; return validate; '; - } - return out; - } - if (it.isTop) { - var $top = it.isTop, - $lvl = it.level = 0, - $dataLvl = it.dataLevel = 0, - $data = 'data'; - it.rootId = it.resolve.fullPath(it.self._getId(it.root.schema)); - it.baseId = it.baseId || it.rootId; - delete it.isTop; - it.dataPathArr = [""]; - if (it.schema.default !== undefined && it.opts.useDefaults && it.opts.strictDefaults) { - var $defaultMsg = 'default is ignored in the schema root'; - if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg); - else throw new Error($defaultMsg); - } - out += ' var vErrors = null; '; - out += ' var errors = 0; '; - out += ' if (rootData === undefined) rootData = data; '; - } else { - var $lvl = it.level, - $dataLvl = it.dataLevel, - $data = 'data' + ($dataLvl || ''); - if ($id) it.baseId = it.resolve.url(it.baseId, $id); - if ($async && !it.async) throw new Error('async schema in sync schema'); - out += ' var errs_' + ($lvl) + ' = errors;'; - } - var $valid = 'valid' + $lvl, - $breakOnError = !it.opts.allErrors, - $closingBraces1 = '', - $closingBraces2 = ''; - var $errorKeyword; - var $typeSchema = it.schema.type, - $typeIsArray = Array.isArray($typeSchema); - if ($typeSchema && it.opts.nullable && it.schema.nullable === true) { - if ($typeIsArray) { - if ($typeSchema.indexOf('null') == -1) $typeSchema = $typeSchema.concat('null'); - } else if ($typeSchema != 'null') { - $typeSchema = [$typeSchema, 'null']; - $typeIsArray = true; - } - } - if ($typeIsArray && $typeSchema.length == 1) { - $typeSchema = $typeSchema[0]; - $typeIsArray = false; - } - if (it.schema.$ref && $refKeywords) { - if (it.opts.extendRefs == 'fail') { - throw new Error('$ref: validation keywords used in schema at path "' + it.errSchemaPath + '" (see option extendRefs)'); - } else if (it.opts.extendRefs !== true) { - $refKeywords = false; - it.logger.warn('$ref: keywords ignored in schema at path "' + it.errSchemaPath + '"'); - } - } - if (it.schema.$comment && it.opts.$comment) { - out += ' ' + (it.RULES.all.$comment.code(it, '$comment')); - } - if ($typeSchema) { - if (it.opts.coerceTypes) { - var $coerceToTypes = it.util.coerceToTypes(it.opts.coerceTypes, $typeSchema); - } - var $rulesGroup = it.RULES.types[$typeSchema]; - if ($coerceToTypes || $typeIsArray || $rulesGroup === true || ($rulesGroup && !$shouldUseGroup($rulesGroup))) { - var $schemaPath = it.schemaPath + '.type', - $errSchemaPath = it.errSchemaPath + '/type'; - var $schemaPath = it.schemaPath + '.type', - $errSchemaPath = it.errSchemaPath + '/type', - $method = $typeIsArray ? 'checkDataTypes' : 'checkDataType'; - out += ' if (' + (it.util[$method]($typeSchema, $data, it.opts.strictNumbers, true)) + ') { '; - if ($coerceToTypes) { - var $dataType = 'dataType' + $lvl, - $coerced = 'coerced' + $lvl; - out += ' var ' + ($dataType) + ' = typeof ' + ($data) + '; var ' + ($coerced) + ' = undefined; '; - if (it.opts.coerceTypes == 'array') { - out += ' if (' + ($dataType) + ' == \'object\' && Array.isArray(' + ($data) + ') && ' + ($data) + '.length == 1) { ' + ($data) + ' = ' + ($data) + '[0]; ' + ($dataType) + ' = typeof ' + ($data) + '; if (' + (it.util.checkDataType(it.schema.type, $data, it.opts.strictNumbers)) + ') ' + ($coerced) + ' = ' + ($data) + '; } '; - } - out += ' if (' + ($coerced) + ' !== undefined) ; '; - var arr1 = $coerceToTypes; - if (arr1) { - var $type, $i = -1, - l1 = arr1.length - 1; - while ($i < l1) { - $type = arr1[$i += 1]; - if ($type == 'string') { - out += ' else if (' + ($dataType) + ' == \'number\' || ' + ($dataType) + ' == \'boolean\') ' + ($coerced) + ' = \'\' + ' + ($data) + '; else if (' + ($data) + ' === null) ' + ($coerced) + ' = \'\'; '; - } else if ($type == 'number' || $type == 'integer') { - out += ' else if (' + ($dataType) + ' == \'boolean\' || ' + ($data) + ' === null || (' + ($dataType) + ' == \'string\' && ' + ($data) + ' && ' + ($data) + ' == +' + ($data) + ' '; - if ($type == 'integer') { - out += ' && !(' + ($data) + ' % 1)'; - } - out += ')) ' + ($coerced) + ' = +' + ($data) + '; '; - } else if ($type == 'boolean') { - out += ' else if (' + ($data) + ' === \'false\' || ' + ($data) + ' === 0 || ' + ($data) + ' === null) ' + ($coerced) + ' = false; else if (' + ($data) + ' === \'true\' || ' + ($data) + ' === 1) ' + ($coerced) + ' = true; '; - } else if ($type == 'null') { - out += ' else if (' + ($data) + ' === \'\' || ' + ($data) + ' === 0 || ' + ($data) + ' === false) ' + ($coerced) + ' = null; '; - } else if (it.opts.coerceTypes == 'array' && $type == 'array') { - out += ' else if (' + ($dataType) + ' == \'string\' || ' + ($dataType) + ' == \'number\' || ' + ($dataType) + ' == \'boolean\' || ' + ($data) + ' == null) ' + ($coerced) + ' = [' + ($data) + ']; '; - } - } - } - out += ' else { '; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ($errorKeyword || 'type') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \''; - if ($typeIsArray) { - out += '' + ($typeSchema.join(",")); - } else { - out += '' + ($typeSchema); - } - out += '\' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should be '; - if ($typeIsArray) { - out += '' + ($typeSchema.join(",")); - } else { - out += '' + ($typeSchema); - } - out += '\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += ' } if (' + ($coerced) + ' !== undefined) { '; - var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData', - $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty'; - out += ' ' + ($data) + ' = ' + ($coerced) + '; '; - if (!$dataLvl) { - out += 'if (' + ($parentData) + ' !== undefined)'; - } - out += ' ' + ($parentData) + '[' + ($parentDataProperty) + '] = ' + ($coerced) + '; } '; - } else { - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ($errorKeyword || 'type') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \''; - if ($typeIsArray) { - out += '' + ($typeSchema.join(",")); - } else { - out += '' + ($typeSchema); - } - out += '\' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should be '; - if ($typeIsArray) { - out += '' + ($typeSchema.join(",")); - } else { - out += '' + ($typeSchema); - } - out += '\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - } - out += ' } '; - } - } - if (it.schema.$ref && !$refKeywords) { - out += ' ' + (it.RULES.all.$ref.code(it, '$ref')) + ' '; - if ($breakOnError) { - out += ' } if (errors === '; - if ($top) { - out += '0'; - } else { - out += 'errs_' + ($lvl); - } - out += ') { '; - $closingBraces2 += '}'; - } - } else { - var arr2 = it.RULES; - if (arr2) { - var $rulesGroup, i2 = -1, - l2 = arr2.length - 1; - while (i2 < l2) { - $rulesGroup = arr2[i2 += 1]; - if ($shouldUseGroup($rulesGroup)) { - if ($rulesGroup.type) { - out += ' if (' + (it.util.checkDataType($rulesGroup.type, $data, it.opts.strictNumbers)) + ') { '; - } - if (it.opts.useDefaults) { - if ($rulesGroup.type == 'object' && it.schema.properties) { - var $schema = it.schema.properties, - $schemaKeys = Object.keys($schema); - var arr3 = $schemaKeys; - if (arr3) { - var $propertyKey, i3 = -1, - l3 = arr3.length - 1; - while (i3 < l3) { - $propertyKey = arr3[i3 += 1]; - var $sch = $schema[$propertyKey]; - if ($sch.default !== undefined) { - var $passData = $data + it.util.getProperty($propertyKey); - if (it.compositeRule) { - if (it.opts.strictDefaults) { - var $defaultMsg = 'default is ignored for: ' + $passData; - if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg); - else throw new Error($defaultMsg); - } - } else { - out += ' if (' + ($passData) + ' === undefined '; - if (it.opts.useDefaults == 'empty') { - out += ' || ' + ($passData) + ' === null || ' + ($passData) + ' === \'\' '; - } - out += ' ) ' + ($passData) + ' = '; - if (it.opts.useDefaults == 'shared') { - out += ' ' + (it.useDefault($sch.default)) + ' '; - } else { - out += ' ' + (JSON.stringify($sch.default)) + ' '; - } - out += '; '; - } - } - } - } - } else if ($rulesGroup.type == 'array' && Array.isArray(it.schema.items)) { - var arr4 = it.schema.items; - if (arr4) { - var $sch, $i = -1, - l4 = arr4.length - 1; - while ($i < l4) { - $sch = arr4[$i += 1]; - if ($sch.default !== undefined) { - var $passData = $data + '[' + $i + ']'; - if (it.compositeRule) { - if (it.opts.strictDefaults) { - var $defaultMsg = 'default is ignored for: ' + $passData; - if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg); - else throw new Error($defaultMsg); - } - } else { - out += ' if (' + ($passData) + ' === undefined '; - if (it.opts.useDefaults == 'empty') { - out += ' || ' + ($passData) + ' === null || ' + ($passData) + ' === \'\' '; - } - out += ' ) ' + ($passData) + ' = '; - if (it.opts.useDefaults == 'shared') { - out += ' ' + (it.useDefault($sch.default)) + ' '; - } else { - out += ' ' + (JSON.stringify($sch.default)) + ' '; - } - out += '; '; - } - } - } - } - } - } - var arr5 = $rulesGroup.rules; - if (arr5) { - var $rule, i5 = -1, - l5 = arr5.length - 1; - while (i5 < l5) { - $rule = arr5[i5 += 1]; - if ($shouldUseRule($rule)) { - var $code = $rule.code(it, $rule.keyword, $rulesGroup.type); - if ($code) { - out += ' ' + ($code) + ' '; - if ($breakOnError) { - $closingBraces1 += '}'; - } - } - } - } - } - if ($breakOnError) { - out += ' ' + ($closingBraces1) + ' '; - $closingBraces1 = ''; - } - if ($rulesGroup.type) { - out += ' } '; - if ($typeSchema && $typeSchema === $rulesGroup.type && !$coerceToTypes) { - out += ' else { '; - var $schemaPath = it.schemaPath + '.type', - $errSchemaPath = it.errSchemaPath + '/type'; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ($errorKeyword || 'type') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \''; - if ($typeIsArray) { - out += '' + ($typeSchema.join(",")); - } else { - out += '' + ($typeSchema); - } - out += '\' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should be '; - if ($typeIsArray) { - out += '' + ($typeSchema.join(",")); - } else { - out += '' + ($typeSchema); - } - out += '\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += ' } '; - } - } - if ($breakOnError) { - out += ' if (errors === '; - if ($top) { - out += '0'; - } else { - out += 'errs_' + ($lvl); - } - out += ') { '; - $closingBraces2 += '}'; - } - } - } - } - } - if ($breakOnError) { - out += ' ' + ($closingBraces2) + ' '; - } - if ($top) { - if ($async) { - out += ' if (errors === 0) return data; '; - out += ' else throw new ValidationError(vErrors); '; - } else { - out += ' validate.errors = vErrors; '; - out += ' return errors === 0; '; - } - out += ' }; return validate;'; - } else { - out += ' var ' + ($valid) + ' = errors === errs_' + ($lvl) + ';'; - } - - function $shouldUseGroup($rulesGroup) { - var rules = $rulesGroup.rules; - for (var i = 0; i < rules.length; i++) - if ($shouldUseRule(rules[i])) return true; - } - - function $shouldUseRule($rule) { - return it.schema[$rule.keyword] !== undefined || ($rule.implements && $ruleImplementsSomeKeyword($rule)); - } - - function $ruleImplementsSomeKeyword($rule) { - var impl = $rule.implements; - for (var i = 0; i < impl.length; i++) - if (it.schema[impl[i]] !== undefined) return true; - } - return out; -} diff --git a/deps/npm/node_modules/ajv/lib/keyword.js b/deps/npm/node_modules/ajv/lib/keyword.js deleted file mode 100644 index 06da9a2dfbe5cc..00000000000000 --- a/deps/npm/node_modules/ajv/lib/keyword.js +++ /dev/null @@ -1,146 +0,0 @@ -'use strict'; - -var IDENTIFIER = /^[a-z_$][a-z0-9_$-]*$/i; -var customRuleCode = require('./dotjs/custom'); -var definitionSchema = require('./definition_schema'); - -module.exports = { - add: addKeyword, - get: getKeyword, - remove: removeKeyword, - validate: validateKeyword -}; - - -/** - * Define custom keyword - * @this Ajv - * @param {String} keyword custom keyword, should be unique (including different from all standard, custom and macro keywords). - * @param {Object} definition keyword definition object with properties `type` (type(s) which the keyword applies to), `validate` or `compile`. - * @return {Ajv} this for method chaining - */ -function addKeyword(keyword, definition) { - /* jshint validthis: true */ - /* eslint no-shadow: 0 */ - var RULES = this.RULES; - if (RULES.keywords[keyword]) - throw new Error('Keyword ' + keyword + ' is already defined'); - - if (!IDENTIFIER.test(keyword)) - throw new Error('Keyword ' + keyword + ' is not a valid identifier'); - - if (definition) { - this.validateKeyword(definition, true); - - var dataType = definition.type; - if (Array.isArray(dataType)) { - for (var i=0; i ../ajv-dist/bower.json - cd ../ajv-dist - - if [[ `git status --porcelain` ]]; then - echo "Changes detected. Updating master branch..." - git add -A - git commit -m "updated by travis build #$TRAVIS_BUILD_NUMBER" - git push --quiet origin master > /dev/null 2>&1 - fi - - echo "Publishing tag..." - - git tag $TRAVIS_TAG - git push --tags > /dev/null 2>&1 - - echo "Done" -fi diff --git a/deps/npm/node_modules/ajv/scripts/travis-gh-pages b/deps/npm/node_modules/ajv/scripts/travis-gh-pages deleted file mode 100644 index b3d4f3d0f489d4..00000000000000 --- a/deps/npm/node_modules/ajv/scripts/travis-gh-pages +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -set -e - -if [[ "$TRAVIS_BRANCH" == "master" && "$TRAVIS_PULL_REQUEST" == "false" && $TRAVIS_JOB_NUMBER =~ ".3" ]]; then - git diff --name-only $TRAVIS_COMMIT_RANGE | grep -qE '\.md$|^LICENSE$|travis-gh-pages$' && { - rm -rf ../gh-pages - git clone -b gh-pages --single-branch https://${GITHUB_TOKEN}@github.com/ajv-validator/ajv.git ../gh-pages - mkdir -p ../gh-pages/_source - cp *.md ../gh-pages/_source - cp LICENSE ../gh-pages/_source - currentDir=$(pwd) - cd ../gh-pages - $currentDir/node_modules/.bin/gh-pages-generator - # remove logo from README - sed -i -E "s/]+ajv_logo[^>]+>//" index.md - git config user.email "$GIT_USER_EMAIL" - git config user.name "$GIT_USER_NAME" - git add . - git commit -am "updated by travis build #$TRAVIS_BUILD_NUMBER" - git push --quiet origin gh-pages > /dev/null 2>&1 - } -fi diff --git a/deps/npm/node_modules/ansi-regex/index.js b/deps/npm/node_modules/ansi-regex/index.js deleted file mode 100644 index b9574ed7e82013..00000000000000 --- a/deps/npm/node_modules/ansi-regex/index.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -module.exports = function () { - return /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-PRZcf-nqry=><]/g; -}; diff --git a/deps/npm/node_modules/ansi-regex/license b/deps/npm/node_modules/ansi-regex/license deleted file mode 100644 index 654d0bfe943437..00000000000000 --- a/deps/npm/node_modules/ansi-regex/license +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -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/deps/npm/node_modules/ansi-regex/package.json b/deps/npm/node_modules/ansi-regex/package.json deleted file mode 100644 index eb44fb5c1fe8bd..00000000000000 --- a/deps/npm/node_modules/ansi-regex/package.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "name": "ansi-regex", - "version": "2.1.1", - "description": "Regular expression for matching ANSI escape codes", - "license": "MIT", - "repository": "chalk/ansi-regex", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "maintainers": [ - "Sindre Sorhus (sindresorhus.com)", - "Joshua Appelman (jbnicolai.com)", - "JD Ballard (github.com/qix-)" - ], - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "xo && ava --verbose", - "view-supported": "node fixtures/view-codes.js" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "command-line", - "text", - "regex", - "regexp", - "re", - "match", - "test", - "find", - "pattern" - ], - "devDependencies": { - "ava": "0.17.0", - "xo": "0.16.0" - }, - "xo": { - "rules": { - "guard-for-in": 0, - "no-loop-func": 0 - } - } -} diff --git a/deps/npm/node_modules/ansi-regex/readme.md b/deps/npm/node_modules/ansi-regex/readme.md deleted file mode 100644 index 6a928edf0f6b08..00000000000000 --- a/deps/npm/node_modules/ansi-regex/readme.md +++ /dev/null @@ -1,39 +0,0 @@ -# ansi-regex [![Build Status](https://travis-ci.org/chalk/ansi-regex.svg?branch=master)](https://travis-ci.org/chalk/ansi-regex) - -> Regular expression for matching [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code) - - -## Install - -``` -$ npm install --save ansi-regex -``` - - -## Usage - -```js -const ansiRegex = require('ansi-regex'); - -ansiRegex().test('\u001b[4mcake\u001b[0m'); -//=> true - -ansiRegex().test('cake'); -//=> false - -'\u001b[4mcake\u001b[0m'.match(ansiRegex()); -//=> ['\u001b[4m', '\u001b[0m'] -``` - -## FAQ - -### Why do you test for codes not in the ECMA 48 standard? - -Some of the codes we run as a test are codes that we acquired finding various lists of non-standard or manufacturer specific codes. If I recall correctly, we test for both standard and non-standard codes, as most of them follow the same or similar format and can be safely matched in strings without the risk of removing actual string content. There are a few non-standard control codes that do not follow the traditional format (i.e. they end in numbers) thus forcing us to exclude them from the test because we cannot reliably match them. - -On the historical side, those ECMA standards were established in the early 90's whereas the VT100, for example, was designed in the mid/late 70's. At that point in time, control codes were still pretty ungoverned and engineers used them for a multitude of things, namely to activate hardware ports that may have been proprietary. Somewhere else you see a similar 'anarchy' of codes is in the x86 architecture for processors; there are a ton of "interrupts" that can mean different things on certain brands of processors, most of which have been phased out. - - -## License - -MIT © [Sindre Sorhus](http://sindresorhus.com) diff --git a/deps/npm/node_modules/ansi-styles/index.d.ts b/deps/npm/node_modules/ansi-styles/index.d.ts deleted file mode 100644 index 44a907e580f105..00000000000000 --- a/deps/npm/node_modules/ansi-styles/index.d.ts +++ /dev/null @@ -1,345 +0,0 @@ -declare type CSSColor = - | 'aliceblue' - | 'antiquewhite' - | 'aqua' - | 'aquamarine' - | 'azure' - | 'beige' - | 'bisque' - | 'black' - | 'blanchedalmond' - | 'blue' - | 'blueviolet' - | 'brown' - | 'burlywood' - | 'cadetblue' - | 'chartreuse' - | 'chocolate' - | 'coral' - | 'cornflowerblue' - | 'cornsilk' - | 'crimson' - | 'cyan' - | 'darkblue' - | 'darkcyan' - | 'darkgoldenrod' - | 'darkgray' - | 'darkgreen' - | 'darkgrey' - | 'darkkhaki' - | 'darkmagenta' - | 'darkolivegreen' - | 'darkorange' - | 'darkorchid' - | 'darkred' - | 'darksalmon' - | 'darkseagreen' - | 'darkslateblue' - | 'darkslategray' - | 'darkslategrey' - | 'darkturquoise' - | 'darkviolet' - | 'deeppink' - | 'deepskyblue' - | 'dimgray' - | 'dimgrey' - | 'dodgerblue' - | 'firebrick' - | 'floralwhite' - | 'forestgreen' - | 'fuchsia' - | 'gainsboro' - | 'ghostwhite' - | 'gold' - | 'goldenrod' - | 'gray' - | 'green' - | 'greenyellow' - | 'grey' - | 'honeydew' - | 'hotpink' - | 'indianred' - | 'indigo' - | 'ivory' - | 'khaki' - | 'lavender' - | 'lavenderblush' - | 'lawngreen' - | 'lemonchiffon' - | 'lightblue' - | 'lightcoral' - | 'lightcyan' - | 'lightgoldenrodyellow' - | 'lightgray' - | 'lightgreen' - | 'lightgrey' - | 'lightpink' - | 'lightsalmon' - | 'lightseagreen' - | 'lightskyblue' - | 'lightslategray' - | 'lightslategrey' - | 'lightsteelblue' - | 'lightyellow' - | 'lime' - | 'limegreen' - | 'linen' - | 'magenta' - | 'maroon' - | 'mediumaquamarine' - | 'mediumblue' - | 'mediumorchid' - | 'mediumpurple' - | 'mediumseagreen' - | 'mediumslateblue' - | 'mediumspringgreen' - | 'mediumturquoise' - | 'mediumvioletred' - | 'midnightblue' - | 'mintcream' - | 'mistyrose' - | 'moccasin' - | 'navajowhite' - | 'navy' - | 'oldlace' - | 'olive' - | 'olivedrab' - | 'orange' - | 'orangered' - | 'orchid' - | 'palegoldenrod' - | 'palegreen' - | 'paleturquoise' - | 'palevioletred' - | 'papayawhip' - | 'peachpuff' - | 'peru' - | 'pink' - | 'plum' - | 'powderblue' - | 'purple' - | 'rebeccapurple' - | 'red' - | 'rosybrown' - | 'royalblue' - | 'saddlebrown' - | 'salmon' - | 'sandybrown' - | 'seagreen' - | 'seashell' - | 'sienna' - | 'silver' - | 'skyblue' - | 'slateblue' - | 'slategray' - | 'slategrey' - | 'snow' - | 'springgreen' - | 'steelblue' - | 'tan' - | 'teal' - | 'thistle' - | 'tomato' - | 'turquoise' - | 'violet' - | 'wheat' - | 'white' - | 'whitesmoke' - | 'yellow' - | 'yellowgreen'; - -declare namespace ansiStyles { - interface ColorConvert { - /** - The RGB color space. - - @param red - (`0`-`255`) - @param green - (`0`-`255`) - @param blue - (`0`-`255`) - */ - rgb(red: number, green: number, blue: number): string; - - /** - The RGB HEX color space. - - @param hex - A hexadecimal string containing RGB data. - */ - hex(hex: string): string; - - /** - @param keyword - A CSS color name. - */ - keyword(keyword: CSSColor): string; - - /** - The HSL color space. - - @param hue - (`0`-`360`) - @param saturation - (`0`-`100`) - @param lightness - (`0`-`100`) - */ - hsl(hue: number, saturation: number, lightness: number): string; - - /** - The HSV color space. - - @param hue - (`0`-`360`) - @param saturation - (`0`-`100`) - @param value - (`0`-`100`) - */ - hsv(hue: number, saturation: number, value: number): string; - - /** - The HSV color space. - - @param hue - (`0`-`360`) - @param whiteness - (`0`-`100`) - @param blackness - (`0`-`100`) - */ - hwb(hue: number, whiteness: number, blackness: number): string; - - /** - Use a [4-bit unsigned number](https://en.wikipedia.org/wiki/ANSI_escape_code#3/4-bit) to set text color. - */ - ansi(ansi: number): string; - - /** - Use an [8-bit unsigned number](https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit) to set text color. - */ - ansi256(ansi: number): string; - } - - interface CSPair { - /** - The ANSI terminal control sequence for starting this style. - */ - readonly open: string; - - /** - The ANSI terminal control sequence for ending this style. - */ - readonly close: string; - } - - interface ColorBase { - readonly ansi: ColorConvert; - readonly ansi256: ColorConvert; - readonly ansi16m: ColorConvert; - - /** - The ANSI terminal control sequence for ending this color. - */ - readonly close: string; - } - - interface Modifier { - /** - Resets the current color chain. - */ - readonly reset: CSPair; - - /** - Make text bold. - */ - readonly bold: CSPair; - - /** - Emitting only a small amount of light. - */ - readonly dim: CSPair; - - /** - Make text italic. (Not widely supported) - */ - readonly italic: CSPair; - - /** - Make text underline. (Not widely supported) - */ - readonly underline: CSPair; - - /** - Inverse background and foreground colors. - */ - readonly inverse: CSPair; - - /** - Prints the text, but makes it invisible. - */ - readonly hidden: CSPair; - - /** - Puts a horizontal line through the center of the text. (Not widely supported) - */ - readonly strikethrough: CSPair; - } - - interface ForegroundColor { - readonly black: CSPair; - readonly red: CSPair; - readonly green: CSPair; - readonly yellow: CSPair; - readonly blue: CSPair; - readonly cyan: CSPair; - readonly magenta: CSPair; - readonly white: CSPair; - - /** - Alias for `blackBright`. - */ - readonly gray: CSPair; - - /** - Alias for `blackBright`. - */ - readonly grey: CSPair; - - readonly blackBright: CSPair; - readonly redBright: CSPair; - readonly greenBright: CSPair; - readonly yellowBright: CSPair; - readonly blueBright: CSPair; - readonly cyanBright: CSPair; - readonly magentaBright: CSPair; - readonly whiteBright: CSPair; - } - - interface BackgroundColor { - readonly bgBlack: CSPair; - readonly bgRed: CSPair; - readonly bgGreen: CSPair; - readonly bgYellow: CSPair; - readonly bgBlue: CSPair; - readonly bgCyan: CSPair; - readonly bgMagenta: CSPair; - readonly bgWhite: CSPair; - - /** - Alias for `bgBlackBright`. - */ - readonly bgGray: CSPair; - - /** - Alias for `bgBlackBright`. - */ - readonly bgGrey: CSPair; - - readonly bgBlackBright: CSPair; - readonly bgRedBright: CSPair; - readonly bgGreenBright: CSPair; - readonly bgYellowBright: CSPair; - readonly bgBlueBright: CSPair; - readonly bgCyanBright: CSPair; - readonly bgMagentaBright: CSPair; - readonly bgWhiteBright: CSPair; - } -} - -declare const ansiStyles: { - readonly modifier: ansiStyles.Modifier; - readonly color: ansiStyles.ForegroundColor & ansiStyles.ColorBase; - readonly bgColor: ansiStyles.BackgroundColor & ansiStyles.ColorBase; - readonly codes: ReadonlyMap; -} & ansiStyles.BackgroundColor & ansiStyles.ForegroundColor & ansiStyles.Modifier; - -export = ansiStyles; diff --git a/deps/npm/node_modules/ansi-styles/index.js b/deps/npm/node_modules/ansi-styles/index.js deleted file mode 100644 index 5d82581a13f990..00000000000000 --- a/deps/npm/node_modules/ansi-styles/index.js +++ /dev/null @@ -1,163 +0,0 @@ -'use strict'; - -const wrapAnsi16 = (fn, offset) => (...args) => { - const code = fn(...args); - return `\u001B[${code + offset}m`; -}; - -const wrapAnsi256 = (fn, offset) => (...args) => { - const code = fn(...args); - return `\u001B[${38 + offset};5;${code}m`; -}; - -const wrapAnsi16m = (fn, offset) => (...args) => { - const rgb = fn(...args); - return `\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`; -}; - -const ansi2ansi = n => n; -const rgb2rgb = (r, g, b) => [r, g, b]; - -const setLazyProperty = (object, property, get) => { - Object.defineProperty(object, property, { - get: () => { - const value = get(); - - Object.defineProperty(object, property, { - value, - enumerable: true, - configurable: true - }); - - return value; - }, - enumerable: true, - configurable: true - }); -}; - -/** @type {typeof import('color-convert')} */ -let colorConvert; -const makeDynamicStyles = (wrap, targetSpace, identity, isBackground) => { - if (colorConvert === undefined) { - colorConvert = require('color-convert'); - } - - const offset = isBackground ? 10 : 0; - const styles = {}; - - for (const [sourceSpace, suite] of Object.entries(colorConvert)) { - const name = sourceSpace === 'ansi16' ? 'ansi' : sourceSpace; - if (sourceSpace === targetSpace) { - styles[name] = wrap(identity, offset); - } else if (typeof suite === 'object') { - styles[name] = wrap(suite[targetSpace], offset); - } - } - - return styles; -}; - -function assembleStyles() { - const codes = new Map(); - const styles = { - modifier: { - reset: [0, 0], - // 21 isn't widely supported and 22 does the same thing - bold: [1, 22], - dim: [2, 22], - italic: [3, 23], - underline: [4, 24], - inverse: [7, 27], - hidden: [8, 28], - strikethrough: [9, 29] - }, - color: { - black: [30, 39], - red: [31, 39], - green: [32, 39], - yellow: [33, 39], - blue: [34, 39], - magenta: [35, 39], - cyan: [36, 39], - white: [37, 39], - - // Bright color - blackBright: [90, 39], - redBright: [91, 39], - greenBright: [92, 39], - yellowBright: [93, 39], - blueBright: [94, 39], - magentaBright: [95, 39], - cyanBright: [96, 39], - whiteBright: [97, 39] - }, - bgColor: { - bgBlack: [40, 49], - bgRed: [41, 49], - bgGreen: [42, 49], - bgYellow: [43, 49], - bgBlue: [44, 49], - bgMagenta: [45, 49], - bgCyan: [46, 49], - bgWhite: [47, 49], - - // Bright color - bgBlackBright: [100, 49], - bgRedBright: [101, 49], - bgGreenBright: [102, 49], - bgYellowBright: [103, 49], - bgBlueBright: [104, 49], - bgMagentaBright: [105, 49], - bgCyanBright: [106, 49], - bgWhiteBright: [107, 49] - } - }; - - // Alias bright black as gray (and grey) - styles.color.gray = styles.color.blackBright; - styles.bgColor.bgGray = styles.bgColor.bgBlackBright; - styles.color.grey = styles.color.blackBright; - styles.bgColor.bgGrey = styles.bgColor.bgBlackBright; - - for (const [groupName, group] of Object.entries(styles)) { - for (const [styleName, style] of Object.entries(group)) { - styles[styleName] = { - open: `\u001B[${style[0]}m`, - close: `\u001B[${style[1]}m` - }; - - group[styleName] = styles[styleName]; - - codes.set(style[0], style[1]); - } - - Object.defineProperty(styles, groupName, { - value: group, - enumerable: false - }); - } - - Object.defineProperty(styles, 'codes', { - value: codes, - enumerable: false - }); - - styles.color.close = '\u001B[39m'; - styles.bgColor.close = '\u001B[49m'; - - setLazyProperty(styles.color, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, false)); - setLazyProperty(styles.color, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, false)); - setLazyProperty(styles.color, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, false)); - setLazyProperty(styles.bgColor, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, true)); - setLazyProperty(styles.bgColor, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, true)); - setLazyProperty(styles.bgColor, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, true)); - - return styles; -} - -// Make the export immutable -Object.defineProperty(module, 'exports', { - enumerable: true, - get: assembleStyles -}); diff --git a/deps/npm/node_modules/ansi-styles/license b/deps/npm/node_modules/ansi-styles/license deleted file mode 100644 index e7af2f77107d73..00000000000000 --- a/deps/npm/node_modules/ansi-styles/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -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/deps/npm/node_modules/ansi-styles/package.json b/deps/npm/node_modules/ansi-styles/package.json deleted file mode 100644 index 75393284d7e474..00000000000000 --- a/deps/npm/node_modules/ansi-styles/package.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "name": "ansi-styles", - "version": "4.3.0", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": "chalk/ansi-styles", - "funding": "https://github.com/chalk/ansi-styles?sponsor=1", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "xo && ava && tsd", - "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "color-convert": "^2.0.1" - }, - "devDependencies": { - "@types/color-convert": "^1.9.0", - "ava": "^2.3.0", - "svg-term-cli": "^2.1.1", - "tsd": "^0.11.0", - "xo": "^0.25.3" - } -} diff --git a/deps/npm/node_modules/ansi-styles/readme.md b/deps/npm/node_modules/ansi-styles/readme.md deleted file mode 100644 index 24883de808be6a..00000000000000 --- a/deps/npm/node_modules/ansi-styles/readme.md +++ /dev/null @@ -1,152 +0,0 @@ -# ansi-styles [![Build Status](https://travis-ci.org/chalk/ansi-styles.svg?branch=master)](https://travis-ci.org/chalk/ansi-styles) - -> [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors_and_Styles) for styling strings in the terminal - -You probably want the higher-level [chalk](https://github.com/chalk/chalk) module for styling your strings. - - - -## Install - -``` -$ npm install ansi-styles -``` - -## Usage - -```js -const style = require('ansi-styles'); - -console.log(`${style.green.open}Hello world!${style.green.close}`); - - -// Color conversion between 16/256/truecolor -// NOTE: If conversion goes to 16 colors or 256 colors, the original color -// may be degraded to fit that color palette. This means terminals -// that do not support 16 million colors will best-match the -// original color. -console.log(style.bgColor.ansi.hsl(120, 80, 72) + 'Hello world!' + style.bgColor.close); -console.log(style.color.ansi256.rgb(199, 20, 250) + 'Hello world!' + style.color.close); -console.log(style.color.ansi16m.hex('#abcdef') + 'Hello world!' + style.color.close); -``` - -## API - -Each style has an `open` and `close` property. - -## Styles - -### Modifiers - -- `reset` -- `bold` -- `dim` -- `italic` *(Not widely supported)* -- `underline` -- `inverse` -- `hidden` -- `strikethrough` *(Not widely supported)* - -### Colors - -- `black` -- `red` -- `green` -- `yellow` -- `blue` -- `magenta` -- `cyan` -- `white` -- `blackBright` (alias: `gray`, `grey`) -- `redBright` -- `greenBright` -- `yellowBright` -- `blueBright` -- `magentaBright` -- `cyanBright` -- `whiteBright` - -### Background colors - -- `bgBlack` -- `bgRed` -- `bgGreen` -- `bgYellow` -- `bgBlue` -- `bgMagenta` -- `bgCyan` -- `bgWhite` -- `bgBlackBright` (alias: `bgGray`, `bgGrey`) -- `bgRedBright` -- `bgGreenBright` -- `bgYellowBright` -- `bgBlueBright` -- `bgMagentaBright` -- `bgCyanBright` -- `bgWhiteBright` - -## Advanced usage - -By default, you get a map of styles, but the styles are also available as groups. They are non-enumerable so they don't show up unless you access them explicitly. This makes it easier to expose only a subset in a higher-level module. - -- `style.modifier` -- `style.color` -- `style.bgColor` - -###### Example - -```js -console.log(style.color.green.open); -``` - -Raw escape codes (i.e. without the CSI escape prefix `\u001B[` and render mode postfix `m`) are available under `style.codes`, which returns a `Map` with the open codes as keys and close codes as values. - -###### Example - -```js -console.log(style.codes.get(36)); -//=> 39 -``` - -## [256 / 16 million (TrueColor) support](https://gist.github.com/XVilka/8346728) - -`ansi-styles` uses the [`color-convert`](https://github.com/Qix-/color-convert) package to allow for converting between various colors and ANSI escapes, with support for 256 and 16 million colors. - -The following color spaces from `color-convert` are supported: - -- `rgb` -- `hex` -- `keyword` -- `hsl` -- `hsv` -- `hwb` -- `ansi` -- `ansi256` - -To use these, call the associated conversion function with the intended output, for example: - -```js -style.color.ansi.rgb(100, 200, 15); // RGB to 16 color ansi foreground code -style.bgColor.ansi.rgb(100, 200, 15); // RGB to 16 color ansi background code - -style.color.ansi256.hsl(120, 100, 60); // HSL to 256 color ansi foreground code -style.bgColor.ansi256.hsl(120, 100, 60); // HSL to 256 color ansi foreground code - -style.color.ansi16m.hex('#C0FFEE'); // Hex (RGB) to 16 million color foreground code -style.bgColor.ansi16m.hex('#C0FFEE'); // Hex (RGB) to 16 million color background code -``` - -## Related - -- [ansi-escapes](https://github.com/sindresorhus/ansi-escapes) - ANSI escape codes for manipulating the terminal - -## Maintainers - -- [Sindre Sorhus](https://github.com/sindresorhus) -- [Josh Junon](https://github.com/qix-) - -## For enterprise - -Available as part of the Tidelift Subscription. - -The maintainers of `ansi-styles` and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-ansi-styles?utm_source=npm-ansi-styles&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) diff --git a/deps/npm/node_modules/ansicolors/LICENSE b/deps/npm/node_modules/ansicolors/LICENSE deleted file mode 100644 index 41702c5043478f..00000000000000 --- a/deps/npm/node_modules/ansicolors/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -Copyright 2013 Thorsten Lorenz. -All rights reserved. - -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/deps/npm/node_modules/ansicolors/README.md b/deps/npm/node_modules/ansicolors/README.md deleted file mode 100644 index f3e9d070b25a99..00000000000000 --- a/deps/npm/node_modules/ansicolors/README.md +++ /dev/null @@ -1,62 +0,0 @@ -# ansicolors [![build status](https://secure.travis-ci.org/thlorenz/ansicolors.png)](http://next.travis-ci.org/thlorenz/ansicolors) - -Functions that surround a string with ansicolor codes so it prints in color. - -In case you need styles, like `bold`, have a look at [ansistyles](https://github.com/thlorenz/ansistyles). - -## Installation - - npm install ansicolors - -## Usage - -```js -var colors = require('ansicolors'); - -// foreground colors -var redHerring = colors.red('herring'); -var blueMoon = colors.blue('moon'); -var brighBlueMoon = colors.brightBlue('moon'); - -console.log(redHerring); // this will print 'herring' in red -console.log(blueMoon); // this 'moon' in blue -console.log(brightBlueMoon); // I think you got the idea - -// background colors -console.log(colors.bgYellow('printed on yellow background')); -console.log(colors.bgBrightBlue('printed on bright blue background')); - -// mixing background and foreground colors -// below two lines have same result (order in which bg and fg are combined doesn't matter) -console.log(colors.bgYellow(colors.blue('printed on yellow background in blue'))); -console.log(colors.blue(colors.bgYellow('printed on yellow background in blue'))); -``` - -## Advanced API - -**ansicolors** allows you to access opening and closing escape sequences separately. - -```js -var colors = require('ansicolors'); - -function inspect(obj, depth) { - return require('util').inspect(obj, false, depth || 5, true); -} - -console.log('open blue', inspect(colors.open.blue)); -console.log('close bgBlack', inspect(colors.close.bgBlack)); - -// => open blue '\u001b[34m' -// close bgBlack '\u001b[49m' -``` - -## Tests - -Look at the [tests](https://github.com/thlorenz/ansicolors/blob/master/test/ansicolors.js) to see more examples and/or run them via: - - npm explore ansicolors && npm test - -## Alternatives - -**ansicolors** tries to meet simple use cases with a very simple API. However, if you need a more powerful ansi formatting tool, -I'd suggest to look at the [features](https://github.com/TooTallNate/ansi.js#features) of the [ansi module](https://github.com/TooTallNate/ansi.js). diff --git a/deps/npm/node_modules/ansicolors/ansicolors.js b/deps/npm/node_modules/ansicolors/ansicolors.js deleted file mode 100644 index 16b2586f6b1637..00000000000000 --- a/deps/npm/node_modules/ansicolors/ansicolors.js +++ /dev/null @@ -1,65 +0,0 @@ -// ColorCodes explained: http://www.termsys.demon.co.uk/vtansi.htm -'use strict'; - -var colorNums = { - white : 37 - , black : 30 - , blue : 34 - , cyan : 36 - , green : 32 - , magenta : 35 - , red : 31 - , yellow : 33 - , brightBlack : 90 - , brightRed : 91 - , brightGreen : 92 - , brightYellow : 93 - , brightBlue : 94 - , brightMagenta : 95 - , brightCyan : 96 - , brightWhite : 97 - } - , backgroundColorNums = { - bgBlack : 40 - , bgRed : 41 - , bgGreen : 42 - , bgYellow : 43 - , bgBlue : 44 - , bgMagenta : 45 - , bgCyan : 46 - , bgWhite : 47 - , bgBrightBlack : 100 - , bgBrightRed : 101 - , bgBrightGreen : 102 - , bgBrightYellow : 103 - , bgBrightBlue : 104 - , bgBrightMagenta : 105 - , bgBrightCyan : 106 - , bgBrightWhite : 107 - } - , open = {} - , close = {} - , colors = {} - ; - -Object.keys(colorNums).forEach(function (k) { - var o = open[k] = '\u001b[' + colorNums[k] + 'm'; - var c = close[k] = '\u001b[39m'; - - colors[k] = function (s) { - return o + s + c; - }; -}); - -Object.keys(backgroundColorNums).forEach(function (k) { - var o = open[k] = '\u001b[' + backgroundColorNums[k] + 'm'; - var c = close[k] = '\u001b[49m'; - - colors[k] = function (s) { - return o + s + c; - }; -}); - -module.exports = colors; -colors.open = open; -colors.close = close; diff --git a/deps/npm/node_modules/ansicolors/package.json b/deps/npm/node_modules/ansicolors/package.json deleted file mode 100644 index cda0c75b5850a1..00000000000000 --- a/deps/npm/node_modules/ansicolors/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "ansicolors", - "version": "0.3.2", - "description": "Functions that surround a string with ansicolor codes so it prints in color.", - "main": "ansicolors.js", - "scripts": { - "test": "node test/*.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/thlorenz/ansicolors.git" - }, - "keywords": [ - "ansi", - "colors", - "highlight", - "string" - ], - "author": "Thorsten Lorenz (thlorenz.com)", - "license": "MIT", - "readmeFilename": "README.md", - "gitHead": "858847ca28e8b360d9b70eee0592700fa2ab087d" -} diff --git a/deps/npm/node_modules/ansicolors/test/ansicolors.js b/deps/npm/node_modules/ansicolors/test/ansicolors.js deleted file mode 100644 index 494539305d3acf..00000000000000 --- a/deps/npm/node_modules/ansicolors/test/ansicolors.js +++ /dev/null @@ -1,71 +0,0 @@ -'use strict'; - -var assert = require('assert') - , colors = require('..') - , open = colors.open - , close = colors.close - -console.log('Foreground colors ..'); - -assert.equal(colors.white('printed in white'), '\u001b[37mprinted in white\u001b[39m'); - -assert.equal(colors.black('printed in black'), '\u001b[30mprinted in black\u001b[39m'); -assert.equal(colors.brightBlack('printed in bright black'), '\u001b[90mprinted in bright black\u001b[39m'); - -assert.equal(colors.green('printed in green'), '\u001b[32mprinted in green\u001b[39m'); -assert.equal(colors.brightGreen('printed in bright green'), '\u001b[92mprinted in bright green\u001b[39m'); - -assert.equal(colors.red('printed in red'), '\u001b[31mprinted in red\u001b[39m'); -assert.equal(colors.brightRed('printed in bright red'), '\u001b[91mprinted in bright red\u001b[39m'); - -console.log('OK'); - -console.log('Background colors ..'); - -assert.equal( - colors.bgBlack('printed with black background') - , '\u001b[40mprinted with black background\u001b[49m' -); - -assert.equal( - colors.bgYellow('printed with yellow background') - , '\u001b[43mprinted with yellow background\u001b[49m' -); -assert.equal( - colors.bgBrightYellow('printed with bright yellow background') - , '\u001b[103mprinted with bright yellow background\u001b[49m' -); - -assert.equal( - colors.bgWhite('printed with white background') - , '\u001b[47mprinted with white background\u001b[49m' -); - -console.log('OK'); - -console.log('Mixing background and foreground colors ..'); - -assert.equal( - colors.blue(colors.bgYellow('printed in blue with yellow background')) - , '\u001b[34m\u001b[43mprinted in blue with yellow background\u001b[49m\u001b[39m' -); -assert.equal( - colors.bgYellow(colors.blue('printed in blue with yellow background again')) - , '\u001b[43m\u001b[34mprinted in blue with yellow background again\u001b[39m\u001b[49m' -); - -console.log('OK'); - -console.log('Open ...'); - -assert.equal(open.black, '\u001b[30m'); -assert.equal(open.bgYellow, '\u001b[43m'); - -console.log('OK'); - -console.log('Close ...'); - -assert.equal(close.black, '\u001b[39m'); -assert.equal(close.bgYellow, '\u001b[49m'); - -console.log('OK'); diff --git a/deps/npm/node_modules/ansistyles/LICENSE b/deps/npm/node_modules/ansistyles/LICENSE deleted file mode 100644 index 41702c5043478f..00000000000000 --- a/deps/npm/node_modules/ansistyles/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -Copyright 2013 Thorsten Lorenz. -All rights reserved. - -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/deps/npm/node_modules/ansistyles/README.md b/deps/npm/node_modules/ansistyles/README.md deleted file mode 100644 index e39b8dfb6d827c..00000000000000 --- a/deps/npm/node_modules/ansistyles/README.md +++ /dev/null @@ -1,71 +0,0 @@ -# ansistyles [![build status](https://secure.travis-ci.org/thlorenz/ansistyles.png)](http://next.travis-ci.org/thlorenz/ansistyles) - -Functions that surround a string with ansistyle codes so it prints in style. - -In case you need colors, like `red`, have a look at [ansicolors](https://github.com/thlorenz/ansicolors). - -## Installation - - npm install ansistyles - -## Usage - -```js -var styles = require('ansistyles'); - -console.log(styles.bright('hello world')); // prints hello world in 'bright' white -console.log(styles.underline('hello world')); // prints hello world underlined -console.log(styles.inverse('hello world')); // prints hello world black on white -``` - -## Combining with ansicolors - -Get the ansicolors module: - - npm install ansicolors - -```js -var styles = require('ansistyles') - , colors = require('ansicolors'); - - console.log( - // prints hello world underlined in blue on a green background - colors.bgGreen(colors.blue(styles.underline('hello world'))) - ); -``` - -## Tests - -Look at the [tests](https://github.com/thlorenz/ansistyles/blob/master/test/ansistyles.js) to see more examples and/or run them via: - - npm explore ansistyles && npm test - -## More Styles - -As you can see from [here](https://github.com/thlorenz/ansistyles/blob/master/ansistyles.js#L4-L15), more styles are available, -but didn't have any effect on the terminals that I tested on Mac Lion and Ubuntu Linux. - -I included them for completeness, but didn't show them in the examples because they seem to have no effect. - -### reset - -A style reset function is also included, please note however that this is not nestable. - -Therefore the below only underlines `hell` only, but not `world`. - -```js -console.log(styles.underline('hell' + styles.reset('o') + ' world')); -``` - -It is essentially the same as: - -```js -console.log(styles.underline('hell') + styles.reset('') + 'o world'); -``` - - - -## Alternatives - -**ansistyles** tries to meet simple use cases with a very simple API. However, if you need a more powerful ansi formatting tool, -I'd suggest to look at the [features](https://github.com/TooTallNate/ansi.js#features) of the [ansi module](https://github.com/TooTallNate/ansi.js). diff --git a/deps/npm/node_modules/ansistyles/ansistyles.js b/deps/npm/node_modules/ansistyles/ansistyles.js deleted file mode 100644 index 5b8788c0f94194..00000000000000 --- a/deps/npm/node_modules/ansistyles/ansistyles.js +++ /dev/null @@ -1,38 +0,0 @@ -'use strict'; - -/* - * Info: http://www.termsys.demon.co.uk/vtansi.htm#colors - * Following caveats - * bright - brightens the color (bold-blue is same as brigthtBlue) - * dim - nothing on Mac or Linux - * italic - nothing on Mac or Linux - * underline - underlines string - * blink - nothing on Mac or linux - * inverse - background becomes foreground and vice versa - * - * In summary, the only styles that work are: - * - bright, underline and inverse - * - the others are only included for completeness - */ - -var styleNums = { - reset : [0, 22] - , bright : [1, 22] - , dim : [2, 22] - , italic : [3, 23] - , underline : [4, 24] - , blink : [5, 25] - , inverse : [7, 27] - } - , styles = {} - ; - -Object.keys(styleNums).forEach(function (k) { - styles[k] = function (s) { - var open = styleNums[k][0] - , close = styleNums[k][1]; - return '\u001b[' + open + 'm' + s + '\u001b[' + close + 'm'; - }; -}); - -module.exports = styles; diff --git a/deps/npm/node_modules/ansistyles/package.json b/deps/npm/node_modules/ansistyles/package.json deleted file mode 100644 index 2fe1f4da4fffaa..00000000000000 --- a/deps/npm/node_modules/ansistyles/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "ansistyles", - "version": "0.1.3", - "description": "Functions that surround a string with ansistyle codes so it prints in style.", - "main": "ansistyles.js", - "scripts": { - "test": "node test/ansistyles.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/thlorenz/ansistyles.git" - }, - "keywords": [ - "ansi", - "style", - "terminal", - "console" - ], - "author": "Thorsten Lorenz (thlorenz.com)", - "license": "MIT", - "readmeFilename": "README.md", - "gitHead": "27bf1bc65231bcc7fd109bf13b13601b51f8cd04" -} diff --git a/deps/npm/node_modules/ansistyles/test/ansistyles.js b/deps/npm/node_modules/ansistyles/test/ansistyles.js deleted file mode 100644 index f769bf803b2095..00000000000000 --- a/deps/npm/node_modules/ansistyles/test/ansistyles.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; -/*jshint asi: true */ -var assert = require('assert') - , styles = require('../') - -function inspect(obj, depth) { - console.log(require('util').inspect(obj, false, depth || 5, true)); -} - -assert.equal(styles.reset('reset'), '\u001b[0mreset\u001b[22m', 'reset') -assert.equal(styles.underline('underlined'), '\u001b[4munderlined\u001b[24m', 'underline') -assert.equal(styles.bright('bright'), '\u001b[1mbright\u001b[22m', 'bright') -assert.equal(styles.inverse('inversed'), '\u001b[7minversed\u001b[27m', 'inverse') - -console.log('OK'); diff --git a/deps/npm/node_modules/aproba/CHANGELOG.md b/deps/npm/node_modules/aproba/CHANGELOG.md deleted file mode 100644 index bab30ecb7e625d..00000000000000 --- a/deps/npm/node_modules/aproba/CHANGELOG.md +++ /dev/null @@ -1,4 +0,0 @@ -2.0.0 - * Drop support for 0.10 and 0.12. They haven't been in travis but still, - since we _know_ we'll break with them now it's only polite to do a - major bump. diff --git a/deps/npm/node_modules/aproba/LICENSE b/deps/npm/node_modules/aproba/LICENSE deleted file mode 100644 index f4be44d881b2d9..00000000000000 --- a/deps/npm/node_modules/aproba/LICENSE +++ /dev/null @@ -1,14 +0,0 @@ -Copyright (c) 2015, Rebecca Turner - -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/deps/npm/node_modules/aproba/README.md b/deps/npm/node_modules/aproba/README.md deleted file mode 100644 index 0bfc594c56a372..00000000000000 --- a/deps/npm/node_modules/aproba/README.md +++ /dev/null @@ -1,94 +0,0 @@ -aproba -====== - -A ridiculously light-weight function argument validator - -``` -var validate = require("aproba") - -function myfunc(a, b, c) { - // `a` must be a string, `b` a number, `c` a function - validate('SNF', arguments) // [a,b,c] is also valid -} - -myfunc('test', 23, function () {}) // ok -myfunc(123, 23, function () {}) // type error -myfunc('test', 23) // missing arg error -myfunc('test', 23, function () {}, true) // too many args error - -``` - -Valid types are: - -| type | description -| :--: | :---------- -| * | matches any type -| A | `Array.isArray` OR an `arguments` object -| S | typeof == string -| N | typeof == number -| F | typeof == function -| O | typeof == object and not type A and not type E -| B | typeof == boolean -| E | `instanceof Error` OR `null` **(special: see below)** -| Z | == `null` - -Validation failures throw one of three exception types, distinguished by a -`code` property of `EMISSINGARG`, `EINVALIDTYPE` or `ETOOMANYARGS`. - -If you pass in an invalid type then it will throw with a code of -`EUNKNOWNTYPE`. - -If an **error** argument is found and is not null then the remaining -arguments are optional. That is, if you say `ESO` then that's like using a -non-magical `E` in: `E|ESO|ZSO`. - -### But I have optional arguments?! - -You can provide more than one signature by separating them with pipes `|`. -If any signature matches the arguments then they'll be considered valid. - -So for example, say you wanted to write a signature for -`fs.createWriteStream`. The docs for it describe it thusly: - -``` -fs.createWriteStream(path[, options]) -``` - -This would be a signature of `SO|S`. That is, a string and and object, or -just a string. - -Now, if you read the full `fs` docs, you'll see that actually path can ALSO -be a buffer. And options can be a string, that is: -``` -path | -options | -``` - -To reproduce this you have to fully enumerate all of the possible -combinations and that implies a signature of `SO|SS|OO|OS|S|O`. The -awkwardness is a feature: It reminds you of the complexity you're adding to -your API when you do this sort of thing. - - -### Browser support - -This has no dependencies and should work in browsers, though you'll have -noisier stack traces. - -### Why this exists - -I wanted a very simple argument validator. It needed to do two things: - -1. Be more concise and easier to use than assertions - -2. Not encourage an infinite bikeshed of DSLs - -This is why types are specified by a single character and there's no such -thing as an optional argument. - -This is not intended to validate user data. This is specifically about -asserting the interface of your functions. - -If you need greater validation, I encourage you to write them by hand or -look elsewhere. - diff --git a/deps/npm/node_modules/aproba/index.js b/deps/npm/node_modules/aproba/index.js deleted file mode 100644 index fd947481ba5575..00000000000000 --- a/deps/npm/node_modules/aproba/index.js +++ /dev/null @@ -1,105 +0,0 @@ -'use strict' -module.exports = validate - -function isArguments (thingy) { - return thingy != null && typeof thingy === 'object' && thingy.hasOwnProperty('callee') -} - -const types = { - '*': {label: 'any', check: () => true}, - A: {label: 'array', check: _ => Array.isArray(_) || isArguments(_)}, - S: {label: 'string', check: _ => typeof _ === 'string'}, - N: {label: 'number', check: _ => typeof _ === 'number'}, - F: {label: 'function', check: _ => typeof _ === 'function'}, - O: {label: 'object', check: _ => typeof _ === 'object' && _ != null && !types.A.check(_) && !types.E.check(_)}, - B: {label: 'boolean', check: _ => typeof _ === 'boolean'}, - E: {label: 'error', check: _ => _ instanceof Error}, - Z: {label: 'null', check: _ => _ == null} -} - -function addSchema (schema, arity) { - const group = arity[schema.length] = arity[schema.length] || [] - if (group.indexOf(schema) === -1) group.push(schema) -} - -function validate (rawSchemas, args) { - if (arguments.length !== 2) throw wrongNumberOfArgs(['SA'], arguments.length) - if (!rawSchemas) throw missingRequiredArg(0, 'rawSchemas') - if (!args) throw missingRequiredArg(1, 'args') - if (!types.S.check(rawSchemas)) throw invalidType(0, ['string'], rawSchemas) - if (!types.A.check(args)) throw invalidType(1, ['array'], args) - const schemas = rawSchemas.split('|') - const arity = {} - - schemas.forEach(schema => { - for (let ii = 0; ii < schema.length; ++ii) { - const type = schema[ii] - if (!types[type]) throw unknownType(ii, type) - } - if (/E.*E/.test(schema)) throw moreThanOneError(schema) - addSchema(schema, arity) - if (/E/.test(schema)) { - addSchema(schema.replace(/E.*$/, 'E'), arity) - addSchema(schema.replace(/E/, 'Z'), arity) - if (schema.length === 1) addSchema('', arity) - } - }) - let matching = arity[args.length] - if (!matching) { - throw wrongNumberOfArgs(Object.keys(arity), args.length) - } - for (let ii = 0; ii < args.length; ++ii) { - let newMatching = matching.filter(schema => { - const type = schema[ii] - const typeCheck = types[type].check - return typeCheck(args[ii]) - }) - if (!newMatching.length) { - const labels = matching.map(_ => types[_[ii]].label).filter(_ => _ != null) - throw invalidType(ii, labels, args[ii]) - } - matching = newMatching - } -} - -function missingRequiredArg (num) { - return newException('EMISSINGARG', 'Missing required argument #' + (num + 1)) -} - -function unknownType (num, type) { - return newException('EUNKNOWNTYPE', 'Unknown type ' + type + ' in argument #' + (num + 1)) -} - -function invalidType (num, expectedTypes, value) { - let valueType - Object.keys(types).forEach(typeCode => { - if (types[typeCode].check(value)) valueType = types[typeCode].label - }) - return newException('EINVALIDTYPE', 'Argument #' + (num + 1) + ': Expected ' + - englishList(expectedTypes) + ' but got ' + valueType) -} - -function englishList (list) { - return list.join(', ').replace(/, ([^,]+)$/, ' or $1') -} - -function wrongNumberOfArgs (expected, got) { - const english = englishList(expected) - const args = expected.every(ex => ex.length === 1) - ? 'argument' - : 'arguments' - return newException('EWRONGARGCOUNT', 'Expected ' + english + ' ' + args + ' but got ' + got) -} - -function moreThanOneError (schema) { - return newException('ETOOMANYERRORTYPES', - 'Only one error type per argument signature is allowed, more than one found in "' + schema + '"') -} - -function newException (code, msg) { - const err = new Error(msg) - err.code = code - /* istanbul ignore else */ - if (Error.captureStackTrace) Error.captureStackTrace(err, validate) - return err -} diff --git a/deps/npm/node_modules/aproba/package.json b/deps/npm/node_modules/aproba/package.json deleted file mode 100644 index d2212d30d8eddf..00000000000000 --- a/deps/npm/node_modules/aproba/package.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "aproba", - "version": "2.0.0", - "description": "A ridiculously light-weight argument validator (now browser friendly)", - "main": "index.js", - "directories": { - "test": "test" - }, - "dependencies": {}, - "devDependencies": { - "standard": "^11.0.1", - "tap": "^12.0.1" - }, - "files": [ - "index.js" - ], - "scripts": { - "pretest": "standard", - "test": "tap --100 -J test/*.js" - }, - "repository": { - "type": "git", - "url": "https://github.com/iarna/aproba" - }, - "keywords": [ - "argument", - "validate" - ], - "author": "Rebecca Turner ", - "license": "ISC", - "bugs": { - "url": "https://github.com/iarna/aproba/issues" - }, - "homepage": "https://github.com/iarna/aproba" -} diff --git a/deps/npm/node_modules/archy/.travis.yml b/deps/npm/node_modules/archy/.travis.yml deleted file mode 100644 index 895dbd36234210..00000000000000 --- a/deps/npm/node_modules/archy/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - 0.6 - - 0.8 diff --git a/deps/npm/node_modules/archy/LICENSE b/deps/npm/node_modules/archy/LICENSE deleted file mode 100644 index ee27ba4b4412b0..00000000000000 --- a/deps/npm/node_modules/archy/LICENSE +++ /dev/null @@ -1,18 +0,0 @@ -This software is released under the MIT license: - -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/deps/npm/node_modules/archy/README.markdown b/deps/npm/node_modules/archy/README.markdown deleted file mode 100644 index ef7a5cf34be1f3..00000000000000 --- a/deps/npm/node_modules/archy/README.markdown +++ /dev/null @@ -1,88 +0,0 @@ -# archy - -Render nested hierarchies `npm ls` style with unicode pipes. - -[![browser support](http://ci.testling.com/substack/node-archy.png)](http://ci.testling.com/substack/node-archy) - -[![build status](https://secure.travis-ci.org/substack/node-archy.png)](http://travis-ci.org/substack/node-archy) - -# example - -``` js -var archy = require('archy'); -var s = archy({ - label : 'beep', - nodes : [ - 'ity', - { - label : 'boop', - nodes : [ - { - label : 'o_O', - nodes : [ - { - label : 'oh', - nodes : [ 'hello', 'puny' ] - }, - 'human' - ] - }, - 'party\ntime!' - ] - } - ] -}); -console.log(s); -``` - -output - -``` -beep -├── ity -└─┬ boop - ├─┬ o_O - │ ├─┬ oh - │ │ ├── hello - │ │ └── puny - │ └── human - └── party - time! -``` - -# methods - -var archy = require('archy') - -## archy(obj, prefix='', opts={}) - -Return a string representation of `obj` with unicode pipe characters like how -`npm ls` looks. - -`obj` should be a tree of nested objects with `'label'` and `'nodes'` fields. -`'label'` is a string of text to display at a node level and `'nodes'` is an -array of the descendents of the current node. - -If a node is a string, that string will be used as the `'label'` and an empty -array of `'nodes'` will be used. - -`prefix` gets prepended to all the lines and is used by the algorithm to -recursively update. - -If `'label'` has newlines they will be indented at the present indentation level -with the current prefix. - -To disable unicode results in favor of all-ansi output set `opts.unicode` to -`false`. - -# install - -With [npm](http://npmjs.org) do: - -``` -npm install archy -``` - -# license - -MIT diff --git a/deps/npm/node_modules/archy/examples/beep.js b/deps/npm/node_modules/archy/examples/beep.js deleted file mode 100644 index 9c0704797c80c1..00000000000000 --- a/deps/npm/node_modules/archy/examples/beep.js +++ /dev/null @@ -1,24 +0,0 @@ -var archy = require('../'); -var s = archy({ - label : 'beep', - nodes : [ - 'ity', - { - label : 'boop', - nodes : [ - { - label : 'o_O', - nodes : [ - { - label : 'oh', - nodes : [ 'hello', 'puny' ] - }, - 'human' - ] - }, - 'party\ntime!' - ] - } - ] -}); -console.log(s); diff --git a/deps/npm/node_modules/archy/examples/multi_line.js b/deps/npm/node_modules/archy/examples/multi_line.js deleted file mode 100644 index 8afdfada9102fe..00000000000000 --- a/deps/npm/node_modules/archy/examples/multi_line.js +++ /dev/null @@ -1,25 +0,0 @@ -var archy = require('../'); - -var s = archy({ - label : 'beep\none\ntwo', - nodes : [ - 'ity', - { - label : 'boop', - nodes : [ - { - label : 'o_O\nwheee', - nodes : [ - { - label : 'oh', - nodes : [ 'hello', 'puny\nmeat' ] - }, - 'creature' - ] - }, - 'party\ntime!' - ] - } - ] -}); -console.log(s); diff --git a/deps/npm/node_modules/archy/index.js b/deps/npm/node_modules/archy/index.js deleted file mode 100644 index 869d64e6537a25..00000000000000 --- a/deps/npm/node_modules/archy/index.js +++ /dev/null @@ -1,35 +0,0 @@ -module.exports = function archy (obj, prefix, opts) { - if (prefix === undefined) prefix = ''; - if (!opts) opts = {}; - var chr = function (s) { - var chars = { - '│' : '|', - '└' : '`', - '├' : '+', - '─' : '-', - '┬' : '-' - }; - return opts.unicode === false ? chars[s] : s; - }; - - if (typeof obj === 'string') obj = { label : obj }; - - var nodes = obj.nodes || []; - var lines = (obj.label || '').split('\n'); - var splitter = '\n' + prefix + (nodes.length ? chr('│') : ' ') + ' '; - - return prefix - + lines.join(splitter) + '\n' - + nodes.map(function (node, ix) { - var last = ix === nodes.length - 1; - var more = node.nodes && node.nodes.length; - var prefix_ = prefix + (last ? ' ' : chr('│')) + ' '; - - return prefix - + (last ? chr('└') : chr('├')) + chr('─') - + (more ? chr('┬') : chr('─')) + ' ' - + archy(node, prefix_, opts).slice(prefix.length + 2) - ; - }).join('') - ; -}; diff --git a/deps/npm/node_modules/archy/package.json b/deps/npm/node_modules/archy/package.json deleted file mode 100644 index 0ce3149fef5567..00000000000000 --- a/deps/npm/node_modules/archy/package.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name" : "archy", - "version" : "1.0.0", - "description" : "render nested hierarchies `npm ls` style with unicode pipes", - "main" : "index.js", - "devDependencies" : { - "tap" : "~0.3.3", - "tape" : "~0.1.1" - }, - "scripts" : { - "test" : "tap test" - }, - "testling" : { - "files" : "test/*.js", - "browsers" : { - "iexplore" : [ "6.0", "7.0", "8.0", "9.0" ], - "chrome" : [ "20.0" ], - "firefox" : [ "10.0", "15.0" ], - "safari" : [ "5.1" ], - "opera" : [ "12.0" ] - } - }, - "repository" : { - "type" : "git", - "url" : "http://github.com/substack/node-archy.git" - }, - "keywords" : [ - "hierarchy", - "npm ls", - "unicode", - "pretty", - "print" - ], - "author" : { - "name" : "James Halliday", - "email" : "mail@substack.net", - "url" : "http://substack.net" - }, - "license" : "MIT" -} diff --git a/deps/npm/node_modules/archy/test/beep.js b/deps/npm/node_modules/archy/test/beep.js deleted file mode 100644 index 4ea74f9cee4390..00000000000000 --- a/deps/npm/node_modules/archy/test/beep.js +++ /dev/null @@ -1,40 +0,0 @@ -var test = require('tape'); -var archy = require('../'); - -test('beep', function (t) { - var s = archy({ - label : 'beep', - nodes : [ - 'ity', - { - label : 'boop', - nodes : [ - { - label : 'o_O', - nodes : [ - { - label : 'oh', - nodes : [ 'hello', 'puny' ] - }, - 'human' - ] - }, - 'party!' - ] - } - ] - }); - t.equal(s, [ - 'beep', - '├── ity', - '└─┬ boop', - ' ├─┬ o_O', - ' │ ├─┬ oh', - ' │ │ ├── hello', - ' │ │ └── puny', - ' │ └── human', - ' └── party!', - '' - ].join('\n')); - t.end(); -}); diff --git a/deps/npm/node_modules/archy/test/multi_line.js b/deps/npm/node_modules/archy/test/multi_line.js deleted file mode 100644 index 2cf2154d8a31b6..00000000000000 --- a/deps/npm/node_modules/archy/test/multi_line.js +++ /dev/null @@ -1,45 +0,0 @@ -var test = require('tape'); -var archy = require('../'); - -test('multi-line', function (t) { - var s = archy({ - label : 'beep\none\ntwo', - nodes : [ - 'ity', - { - label : 'boop', - nodes : [ - { - label : 'o_O\nwheee', - nodes : [ - { - label : 'oh', - nodes : [ 'hello', 'puny\nmeat' ] - }, - 'creature' - ] - }, - 'party\ntime!' - ] - } - ] - }); - t.equal(s, [ - 'beep', - '│ one', - '│ two', - '├── ity', - '└─┬ boop', - ' ├─┬ o_O', - ' │ │ wheee', - ' │ ├─┬ oh', - ' │ │ ├── hello', - ' │ │ └── puny', - ' │ │ meat', - ' │ └── creature', - ' └── party', - ' time!', - '' - ].join('\n')); - t.end(); -}); diff --git a/deps/npm/node_modules/archy/test/non_unicode.js b/deps/npm/node_modules/archy/test/non_unicode.js deleted file mode 100644 index 7204d33271d518..00000000000000 --- a/deps/npm/node_modules/archy/test/non_unicode.js +++ /dev/null @@ -1,40 +0,0 @@ -var test = require('tape'); -var archy = require('../'); - -test('beep', function (t) { - var s = archy({ - label : 'beep', - nodes : [ - 'ity', - { - label : 'boop', - nodes : [ - { - label : 'o_O', - nodes : [ - { - label : 'oh', - nodes : [ 'hello', 'puny' ] - }, - 'human' - ] - }, - 'party!' - ] - } - ] - }, '', { unicode : false }); - t.equal(s, [ - 'beep', - '+-- ity', - '`-- boop', - ' +-- o_O', - ' | +-- oh', - ' | | +-- hello', - ' | | `-- puny', - ' | `-- human', - ' `-- party!', - '' - ].join('\n')); - t.end(); -}); diff --git a/deps/npm/node_modules/are-we-there-yet/CHANGES.md b/deps/npm/node_modules/are-we-there-yet/CHANGES.md deleted file mode 100644 index 21f3b1c1284523..00000000000000 --- a/deps/npm/node_modules/are-we-there-yet/CHANGES.md +++ /dev/null @@ -1,37 +0,0 @@ -Hi, figured we could actually use a changelog now: - -## 1.1.5 2018-05-24 - -* [#92](https://github.com/iarna/are-we-there-yet/pull/92) Fix bug where - `finish` would throw errors when including `TrackerStream` objects in - `TrackerGroup` collections. (@brianloveswords) - -## 1.1.4 2017-04-21 - -* Fix typo in package.json - -## 1.1.3 2017-04-21 - -* Improve documentation and limit files included in the distribution. - -## 1.1.2 2016-03-15 - -* Add tracker group cycle detection and tests for it - -## 1.1.1 2016-01-29 - -* Fix a typo in stream completion tracker - -## 1.1.0 2016-01-29 - -* Rewrote completion percent computation to be low impact– no more walking a - tree of completion groups every time we need this info. Previously, with - medium sized tree of completion groups, even a relatively modest number of - calls to the top level `completed()` method would result in absurd numbers - of calls overall as it walked down the tree. We now, instead, keep track as - we bubble up changes, so the computation is limited to when data changes and - to the depth of that one branch, instead of _every_ node. (Plus, we were already - incurring _this_ cost, since we already bubbled out changes.) -* Moved different tracker types out to their own files. -* Made tests test for TOO MANY events too. -* Standarized the source code formatting diff --git a/deps/npm/node_modules/are-we-there-yet/LICENSE b/deps/npm/node_modules/are-we-there-yet/LICENSE deleted file mode 100644 index af4588069db82d..00000000000000 --- a/deps/npm/node_modules/are-we-there-yet/LICENSE +++ /dev/null @@ -1,5 +0,0 @@ -Copyright (c) 2015, Rebecca Turner - -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/deps/npm/node_modules/are-we-there-yet/README.md b/deps/npm/node_modules/are-we-there-yet/README.md deleted file mode 100644 index 7e2b42d866bd54..00000000000000 --- a/deps/npm/node_modules/are-we-there-yet/README.md +++ /dev/null @@ -1,195 +0,0 @@ -are-we-there-yet ----------------- - -Track complex hiearchies of asynchronous task completion statuses. This is -intended to give you a way of recording and reporting the progress of the big -recursive fan-out and gather type workflows that are so common in async. - -What you do with this completion data is up to you, but the most common use case is to -feed it to one of the many progress bar modules. - -Most progress bar modules include a rudamentary version of this, but my -needs were more complex. - -Usage -===== - -```javascript -var TrackerGroup = require("are-we-there-yet").TrackerGroup - -var top = new TrackerGroup("program") - -var single = top.newItem("one thing", 100) -single.completeWork(20) - -console.log(top.completed()) // 0.2 - -fs.stat("file", function(er, stat) { - if (er) throw er - var stream = top.newStream("file", stat.size) - console.log(top.completed()) // now 0.1 as single is 50% of the job and is 20% complete - // and 50% * 20% == 10% - fs.createReadStream("file").pipe(stream).on("data", function (chunk) { - // do stuff with chunk - }) - top.on("change", function (name) { - // called each time a chunk is read from "file" - // top.completed() will start at 0.1 and fill up to 0.6 as the file is read - }) -}) -``` - -Shared Methods -============== - -* var completed = tracker.completed() - -Implemented in: `Tracker`, `TrackerGroup`, `TrackerStream` - -Returns the ratio of completed work to work to be done. Range of 0 to 1. - -* tracker.finish() - -Implemented in: `Tracker`, `TrackerGroup` - -Marks the tracker as completed. With a TrackerGroup this marks all of its -components as completed. - -Marks all of the components of this tracker as finished, which in turn means -that `tracker.completed()` for this will now be 1. - -This will result in one or more `change` events being emitted. - -Events -====== - -All tracker objects emit `change` events with the following arguments: - -``` -function (name, completed, tracker) -``` - -`name` is the name of the tracker that originally emitted the event, -or if it didn't have one, the first containing tracker group that had one. - -`completed` is the percent complete (as returned by `tracker.completed()` method). - -`tracker` is the tracker object that you are listening for events on. - -TrackerGroup -============ - -* var tracker = new TrackerGroup(**name**) - - * **name** *(optional)* - The name of this tracker group, used in change - notifications if the component updating didn't have a name. Defaults to undefined. - -Creates a new empty tracker aggregation group. These are trackers whose -completion status is determined by the completion status of other trackers. - -* tracker.addUnit(**otherTracker**, **weight**) - - * **otherTracker** - Any of the other are-we-there-yet tracker objects - * **weight** *(optional)* - The weight to give the tracker, defaults to 1. - -Adds the **otherTracker** to this aggregation group. The weight determines -how long you expect this tracker to take to complete in proportion to other -units. So for instance, if you add one tracker with a weight of 1 and -another with a weight of 2, you're saying the second will take twice as long -to complete as the first. As such, the first will account for 33% of the -completion of this tracker and the second will account for the other 67%. - -Returns **otherTracker**. - -* var subGroup = tracker.newGroup(**name**, **weight**) - -The above is exactly equivalent to: - -```javascript - var subGroup = tracker.addUnit(new TrackerGroup(name), weight) -``` - -* var subItem = tracker.newItem(**name**, **todo**, **weight**) - -The above is exactly equivalent to: - -```javascript - var subItem = tracker.addUnit(new Tracker(name, todo), weight) -``` - -* var subStream = tracker.newStream(**name**, **todo**, **weight**) - -The above is exactly equivalent to: - -```javascript - var subStream = tracker.addUnit(new TrackerStream(name, todo), weight) -``` - -* console.log( tracker.debug() ) - -Returns a tree showing the completion of this tracker group and all of its -children, including recursively entering all of the children. - -Tracker -======= - -* var tracker = new Tracker(**name**, **todo**) - - * **name** *(optional)* The name of this counter to report in change - events. Defaults to undefined. - * **todo** *(optional)* The amount of work todo (a number). Defaults to 0. - -Ordinarily these are constructed as a part of a tracker group (via -`newItem`). - -* var completed = tracker.completed() - -Returns the ratio of completed work to work to be done. Range of 0 to 1. If -total work to be done is 0 then it will return 0. - -* tracker.addWork(**todo**) - - * **todo** A number to add to the amount of work to be done. - -Increases the amount of work to be done, thus decreasing the completion -percentage. Triggers a `change` event. - -* tracker.completeWork(**completed**) - - * **completed** A number to add to the work complete - -Increase the amount of work complete, thus increasing the completion percentage. -Will never increase the work completed past the amount of work todo. That is, -percentages > 100% are not allowed. Triggers a `change` event. - -* tracker.finish() - -Marks this tracker as finished, tracker.completed() will now be 1. Triggers -a `change` event. - -TrackerStream -============= - -* var tracker = new TrackerStream(**name**, **size**, **options**) - - * **name** *(optional)* The name of this counter to report in change - events. Defaults to undefined. - * **size** *(optional)* The number of bytes being sent through this stream. - * **options** *(optional)* A hash of stream options - -The tracker stream object is a pass through stream that updates an internal -tracker object each time a block passes through. It's intended to track -downloads, file extraction and other related activities. You use it by piping -your data source into it and then using it as your data source. - -If your data has a length attribute then that's used as the amount of work -completed when the chunk is passed through. If it does not (eg, object -streams) then each chunk counts as completing 1 unit of work, so your size -should be the total number of objects being streamed. - -* tracker.addWork(**todo**) - - * **todo** Increase the expected overall size by **todo** bytes. - -Increases the amount of work to be done, thus decreasing the completion -percentage. Triggers a `change` event. diff --git a/deps/npm/node_modules/are-we-there-yet/index.js b/deps/npm/node_modules/are-we-there-yet/index.js deleted file mode 100644 index 57d8743fdad177..00000000000000 --- a/deps/npm/node_modules/are-we-there-yet/index.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict' -exports.TrackerGroup = require('./tracker-group.js') -exports.Tracker = require('./tracker.js') -exports.TrackerStream = require('./tracker-stream.js') diff --git a/deps/npm/node_modules/are-we-there-yet/package.json b/deps/npm/node_modules/are-we-there-yet/package.json deleted file mode 100644 index c5990c9bdc5b22..00000000000000 --- a/deps/npm/node_modules/are-we-there-yet/package.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "are-we-there-yet", - "version": "1.1.5", - "description": "Keep track of the overall completion of many disparate processes", - "main": "index.js", - "scripts": { - "test": "standard && tap test/*.js" - }, - "repository": { - "type": "git", - "url": "https://github.com/iarna/are-we-there-yet.git" - }, - "author": "Rebecca Turner (http://re-becca.org)", - "license": "ISC", - "bugs": { - "url": "https://github.com/iarna/are-we-there-yet/issues" - }, - "homepage": "https://github.com/iarna/are-we-there-yet", - "devDependencies": { - "standard": "^11.0.1", - "tap": "^12.0.1" - }, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - }, - "files": [ - "index.js", - "tracker-base.js", - "tracker-group.js", - "tracker-stream.js", - "tracker.js", - "CHANGES.md" - ] -} diff --git a/deps/npm/node_modules/are-we-there-yet/tracker-base.js b/deps/npm/node_modules/are-we-there-yet/tracker-base.js deleted file mode 100644 index 6f436875578a7a..00000000000000 --- a/deps/npm/node_modules/are-we-there-yet/tracker-base.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict' -var EventEmitter = require('events').EventEmitter -var util = require('util') - -var trackerId = 0 -var TrackerBase = module.exports = function (name) { - EventEmitter.call(this) - this.id = ++trackerId - this.name = name -} -util.inherits(TrackerBase, EventEmitter) diff --git a/deps/npm/node_modules/are-we-there-yet/tracker-group.js b/deps/npm/node_modules/are-we-there-yet/tracker-group.js deleted file mode 100644 index 9759e1226db046..00000000000000 --- a/deps/npm/node_modules/are-we-there-yet/tracker-group.js +++ /dev/null @@ -1,107 +0,0 @@ -'use strict' -var util = require('util') -var TrackerBase = require('./tracker-base.js') -var Tracker = require('./tracker.js') -var TrackerStream = require('./tracker-stream.js') - -var TrackerGroup = module.exports = function (name) { - TrackerBase.call(this, name) - this.parentGroup = null - this.trackers = [] - this.completion = {} - this.weight = {} - this.totalWeight = 0 - this.finished = false - this.bubbleChange = bubbleChange(this) -} -util.inherits(TrackerGroup, TrackerBase) - -function bubbleChange (trackerGroup) { - return function (name, completed, tracker) { - trackerGroup.completion[tracker.id] = completed - if (trackerGroup.finished) return - trackerGroup.emit('change', name || trackerGroup.name, trackerGroup.completed(), trackerGroup) - } -} - -TrackerGroup.prototype.nameInTree = function () { - var names = [] - var from = this - while (from) { - names.unshift(from.name) - from = from.parentGroup - } - return names.join('/') -} - -TrackerGroup.prototype.addUnit = function (unit, weight) { - if (unit.addUnit) { - var toTest = this - while (toTest) { - if (unit === toTest) { - throw new Error( - 'Attempted to add tracker group ' + - unit.name + ' to tree that already includes it ' + - this.nameInTree(this)) - } - toTest = toTest.parentGroup - } - unit.parentGroup = this - } - this.weight[unit.id] = weight || 1 - this.totalWeight += this.weight[unit.id] - this.trackers.push(unit) - this.completion[unit.id] = unit.completed() - unit.on('change', this.bubbleChange) - if (!this.finished) this.emit('change', unit.name, this.completion[unit.id], unit) - return unit -} - -TrackerGroup.prototype.completed = function () { - if (this.trackers.length === 0) return 0 - var valPerWeight = 1 / this.totalWeight - var completed = 0 - for (var ii = 0; ii < this.trackers.length; ii++) { - var trackerId = this.trackers[ii].id - completed += valPerWeight * this.weight[trackerId] * this.completion[trackerId] - } - return completed -} - -TrackerGroup.prototype.newGroup = function (name, weight) { - return this.addUnit(new TrackerGroup(name), weight) -} - -TrackerGroup.prototype.newItem = function (name, todo, weight) { - return this.addUnit(new Tracker(name, todo), weight) -} - -TrackerGroup.prototype.newStream = function (name, todo, weight) { - return this.addUnit(new TrackerStream(name, todo), weight) -} - -TrackerGroup.prototype.finish = function () { - this.finished = true - if (!this.trackers.length) this.addUnit(new Tracker(), 1, true) - for (var ii = 0; ii < this.trackers.length; ii++) { - var tracker = this.trackers[ii] - tracker.finish() - tracker.removeListener('change', this.bubbleChange) - } - this.emit('change', this.name, 1, this) -} - -var buffer = ' ' -TrackerGroup.prototype.debug = function (depth) { - depth = depth || 0 - var indent = depth ? buffer.substr(0, depth) : '' - var output = indent + (this.name || 'top') + ': ' + this.completed() + '\n' - this.trackers.forEach(function (tracker) { - if (tracker instanceof TrackerGroup) { - output += tracker.debug(depth + 1) - } else { - output += indent + ' ' + tracker.name + ': ' + tracker.completed() + '\n' - } - }) - return output -} diff --git a/deps/npm/node_modules/are-we-there-yet/tracker-stream.js b/deps/npm/node_modules/are-we-there-yet/tracker-stream.js deleted file mode 100644 index e1cf85055702a7..00000000000000 --- a/deps/npm/node_modules/are-we-there-yet/tracker-stream.js +++ /dev/null @@ -1,36 +0,0 @@ -'use strict' -var util = require('util') -var stream = require('readable-stream') -var delegate = require('delegates') -var Tracker = require('./tracker.js') - -var TrackerStream = module.exports = function (name, size, options) { - stream.Transform.call(this, options) - this.tracker = new Tracker(name, size) - this.name = name - this.id = this.tracker.id - this.tracker.on('change', delegateChange(this)) -} -util.inherits(TrackerStream, stream.Transform) - -function delegateChange (trackerStream) { - return function (name, completion, tracker) { - trackerStream.emit('change', name, completion, trackerStream) - } -} - -TrackerStream.prototype._transform = function (data, encoding, cb) { - this.tracker.completeWork(data.length ? data.length : 1) - this.push(data) - cb() -} - -TrackerStream.prototype._flush = function (cb) { - this.tracker.finish() - cb() -} - -delegate(TrackerStream.prototype, 'tracker') - .method('completed') - .method('addWork') - .method('finish') diff --git a/deps/npm/node_modules/are-we-there-yet/tracker.js b/deps/npm/node_modules/are-we-there-yet/tracker.js deleted file mode 100644 index 68c2339b45409a..00000000000000 --- a/deps/npm/node_modules/are-we-there-yet/tracker.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict' -var util = require('util') -var TrackerBase = require('./tracker-base.js') - -var Tracker = module.exports = function (name, todo) { - TrackerBase.call(this, name) - this.workDone = 0 - this.workTodo = todo || 0 -} -util.inherits(Tracker, TrackerBase) - -Tracker.prototype.completed = function () { - return this.workTodo === 0 ? 0 : this.workDone / this.workTodo -} - -Tracker.prototype.addWork = function (work) { - this.workTodo += work - this.emit('change', this.name, this.completed(), this) -} - -Tracker.prototype.completeWork = function (work) { - this.workDone += work - if (this.workDone > this.workTodo) this.workDone = this.workTodo - this.emit('change', this.name, this.completed(), this) -} - -Tracker.prototype.finish = function () { - this.workTodo = this.workDone = 1 - this.emit('change', this.name, 1, this) -} diff --git a/deps/npm/node_modules/asap/CHANGES.md b/deps/npm/node_modules/asap/CHANGES.md deleted file mode 100644 index f105b91956d156..00000000000000 --- a/deps/npm/node_modules/asap/CHANGES.md +++ /dev/null @@ -1,70 +0,0 @@ - -## 2.0.6 - -Version 2.0.4 adds support for React Native by clarifying in package.json that -the browser environment does not support Node.js domains. -Why this is necessary, we leave as an exercise for the user. - -## 2.0.3 - -Version 2.0.3 fixes a bug when adjusting the capacity of the task queue. - -## 2.0.1-2.02 - -Version 2.0.1 fixes a bug in the way redirects were expressed that affected the -function of Browserify, but which Mr would tolerate. - -## 2.0.0 - -Version 2 of ASAP is a full rewrite with a few salient changes. -First, the ASAP source is CommonJS only and designed with [Browserify][] and -[Browserify-compatible][Mr] module loaders in mind. - -[Browserify]: https://github.com/substack/node-browserify -[Mr]: https://github.com/montagejs/mr - -The new version has been refactored in two dimensions. -Support for Node.js and browsers have been separated, using Browserify -redirects and ASAP has been divided into two modules. -The "raw" layer depends on the tasks to catch thrown exceptions and unravel -Node.js domains. - -The full implementation of ASAP is loadable as `require("asap")` in both Node.js -and browsers. - -The raw layer that lacks exception handling overhead is loadable as -`require("asap/raw")`. -The interface is the same for both layers. - -Tasks are no longer required to be functions, but can rather be any object that -implements `task.call()`. -With this feature you can recycle task objects to avoid garbage collector churn -and avoid closures in general. - -The implementation has been rigorously documented so that our successors can -understand the scope of the problem that this module solves and all of its -nuances, ensuring that the next generation of implementations know what details -are essential. - -- [asap.js](https://github.com/kriskowal/asap/blob/master/asap.js) -- [raw.js](https://github.com/kriskowal/asap/blob/master/raw.js) -- [browser-asap.js](https://github.com/kriskowal/asap/blob/master/browser-asap.js) -- [browser-raw.js](https://github.com/kriskowal/asap/blob/master/browser-raw.js) - -The new version has also been rigorously tested across a broad spectrum of -browsers, in both the window and worker context. -The following charts capture the browser test results for the most recent -release. -The first chart shows test results for ASAP running in the main window context. -The second chart shows test results for ASAP running in a web worker context. -Test results are inconclusive (grey) on browsers that do not support web -workers. -These data are captured automatically by [Continuous -Integration][]. - -![Browser Compatibility](http://kriskowal-asap.s3-website-us-west-2.amazonaws.com/train/integration-2/saucelabs-results-matrix.svg) - -![Compatibility in Web Workers](http://kriskowal-asap.s3-website-us-west-2.amazonaws.com/train/integration-2/saucelabs-worker-results-matrix.svg) - -[Continuous Integration]: https://github.com/kriskowal/asap/blob/master/CONTRIBUTING.md - diff --git a/deps/npm/node_modules/asap/LICENSE.md b/deps/npm/node_modules/asap/LICENSE.md deleted file mode 100644 index ba18c61390db9a..00000000000000 --- a/deps/npm/node_modules/asap/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ - -Copyright 2009–2014 Contributors. All rights reserved. - -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/deps/npm/node_modules/asap/README.md b/deps/npm/node_modules/asap/README.md deleted file mode 100644 index 452fd8c2037099..00000000000000 --- a/deps/npm/node_modules/asap/README.md +++ /dev/null @@ -1,237 +0,0 @@ -# ASAP - -[![Build Status](https://travis-ci.org/kriskowal/asap.png?branch=master)](https://travis-ci.org/kriskowal/asap) - -Promise and asynchronous observer libraries, as well as hand-rolled callback -programs and libraries, often need a mechanism to postpone the execution of a -callback until the next available event. -(See [Designing API’s for Asynchrony][Zalgo].) -The `asap` function executes a task **as soon as possible** but not before it -returns, waiting only for the completion of the current event and previously -scheduled tasks. - -```javascript -asap(function () { - // ... -}); -``` - -[Zalgo]: http://blog.izs.me/post/59142742143/designing-apis-for-asynchrony - -This CommonJS package provides an `asap` module that exports a function that -executes a task function *as soon as possible*. - -ASAP strives to schedule events to occur before yielding for IO, reflow, -or redrawing. -Each event receives an independent stack, with only platform code in parent -frames and the events run in the order they are scheduled. - -ASAP provides a fast event queue that will execute tasks until it is -empty before yielding to the JavaScript engine's underlying event-loop. -When a task gets added to a previously empty event queue, ASAP schedules a flush -event, preferring for that event to occur before the JavaScript engine has an -opportunity to perform IO tasks or rendering, thus making the first task and -subsequent tasks semantically indistinguishable. -ASAP uses a variety of techniques to preserve this invariant on different -versions of browsers and Node.js. - -By design, ASAP prevents input events from being handled until the task -queue is empty. -If the process is busy enough, this may cause incoming connection requests to be -dropped, and may cause existing connections to inform the sender to reduce the -transmission rate or stall. -ASAP allows this on the theory that, if there is enough work to do, there is no -sense in looking for trouble. -As a consequence, ASAP can interfere with smooth animation. -If your task should be tied to the rendering loop, consider using -`requestAnimationFrame` instead. -A long sequence of tasks can also effect the long running script dialog. -If this is a problem, you may be able to use ASAP’s cousin `setImmediate` to -break long processes into shorter intervals and periodically allow the browser -to breathe. -`setImmediate` will yield for IO, reflow, and repaint events. -It also returns a handler and can be canceled. -For a `setImmediate` shim, consider [YuzuJS setImmediate][setImmediate]. - -[setImmediate]: https://github.com/YuzuJS/setImmediate - -Take care. -ASAP can sustain infinite recursive calls without warning. -It will not halt from a stack overflow, and it will not consume unbounded -memory. -This is behaviorally equivalent to an infinite loop. -Just as with infinite loops, you can monitor a Node.js process for this behavior -with a heart-beat signal. -As with infinite loops, a very small amount of caution goes a long way to -avoiding problems. - -```javascript -function loop() { - asap(loop); -} -loop(); -``` - -In browsers, if a task throws an exception, it will not interrupt the flushing -of high-priority tasks. -The exception will be postponed to a later, low-priority event to avoid -slow-downs. -In Node.js, if a task throws an exception, ASAP will resume flushing only if—and -only after—the error is handled by `domain.on("error")` or -`process.on("uncaughtException")`. - -## Raw ASAP - -Checking for exceptions comes at a cost. -The package also provides an `asap/raw` module that exports the underlying -implementation which is faster but stalls if a task throws an exception. -This internal version of the ASAP function does not check for errors. -If a task does throw an error, it will stall the event queue unless you manually -call `rawAsap.requestFlush()` before throwing the error, or any time after. - -In Node.js, `asap/raw` also runs all tasks outside any domain. -If you need a task to be bound to your domain, you will have to do it manually. - -```js -if (process.domain) { - task = process.domain.bind(task); -} -rawAsap(task); -``` - -## Tasks - -A task may be any object that implements `call()`. -A function will suffice, but closures tend not to be reusable and can cause -garbage collector churn. -Both `asap` and `rawAsap` accept task objects to give you the option of -recycling task objects or using higher callable object abstractions. -See the `asap` source for an illustration. - - -## Compatibility - -ASAP is tested on Node.js v0.10 and in a broad spectrum of web browsers. -The following charts capture the browser test results for the most recent -release. -The first chart shows test results for ASAP running in the main window context. -The second chart shows test results for ASAP running in a web worker context. -Test results are inconclusive (grey) on browsers that do not support web -workers. -These data are captured automatically by [Continuous -Integration][]. - -[Continuous Integration]: https://github.com/kriskowal/asap/blob/master/CONTRIBUTING.md - -![Browser Compatibility](http://kriskowal-asap.s3-website-us-west-2.amazonaws.com/train/integration-2/saucelabs-results-matrix.svg) - -![Compatibility in Web Workers](http://kriskowal-asap.s3-website-us-west-2.amazonaws.com/train/integration-2/saucelabs-worker-results-matrix.svg) - -## Caveats - -When a task is added to an empty event queue, it is not always possible to -guarantee that the task queue will begin flushing immediately after the current -event. -However, once the task queue begins flushing, it will not yield until the queue -is empty, even if the queue grows while executing tasks. - -The following browsers allow the use of [DOM mutation observers][] to access -the HTML [microtask queue][], and thus begin flushing ASAP's task queue -immediately at the end of the current event loop turn, before any rendering or -IO: - -[microtask queue]: http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#microtask-queue -[DOM mutation observers]: http://dom.spec.whatwg.org/#mutation-observers - -- Android 4–4.3 -- Chrome 26–34 -- Firefox 14–29 -- Internet Explorer 11 -- iPad Safari 6–7.1 -- iPhone Safari 7–7.1 -- Safari 6–7 - -In the absense of mutation observers, there are a few browsers, and situations -like web workers in some of the above browsers, where [message channels][] -would be a useful way to avoid falling back to timers. -Message channels give direct access to the HTML [task queue][], so the ASAP -task queue would flush after any already queued rendering and IO tasks, but -without having the minimum delay imposed by timers. -However, among these browsers, Internet Explorer 10 and Safari do not reliably -dispatch messages, so they are not worth the trouble to implement. - -[message channels]: http://www.whatwg.org/specs/web-apps/current-work/multipage/web-messaging.html#message-channels -[task queue]: http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#concept-task - -- Internet Explorer 10 -- Safair 5.0-1 -- Opera 11-12 - -In the absense of mutation observers, these browsers and the following browsers -all fall back to using `setTimeout` and `setInterval` to ensure that a `flush` -occurs. -The implementation uses both and cancels whatever handler loses the race, since -`setTimeout` tends to occasionally skip tasks in unisolated circumstances. -Timers generally delay the flushing of ASAP's task queue for four milliseconds. - -- Firefox 3–13 -- Internet Explorer 6–10 -- iPad Safari 4.3 -- Lynx 2.8.7 - - -## Heritage - -ASAP has been factored out of the [Q][] asynchronous promise library. -It originally had a naïve implementation in terms of `setTimeout`, but -[Malte Ubl][NonBlocking] provided an insight that `postMessage` might be -useful for creating a high-priority, no-delay event dispatch hack. -Since then, Internet Explorer proposed and implemented `setImmediate`. -Robert Katić began contributing to Q by measuring the performance of -the internal implementation of `asap`, paying particular attention to -error recovery. -Domenic, Robert, and Kris Kowal collectively settled on the current strategy of -unrolling the high-priority event queue internally regardless of what strategy -we used to dispatch the potentially lower-priority flush event. -Domenic went on to make ASAP cooperate with Node.js domains. - -[Q]: https://github.com/kriskowal/q -[NonBlocking]: http://www.nonblocking.io/2011/06/windownexttick.html - -For further reading, Nicholas Zakas provided a thorough article on [The -Case for setImmediate][NCZ]. - -[NCZ]: http://www.nczonline.net/blog/2013/07/09/the-case-for-setimmediate/ - -Ember’s RSVP promise implementation later [adopted][RSVP ASAP] the name ASAP but -further developed the implentation. -Particularly, The `MessagePort` implementation was abandoned due to interaction -[problems with Mobile Internet Explorer][IE Problems] in favor of an -implementation backed on the newer and more reliable DOM `MutationObserver` -interface. -These changes were back-ported into this library. - -[IE Problems]: https://github.com/cujojs/when/issues/197 -[RSVP ASAP]: https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js - -In addition, ASAP factored into `asap` and `asap/raw`, such that `asap` remained -exception-safe, but `asap/raw` provided a tight kernel that could be used for -tasks that guaranteed that they would not throw exceptions. -This core is useful for promise implementations that capture thrown errors in -rejected promises and do not need a second safety net. -At the same time, the exception handling in `asap` was factored into separate -implementations for Node.js and browsers, using the the [Browserify][Browser -Config] `browser` property in `package.json` to instruct browser module loaders -and bundlers, including [Browserify][], [Mr][], and [Mop][], to use the -browser-only implementation. - -[Browser Config]: https://gist.github.com/defunctzombie/4339901 -[Browserify]: https://github.com/substack/node-browserify -[Mr]: https://github.com/montagejs/mr -[Mop]: https://github.com/montagejs/mop - -## License - -Copyright 2009-2014 by Contributors -MIT License (enclosed) - diff --git a/deps/npm/node_modules/asap/asap.js b/deps/npm/node_modules/asap/asap.js deleted file mode 100644 index f04fcd58fc0b22..00000000000000 --- a/deps/npm/node_modules/asap/asap.js +++ /dev/null @@ -1,65 +0,0 @@ -"use strict"; - -var rawAsap = require("./raw"); -var freeTasks = []; - -/** - * Calls a task as soon as possible after returning, in its own event, with - * priority over IO events. An exception thrown in a task can be handled by - * `process.on("uncaughtException") or `domain.on("error")`, but will otherwise - * crash the process. If the error is handled, all subsequent tasks will - * resume. - * - * @param {{call}} task A callable object, typically a function that takes no - * arguments. - */ -module.exports = asap; -function asap(task) { - var rawTask; - if (freeTasks.length) { - rawTask = freeTasks.pop(); - } else { - rawTask = new RawTask(); - } - rawTask.task = task; - rawTask.domain = process.domain; - rawAsap(rawTask); -} - -function RawTask() { - this.task = null; - this.domain = null; -} - -RawTask.prototype.call = function () { - if (this.domain) { - this.domain.enter(); - } - var threw = true; - try { - this.task.call(); - threw = false; - // If the task throws an exception (presumably) Node.js restores the - // domain stack for the next event. - if (this.domain) { - this.domain.exit(); - } - } finally { - // We use try/finally and a threw flag to avoid messing up stack traces - // when we catch and release errors. - if (threw) { - // In Node.js, uncaught exceptions are considered fatal errors. - // Re-throw them to interrupt flushing! - // Ensure that flushing continues if an uncaught exception is - // suppressed listening process.on("uncaughtException") or - // domain.on("error"). - rawAsap.requestFlush(); - } - // If the task threw an error, we do not want to exit the domain here. - // Exiting the domain would prevent the domain from catching the error. - this.task = null; - this.domain = null; - freeTasks.push(this); - } -}; - diff --git a/deps/npm/node_modules/asap/browser-asap.js b/deps/npm/node_modules/asap/browser-asap.js deleted file mode 100644 index 805c9824605b07..00000000000000 --- a/deps/npm/node_modules/asap/browser-asap.js +++ /dev/null @@ -1,66 +0,0 @@ -"use strict"; - -// rawAsap provides everything we need except exception management. -var rawAsap = require("./raw"); -// RawTasks are recycled to reduce GC churn. -var freeTasks = []; -// We queue errors to ensure they are thrown in right order (FIFO). -// Array-as-queue is good enough here, since we are just dealing with exceptions. -var pendingErrors = []; -var requestErrorThrow = rawAsap.makeRequestCallFromTimer(throwFirstError); - -function throwFirstError() { - if (pendingErrors.length) { - throw pendingErrors.shift(); - } -} - -/** - * Calls a task as soon as possible after returning, in its own event, with priority - * over other events like animation, reflow, and repaint. An error thrown from an - * event will not interrupt, nor even substantially slow down the processing of - * other events, but will be rather postponed to a lower priority event. - * @param {{call}} task A callable object, typically a function that takes no - * arguments. - */ -module.exports = asap; -function asap(task) { - var rawTask; - if (freeTasks.length) { - rawTask = freeTasks.pop(); - } else { - rawTask = new RawTask(); - } - rawTask.task = task; - rawAsap(rawTask); -} - -// We wrap tasks with recyclable task objects. A task object implements -// `call`, just like a function. -function RawTask() { - this.task = null; -} - -// The sole purpose of wrapping the task is to catch the exception and recycle -// the task object after its single use. -RawTask.prototype.call = function () { - try { - this.task.call(); - } catch (error) { - if (asap.onerror) { - // This hook exists purely for testing purposes. - // Its name will be periodically randomized to break any code that - // depends on its existence. - asap.onerror(error); - } else { - // In a web browser, exceptions are not fatal. However, to avoid - // slowing down the queue of pending tasks, we rethrow the error in a - // lower priority turn. - pendingErrors.push(error); - requestErrorThrow(); - } - } finally { - this.task = null; - freeTasks[freeTasks.length] = this; - } -}; diff --git a/deps/npm/node_modules/asap/browser-raw.js b/deps/npm/node_modules/asap/browser-raw.js deleted file mode 100644 index 9cee7e32eb5d35..00000000000000 --- a/deps/npm/node_modules/asap/browser-raw.js +++ /dev/null @@ -1,223 +0,0 @@ -"use strict"; - -// Use the fastest means possible to execute a task in its own turn, with -// priority over other events including IO, animation, reflow, and redraw -// events in browsers. -// -// An exception thrown by a task will permanently interrupt the processing of -// subsequent tasks. The higher level `asap` function ensures that if an -// exception is thrown by a task, that the task queue will continue flushing as -// soon as possible, but if you use `rawAsap` directly, you are responsible to -// either ensure that no exceptions are thrown from your task, or to manually -// call `rawAsap.requestFlush` if an exception is thrown. -module.exports = rawAsap; -function rawAsap(task) { - if (!queue.length) { - requestFlush(); - flushing = true; - } - // Equivalent to push, but avoids a function call. - queue[queue.length] = task; -} - -var queue = []; -// Once a flush has been requested, no further calls to `requestFlush` are -// necessary until the next `flush` completes. -var flushing = false; -// `requestFlush` is an implementation-specific method that attempts to kick -// off a `flush` event as quickly as possible. `flush` will attempt to exhaust -// the event queue before yielding to the browser's own event loop. -var requestFlush; -// The position of the next task to execute in the task queue. This is -// preserved between calls to `flush` so that it can be resumed if -// a task throws an exception. -var index = 0; -// If a task schedules additional tasks recursively, the task queue can grow -// unbounded. To prevent memory exhaustion, the task queue will periodically -// truncate already-completed tasks. -var capacity = 1024; - -// The flush function processes all tasks that have been scheduled with -// `rawAsap` unless and until one of those tasks throws an exception. -// If a task throws an exception, `flush` ensures that its state will remain -// consistent and will resume where it left off when called again. -// However, `flush` does not make any arrangements to be called again if an -// exception is thrown. -function flush() { - while (index < queue.length) { - var currentIndex = index; - // Advance the index before calling the task. This ensures that we will - // begin flushing on the next task the task throws an error. - index = index + 1; - queue[currentIndex].call(); - // Prevent leaking memory for long chains of recursive calls to `asap`. - // If we call `asap` within tasks scheduled by `asap`, the queue will - // grow, but to avoid an O(n) walk for every task we execute, we don't - // shift tasks off the queue after they have been executed. - // Instead, we periodically shift 1024 tasks off the queue. - if (index > capacity) { - // Manually shift all values starting at the index back to the - // beginning of the queue. - for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) { - queue[scan] = queue[scan + index]; - } - queue.length -= index; - index = 0; - } - } - queue.length = 0; - index = 0; - flushing = false; -} - -// `requestFlush` is implemented using a strategy based on data collected from -// every available SauceLabs Selenium web driver worker at time of writing. -// https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593 - -// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that -// have WebKitMutationObserver but not un-prefixed MutationObserver. -// Must use `global` or `self` instead of `window` to work in both frames and web -// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop. - -/* globals self */ -var scope = typeof global !== "undefined" ? global : self; -var BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver; - -// MutationObservers are desirable because they have high priority and work -// reliably everywhere they are implemented. -// They are implemented in all modern browsers. -// -// - Android 4-4.3 -// - Chrome 26-34 -// - Firefox 14-29 -// - Internet Explorer 11 -// - iPad Safari 6-7.1 -// - iPhone Safari 7-7.1 -// - Safari 6-7 -if (typeof BrowserMutationObserver === "function") { - requestFlush = makeRequestCallFromMutationObserver(flush); - -// MessageChannels are desirable because they give direct access to the HTML -// task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera -// 11-12, and in web workers in many engines. -// Although message channels yield to any queued rendering and IO tasks, they -// would be better than imposing the 4ms delay of timers. -// However, they do not work reliably in Internet Explorer or Safari. - -// Internet Explorer 10 is the only browser that has setImmediate but does -// not have MutationObservers. -// Although setImmediate yields to the browser's renderer, it would be -// preferrable to falling back to setTimeout since it does not have -// the minimum 4ms penalty. -// Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and -// Desktop to a lesser extent) that renders both setImmediate and -// MessageChannel useless for the purposes of ASAP. -// https://github.com/kriskowal/q/issues/396 - -// Timers are implemented universally. -// We fall back to timers in workers in most engines, and in foreground -// contexts in the following browsers. -// However, note that even this simple case requires nuances to operate in a -// broad spectrum of browsers. -// -// - Firefox 3-13 -// - Internet Explorer 6-9 -// - iPad Safari 4.3 -// - Lynx 2.8.7 -} else { - requestFlush = makeRequestCallFromTimer(flush); -} - -// `requestFlush` requests that the high priority event queue be flushed as -// soon as possible. -// This is useful to prevent an error thrown in a task from stalling the event -// queue if the exception handled by Node.js’s -// `process.on("uncaughtException")` or by a domain. -rawAsap.requestFlush = requestFlush; - -// To request a high priority event, we induce a mutation observer by toggling -// the text of a text node between "1" and "-1". -function makeRequestCallFromMutationObserver(callback) { - var toggle = 1; - var observer = new BrowserMutationObserver(callback); - var node = document.createTextNode(""); - observer.observe(node, {characterData: true}); - return function requestCall() { - toggle = -toggle; - node.data = toggle; - }; -} - -// The message channel technique was discovered by Malte Ubl and was the -// original foundation for this library. -// http://www.nonblocking.io/2011/06/windownexttick.html - -// Safari 6.0.5 (at least) intermittently fails to create message ports on a -// page's first load. Thankfully, this version of Safari supports -// MutationObservers, so we don't need to fall back in that case. - -// function makeRequestCallFromMessageChannel(callback) { -// var channel = new MessageChannel(); -// channel.port1.onmessage = callback; -// return function requestCall() { -// channel.port2.postMessage(0); -// }; -// } - -// For reasons explained above, we are also unable to use `setImmediate` -// under any circumstances. -// Even if we were, there is another bug in Internet Explorer 10. -// It is not sufficient to assign `setImmediate` to `requestFlush` because -// `setImmediate` must be called *by name* and therefore must be wrapped in a -// closure. -// Never forget. - -// function makeRequestCallFromSetImmediate(callback) { -// return function requestCall() { -// setImmediate(callback); -// }; -// } - -// Safari 6.0 has a problem where timers will get lost while the user is -// scrolling. This problem does not impact ASAP because Safari 6.0 supports -// mutation observers, so that implementation is used instead. -// However, if we ever elect to use timers in Safari, the prevalent work-around -// is to add a scroll event listener that calls for a flush. - -// `setTimeout` does not call the passed callback if the delay is less than -// approximately 7 in web workers in Firefox 8 through 18, and sometimes not -// even then. - -function makeRequestCallFromTimer(callback) { - return function requestCall() { - // We dispatch a timeout with a specified delay of 0 for engines that - // can reliably accommodate that request. This will usually be snapped - // to a 4 milisecond delay, but once we're flushing, there's no delay - // between events. - var timeoutHandle = setTimeout(handleTimer, 0); - // However, since this timer gets frequently dropped in Firefox - // workers, we enlist an interval handle that will try to fire - // an event 20 times per second until it succeeds. - var intervalHandle = setInterval(handleTimer, 50); - - function handleTimer() { - // Whichever timer succeeds will cancel both timers and - // execute the callback. - clearTimeout(timeoutHandle); - clearInterval(intervalHandle); - callback(); - } - }; -} - -// This is for `asap.js` only. -// Its name will be periodically randomized to break any code that depends on -// its existence. -rawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer; - -// ASAP was originally a nextTick shim included in Q. This was factored out -// into this ASAP package. It was later adapted to RSVP which made further -// amendments. These decisions, particularly to marginalize MessageChannel and -// to capture the MutationObserver implementation in a closure, were integrated -// back into ASAP proper. -// https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js diff --git a/deps/npm/node_modules/asap/package.json b/deps/npm/node_modules/asap/package.json deleted file mode 100644 index ae9f303bcd15db..00000000000000 --- a/deps/npm/node_modules/asap/package.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "name": "asap", - "version": "2.0.6", - "description": "High-priority task queue for Node.js and browsers", - "keywords": [ - "event", - "task", - "queue" - ], - "license": "MIT", - "repository": { - "type": "git", - "url": "https://github.com/kriskowal/asap.git" - }, - "main": "./asap.js", - "browser": { - "./asap": "./browser-asap.js", - "./asap.js": "./browser-asap.js", - "./raw": "./browser-raw.js", - "./raw.js": "./browser-raw.js", - "./test/domain.js": "./test/browser-domain.js" - }, - "react-native": { - "domain": false - }, - "files": [ - "raw.js", - "asap.js", - "browser-raw.js", - "browser-asap.js" - ], - "scripts": { - "test": "npm run lint && npm run test-node", - "test-travis": "npm run lint && npm run test-node && npm run test-saucelabs && npm run test-saucelabs-worker", - "test-node": "node test/asap-test.js", - "test-publish": "node scripts/publish-bundle.js test/asap-test.js | pbcopy", - "test-browser": "node scripts/publish-bundle.js test/asap-test.js | xargs opener", - "test-saucelabs": "node scripts/saucelabs.js test/asap-test.js scripts/saucelabs-spot-configurations.json", - "test-saucelabs-all": "node scripts/saucelabs.js test/asap-test.js scripts/saucelabs-all-configurations.json", - "test-saucelabs-worker": "node scripts/saucelabs-worker-test.js scripts/saucelabs-spot-configurations.json", - "test-saucelabs-worker-all": "node scripts/saucelabs-worker-test.js scripts/saucelabs-all-configurations.json", - "lint": "jshint raw.js asap.js browser-raw.js browser-asap.js $(find scripts -name '*.js' | grep -v gauntlet)", - "benchmarks": "node benchmarks" - }, - "devDependencies": { - "events": "^1.0.1", - "jshint": "^2.5.1", - "knox": "^0.8.10", - "mr": "^2.0.5", - "opener": "^1.3.0", - "q": "^2.0.3", - "q-io": "^2.0.3", - "saucelabs": "^0.1.1", - "wd": "^0.2.21", - "weak-map": "^1.0.5", - "benchmark": "^1.0.0" - } -} diff --git a/deps/npm/node_modules/asap/raw.js b/deps/npm/node_modules/asap/raw.js deleted file mode 100644 index ae3b8923168423..00000000000000 --- a/deps/npm/node_modules/asap/raw.js +++ /dev/null @@ -1,101 +0,0 @@ -"use strict"; - -var domain; // The domain module is executed on demand -var hasSetImmediate = typeof setImmediate === "function"; - -// Use the fastest means possible to execute a task in its own turn, with -// priority over other events including network IO events in Node.js. -// -// An exception thrown by a task will permanently interrupt the processing of -// subsequent tasks. The higher level `asap` function ensures that if an -// exception is thrown by a task, that the task queue will continue flushing as -// soon as possible, but if you use `rawAsap` directly, you are responsible to -// either ensure that no exceptions are thrown from your task, or to manually -// call `rawAsap.requestFlush` if an exception is thrown. -module.exports = rawAsap; -function rawAsap(task) { - if (!queue.length) { - requestFlush(); - flushing = true; - } - // Avoids a function call - queue[queue.length] = task; -} - -var queue = []; -// Once a flush has been requested, no further calls to `requestFlush` are -// necessary until the next `flush` completes. -var flushing = false; -// The position of the next task to execute in the task queue. This is -// preserved between calls to `flush` so that it can be resumed if -// a task throws an exception. -var index = 0; -// If a task schedules additional tasks recursively, the task queue can grow -// unbounded. To prevent memory excaustion, the task queue will periodically -// truncate already-completed tasks. -var capacity = 1024; - -// The flush function processes all tasks that have been scheduled with -// `rawAsap` unless and until one of those tasks throws an exception. -// If a task throws an exception, `flush` ensures that its state will remain -// consistent and will resume where it left off when called again. -// However, `flush` does not make any arrangements to be called again if an -// exception is thrown. -function flush() { - while (index < queue.length) { - var currentIndex = index; - // Advance the index before calling the task. This ensures that we will - // begin flushing on the next task the task throws an error. - index = index + 1; - queue[currentIndex].call(); - // Prevent leaking memory for long chains of recursive calls to `asap`. - // If we call `asap` within tasks scheduled by `asap`, the queue will - // grow, but to avoid an O(n) walk for every task we execute, we don't - // shift tasks off the queue after they have been executed. - // Instead, we periodically shift 1024 tasks off the queue. - if (index > capacity) { - // Manually shift all values starting at the index back to the - // beginning of the queue. - for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) { - queue[scan] = queue[scan + index]; - } - queue.length -= index; - index = 0; - } - } - queue.length = 0; - index = 0; - flushing = false; -} - -rawAsap.requestFlush = requestFlush; -function requestFlush() { - // Ensure flushing is not bound to any domain. - // It is not sufficient to exit the domain, because domains exist on a stack. - // To execute code outside of any domain, the following dance is necessary. - var parentDomain = process.domain; - if (parentDomain) { - if (!domain) { - // Lazy execute the domain module. - // Only employed if the user elects to use domains. - domain = require("domain"); - } - domain.active = process.domain = null; - } - - // `setImmediate` is slower that `process.nextTick`, but `process.nextTick` - // cannot handle recursion. - // `requestFlush` will only be called recursively from `asap.js`, to resume - // flushing after an error is thrown into a domain. - // Conveniently, `setImmediate` was introduced in the same version - // `process.nextTick` started throwing recursion errors. - if (flushing && hasSetImmediate) { - setImmediate(flush); - } else { - process.nextTick(flush); - } - - if (parentDomain) { - domain.active = process.domain = parentDomain; - } -} diff --git a/deps/npm/node_modules/asn1/LICENSE b/deps/npm/node_modules/asn1/LICENSE deleted file mode 100644 index 9b5dcdb7f5e1f1..00000000000000 --- a/deps/npm/node_modules/asn1/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2011 Mark Cavage, All rights reserved. - -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/deps/npm/node_modules/asn1/README.md b/deps/npm/node_modules/asn1/README.md deleted file mode 100644 index 2208210a33bd82..00000000000000 --- a/deps/npm/node_modules/asn1/README.md +++ /dev/null @@ -1,50 +0,0 @@ -node-asn1 is a library for encoding and decoding ASN.1 datatypes in pure JS. -Currently BER encoding is supported; at some point I'll likely have to do DER. - -## Usage - -Mostly, if you're *actually* needing to read and write ASN.1, you probably don't -need this readme to explain what and why. If you have no idea what ASN.1 is, -see this: ftp://ftp.rsa.com/pub/pkcs/ascii/layman.asc - -The source is pretty much self-explanatory, and has read/write methods for the -common types out there. - -### Decoding - -The following reads an ASN.1 sequence with a boolean. - - var Ber = require('asn1').Ber; - - var reader = new Ber.Reader(Buffer.from([0x30, 0x03, 0x01, 0x01, 0xff])); - - reader.readSequence(); - console.log('Sequence len: ' + reader.length); - if (reader.peek() === Ber.Boolean) - console.log(reader.readBoolean()); - -### Encoding - -The following generates the same payload as above. - - var Ber = require('asn1').Ber; - - var writer = new Ber.Writer(); - - writer.startSequence(); - writer.writeBoolean(true); - writer.endSequence(); - - console.log(writer.buffer); - -## Installation - - npm install asn1 - -## License - -MIT. - -## Bugs - -See . diff --git a/deps/npm/node_modules/asn1/lib/ber/errors.js b/deps/npm/node_modules/asn1/lib/ber/errors.js deleted file mode 100644 index 4557b8aea02721..00000000000000 --- a/deps/npm/node_modules/asn1/lib/ber/errors.js +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2011 Mark Cavage All rights reserved. - - -module.exports = { - - newInvalidAsn1Error: function (msg) { - var e = new Error(); - e.name = 'InvalidAsn1Error'; - e.message = msg || ''; - return e; - } - -}; diff --git a/deps/npm/node_modules/asn1/lib/ber/index.js b/deps/npm/node_modules/asn1/lib/ber/index.js deleted file mode 100644 index 387d1326f9b450..00000000000000 --- a/deps/npm/node_modules/asn1/lib/ber/index.js +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2011 Mark Cavage All rights reserved. - -var errors = require('./errors'); -var types = require('./types'); - -var Reader = require('./reader'); -var Writer = require('./writer'); - - -// --- Exports - -module.exports = { - - Reader: Reader, - - Writer: Writer - -}; - -for (var t in types) { - if (types.hasOwnProperty(t)) - module.exports[t] = types[t]; -} -for (var e in errors) { - if (errors.hasOwnProperty(e)) - module.exports[e] = errors[e]; -} diff --git a/deps/npm/node_modules/asn1/lib/ber/reader.js b/deps/npm/node_modules/asn1/lib/ber/reader.js deleted file mode 100644 index 8a7e4ca0184ac1..00000000000000 --- a/deps/npm/node_modules/asn1/lib/ber/reader.js +++ /dev/null @@ -1,262 +0,0 @@ -// Copyright 2011 Mark Cavage All rights reserved. - -var assert = require('assert'); -var Buffer = require('safer-buffer').Buffer; - -var ASN1 = require('./types'); -var errors = require('./errors'); - - -// --- Globals - -var newInvalidAsn1Error = errors.newInvalidAsn1Error; - - - -// --- API - -function Reader(data) { - if (!data || !Buffer.isBuffer(data)) - throw new TypeError('data must be a node Buffer'); - - this._buf = data; - this._size = data.length; - - // These hold the "current" state - this._len = 0; - this._offset = 0; -} - -Object.defineProperty(Reader.prototype, 'length', { - enumerable: true, - get: function () { return (this._len); } -}); - -Object.defineProperty(Reader.prototype, 'offset', { - enumerable: true, - get: function () { return (this._offset); } -}); - -Object.defineProperty(Reader.prototype, 'remain', { - get: function () { return (this._size - this._offset); } -}); - -Object.defineProperty(Reader.prototype, 'buffer', { - get: function () { return (this._buf.slice(this._offset)); } -}); - - -/** - * Reads a single byte and advances offset; you can pass in `true` to make this - * a "peek" operation (i.e., get the byte, but don't advance the offset). - * - * @param {Boolean} peek true means don't move offset. - * @return {Number} the next byte, null if not enough data. - */ -Reader.prototype.readByte = function (peek) { - if (this._size - this._offset < 1) - return null; - - var b = this._buf[this._offset] & 0xff; - - if (!peek) - this._offset += 1; - - return b; -}; - - -Reader.prototype.peek = function () { - return this.readByte(true); -}; - - -/** - * Reads a (potentially) variable length off the BER buffer. This call is - * not really meant to be called directly, as callers have to manipulate - * the internal buffer afterwards. - * - * As a result of this call, you can call `Reader.length`, until the - * next thing called that does a readLength. - * - * @return {Number} the amount of offset to advance the buffer. - * @throws {InvalidAsn1Error} on bad ASN.1 - */ -Reader.prototype.readLength = function (offset) { - if (offset === undefined) - offset = this._offset; - - if (offset >= this._size) - return null; - - var lenB = this._buf[offset++] & 0xff; - if (lenB === null) - return null; - - if ((lenB & 0x80) === 0x80) { - lenB &= 0x7f; - - if (lenB === 0) - throw newInvalidAsn1Error('Indefinite length not supported'); - - if (lenB > 4) - throw newInvalidAsn1Error('encoding too long'); - - if (this._size - offset < lenB) - return null; - - this._len = 0; - for (var i = 0; i < lenB; i++) - this._len = (this._len << 8) + (this._buf[offset++] & 0xff); - - } else { - // Wasn't a variable length - this._len = lenB; - } - - return offset; -}; - - -/** - * Parses the next sequence in this BER buffer. - * - * To get the length of the sequence, call `Reader.length`. - * - * @return {Number} the sequence's tag. - */ -Reader.prototype.readSequence = function (tag) { - var seq = this.peek(); - if (seq === null) - return null; - if (tag !== undefined && tag !== seq) - throw newInvalidAsn1Error('Expected 0x' + tag.toString(16) + - ': got 0x' + seq.toString(16)); - - var o = this.readLength(this._offset + 1); // stored in `length` - if (o === null) - return null; - - this._offset = o; - return seq; -}; - - -Reader.prototype.readInt = function () { - return this._readTag(ASN1.Integer); -}; - - -Reader.prototype.readBoolean = function () { - return (this._readTag(ASN1.Boolean) === 0 ? false : true); -}; - - -Reader.prototype.readEnumeration = function () { - return this._readTag(ASN1.Enumeration); -}; - - -Reader.prototype.readString = function (tag, retbuf) { - if (!tag) - tag = ASN1.OctetString; - - var b = this.peek(); - if (b === null) - return null; - - if (b !== tag) - throw newInvalidAsn1Error('Expected 0x' + tag.toString(16) + - ': got 0x' + b.toString(16)); - - var o = this.readLength(this._offset + 1); // stored in `length` - - if (o === null) - return null; - - if (this.length > this._size - o) - return null; - - this._offset = o; - - if (this.length === 0) - return retbuf ? Buffer.alloc(0) : ''; - - var str = this._buf.slice(this._offset, this._offset + this.length); - this._offset += this.length; - - return retbuf ? str : str.toString('utf8'); -}; - -Reader.prototype.readOID = function (tag) { - if (!tag) - tag = ASN1.OID; - - var b = this.readString(tag, true); - if (b === null) - return null; - - var values = []; - var value = 0; - - for (var i = 0; i < b.length; i++) { - var byte = b[i] & 0xff; - - value <<= 7; - value += byte & 0x7f; - if ((byte & 0x80) === 0) { - values.push(value); - value = 0; - } - } - - value = values.shift(); - values.unshift(value % 40); - values.unshift((value / 40) >> 0); - - return values.join('.'); -}; - - -Reader.prototype._readTag = function (tag) { - assert.ok(tag !== undefined); - - var b = this.peek(); - - if (b === null) - return null; - - if (b !== tag) - throw newInvalidAsn1Error('Expected 0x' + tag.toString(16) + - ': got 0x' + b.toString(16)); - - var o = this.readLength(this._offset + 1); // stored in `length` - if (o === null) - return null; - - if (this.length > 4) - throw newInvalidAsn1Error('Integer too long: ' + this.length); - - if (this.length > this._size - o) - return null; - this._offset = o; - - var fb = this._buf[this._offset]; - var value = 0; - - for (var i = 0; i < this.length; i++) { - value <<= 8; - value |= (this._buf[this._offset++] & 0xff); - } - - if ((fb & 0x80) === 0x80 && i !== 4) - value -= (1 << (i * 8)); - - return value >> 0; -}; - - - -// --- Exported API - -module.exports = Reader; diff --git a/deps/npm/node_modules/asn1/lib/ber/types.js b/deps/npm/node_modules/asn1/lib/ber/types.js deleted file mode 100644 index 8aea000137c844..00000000000000 --- a/deps/npm/node_modules/asn1/lib/ber/types.js +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright 2011 Mark Cavage All rights reserved. - - -module.exports = { - EOC: 0, - Boolean: 1, - Integer: 2, - BitString: 3, - OctetString: 4, - Null: 5, - OID: 6, - ObjectDescriptor: 7, - External: 8, - Real: 9, // float - Enumeration: 10, - PDV: 11, - Utf8String: 12, - RelativeOID: 13, - Sequence: 16, - Set: 17, - NumericString: 18, - PrintableString: 19, - T61String: 20, - VideotexString: 21, - IA5String: 22, - UTCTime: 23, - GeneralizedTime: 24, - GraphicString: 25, - VisibleString: 26, - GeneralString: 28, - UniversalString: 29, - CharacterString: 30, - BMPString: 31, - Constructor: 32, - Context: 128 -}; diff --git a/deps/npm/node_modules/asn1/lib/ber/writer.js b/deps/npm/node_modules/asn1/lib/ber/writer.js deleted file mode 100644 index 3515acf7940ef3..00000000000000 --- a/deps/npm/node_modules/asn1/lib/ber/writer.js +++ /dev/null @@ -1,317 +0,0 @@ -// Copyright 2011 Mark Cavage All rights reserved. - -var assert = require('assert'); -var Buffer = require('safer-buffer').Buffer; -var ASN1 = require('./types'); -var errors = require('./errors'); - - -// --- Globals - -var newInvalidAsn1Error = errors.newInvalidAsn1Error; - -var DEFAULT_OPTS = { - size: 1024, - growthFactor: 8 -}; - - -// --- Helpers - -function merge(from, to) { - assert.ok(from); - assert.equal(typeof (from), 'object'); - assert.ok(to); - assert.equal(typeof (to), 'object'); - - var keys = Object.getOwnPropertyNames(from); - keys.forEach(function (key) { - if (to[key]) - return; - - var value = Object.getOwnPropertyDescriptor(from, key); - Object.defineProperty(to, key, value); - }); - - return to; -} - - - -// --- API - -function Writer(options) { - options = merge(DEFAULT_OPTS, options || {}); - - this._buf = Buffer.alloc(options.size || 1024); - this._size = this._buf.length; - this._offset = 0; - this._options = options; - - // A list of offsets in the buffer where we need to insert - // sequence tag/len pairs. - this._seq = []; -} - -Object.defineProperty(Writer.prototype, 'buffer', { - get: function () { - if (this._seq.length) - throw newInvalidAsn1Error(this._seq.length + ' unended sequence(s)'); - - return (this._buf.slice(0, this._offset)); - } -}); - -Writer.prototype.writeByte = function (b) { - if (typeof (b) !== 'number') - throw new TypeError('argument must be a Number'); - - this._ensure(1); - this._buf[this._offset++] = b; -}; - - -Writer.prototype.writeInt = function (i, tag) { - if (typeof (i) !== 'number') - throw new TypeError('argument must be a Number'); - if (typeof (tag) !== 'number') - tag = ASN1.Integer; - - var sz = 4; - - while ((((i & 0xff800000) === 0) || ((i & 0xff800000) === 0xff800000 >> 0)) && - (sz > 1)) { - sz--; - i <<= 8; - } - - if (sz > 4) - throw newInvalidAsn1Error('BER ints cannot be > 0xffffffff'); - - this._ensure(2 + sz); - this._buf[this._offset++] = tag; - this._buf[this._offset++] = sz; - - while (sz-- > 0) { - this._buf[this._offset++] = ((i & 0xff000000) >>> 24); - i <<= 8; - } - -}; - - -Writer.prototype.writeNull = function () { - this.writeByte(ASN1.Null); - this.writeByte(0x00); -}; - - -Writer.prototype.writeEnumeration = function (i, tag) { - if (typeof (i) !== 'number') - throw new TypeError('argument must be a Number'); - if (typeof (tag) !== 'number') - tag = ASN1.Enumeration; - - return this.writeInt(i, tag); -}; - - -Writer.prototype.writeBoolean = function (b, tag) { - if (typeof (b) !== 'boolean') - throw new TypeError('argument must be a Boolean'); - if (typeof (tag) !== 'number') - tag = ASN1.Boolean; - - this._ensure(3); - this._buf[this._offset++] = tag; - this._buf[this._offset++] = 0x01; - this._buf[this._offset++] = b ? 0xff : 0x00; -}; - - -Writer.prototype.writeString = function (s, tag) { - if (typeof (s) !== 'string') - throw new TypeError('argument must be a string (was: ' + typeof (s) + ')'); - if (typeof (tag) !== 'number') - tag = ASN1.OctetString; - - var len = Buffer.byteLength(s); - this.writeByte(tag); - this.writeLength(len); - if (len) { - this._ensure(len); - this._buf.write(s, this._offset); - this._offset += len; - } -}; - - -Writer.prototype.writeBuffer = function (buf, tag) { - if (typeof (tag) !== 'number') - throw new TypeError('tag must be a number'); - if (!Buffer.isBuffer(buf)) - throw new TypeError('argument must be a buffer'); - - this.writeByte(tag); - this.writeLength(buf.length); - this._ensure(buf.length); - buf.copy(this._buf, this._offset, 0, buf.length); - this._offset += buf.length; -}; - - -Writer.prototype.writeStringArray = function (strings) { - if ((!strings instanceof Array)) - throw new TypeError('argument must be an Array[String]'); - - var self = this; - strings.forEach(function (s) { - self.writeString(s); - }); -}; - -// This is really to solve DER cases, but whatever for now -Writer.prototype.writeOID = function (s, tag) { - if (typeof (s) !== 'string') - throw new TypeError('argument must be a string'); - if (typeof (tag) !== 'number') - tag = ASN1.OID; - - if (!/^([0-9]+\.){3,}[0-9]+$/.test(s)) - throw new Error('argument is not a valid OID string'); - - function encodeOctet(bytes, octet) { - if (octet < 128) { - bytes.push(octet); - } else if (octet < 16384) { - bytes.push((octet >>> 7) | 0x80); - bytes.push(octet & 0x7F); - } else if (octet < 2097152) { - bytes.push((octet >>> 14) | 0x80); - bytes.push(((octet >>> 7) | 0x80) & 0xFF); - bytes.push(octet & 0x7F); - } else if (octet < 268435456) { - bytes.push((octet >>> 21) | 0x80); - bytes.push(((octet >>> 14) | 0x80) & 0xFF); - bytes.push(((octet >>> 7) | 0x80) & 0xFF); - bytes.push(octet & 0x7F); - } else { - bytes.push(((octet >>> 28) | 0x80) & 0xFF); - bytes.push(((octet >>> 21) | 0x80) & 0xFF); - bytes.push(((octet >>> 14) | 0x80) & 0xFF); - bytes.push(((octet >>> 7) | 0x80) & 0xFF); - bytes.push(octet & 0x7F); - } - } - - var tmp = s.split('.'); - var bytes = []; - bytes.push(parseInt(tmp[0], 10) * 40 + parseInt(tmp[1], 10)); - tmp.slice(2).forEach(function (b) { - encodeOctet(bytes, parseInt(b, 10)); - }); - - var self = this; - this._ensure(2 + bytes.length); - this.writeByte(tag); - this.writeLength(bytes.length); - bytes.forEach(function (b) { - self.writeByte(b); - }); -}; - - -Writer.prototype.writeLength = function (len) { - if (typeof (len) !== 'number') - throw new TypeError('argument must be a Number'); - - this._ensure(4); - - if (len <= 0x7f) { - this._buf[this._offset++] = len; - } else if (len <= 0xff) { - this._buf[this._offset++] = 0x81; - this._buf[this._offset++] = len; - } else if (len <= 0xffff) { - this._buf[this._offset++] = 0x82; - this._buf[this._offset++] = len >> 8; - this._buf[this._offset++] = len; - } else if (len <= 0xffffff) { - this._buf[this._offset++] = 0x83; - this._buf[this._offset++] = len >> 16; - this._buf[this._offset++] = len >> 8; - this._buf[this._offset++] = len; - } else { - throw newInvalidAsn1Error('Length too long (> 4 bytes)'); - } -}; - -Writer.prototype.startSequence = function (tag) { - if (typeof (tag) !== 'number') - tag = ASN1.Sequence | ASN1.Constructor; - - this.writeByte(tag); - this._seq.push(this._offset); - this._ensure(3); - this._offset += 3; -}; - - -Writer.prototype.endSequence = function () { - var seq = this._seq.pop(); - var start = seq + 3; - var len = this._offset - start; - - if (len <= 0x7f) { - this._shift(start, len, -2); - this._buf[seq] = len; - } else if (len <= 0xff) { - this._shift(start, len, -1); - this._buf[seq] = 0x81; - this._buf[seq + 1] = len; - } else if (len <= 0xffff) { - this._buf[seq] = 0x82; - this._buf[seq + 1] = len >> 8; - this._buf[seq + 2] = len; - } else if (len <= 0xffffff) { - this._shift(start, len, 1); - this._buf[seq] = 0x83; - this._buf[seq + 1] = len >> 16; - this._buf[seq + 2] = len >> 8; - this._buf[seq + 3] = len; - } else { - throw newInvalidAsn1Error('Sequence too long'); - } -}; - - -Writer.prototype._shift = function (start, len, shift) { - assert.ok(start !== undefined); - assert.ok(len !== undefined); - assert.ok(shift); - - this._buf.copy(this._buf, start + shift, start, start + len); - this._offset += shift; -}; - -Writer.prototype._ensure = function (len) { - assert.ok(len); - - if (this._size - this._offset < len) { - var sz = this._size * this._options.growthFactor; - if (sz - this._offset < len) - sz += len; - - var buf = Buffer.alloc(sz); - - this._buf.copy(buf, 0, 0, this._offset); - this._buf = buf; - this._size = sz; - } -}; - - - -// --- Exported API - -module.exports = Writer; diff --git a/deps/npm/node_modules/asn1/lib/index.js b/deps/npm/node_modules/asn1/lib/index.js deleted file mode 100644 index ede3ab232662f9..00000000000000 --- a/deps/npm/node_modules/asn1/lib/index.js +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2011 Mark Cavage All rights reserved. - -// If you have no idea what ASN.1 or BER is, see this: -// ftp://ftp.rsa.com/pub/pkcs/ascii/layman.asc - -var Ber = require('./ber/index'); - - - -// --- Exported API - -module.exports = { - - Ber: Ber, - - BerReader: Ber.Reader, - - BerWriter: Ber.Writer - -}; diff --git a/deps/npm/node_modules/asn1/package.json b/deps/npm/node_modules/asn1/package.json deleted file mode 100644 index 2b51c753c97a47..00000000000000 --- a/deps/npm/node_modules/asn1/package.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "author": "Joyent (joyent.com)", - "contributors": [ - "Mark Cavage ", - "David Gwynne ", - "Yunong Xiao ", - "Alex Wilson " - ], - "name": "asn1", - "description": "Contains parsers and serializers for ASN.1 (currently BER only)", - "version": "0.2.4", - "repository": { - "type": "git", - "url": "git://github.com/joyent/node-asn1.git" - }, - "main": "lib/index.js", - "dependencies": { - "safer-buffer": "~2.1.0" - }, - "devDependencies": { - "istanbul": "^0.3.6", - "faucet": "0.0.1", - "tape": "^3.5.0", - "eslint": "2.13.1", - "eslint-plugin-joyent": "~1.3.0" - }, - "scripts": { - "test": "./node_modules/.bin/tape ./test/ber/*.test.js" - }, - "license": "MIT" -} diff --git a/deps/npm/node_modules/assert-plus/AUTHORS b/deps/npm/node_modules/assert-plus/AUTHORS deleted file mode 100644 index 1923524fe40ddb..00000000000000 --- a/deps/npm/node_modules/assert-plus/AUTHORS +++ /dev/null @@ -1,6 +0,0 @@ -Dave Eddy -Fred Kuo -Lars-Magnus Skog -Mark Cavage -Patrick Mooney -Rob Gulewich diff --git a/deps/npm/node_modules/assert-plus/CHANGES.md b/deps/npm/node_modules/assert-plus/CHANGES.md deleted file mode 100644 index 57d92bfdb9dae0..00000000000000 --- a/deps/npm/node_modules/assert-plus/CHANGES.md +++ /dev/null @@ -1,14 +0,0 @@ -# assert-plus Changelog - -## 1.0.0 - -- *BREAKING* assert.number (and derivatives) now accept Infinity as valid input -- Add assert.finite check. Previous assert.number callers should use this if - they expect Infinity inputs to throw. - -## 0.2.0 - -- Fix `assert.object(null)` so it throws -- Fix optional/arrayOf exports for non-type-of asserts -- Add optiona/arrayOf exports for Stream/Date/Regex/uuid -- Add basic unit test coverage diff --git a/deps/npm/node_modules/assert-plus/README.md b/deps/npm/node_modules/assert-plus/README.md deleted file mode 100644 index ec200d161efc93..00000000000000 --- a/deps/npm/node_modules/assert-plus/README.md +++ /dev/null @@ -1,162 +0,0 @@ -# assert-plus - -This library is a super small wrapper over node's assert module that has two -things: (1) the ability to disable assertions with the environment variable -NODE\_NDEBUG, and (2) some API wrappers for argument testing. Like -`assert.string(myArg, 'myArg')`. As a simple example, most of my code looks -like this: - -```javascript - var assert = require('assert-plus'); - - function fooAccount(options, callback) { - assert.object(options, 'options'); - assert.number(options.id, 'options.id'); - assert.bool(options.isManager, 'options.isManager'); - assert.string(options.name, 'options.name'); - assert.arrayOfString(options.email, 'options.email'); - assert.func(callback, 'callback'); - - // Do stuff - callback(null, {}); - } -``` - -# API - -All methods that *aren't* part of node's core assert API are simply assumed to -take an argument, and then a string 'name' that's not a message; `AssertionError` -will be thrown if the assertion fails with a message like: - - AssertionError: foo (string) is required - at test (/home/mark/work/foo/foo.js:3:9) - at Object. (/home/mark/work/foo/foo.js:15:1) - at Module._compile (module.js:446:26) - at Object..js (module.js:464:10) - at Module.load (module.js:353:31) - at Function._load (module.js:311:12) - at Array.0 (module.js:484:10) - at EventEmitter._tickCallback (node.js:190:38) - -from: - -```javascript - function test(foo) { - assert.string(foo, 'foo'); - } -``` - -There you go. You can check that arrays are of a homogeneous type with `Arrayof$Type`: - -```javascript - function test(foo) { - assert.arrayOfString(foo, 'foo'); - } -``` - -You can assert IFF an argument is not `undefined` (i.e., an optional arg): - -```javascript - assert.optionalString(foo, 'foo'); -``` - -Lastly, you can opt-out of assertion checking altogether by setting the -environment variable `NODE_NDEBUG=1`. This is pseudo-useful if you have -lots of assertions, and don't want to pay `typeof ()` taxes to v8 in -production. Be advised: The standard functions re-exported from `assert` are -also disabled in assert-plus if NDEBUG is specified. Using them directly from -the `assert` module avoids this behavior. - -The complete list of APIs is: - -* assert.array -* assert.bool -* assert.buffer -* assert.func -* assert.number -* assert.finite -* assert.object -* assert.string -* assert.stream -* assert.date -* assert.regexp -* assert.uuid -* assert.arrayOfArray -* assert.arrayOfBool -* assert.arrayOfBuffer -* assert.arrayOfFunc -* assert.arrayOfNumber -* assert.arrayOfFinite -* assert.arrayOfObject -* assert.arrayOfString -* assert.arrayOfStream -* assert.arrayOfDate -* assert.arrayOfRegexp -* assert.arrayOfUuid -* assert.optionalArray -* assert.optionalBool -* assert.optionalBuffer -* assert.optionalFunc -* assert.optionalNumber -* assert.optionalFinite -* assert.optionalObject -* assert.optionalString -* assert.optionalStream -* assert.optionalDate -* assert.optionalRegexp -* assert.optionalUuid -* assert.optionalArrayOfArray -* assert.optionalArrayOfBool -* assert.optionalArrayOfBuffer -* assert.optionalArrayOfFunc -* assert.optionalArrayOfNumber -* assert.optionalArrayOfFinite -* assert.optionalArrayOfObject -* assert.optionalArrayOfString -* assert.optionalArrayOfStream -* assert.optionalArrayOfDate -* assert.optionalArrayOfRegexp -* assert.optionalArrayOfUuid -* assert.AssertionError -* assert.fail -* assert.ok -* assert.equal -* assert.notEqual -* assert.deepEqual -* assert.notDeepEqual -* assert.strictEqual -* assert.notStrictEqual -* assert.throws -* assert.doesNotThrow -* assert.ifError - -# Installation - - npm install assert-plus - -## License - -The MIT License (MIT) -Copyright (c) 2012 Mark Cavage - -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. - -## Bugs - -See . diff --git a/deps/npm/node_modules/assert-plus/assert.js b/deps/npm/node_modules/assert-plus/assert.js deleted file mode 100644 index 26f944eec307a0..00000000000000 --- a/deps/npm/node_modules/assert-plus/assert.js +++ /dev/null @@ -1,211 +0,0 @@ -// Copyright (c) 2012, Mark Cavage. All rights reserved. -// Copyright 2015 Joyent, Inc. - -var assert = require('assert'); -var Stream = require('stream').Stream; -var util = require('util'); - - -///--- Globals - -/* JSSTYLED */ -var UUID_REGEXP = /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/; - - -///--- Internal - -function _capitalize(str) { - return (str.charAt(0).toUpperCase() + str.slice(1)); -} - -function _toss(name, expected, oper, arg, actual) { - throw new assert.AssertionError({ - message: util.format('%s (%s) is required', name, expected), - actual: (actual === undefined) ? typeof (arg) : actual(arg), - expected: expected, - operator: oper || '===', - stackStartFunction: _toss.caller - }); -} - -function _getClass(arg) { - return (Object.prototype.toString.call(arg).slice(8, -1)); -} - -function noop() { - // Why even bother with asserts? -} - - -///--- Exports - -var types = { - bool: { - check: function (arg) { return typeof (arg) === 'boolean'; } - }, - func: { - check: function (arg) { return typeof (arg) === 'function'; } - }, - string: { - check: function (arg) { return typeof (arg) === 'string'; } - }, - object: { - check: function (arg) { - return typeof (arg) === 'object' && arg !== null; - } - }, - number: { - check: function (arg) { - return typeof (arg) === 'number' && !isNaN(arg); - } - }, - finite: { - check: function (arg) { - return typeof (arg) === 'number' && !isNaN(arg) && isFinite(arg); - } - }, - buffer: { - check: function (arg) { return Buffer.isBuffer(arg); }, - operator: 'Buffer.isBuffer' - }, - array: { - check: function (arg) { return Array.isArray(arg); }, - operator: 'Array.isArray' - }, - stream: { - check: function (arg) { return arg instanceof Stream; }, - operator: 'instanceof', - actual: _getClass - }, - date: { - check: function (arg) { return arg instanceof Date; }, - operator: 'instanceof', - actual: _getClass - }, - regexp: { - check: function (arg) { return arg instanceof RegExp; }, - operator: 'instanceof', - actual: _getClass - }, - uuid: { - check: function (arg) { - return typeof (arg) === 'string' && UUID_REGEXP.test(arg); - }, - operator: 'isUUID' - } -}; - -function _setExports(ndebug) { - var keys = Object.keys(types); - var out; - - /* re-export standard assert */ - if (process.env.NODE_NDEBUG) { - out = noop; - } else { - out = function (arg, msg) { - if (!arg) { - _toss(msg, 'true', arg); - } - }; - } - - /* standard checks */ - keys.forEach(function (k) { - if (ndebug) { - out[k] = noop; - return; - } - var type = types[k]; - out[k] = function (arg, msg) { - if (!type.check(arg)) { - _toss(msg, k, type.operator, arg, type.actual); - } - }; - }); - - /* optional checks */ - keys.forEach(function (k) { - var name = 'optional' + _capitalize(k); - if (ndebug) { - out[name] = noop; - return; - } - var type = types[k]; - out[name] = function (arg, msg) { - if (arg === undefined || arg === null) { - return; - } - if (!type.check(arg)) { - _toss(msg, k, type.operator, arg, type.actual); - } - }; - }); - - /* arrayOf checks */ - keys.forEach(function (k) { - var name = 'arrayOf' + _capitalize(k); - if (ndebug) { - out[name] = noop; - return; - } - var type = types[k]; - var expected = '[' + k + ']'; - out[name] = function (arg, msg) { - if (!Array.isArray(arg)) { - _toss(msg, expected, type.operator, arg, type.actual); - } - var i; - for (i = 0; i < arg.length; i++) { - if (!type.check(arg[i])) { - _toss(msg, expected, type.operator, arg, type.actual); - } - } - }; - }); - - /* optionalArrayOf checks */ - keys.forEach(function (k) { - var name = 'optionalArrayOf' + _capitalize(k); - if (ndebug) { - out[name] = noop; - return; - } - var type = types[k]; - var expected = '[' + k + ']'; - out[name] = function (arg, msg) { - if (arg === undefined || arg === null) { - return; - } - if (!Array.isArray(arg)) { - _toss(msg, expected, type.operator, arg, type.actual); - } - var i; - for (i = 0; i < arg.length; i++) { - if (!type.check(arg[i])) { - _toss(msg, expected, type.operator, arg, type.actual); - } - } - }; - }); - - /* re-export built-in assertions */ - Object.keys(assert).forEach(function (k) { - if (k === 'AssertionError') { - out[k] = assert[k]; - return; - } - if (ndebug) { - out[k] = noop; - return; - } - out[k] = assert[k]; - }); - - /* export ourselves (for unit tests _only_) */ - out._setExports = _setExports; - - return out; -} - -module.exports = _setExports(process.env.NODE_NDEBUG); diff --git a/deps/npm/node_modules/assert-plus/package.json b/deps/npm/node_modules/assert-plus/package.json deleted file mode 100644 index 40d6a5cd8f3cc1..00000000000000 --- a/deps/npm/node_modules/assert-plus/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "author": "Mark Cavage ", - "name": "assert-plus", - "description": "Extra assertions on top of node's assert module", - "version": "1.0.0", - "license": "MIT", - "main": "./assert.js", - "devDependencies": { - "tape": "4.2.2", - "faucet": "0.0.1" - }, - "optionalDependencies": {}, - "scripts": { - "test": "./node_modules/.bin/tape tests/*.js | ./node_modules/.bin/faucet" - }, - "repository": { - "type": "git", - "url": "https://github.com/mcavage/node-assert-plus.git" - }, - "engines": { - "node": ">=0.8" - } -} diff --git a/deps/npm/node_modules/asynckit/LICENSE b/deps/npm/node_modules/asynckit/LICENSE deleted file mode 100644 index c9eca5dd999d7c..00000000000000 --- a/deps/npm/node_modules/asynckit/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2016 Alex Indigo - -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/deps/npm/node_modules/asynckit/README.md b/deps/npm/node_modules/asynckit/README.md deleted file mode 100644 index ddcc7e6b95ca9a..00000000000000 --- a/deps/npm/node_modules/asynckit/README.md +++ /dev/null @@ -1,233 +0,0 @@ -# asynckit [![NPM Module](https://img.shields.io/npm/v/asynckit.svg?style=flat)](https://www.npmjs.com/package/asynckit) - -Minimal async jobs utility library, with streams support. - -[![PhantomJS Build](https://img.shields.io/travis/alexindigo/asynckit/v0.4.0.svg?label=browser&style=flat)](https://travis-ci.org/alexindigo/asynckit) -[![Linux Build](https://img.shields.io/travis/alexindigo/asynckit/v0.4.0.svg?label=linux:0.12-6.x&style=flat)](https://travis-ci.org/alexindigo/asynckit) -[![Windows Build](https://img.shields.io/appveyor/ci/alexindigo/asynckit/v0.4.0.svg?label=windows:0.12-6.x&style=flat)](https://ci.appveyor.com/project/alexindigo/asynckit) - -[![Coverage Status](https://img.shields.io/coveralls/alexindigo/asynckit/v0.4.0.svg?label=code+coverage&style=flat)](https://coveralls.io/github/alexindigo/asynckit?branch=master) -[![Dependency Status](https://img.shields.io/david/alexindigo/asynckit/v0.4.0.svg?style=flat)](https://david-dm.org/alexindigo/asynckit) -[![bitHound Overall Score](https://www.bithound.io/github/alexindigo/asynckit/badges/score.svg)](https://www.bithound.io/github/alexindigo/asynckit) - - - -AsyncKit provides harness for `parallel` and `serial` iterators over list of items represented by arrays or objects. -Optionally it accepts abort function (should be synchronously return by iterator for each item), and terminates left over jobs upon an error event. For specific iteration order built-in (`ascending` and `descending`) and custom sort helpers also supported, via `asynckit.serialOrdered` method. - -It ensures async operations to keep behavior more stable and prevent `Maximum call stack size exceeded` errors, from sync iterators. - -| compression | size | -| :----------------- | -------: | -| asynckit.js | 12.34 kB | -| asynckit.min.js | 4.11 kB | -| asynckit.min.js.gz | 1.47 kB | - - -## Install - -```sh -$ npm install --save asynckit -``` - -## Examples - -### Parallel Jobs - -Runs iterator over provided array in parallel. Stores output in the `result` array, -on the matching positions. In unlikely event of an error from one of the jobs, -will terminate rest of the active jobs (if abort function is provided) -and return error along with salvaged data to the main callback function. - -#### Input Array - -```javascript -var parallel = require('asynckit').parallel - , assert = require('assert') - ; - -var source = [ 1, 1, 4, 16, 64, 32, 8, 2 ] - , expectedResult = [ 2, 2, 8, 32, 128, 64, 16, 4 ] - , expectedTarget = [ 1, 1, 2, 4, 8, 16, 32, 64 ] - , target = [] - ; - -parallel(source, asyncJob, function(err, result) -{ - assert.deepEqual(result, expectedResult); - assert.deepEqual(target, expectedTarget); -}); - -// async job accepts one element from the array -// and a callback function -function asyncJob(item, cb) -{ - // different delays (in ms) per item - var delay = item * 25; - - // pretend different jobs take different time to finish - // and not in consequential order - var timeoutId = setTimeout(function() { - target.push(item); - cb(null, item * 2); - }, delay); - - // allow to cancel "leftover" jobs upon error - // return function, invoking of which will abort this job - return clearTimeout.bind(null, timeoutId); -} -``` - -More examples could be found in [test/test-parallel-array.js](test/test-parallel-array.js). - -#### Input Object - -Also it supports named jobs, listed via object. - -```javascript -var parallel = require('asynckit/parallel') - , assert = require('assert') - ; - -var source = { first: 1, one: 1, four: 4, sixteen: 16, sixtyFour: 64, thirtyTwo: 32, eight: 8, two: 2 } - , expectedResult = { first: 2, one: 2, four: 8, sixteen: 32, sixtyFour: 128, thirtyTwo: 64, eight: 16, two: 4 } - , expectedTarget = [ 1, 1, 2, 4, 8, 16, 32, 64 ] - , expectedKeys = [ 'first', 'one', 'two', 'four', 'eight', 'sixteen', 'thirtyTwo', 'sixtyFour' ] - , target = [] - , keys = [] - ; - -parallel(source, asyncJob, function(err, result) -{ - assert.deepEqual(result, expectedResult); - assert.deepEqual(target, expectedTarget); - assert.deepEqual(keys, expectedKeys); -}); - -// supports full value, key, callback (shortcut) interface -function asyncJob(item, key, cb) -{ - // different delays (in ms) per item - var delay = item * 25; - - // pretend different jobs take different time to finish - // and not in consequential order - var timeoutId = setTimeout(function() { - keys.push(key); - target.push(item); - cb(null, item * 2); - }, delay); - - // allow to cancel "leftover" jobs upon error - // return function, invoking of which will abort this job - return clearTimeout.bind(null, timeoutId); -} -``` - -More examples could be found in [test/test-parallel-object.js](test/test-parallel-object.js). - -### Serial Jobs - -Runs iterator over provided array sequentially. Stores output in the `result` array, -on the matching positions. In unlikely event of an error from one of the jobs, -will not proceed to the rest of the items in the list -and return error along with salvaged data to the main callback function. - -#### Input Array - -```javascript -var serial = require('asynckit/serial') - , assert = require('assert') - ; - -var source = [ 1, 1, 4, 16, 64, 32, 8, 2 ] - , expectedResult = [ 2, 2, 8, 32, 128, 64, 16, 4 ] - , expectedTarget = [ 0, 1, 2, 3, 4, 5, 6, 7 ] - , target = [] - ; - -serial(source, asyncJob, function(err, result) -{ - assert.deepEqual(result, expectedResult); - assert.deepEqual(target, expectedTarget); -}); - -// extended interface (item, key, callback) -// also supported for arrays -function asyncJob(item, key, cb) -{ - target.push(key); - - // it will be automatically made async - // even it iterator "returns" in the same event loop - cb(null, item * 2); -} -``` - -More examples could be found in [test/test-serial-array.js](test/test-serial-array.js). - -#### Input Object - -Also it supports named jobs, listed via object. - -```javascript -var serial = require('asynckit').serial - , assert = require('assert') - ; - -var source = [ 1, 1, 4, 16, 64, 32, 8, 2 ] - , expectedResult = [ 2, 2, 8, 32, 128, 64, 16, 4 ] - , expectedTarget = [ 0, 1, 2, 3, 4, 5, 6, 7 ] - , target = [] - ; - -var source = { first: 1, one: 1, four: 4, sixteen: 16, sixtyFour: 64, thirtyTwo: 32, eight: 8, two: 2 } - , expectedResult = { first: 2, one: 2, four: 8, sixteen: 32, sixtyFour: 128, thirtyTwo: 64, eight: 16, two: 4 } - , expectedTarget = [ 1, 1, 4, 16, 64, 32, 8, 2 ] - , target = [] - ; - - -serial(source, asyncJob, function(err, result) -{ - assert.deepEqual(result, expectedResult); - assert.deepEqual(target, expectedTarget); -}); - -// shortcut interface (item, callback) -// works for object as well as for the arrays -function asyncJob(item, cb) -{ - target.push(item); - - // it will be automatically made async - // even it iterator "returns" in the same event loop - cb(null, item * 2); -} -``` - -More examples could be found in [test/test-serial-object.js](test/test-serial-object.js). - -_Note: Since _object_ is an _unordered_ collection of properties, -it may produce unexpected results with sequential iterations. -Whenever order of the jobs' execution is important please use `serialOrdered` method._ - -### Ordered Serial Iterations - -TBD - -For example [compare-property](compare-property) package. - -### Streaming interface - -TBD - -## Want to Know More? - -More examples can be found in [test folder](test/). - -Or open an [issue](https://github.com/alexindigo/asynckit/issues) with questions and/or suggestions. - -## License - -AsyncKit is licensed under the MIT license. diff --git a/deps/npm/node_modules/asynckit/bench.js b/deps/npm/node_modules/asynckit/bench.js deleted file mode 100644 index c612f1a55fda02..00000000000000 --- a/deps/npm/node_modules/asynckit/bench.js +++ /dev/null @@ -1,76 +0,0 @@ -/* eslint no-console: "off" */ - -var asynckit = require('./') - , async = require('async') - , assert = require('assert') - , expected = 0 - ; - -var Benchmark = require('benchmark'); -var suite = new Benchmark.Suite; - -var source = []; -for (var z = 1; z < 100; z++) -{ - source.push(z); - expected += z; -} - -suite -// add tests - -.add('async.map', function(deferred) -{ - var total = 0; - - async.map(source, - function(i, cb) - { - setImmediate(function() - { - total += i; - cb(null, total); - }); - }, - function(err, result) - { - assert.ifError(err); - assert.equal(result[result.length - 1], expected); - deferred.resolve(); - }); -}, {'defer': true}) - - -.add('asynckit.parallel', function(deferred) -{ - var total = 0; - - asynckit.parallel(source, - function(i, cb) - { - setImmediate(function() - { - total += i; - cb(null, total); - }); - }, - function(err, result) - { - assert.ifError(err); - assert.equal(result[result.length - 1], expected); - deferred.resolve(); - }); -}, {'defer': true}) - - -// add listeners -.on('cycle', function(ev) -{ - console.log(String(ev.target)); -}) -.on('complete', function() -{ - console.log('Fastest is ' + this.filter('fastest').map('name')); -}) -// run async -.run({ 'async': true }); diff --git a/deps/npm/node_modules/asynckit/index.js b/deps/npm/node_modules/asynckit/index.js deleted file mode 100644 index 455f9454ee6483..00000000000000 --- a/deps/npm/node_modules/asynckit/index.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = -{ - parallel : require('./parallel.js'), - serial : require('./serial.js'), - serialOrdered : require('./serialOrdered.js') -}; diff --git a/deps/npm/node_modules/asynckit/lib/abort.js b/deps/npm/node_modules/asynckit/lib/abort.js deleted file mode 100644 index 114367e5fbf144..00000000000000 --- a/deps/npm/node_modules/asynckit/lib/abort.js +++ /dev/null @@ -1,29 +0,0 @@ -// API -module.exports = abort; - -/** - * Aborts leftover active jobs - * - * @param {object} state - current state object - */ -function abort(state) -{ - Object.keys(state.jobs).forEach(clean.bind(state)); - - // reset leftover jobs - state.jobs = {}; -} - -/** - * Cleans up leftover job by invoking abort function for the provided job id - * - * @this state - * @param {string|number} key - job id to abort - */ -function clean(key) -{ - if (typeof this.jobs[key] == 'function') - { - this.jobs[key](); - } -} diff --git a/deps/npm/node_modules/asynckit/lib/async.js b/deps/npm/node_modules/asynckit/lib/async.js deleted file mode 100644 index 7f1288a4ce9ae0..00000000000000 --- a/deps/npm/node_modules/asynckit/lib/async.js +++ /dev/null @@ -1,34 +0,0 @@ -var defer = require('./defer.js'); - -// API -module.exports = async; - -/** - * Runs provided callback asynchronously - * even if callback itself is not - * - * @param {function} callback - callback to invoke - * @returns {function} - augmented callback - */ -function async(callback) -{ - var isAsync = false; - - // check if async happened - defer(function() { isAsync = true; }); - - return function async_callback(err, result) - { - if (isAsync) - { - callback(err, result); - } - else - { - defer(function nextTick_callback() - { - callback(err, result); - }); - } - }; -} diff --git a/deps/npm/node_modules/asynckit/lib/defer.js b/deps/npm/node_modules/asynckit/lib/defer.js deleted file mode 100644 index b67110c7ad6e55..00000000000000 --- a/deps/npm/node_modules/asynckit/lib/defer.js +++ /dev/null @@ -1,26 +0,0 @@ -module.exports = defer; - -/** - * Runs provided function on next iteration of the event loop - * - * @param {function} fn - function to run - */ -function defer(fn) -{ - var nextTick = typeof setImmediate == 'function' - ? setImmediate - : ( - typeof process == 'object' && typeof process.nextTick == 'function' - ? process.nextTick - : null - ); - - if (nextTick) - { - nextTick(fn); - } - else - { - setTimeout(fn, 0); - } -} diff --git a/deps/npm/node_modules/asynckit/lib/iterate.js b/deps/npm/node_modules/asynckit/lib/iterate.js deleted file mode 100644 index 5d2839a590b2ba..00000000000000 --- a/deps/npm/node_modules/asynckit/lib/iterate.js +++ /dev/null @@ -1,75 +0,0 @@ -var async = require('./async.js') - , abort = require('./abort.js') - ; - -// API -module.exports = iterate; - -/** - * Iterates over each job object - * - * @param {array|object} list - array or object (named list) to iterate over - * @param {function} iterator - iterator to run - * @param {object} state - current job status - * @param {function} callback - invoked when all elements processed - */ -function iterate(list, iterator, state, callback) -{ - // store current index - var key = state['keyedList'] ? state['keyedList'][state.index] : state.index; - - state.jobs[key] = runJob(iterator, key, list[key], function(error, output) - { - // don't repeat yourself - // skip secondary callbacks - if (!(key in state.jobs)) - { - return; - } - - // clean up jobs - delete state.jobs[key]; - - if (error) - { - // don't process rest of the results - // stop still active jobs - // and reset the list - abort(state); - } - else - { - state.results[key] = output; - } - - // return salvaged results - callback(error, state.results); - }); -} - -/** - * Runs iterator over provided job element - * - * @param {function} iterator - iterator to invoke - * @param {string|number} key - key/index of the element in the list of jobs - * @param {mixed} item - job description - * @param {function} callback - invoked after iterator is done with the job - * @returns {function|mixed} - job abort function or something else - */ -function runJob(iterator, key, item, callback) -{ - var aborter; - - // allow shortcut if iterator expects only two arguments - if (iterator.length == 2) - { - aborter = iterator(item, async(callback)); - } - // otherwise go with full three arguments - else - { - aborter = iterator(item, key, async(callback)); - } - - return aborter; -} diff --git a/deps/npm/node_modules/asynckit/lib/readable_asynckit.js b/deps/npm/node_modules/asynckit/lib/readable_asynckit.js deleted file mode 100644 index 78ad240f0afd80..00000000000000 --- a/deps/npm/node_modules/asynckit/lib/readable_asynckit.js +++ /dev/null @@ -1,91 +0,0 @@ -var streamify = require('./streamify.js') - , defer = require('./defer.js') - ; - -// API -module.exports = ReadableAsyncKit; - -/** - * Base constructor for all streams - * used to hold properties/methods - */ -function ReadableAsyncKit() -{ - ReadableAsyncKit.super_.apply(this, arguments); - - // list of active jobs - this.jobs = {}; - - // add stream methods - this.destroy = destroy; - this._start = _start; - this._read = _read; -} - -/** - * Destroys readable stream, - * by aborting outstanding jobs - * - * @returns {void} - */ -function destroy() -{ - if (this.destroyed) - { - return; - } - - this.destroyed = true; - - if (typeof this.terminator == 'function') - { - this.terminator(); - } -} - -/** - * Starts provided jobs in async manner - * - * @private - */ -function _start() -{ - // first argument – runner function - var runner = arguments[0] - // take away first argument - , args = Array.prototype.slice.call(arguments, 1) - // second argument - input data - , input = args[0] - // last argument - result callback - , endCb = streamify.callback.call(this, args[args.length - 1]) - ; - - args[args.length - 1] = endCb; - // third argument - iterator - args[1] = streamify.iterator.call(this, args[1]); - - // allow time for proper setup - defer(function() - { - if (!this.destroyed) - { - this.terminator = runner.apply(null, args); - } - else - { - endCb(null, Array.isArray(input) ? [] : {}); - } - }.bind(this)); -} - - -/** - * Implement _read to comply with Readable streams - * Doesn't really make sense for flowing object mode - * - * @private - */ -function _read() -{ - -} diff --git a/deps/npm/node_modules/asynckit/lib/readable_parallel.js b/deps/npm/node_modules/asynckit/lib/readable_parallel.js deleted file mode 100644 index 5d2929f7a67750..00000000000000 --- a/deps/npm/node_modules/asynckit/lib/readable_parallel.js +++ /dev/null @@ -1,25 +0,0 @@ -var parallel = require('../parallel.js'); - -// API -module.exports = ReadableParallel; - -/** - * Streaming wrapper to `asynckit.parallel` - * - * @param {array|object} list - array or object (named list) to iterate over - * @param {function} iterator - iterator to run - * @param {function} callback - invoked when all elements processed - * @returns {stream.Readable#} - */ -function ReadableParallel(list, iterator, callback) -{ - if (!(this instanceof ReadableParallel)) - { - return new ReadableParallel(list, iterator, callback); - } - - // turn on object mode - ReadableParallel.super_.call(this, {objectMode: true}); - - this._start(parallel, list, iterator, callback); -} diff --git a/deps/npm/node_modules/asynckit/lib/readable_serial.js b/deps/npm/node_modules/asynckit/lib/readable_serial.js deleted file mode 100644 index 78226982041ce4..00000000000000 --- a/deps/npm/node_modules/asynckit/lib/readable_serial.js +++ /dev/null @@ -1,25 +0,0 @@ -var serial = require('../serial.js'); - -// API -module.exports = ReadableSerial; - -/** - * Streaming wrapper to `asynckit.serial` - * - * @param {array|object} list - array or object (named list) to iterate over - * @param {function} iterator - iterator to run - * @param {function} callback - invoked when all elements processed - * @returns {stream.Readable#} - */ -function ReadableSerial(list, iterator, callback) -{ - if (!(this instanceof ReadableSerial)) - { - return new ReadableSerial(list, iterator, callback); - } - - // turn on object mode - ReadableSerial.super_.call(this, {objectMode: true}); - - this._start(serial, list, iterator, callback); -} diff --git a/deps/npm/node_modules/asynckit/lib/readable_serial_ordered.js b/deps/npm/node_modules/asynckit/lib/readable_serial_ordered.js deleted file mode 100644 index 3de89c47291b40..00000000000000 --- a/deps/npm/node_modules/asynckit/lib/readable_serial_ordered.js +++ /dev/null @@ -1,29 +0,0 @@ -var serialOrdered = require('../serialOrdered.js'); - -// API -module.exports = ReadableSerialOrdered; -// expose sort helpers -module.exports.ascending = serialOrdered.ascending; -module.exports.descending = serialOrdered.descending; - -/** - * Streaming wrapper to `asynckit.serialOrdered` - * - * @param {array|object} list - array or object (named list) to iterate over - * @param {function} iterator - iterator to run - * @param {function} sortMethod - custom sort function - * @param {function} callback - invoked when all elements processed - * @returns {stream.Readable#} - */ -function ReadableSerialOrdered(list, iterator, sortMethod, callback) -{ - if (!(this instanceof ReadableSerialOrdered)) - { - return new ReadableSerialOrdered(list, iterator, sortMethod, callback); - } - - // turn on object mode - ReadableSerialOrdered.super_.call(this, {objectMode: true}); - - this._start(serialOrdered, list, iterator, sortMethod, callback); -} diff --git a/deps/npm/node_modules/asynckit/lib/state.js b/deps/npm/node_modules/asynckit/lib/state.js deleted file mode 100644 index cbea7ad8f6bc63..00000000000000 --- a/deps/npm/node_modules/asynckit/lib/state.js +++ /dev/null @@ -1,37 +0,0 @@ -// API -module.exports = state; - -/** - * Creates initial state object - * for iteration over list - * - * @param {array|object} list - list to iterate over - * @param {function|null} sortMethod - function to use for keys sort, - * or `null` to keep them as is - * @returns {object} - initial state object - */ -function state(list, sortMethod) -{ - var isNamedList = !Array.isArray(list) - , initState = - { - index : 0, - keyedList: isNamedList || sortMethod ? Object.keys(list) : null, - jobs : {}, - results : isNamedList ? {} : [], - size : isNamedList ? Object.keys(list).length : list.length - } - ; - - if (sortMethod) - { - // sort array keys based on it's values - // sort object's keys just on own merit - initState.keyedList.sort(isNamedList ? sortMethod : function(a, b) - { - return sortMethod(list[a], list[b]); - }); - } - - return initState; -} diff --git a/deps/npm/node_modules/asynckit/lib/streamify.js b/deps/npm/node_modules/asynckit/lib/streamify.js deleted file mode 100644 index f56a1c92bf5c21..00000000000000 --- a/deps/npm/node_modules/asynckit/lib/streamify.js +++ /dev/null @@ -1,141 +0,0 @@ -var async = require('./async.js'); - -// API -module.exports = { - iterator: wrapIterator, - callback: wrapCallback -}; - -/** - * Wraps iterators with long signature - * - * @this ReadableAsyncKit# - * @param {function} iterator - function to wrap - * @returns {function} - wrapped function - */ -function wrapIterator(iterator) -{ - var stream = this; - - return function(item, key, cb) - { - var aborter - , wrappedCb = async(wrapIteratorCallback.call(stream, cb, key)) - ; - - stream.jobs[key] = wrappedCb; - - // it's either shortcut (item, cb) - if (iterator.length == 2) - { - aborter = iterator(item, wrappedCb); - } - // or long format (item, key, cb) - else - { - aborter = iterator(item, key, wrappedCb); - } - - return aborter; - }; -} - -/** - * Wraps provided callback function - * allowing to execute snitch function before - * real callback - * - * @this ReadableAsyncKit# - * @param {function} callback - function to wrap - * @returns {function} - wrapped function - */ -function wrapCallback(callback) -{ - var stream = this; - - var wrapped = function(error, result) - { - return finisher.call(stream, error, result, callback); - }; - - return wrapped; -} - -/** - * Wraps provided iterator callback function - * makes sure snitch only called once, - * but passes secondary calls to the original callback - * - * @this ReadableAsyncKit# - * @param {function} callback - callback to wrap - * @param {number|string} key - iteration key - * @returns {function} wrapped callback - */ -function wrapIteratorCallback(callback, key) -{ - var stream = this; - - return function(error, output) - { - // don't repeat yourself - if (!(key in stream.jobs)) - { - callback(error, output); - return; - } - - // clean up jobs - delete stream.jobs[key]; - - return streamer.call(stream, error, {key: key, value: output}, callback); - }; -} - -/** - * Stream wrapper for iterator callback - * - * @this ReadableAsyncKit# - * @param {mixed} error - error response - * @param {mixed} output - iterator output - * @param {function} callback - callback that expects iterator results - */ -function streamer(error, output, callback) -{ - if (error && !this.error) - { - this.error = error; - this.pause(); - this.emit('error', error); - // send back value only, as expected - callback(error, output && output.value); - return; - } - - // stream stuff - this.push(output); - - // back to original track - // send back value only, as expected - callback(error, output && output.value); -} - -/** - * Stream wrapper for finishing callback - * - * @this ReadableAsyncKit# - * @param {mixed} error - error response - * @param {mixed} output - iterator output - * @param {function} callback - callback that expects final results - */ -function finisher(error, output, callback) -{ - // signal end of the stream - // only for successfully finished streams - if (!error) - { - this.push(null); - } - - // back to original track - callback(error, output); -} diff --git a/deps/npm/node_modules/asynckit/lib/terminator.js b/deps/npm/node_modules/asynckit/lib/terminator.js deleted file mode 100644 index d6eb99219f3d9d..00000000000000 --- a/deps/npm/node_modules/asynckit/lib/terminator.js +++ /dev/null @@ -1,29 +0,0 @@ -var abort = require('./abort.js') - , async = require('./async.js') - ; - -// API -module.exports = terminator; - -/** - * Terminates jobs in the attached state context - * - * @this AsyncKitState# - * @param {function} callback - final callback to invoke after termination - */ -function terminator(callback) -{ - if (!Object.keys(this.jobs).length) - { - return; - } - - // fast forward iteration index - this.index = this.size; - - // abort jobs - abort(this); - - // send back results we have so far - async(callback)(null, this.results); -} diff --git a/deps/npm/node_modules/asynckit/package.json b/deps/npm/node_modules/asynckit/package.json deleted file mode 100644 index 51147d6569aa0f..00000000000000 --- a/deps/npm/node_modules/asynckit/package.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "name": "asynckit", - "version": "0.4.0", - "description": "Minimal async jobs utility library, with streams support", - "main": "index.js", - "scripts": { - "clean": "rimraf coverage", - "lint": "eslint *.js lib/*.js test/*.js", - "test": "istanbul cover --reporter=json tape -- 'test/test-*.js' | tap-spec", - "win-test": "tape test/test-*.js", - "browser": "browserify -t browserify-istanbul test/lib/browserify_adjustment.js test/test-*.js | obake --coverage | tap-spec", - "report": "istanbul report", - "size": "browserify index.js | size-table asynckit", - "debug": "tape test/test-*.js" - }, - "pre-commit": [ - "clean", - "lint", - "test", - "browser", - "report", - "size" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/alexindigo/asynckit.git" - }, - "keywords": [ - "async", - "jobs", - "parallel", - "serial", - "iterator", - "array", - "object", - "stream", - "destroy", - "terminate", - "abort" - ], - "author": "Alex Indigo ", - "license": "MIT", - "bugs": { - "url": "https://github.com/alexindigo/asynckit/issues" - }, - "homepage": "https://github.com/alexindigo/asynckit#readme", - "devDependencies": { - "browserify": "^13.0.0", - "browserify-istanbul": "^2.0.0", - "coveralls": "^2.11.9", - "eslint": "^2.9.0", - "istanbul": "^0.4.3", - "obake": "^0.1.2", - "phantomjs-prebuilt": "^2.1.7", - "pre-commit": "^1.1.3", - "reamde": "^1.1.0", - "rimraf": "^2.5.2", - "size-table": "^0.2.0", - "tap-spec": "^4.1.1", - "tape": "^4.5.1" - }, - "dependencies": {} -} diff --git a/deps/npm/node_modules/asynckit/parallel.js b/deps/npm/node_modules/asynckit/parallel.js deleted file mode 100644 index 3c50344d8515f8..00000000000000 --- a/deps/npm/node_modules/asynckit/parallel.js +++ /dev/null @@ -1,43 +0,0 @@ -var iterate = require('./lib/iterate.js') - , initState = require('./lib/state.js') - , terminator = require('./lib/terminator.js') - ; - -// Public API -module.exports = parallel; - -/** - * Runs iterator over provided array elements in parallel - * - * @param {array|object} list - array or object (named list) to iterate over - * @param {function} iterator - iterator to run - * @param {function} callback - invoked when all elements processed - * @returns {function} - jobs terminator - */ -function parallel(list, iterator, callback) -{ - var state = initState(list); - - while (state.index < (state['keyedList'] || list).length) - { - iterate(list, iterator, state, function(error, result) - { - if (error) - { - callback(error, result); - return; - } - - // looks like it's the last one - if (Object.keys(state.jobs).length === 0) - { - callback(null, state.results); - return; - } - }); - - state.index++; - } - - return terminator.bind(state, callback); -} diff --git a/deps/npm/node_modules/asynckit/serial.js b/deps/npm/node_modules/asynckit/serial.js deleted file mode 100644 index 6cd949a6777137..00000000000000 --- a/deps/npm/node_modules/asynckit/serial.js +++ /dev/null @@ -1,17 +0,0 @@ -var serialOrdered = require('./serialOrdered.js'); - -// Public API -module.exports = serial; - -/** - * Runs iterator over provided array elements in series - * - * @param {array|object} list - array or object (named list) to iterate over - * @param {function} iterator - iterator to run - * @param {function} callback - invoked when all elements processed - * @returns {function} - jobs terminator - */ -function serial(list, iterator, callback) -{ - return serialOrdered(list, iterator, null, callback); -} diff --git a/deps/npm/node_modules/asynckit/serialOrdered.js b/deps/npm/node_modules/asynckit/serialOrdered.js deleted file mode 100644 index 607eafea56cb06..00000000000000 --- a/deps/npm/node_modules/asynckit/serialOrdered.js +++ /dev/null @@ -1,75 +0,0 @@ -var iterate = require('./lib/iterate.js') - , initState = require('./lib/state.js') - , terminator = require('./lib/terminator.js') - ; - -// Public API -module.exports = serialOrdered; -// sorting helpers -module.exports.ascending = ascending; -module.exports.descending = descending; - -/** - * Runs iterator over provided sorted array elements in series - * - * @param {array|object} list - array or object (named list) to iterate over - * @param {function} iterator - iterator to run - * @param {function} sortMethod - custom sort function - * @param {function} callback - invoked when all elements processed - * @returns {function} - jobs terminator - */ -function serialOrdered(list, iterator, sortMethod, callback) -{ - var state = initState(list, sortMethod); - - iterate(list, iterator, state, function iteratorHandler(error, result) - { - if (error) - { - callback(error, result); - return; - } - - state.index++; - - // are we there yet? - if (state.index < (state['keyedList'] || list).length) - { - iterate(list, iterator, state, iteratorHandler); - return; - } - - // done here - callback(null, state.results); - }); - - return terminator.bind(state, callback); -} - -/* - * -- Sort methods - */ - -/** - * sort helper to sort array elements in ascending order - * - * @param {mixed} a - an item to compare - * @param {mixed} b - an item to compare - * @returns {number} - comparison result - */ -function ascending(a, b) -{ - return a < b ? -1 : a > b ? 1 : 0; -} - -/** - * sort helper to sort array elements in descending order - * - * @param {mixed} a - an item to compare - * @param {mixed} b - an item to compare - * @returns {number} - comparison result - */ -function descending(a, b) -{ - return -1 * ascending(a, b); -} diff --git a/deps/npm/node_modules/asynckit/stream.js b/deps/npm/node_modules/asynckit/stream.js deleted file mode 100644 index d43465f903ed63..00000000000000 --- a/deps/npm/node_modules/asynckit/stream.js +++ /dev/null @@ -1,21 +0,0 @@ -var inherits = require('util').inherits - , Readable = require('stream').Readable - , ReadableAsyncKit = require('./lib/readable_asynckit.js') - , ReadableParallel = require('./lib/readable_parallel.js') - , ReadableSerial = require('./lib/readable_serial.js') - , ReadableSerialOrdered = require('./lib/readable_serial_ordered.js') - ; - -// API -module.exports = -{ - parallel : ReadableParallel, - serial : ReadableSerial, - serialOrdered : ReadableSerialOrdered, -}; - -inherits(ReadableAsyncKit, Readable); - -inherits(ReadableParallel, ReadableAsyncKit); -inherits(ReadableSerial, ReadableAsyncKit); -inherits(ReadableSerialOrdered, ReadableAsyncKit); diff --git a/deps/npm/node_modules/aws-sign2/LICENSE b/deps/npm/node_modules/aws-sign2/LICENSE deleted file mode 100644 index a4a9aee0c2fa14..00000000000000 --- a/deps/npm/node_modules/aws-sign2/LICENSE +++ /dev/null @@ -1,55 +0,0 @@ -Apache License - -Version 2.0, January 2004 - -http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - -"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - -"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - -You must give any other recipients of the Work or Derivative Works a copy of this License; and - -You must cause any modified files to carry prominent notices stating that You changed the files; and - -You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - -If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - -5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS \ No newline at end of file diff --git a/deps/npm/node_modules/aws-sign2/README.md b/deps/npm/node_modules/aws-sign2/README.md deleted file mode 100644 index 763564e0aa5b8c..00000000000000 --- a/deps/npm/node_modules/aws-sign2/README.md +++ /dev/null @@ -1,4 +0,0 @@ -aws-sign -======== - -AWS signing. Originally pulled from LearnBoost/knox, maintained as vendor in request, now a standalone module. diff --git a/deps/npm/node_modules/aws-sign2/index.js b/deps/npm/node_modules/aws-sign2/index.js deleted file mode 100644 index fb35f6db01f6f6..00000000000000 --- a/deps/npm/node_modules/aws-sign2/index.js +++ /dev/null @@ -1,212 +0,0 @@ - -/*! - * Copyright 2010 LearnBoost - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * Module dependencies. - */ - -var crypto = require('crypto') - , parse = require('url').parse - ; - -/** - * Valid keys. - */ - -var keys = - [ 'acl' - , 'location' - , 'logging' - , 'notification' - , 'partNumber' - , 'policy' - , 'requestPayment' - , 'torrent' - , 'uploadId' - , 'uploads' - , 'versionId' - , 'versioning' - , 'versions' - , 'website' - ] - -/** - * Return an "Authorization" header value with the given `options` - * in the form of "AWS :" - * - * @param {Object} options - * @return {String} - * @api private - */ - -function authorization (options) { - return 'AWS ' + options.key + ':' + sign(options) -} - -module.exports = authorization -module.exports.authorization = authorization - -/** - * Simple HMAC-SHA1 Wrapper - * - * @param {Object} options - * @return {String} - * @api private - */ - -function hmacSha1 (options) { - return crypto.createHmac('sha1', options.secret).update(options.message).digest('base64') -} - -module.exports.hmacSha1 = hmacSha1 - -/** - * Create a base64 sha1 HMAC for `options`. - * - * @param {Object} options - * @return {String} - * @api private - */ - -function sign (options) { - options.message = stringToSign(options) - return hmacSha1(options) -} -module.exports.sign = sign - -/** - * Create a base64 sha1 HMAC for `options`. - * - * Specifically to be used with S3 presigned URLs - * - * @param {Object} options - * @return {String} - * @api private - */ - -function signQuery (options) { - options.message = queryStringToSign(options) - return hmacSha1(options) -} -module.exports.signQuery= signQuery - -/** - * Return a string for sign() with the given `options`. - * - * Spec: - * - * \n - * \n - * \n - * \n - * [headers\n] - * - * - * @param {Object} options - * @return {String} - * @api private - */ - -function stringToSign (options) { - var headers = options.amazonHeaders || '' - if (headers) headers += '\n' - var r = - [ options.verb - , options.md5 - , options.contentType - , options.date ? options.date.toUTCString() : '' - , headers + options.resource - ] - return r.join('\n') -} -module.exports.stringToSign = stringToSign - -/** - * Return a string for sign() with the given `options`, but is meant exclusively - * for S3 presigned URLs - * - * Spec: - * - * \n - * - * - * @param {Object} options - * @return {String} - * @api private - */ - -function queryStringToSign (options){ - return 'GET\n\n\n' + options.date + '\n' + options.resource -} -module.exports.queryStringToSign = queryStringToSign - -/** - * Perform the following: - * - * - ignore non-amazon headers - * - lowercase fields - * - sort lexicographically - * - trim whitespace between ":" - * - join with newline - * - * @param {Object} headers - * @return {String} - * @api private - */ - -function canonicalizeHeaders (headers) { - var buf = [] - , fields = Object.keys(headers) - ; - for (var i = 0, len = fields.length; i < len; ++i) { - var field = fields[i] - , val = headers[field] - , field = field.toLowerCase() - ; - if (0 !== field.indexOf('x-amz')) continue - buf.push(field + ':' + val) - } - return buf.sort().join('\n') -} -module.exports.canonicalizeHeaders = canonicalizeHeaders - -/** - * Perform the following: - * - * - ignore non sub-resources - * - sort lexicographically - * - * @param {String} resource - * @return {String} - * @api private - */ - -function canonicalizeResource (resource) { - var url = parse(resource, true) - , path = url.pathname - , buf = [] - ; - - Object.keys(url.query).forEach(function(key){ - if (!~keys.indexOf(key)) return - var val = '' == url.query[key] ? '' : '=' + encodeURIComponent(url.query[key]) - buf.push(key + val) - }) - - return path + (buf.length ? '?' + buf.sort().join('&') : '') -} -module.exports.canonicalizeResource = canonicalizeResource diff --git a/deps/npm/node_modules/aws-sign2/package.json b/deps/npm/node_modules/aws-sign2/package.json deleted file mode 100644 index 4c3d57e575ace3..00000000000000 --- a/deps/npm/node_modules/aws-sign2/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "author": "Mikeal Rogers (http://www.futurealoof.com)", - "name": "aws-sign2", - "description": "AWS signing. Originally pulled from LearnBoost/knox, maintained as vendor in request, now a standalone module.", - "version": "0.7.0", - "repository": { - "url": "https://github.com/mikeal/aws-sign" - }, - "license": "Apache-2.0", - "main": "index.js", - "dependencies": {}, - "devDependencies": {}, - "optionalDependencies": {}, - "engines": { - "node": "*" - } -} diff --git a/deps/npm/node_modules/aws4/.github/FUNDING.yml b/deps/npm/node_modules/aws4/.github/FUNDING.yml deleted file mode 100644 index b7fdd9747f71de..00000000000000 --- a/deps/npm/node_modules/aws4/.github/FUNDING.yml +++ /dev/null @@ -1,3 +0,0 @@ -# These are supported funding model platforms - -github: mhart diff --git a/deps/npm/node_modules/aws4/.travis.yml b/deps/npm/node_modules/aws4/.travis.yml deleted file mode 100644 index 178bf31ed7186f..00000000000000 --- a/deps/npm/node_modules/aws4/.travis.yml +++ /dev/null @@ -1,9 +0,0 @@ -language: node_js -node_js: - - "0.10" - - "0.12" - - "4" - - "6" - - "8" - - "10" - - "12" diff --git a/deps/npm/node_modules/aws4/LICENSE b/deps/npm/node_modules/aws4/LICENSE deleted file mode 100644 index 4f321e599569f4..00000000000000 --- a/deps/npm/node_modules/aws4/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright 2013 Michael Hart (michael.hart.au@gmail.com) - -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/deps/npm/node_modules/aws4/README.md b/deps/npm/node_modules/aws4/README.md deleted file mode 100644 index 7202e452f8c432..00000000000000 --- a/deps/npm/node_modules/aws4/README.md +++ /dev/null @@ -1,183 +0,0 @@ -aws4 ----- - -[![Build Status](https://api.travis-ci.org/mhart/aws4.png?branch=master)](https://travis-ci.org/github/mhart/aws4) - -A small utility to sign vanilla Node.js http(s) request options using Amazon's -[AWS Signature Version 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html). - -If you want to sign and send AWS requests in a modern browser, or an environment like [Cloudflare Workers](https://developers.cloudflare.com/workers/), then check out [aws4fetch](https://github.com/mhart/aws4fetch) – otherwise you can also bundle this library for use [in older browsers](./browser). - -The only AWS service that *doesn't* support v4 as of 2020-05-22 is -[SimpleDB](https://docs.aws.amazon.com/AmazonSimpleDB/latest/DeveloperGuide/SDB_API.html) -(it only supports [AWS Signature Version 2](https://github.com/mhart/aws2)). - -It also provides defaults for a number of core AWS headers and -request parameters, making it very easy to query AWS services, or -build out a fully-featured AWS library. - -Example -------- - -```javascript -var https = require('https') -var aws4 = require('aws4') - -// to illustrate usage, we'll create a utility function to request and pipe to stdout -function request(opts) { https.request(opts, function(res) { res.pipe(process.stdout) }).end(opts.body || '') } - -// aws4 will sign an options object as you'd pass to http.request, with an AWS service and region -var opts = { host: 'my-bucket.s3.us-west-1.amazonaws.com', path: '/my-object', service: 's3', region: 'us-west-1' } - -// aws4.sign() will sign and modify these options, ready to pass to http.request -aws4.sign(opts, { accessKeyId: '', secretAccessKey: '' }) - -// or it can get credentials from process.env.AWS_ACCESS_KEY_ID, etc -aws4.sign(opts) - -// for most AWS services, aws4 can figure out the service and region if you pass a host -opts = { host: 'my-bucket.s3.us-west-1.amazonaws.com', path: '/my-object' } - -// usually it will add/modify request headers, but you can also sign the query: -opts = { host: 'my-bucket.s3.amazonaws.com', path: '/?X-Amz-Expires=12345', signQuery: true } - -// and for services with simple hosts, aws4 can infer the host from service and region: -opts = { service: 'sqs', region: 'us-east-1', path: '/?Action=ListQueues' } - -// and if you're using us-east-1, it's the default: -opts = { service: 'sqs', path: '/?Action=ListQueues' } - -aws4.sign(opts) -console.log(opts) -/* -{ - host: 'sqs.us-east-1.amazonaws.com', - path: '/?Action=ListQueues', - headers: { - Host: 'sqs.us-east-1.amazonaws.com', - 'X-Amz-Date': '20121226T061030Z', - Authorization: 'AWS4-HMAC-SHA256 Credential=ABCDEF/20121226/us-east-1/sqs/aws4_request, ...' - } -} -*/ - -// we can now use this to query AWS -request(opts) -/* - - -... -*/ - -// aws4 can infer the HTTP method if a body is passed in -// method will be POST and Content-Type: 'application/x-www-form-urlencoded; charset=utf-8' -request(aws4.sign({ service: 'iam', body: 'Action=ListGroups&Version=2010-05-08' })) -/* - -... -*/ - -// you can specify any custom option or header as per usual -request(aws4.sign({ - service: 'dynamodb', - region: 'ap-southeast-2', - method: 'POST', - path: '/', - headers: { - 'Content-Type': 'application/x-amz-json-1.0', - 'X-Amz-Target': 'DynamoDB_20120810.ListTables' - }, - body: '{}' -})) -/* -{"TableNames":[]} -... -*/ - -// The raw RequestSigner can be used to generate CodeCommit Git passwords -var signer = new aws4.RequestSigner({ - service: 'codecommit', - host: 'git-codecommit.us-east-1.amazonaws.com', - method: 'GIT', - path: '/v1/repos/MyAwesomeRepo', -}) -var password = signer.getDateTime() + 'Z' + signer.signature() - -// see example.js for examples with other services -``` - -API ---- - -### aws4.sign(requestOptions, [credentials]) - -Calculates and populates any necessary AWS headers and/or request -options on `requestOptions`. Returns `requestOptions` as a convenience for chaining. - -`requestOptions` is an object holding the same options that the Node.js -[http.request](https://nodejs.org/docs/latest/api/http.html#http_http_request_options_callback) -function takes. - -The following properties of `requestOptions` are used in the signing or -populated if they don't already exist: - -- `hostname` or `host` (will try to be determined from `service` and `region` if not given) -- `method` (will use `'GET'` if not given or `'POST'` if there is a `body`) -- `path` (will use `'/'` if not given) -- `body` (will use `''` if not given) -- `service` (will try to be calculated from `hostname` or `host` if not given) -- `region` (will try to be calculated from `hostname` or `host` or use `'us-east-1'` if not given) -- `signQuery` (to sign the query instead of adding an `Authorization` header, defaults to false) -- `headers['Host']` (will use `hostname` or `host` or be calculated if not given) -- `headers['Content-Type']` (will use `'application/x-www-form-urlencoded; charset=utf-8'` - if not given and there is a `body`) -- `headers['Date']` (used to calculate the signature date if given, otherwise `new Date` is used) - -Your AWS credentials (which can be found in your -[AWS console](https://portal.aws.amazon.com/gp/aws/securityCredentials)) -can be specified in one of two ways: - -- As the second argument, like this: - -```javascript -aws4.sign(requestOptions, { - secretAccessKey: "", - accessKeyId: "", - sessionToken: "" -}) -``` - -- From `process.env`, such as this: - -``` -export AWS_ACCESS_KEY_ID="" -export AWS_SECRET_ACCESS_KEY="" -export AWS_SESSION_TOKEN="" -``` - -(will also use `AWS_ACCESS_KEY` and `AWS_SECRET_KEY` if available) - -The `sessionToken` property and `AWS_SESSION_TOKEN` environment variable are optional for signing -with [IAM STS temporary credentials](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html). - -Installation ------------- - -With [npm](https://www.npmjs.com/) do: - -``` -npm install aws4 -``` - -Can also be used [in the browser](./browser). - -Thanks ------- - -Thanks to [@jed](https://github.com/jed) for his -[dynamo-client](https://github.com/jed/dynamo-client) lib where I first -committed and subsequently extracted this code. - -Also thanks to the -[official Node.js AWS SDK](https://github.com/aws/aws-sdk-js) for giving -me a start on implementing the v4 signature. diff --git a/deps/npm/node_modules/aws4/aws4.js b/deps/npm/node_modules/aws4/aws4.js deleted file mode 100644 index b99b319f89f9a1..00000000000000 --- a/deps/npm/node_modules/aws4/aws4.js +++ /dev/null @@ -1,373 +0,0 @@ -var aws4 = exports, - url = require('url'), - querystring = require('querystring'), - crypto = require('crypto'), - lru = require('./lru'), - credentialsCache = lru(1000) - -// http://docs.amazonwebservices.com/general/latest/gr/signature-version-4.html - -function hmac(key, string, encoding) { - return crypto.createHmac('sha256', key).update(string, 'utf8').digest(encoding) -} - -function hash(string, encoding) { - return crypto.createHash('sha256').update(string, 'utf8').digest(encoding) -} - -// This function assumes the string has already been percent encoded -function encodeRfc3986(urlEncodedString) { - return urlEncodedString.replace(/[!'()*]/g, function(c) { - return '%' + c.charCodeAt(0).toString(16).toUpperCase() - }) -} - -function encodeRfc3986Full(str) { - return encodeRfc3986(encodeURIComponent(str)) -} - -// A bit of a combination of: -// https://github.com/aws/aws-sdk-java-v2/blob/dc695de6ab49ad03934e1b02e7263abbd2354be0/core/auth/src/main/java/software/amazon/awssdk/auth/signer/internal/AbstractAws4Signer.java#L59 -// https://github.com/aws/aws-sdk-js/blob/18cb7e5b463b46239f9fdd4a65e2ff8c81831e8f/lib/signers/v4.js#L191-L199 -// https://github.com/mhart/aws4fetch/blob/b3aed16b6f17384cf36ea33bcba3c1e9f3bdfefd/src/main.js#L25-L34 -var HEADERS_TO_IGNORE = { - 'authorization': true, - 'connection': true, - 'x-amzn-trace-id': true, - 'user-agent': true, - 'expect': true, - 'presigned-expires': true, - 'range': true, -} - -// request: { path | body, [host], [method], [headers], [service], [region] } -// credentials: { accessKeyId, secretAccessKey, [sessionToken] } -function RequestSigner(request, credentials) { - - if (typeof request === 'string') request = url.parse(request) - - var headers = request.headers = (request.headers || {}), - hostParts = (!this.service || !this.region) && this.matchHost(request.hostname || request.host || headers.Host || headers.host) - - this.request = request - this.credentials = credentials || this.defaultCredentials() - - this.service = request.service || hostParts[0] || '' - this.region = request.region || hostParts[1] || 'us-east-1' - - // SES uses a different domain from the service name - if (this.service === 'email') this.service = 'ses' - - if (!request.method && request.body) - request.method = 'POST' - - if (!headers.Host && !headers.host) { - headers.Host = request.hostname || request.host || this.createHost() - - // If a port is specified explicitly, use it as is - if (request.port) - headers.Host += ':' + request.port - } - if (!request.hostname && !request.host) - request.hostname = headers.Host || headers.host - - this.isCodeCommitGit = this.service === 'codecommit' && request.method === 'GIT' -} - -RequestSigner.prototype.matchHost = function(host) { - var match = (host || '').match(/([^\.]+)\.(?:([^\.]*)\.)?amazonaws\.com(\.cn)?$/) - var hostParts = (match || []).slice(1, 3) - - // ES's hostParts are sometimes the other way round, if the value that is expected - // to be region equals ‘es’ switch them back - // e.g. search-cluster-name-aaaa00aaaa0aaa0aaaaaaa0aaa.us-east-1.es.amazonaws.com - if (hostParts[1] === 'es') - hostParts = hostParts.reverse() - - if (hostParts[1] == 's3') { - hostParts[0] = 's3' - hostParts[1] = 'us-east-1' - } else { - for (var i = 0; i < 2; i++) { - if (/^s3-/.test(hostParts[i])) { - hostParts[1] = hostParts[i].slice(3) - hostParts[0] = 's3' - break - } - } - } - - return hostParts -} - -// http://docs.aws.amazon.com/general/latest/gr/rande.html -RequestSigner.prototype.isSingleRegion = function() { - // Special case for S3 and SimpleDB in us-east-1 - if (['s3', 'sdb'].indexOf(this.service) >= 0 && this.region === 'us-east-1') return true - - return ['cloudfront', 'ls', 'route53', 'iam', 'importexport', 'sts'] - .indexOf(this.service) >= 0 -} - -RequestSigner.prototype.createHost = function() { - var region = this.isSingleRegion() ? '' : '.' + this.region, - subdomain = this.service === 'ses' ? 'email' : this.service - return subdomain + region + '.amazonaws.com' -} - -RequestSigner.prototype.prepareRequest = function() { - this.parsePath() - - var request = this.request, headers = request.headers, query - - if (request.signQuery) { - - this.parsedPath.query = query = this.parsedPath.query || {} - - if (this.credentials.sessionToken) - query['X-Amz-Security-Token'] = this.credentials.sessionToken - - if (this.service === 's3' && !query['X-Amz-Expires']) - query['X-Amz-Expires'] = 86400 - - if (query['X-Amz-Date']) - this.datetime = query['X-Amz-Date'] - else - query['X-Amz-Date'] = this.getDateTime() - - query['X-Amz-Algorithm'] = 'AWS4-HMAC-SHA256' - query['X-Amz-Credential'] = this.credentials.accessKeyId + '/' + this.credentialString() - query['X-Amz-SignedHeaders'] = this.signedHeaders() - - } else { - - if (!request.doNotModifyHeaders && !this.isCodeCommitGit) { - if (request.body && !headers['Content-Type'] && !headers['content-type']) - headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=utf-8' - - if (request.body && !headers['Content-Length'] && !headers['content-length']) - headers['Content-Length'] = Buffer.byteLength(request.body) - - if (this.credentials.sessionToken && !headers['X-Amz-Security-Token'] && !headers['x-amz-security-token']) - headers['X-Amz-Security-Token'] = this.credentials.sessionToken - - if (this.service === 's3' && !headers['X-Amz-Content-Sha256'] && !headers['x-amz-content-sha256']) - headers['X-Amz-Content-Sha256'] = hash(this.request.body || '', 'hex') - - if (headers['X-Amz-Date'] || headers['x-amz-date']) - this.datetime = headers['X-Amz-Date'] || headers['x-amz-date'] - else - headers['X-Amz-Date'] = this.getDateTime() - } - - delete headers.Authorization - delete headers.authorization - } -} - -RequestSigner.prototype.sign = function() { - if (!this.parsedPath) this.prepareRequest() - - if (this.request.signQuery) { - this.parsedPath.query['X-Amz-Signature'] = this.signature() - } else { - this.request.headers.Authorization = this.authHeader() - } - - this.request.path = this.formatPath() - - return this.request -} - -RequestSigner.prototype.getDateTime = function() { - if (!this.datetime) { - var headers = this.request.headers, - date = new Date(headers.Date || headers.date || new Date) - - this.datetime = date.toISOString().replace(/[:\-]|\.\d{3}/g, '') - - // Remove the trailing 'Z' on the timestamp string for CodeCommit git access - if (this.isCodeCommitGit) this.datetime = this.datetime.slice(0, -1) - } - return this.datetime -} - -RequestSigner.prototype.getDate = function() { - return this.getDateTime().substr(0, 8) -} - -RequestSigner.prototype.authHeader = function() { - return [ - 'AWS4-HMAC-SHA256 Credential=' + this.credentials.accessKeyId + '/' + this.credentialString(), - 'SignedHeaders=' + this.signedHeaders(), - 'Signature=' + this.signature(), - ].join(', ') -} - -RequestSigner.prototype.signature = function() { - var date = this.getDate(), - cacheKey = [this.credentials.secretAccessKey, date, this.region, this.service].join(), - kDate, kRegion, kService, kCredentials = credentialsCache.get(cacheKey) - if (!kCredentials) { - kDate = hmac('AWS4' + this.credentials.secretAccessKey, date) - kRegion = hmac(kDate, this.region) - kService = hmac(kRegion, this.service) - kCredentials = hmac(kService, 'aws4_request') - credentialsCache.set(cacheKey, kCredentials) - } - return hmac(kCredentials, this.stringToSign(), 'hex') -} - -RequestSigner.prototype.stringToSign = function() { - return [ - 'AWS4-HMAC-SHA256', - this.getDateTime(), - this.credentialString(), - hash(this.canonicalString(), 'hex'), - ].join('\n') -} - -RequestSigner.prototype.canonicalString = function() { - if (!this.parsedPath) this.prepareRequest() - - var pathStr = this.parsedPath.path, - query = this.parsedPath.query, - headers = this.request.headers, - queryStr = '', - normalizePath = this.service !== 's3', - decodePath = this.service === 's3' || this.request.doNotEncodePath, - decodeSlashesInPath = this.service === 's3', - firstValOnly = this.service === 's3', - bodyHash - - if (this.service === 's3' && this.request.signQuery) { - bodyHash = 'UNSIGNED-PAYLOAD' - } else if (this.isCodeCommitGit) { - bodyHash = '' - } else { - bodyHash = headers['X-Amz-Content-Sha256'] || headers['x-amz-content-sha256'] || - hash(this.request.body || '', 'hex') - } - - if (query) { - var reducedQuery = Object.keys(query).reduce(function(obj, key) { - if (!key) return obj - obj[encodeRfc3986Full(key)] = !Array.isArray(query[key]) ? query[key] : - (firstValOnly ? query[key][0] : query[key]) - return obj - }, {}) - var encodedQueryPieces = [] - Object.keys(reducedQuery).sort().forEach(function(key) { - if (!Array.isArray(reducedQuery[key])) { - encodedQueryPieces.push(key + '=' + encodeRfc3986Full(reducedQuery[key])) - } else { - reducedQuery[key].map(encodeRfc3986Full).sort() - .forEach(function(val) { encodedQueryPieces.push(key + '=' + val) }) - } - }) - queryStr = encodedQueryPieces.join('&') - } - if (pathStr !== '/') { - if (normalizePath) pathStr = pathStr.replace(/\/{2,}/g, '/') - pathStr = pathStr.split('/').reduce(function(path, piece) { - if (normalizePath && piece === '..') { - path.pop() - } else if (!normalizePath || piece !== '.') { - if (decodePath) piece = decodeURIComponent(piece.replace(/\+/g, ' ')) - path.push(encodeRfc3986Full(piece)) - } - return path - }, []).join('/') - if (pathStr[0] !== '/') pathStr = '/' + pathStr - if (decodeSlashesInPath) pathStr = pathStr.replace(/%2F/g, '/') - } - - return [ - this.request.method || 'GET', - pathStr, - queryStr, - this.canonicalHeaders() + '\n', - this.signedHeaders(), - bodyHash, - ].join('\n') -} - -RequestSigner.prototype.canonicalHeaders = function() { - var headers = this.request.headers - function trimAll(header) { - return header.toString().trim().replace(/\s+/g, ' ') - } - return Object.keys(headers) - .filter(function(key) { return HEADERS_TO_IGNORE[key.toLowerCase()] == null }) - .sort(function(a, b) { return a.toLowerCase() < b.toLowerCase() ? -1 : 1 }) - .map(function(key) { return key.toLowerCase() + ':' + trimAll(headers[key]) }) - .join('\n') -} - -RequestSigner.prototype.signedHeaders = function() { - return Object.keys(this.request.headers) - .map(function(key) { return key.toLowerCase() }) - .filter(function(key) { return HEADERS_TO_IGNORE[key] == null }) - .sort() - .join(';') -} - -RequestSigner.prototype.credentialString = function() { - return [ - this.getDate(), - this.region, - this.service, - 'aws4_request', - ].join('/') -} - -RequestSigner.prototype.defaultCredentials = function() { - var env = process.env - return { - accessKeyId: env.AWS_ACCESS_KEY_ID || env.AWS_ACCESS_KEY, - secretAccessKey: env.AWS_SECRET_ACCESS_KEY || env.AWS_SECRET_KEY, - sessionToken: env.AWS_SESSION_TOKEN, - } -} - -RequestSigner.prototype.parsePath = function() { - var path = this.request.path || '/' - - // S3 doesn't always encode characters > 127 correctly and - // all services don't encode characters > 255 correctly - // So if there are non-reserved chars (and it's not already all % encoded), just encode them all - if (/[^0-9A-Za-z;,/?:@&=+$\-_.!~*'()#%]/.test(path)) { - path = encodeURI(decodeURI(path)) - } - - var queryIx = path.indexOf('?'), - query = null - - if (queryIx >= 0) { - query = querystring.parse(path.slice(queryIx + 1)) - path = path.slice(0, queryIx) - } - - this.parsedPath = { - path: path, - query: query, - } -} - -RequestSigner.prototype.formatPath = function() { - var path = this.parsedPath.path, - query = this.parsedPath.query - - if (!query) return path - - // Services don't support empty query string keys - if (query[''] != null) delete query[''] - - return path + '?' + encodeRfc3986(querystring.stringify(query)) -} - -aws4.RequestSigner = RequestSigner - -aws4.sign = function(request, credentials) { - return new RequestSigner(request, credentials).sign() -} diff --git a/deps/npm/node_modules/aws4/lru.js b/deps/npm/node_modules/aws4/lru.js deleted file mode 100644 index 333f66a4436ec4..00000000000000 --- a/deps/npm/node_modules/aws4/lru.js +++ /dev/null @@ -1,96 +0,0 @@ -module.exports = function(size) { - return new LruCache(size) -} - -function LruCache(size) { - this.capacity = size | 0 - this.map = Object.create(null) - this.list = new DoublyLinkedList() -} - -LruCache.prototype.get = function(key) { - var node = this.map[key] - if (node == null) return undefined - this.used(node) - return node.val -} - -LruCache.prototype.set = function(key, val) { - var node = this.map[key] - if (node != null) { - node.val = val - } else { - if (!this.capacity) this.prune() - if (!this.capacity) return false - node = new DoublyLinkedNode(key, val) - this.map[key] = node - this.capacity-- - } - this.used(node) - return true -} - -LruCache.prototype.used = function(node) { - this.list.moveToFront(node) -} - -LruCache.prototype.prune = function() { - var node = this.list.pop() - if (node != null) { - delete this.map[node.key] - this.capacity++ - } -} - - -function DoublyLinkedList() { - this.firstNode = null - this.lastNode = null -} - -DoublyLinkedList.prototype.moveToFront = function(node) { - if (this.firstNode == node) return - - this.remove(node) - - if (this.firstNode == null) { - this.firstNode = node - this.lastNode = node - node.prev = null - node.next = null - } else { - node.prev = null - node.next = this.firstNode - node.next.prev = node - this.firstNode = node - } -} - -DoublyLinkedList.prototype.pop = function() { - var lastNode = this.lastNode - if (lastNode != null) { - this.remove(lastNode) - } - return lastNode -} - -DoublyLinkedList.prototype.remove = function(node) { - if (this.firstNode == node) { - this.firstNode = node.next - } else if (node.prev != null) { - node.prev.next = node.next - } - if (this.lastNode == node) { - this.lastNode = node.prev - } else if (node.next != null) { - node.next.prev = node.prev - } -} - - -function DoublyLinkedNode(key, val) { - this.key = key - this.val = val - this.prev = null - this.next = null -} diff --git a/deps/npm/node_modules/aws4/package.json b/deps/npm/node_modules/aws4/package.json deleted file mode 100644 index 424598d4a1486f..00000000000000 --- a/deps/npm/node_modules/aws4/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "aws4", - "version": "1.11.0", - "description": "Signs and prepares requests using AWS Signature Version 4", - "author": "Michael Hart (https://github.com/mhart)", - "license": "MIT", - "repository": "github:mhart/aws4", - "main": "aws4.js", - "scripts": { - "test": "mocha ./test/fast.js -R list", - "integration": "node ./test/slow.js" - }, - "devDependencies": { - "mocha": "^2.5.3", - "should": "^8.4.0" - } -} diff --git a/deps/npm/node_modules/balanced-match/.npmignore b/deps/npm/node_modules/balanced-match/.npmignore deleted file mode 100644 index ae5d8c36ac6522..00000000000000 --- a/deps/npm/node_modules/balanced-match/.npmignore +++ /dev/null @@ -1,5 +0,0 @@ -test -.gitignore -.travis.yml -Makefile -example.js diff --git a/deps/npm/node_modules/balanced-match/LICENSE.md b/deps/npm/node_modules/balanced-match/LICENSE.md deleted file mode 100644 index 2cdc8e4148cc0a..00000000000000 --- a/deps/npm/node_modules/balanced-match/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> - -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/deps/npm/node_modules/balanced-match/README.md b/deps/npm/node_modules/balanced-match/README.md deleted file mode 100644 index 08e918c0db9a62..00000000000000 --- a/deps/npm/node_modules/balanced-match/README.md +++ /dev/null @@ -1,91 +0,0 @@ -# balanced-match - -Match balanced string pairs, like `{` and `}` or `` and ``. Supports regular expressions as well! - -[![build status](https://secure.travis-ci.org/juliangruber/balanced-match.svg)](http://travis-ci.org/juliangruber/balanced-match) -[![downloads](https://img.shields.io/npm/dm/balanced-match.svg)](https://www.npmjs.org/package/balanced-match) - -[![testling badge](https://ci.testling.com/juliangruber/balanced-match.png)](https://ci.testling.com/juliangruber/balanced-match) - -## Example - -Get the first matching pair of braces: - -```js -var balanced = require('balanced-match'); - -console.log(balanced('{', '}', 'pre{in{nested}}post')); -console.log(balanced('{', '}', 'pre{first}between{second}post')); -console.log(balanced(/\s+\{\s+/, /\s+\}\s+/, 'pre { in{nest} } post')); -``` - -The matches are: - -```bash -$ node example.js -{ start: 3, end: 14, pre: 'pre', body: 'in{nested}', post: 'post' } -{ start: 3, - end: 9, - pre: 'pre', - body: 'first', - post: 'between{second}post' } -{ start: 3, end: 17, pre: 'pre', body: 'in{nest}', post: 'post' } -``` - -## API - -### var m = balanced(a, b, str) - -For the first non-nested matching pair of `a` and `b` in `str`, return an -object with those keys: - -* **start** the index of the first match of `a` -* **end** the index of the matching `b` -* **pre** the preamble, `a` and `b` not included -* **body** the match, `a` and `b` not included -* **post** the postscript, `a` and `b` not included - -If there's no match, `undefined` will be returned. - -If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `['{', 'a', '']` and `{a}}` will match `['', 'a', '}']`. - -### var r = balanced.range(a, b, str) - -For the first non-nested matching pair of `a` and `b` in `str`, return an -array with indexes: `[ , ]`. - -If there's no match, `undefined` will be returned. - -If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `[ 1, 3 ]` and `{a}}` will match `[0, 2]`. - -## Installation - -With [npm](https://npmjs.org) do: - -```bash -npm install balanced-match -``` - -## License - -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> - -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/deps/npm/node_modules/balanced-match/index.js b/deps/npm/node_modules/balanced-match/index.js deleted file mode 100644 index 1685a762932558..00000000000000 --- a/deps/npm/node_modules/balanced-match/index.js +++ /dev/null @@ -1,59 +0,0 @@ -'use strict'; -module.exports = balanced; -function balanced(a, b, str) { - if (a instanceof RegExp) a = maybeMatch(a, str); - if (b instanceof RegExp) b = maybeMatch(b, str); - - var r = range(a, b, str); - - return r && { - start: r[0], - end: r[1], - pre: str.slice(0, r[0]), - body: str.slice(r[0] + a.length, r[1]), - post: str.slice(r[1] + b.length) - }; -} - -function maybeMatch(reg, str) { - var m = str.match(reg); - return m ? m[0] : null; -} - -balanced.range = range; -function range(a, b, str) { - var begs, beg, left, right, result; - var ai = str.indexOf(a); - var bi = str.indexOf(b, ai + 1); - var i = ai; - - if (ai >= 0 && bi > 0) { - begs = []; - left = str.length; - - while (i >= 0 && !result) { - if (i == ai) { - begs.push(i); - ai = str.indexOf(a, i + 1); - } else if (begs.length == 1) { - result = [ begs.pop(), bi ]; - } else { - beg = begs.pop(); - if (beg < left) { - left = beg; - right = bi; - } - - bi = str.indexOf(b, i + 1); - } - - i = ai < bi && ai >= 0 ? ai : bi; - } - - if (begs.length) { - result = [ left, right ]; - } - } - - return result; -} diff --git a/deps/npm/node_modules/balanced-match/package.json b/deps/npm/node_modules/balanced-match/package.json deleted file mode 100644 index 61349c6edad627..00000000000000 --- a/deps/npm/node_modules/balanced-match/package.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "name": "balanced-match", - "description": "Match balanced character pairs, like \"{\" and \"}\"", - "version": "1.0.0", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/balanced-match.git" - }, - "homepage": "https://github.com/juliangruber/balanced-match", - "main": "index.js", - "scripts": { - "test": "make test", - "bench": "make bench" - }, - "dependencies": {}, - "devDependencies": { - "matcha": "^0.7.0", - "tape": "^4.6.0" - }, - "keywords": [ - "match", - "regexp", - "test", - "balanced", - "parse" - ], - "author": { - "name": "Julian Gruber", - "email": "mail@juliangruber.com", - "url": "http://juliangruber.com" - }, - "license": "MIT", - "testling": { - "files": "test/*.js", - "browsers": [ - "ie/8..latest", - "firefox/20..latest", - "firefox/nightly", - "chrome/25..latest", - "chrome/canary", - "opera/12..latest", - "opera/next", - "safari/5.1..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2..latest" - ] - } -} diff --git a/deps/npm/node_modules/bcrypt-pbkdf/LICENSE b/deps/npm/node_modules/bcrypt-pbkdf/LICENSE deleted file mode 100644 index fc58d2ab15bfc8..00000000000000 --- a/deps/npm/node_modules/bcrypt-pbkdf/LICENSE +++ /dev/null @@ -1,66 +0,0 @@ -The Blowfish portions are under the following license: - -Blowfish block cipher for OpenBSD -Copyright 1997 Niels Provos -All rights reserved. - -Implementation advice by David Mazieres . - -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. -3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. - - - -The bcrypt_pbkdf portions are under the following license: - -Copyright (c) 2013 Ted Unangst - -Permission to use, copy, modify, and 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. - - - -Performance improvements (Javascript-specific): - -Copyright 2016, Joyent Inc -Author: Alex Wilson - -Permission to use, copy, modify, and 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/deps/npm/node_modules/bcrypt-pbkdf/README.md b/deps/npm/node_modules/bcrypt-pbkdf/README.md deleted file mode 100644 index 7551f335cc0bc4..00000000000000 --- a/deps/npm/node_modules/bcrypt-pbkdf/README.md +++ /dev/null @@ -1,45 +0,0 @@ -Port of the OpenBSD `bcrypt_pbkdf` function to pure Javascript. `npm`-ified -version of [Devi Mandiri's port](https://github.com/devi/tmp/blob/master/js/bcrypt_pbkdf.js), -with some minor performance improvements. The code is copied verbatim (and -un-styled) from Devi's work. - -This product includes software developed by Niels Provos. - -## API - -### `bcrypt_pbkdf.pbkdf(pass, passlen, salt, saltlen, key, keylen, rounds)` - -Derive a cryptographic key of arbitrary length from a given password and salt, -using the OpenBSD `bcrypt_pbkdf` function. This is a combination of Blowfish and -SHA-512. - -See [this article](http://www.tedunangst.com/flak/post/bcrypt-pbkdf) for -further information. - -Parameters: - - * `pass`, a Uint8Array of length `passlen` - * `passlen`, an integer Number - * `salt`, a Uint8Array of length `saltlen` - * `saltlen`, an integer Number - * `key`, a Uint8Array of length `keylen`, will be filled with output - * `keylen`, an integer Number - * `rounds`, an integer Number, number of rounds of the PBKDF to run - -### `bcrypt_pbkdf.hash(sha2pass, sha2salt, out)` - -Calculate a Blowfish hash, given SHA2-512 output of a password and salt. Used as -part of the inner round function in the PBKDF. - -Parameters: - - * `sha2pass`, a Uint8Array of length 64 - * `sha2salt`, a Uint8Array of length 64 - * `out`, a Uint8Array of length 32, will be filled with output - -## License - -This source form is a 1:1 port from the OpenBSD `blowfish.c` and `bcrypt_pbkdf.c`. -As a result, it retains the original copyright and license. The two files are -under slightly different (but compatible) licenses, and are here combined in -one file. For each of the full license texts see `LICENSE`. diff --git a/deps/npm/node_modules/bcrypt-pbkdf/index.js b/deps/npm/node_modules/bcrypt-pbkdf/index.js deleted file mode 100644 index b1b5ad4b7892e1..00000000000000 --- a/deps/npm/node_modules/bcrypt-pbkdf/index.js +++ /dev/null @@ -1,556 +0,0 @@ -'use strict'; - -var crypto_hash_sha512 = require('tweetnacl').lowlevel.crypto_hash; - -/* - * This file is a 1:1 port from the OpenBSD blowfish.c and bcrypt_pbkdf.c. As a - * result, it retains the original copyright and license. The two files are - * under slightly different (but compatible) licenses, and are here combined in - * one file. - * - * Credit for the actual porting work goes to: - * Devi Mandiri - */ - -/* - * The Blowfish portions are under the following license: - * - * Blowfish block cipher for OpenBSD - * Copyright 1997 Niels Provos - * All rights reserved. - * - * Implementation advice by David Mazieres . - * - * 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. - * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. - */ - -/* - * The bcrypt_pbkdf portions are under the following license: - * - * Copyright (c) 2013 Ted Unangst - * - * Permission to use, copy, modify, and 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. - */ - -/* - * Performance improvements (Javascript-specific): - * - * Copyright 2016, Joyent Inc - * Author: Alex Wilson - * - * Permission to use, copy, modify, and 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. - */ - -// Ported from OpenBSD bcrypt_pbkdf.c v1.9 - -var BLF_J = 0; - -var Blowfish = function() { - this.S = [ - new Uint32Array([ - 0xd1310ba6, 0x98dfb5ac, 0x2ffd72db, 0xd01adfb7, - 0xb8e1afed, 0x6a267e96, 0xba7c9045, 0xf12c7f99, - 0x24a19947, 0xb3916cf7, 0x0801f2e2, 0x858efc16, - 0x636920d8, 0x71574e69, 0xa458fea3, 0xf4933d7e, - 0x0d95748f, 0x728eb658, 0x718bcd58, 0x82154aee, - 0x7b54a41d, 0xc25a59b5, 0x9c30d539, 0x2af26013, - 0xc5d1b023, 0x286085f0, 0xca417918, 0xb8db38ef, - 0x8e79dcb0, 0x603a180e, 0x6c9e0e8b, 0xb01e8a3e, - 0xd71577c1, 0xbd314b27, 0x78af2fda, 0x55605c60, - 0xe65525f3, 0xaa55ab94, 0x57489862, 0x63e81440, - 0x55ca396a, 0x2aab10b6, 0xb4cc5c34, 0x1141e8ce, - 0xa15486af, 0x7c72e993, 0xb3ee1411, 0x636fbc2a, - 0x2ba9c55d, 0x741831f6, 0xce5c3e16, 0x9b87931e, - 0xafd6ba33, 0x6c24cf5c, 0x7a325381, 0x28958677, - 0x3b8f4898, 0x6b4bb9af, 0xc4bfe81b, 0x66282193, - 0x61d809cc, 0xfb21a991, 0x487cac60, 0x5dec8032, - 0xef845d5d, 0xe98575b1, 0xdc262302, 0xeb651b88, - 0x23893e81, 0xd396acc5, 0x0f6d6ff3, 0x83f44239, - 0x2e0b4482, 0xa4842004, 0x69c8f04a, 0x9e1f9b5e, - 0x21c66842, 0xf6e96c9a, 0x670c9c61, 0xabd388f0, - 0x6a51a0d2, 0xd8542f68, 0x960fa728, 0xab5133a3, - 0x6eef0b6c, 0x137a3be4, 0xba3bf050, 0x7efb2a98, - 0xa1f1651d, 0x39af0176, 0x66ca593e, 0x82430e88, - 0x8cee8619, 0x456f9fb4, 0x7d84a5c3, 0x3b8b5ebe, - 0xe06f75d8, 0x85c12073, 0x401a449f, 0x56c16aa6, - 0x4ed3aa62, 0x363f7706, 0x1bfedf72, 0x429b023d, - 0x37d0d724, 0xd00a1248, 0xdb0fead3, 0x49f1c09b, - 0x075372c9, 0x80991b7b, 0x25d479d8, 0xf6e8def7, - 0xe3fe501a, 0xb6794c3b, 0x976ce0bd, 0x04c006ba, - 0xc1a94fb6, 0x409f60c4, 0x5e5c9ec2, 0x196a2463, - 0x68fb6faf, 0x3e6c53b5, 0x1339b2eb, 0x3b52ec6f, - 0x6dfc511f, 0x9b30952c, 0xcc814544, 0xaf5ebd09, - 0xbee3d004, 0xde334afd, 0x660f2807, 0x192e4bb3, - 0xc0cba857, 0x45c8740f, 0xd20b5f39, 0xb9d3fbdb, - 0x5579c0bd, 0x1a60320a, 0xd6a100c6, 0x402c7279, - 0x679f25fe, 0xfb1fa3cc, 0x8ea5e9f8, 0xdb3222f8, - 0x3c7516df, 0xfd616b15, 0x2f501ec8, 0xad0552ab, - 0x323db5fa, 0xfd238760, 0x53317b48, 0x3e00df82, - 0x9e5c57bb, 0xca6f8ca0, 0x1a87562e, 0xdf1769db, - 0xd542a8f6, 0x287effc3, 0xac6732c6, 0x8c4f5573, - 0x695b27b0, 0xbbca58c8, 0xe1ffa35d, 0xb8f011a0, - 0x10fa3d98, 0xfd2183b8, 0x4afcb56c, 0x2dd1d35b, - 0x9a53e479, 0xb6f84565, 0xd28e49bc, 0x4bfb9790, - 0xe1ddf2da, 0xa4cb7e33, 0x62fb1341, 0xcee4c6e8, - 0xef20cada, 0x36774c01, 0xd07e9efe, 0x2bf11fb4, - 0x95dbda4d, 0xae909198, 0xeaad8e71, 0x6b93d5a0, - 0xd08ed1d0, 0xafc725e0, 0x8e3c5b2f, 0x8e7594b7, - 0x8ff6e2fb, 0xf2122b64, 0x8888b812, 0x900df01c, - 0x4fad5ea0, 0x688fc31c, 0xd1cff191, 0xb3a8c1ad, - 0x2f2f2218, 0xbe0e1777, 0xea752dfe, 0x8b021fa1, - 0xe5a0cc0f, 0xb56f74e8, 0x18acf3d6, 0xce89e299, - 0xb4a84fe0, 0xfd13e0b7, 0x7cc43b81, 0xd2ada8d9, - 0x165fa266, 0x80957705, 0x93cc7314, 0x211a1477, - 0xe6ad2065, 0x77b5fa86, 0xc75442f5, 0xfb9d35cf, - 0xebcdaf0c, 0x7b3e89a0, 0xd6411bd3, 0xae1e7e49, - 0x00250e2d, 0x2071b35e, 0x226800bb, 0x57b8e0af, - 0x2464369b, 0xf009b91e, 0x5563911d, 0x59dfa6aa, - 0x78c14389, 0xd95a537f, 0x207d5ba2, 0x02e5b9c5, - 0x83260376, 0x6295cfa9, 0x11c81968, 0x4e734a41, - 0xb3472dca, 0x7b14a94a, 0x1b510052, 0x9a532915, - 0xd60f573f, 0xbc9bc6e4, 0x2b60a476, 0x81e67400, - 0x08ba6fb5, 0x571be91f, 0xf296ec6b, 0x2a0dd915, - 0xb6636521, 0xe7b9f9b6, 0xff34052e, 0xc5855664, - 0x53b02d5d, 0xa99f8fa1, 0x08ba4799, 0x6e85076a]), - new Uint32Array([ - 0x4b7a70e9, 0xb5b32944, 0xdb75092e, 0xc4192623, - 0xad6ea6b0, 0x49a7df7d, 0x9cee60b8, 0x8fedb266, - 0xecaa8c71, 0x699a17ff, 0x5664526c, 0xc2b19ee1, - 0x193602a5, 0x75094c29, 0xa0591340, 0xe4183a3e, - 0x3f54989a, 0x5b429d65, 0x6b8fe4d6, 0x99f73fd6, - 0xa1d29c07, 0xefe830f5, 0x4d2d38e6, 0xf0255dc1, - 0x4cdd2086, 0x8470eb26, 0x6382e9c6, 0x021ecc5e, - 0x09686b3f, 0x3ebaefc9, 0x3c971814, 0x6b6a70a1, - 0x687f3584, 0x52a0e286, 0xb79c5305, 0xaa500737, - 0x3e07841c, 0x7fdeae5c, 0x8e7d44ec, 0x5716f2b8, - 0xb03ada37, 0xf0500c0d, 0xf01c1f04, 0x0200b3ff, - 0xae0cf51a, 0x3cb574b2, 0x25837a58, 0xdc0921bd, - 0xd19113f9, 0x7ca92ff6, 0x94324773, 0x22f54701, - 0x3ae5e581, 0x37c2dadc, 0xc8b57634, 0x9af3dda7, - 0xa9446146, 0x0fd0030e, 0xecc8c73e, 0xa4751e41, - 0xe238cd99, 0x3bea0e2f, 0x3280bba1, 0x183eb331, - 0x4e548b38, 0x4f6db908, 0x6f420d03, 0xf60a04bf, - 0x2cb81290, 0x24977c79, 0x5679b072, 0xbcaf89af, - 0xde9a771f, 0xd9930810, 0xb38bae12, 0xdccf3f2e, - 0x5512721f, 0x2e6b7124, 0x501adde6, 0x9f84cd87, - 0x7a584718, 0x7408da17, 0xbc9f9abc, 0xe94b7d8c, - 0xec7aec3a, 0xdb851dfa, 0x63094366, 0xc464c3d2, - 0xef1c1847, 0x3215d908, 0xdd433b37, 0x24c2ba16, - 0x12a14d43, 0x2a65c451, 0x50940002, 0x133ae4dd, - 0x71dff89e, 0x10314e55, 0x81ac77d6, 0x5f11199b, - 0x043556f1, 0xd7a3c76b, 0x3c11183b, 0x5924a509, - 0xf28fe6ed, 0x97f1fbfa, 0x9ebabf2c, 0x1e153c6e, - 0x86e34570, 0xeae96fb1, 0x860e5e0a, 0x5a3e2ab3, - 0x771fe71c, 0x4e3d06fa, 0x2965dcb9, 0x99e71d0f, - 0x803e89d6, 0x5266c825, 0x2e4cc978, 0x9c10b36a, - 0xc6150eba, 0x94e2ea78, 0xa5fc3c53, 0x1e0a2df4, - 0xf2f74ea7, 0x361d2b3d, 0x1939260f, 0x19c27960, - 0x5223a708, 0xf71312b6, 0xebadfe6e, 0xeac31f66, - 0xe3bc4595, 0xa67bc883, 0xb17f37d1, 0x018cff28, - 0xc332ddef, 0xbe6c5aa5, 0x65582185, 0x68ab9802, - 0xeecea50f, 0xdb2f953b, 0x2aef7dad, 0x5b6e2f84, - 0x1521b628, 0x29076170, 0xecdd4775, 0x619f1510, - 0x13cca830, 0xeb61bd96, 0x0334fe1e, 0xaa0363cf, - 0xb5735c90, 0x4c70a239, 0xd59e9e0b, 0xcbaade14, - 0xeecc86bc, 0x60622ca7, 0x9cab5cab, 0xb2f3846e, - 0x648b1eaf, 0x19bdf0ca, 0xa02369b9, 0x655abb50, - 0x40685a32, 0x3c2ab4b3, 0x319ee9d5, 0xc021b8f7, - 0x9b540b19, 0x875fa099, 0x95f7997e, 0x623d7da8, - 0xf837889a, 0x97e32d77, 0x11ed935f, 0x16681281, - 0x0e358829, 0xc7e61fd6, 0x96dedfa1, 0x7858ba99, - 0x57f584a5, 0x1b227263, 0x9b83c3ff, 0x1ac24696, - 0xcdb30aeb, 0x532e3054, 0x8fd948e4, 0x6dbc3128, - 0x58ebf2ef, 0x34c6ffea, 0xfe28ed61, 0xee7c3c73, - 0x5d4a14d9, 0xe864b7e3, 0x42105d14, 0x203e13e0, - 0x45eee2b6, 0xa3aaabea, 0xdb6c4f15, 0xfacb4fd0, - 0xc742f442, 0xef6abbb5, 0x654f3b1d, 0x41cd2105, - 0xd81e799e, 0x86854dc7, 0xe44b476a, 0x3d816250, - 0xcf62a1f2, 0x5b8d2646, 0xfc8883a0, 0xc1c7b6a3, - 0x7f1524c3, 0x69cb7492, 0x47848a0b, 0x5692b285, - 0x095bbf00, 0xad19489d, 0x1462b174, 0x23820e00, - 0x58428d2a, 0x0c55f5ea, 0x1dadf43e, 0x233f7061, - 0x3372f092, 0x8d937e41, 0xd65fecf1, 0x6c223bdb, - 0x7cde3759, 0xcbee7460, 0x4085f2a7, 0xce77326e, - 0xa6078084, 0x19f8509e, 0xe8efd855, 0x61d99735, - 0xa969a7aa, 0xc50c06c2, 0x5a04abfc, 0x800bcadc, - 0x9e447a2e, 0xc3453484, 0xfdd56705, 0x0e1e9ec9, - 0xdb73dbd3, 0x105588cd, 0x675fda79, 0xe3674340, - 0xc5c43465, 0x713e38d8, 0x3d28f89e, 0xf16dff20, - 0x153e21e7, 0x8fb03d4a, 0xe6e39f2b, 0xdb83adf7]), - new Uint32Array([ - 0xe93d5a68, 0x948140f7, 0xf64c261c, 0x94692934, - 0x411520f7, 0x7602d4f7, 0xbcf46b2e, 0xd4a20068, - 0xd4082471, 0x3320f46a, 0x43b7d4b7, 0x500061af, - 0x1e39f62e, 0x97244546, 0x14214f74, 0xbf8b8840, - 0x4d95fc1d, 0x96b591af, 0x70f4ddd3, 0x66a02f45, - 0xbfbc09ec, 0x03bd9785, 0x7fac6dd0, 0x31cb8504, - 0x96eb27b3, 0x55fd3941, 0xda2547e6, 0xabca0a9a, - 0x28507825, 0x530429f4, 0x0a2c86da, 0xe9b66dfb, - 0x68dc1462, 0xd7486900, 0x680ec0a4, 0x27a18dee, - 0x4f3ffea2, 0xe887ad8c, 0xb58ce006, 0x7af4d6b6, - 0xaace1e7c, 0xd3375fec, 0xce78a399, 0x406b2a42, - 0x20fe9e35, 0xd9f385b9, 0xee39d7ab, 0x3b124e8b, - 0x1dc9faf7, 0x4b6d1856, 0x26a36631, 0xeae397b2, - 0x3a6efa74, 0xdd5b4332, 0x6841e7f7, 0xca7820fb, - 0xfb0af54e, 0xd8feb397, 0x454056ac, 0xba489527, - 0x55533a3a, 0x20838d87, 0xfe6ba9b7, 0xd096954b, - 0x55a867bc, 0xa1159a58, 0xcca92963, 0x99e1db33, - 0xa62a4a56, 0x3f3125f9, 0x5ef47e1c, 0x9029317c, - 0xfdf8e802, 0x04272f70, 0x80bb155c, 0x05282ce3, - 0x95c11548, 0xe4c66d22, 0x48c1133f, 0xc70f86dc, - 0x07f9c9ee, 0x41041f0f, 0x404779a4, 0x5d886e17, - 0x325f51eb, 0xd59bc0d1, 0xf2bcc18f, 0x41113564, - 0x257b7834, 0x602a9c60, 0xdff8e8a3, 0x1f636c1b, - 0x0e12b4c2, 0x02e1329e, 0xaf664fd1, 0xcad18115, - 0x6b2395e0, 0x333e92e1, 0x3b240b62, 0xeebeb922, - 0x85b2a20e, 0xe6ba0d99, 0xde720c8c, 0x2da2f728, - 0xd0127845, 0x95b794fd, 0x647d0862, 0xe7ccf5f0, - 0x5449a36f, 0x877d48fa, 0xc39dfd27, 0xf33e8d1e, - 0x0a476341, 0x992eff74, 0x3a6f6eab, 0xf4f8fd37, - 0xa812dc60, 0xa1ebddf8, 0x991be14c, 0xdb6e6b0d, - 0xc67b5510, 0x6d672c37, 0x2765d43b, 0xdcd0e804, - 0xf1290dc7, 0xcc00ffa3, 0xb5390f92, 0x690fed0b, - 0x667b9ffb, 0xcedb7d9c, 0xa091cf0b, 0xd9155ea3, - 0xbb132f88, 0x515bad24, 0x7b9479bf, 0x763bd6eb, - 0x37392eb3, 0xcc115979, 0x8026e297, 0xf42e312d, - 0x6842ada7, 0xc66a2b3b, 0x12754ccc, 0x782ef11c, - 0x6a124237, 0xb79251e7, 0x06a1bbe6, 0x4bfb6350, - 0x1a6b1018, 0x11caedfa, 0x3d25bdd8, 0xe2e1c3c9, - 0x44421659, 0x0a121386, 0xd90cec6e, 0xd5abea2a, - 0x64af674e, 0xda86a85f, 0xbebfe988, 0x64e4c3fe, - 0x9dbc8057, 0xf0f7c086, 0x60787bf8, 0x6003604d, - 0xd1fd8346, 0xf6381fb0, 0x7745ae04, 0xd736fccc, - 0x83426b33, 0xf01eab71, 0xb0804187, 0x3c005e5f, - 0x77a057be, 0xbde8ae24, 0x55464299, 0xbf582e61, - 0x4e58f48f, 0xf2ddfda2, 0xf474ef38, 0x8789bdc2, - 0x5366f9c3, 0xc8b38e74, 0xb475f255, 0x46fcd9b9, - 0x7aeb2661, 0x8b1ddf84, 0x846a0e79, 0x915f95e2, - 0x466e598e, 0x20b45770, 0x8cd55591, 0xc902de4c, - 0xb90bace1, 0xbb8205d0, 0x11a86248, 0x7574a99e, - 0xb77f19b6, 0xe0a9dc09, 0x662d09a1, 0xc4324633, - 0xe85a1f02, 0x09f0be8c, 0x4a99a025, 0x1d6efe10, - 0x1ab93d1d, 0x0ba5a4df, 0xa186f20f, 0x2868f169, - 0xdcb7da83, 0x573906fe, 0xa1e2ce9b, 0x4fcd7f52, - 0x50115e01, 0xa70683fa, 0xa002b5c4, 0x0de6d027, - 0x9af88c27, 0x773f8641, 0xc3604c06, 0x61a806b5, - 0xf0177a28, 0xc0f586e0, 0x006058aa, 0x30dc7d62, - 0x11e69ed7, 0x2338ea63, 0x53c2dd94, 0xc2c21634, - 0xbbcbee56, 0x90bcb6de, 0xebfc7da1, 0xce591d76, - 0x6f05e409, 0x4b7c0188, 0x39720a3d, 0x7c927c24, - 0x86e3725f, 0x724d9db9, 0x1ac15bb4, 0xd39eb8fc, - 0xed545578, 0x08fca5b5, 0xd83d7cd3, 0x4dad0fc4, - 0x1e50ef5e, 0xb161e6f8, 0xa28514d9, 0x6c51133c, - 0x6fd5c7e7, 0x56e14ec4, 0x362abfce, 0xddc6c837, - 0xd79a3234, 0x92638212, 0x670efa8e, 0x406000e0]), - new Uint32Array([ - 0x3a39ce37, 0xd3faf5cf, 0xabc27737, 0x5ac52d1b, - 0x5cb0679e, 0x4fa33742, 0xd3822740, 0x99bc9bbe, - 0xd5118e9d, 0xbf0f7315, 0xd62d1c7e, 0xc700c47b, - 0xb78c1b6b, 0x21a19045, 0xb26eb1be, 0x6a366eb4, - 0x5748ab2f, 0xbc946e79, 0xc6a376d2, 0x6549c2c8, - 0x530ff8ee, 0x468dde7d, 0xd5730a1d, 0x4cd04dc6, - 0x2939bbdb, 0xa9ba4650, 0xac9526e8, 0xbe5ee304, - 0xa1fad5f0, 0x6a2d519a, 0x63ef8ce2, 0x9a86ee22, - 0xc089c2b8, 0x43242ef6, 0xa51e03aa, 0x9cf2d0a4, - 0x83c061ba, 0x9be96a4d, 0x8fe51550, 0xba645bd6, - 0x2826a2f9, 0xa73a3ae1, 0x4ba99586, 0xef5562e9, - 0xc72fefd3, 0xf752f7da, 0x3f046f69, 0x77fa0a59, - 0x80e4a915, 0x87b08601, 0x9b09e6ad, 0x3b3ee593, - 0xe990fd5a, 0x9e34d797, 0x2cf0b7d9, 0x022b8b51, - 0x96d5ac3a, 0x017da67d, 0xd1cf3ed6, 0x7c7d2d28, - 0x1f9f25cf, 0xadf2b89b, 0x5ad6b472, 0x5a88f54c, - 0xe029ac71, 0xe019a5e6, 0x47b0acfd, 0xed93fa9b, - 0xe8d3c48d, 0x283b57cc, 0xf8d56629, 0x79132e28, - 0x785f0191, 0xed756055, 0xf7960e44, 0xe3d35e8c, - 0x15056dd4, 0x88f46dba, 0x03a16125, 0x0564f0bd, - 0xc3eb9e15, 0x3c9057a2, 0x97271aec, 0xa93a072a, - 0x1b3f6d9b, 0x1e6321f5, 0xf59c66fb, 0x26dcf319, - 0x7533d928, 0xb155fdf5, 0x03563482, 0x8aba3cbb, - 0x28517711, 0xc20ad9f8, 0xabcc5167, 0xccad925f, - 0x4de81751, 0x3830dc8e, 0x379d5862, 0x9320f991, - 0xea7a90c2, 0xfb3e7bce, 0x5121ce64, 0x774fbe32, - 0xa8b6e37e, 0xc3293d46, 0x48de5369, 0x6413e680, - 0xa2ae0810, 0xdd6db224, 0x69852dfd, 0x09072166, - 0xb39a460a, 0x6445c0dd, 0x586cdecf, 0x1c20c8ae, - 0x5bbef7dd, 0x1b588d40, 0xccd2017f, 0x6bb4e3bb, - 0xdda26a7e, 0x3a59ff45, 0x3e350a44, 0xbcb4cdd5, - 0x72eacea8, 0xfa6484bb, 0x8d6612ae, 0xbf3c6f47, - 0xd29be463, 0x542f5d9e, 0xaec2771b, 0xf64e6370, - 0x740e0d8d, 0xe75b1357, 0xf8721671, 0xaf537d5d, - 0x4040cb08, 0x4eb4e2cc, 0x34d2466a, 0x0115af84, - 0xe1b00428, 0x95983a1d, 0x06b89fb4, 0xce6ea048, - 0x6f3f3b82, 0x3520ab82, 0x011a1d4b, 0x277227f8, - 0x611560b1, 0xe7933fdc, 0xbb3a792b, 0x344525bd, - 0xa08839e1, 0x51ce794b, 0x2f32c9b7, 0xa01fbac9, - 0xe01cc87e, 0xbcc7d1f6, 0xcf0111c3, 0xa1e8aac7, - 0x1a908749, 0xd44fbd9a, 0xd0dadecb, 0xd50ada38, - 0x0339c32a, 0xc6913667, 0x8df9317c, 0xe0b12b4f, - 0xf79e59b7, 0x43f5bb3a, 0xf2d519ff, 0x27d9459c, - 0xbf97222c, 0x15e6fc2a, 0x0f91fc71, 0x9b941525, - 0xfae59361, 0xceb69ceb, 0xc2a86459, 0x12baa8d1, - 0xb6c1075e, 0xe3056a0c, 0x10d25065, 0xcb03a442, - 0xe0ec6e0e, 0x1698db3b, 0x4c98a0be, 0x3278e964, - 0x9f1f9532, 0xe0d392df, 0xd3a0342b, 0x8971f21e, - 0x1b0a7441, 0x4ba3348c, 0xc5be7120, 0xc37632d8, - 0xdf359f8d, 0x9b992f2e, 0xe60b6f47, 0x0fe3f11d, - 0xe54cda54, 0x1edad891, 0xce6279cf, 0xcd3e7e6f, - 0x1618b166, 0xfd2c1d05, 0x848fd2c5, 0xf6fb2299, - 0xf523f357, 0xa6327623, 0x93a83531, 0x56cccd02, - 0xacf08162, 0x5a75ebb5, 0x6e163697, 0x88d273cc, - 0xde966292, 0x81b949d0, 0x4c50901b, 0x71c65614, - 0xe6c6c7bd, 0x327a140a, 0x45e1d006, 0xc3f27b9a, - 0xc9aa53fd, 0x62a80f00, 0xbb25bfe2, 0x35bdd2f6, - 0x71126905, 0xb2040222, 0xb6cbcf7c, 0xcd769c2b, - 0x53113ec0, 0x1640e3d3, 0x38abbd60, 0x2547adf0, - 0xba38209c, 0xf746ce76, 0x77afa1c5, 0x20756060, - 0x85cbfe4e, 0x8ae88dd8, 0x7aaaf9b0, 0x4cf9aa7e, - 0x1948c25c, 0x02fb8a8c, 0x01c36ae4, 0xd6ebe1f9, - 0x90d4f869, 0xa65cdea0, 0x3f09252d, 0xc208e69f, - 0xb74e6132, 0xce77e25b, 0x578fdfe3, 0x3ac372e6]) - ]; - this.P = new Uint32Array([ - 0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344, - 0xa4093822, 0x299f31d0, 0x082efa98, 0xec4e6c89, - 0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c, - 0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917, - 0x9216d5d9, 0x8979fb1b]); -}; - -function F(S, x8, i) { - return (((S[0][x8[i+3]] + - S[1][x8[i+2]]) ^ - S[2][x8[i+1]]) + - S[3][x8[i]]); -}; - -Blowfish.prototype.encipher = function(x, x8) { - if (x8 === undefined) { - x8 = new Uint8Array(x.buffer); - if (x.byteOffset !== 0) - x8 = x8.subarray(x.byteOffset); - } - x[0] ^= this.P[0]; - for (var i = 1; i < 16; i += 2) { - x[1] ^= F(this.S, x8, 0) ^ this.P[i]; - x[0] ^= F(this.S, x8, 4) ^ this.P[i+1]; - } - var t = x[0]; - x[0] = x[1] ^ this.P[17]; - x[1] = t; -}; - -Blowfish.prototype.decipher = function(x) { - var x8 = new Uint8Array(x.buffer); - if (x.byteOffset !== 0) - x8 = x8.subarray(x.byteOffset); - x[0] ^= this.P[17]; - for (var i = 16; i > 0; i -= 2) { - x[1] ^= F(this.S, x8, 0) ^ this.P[i]; - x[0] ^= F(this.S, x8, 4) ^ this.P[i-1]; - } - var t = x[0]; - x[0] = x[1] ^ this.P[0]; - x[1] = t; -}; - -function stream2word(data, databytes){ - var i, temp = 0; - for (i = 0; i < 4; i++, BLF_J++) { - if (BLF_J >= databytes) BLF_J = 0; - temp = (temp << 8) | data[BLF_J]; - } - return temp; -}; - -Blowfish.prototype.expand0state = function(key, keybytes) { - var d = new Uint32Array(2), i, k; - var d8 = new Uint8Array(d.buffer); - - for (i = 0, BLF_J = 0; i < 18; i++) { - this.P[i] ^= stream2word(key, keybytes); - } - BLF_J = 0; - - for (i = 0; i < 18; i += 2) { - this.encipher(d, d8); - this.P[i] = d[0]; - this.P[i+1] = d[1]; - } - - for (i = 0; i < 4; i++) { - for (k = 0; k < 256; k += 2) { - this.encipher(d, d8); - this.S[i][k] = d[0]; - this.S[i][k+1] = d[1]; - } - } -}; - -Blowfish.prototype.expandstate = function(data, databytes, key, keybytes) { - var d = new Uint32Array(2), i, k; - - for (i = 0, BLF_J = 0; i < 18; i++) { - this.P[i] ^= stream2word(key, keybytes); - } - - for (i = 0, BLF_J = 0; i < 18; i += 2) { - d[0] ^= stream2word(data, databytes); - d[1] ^= stream2word(data, databytes); - this.encipher(d); - this.P[i] = d[0]; - this.P[i+1] = d[1]; - } - - for (i = 0; i < 4; i++) { - for (k = 0; k < 256; k += 2) { - d[0] ^= stream2word(data, databytes); - d[1] ^= stream2word(data, databytes); - this.encipher(d); - this.S[i][k] = d[0]; - this.S[i][k+1] = d[1]; - } - } - BLF_J = 0; -}; - -Blowfish.prototype.enc = function(data, blocks) { - for (var i = 0; i < blocks; i++) { - this.encipher(data.subarray(i*2)); - } -}; - -Blowfish.prototype.dec = function(data, blocks) { - for (var i = 0; i < blocks; i++) { - this.decipher(data.subarray(i*2)); - } -}; - -var BCRYPT_BLOCKS = 8, - BCRYPT_HASHSIZE = 32; - -function bcrypt_hash(sha2pass, sha2salt, out) { - var state = new Blowfish(), - cdata = new Uint32Array(BCRYPT_BLOCKS), i, - ciphertext = new Uint8Array([79,120,121,99,104,114,111,109,97,116,105, - 99,66,108,111,119,102,105,115,104,83,119,97,116,68,121,110,97,109, - 105,116,101]); //"OxychromaticBlowfishSwatDynamite" - - state.expandstate(sha2salt, 64, sha2pass, 64); - for (i = 0; i < 64; i++) { - state.expand0state(sha2salt, 64); - state.expand0state(sha2pass, 64); - } - - for (i = 0; i < BCRYPT_BLOCKS; i++) - cdata[i] = stream2word(ciphertext, ciphertext.byteLength); - for (i = 0; i < 64; i++) - state.enc(cdata, cdata.byteLength / 8); - - for (i = 0; i < BCRYPT_BLOCKS; i++) { - out[4*i+3] = cdata[i] >>> 24; - out[4*i+2] = cdata[i] >>> 16; - out[4*i+1] = cdata[i] >>> 8; - out[4*i+0] = cdata[i]; - } -}; - -function bcrypt_pbkdf(pass, passlen, salt, saltlen, key, keylen, rounds) { - var sha2pass = new Uint8Array(64), - sha2salt = new Uint8Array(64), - out = new Uint8Array(BCRYPT_HASHSIZE), - tmpout = new Uint8Array(BCRYPT_HASHSIZE), - countsalt = new Uint8Array(saltlen+4), - i, j, amt, stride, dest, count, - origkeylen = keylen; - - if (rounds < 1) - return -1; - if (passlen === 0 || saltlen === 0 || keylen === 0 || - keylen > (out.byteLength * out.byteLength) || saltlen > (1<<20)) - return -1; - - stride = Math.floor((keylen + out.byteLength - 1) / out.byteLength); - amt = Math.floor((keylen + stride - 1) / stride); - - for (i = 0; i < saltlen; i++) - countsalt[i] = salt[i]; - - crypto_hash_sha512(sha2pass, pass, passlen); - - for (count = 1; keylen > 0; count++) { - countsalt[saltlen+0] = count >>> 24; - countsalt[saltlen+1] = count >>> 16; - countsalt[saltlen+2] = count >>> 8; - countsalt[saltlen+3] = count; - - crypto_hash_sha512(sha2salt, countsalt, saltlen + 4); - bcrypt_hash(sha2pass, sha2salt, tmpout); - for (i = out.byteLength; i--;) - out[i] = tmpout[i]; - - for (i = 1; i < rounds; i++) { - crypto_hash_sha512(sha2salt, tmpout, tmpout.byteLength); - bcrypt_hash(sha2pass, sha2salt, tmpout); - for (j = 0; j < out.byteLength; j++) - out[j] ^= tmpout[j]; - } - - amt = Math.min(amt, keylen); - for (i = 0; i < amt; i++) { - dest = i * stride + (count - 1); - if (dest >= origkeylen) - break; - key[dest] = out[i]; - } - keylen -= i; - } - - return 0; -}; - -module.exports = { - BLOCKS: BCRYPT_BLOCKS, - HASHSIZE: BCRYPT_HASHSIZE, - hash: bcrypt_hash, - pbkdf: bcrypt_pbkdf -}; diff --git a/deps/npm/node_modules/bcrypt-pbkdf/package.json b/deps/npm/node_modules/bcrypt-pbkdf/package.json deleted file mode 100644 index e93a969b0b7316..00000000000000 --- a/deps/npm/node_modules/bcrypt-pbkdf/package.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "bcrypt-pbkdf", - "version": "1.0.2", - "description": "Port of the OpenBSD bcrypt_pbkdf function to pure JS", - "repository": { - "type": "git", - "url": "git://github.com/joyent/node-bcrypt-pbkdf.git" - }, - "main": "index.js", - "dependencies": { - "tweetnacl": "^0.14.3" - }, - "devDependencies": {}, - "license": "BSD-3-Clause" -} diff --git a/deps/npm/node_modules/bin-links/CHANGELOG.md b/deps/npm/node_modules/bin-links/CHANGELOG.md deleted file mode 100644 index 0531b01ca47f5e..00000000000000 --- a/deps/npm/node_modules/bin-links/CHANGELOG.md +++ /dev/null @@ -1,89 +0,0 @@ -# Change Log - -## 2.0.0 - -* Rewrite to promisify and remove dependence on gentle-fs - - -## [1.1.7](https://github.com/npm/bin-links/compare/v1.1.6...v1.1.7) (2019-12-26) - - -### Bug Fixes - -* resolve folder that is passed in ([0bbd303](https://github.com/npm/bin-links/commit/0bbd303)) - - - - -## [1.1.6](https://github.com/npm/bin-links/compare/v1.1.5...v1.1.6) (2019-12-11) - - -### Bug Fixes - -* prevent improper clobbering of man/bin links ([642cd18](https://github.com/npm/bin-links/commit/642cd18)), closes [#11](https://github.com/npm/bin-links/issues/11) [#12](https://github.com/npm/bin-links/issues/12) - - - - -## [1.1.5](https://github.com/npm/bin-links/compare/v1.1.4...v1.1.5) (2019-12-10) - - -### Bug Fixes - -* don't filter out ./ man references ([b3cfd2e](https://github.com/npm/bin-links/commit/b3cfd2e)) - - - - -## [1.1.4](https://github.com/npm/bin-links/compare/v1.1.3...v1.1.4) (2019-12-09) - - -### Bug Fixes - -* sanitize and validate bin and man link targets ([25a34f9](https://github.com/npm/bin-links/commit/25a34f9)) - - - - -## [1.1.3](https://github.com/npm/bin-links/compare/v1.1.2...v1.1.3) (2019-08-14) - - - - -## [1.1.2](https://github.com/npm/bin-links/compare/v1.1.1...v1.1.2) (2018-03-22) - - -### Bug Fixes - -* **linkMans:** return the promise! ([5eccc7f](https://github.com/npm/bin-links/commit/5eccc7f)) - - - - -## [1.1.1](https://github.com/npm/bin-links/compare/v1.1.0...v1.1.1) (2018-03-07) - - -### Bug Fixes - -* **shebangs:** only convert CR when doing CRLF -> LF ([#2](https://github.com/npm/bin-links/issues/2)) ([43bf857](https://github.com/npm/bin-links/commit/43bf857)) - - - - -# [1.1.0](https://github.com/npm/bin-links/compare/v1.0.0...v1.1.0) (2017-11-20) - - -### Features - -* **dos2unix:** Log the fact line endings are being changed upon install. ([e9f8a6f](https://github.com/npm/bin-links/commit/e9f8a6f)) - - - - -# 1.0.0 (2017-10-07) - - -### Features - -* **import:** initial extraction from npm ([6ed0bfb](https://github.com/npm/bin-links/commit/6ed0bfb)) -* **initial commit:** README ([3fc9cf0](https://github.com/npm/bin-links/commit/3fc9cf0)) diff --git a/deps/npm/node_modules/bin-links/LICENSE b/deps/npm/node_modules/bin-links/LICENSE deleted file mode 100644 index 19cec97b184683..00000000000000 --- a/deps/npm/node_modules/bin-links/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The 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 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/deps/npm/node_modules/bin-links/README.md b/deps/npm/node_modules/bin-links/README.md deleted file mode 100644 index fb9d902109eb64..00000000000000 --- a/deps/npm/node_modules/bin-links/README.md +++ /dev/null @@ -1,90 +0,0 @@ -# bin-links [![npm version](https://img.shields.io/npm/v/bin-links.svg)](https://npm.im/bin-links) [![license](https://img.shields.io/npm/l/bin-links.svg)](https://npm.im/bin-links) [![Travis](https://img.shields.io/travis/npm/bin-links.svg)](https://travis-ci.org/npm/bin-links) [![AppVeyor](https://ci.appveyor.com/api/projects/status/github/npm/bin-links?svg=true)](https://ci.appveyor.com/project/npm/bin-links) [![Coverage Status](https://coveralls.io/repos/github/npm/bin-links/badge.svg?branch=latest)](https://coveralls.io/github/npm/bin-links?branch=latest) - -[`bin-links`](https://github.com/npm/bin-links) is a standalone library that links -binaries and man pages for Javascript packages - -## Install - -`$ npm install bin-links` - -## Table of Contents - -* [Example](#example) -* [Features](#features) -* [Contributing](#contributing) -* [API](#api) - * [`binLinks`](#binLinks) - * [`binLinks.getPaths()`](#getPaths) - * [`binLinks.checkBins()`](#checkBins) - -### Example - -```javascript -const binLinks = require('bin-links') -const readPackageJson = require('read-package-json-fast') -binLinks({ - path: '/path/to/node_modules/some-package', - pkg: readPackageJson('/path/to/node_modules/some-package/package.json'), - - // true if it's a global install, false for local. default: false - global: true, - - // true if it's the top level package being installed, false otherwise - top: true, - - // true if you'd like to recklessly overwrite files. - force: true, -}) -``` - -### Features - -* Links bin files listed under the `bin` property of pkg to the - `node_modules/.bin` directory of the installing environment. (Or - `${prefix}/bin` for top level global packages on unix, and `${prefix}` - for top level global packages on Windows.) -* Links man files listed under the `man` property of pkg to the share/man - directory. (This is only done for top-level global packages on Unix - systems.) - -### 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. - -### API - -#### `> binLinks({path, pkg, force, global, top})` - -Returns a Promise that resolves when the requisite things have been linked. - -#### `> binLinks.getPaths({path, pkg, global, top })` - -Returns an array of all the paths of links and shims that _might_ be -created (assuming that they exist!) for the package at the specified path. - -Does not touch the filesystem. - -#### `> binLinks.checkBins({path, pkg, global, top, force })` - -Checks if there are any conflicting bins which will prevent the linking of -bins for the given package. Returns a Promise that resolves with no value -if the way is clear, and rejects if there's something in the way. - -Always returns successfully if `global` or `top` are false, or if `force` -is true, or if the `pkg` object does not contain any bins to link. - -Note that changes to the file system _may_ still cause the `binLinks` -method to fail even if this method succeeds. Does not check for -conflicting `man` links. - -Reads from the filesystem but does not make any changes. - -##### Example - -```javascript -binLinks({path, pkg, force, global, top}).then(() => console.log('bins linked!')) -``` diff --git a/deps/npm/node_modules/bin-links/index.js b/deps/npm/node_modules/bin-links/index.js deleted file mode 100644 index 2e8519737220a2..00000000000000 --- a/deps/npm/node_modules/bin-links/index.js +++ /dev/null @@ -1,43 +0,0 @@ -const linkBins = require('./lib/link-bins.js') -const linkMans = require('./lib/link-mans.js') - -const binLinks = opts => { - const { path, pkg, force, global, top } = opts - // global top pkgs on windows get bins installed in {prefix}, and no mans - // - // unix global top pkgs get their bins installed in {prefix}/bin, - // and mans in {prefix}/share/man - // - // non-top pkgs get their bins installed in {prefix}/node_modules/.bin, - // and do not install mans - // - // non-global top pkgs don't have any bins or mans linked. From here on - // out, if it's top, we know that it's global, so no need to pass that - // option further down the stack. - if (top && !global) - return Promise.resolve() - - return Promise.all([ - // allow clobbering within the local node_modules/.bin folder. - // only global bins are protected in this way, or else it is - // yet another vector for excessive dependency conflicts. - linkBins({path, pkg, top, force: force || !top}), - linkMans({path, pkg, top, force}), - ]) -} - -const shimBin = require('./lib/shim-bin.js') -const linkGently = require('./lib/link-gently.js') -const resetSeen = () => { - shimBin.resetSeen() - linkGently.resetSeen() -} - -const checkBins = require('./lib/check-bins.js') -const getPaths = require('./lib/get-paths.js') - -module.exports = Object.assign(binLinks, { - checkBins, - resetSeen, - getPaths, -}) diff --git a/deps/npm/node_modules/bin-links/lib/bin-target.js b/deps/npm/node_modules/bin-links/lib/bin-target.js deleted file mode 100644 index 7ea0c2a96ed686..00000000000000 --- a/deps/npm/node_modules/bin-links/lib/bin-target.js +++ /dev/null @@ -1,9 +0,0 @@ -const isWindows = require('./is-windows.js') -const getPrefix = require('./get-prefix.js') -const getNodeModules = require('./get-node-modules.js') -const {dirname} = require('path') - -module.exports = ({top, path}) => - !top ? getNodeModules(path) + '/.bin' - : isWindows ? getPrefix(path) - : dirname(getPrefix(path)) + '/bin' diff --git a/deps/npm/node_modules/bin-links/lib/check-bin.js b/deps/npm/node_modules/bin-links/lib/check-bin.js deleted file mode 100644 index 45eec8affc92a9..00000000000000 --- a/deps/npm/node_modules/bin-links/lib/check-bin.js +++ /dev/null @@ -1,71 +0,0 @@ -// check to see if a bin is allowed to be overwritten -// either rejects or resolves to nothing. return value not relevant. -const isWindows = require('./is-windows.js') -const binTarget = require('./bin-target.js') -const {resolve, dirname} = require('path') -const readCmdShim = require('read-cmd-shim') -const fs = require('fs') -const {promisify} = require('util') -const readlink = promisify(fs.readlink) - -const checkBin = async ({bin, path, top, global, force}) => { - // always ok to clobber when forced - // always ok to clobber local bins, or when forced - if (force || !global || !top) - return - - // ok, need to make sure, then - const target = resolve(binTarget({path, top}), bin) - path = resolve(path) - return isWindows ? checkShim({target, path}) : checkLink({target, path}) -} - -// only enoent is allowed. anything else is a problem. -const handleReadLinkError = async ({er, target}) => - er.code === 'ENOENT' ? null - : failEEXIST({target}) - -const checkLink = async ({target, path}) => { - const current = await readlink(target) - .catch(er => handleReadLinkError({er, target})) - - if (!current) - return - - const resolved = resolve(dirname(target), current) - - if (resolved.toLowerCase().indexOf(path.toLowerCase()) !== 0) - return failEEXIST({target}) -} - -const handleReadCmdShimError = ({er, target}) => - er.code === 'ENOENT' ? null - : failEEXIST({target}) - -const failEEXIST = ({target}) => - Promise.reject(Object.assign(new Error('EEXIST: file already exists'), { - path: target, - code: 'EEXIST', - })) - -const checkShim = async ({target, path}) => { - const shims = [ - target, - target + '.cmd', - target + '.ps1', - ] - await Promise.all(shims.map(async target => { - const current = await readCmdShim(target) - .catch(er => handleReadCmdShimError({er, target})) - - if (!current) - return - - const resolved = resolve(dirname(target), current.replace(/\\/g, '/')) - - if (resolved.toLowerCase().indexOf(path.toLowerCase()) !== 0) - return failEEXIST({target}) - })) -} - -module.exports = checkBin diff --git a/deps/npm/node_modules/bin-links/lib/check-bins.js b/deps/npm/node_modules/bin-links/lib/check-bins.js deleted file mode 100644 index 0addbffe55abb0..00000000000000 --- a/deps/npm/node_modules/bin-links/lib/check-bins.js +++ /dev/null @@ -1,16 +0,0 @@ -const checkBin = require('./check-bin.js') -const normalize = require('npm-normalize-package-bin') -const checkBins = async ({ pkg, path, top, global, force }) => { - // always ok to clobber when forced - // always ok to clobber local bins, or when forced - if (force || !global || !top) - return - - pkg = normalize(pkg) - if (!pkg.bin) - return - - await Promise.all(Object.keys(pkg.bin) - .map(bin => checkBin({bin, path, top, global, force}))) -} -module.exports = checkBins diff --git a/deps/npm/node_modules/bin-links/lib/fix-bin.js b/deps/npm/node_modules/bin-links/lib/fix-bin.js deleted file mode 100644 index a87a4d6945f691..00000000000000 --- a/deps/npm/node_modules/bin-links/lib/fix-bin.js +++ /dev/null @@ -1,44 +0,0 @@ -// make sure that bins are executable, and that they don't have -// windows line-endings on the hashbang line. -const fs = require('fs') -const { promisify } = require('util') - -const execMode = 0o777 & (~process.umask()) - -const writeFileAtomic = require('write-file-atomic') -const open = promisify(fs.open) -const close = promisify(fs.close) -const read = promisify(fs.read) -const chmod = promisify(fs.chmod) -const readFile = promisify(fs.readFile) - -const isWindowsHashBang = buf => - buf[0] === '#'.charCodeAt(0) && - buf[1] === '!'.charCodeAt(0) && - /^#![^\n]+\r\n/.test(buf.toString()) - -const isWindowsHashbangFile = file => { - const FALSE = () => false - return open(file, 'r').then(fd => { - const buf = Buffer.alloc(2048) - return read(fd, buf, 0, 2048, 0) - .then( - () => { - const isWHB = isWindowsHashBang(buf) - return close(fd).then(() => isWHB, () => isWHB) - }, - // don't leak FD if read() fails - () => close(fd).then(FALSE, FALSE) - ) - }, FALSE) -} - -const dos2Unix = file => - readFile(file, 'utf8').then(content => - writeFileAtomic(file, content.replace(/^(#![^\n]+)\r\n/, '$1\n'))) - -const fixBin = file => chmod(file, execMode) - .then(() => isWindowsHashbangFile(file)) - .then(isWHB => isWHB ? dos2Unix(file) : null) - -module.exports = fixBin diff --git a/deps/npm/node_modules/bin-links/lib/get-node-modules.js b/deps/npm/node_modules/bin-links/lib/get-node-modules.js deleted file mode 100644 index b67c198eff3485..00000000000000 --- a/deps/npm/node_modules/bin-links/lib/get-node-modules.js +++ /dev/null @@ -1,18 +0,0 @@ -// we know it's global and/or not top, so the path has to be -// {prefix}/node_modules/{name}. Can't rely on pkg.name, because -// it might be installed as an alias. - -const {dirname, basename} = require('path') -// this gets called a lot and can't change, so memoize it -const memo = new Map() -module.exports = path => { - if (memo.has(path)) - return memo.get(path) - - const scopeOrNm = dirname(path) - const nm = basename(scopeOrNm) === 'node_modules' ? scopeOrNm - : dirname(scopeOrNm) - - memo.set(path, nm) - return nm -} diff --git a/deps/npm/node_modules/bin-links/lib/get-paths.js b/deps/npm/node_modules/bin-links/lib/get-paths.js deleted file mode 100644 index 614c85652a1aa9..00000000000000 --- a/deps/npm/node_modules/bin-links/lib/get-paths.js +++ /dev/null @@ -1,48 +0,0 @@ -// get all the paths that are (or might be) installed for a given pkg -// There's no guarantee that all of these will be installed, but if they -// are present, then we can assume that they're associated. -const binTarget = require('./bin-target.js') -const manTarget = require('./man-target.js') -const {resolve, basename} = require('path') -const isWindows = require('./is-windows.js') -module.exports = ({path, pkg, global, top}) => { - if (top && !global) - return [] - - const binSet = [] - const binTarg = binTarget({path, top}) - if (pkg.bin) { - for (const bin of Object.keys(pkg.bin)) { - const b = resolve(binTarg, bin) - binSet.push(b) - if (isWindows) { - binSet.push(b + '.cmd') - binSet.push(b + '.ps1') - } - } - } - - const manTarg = manTarget({path, top}) - const manSet = [] - if (manTarg && pkg.man && Array.isArray(pkg.man) && pkg.man.length) { - for (const man of pkg.man) { - const parseMan = man.match(/(.*\.([0-9]+)(\.gz)?)$/) - // invalid entries invalidate the entire man set - if (!parseMan) - return binSet - - const stem = parseMan[1] - const sxn = parseMan[2] - const base = basename(stem) - const absFrom = resolve(path, man) - - /* istanbul ignore if - should be impossible */ - if (absFrom.indexOf(path) !== 0) - return binSet - - manSet.push(resolve(manTarg, 'man' + sxn, base)) - } - } - - return manSet.length ? [...binSet, ...manSet] : binSet -} diff --git a/deps/npm/node_modules/bin-links/lib/get-prefix.js b/deps/npm/node_modules/bin-links/lib/get-prefix.js deleted file mode 100644 index 96112bf0a2b979..00000000000000 --- a/deps/npm/node_modules/bin-links/lib/get-prefix.js +++ /dev/null @@ -1,3 +0,0 @@ -const {dirname} = require('path') -const getNodeModules = require('./get-node-modules.js') -module.exports = path => dirname(getNodeModules(path)) diff --git a/deps/npm/node_modules/bin-links/lib/is-windows.js b/deps/npm/node_modules/bin-links/lib/is-windows.js deleted file mode 100644 index da3b2fb220b0a6..00000000000000 --- a/deps/npm/node_modules/bin-links/lib/is-windows.js +++ /dev/null @@ -1,2 +0,0 @@ -const platform = process.env.__TESTING_BIN_LINKS_PLATFORM__ || process.platform -module.exports = platform === 'win32' diff --git a/deps/npm/node_modules/bin-links/lib/link-bin.js b/deps/npm/node_modules/bin-links/lib/link-bin.js deleted file mode 100644 index 4c0bde489348a1..00000000000000 --- a/deps/npm/node_modules/bin-links/lib/link-bin.js +++ /dev/null @@ -1,9 +0,0 @@ -const linkGently = require('./link-gently.js') -const fixBin = require('./fix-bin.js') - -// linking bins is simple. just symlink, and if we linked it, fix the bin up -const linkBin = ({path, to, from, absFrom, force}) => - linkGently({path, to, from, absFrom, force}) - .then(linked => linked && fixBin(absFrom)) - -module.exports = linkBin diff --git a/deps/npm/node_modules/bin-links/lib/link-bins.js b/deps/npm/node_modules/bin-links/lib/link-bins.js deleted file mode 100644 index 6a1086b92b2649..00000000000000 --- a/deps/npm/node_modules/bin-links/lib/link-bins.js +++ /dev/null @@ -1,22 +0,0 @@ -const isWindows = require('./is-windows.js') -const binTarget = require('./bin-target.js') -const { dirname, resolve, relative } = require('path') -const linkBin = isWindows ? require('./shim-bin.js') : require('./link-bin.js') -const normalize = require('npm-normalize-package-bin') - -const linkBins = ({path, pkg, top, force}) => { - pkg = normalize(pkg) - if (!pkg.bin) - return Promise.resolve([]) - const promises = [] - const target = binTarget({path, top}) - for (const [key, val] of Object.entries(pkg.bin)) { - const to = resolve(target, key) - const absFrom = resolve(path, val) - const from = relative(dirname(to), absFrom) - promises.push(linkBin({path, from, to, absFrom, force})) - } - return Promise.all(promises) -} - -module.exports = linkBins diff --git a/deps/npm/node_modules/bin-links/lib/link-gently.js b/deps/npm/node_modules/bin-links/lib/link-gently.js deleted file mode 100644 index db3e65bd8b60fc..00000000000000 --- a/deps/npm/node_modules/bin-links/lib/link-gently.js +++ /dev/null @@ -1,81 +0,0 @@ -// if the thing isn't there, skip it -// if there's a non-symlink there already, eexist -// if there's a symlink already, pointing somewhere else, eexist -// if there's a symlink already, pointing into our pkg, remove it first -// then create the symlink - -const { promisify } = require('util') -const { resolve, dirname } = require('path') -const mkdirp = require('mkdirp-infer-owner') -const fs = require('fs') -const symlink = promisify(fs.symlink) -const readlink = promisify(fs.readlink) -const lstat = promisify(fs.lstat) -const throwNonEnoent = er => { if (er.code !== 'ENOENT') throw er } - -// even in --force mode, we never create a link over a link we've -// already created. you can have multiple packages in a tree trying -// to contend for the same bin, or the same manpage listed multiple times, -// which creates a race condition and nondeterminism. -const seen = new Set() - -// disable glob in our rimraf calls -const rimraf = promisify(require('rimraf')) -const rm = path => rimraf(path, { glob: false }) - -const SKIP = Symbol('skip - missing or already installed') -const CLOBBER = Symbol('clobber - ours or in forceful mode') - -const linkGently = async ({path, to, from, absFrom, force}) => { - if (seen.has(to)) - return true - seen.add(to) - - // if the script or manpage isn't there, just ignore it. - // this arguably *should* be an install error of some sort, - // or at least a warning, but npm has always behaved this - // way in the past, so it'd be a breaking change - return Promise.all([ - lstat(absFrom).catch(throwNonEnoent), - lstat(to).catch(throwNonEnoent), - ]).then(([stFrom, stTo]) => { - // not present in package, skip it - if (!stFrom) - return SKIP - - // exists! maybe clobber if we can - if (stTo) { - if (!stTo.isSymbolicLink()) - return force && rm(to).then(() => CLOBBER) - - return readlink(to).then(target => { - if (target === from) - return SKIP // skip it, already set up like we want it. - - target = resolve(dirname(to), target) - if (target.indexOf(path) === 0 || force) - return rm(to).then(() => CLOBBER) - }) - } else { - // doesn't exist, dir might not either - return mkdirp(dirname(to)) - } - }) - .then(skipOrClobber => { - if (skipOrClobber === SKIP) - return true - return symlink(from, to, 'file').catch(er => { - if (skipOrClobber === CLOBBER || force) - return rm(to).then(() => symlink(from, to, 'file')) - throw er - }).then(() => true) - }) -} - -const resetSeen = () => { - for (const p of seen) { - seen.delete(p) - } -} - -module.exports = Object.assign(linkGently, { resetSeen }) diff --git a/deps/npm/node_modules/bin-links/lib/link-mans.js b/deps/npm/node_modules/bin-links/lib/link-mans.js deleted file mode 100644 index 6fb167e480a740..00000000000000 --- a/deps/npm/node_modules/bin-links/lib/link-mans.js +++ /dev/null @@ -1,51 +0,0 @@ -const { dirname, relative, join, resolve, basename } = require('path') -const linkGently = require('./link-gently.js') -const manTarget = require('./man-target.js') - -const linkMans = ({path, pkg, top, force}) => { - const target = manTarget({path, top}) - if (!target || !pkg.man || !Array.isArray(pkg.man) || !pkg.man.length) - return Promise.resolve([]) - - // break any links to c:\\blah or /foo/blah or ../blah - // and filter out duplicates - const set = [...new Set(pkg.man.map(man => - man ? join('/', man).replace(/\\|:/g, '/').substr(1) : null) - .filter(man => typeof man === 'string'))] - - return Promise.all(set.map(man => { - const parseMan = man.match(/(.*\.([0-9]+)(\.gz)?)$/) - if (!parseMan) { - return Promise.reject(Object.assign(new Error('invalid man entry name\n' + - 'Man files must end with a number, ' + - 'and optionally a .gz suffix if they are compressed.' - ), { - code: 'EBADMAN', - path, - pkgid: pkg._id, - man, - })) - } - - const stem = parseMan[1] - const sxn = parseMan[2] - const base = basename(stem) - const absFrom = resolve(path, man) - /* istanbul ignore if - that unpossible */ - if (absFrom.indexOf(path) !== 0) { - return Promise.reject(Object.assign(new Error('invalid man entry'), { - code: 'EBADMAN', - path, - pkgid: pkg._id, - man, - })) - } - - const to = resolve(target, 'man' + sxn, base) - const from = relative(dirname(to), absFrom) - - return linkGently({from, to, path, absFrom, force}) - })) -} - -module.exports = linkMans diff --git a/deps/npm/node_modules/bin-links/lib/man-target.js b/deps/npm/node_modules/bin-links/lib/man-target.js deleted file mode 100644 index 832d2ea35e43cf..00000000000000 --- a/deps/npm/node_modules/bin-links/lib/man-target.js +++ /dev/null @@ -1,6 +0,0 @@ -const isWindows = require('./is-windows.js') -const getPrefix = require('./get-prefix.js') -const {dirname} = require('path') - -module.exports = ({top, path}) => !top || isWindows ? null - : dirname(getPrefix(path)) + '/share/man' diff --git a/deps/npm/node_modules/bin-links/lib/shim-bin.js b/deps/npm/node_modules/bin-links/lib/shim-bin.js deleted file mode 100644 index f2dfd7a7825d1e..00000000000000 --- a/deps/npm/node_modules/bin-links/lib/shim-bin.js +++ /dev/null @@ -1,83 +0,0 @@ -const { promisify } = require('util') -const { resolve, dirname } = require('path') -const fs = require('fs') -const lstat = promisify(fs.lstat) -const throwNonEnoent = er => { if (er.code !== 'ENOENT') throw er } - -const cmdShim = require('cmd-shim') -const readCmdShim = require('read-cmd-shim') - -const fixBin = require('./fix-bin.js') - -// even in --force mode, we never create a shim over a shim we've -// already created. you can have multiple packages in a tree trying -// to contend for the same bin, which creates a race condition and -// nondeterminism. -const seen = new Set() - -const failEEXIST = ({path, to, from}) => - Promise.reject(Object.assign(new Error('EEXIST: file already exists'), { - path: to, - dest: from, - code: 'EEXIST', - })) - -const handleReadCmdShimError = ({er, from, to}) => - er.code === 'ENOENT' ? null - : er.code === 'ENOTASHIM' ? failEEXIST({from, to}) - : Promise.reject(er) - -const SKIP = Symbol('skip - missing or already installed') -const shimBin = ({path, to, from, absFrom, force}) => { - const shims = [ - to, - to + '.cmd', - to + '.ps1', - ] - - for (const shim of shims) { - if (seen.has(shim)) - return true - seen.add(shim) - } - - return Promise.all([ - ...shims, - absFrom, - ].map(f => lstat(f).catch(throwNonEnoent))).then((stats) => { - const [ - stToBase, - stToCmd, - stToPs1, - stFrom, - ] = stats - if (!stFrom) - return SKIP - - if (force) - return - - return Promise.all(shims.map((s, i) => [s, stats[i]]).map(([s, st]) => { - if (!st) - return - return readCmdShim(s) - .then(target => { - target = resolve(dirname(to), target) - if (target.indexOf(resolve(path)) !== 0) - return failEEXIST({from, to, path}) - }, er => handleReadCmdShimError({er, from, to})) - })) - }) - .then(skip => skip !== SKIP && doShim(absFrom, to)) -} - -const doShim = (absFrom, to) => - cmdShim(absFrom, to).then(() => fixBin(absFrom)) - -const resetSeen = () => { - for (const p of seen) { - seen.delete(p) - } -} - -module.exports = Object.assign(shimBin, { resetSeen }) diff --git a/deps/npm/node_modules/bin-links/package.json b/deps/npm/node_modules/bin-links/package.json deleted file mode 100644 index b126fa16fa46b8..00000000000000 --- a/deps/npm/node_modules/bin-links/package.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "bin-links", - "version": "2.2.1", - "description": "JavaScript package binary linker", - "main": "index.js", - "scripts": { - "preversion": "npm t", - "postversion": "npm publish", - "prepublishOnly": "git push --follow-tags", - "snap": "tap", - "test": "tap" - }, - "repository": { - "type": "git", - "url": "git://github.com/npm/bin-links.git" - }, - "keywords": [ - "npm", - "link", - "bins" - ], - "license": "ISC", - "dependencies": { - "cmd-shim": "^4.0.1", - "mkdirp": "^1.0.3", - "npm-normalize-package-bin": "^1.0.0", - "read-cmd-shim": "^2.0.0", - "rimraf": "^3.0.0", - "write-file-atomic": "^3.0.3" - }, - "devDependencies": { - "require-inject": "^1.4.4", - "tap": "^14.10.6" - }, - "tap": { - "check-coverage": true, - "coverage-map": "map.js" - }, - "files": [ - "index.js", - "lib/*.js" - ], - "engines": { - "node": ">=10" - } -} diff --git a/deps/npm/node_modules/brace-expansion/LICENSE b/deps/npm/node_modules/brace-expansion/LICENSE deleted file mode 100644 index de3226673c3874..00000000000000 --- a/deps/npm/node_modules/brace-expansion/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2013 Julian Gruber - -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/deps/npm/node_modules/brace-expansion/README.md b/deps/npm/node_modules/brace-expansion/README.md deleted file mode 100644 index 6b4e0e16409152..00000000000000 --- a/deps/npm/node_modules/brace-expansion/README.md +++ /dev/null @@ -1,129 +0,0 @@ -# brace-expansion - -[Brace expansion](https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html), -as known from sh/bash, in JavaScript. - -[![build status](https://secure.travis-ci.org/juliangruber/brace-expansion.svg)](http://travis-ci.org/juliangruber/brace-expansion) -[![downloads](https://img.shields.io/npm/dm/brace-expansion.svg)](https://www.npmjs.org/package/brace-expansion) -[![Greenkeeper badge](https://badges.greenkeeper.io/juliangruber/brace-expansion.svg)](https://greenkeeper.io/) - -[![testling badge](https://ci.testling.com/juliangruber/brace-expansion.png)](https://ci.testling.com/juliangruber/brace-expansion) - -## Example - -```js -var expand = require('brace-expansion'); - -expand('file-{a,b,c}.jpg') -// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg'] - -expand('-v{,,}') -// => ['-v', '-v', '-v'] - -expand('file{0..2}.jpg') -// => ['file0.jpg', 'file1.jpg', 'file2.jpg'] - -expand('file-{a..c}.jpg') -// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg'] - -expand('file{2..0}.jpg') -// => ['file2.jpg', 'file1.jpg', 'file0.jpg'] - -expand('file{0..4..2}.jpg') -// => ['file0.jpg', 'file2.jpg', 'file4.jpg'] - -expand('file-{a..e..2}.jpg') -// => ['file-a.jpg', 'file-c.jpg', 'file-e.jpg'] - -expand('file{00..10..5}.jpg') -// => ['file00.jpg', 'file05.jpg', 'file10.jpg'] - -expand('{{A..C},{a..c}}') -// => ['A', 'B', 'C', 'a', 'b', 'c'] - -expand('ppp{,config,oe{,conf}}') -// => ['ppp', 'pppconfig', 'pppoe', 'pppoeconf'] -``` - -## API - -```js -var expand = require('brace-expansion'); -``` - -### var expanded = expand(str) - -Return an array of all possible and valid expansions of `str`. If none are -found, `[str]` is returned. - -Valid expansions are: - -```js -/^(.*,)+(.+)?$/ -// {a,b,...} -``` - -A comma separated list of options, like `{a,b}` or `{a,{b,c}}` or `{,a,}`. - -```js -/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/ -// {x..y[..incr]} -``` - -A numeric sequence from `x` to `y` inclusive, with optional increment. -If `x` or `y` start with a leading `0`, all the numbers will be padded -to have equal length. Negative numbers and backwards iteration work too. - -```js -/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/ -// {x..y[..incr]} -``` - -An alphabetic sequence from `x` to `y` inclusive, with optional increment. -`x` and `y` must be exactly one character, and if given, `incr` must be a -number. - -For compatibility reasons, the string `${` is not eligible for brace expansion. - -## Installation - -With [npm](https://npmjs.org) do: - -```bash -npm install brace-expansion -``` - -## Contributors - -- [Julian Gruber](https://github.com/juliangruber) -- [Isaac Z. Schlueter](https://github.com/isaacs) - -## Sponsors - -This module is proudly supported by my [Sponsors](https://github.com/juliangruber/sponsors)! - -Do you want to support modules like this to improve their quality, stability and weigh in on new features? Then please consider donating to my [Patreon](https://www.patreon.com/juliangruber). Not sure how much of my modules you're using? Try [feross/thanks](https://github.com/feross/thanks)! - -## License - -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> - -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/deps/npm/node_modules/brace-expansion/index.js b/deps/npm/node_modules/brace-expansion/index.js deleted file mode 100644 index 0478be81eabc2b..00000000000000 --- a/deps/npm/node_modules/brace-expansion/index.js +++ /dev/null @@ -1,201 +0,0 @@ -var concatMap = require('concat-map'); -var balanced = require('balanced-match'); - -module.exports = expandTop; - -var escSlash = '\0SLASH'+Math.random()+'\0'; -var escOpen = '\0OPEN'+Math.random()+'\0'; -var escClose = '\0CLOSE'+Math.random()+'\0'; -var escComma = '\0COMMA'+Math.random()+'\0'; -var escPeriod = '\0PERIOD'+Math.random()+'\0'; - -function numeric(str) { - return parseInt(str, 10) == str - ? parseInt(str, 10) - : str.charCodeAt(0); -} - -function escapeBraces(str) { - return str.split('\\\\').join(escSlash) - .split('\\{').join(escOpen) - .split('\\}').join(escClose) - .split('\\,').join(escComma) - .split('\\.').join(escPeriod); -} - -function unescapeBraces(str) { - return str.split(escSlash).join('\\') - .split(escOpen).join('{') - .split(escClose).join('}') - .split(escComma).join(',') - .split(escPeriod).join('.'); -} - - -// Basically just str.split(","), but handling cases -// where we have nested braced sections, which should be -// treated as individual members, like {a,{b,c},d} -function parseCommaParts(str) { - if (!str) - return ['']; - - var parts = []; - var m = balanced('{', '}', str); - - if (!m) - return str.split(','); - - var pre = m.pre; - var body = m.body; - var post = m.post; - var p = pre.split(','); - - p[p.length-1] += '{' + body + '}'; - var postParts = parseCommaParts(post); - if (post.length) { - p[p.length-1] += postParts.shift(); - p.push.apply(p, postParts); - } - - parts.push.apply(parts, p); - - return parts; -} - -function expandTop(str) { - if (!str) - return []; - - // I don't know why Bash 4.3 does this, but it does. - // Anything starting with {} will have the first two bytes preserved - // but *only* at the top level, so {},a}b will not expand to anything, - // but a{},b}c will be expanded to [a}c,abc]. - // One could argue that this is a bug in Bash, but since the goal of - // this module is to match Bash's rules, we escape a leading {} - if (str.substr(0, 2) === '{}') { - str = '\\{\\}' + str.substr(2); - } - - return expand(escapeBraces(str), true).map(unescapeBraces); -} - -function identity(e) { - return e; -} - -function embrace(str) { - return '{' + str + '}'; -} -function isPadded(el) { - return /^-?0\d/.test(el); -} - -function lte(i, y) { - return i <= y; -} -function gte(i, y) { - return i >= y; -} - -function expand(str, isTop) { - var expansions = []; - - var m = balanced('{', '}', str); - if (!m || /\$$/.test(m.pre)) return [str]; - - var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body); - var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body); - var isSequence = isNumericSequence || isAlphaSequence; - var isOptions = m.body.indexOf(',') >= 0; - if (!isSequence && !isOptions) { - // {a},b} - if (m.post.match(/,.*\}/)) { - str = m.pre + '{' + m.body + escClose + m.post; - return expand(str); - } - return [str]; - } - - var n; - if (isSequence) { - n = m.body.split(/\.\./); - } else { - n = parseCommaParts(m.body); - if (n.length === 1) { - // x{{a,b}}y ==> x{a}y x{b}y - n = expand(n[0], false).map(embrace); - if (n.length === 1) { - var post = m.post.length - ? expand(m.post, false) - : ['']; - return post.map(function(p) { - return m.pre + n[0] + p; - }); - } - } - } - - // at this point, n is the parts, and we know it's not a comma set - // with a single entry. - - // no need to expand pre, since it is guaranteed to be free of brace-sets - var pre = m.pre; - var post = m.post.length - ? expand(m.post, false) - : ['']; - - var N; - - if (isSequence) { - var x = numeric(n[0]); - var y = numeric(n[1]); - var width = Math.max(n[0].length, n[1].length) - var incr = n.length == 3 - ? Math.abs(numeric(n[2])) - : 1; - var test = lte; - var reverse = y < x; - if (reverse) { - incr *= -1; - test = gte; - } - var pad = n.some(isPadded); - - N = []; - - for (var i = x; test(i, y); i += incr) { - var c; - if (isAlphaSequence) { - c = String.fromCharCode(i); - if (c === '\\') - c = ''; - } else { - c = String(i); - if (pad) { - var need = width - c.length; - if (need > 0) { - var z = new Array(need + 1).join('0'); - if (i < 0) - c = '-' + z + c.slice(1); - else - c = z + c; - } - } - } - N.push(c); - } - } else { - N = concatMap(n, function(el) { return expand(el, false) }); - } - - for (var j = 0; j < N.length; j++) { - for (var k = 0; k < post.length; k++) { - var expansion = pre + N[j] + post[k]; - if (!isTop || isSequence || expansion) - expansions.push(expansion); - } - } - - return expansions; -} - diff --git a/deps/npm/node_modules/brace-expansion/package.json b/deps/npm/node_modules/brace-expansion/package.json deleted file mode 100644 index a18faa8fd67b82..00000000000000 --- a/deps/npm/node_modules/brace-expansion/package.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "name": "brace-expansion", - "description": "Brace expansion as known from sh/bash", - "version": "1.1.11", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/brace-expansion.git" - }, - "homepage": "https://github.com/juliangruber/brace-expansion", - "main": "index.js", - "scripts": { - "test": "tape test/*.js", - "gentest": "bash test/generate.sh", - "bench": "matcha test/perf/bench.js" - }, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - }, - "devDependencies": { - "matcha": "^0.7.0", - "tape": "^4.6.0" - }, - "keywords": [], - "author": { - "name": "Julian Gruber", - "email": "mail@juliangruber.com", - "url": "http://juliangruber.com" - }, - "license": "MIT", - "testling": { - "files": "test/*.js", - "browsers": [ - "ie/8..latest", - "firefox/20..latest", - "firefox/nightly", - "chrome/25..latest", - "chrome/canary", - "opera/12..latest", - "opera/next", - "safari/5.1..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2..latest" - ] - } -} diff --git a/deps/npm/node_modules/builtins/.travis.yml b/deps/npm/node_modules/builtins/.travis.yml deleted file mode 100644 index cc4dba29d959a2..00000000000000 --- a/deps/npm/node_modules/builtins/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - "0.8" - - "0.10" diff --git a/deps/npm/node_modules/builtins/History.md b/deps/npm/node_modules/builtins/History.md deleted file mode 100644 index 0eb45c420775eb..00000000000000 --- a/deps/npm/node_modules/builtins/History.md +++ /dev/null @@ -1,39 +0,0 @@ - -0.0.7 / 2014-09-01 -================== - - * update .repository - -0.0.6 / 2014-09-01 -================== - - * add travis - * add test script - * add constants - -0.0.5 / 2014-06-27 -================== - - * add module - * publish to public npm - -0.0.4 / 2014-04-25 -================== - - * add timers - -0.0.3 / 2014-02-22 -================== - - * add buffer - -0.0.2 / 2014-02-11 -================== - - * add assert - -0.0.1 / 2014-02-11 -================== - - * add main - * initial commit diff --git a/deps/npm/node_modules/builtins/License b/deps/npm/node_modules/builtins/License deleted file mode 100644 index b142e5dc081331..00000000000000 --- a/deps/npm/node_modules/builtins/License +++ /dev/null @@ -1,20 +0,0 @@ -Copyright (c) 2015 Julian Gruber - -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/deps/npm/node_modules/builtins/Readme.md b/deps/npm/node_modules/builtins/Readme.md deleted file mode 100644 index 96f4b1f6c4a83e..00000000000000 --- a/deps/npm/node_modules/builtins/Readme.md +++ /dev/null @@ -1,18 +0,0 @@ - -# builtins - - List of node.js [builtin modules](http://nodejs.org/api/). - - [![build status](https://secure.travis-ci.org/juliangruber/builtins.svg)](http://travis-ci.org/juliangruber/builtins) - -## Example - -```js -var builtins = require('builtins'); - -assert(builtins.indexOf('http') > -1); -``` - -## License - - MIT diff --git a/deps/npm/node_modules/builtins/builtins.json b/deps/npm/node_modules/builtins/builtins.json deleted file mode 100644 index 45c05225644bde..00000000000000 --- a/deps/npm/node_modules/builtins/builtins.json +++ /dev/null @@ -1,35 +0,0 @@ -[ - "assert", - "buffer", - "child_process", - "cluster", - "console", - "constants", - "crypto", - "dgram", - "dns", - "domain", - "events", - "fs", - "http", - "https", - "module", - "net", - "os", - "path", - "process", - "punycode", - "querystring", - "readline", - "repl", - "stream", - "string_decoder", - "timers", - "tls", - "tty", - "url", - "util", - "v8", - "vm", - "zlib" -] diff --git a/deps/npm/node_modules/builtins/package.json b/deps/npm/node_modules/builtins/package.json deleted file mode 100644 index 819996532d5ffa..00000000000000 --- a/deps/npm/node_modules/builtins/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "builtins", - "version": "1.0.3", - "description": "List of node.js builtin modules", - "repository": "juliangruber/builtins", - "license": "MIT", - "main": "builtins.json", - "publishConfig": { - "registry": "https://registry.npmjs.org" - }, - "scripts": { - "test": "node test.js" - } -} diff --git a/deps/npm/node_modules/builtins/test.js b/deps/npm/node_modules/builtins/test.js deleted file mode 100644 index ffbe8389c14d6c..00000000000000 --- a/deps/npm/node_modules/builtins/test.js +++ /dev/null @@ -1,5 +0,0 @@ -var builtins = require('./builtins'); - -builtins.forEach(function(name){ - require(name); -}); diff --git a/deps/npm/node_modules/byte-size/LICENSE b/deps/npm/node_modules/byte-size/LICENSE deleted file mode 100644 index d9e1e9d6918a4a..00000000000000 --- a/deps/npm/node_modules/byte-size/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014-20 Lloyd Brookes <75pound@gmail.com> - -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/deps/npm/node_modules/byte-size/README.hbs b/deps/npm/node_modules/byte-size/README.hbs deleted file mode 100644 index 5b677f2a98870a..00000000000000 --- a/deps/npm/node_modules/byte-size/README.hbs +++ /dev/null @@ -1,164 +0,0 @@ -[![view on npm](https://badgen.net/npm/v/byte-size)](https://www.npmjs.org/package/byte-size) -[![npm module downloads](https://badgen.net/npm/dt/byte-size)](https://www.npmjs.org/package/byte-size) -[![Gihub repo dependents](https://badgen.net/github/dependents-repo/75lb/byte-size)](https://github.com/75lb/byte-size/network/dependents?dependent_type=REPOSITORY) -[![Gihub package dependents](https://badgen.net/github/dependents-pkg/75lb/byte-size)](https://github.com/75lb/byte-size/network/dependents?dependent_type=PACKAGE) -[![Build Status](https://travis-ci.org/75lb/byte-size.svg?branch=master)](https://travis-ci.org/75lb/byte-size) -[![Coverage Status](https://coveralls.io/repos/github/75lb/byte-size/badge.svg)](https://coveralls.io/github/75lb/byte-size) -[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](https://github.com/feross/standard) - -***Upgraders, please check the [release notes](https://github.com/75lb/byte-size/releases).*** - -# byte-size - -An isomorphic, load-anywhere function to convert a bytes value (e.g. `3456`) to a human-readable string (`'3.5 kB'`). Choose between [metric or IEC units](https://en.wikipedia.org/wiki/Gigabyte) (summarised below) or specify your own custom units. - -Value | Metric | Metric (octet) | ------ | ------------- | -------------- | -1000 | kB kilobyte | ko kilooctet | -1000^2 | MB megabyte | Mo megaoctet | -1000^3 | GB gigabyte | Go gigaoctet | -1000^4 | TB terabyte | To teraoctet | -1000^5 | PB petabyte | Po petaoctet | -1000^6 | EB exabyte | Eo exaoctet | -1000^7 | ZB zettabyte | Zo zettaoctet | -1000^8 | YB yottabyte | Yo yottaoctet | - -Value | IEC | IEC (octet) | ------- | ------------ | ------------- | -1024 | KiB kibibyte | Kio kibioctet | -1024^2 | MiB mebibyte | Mio mebioctet | -1024^3 | GiB gibibyte | Gio gibioctet | -1024^4 | TiB tebibyte | Tio tebioctet | -1024^5 | PiB pebibyte | Pio pebioctet | -1024^6 | EiB exbibyte | Eio exbioctet | -1024^7 | ZiB zebibyte | Zio zebioctet | -1024^8 | YiB yobibyte | Yio yobioctet | - -## Synopsis - -By default, `byteSize` converts the input number to a human readable string with metric units and a precision of 1. - -```js -> const byteSize = require('byte-size') - -> byteSize(1580) -{ value: '1.6', unit: 'kB', long: 'kilobytes' } -``` - -The object returned by `byteSize` defines a `toString` method therefore can be used directly in string context. - -```js -> `Filesize: ${byteSize(12400)}` -'Filesize: 12.4 kB' -``` - -Override the default `toString` behaviour by setting [`options.toStringFn`](#bytesizebytes-options--object-). - -```js -> function toStringFn () { - return `**${this.value}${this.unit}**` -} - -> `Filesize: ${byteSize(12400, { toStringFn })}` -'Filesize: **12.4kB**' -``` - -Beside the default of `metric`, there are three other built-in units available: `metric_octet`, `iec` and `iec_octet`. - -```js -> byteSize(1580, { units: 'iec' }) -{ value: '1.5', unit: 'KiB', long: 'kibibytes' } - -> byteSize(1580, { units: 'iec_octet' }) -{ value: '1.5', unit: 'Kio', long: 'kibioctets' } - -> byteSize(1580, { units: 'metric_octet' }) -{ value: '1.6', unit: 'ko', long: 'kilooctets' } -``` - -You can adjust the `precision`. - -```js -> byteSize(1580, { units: 'iec', precision: 3 }) -{ value: '1.543', unit: 'KiB', long: 'kibibytes' } - -> byteSize(1580, { units: 'iec', precision: 0 }) -{ value: '2', unit: 'KiB', long: 'kibibytes' } -``` - -Define custom units by passing an object containing one or more additional conversion tables to `options.customUnits`. In `options.units`, specify the name of a property from the `customUnits` object. - -```js -> const customUnits = { - simple: [ - { from: 0 , to: 1e3 , unit: '' }, - { from: 1e3 , to: 1e6 , unit: 'K', long: 'thousand' }, - { from: 1e6 , to: 1e9 , unit: 'Mn', long: 'million' }, - { from: 1e9 , to: 1e12, unit: 'Bn', long: 'billion' } - ] -} - -> const { value, unit } = byteSize(10000, { customUnits, units: 'simple' }) - -> `${value}${unit}` -'10.0K' -``` - -Override the built-in defaults for the duration of the process by passing an options object to `byteSize.defaultOptions()`. This results in cleaner code in cases where `byteSize` is used often with the same options. - -```js -> byteSize.defaultOptions({ - units: 'simple', - precision: 2, - customUnits: { - simple: [ - { from: 0, to: 1e3, unit: '' }, - { from: 1e3, to: 1e6, unit: 'k' }, - { from: 1e6, to: 1e9, unit: 'm' }, - { from: 1e9, to: 1e12, unit: 'bn' }, - ] - }, - toStringFn: function () { - return this.value + this.unit - } -}) - -> [2400, 16400, 3991200].map(byteSize).join(', ') -'2.40k, 16.40k, 3.99m' -``` - -{{>main}} - -## Load anywhere - -This library is compatible with Node.js, the Web and any style of module loader. It can be loaded anywhere, natively without transpilation. - -Node.js: - -```js -const byteSize = require('byte-size') -``` - -Within Node.js with ECMAScript Module support enabled: - -```js -import byteSize from 'byte-size' -``` - -Within a modern browser ECMAScript Module: - -```js -import byteSize from './node_modules/byte-size/index.mjs' -``` - -Old browser (adds `window.byteSize`): - -```html - -``` - -* * * - -© 2014-20 Lloyd Brookes \<75pound@gmail.com\>. - -Isomorphic test suite by [test-runner](https://github.com/test-runner-js/test-runner) and [web-runner](https://github.com/test-runner-js/web-runner). Documented by [jsdoc-to-markdown](https://github.com/jsdoc2md/jsdoc-to-markdown). diff --git a/deps/npm/node_modules/byte-size/README.md b/deps/npm/node_modules/byte-size/README.md deleted file mode 100644 index 71f47b1e49b3c5..00000000000000 --- a/deps/npm/node_modules/byte-size/README.md +++ /dev/null @@ -1,198 +0,0 @@ -[![view on npm](https://badgen.net/npm/v/byte-size)](https://www.npmjs.org/package/byte-size) -[![npm module downloads](https://badgen.net/npm/dt/byte-size)](https://www.npmjs.org/package/byte-size) -[![Gihub repo dependents](https://badgen.net/github/dependents-repo/75lb/byte-size)](https://github.com/75lb/byte-size/network/dependents?dependent_type=REPOSITORY) -[![Gihub package dependents](https://badgen.net/github/dependents-pkg/75lb/byte-size)](https://github.com/75lb/byte-size/network/dependents?dependent_type=PACKAGE) -[![Build Status](https://travis-ci.org/75lb/byte-size.svg?branch=master)](https://travis-ci.org/75lb/byte-size) -[![Coverage Status](https://coveralls.io/repos/github/75lb/byte-size/badge.svg)](https://coveralls.io/github/75lb/byte-size) -[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](https://github.com/feross/standard) - -***Upgraders, please check the [release notes](https://github.com/75lb/byte-size/releases).*** - -# byte-size - -An isomorphic, load-anywhere function to convert a bytes value (e.g. `3456`) to a human-readable string (`'3.5 kB'`). Choose between [metric or IEC units](https://en.wikipedia.org/wiki/Gigabyte) (summarised below) or specify your own custom units. - -Value | Metric | Metric (octet) | ------ | ------------- | -------------- | -1000 | kB kilobyte | ko kilooctet | -1000^2 | MB megabyte | Mo megaoctet | -1000^3 | GB gigabyte | Go gigaoctet | -1000^4 | TB terabyte | To teraoctet | -1000^5 | PB petabyte | Po petaoctet | -1000^6 | EB exabyte | Eo exaoctet | -1000^7 | ZB zettabyte | Zo zettaoctet | -1000^8 | YB yottabyte | Yo yottaoctet | - -Value | IEC | IEC (octet) | ------- | ------------ | ------------- | -1024 | KiB kibibyte | Kio kibioctet | -1024^2 | MiB mebibyte | Mio mebioctet | -1024^3 | GiB gibibyte | Gio gibioctet | -1024^4 | TiB tebibyte | Tio tebioctet | -1024^5 | PiB pebibyte | Pio pebioctet | -1024^6 | EiB exbibyte | Eio exbioctet | -1024^7 | ZiB zebibyte | Zio zebioctet | -1024^8 | YiB yobibyte | Yio yobioctet | - -## Synopsis - -By default, `byteSize` converts the input number to a human readable string with metric units and a precision of 1. - -```js -> const byteSize = require('byte-size') - -> byteSize(1580) -{ value: '1.6', unit: 'kB', long: 'kilobytes' } -``` - -The object returned by `byteSize` defines a `toString` method therefore can be used directly in string context. - -```js -> `Filesize: ${byteSize(12400)}` -'Filesize: 12.4 kB' -``` - -Override the default `toString` behaviour by setting [`options.toStringFn`](#bytesizebytes-options--object-). - -```js -> function toStringFn () { - return `**${this.value}${this.unit}**` -} - -> `Filesize: ${byteSize(12400, { toStringFn })}` -'Filesize: **12.4kB**' -``` - -Beside the default of `metric`, there are three other built-in units available: `metric_octet`, `iec` and `iec_octet`. - -```js -> byteSize(1580, { units: 'iec' }) -{ value: '1.5', unit: 'KiB', long: 'kibibytes' } - -> byteSize(1580, { units: 'iec_octet' }) -{ value: '1.5', unit: 'Kio', long: 'kibioctets' } - -> byteSize(1580, { units: 'metric_octet' }) -{ value: '1.6', unit: 'ko', long: 'kilooctets' } -``` - -You can adjust the `precision`. - -```js -> byteSize(1580, { units: 'iec', precision: 3 }) -{ value: '1.543', unit: 'KiB', long: 'kibibytes' } - -> byteSize(1580, { units: 'iec', precision: 0 }) -{ value: '2', unit: 'KiB', long: 'kibibytes' } -``` - -Define custom units by passing an object containing one or more additional conversion tables to `options.customUnits`. In `options.units`, specify the name of a property from the `customUnits` object. - -```js -> const customUnits = { - simple: [ - { from: 0 , to: 1e3 , unit: '' }, - { from: 1e3 , to: 1e6 , unit: 'K', long: 'thousand' }, - { from: 1e6 , to: 1e9 , unit: 'Mn', long: 'million' }, - { from: 1e9 , to: 1e12, unit: 'Bn', long: 'billion' } - ] -} - -> const { value, unit } = byteSize(10000, { customUnits, units: 'simple' }) - -> `${value}${unit}` -'10.0K' -``` - -Override the built-in defaults for the duration of the process by passing an options object to `byteSize.defaultOptions()`. This results in cleaner code in cases where `byteSize` is used often with the same options. - -```js -> byteSize.defaultOptions({ - units: 'simple', - precision: 2, - customUnits: { - simple: [ - { from: 0, to: 1e3, unit: '' }, - { from: 1e3, to: 1e6, unit: 'k' }, - { from: 1e6, to: 1e9, unit: 'm' }, - { from: 1e9, to: 1e12, unit: 'bn' }, - ] - }, - toStringFn: function () { - return this.value + this.unit - } -}) - -> [2400, 16400, 3991200].map(byteSize).join(', ') -'2.40k, 16.40k, 3.99m' -``` - - - -## byte-size - -* [byte-size](#module_byte-size) - * [byteSize(bytes, [options])](#exp_module_byte-size--byteSize) ⇒ object ⏏ - * [.defaultOptions(options)](#module_byte-size--byteSize.defaultOptions) - - - -### byteSize(bytes, [options]) ⇒ object ⏏ -Returns an object with the spec `{ value: string, unit: string, long: string }`. The returned object defines a `toString` method meaning it can be used in any string context. - -**Kind**: Exported function - -| Param | Type | Description | -| --- | --- | --- | -| bytes | number | The bytes value to convert. | -| [options] | object | Optional config. | -| [options.precision] | number | Number of decimal places. Defaults to `1`. | -| [options.units] | string | Specify `'metric'`, `'iec'`, `'metric_octet'`, `'iec_octet'` or the name of a property from the custom units table in `options.customUnits`. Defaults to `metric`. | -| [options.customUnits] | object | An object containing one or more custom unit lookup tables. | -| [options.toStringFn] | function | A `toString` function to override the default. | - - - -#### byteSize.defaultOptions(options) -Set the default `byteSize` options for the duration of the process. - -**Kind**: static method of [byteSize](#exp_module_byte-size--byteSize) - -| Param | Type | Description | -| --- | --- | --- | -| options | object | A `byteSize` options object. | - - -## Load anywhere - -This library is compatible with Node.js, the Web and any style of module loader. It can be loaded anywhere, natively without transpilation. - -Node.js: - -```js -const byteSize = require('byte-size') -``` - -Within Node.js with ECMAScript Module support enabled: - -```js -import byteSize from 'byte-size' -``` - -Within a modern browser ECMAScript Module: - -```js -import byteSize from './node_modules/byte-size/index.mjs' -``` - -Old browser (adds `window.byteSize`): - -```html - -``` - -* * * - -© 2014-20 Lloyd Brookes \<75pound@gmail.com\>. - -Isomorphic test suite by [test-runner](https://github.com/test-runner-js/test-runner) and [web-runner](https://github.com/test-runner-js/web-runner). Documented by [jsdoc-to-markdown](https://github.com/jsdoc2md/jsdoc-to-markdown). diff --git a/deps/npm/node_modules/byte-size/dist/index.js b/deps/npm/node_modules/byte-size/dist/index.js deleted file mode 100644 index 78129d8b02d215..00000000000000 --- a/deps/npm/node_modules/byte-size/dist/index.js +++ /dev/null @@ -1,123 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, global.byteSize = factory()); -}(this, (function () { 'use strict'; - - /** - * @module byte-size - */ - - let defaultOptions = {}; - const _options = new WeakMap(); - - class ByteSize { - constructor (bytes, options) { - options = Object.assign({ - units: 'metric', - precision: 1 - }, defaultOptions, options); - _options.set(this, options); - - const tables = { - metric: [ - { from: 0 , to: 1e3 , unit: 'B' , long: 'bytes' }, - { from: 1e3 , to: 1e6 , unit: 'kB', long: 'kilobytes' }, - { from: 1e6 , to: 1e9 , unit: 'MB', long: 'megabytes' }, - { from: 1e9 , to: 1e12, unit: 'GB', long: 'gigabytes' }, - { from: 1e12, to: 1e15, unit: 'TB', long: 'terabytes' }, - { from: 1e15, to: 1e18, unit: 'PB', long: 'petabytes' }, - { from: 1e18, to: 1e21, unit: 'EB', long: 'exabytes' }, - { from: 1e21, to: 1e24, unit: 'ZB', long: 'zettabytes' }, - { from: 1e24, to: 1e27, unit: 'YB', long: 'yottabytes' }, - ], - metric_octet: [ - { from: 0 , to: 1e3 , unit: 'o' , long: 'octets' }, - { from: 1e3 , to: 1e6 , unit: 'ko', long: 'kilooctets' }, - { from: 1e6 , to: 1e9 , unit: 'Mo', long: 'megaoctets' }, - { from: 1e9 , to: 1e12, unit: 'Go', long: 'gigaoctets' }, - { from: 1e12, to: 1e15, unit: 'To', long: 'teraoctets' }, - { from: 1e15, to: 1e18, unit: 'Po', long: 'petaoctets' }, - { from: 1e18, to: 1e21, unit: 'Eo', long: 'exaoctets' }, - { from: 1e21, to: 1e24, unit: 'Zo', long: 'zettaoctets' }, - { from: 1e24, to: 1e27, unit: 'Yo', long: 'yottaoctets' }, - ], - iec: [ - { from: 0 , to: Math.pow(1024, 1), unit: 'B' , long: 'bytes' }, - { from: Math.pow(1024, 1), to: Math.pow(1024, 2), unit: 'KiB', long: 'kibibytes' }, - { from: Math.pow(1024, 2), to: Math.pow(1024, 3), unit: 'MiB', long: 'mebibytes' }, - { from: Math.pow(1024, 3), to: Math.pow(1024, 4), unit: 'GiB', long: 'gibibytes' }, - { from: Math.pow(1024, 4), to: Math.pow(1024, 5), unit: 'TiB', long: 'tebibytes' }, - { from: Math.pow(1024, 5), to: Math.pow(1024, 6), unit: 'PiB', long: 'pebibytes' }, - { from: Math.pow(1024, 6), to: Math.pow(1024, 7), unit: 'EiB', long: 'exbibytes' }, - { from: Math.pow(1024, 7), to: Math.pow(1024, 8), unit: 'ZiB', long: 'zebibytes' }, - { from: Math.pow(1024, 8), to: Math.pow(1024, 9), unit: 'YiB', long: 'yobibytes' }, - ], - iec_octet: [ - { from: 0 , to: Math.pow(1024, 1), unit: 'o' , long: 'octets' }, - { from: Math.pow(1024, 1), to: Math.pow(1024, 2), unit: 'Kio', long: 'kibioctets' }, - { from: Math.pow(1024, 2), to: Math.pow(1024, 3), unit: 'Mio', long: 'mebioctets' }, - { from: Math.pow(1024, 3), to: Math.pow(1024, 4), unit: 'Gio', long: 'gibioctets' }, - { from: Math.pow(1024, 4), to: Math.pow(1024, 5), unit: 'Tio', long: 'tebioctets' }, - { from: Math.pow(1024, 5), to: Math.pow(1024, 6), unit: 'Pio', long: 'pebioctets' }, - { from: Math.pow(1024, 6), to: Math.pow(1024, 7), unit: 'Eio', long: 'exbioctets' }, - { from: Math.pow(1024, 7), to: Math.pow(1024, 8), unit: 'Zio', long: 'zebioctets' }, - { from: Math.pow(1024, 8), to: Math.pow(1024, 9), unit: 'Yio', long: 'yobioctets' }, - ], - }; - Object.assign(tables, options.customUnits); - - const prefix = bytes < 0 ? '-' : ''; - bytes = Math.abs(bytes); - const table = tables[options.units]; - if (table) { - const units = table.find(u => bytes >= u.from && bytes < u.to); - if (units) { - const value = units.from === 0 - ? prefix + bytes - : prefix + (bytes / units.from).toFixed(options.precision); - this.value = value; - this.unit = units.unit; - this.long = units.long; - } else { - this.value = prefix + bytes; - this.unit = ''; - this.long = ''; - } - } else { - throw new Error(`Invalid units specified: ${options.units}`) - } - } - - toString () { - const options = _options.get(this); - return options.toStringFn ? options.toStringFn.bind(this)() : `${this.value} ${this.unit}` - } - } - - /** - * Returns an object with the spec `{ value: string, unit: string, long: string }`. The returned object defines a `toString` method meaning it can be used in any string context. - * @param {number} - The bytes value to convert. - * @param [options] {object} - Optional config. - * @param [options.precision] {number} - Number of decimal places. Defaults to `1`. - * @param [options.units] {string} - Specify `'metric'`, `'iec'`, `'metric_octet'`, `'iec_octet'` or the name of a property from the custom units table in `options.customUnits`. Defaults to `metric`. - * @param [options.customUnits] {object} - An object containing one or more custom unit lookup tables. - * @param [options.toStringFn] {function} - A `toString` function to override the default. - * @returns {object} - * @alias module:byte-size - */ - function byteSize (bytes, options) { - return new ByteSize(bytes, options) - } - - /** - * Set the default `byteSize` options for the duration of the process. - * @param options {object} - A `byteSize` options object. - */ - byteSize.defaultOptions = function (options) { - defaultOptions = options; - }; - - return byteSize; - -}))); diff --git a/deps/npm/node_modules/byte-size/index.mjs b/deps/npm/node_modules/byte-size/index.mjs deleted file mode 100644 index bd6548c686aa56..00000000000000 --- a/deps/npm/node_modules/byte-size/index.mjs +++ /dev/null @@ -1,115 +0,0 @@ -/** - * @module byte-size - */ - -let defaultOptions = {} -const _options = new WeakMap() - -class ByteSize { - constructor (bytes, options) { - options = Object.assign({ - units: 'metric', - precision: 1 - }, defaultOptions, options) - _options.set(this, options) - - const tables = { - metric: [ - { from: 0 , to: 1e3 , unit: 'B' , long: 'bytes' }, - { from: 1e3 , to: 1e6 , unit: 'kB', long: 'kilobytes' }, - { from: 1e6 , to: 1e9 , unit: 'MB', long: 'megabytes' }, - { from: 1e9 , to: 1e12, unit: 'GB', long: 'gigabytes' }, - { from: 1e12, to: 1e15, unit: 'TB', long: 'terabytes' }, - { from: 1e15, to: 1e18, unit: 'PB', long: 'petabytes' }, - { from: 1e18, to: 1e21, unit: 'EB', long: 'exabytes' }, - { from: 1e21, to: 1e24, unit: 'ZB', long: 'zettabytes' }, - { from: 1e24, to: 1e27, unit: 'YB', long: 'yottabytes' }, - ], - metric_octet: [ - { from: 0 , to: 1e3 , unit: 'o' , long: 'octets' }, - { from: 1e3 , to: 1e6 , unit: 'ko', long: 'kilooctets' }, - { from: 1e6 , to: 1e9 , unit: 'Mo', long: 'megaoctets' }, - { from: 1e9 , to: 1e12, unit: 'Go', long: 'gigaoctets' }, - { from: 1e12, to: 1e15, unit: 'To', long: 'teraoctets' }, - { from: 1e15, to: 1e18, unit: 'Po', long: 'petaoctets' }, - { from: 1e18, to: 1e21, unit: 'Eo', long: 'exaoctets' }, - { from: 1e21, to: 1e24, unit: 'Zo', long: 'zettaoctets' }, - { from: 1e24, to: 1e27, unit: 'Yo', long: 'yottaoctets' }, - ], - iec: [ - { from: 0 , to: Math.pow(1024, 1), unit: 'B' , long: 'bytes' }, - { from: Math.pow(1024, 1), to: Math.pow(1024, 2), unit: 'KiB', long: 'kibibytes' }, - { from: Math.pow(1024, 2), to: Math.pow(1024, 3), unit: 'MiB', long: 'mebibytes' }, - { from: Math.pow(1024, 3), to: Math.pow(1024, 4), unit: 'GiB', long: 'gibibytes' }, - { from: Math.pow(1024, 4), to: Math.pow(1024, 5), unit: 'TiB', long: 'tebibytes' }, - { from: Math.pow(1024, 5), to: Math.pow(1024, 6), unit: 'PiB', long: 'pebibytes' }, - { from: Math.pow(1024, 6), to: Math.pow(1024, 7), unit: 'EiB', long: 'exbibytes' }, - { from: Math.pow(1024, 7), to: Math.pow(1024, 8), unit: 'ZiB', long: 'zebibytes' }, - { from: Math.pow(1024, 8), to: Math.pow(1024, 9), unit: 'YiB', long: 'yobibytes' }, - ], - iec_octet: [ - { from: 0 , to: Math.pow(1024, 1), unit: 'o' , long: 'octets' }, - { from: Math.pow(1024, 1), to: Math.pow(1024, 2), unit: 'Kio', long: 'kibioctets' }, - { from: Math.pow(1024, 2), to: Math.pow(1024, 3), unit: 'Mio', long: 'mebioctets' }, - { from: Math.pow(1024, 3), to: Math.pow(1024, 4), unit: 'Gio', long: 'gibioctets' }, - { from: Math.pow(1024, 4), to: Math.pow(1024, 5), unit: 'Tio', long: 'tebioctets' }, - { from: Math.pow(1024, 5), to: Math.pow(1024, 6), unit: 'Pio', long: 'pebioctets' }, - { from: Math.pow(1024, 6), to: Math.pow(1024, 7), unit: 'Eio', long: 'exbioctets' }, - { from: Math.pow(1024, 7), to: Math.pow(1024, 8), unit: 'Zio', long: 'zebioctets' }, - { from: Math.pow(1024, 8), to: Math.pow(1024, 9), unit: 'Yio', long: 'yobioctets' }, - ], - } - Object.assign(tables, options.customUnits) - - const prefix = bytes < 0 ? '-' : '' - bytes = Math.abs(bytes) - const table = tables[options.units] - if (table) { - const units = table.find(u => bytes >= u.from && bytes < u.to) - if (units) { - const value = units.from === 0 - ? prefix + bytes - : prefix + (bytes / units.from).toFixed(options.precision) - this.value = value - this.unit = units.unit - this.long = units.long - } else { - this.value = prefix + bytes - this.unit = '' - this.long = '' - } - } else { - throw new Error(`Invalid units specified: ${options.units}`) - } - } - - toString () { - const options = _options.get(this) - return options.toStringFn ? options.toStringFn.bind(this)() : `${this.value} ${this.unit}` - } -} - -/** - * Returns an object with the spec `{ value: string, unit: string, long: string }`. The returned object defines a `toString` method meaning it can be used in any string context. - * @param {number} - The bytes value to convert. - * @param [options] {object} - Optional config. - * @param [options.precision] {number} - Number of decimal places. Defaults to `1`. - * @param [options.units] {string} - Specify `'metric'`, `'iec'`, `'metric_octet'`, `'iec_octet'` or the name of a property from the custom units table in `options.customUnits`. Defaults to `metric`. - * @param [options.customUnits] {object} - An object containing one or more custom unit lookup tables. - * @param [options.toStringFn] {function} - A `toString` function to override the default. - * @returns {object} - * @alias module:byte-size - */ -function byteSize (bytes, options) { - return new ByteSize(bytes, options) -} - -/** - * Set the default `byteSize` options for the duration of the process. - * @param options {object} - A `byteSize` options object. - */ -byteSize.defaultOptions = function (options) { - defaultOptions = options -} - -export default byteSize diff --git a/deps/npm/node_modules/byte-size/package.json b/deps/npm/node_modules/byte-size/package.json deleted file mode 100644 index e69b7e5f53ae2e..00000000000000 --- a/deps/npm/node_modules/byte-size/package.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "name": "byte-size", - "author": "Lloyd Brookes <75pound@gmail.com>", - "contributors": [ - { - "name": "Raul Perez", - "email": "repejota@gmail.com", - "url": "http://repejota.com" - } - ], - "version": "7.0.0", - "main": "dist/index.js", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "description": "Convert a bytes or octets value (e.g. 34565346) to a human-readable string ('34.6 MB'). Choose between metric or IEC units.", - "repository": "https://github.com/75lb/byte-size", - "files": [ - "index.mjs", - "dist/index.js" - ], - "keywords": [ - "convert", - "bytes", - "octet", - "size", - "human", - "readable", - "metric", - "IEC" - ], - "scripts": { - "test": "npm run dist && npm run test:esm && npm run test:web", - "test:esm": "esm-runner test.mjs", - "test:web": "web-runner test.mjs", - "docs": "jsdoc2md -t README.hbs dist/index.js > README.md", - "cover": "c8 npm test && c8 report --reporter=text-lcov | coveralls", - "dist": "rollup -f umd -n byteSize -o dist/index.js index.mjs" - }, - "devDependencies": { - "@test-runner/web": "^0.3.4", - "coveralls": "^3.1.0", - "esm-runner": "^0.3.4", - "isomorphic-assert": "^0.1.1", - "jsdoc-to-markdown": "^5.0.3", - "rollup": "^2.10.9", - "test-object-model": "^0.6.1" - }, - "standard": { - "ignore": [ - "dist" - ] - } -} diff --git a/deps/npm/node_modules/cacache/CHANGELOG.md b/deps/npm/node_modules/cacache/CHANGELOG.md deleted file mode 100644 index 14eee0b381c071..00000000000000 --- a/deps/npm/node_modules/cacache/CHANGELOG.md +++ /dev/null @@ -1,794 +0,0 @@ -# Changelog - -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. - -### [15.0.5](https://github.com/npm/cacache/compare/v15.0.4...v15.0.5) (2020-07-11) - -### [15.0.4](https://github.com/npm/cacache/compare/v15.0.3...v15.0.4) (2020-06-03) - - -### Bug Fixes - -* replace move-file dep with @npmcli/move-file ([bf88af0](https://github.com/npm/cacache/commit/bf88af04e50cca9b54041151139ffc1fd415e2dc)), closes [#37](https://github.com/npm/cacache/issues/37) - -### [15.0.3](https://github.com/npm/cacache/compare/v15.0.2...v15.0.3) (2020-04-28) - - -### Bug Fixes - -* actually remove move-concurrently dep ([29e6eec](https://github.com/npm/cacache/commit/29e6eec9fee73444ee09daf1c1be06ddd5fe57f6)) - -### [15.0.2](https://github.com/npm/cacache/compare/v15.0.1...v15.0.2) (2020-04-28) - - -### Bug Fixes - -* tacks should be a dev dependency ([93ec158](https://github.com/npm/cacache/commit/93ec15852f0fdf1753ea7f75b4b8926daf8a7565)) - -## [15.0.1](https://github.com/npm/cacache/compare/v15.0.0...v15.0.1) (2020-04-27) - -* **deps:** Use move-file instead of move-file-concurrently. ([92b125](https://github.com/npm/cacache/commit/92b1251a11b9848878b6c0d101b18bd8845acaa6)) - -## [15.0.0](https://github.com/npm/cacache/compare/v14.0.0...v15.0.0) (2020-02-18) - - -### ⚠ BREAKING CHANGES - -* drop figgy-pudding and use canonical option names. - -### Features - -* remove figgy-pudding ([57d11bc](https://github.com/npm/cacache/commit/57d11bce34f979247d1057d258acc204c4944491)) - -## [14.0.0](https://github.com/npm/cacache/compare/v13.0.1...v14.0.0) (2020-01-28) - - -### ⚠ BREAKING CHANGES - -* **deps:** bumps engines to >= 10 - -* **deps:** tar v6 and mkdirp v1 ([5a66e7a](https://github.com/npm/cacache/commit/5a66e7a)) - -### [13.0.1](https://github.com/npm/cacache/compare/v13.0.0...v13.0.1) (2019-09-30) - - -### Bug Fixes - -* **fix-owner:** chownr.sync quits on non-root uid ([08801be](https://github.com/npm/cacache/commit/08801be)) - -## [13.0.0](https://github.com/npm/cacache/compare/v12.0.3...v13.0.0) (2019-09-25) - - -### ⚠ BREAKING CHANGES - -* This subtly changes the streaming interface of -everything in cacache that streams, which is, well, everything in -cacache. Most users will probably not notice, but any code that -depended on stream behavior always being deferred until next tick will -need to adjust. - -The mississippi methods 'to', 'from', 'through', and so on, have been -replaced with their Minipass counterparts, and streaming interaction -with the file system is done via fs-minipass. - -The following modules are of interest here: - -- [minipass](http://npm.im/minipass) The core stream library. - -- [fs-minipass](http://npm.im/fs-minipass) Note that the 'WriteStream' - class from fs-minipass is _not_ a Minipass stream, but rather a plain - old EventEmitter that duck types as a Writable. - -- [minipass-collect](http://npm.im/minipass-collect) Gather up all the - data from a stream. Cacache only uses Collect.PassThrough, which is a - basic Minipass passthrough stream which emits a 'collect' event with - the completed data just before the 'end' event. - -- [minipass-pipeline](http://npm.im/minipass-pipeline) Connect one or - more streams into a pipe chain. Errors anywhere in the pipeline are - proxied down the chain and then up to the Pipeline object itself. - Writes go into the head, reads go to the tail. Used in place of - pump() and pumpify(). - -- [minipass-flush](http://npm.im/minipass-flush) A Minipass passthrough - stream that defers its 'end' event until after a flush() method has - completed (either calling the supplied callback, or returning a - promise.) Use in place of flush-write-stream (aka mississippi.to). - -Streams from through2, concat-stream, and the behavior provided by -end-of-stream are all implemented in Minipass itself. - -Features of interest to cacache, which make Minipass a particularly good -fit: - -- All of the 'endish' events are normalized, so we can just listen on - 'end' and know that finish, prefinish, and close will be handled as - well. -- Minipass doesn't waste time [containing - zalgo](https://blog.izs.me/2013/08/designing-apis-for-asynchrony). -- Minipass has built-in support for promises that indicate the end or - error: stream.promise(), stream.collect(), and stream.concat(). -- With reliable and consistent timing guarantees, much less - error-checking logic is required. We can be more confident that an - error is being thrown or emitted in the correct place, rather than in - a callback which is deferred, resulting in a hung promise or - uncaughtException. - -The biggest downside of Minipass is that it lacks some of the internal -characteristics of node-core streams, which many community modules use -to identify streams. They have no _writableState or _readableState -objects, or _read or _write methods. As a result, the is-stream module -(at least, at the time of this commit) doesn't recognize Minipass -streams as readable or writable streams. - -All in all, the changes required of downstream users should be minimal, -but are unlikely to be zero. Hence the semver major change. - -### Features - -* replace all streams with Minipass streams ([f4c0962](https://github.com/npm/cacache/commit/f4c0962)) -* **deps:** Add minipass and minipass-pipeline ([a6545a9](https://github.com/npm/cacache/commit/a6545a9)) -* **promise:** converted .resolve to native promise, converted .map and .reduce to native ([220c56d](https://github.com/npm/cacache/commit/220c56d)) -* **promise:** individually promisifing functions as needed ([74b939e](https://github.com/npm/cacache/commit/74b939e)) -* **promise:** moved .reject from bluebird to native promise ([1d56da1](https://github.com/npm/cacache/commit/1d56da1)) -* **promise:** removed .fromNode, removed .join ([9c457a0](https://github.com/npm/cacache/commit/9c457a0)) -* **promise:** removed .map, replaced with p-map. removed .try ([cc3ee05](https://github.com/npm/cacache/commit/cc3ee05)) -* **promise:** removed .tap ([0260f12](https://github.com/npm/cacache/commit/0260f12)) -* **promise:** removed .using/.disposer ([5d832f3](https://github.com/npm/cacache/commit/5d832f3)) -* **promise:** removed bluebird ([c21298c](https://github.com/npm/cacache/commit/c21298c)) -* **promise:** removed bluebird specific .catch calls ([28aeeac](https://github.com/npm/cacache/commit/28aeeac)) -* **promise:** replaced .reduce and .mapSeries ([478f5cb](https://github.com/npm/cacache/commit/478f5cb)) - -### [12.0.3](https://github.com/npm/cacache/compare/v12.0.2...v12.0.3) (2019-08-19) - - -### Bug Fixes - -* do not chown if not running as root ([2d80af9](https://github.com/npm/cacache/commit/2d80af9)) - - - -### [12.0.2](https://github.com/npm/cacache/compare/v12.0.1...v12.0.2) (2019-07-19) - - - -### [12.0.1](https://github.com/npm/cacache/compare/v12.0.0...v12.0.1) (2019-07-19) - -* **deps** Abstracted out `lib/util/infer-owner.js` to - [@npmcli/infer-owner](https://www.npmjs.com/package/@npmcli/infer-owner) - so that it could be more easily used in other parts of the npm CLI. - - -## [12.0.0](https://github.com/npm/cacache/compare/v11.3.3...v12.0.0) (2019-07-15) - - -### Features - -* infer uid/gid instead of accepting as options ([ac84d14](https://github.com/npm/cacache/commit/ac84d14)) -* **i18n:** add another error message ([676cb32](https://github.com/npm/cacache/commit/676cb32)) - - -### BREAKING CHANGES - -* the uid gid options are no longer respected or -necessary. As of this change, cacache will always match the cache -contents to the ownership of the cache directory (or its parent -directory), regardless of what the caller passes in. - -Reasoning: - -The number one reason to use a uid or gid option was to keep root-owned -files from causing problems in the cache. In npm's case, this meant -that CLI's ./lib/command.js had to work out the appropriate uid and gid, -then pass it to the libnpmcommand module, which had to in turn pass the -uid and gid to npm-registry-fetch, which then passed it to -make-fetch-happen, which passed it to cacache. (For package fetching, -pacote would be in that mix as well.) - -Added to that, `cacache.rm()` will actually _write_ a file into the -cache index, but has no way to accept an option so that its call to -entry-index.js will write the index with the appropriate uid/gid. -Little ownership bugs were all over the place, and tricky to trace -through. (Why should make-fetch-happen even care about accepting or -passing uids and gids? It's an http library.) - -This change allows us to keep the cache from having mixed ownership in -any situation. - -Of course, this _does_ mean that if you have a root-owned but -user-writable folder (for example, `/tmp`), then the cache will try to -chown everything to root. - -The solution is for the user to create a folder, make it user-owned, and -use that, rather than relying on cacache to create the root cache folder. - -If we decide to restore the uid/gid opts, and use ownership inference -only when uid/gid are unset, then take care to also make rm take an -option object, and pass it through to entry-index.js. - - - -### [11.3.3](https://github.com/npm/cacache/compare/v11.3.2...v11.3.3) (2019-06-17) - - -### Bug Fixes - -* **audit:** npm audit fix ([200a6d5](https://github.com/npm/cacache/commit/200a6d5)) -* **config:** Add ssri config 'error' option ([#146](https://github.com/npm/cacache/issues/146)) ([47de8f5](https://github.com/npm/cacache/commit/47de8f5)) -* **deps:** npm audit fix ([481a7dc](https://github.com/npm/cacache/commit/481a7dc)) -* **standard:** standard --fix ([7799149](https://github.com/npm/cacache/commit/7799149)) -* **write:** avoid another cb never called situation ([5156561](https://github.com/npm/cacache/commit/5156561)) - - - - -## [11.3.2](https://github.com/npm/cacache/compare/v11.3.1...v11.3.2) (2018-12-21) - - -### Bug Fixes - -* **get:** make sure to handle errors in the .then ([b10bcd0](https://github.com/npm/cacache/commit/b10bcd0)) - - - - -## [11.3.1](https://github.com/npm/cacache/compare/v11.3.0...v11.3.1) (2018-11-05) - - -### Bug Fixes - -* **get:** export hasContent.sync properly ([d76c920](https://github.com/npm/cacache/commit/d76c920)) - - - - -# [11.3.0](https://github.com/npm/cacache/compare/v11.2.0...v11.3.0) (2018-11-05) - - -### Features - -* **get:** add sync API for reading ([db1e094](https://github.com/npm/cacache/commit/db1e094)) - - - - -# [11.2.0](https://github.com/npm/cacache/compare/v11.1.0...v11.2.0) (2018-08-08) - - -### Features - -* **read:** add sync support to other internal read.js fns ([fe638b6](https://github.com/npm/cacache/commit/fe638b6)) - - - - -# [11.1.0](https://github.com/npm/cacache/compare/v11.0.3...v11.1.0) (2018-08-01) - - -### Features - -* **read:** add sync support for low-level content read ([b43af83](https://github.com/npm/cacache/commit/b43af83)) - - - - -## [11.0.3](https://github.com/npm/cacache/compare/v11.0.2...v11.0.3) (2018-08-01) - - -### Bug Fixes - -* **config:** add ssri config options ([#136](https://github.com/npm/cacache/issues/136)) ([10d5d9a](https://github.com/npm/cacache/commit/10d5d9a)) -* **perf:** refactor content.read to avoid lstats ([c5ac10e](https://github.com/npm/cacache/commit/c5ac10e)) -* **test:** oops when removing safe-buffer ([1950490](https://github.com/npm/cacache/commit/1950490)) - - - - -## [11.0.2](https://github.com/npm/cacache/compare/v11.0.1...v11.0.2) (2018-05-07) - - -### Bug Fixes - -* **verify:** size param no longer lost in a verify ([#131](https://github.com/npm/cacache/issues/131)) ([c614a19](https://github.com/npm/cacache/commit/c614a19)), closes [#130](https://github.com/npm/cacache/issues/130) - - - - -## [11.0.1](https://github.com/npm/cacache/compare/v11.0.0...v11.0.1) (2018-04-10) - - - - -# [11.0.0](https://github.com/npm/cacache/compare/v10.0.4...v11.0.0) (2018-04-09) - - -### Features - -* **opts:** use figgy-pudding for opts ([#128](https://github.com/npm/cacache/issues/128)) ([33d4eed](https://github.com/npm/cacache/commit/33d4eed)) - - -### meta - -* drop support for node@4 ([529f347](https://github.com/npm/cacache/commit/529f347)) - - -### BREAKING CHANGES - -* node@4 is no longer supported - - - - -## [10.0.4](https://github.com/npm/cacache/compare/v10.0.3...v10.0.4) (2018-02-16) - - - - -## [10.0.3](https://github.com/npm/cacache/compare/v10.0.2...v10.0.3) (2018-02-16) - - -### Bug Fixes - -* **content:** rethrow aggregate errors as ENOENT ([fa918f5](https://github.com/npm/cacache/commit/fa918f5)) - - - - -## [10.0.2](https://github.com/npm/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/npm/cacache/commit/347dc36)) - - - - -## [10.0.1](https://github.com/npm/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/npm/cacache/commit/073fbe1)) - - - - -# [10.0.0](https://github.com/npm/cacache/compare/v9.3.0...v10.0.0) (2017-10-23) - - -### Features - -* **license:** relicense to ISC (#111) ([fdbb4e5](https://github.com/npm/cacache/commit/fdbb4e5)) - - -### Performance Improvements - -* more copyFile benchmarks ([63787bb](https://github.com/npm/cacache/commit/63787bb)) - - -### BREAKING CHANGES - -* **license:** the license has been changed from CC0-1.0 to ISC. - - - - -# [9.3.0](https://github.com/npm/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/npm/cacache/commit/067b5f6)) - - - - -## [9.2.9](https://github.com/npm/cacache/compare/v9.2.8...v9.2.9) (2017-06-17) - - - - -## [9.2.8](https://github.com/npm/cacache/compare/v9.2.7...v9.2.8) (2017-06-05) - - -### Bug Fixes - -* **ssri:** bump ssri for bugfix ([c3232ea](https://github.com/npm/cacache/commit/c3232ea)) - - - - -## [9.2.7](https://github.com/npm/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/npm/cacache/commit/4131196)) - - - - -## [9.2.6](https://github.com/npm/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/npm/cacache/commit/5209ffe)) - - - - -## [9.2.5](https://github.com/npm/cacache/compare/v9.2.4...v9.2.5) (2017-05-25) - - -### Bug Fixes - -* **deps:** fix lockfile issues and bump ssri ([84e1d7e](https://github.com/npm/cacache/commit/84e1d7e)) - - - - -## [9.2.4](https://github.com/npm/cacache/compare/v9.2.3...v9.2.4) (2017-05-24) - - -### Bug Fixes - -* **deps:** bumping deps ([bbccb12](https://github.com/npm/cacache/commit/bbccb12)) - - - - -## [9.2.3](https://github.com/npm/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/npm/cacache/commit/ac90bc0)) - - - - -## [9.2.2](https://github.com/npm/cacache/compare/v9.2.1...v9.2.2) (2017-05-14) - - -### Bug Fixes - -* **i18n:** lets pretend this didn't happen ([519b4ee](https://github.com/npm/cacache/commit/519b4ee)) - - - - -## [9.2.1](https://github.com/npm/cacache/compare/v9.2.0...v9.2.1) (2017-05-14) - - -### Bug Fixes - -* **docs:** fixing translation messup ([bb9e4f9](https://github.com/npm/cacache/commit/bb9e4f9)) - - - - -# [9.2.0](https://github.com/npm/cacache/compare/v9.1.0...v9.2.0) (2017-05-14) - - -### Features - -* **i18n:** add Spanish translation for API ([531f9a4](https://github.com/npm/cacache/commit/531f9a4)) - - - - -# [9.1.0](https://github.com/npm/cacache/compare/v9.0.0...v9.1.0) (2017-05-14) - - -### Features - -* **i18n:** Add Spanish translation and i18n setup (#91) ([323b90c](https://github.com/npm/cacache/commit/323b90c)) - - - - -# [9.0.0](https://github.com/npm/cacache/compare/v8.0.0...v9.0.0) (2017-04-28) - - -### Bug Fixes - -* **memoization:** actually use the LRU ([0e55dc9](https://github.com/npm/cacache/commit/0e55dc9)) - - -### Features - -* **memoization:** memoizers can be injected through opts.memoize (#90) ([e5614c7](https://github.com/npm/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/npm/cacache/compare/v7.1.0...v8.0.0) (2017-04-22) - - -### Features - -* **read:** change hasContent to return {sri, size} (#88) ([bad6c49](https://github.com/npm/cacache/commit/bad6c49)), closes [#87](https://github.com/npm/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/npm/cacache/compare/v7.0.5...v7.1.0) (2017-04-20) - - -### Features - -* **size:** handle content size info (#49) ([91230af](https://github.com/npm/cacache/commit/91230af)) - - - - -## [7.0.5](https://github.com/npm/cacache/compare/v7.0.4...v7.0.5) (2017-04-18) - - -### Bug Fixes - -* **integrity:** new ssri with fixed integrity stream ([6d13e8e](https://github.com/npm/cacache/commit/6d13e8e)) -* **write:** wrap stuff in promises to improve errors ([3624fc5](https://github.com/npm/cacache/commit/3624fc5)) - - - - -## [7.0.4](https://github.com/npm/cacache/compare/v7.0.3...v7.0.4) (2017-04-15) - - -### Bug Fixes - -* **fix-owner:** throw away ENOENTs on chownr ([d49bbcd](https://github.com/npm/cacache/commit/d49bbcd)) - - - - -## [7.0.3](https://github.com/npm/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/npm/cacache/commit/9d4f0a5)) - - - - -## [7.0.2](https://github.com/npm/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/npm/cacache/commit/8dc2e62)) - - - - -## [7.0.1](https://github.com/npm/cacache/compare/v7.0.0...v7.0.1) (2017-04-03) - - -### Bug Fixes - -* **docs:** fix header name conflict in readme ([afcd456](https://github.com/npm/cacache/commit/afcd456)) - - - - -# [7.0.0](https://github.com/npm/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/npm/cacache/commit/d2e9b6a)) - - -### Features - -* **integrity:** subresource integrity support (#78) ([b1e731f](https://github.com/npm/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/npm/cacache/compare/v6.2.0...v6.3.0) (2017-04-01) - - -### Bug Fixes - -* **fixOwner:** ignore EEXIST race condition from mkdirp ([4670e9b](https://github.com/npm/cacache/commit/4670e9b)) -* **index:** ignore index removal races when inserting ([b9d2fa2](https://github.com/npm/cacache/commit/b9d2fa2)) -* **memo:** use lru-cache for better mem management (#75) ([d8ac5aa](https://github.com/npm/cacache/commit/d8ac5aa)) - - -### Features - -* **dependencies:** Switch to move-concurrently (#77) ([dc6482d](https://github.com/npm/cacache/commit/dc6482d)) - - - - -# [6.2.0](https://github.com/npm/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/npm/cacache/commit/f8e0f25)) -* **verify:** return fixOwner.chownr promise ([6818521](https://github.com/npm/cacache/commit/6818521)) - - -### Features - -* **tmp:** safe tmp dir creation/management util (#73) ([c42da71](https://github.com/npm/cacache/commit/c42da71)) - - - - -## [6.1.2](https://github.com/npm/cacache/compare/v6.1.1...v6.1.2) (2017-03-13) - - -### Bug Fixes - -* **index:** set default hashAlgorithm ([d6eb2f0](https://github.com/npm/cacache/commit/d6eb2f0)) - - - - -## [6.1.1](https://github.com/npm/cacache/compare/v6.1.0...v6.1.1) (2017-03-13) - - -### Bug Fixes - -* **coverage:** bumping coverage for verify (#71) ([0b7faf6](https://github.com/npm/cacache/commit/0b7faf6)) -* **deps:** glob should have been a regular dep :< ([0640bc4](https://github.com/npm/cacache/commit/0640bc4)) - - - - -# [6.1.0](https://github.com/npm/cacache/compare/v6.0.2...v6.1.0) (2017-03-12) - - -### Bug Fixes - -* **coverage:** more coverage for content reads (#70) ([ef4f70a](https://github.com/npm/cacache/commit/ef4f70a)) -* **tests:** use safe-buffer because omfg (#69) ([6ab8132](https://github.com/npm/cacache/commit/6ab8132)) - - -### Features - -* **rm:** limited rm.all and fixed bugs (#66) ([d5d25ba](https://github.com/npm/cacache/commit/d5d25ba)), closes [#66](https://github.com/npm/cacache/issues/66) -* **verify:** tested, working cache verifier/gc (#68) ([45ad77a](https://github.com/npm/cacache/commit/45ad77a)) - - - - -## [6.0.2](https://github.com/npm/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/npm/cacache/commit/c3644e5)) - - - - -## [6.0.1](https://github.com/npm/cacache/compare/v6.0.0...v6.0.1) (2017-03-05) - - -### Bug Fixes - -* **docs:** Missed spots in README ([8ffb7fa](https://github.com/npm/cacache/commit/8ffb7fa)) - - - - -# [6.0.0](https://github.com/npm/cacache/compare/v5.0.3...v6.0.0) (2017-03-05) - - -### Bug Fixes - -* **api:** keep memo cache mostly-internal ([2f72d0a](https://github.com/npm/cacache/commit/2f72d0a)) -* **content:** use the rest of the string, not the whole string ([fa8f3c3](https://github.com/npm/cacache/commit/fa8f3c3)) -* **deps:** removed `format-number@2.0.2` ([1187791](https://github.com/npm/cacache/commit/1187791)) -* **deps:** removed inflight@1.0.6 ([0d1819c](https://github.com/npm/cacache/commit/0d1819c)) -* **deps:** rimraf@2.6.1 ([9efab6b](https://github.com/npm/cacache/commit/9efab6b)) -* **deps:** standard@9.0.0 ([4202cba](https://github.com/npm/cacache/commit/4202cba)) -* **deps:** tap@10.3.0 ([aa03088](https://github.com/npm/cacache/commit/aa03088)) -* **deps:** weallcontribute@1.0.8 ([ad4f4dc](https://github.com/npm/cacache/commit/ad4f4dc)) -* **docs:** add security note to hashKey ([03f81ba](https://github.com/npm/cacache/commit/03f81ba)) -* **hashes:** change default hashAlgorithm to sha512 ([ea00ba6](https://github.com/npm/cacache/commit/ea00ba6)) -* **hashes:** missed a spot for hashAlgorithm defaults ([45997d8](https://github.com/npm/cacache/commit/45997d8)) -* **index:** add length header before JSON for verification ([fb8cb4d](https://github.com/npm/cacache/commit/fb8cb4d)) -* **index:** change index filenames to sha1s of keys ([bbc5fca](https://github.com/npm/cacache/commit/bbc5fca)) -* **index:** who cares about race conditions anyway ([b1d3888](https://github.com/npm/cacache/commit/b1d3888)) -* **perf:** bulk-read get+read for massive speed ([d26cdf9](https://github.com/npm/cacache/commit/d26cdf9)) -* **perf:** use bulk file reads for index reads ([79a8891](https://github.com/npm/cacache/commit/79a8891)) -* **put-stream:** remove tmp file on stream insert error ([65f6632](https://github.com/npm/cacache/commit/65f6632)) -* **put-stream:** robustified and predictibilized ([daf9e08](https://github.com/npm/cacache/commit/daf9e08)) -* **put-stream:** use new promise API for moves ([1d36013](https://github.com/npm/cacache/commit/1d36013)) -* **readme:** updated to reflect new default hashAlgo ([c60a2fa](https://github.com/npm/cacache/commit/c60a2fa)) -* **verify:** tiny typo fix ([db22d05](https://github.com/npm/cacache/commit/db22d05)) - - -### Features - -* **api:** converted external api ([7bf032f](https://github.com/npm/cacache/commit/7bf032f)) -* **cacache:** exported clearMemoized() utility ([8d2c5b6](https://github.com/npm/cacache/commit/8d2c5b6)) -* **cache:** add versioning to content and index ([31bc549](https://github.com/npm/cacache/commit/31bc549)) -* **content:** collate content files into subdirs ([c094d9f](https://github.com/npm/cacache/commit/c094d9f)) -* **deps:** `@npmcorp/move@1.0.0` ([bdd00bf](https://github.com/npm/cacache/commit/bdd00bf)) -* **deps:** `bluebird@3.4.7` ([3a17aff](https://github.com/npm/cacache/commit/3a17aff)) -* **deps:** `promise-inflight@1.0.1` ([a004fe6](https://github.com/npm/cacache/commit/a004fe6)) -* **get:** added memoization support for get ([c77d794](https://github.com/npm/cacache/commit/c77d794)) -* **get:** export hasContent ([2956ec3](https://github.com/npm/cacache/commit/2956ec3)) -* **index:** add hashAlgorithm and format insert ret val ([b639746](https://github.com/npm/cacache/commit/b639746)) -* **index:** collate index files into subdirs ([e8402a5](https://github.com/npm/cacache/commit/e8402a5)) -* **index:** promisify entry index ([cda3335](https://github.com/npm/cacache/commit/cda3335)) -* **memo:** added memoization lib ([da07b92](https://github.com/npm/cacache/commit/da07b92)) -* **memo:** export memoization api ([954b1b3](https://github.com/npm/cacache/commit/954b1b3)) -* **move-file:** add move fallback for weird errors ([5cf4616](https://github.com/npm/cacache/commit/5cf4616)) -* **perf:** bulk content write api ([51b536e](https://github.com/npm/cacache/commit/51b536e)) -* **put:** added memoization support to put ([b613a70](https://github.com/npm/cacache/commit/b613a70)) -* **read:** switched to promises ([a869362](https://github.com/npm/cacache/commit/a869362)) -* **rm:** added memoization support to rm ([4205cf0](https://github.com/npm/cacache/commit/4205cf0)) -* **rm:** switched to promises ([a000d24](https://github.com/npm/cacache/commit/a000d24)) -* **util:** promise-inflight ownership fix requests ([9517cd7](https://github.com/npm/cacache/commit/9517cd7)) -* **util:** use promises for api ([ae204bb](https://github.com/npm/cacache/commit/ae204bb)) -* **verify:** converted to Promises ([f0b3974](https://github.com/npm/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/deps/npm/node_modules/cacache/LICENSE.md b/deps/npm/node_modules/cacache/LICENSE.md deleted file mode 100644 index 8d28acf866d932..00000000000000 --- a/deps/npm/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/deps/npm/node_modules/cacache/README.md b/deps/npm/node_modules/cacache/README.md deleted file mode 100644 index 3f70f49a40b6c0..00000000000000 --- a/deps/npm/node_modules/cacache/README.md +++ /dev/null @@ -1,669 +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/npm/cacache.svg)](https://travis-ci.org/npm/cacache) [![AppVeyor](https://ci.appveyor.com/api/projects/status/github/npm/cacache?svg=true)](https://ci.appveyor.com/project/npm/cacache) [![Coverage Status](https://coveralls.io/repos/github/npm/cacache/badge.svg?branch=latest)](https://coveralls.io/github/npm/cacache?branch=latest) - -[`cacache`](https://github.com/npm/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. - -On systems that support user and group settings on files, cacache will -match the `uid` and `gid` values to the folder where the cache lives, even -when running as `root`. - -It was written to be used as [npm](https://npm.im)'s local cache, but can -just as easily be used on its own. - -## 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) - * [`rm.all`](#rm-all) - * [`rm.entry`](#rm-entry) - * [`rm.content`](#rm-content) - * Utilities - * [`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') -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 -* 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 - -#### `> 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. - -See: [options](#get-options) - -##### 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. - -See: [options](#get-options) - -##### 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 where content is stored, joined with `cache` argument. -* `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 -``` - -##### Options - -##### `opts.integrity` -If present, the pre-calculated digest for the inserted content. If this option -is provided and does not match the post-insertion digest, insertion will fail -with an `EINTEGRITY` error. - -##### `opts.memoize` - -Default: null - -If explicitly truthy, cacache will read from memory and memoize data on bulk read. If `false`, cacache will read from disk data. Reader functions by default read from in-memory cache. - -##### `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. - - -#### `> 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. - -See: [options](#put-options) - -##### 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. - -See: [options](#put-options) - -##### 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}`)) -) -``` - -##### Options - -##### `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 -is 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.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. - -##### `opts.tmpPrefix` -Default: null - -Prefix to append on the temporary directory name inside the cache's tmp dir. - -#### `> 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.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 given the appropriate `gid`/`uid` ownership settings to match -the rest of the cache. 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) - -See: [options](#tmp-options) - -##### Example - -```javascript -cacache.tmp.mkdir(cache).then(dir => { - fs.writeFile(path.join(dir, 'blablabla'), Buffer#<1234>, ...) -}) -``` - -#### `> tmp.fix(cache) -> Promise` - -Sets the `uid` and `gid` properties on all files and folders within the tmp -folder to match the rest of the cache. - -Use this after manually writing files into [`tmp.mkdir`](#tmp-mkdir) or -[`tmp.withTmp`](#with-tmp). - -##### Example - -```javascript -cacache.tmp.mkdir(cache).then(dir => { - writeFile(path.join(dir, 'file'), someData).then(() => { - // make sure we didn't just put a root-owned file in the cache - cacache.tmp.fix().then(() => { - // all uids and gids match now - }) - }) -}) -``` - -#### `> 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, 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. - -See: [options](#tmp-options) - -##### Example - -```javascript -cacache.tmp.withTmp(cache, dir => { - return fs.writeFileAsync(path.join(dir, 'blablabla'), Buffer#<1234>, ...) -}).then(() => { - // `dir` no longer exists -}) -``` - -##### Options - -##### `opts.tmpPrefix` -Default: null - -Prefix to append on the temporary directory name inside the cache's tmp dir. - -#### 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.concurrency` - -Default: 20 - -Number of concurrently read files in the filesystem while doing clean up. - -##### `opts.filter` -Receives a formatted entry. Return false to remove it. -Note: might be called more than once on the same entry. - -##### `opts.log` -Custom logger function: -``` - log: { silly () {} } - log.silly('verify', 'verifying cache at', cache) -``` - -##### 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/deps/npm/node_modules/cacache/get.js b/deps/npm/node_modules/cacache/get.js deleted file mode 100644 index b6bae1e504eba2..00000000000000 --- a/deps/npm/node_modules/cacache/get.js +++ /dev/null @@ -1,255 +0,0 @@ -'use strict' - -const util = require('util') -const fs = require('fs') -const index = require('./lib/entry-index') -const memo = require('./lib/memoization') -const read = require('./lib/content/read') - -const Minipass = require('minipass') -const Collect = require('minipass-collect') -const Pipeline = require('minipass-pipeline') - -const writeFile = util.promisify(fs.writeFile) - -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 = {}) { - const { integrity, memoize, size } = opts - const memoized = byDigest - ? memo.get.byDigest(cache, key, opts) - : memo.get(cache, key, opts) - if (memoized && memoize !== false) { - return Promise.resolve( - byDigest - ? memoized - : { - metadata: memoized.entry.metadata, - data: memoized.data, - integrity: memoized.entry.integrity, - size: memoized.entry.size - } - ) - } - return (byDigest ? Promise.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, - size - }) - .then((data) => - byDigest - ? data - : { - data, - metadata: entry.metadata, - size: entry.size, - integrity: entry.integrity - } - ) - .then((res) => { - if (memoize && byDigest) { - memo.put.byDigest(cache, key, res, opts) - } else if (memoize) { - memo.put(cache, entry, res.data, opts) - } - return res - }) - } - ) -} - -module.exports.sync = function get (cache, key, opts) { - return getDataSync(false, cache, key, opts) -} -module.exports.sync.byDigest = function getByDigest (cache, digest, opts) { - return getDataSync(true, cache, digest, opts) -} - -function getDataSync (byDigest, cache, key, opts = {}) { - const { integrity, memoize, size } = opts - const memoized = byDigest - ? memo.get.byDigest(cache, key, opts) - : memo.get(cache, key, opts) - if (memoized && memoize !== false) { - return byDigest - ? memoized - : { - metadata: memoized.entry.metadata, - data: memoized.data, - integrity: memoized.entry.integrity, - size: memoized.entry.size - } - } - const entry = !byDigest && index.find.sync(cache, key, opts) - if (!entry && !byDigest) { - throw new index.NotFoundError(cache, key) - } - const data = read.sync(cache, byDigest ? key : entry.integrity, { - integrity: integrity, - size: size - }) - const res = byDigest - ? data - : { - metadata: entry.metadata, - data: data, - size: entry.size, - integrity: entry.integrity - } - if (memoize && byDigest) { - memo.put.byDigest(cache, key, res, opts) - } else if (memoize) { - memo.put(cache, entry, res.data, opts) - } - return res -} - -module.exports.stream = getStream - -const getMemoizedStream = (memoized) => { - const stream = new Minipass() - 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.end(memoized.data) - return stream -} - -function getStream (cache, key, opts = {}) { - const { memoize, size } = opts - const memoized = memo.get(cache, key, opts) - if (memoized && memoize !== false) { - return getMemoizedStream(memoized) - } - - const stream = new Pipeline() - index - .find(cache, key) - .then((entry) => { - if (!entry) { - throw new index.NotFoundError(cache, key) - } - 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) - }) - - const src = read.readStream( - cache, - entry.integrity, - { ...opts, size: typeof size !== 'number' ? entry.size : size } - ) - - if (memoize) { - const memoStream = new Collect.PassThrough() - memoStream.on('collect', data => memo.put(cache, entry, data, opts)) - stream.unshift(memoStream) - } - stream.unshift(src) - }) - .catch((err) => stream.emit('error', err)) - - return stream -} - -module.exports.stream.byDigest = getStreamDigest - -function getStreamDigest (cache, integrity, opts = {}) { - const { memoize } = opts - const memoized = memo.get.byDigest(cache, integrity, opts) - if (memoized && memoize !== false) { - const stream = new Minipass() - stream.end(memoized) - return stream - } else { - const stream = read.readStream(cache, integrity, opts) - if (!memoize) { - return stream - } - const memoStream = new Collect.PassThrough() - memoStream.on('collect', data => memo.put.byDigest( - cache, - integrity, - data, - opts - )) - return new Pipeline(stream, memoStream) - } -} - -module.exports.info = info - -function info (cache, key, opts = {}) { - const { memoize } = opts - const memoized = memo.get(cache, key, opts) - if (memoized && memoize !== false) { - return Promise.resolve(memoized.entry) - } else { - return index.find(cache, key) - } -} - -module.exports.hasContent = read.hasContent - -function cp (cache, key, dest, opts) { - return copy(false, cache, key, dest, opts) -} - -module.exports.copy = cp - -function cpDigest (cache, digest, dest, opts) { - return copy(true, cache, digest, dest, opts) -} - -module.exports.copy.byDigest = cpDigest - -function copy (byDigest, cache, key, dest, opts = {}) { - if (read.copy) { - return (byDigest - ? Promise.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(() => { - return byDigest - ? key - : { - metadata: entry.metadata, - size: entry.size, - integrity: entry.integrity - } - }) - }) - } - - return getData(byDigest, cache, key, opts).then((res) => { - return writeFile(dest, byDigest ? res : res.data).then(() => { - return byDigest - ? key - : { - metadata: res.metadata, - size: res.size, - integrity: res.integrity - } - }) - }) -} diff --git a/deps/npm/node_modules/cacache/index.js b/deps/npm/node_modules/cacache/index.js deleted file mode 100644 index 08ba14835ab5a8..00000000000000 --- a/deps/npm/node_modules/cacache/index.js +++ /dev/null @@ -1,41 +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 { clearMemoized } = require('./lib/memoization.js') -const tmp = require('./lib/util/tmp.js') - -module.exports.ls = ls -module.exports.ls.stream = ls.stream - -module.exports.get = get -module.exports.get.byDigest = get.byDigest -module.exports.get.sync = get.sync -module.exports.get.sync.byDigest = get.sync.byDigest -module.exports.get.stream = get.stream -module.exports.get.stream.byDigest = get.stream.byDigest -module.exports.get.copy = get.copy -module.exports.get.copy.byDigest = get.copy.byDigest -module.exports.get.info = get.info -module.exports.get.hasContent = get.hasContent -module.exports.get.hasContent.sync = get.hasContent.sync - -module.exports.put = put -module.exports.put.stream = put.stream - -module.exports.rm = rm.entry -module.exports.rm.all = rm.all -module.exports.rm.entry = module.exports.rm -module.exports.rm.content = rm.content - -module.exports.clearMemoized = clearMemoized - -module.exports.tmp = {} -module.exports.tmp.mkdir = tmp.mkdir -module.exports.tmp.withTmp = tmp.withTmp - -module.exports.verify = verify -module.exports.verify.lastRun = verify.lastRun diff --git a/deps/npm/node_modules/cacache/lib/content/path.js b/deps/npm/node_modules/cacache/lib/content/path.js deleted file mode 100644 index ad5a76a4f73f26..00000000000000 --- a/deps/npm/node_modules/cacache/lib/content/path.js +++ /dev/null @@ -1,29 +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( - contentDir(cache), - sri.algorithm, - ...hashToSegments(sri.hexDigest()) - ) -} - -module.exports.contentDir = contentDir - -function contentDir (cache) { - return path.join(cache, `content-v${contentVer}`) -} diff --git a/deps/npm/node_modules/cacache/lib/content/read.js b/deps/npm/node_modules/cacache/lib/content/read.js deleted file mode 100644 index 7cc16482d44c8f..00000000000000 --- a/deps/npm/node_modules/cacache/lib/content/read.js +++ /dev/null @@ -1,250 +0,0 @@ -'use strict' - -const util = require('util') - -const fs = require('fs') -const fsm = require('fs-minipass') -const ssri = require('ssri') -const contentPath = require('./path') -const Pipeline = require('minipass-pipeline') - -const lstat = util.promisify(fs.lstat) -const readFile = util.promisify(fs.readFile) - -module.exports = read - -const MAX_SINGLE_READ_SIZE = 64 * 1024 * 1024 -function read (cache, integrity, opts = {}) { - const { size } = opts - return withContentSri(cache, integrity, (cpath, sri) => { - // get size - return lstat(cpath).then(stat => ({ stat, cpath, sri })) - }).then(({ stat, cpath, sri }) => { - if (typeof size === 'number' && stat.size !== size) { - throw sizeError(size, stat.size) - } - if (stat.size > MAX_SINGLE_READ_SIZE) { - return readPipeline(cpath, stat.size, sri, new Pipeline()).concat() - } - - return readFile(cpath, null).then((data) => { - if (!ssri.checkData(data, sri)) { - throw integrityError(sri, cpath) - } - return data - }) - }) -} - -const readPipeline = (cpath, size, sri, stream) => { - stream.push( - new fsm.ReadStream(cpath, { - size, - readSize: MAX_SINGLE_READ_SIZE - }), - ssri.integrityStream({ - integrity: sri, - size - }) - ) - return stream -} - -module.exports.sync = readSync - -function readSync (cache, integrity, opts = {}) { - const { size } = opts - return withContentSriSync(cache, integrity, (cpath, sri) => { - const data = fs.readFileSync(cpath) - if (typeof size === 'number' && size !== data.length) { - throw sizeError(size, data.length) - } - - if (ssri.checkData(data, sri)) { - return data - } - - throw integrityError(sri, cpath) - }) -} - -module.exports.stream = readStream -module.exports.readStream = readStream - -function readStream (cache, integrity, opts = {}) { - const { size } = opts - const stream = new Pipeline() - withContentSri(cache, integrity, (cpath, sri) => { - // just lstat to ensure it exists - return lstat(cpath).then((stat) => ({ stat, cpath, sri })) - }).then(({ stat, cpath, sri }) => { - if (typeof size === 'number' && size !== stat.size) { - return stream.emit('error', sizeError(size, stat.size)) - } - readPipeline(cpath, stat.size, sri, stream) - }, er => stream.emit('error', er)) - - return stream -} - -let copyFile -if (fs.copyFile) { - module.exports.copy = copy - module.exports.copy.sync = copySync - copyFile = util.promisify(fs.copyFile) -} - -function copy (cache, integrity, dest) { - return withContentSri(cache, integrity, (cpath, sri) => { - return copyFile(cpath, dest) - }) -} - -function copySync (cache, integrity, dest) { - return withContentSriSync(cache, integrity, (cpath, sri) => { - return fs.copyFileSync(cpath, dest) - }) -} - -module.exports.hasContent = hasContent - -function hasContent (cache, integrity) { - if (!integrity) { - return Promise.resolve(false) - } - return withContentSri(cache, integrity, (cpath, sri) => { - return lstat(cpath).then((stat) => ({ size: stat.size, sri, stat })) - }).catch((err) => { - if (err.code === 'ENOENT') { - return false - } - if (err.code === 'EPERM') { - /* istanbul ignore else */ - if (process.platform !== 'win32') { - throw err - } else { - return false - } - } - }) -} - -module.exports.hasContent.sync = hasContentSync - -function hasContentSync (cache, integrity) { - if (!integrity) { - return false - } - return withContentSriSync(cache, integrity, (cpath, sri) => { - try { - const stat = fs.lstatSync(cpath) - return { size: stat.size, sri, stat } - } catch (err) { - if (err.code === 'ENOENT') { - return false - } - if (err.code === 'EPERM') { - /* istanbul ignore else */ - if (process.platform !== 'win32') { - throw err - } else { - return false - } - } - } - }) -} - -function withContentSri (cache, integrity, fn) { - const tryFn = () => { - 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 fn(cpath, digests[0]) - } else { - // Can't use race here because a generic error can happen before a ENOENT error, and can happen before a valid result - return Promise - .all(digests.map((meta) => { - return withContentSri(cache, meta, fn) - .catch((err) => { - if (err.code === 'ENOENT') { - return Object.assign( - new Error('No matching content found for ' + sri.toString()), - { code: 'ENOENT' } - ) - } - return err - }) - })) - .then((results) => { - // Return the first non error if it is found - const result = results.find((r) => !(r instanceof Error)) - if (result) { - return result - } - - // Throw the No matching content found error - const enoentError = results.find((r) => r.code === 'ENOENT') - if (enoentError) { - throw enoentError - } - - // Throw generic error - throw results.find((r) => r instanceof Error) - }) - } - } - - return new Promise((resolve, reject) => { - try { - tryFn() - .then(resolve) - .catch(reject) - } catch (err) { - reject(err) - } - }) -} - -function withContentSriSync (cache, integrity, fn) { - 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 fn(cpath, digests[0]) - } else { - let lastErr = null - for (const meta of digests) { - try { - return withContentSriSync(cache, meta, fn) - } catch (err) { - lastErr = err - } - } - throw lastErr - } -} - -function sizeError (expected, found) { - const err = new Error(`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) { - const err = new Error(`Integrity verification failed for ${sri} (${path})`) - err.code = 'EINTEGRITY' - err.sri = sri - err.path = path - return err -} diff --git a/deps/npm/node_modules/cacache/lib/content/rm.js b/deps/npm/node_modules/cacache/lib/content/rm.js deleted file mode 100644 index 50612364e9b48a..00000000000000 --- a/deps/npm/node_modules/cacache/lib/content/rm.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict' - -const util = require('util') - -const contentPath = require('./path') -const { hasContent } = require('./read') -const rimraf = util.promisify(require('rimraf')) - -module.exports = rm - -function rm (cache, integrity) { - return hasContent(cache, integrity).then((content) => { - // ~pretty~ sure we can't end up with a content lacking sri, but be safe - if (content && content.sri) { - return rimraf(contentPath(cache, content.sri)).then(() => true) - } else { - return false - } - }) -} diff --git a/deps/npm/node_modules/cacache/lib/content/write.js b/deps/npm/node_modules/cacache/lib/content/write.js deleted file mode 100644 index e8f3e3534940ca..00000000000000 --- a/deps/npm/node_modules/cacache/lib/content/write.js +++ /dev/null @@ -1,184 +0,0 @@ -'use strict' - -const util = require('util') - -const contentPath = require('./path') -const fixOwner = require('../util/fix-owner') -const fs = require('fs') -const moveFile = require('../util/move-file') -const Minipass = require('minipass') -const Pipeline = require('minipass-pipeline') -const Flush = require('minipass-flush') -const path = require('path') -const rimraf = util.promisify(require('rimraf')) -const ssri = require('ssri') -const uniqueFilename = require('unique-filename') -const { disposer } = require('./../util/disposer') -const fsm = require('fs-minipass') - -const writeFile = util.promisify(fs.writeFile) - -module.exports = write - -function write (cache, data, opts = {}) { - const { algorithms, size, integrity } = opts - if (algorithms && algorithms.length > 1) { - throw new Error('opts.algorithms only supports a single algorithm for now') - } - if (typeof size === 'number' && data.length !== size) { - return Promise.reject(sizeError(size, data.length)) - } - const sri = ssri.fromData(data, algorithms ? { algorithms } : {}) - if (integrity && !ssri.checkData(data, integrity, opts)) { - return Promise.reject(checksumError(integrity, sri)) - } - - return disposer(makeTmp(cache, opts), makeTmpDisposer, - (tmp) => { - return writeFile(tmp.target, data, { flag: 'wx' }) - .then(() => moveToDestination(tmp, cache, sri, opts)) - }) - .then(() => ({ integrity: sri, size: data.length })) -} - -module.exports.stream = writeStream - -// writes proxied to the 'inputStream' that is passed to the Promise -// 'end' is deferred until content is handled. -class CacacheWriteStream extends Flush { - constructor (cache, opts) { - super() - this.opts = opts - this.cache = cache - this.inputStream = new Minipass() - this.inputStream.on('error', er => this.emit('error', er)) - this.inputStream.on('drain', () => this.emit('drain')) - this.handleContentP = null - } - - write (chunk, encoding, cb) { - if (!this.handleContentP) { - this.handleContentP = handleContent( - this.inputStream, - this.cache, - this.opts - ) - } - return this.inputStream.write(chunk, encoding, cb) - } - - flush (cb) { - this.inputStream.end(() => { - if (!this.handleContentP) { - const e = new Error('Cache input stream was empty') - e.code = 'ENODATA' - // empty streams are probably emitting end right away. - // defer this one tick by rejecting a promise on it. - return Promise.reject(e).catch(cb) - } - this.handleContentP.then( - (res) => { - res.integrity && this.emit('integrity', res.integrity) - res.size !== null && this.emit('size', res.size) - cb() - }, - (er) => cb(er) - ) - }) - } -} - -function writeStream (cache, opts = {}) { - return new CacacheWriteStream(cache, opts) -} - -function handleContent (inputStream, cache, opts) { - return disposer(makeTmp(cache, opts), makeTmpDisposer, (tmp) => { - return pipeToTmp(inputStream, cache, tmp.target, opts) - .then((res) => { - return moveToDestination( - tmp, - cache, - res.integrity, - opts - ).then(() => res) - }) - }) -} - -function pipeToTmp (inputStream, cache, tmpTarget, opts) { - let integrity - let size - const hashStream = ssri.integrityStream({ - integrity: opts.integrity, - algorithms: opts.algorithms, - size: opts.size - }) - hashStream.on('integrity', i => { integrity = i }) - hashStream.on('size', s => { size = s }) - - const outStream = new fsm.WriteStream(tmpTarget, { - flags: 'wx' - }) - - // NB: this can throw if the hashStream has a problem with - // it, and the data is fully written. but pipeToTmp is only - // called in promisory contexts where that is handled. - const pipeline = new Pipeline( - inputStream, - hashStream, - outStream - ) - - return pipeline.promise() - .then(() => ({ integrity, size })) - .catch(er => rimraf(tmpTarget).then(() => { throw er })) -} - -function makeTmp (cache, opts) { - const tmpTarget = uniqueFilename(path.join(cache, 'tmp'), opts.tmpPrefix) - return fixOwner.mkdirfix(cache, path.dirname(tmpTarget)).then(() => ({ - target: tmpTarget, - moved: false - })) -} - -function makeTmpDisposer (tmp) { - if (tmp.moved) { - return Promise.resolve() - } - return rimraf(tmp.target) -} - -function moveToDestination (tmp, cache, sri, opts) { - const destination = contentPath(cache, sri) - const destDir = path.dirname(destination) - - return fixOwner - .mkdirfix(cache, destDir) - .then(() => { - return moveFile(tmp.target, destination) - }) - .then(() => { - tmp.moved = true - return fixOwner.chownr(cache, destination) - }) -} - -function sizeError (expected, found) { - const err = new Error(`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) { - const err = new Error(`Integrity check failed: - Wanted: ${expected} - Found: ${found}`) - err.code = 'EINTEGRITY' - err.expected = expected - err.found = found - return err -} diff --git a/deps/npm/node_modules/cacache/lib/entry-index.js b/deps/npm/node_modules/cacache/lib/entry-index.js deleted file mode 100644 index 58b205bfe7f5b7..00000000000000 --- a/deps/npm/node_modules/cacache/lib/entry-index.js +++ /dev/null @@ -1,305 +0,0 @@ -'use strict' - -const util = require('util') - -const crypto = require('crypto') -const fs = require('fs') -const Minipass = require('minipass') -const path = require('path') -const ssri = require('ssri') -const contentPath = require('./content/path') -const fixOwner = require('./util/fix-owner') -const hashToSegments = require('./util/hash-to-segments') -const indexV = require('../package.json')['cache-version'].index - -const appendFile = util.promisify(fs.appendFile) -const readFile = util.promisify(fs.readFile) -const readdir = util.promisify(fs.readdir) - -module.exports.NotFoundError = class NotFoundError extends Error { - constructor (cache, key) { - super(`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 = {}) { - const { metadata, size } = opts - const bucket = bucketPath(cache, key) - const entry = { - key, - integrity: integrity && ssri.stringify(integrity), - time: Date.now(), - size, - metadata - } - return fixOwner - .mkdirfix(cache, path.dirname(bucket)) - .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 appendFile(bucket, `\n${hashEntry(stringified)}\t${stringified}`) - }) - .then(() => fixOwner.chownr(cache, bucket)) - .catch((err) => { - if (err.code === 'ENOENT') { - return undefined - } - throw err - // 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.insert.sync = insertSync - -function insertSync (cache, key, integrity, opts = {}) { - const { metadata, size } = opts - const bucket = bucketPath(cache, key) - const entry = { - key, - integrity: integrity && ssri.stringify(integrity), - time: Date.now(), - size, - metadata - } - fixOwner.mkdirfix.sync(cache, path.dirname(bucket)) - const stringified = JSON.stringify(entry) - fs.appendFileSync(bucket, `\n${hashEntry(stringified)}\t${stringified}`) - try { - fixOwner.chownr.sync(cache, bucket) - } catch (err) { - if (err.code !== 'ENOENT') { - throw err - } - } - return formatEntry(cache, entry) -} - -module.exports.find = find - -function find (cache, key) { - const bucket = bucketPath(cache, key) - return bucketEntries(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.find.sync = findSync - -function findSync (cache, key) { - const bucket = bucketPath(cache, key) - try { - return bucketEntriesSync(bucket).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.delete.sync = delSync - -function delSync (cache, key, opts) { - return insertSync(cache, key, null, opts) -} - -module.exports.lsStream = lsStream - -function lsStream (cache) { - const indexDir = bucketDir(cache) - const stream = new Minipass({ objectMode: true }) - - readdirOrEmpty(indexDir).then(buckets => Promise.all( - buckets.map(bucket => { - const bucketPath = path.join(indexDir, bucket) - return readdirOrEmpty(bucketPath).then(subbuckets => Promise.all( - subbuckets.map(subbucket => { - const subbucketPath = path.join(bucketPath, subbucket) - - // "/cachename//./*" - return readdirOrEmpty(subbucketPath).then(entries => Promise.all( - entries.map(entry => { - const entryPath = path.join(subbucketPath, entry) - return bucketEntries(entryPath).then(entries => - // using a Map here prevents duplicate keys from - // showing up twice, I guess? - entries.reduce((acc, entry) => { - acc.set(entry.key, entry) - return acc - }, new Map()) - ).then(reduced => { - // reduced is a map of key => entry - for (const entry of reduced.values()) { - const formatted = formatEntry(cache, entry) - if (formatted) { - stream.write(formatted) - } - } - }).catch(err => { - if (err.code === 'ENOENT') { return undefined } - throw err - }) - }) - )) - }) - )) - }) - )) - .then( - () => stream.end(), - err => stream.emit('error', err) - ) - - return stream -} - -module.exports.ls = ls - -function ls (cache) { - return lsStream(cache).collect().then(entries => - entries.reduce((acc, xs) => { - acc[xs.key] = xs - return acc - }, {}) - ) -} - -function bucketEntries (bucket, filter) { - return readFile(bucket, 'utf8').then((data) => _bucketEntries(data, filter)) -} - -function bucketEntriesSync (bucket, filter) { - const data = fs.readFileSync(bucket, 'utf8') - return _bucketEntries(data, filter) -} - -function _bucketEntries (data, filter) { - const 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 readdir(dir).catch((err) => { - if (err.code === 'ENOENT' || err.code === 'ENOTDIR') { - return [] - } - - throw err - }) -} diff --git a/deps/npm/node_modules/cacache/lib/memoization.js b/deps/npm/node_modules/cacache/lib/memoization.js deleted file mode 100644 index 185141d8eadad8..00000000000000 --- a/deps/npm/node_modules/cacache/lib/memoization.js +++ /dev/null @@ -1,74 +0,0 @@ -'use strict' - -const LRU = require('lru-cache') - -const MAX_SIZE = 50 * 1024 * 1024 // 50MB -const MAX_AGE = 3 * 60 * 1000 - -const MEMOIZED = new LRU({ - max: MAX_SIZE, - maxAge: MAX_AGE, - length: (entry, key) => key.startsWith('key:') ? entry.data.length : 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/deps/npm/node_modules/cacache/lib/util/disposer.js b/deps/npm/node_modules/cacache/lib/util/disposer.js deleted file mode 100644 index 8a24ad2f2a2a28..00000000000000 --- a/deps/npm/node_modules/cacache/lib/util/disposer.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict' - -module.exports.disposer = disposer - -function disposer (creatorFn, disposerFn, fn) { - const runDisposer = (resource, result, shouldThrow = false) => { - return disposerFn(resource) - .then( - // disposer resolved, do something with original fn's promise - () => { - if (shouldThrow) { - throw result - } - return result - }, - // Disposer fn failed, crash process - (err) => { - throw err - // Or process.exit? - }) - } - - return creatorFn - .then((resource) => { - // fn(resource) can throw, so wrap in a promise here - return Promise.resolve().then(() => fn(resource)) - .then((result) => runDisposer(resource, result)) - .catch((err) => runDisposer(resource, err, true)) - }) -} diff --git a/deps/npm/node_modules/cacache/lib/util/fix-owner.js b/deps/npm/node_modules/cacache/lib/util/fix-owner.js deleted file mode 100644 index 9afa638a8c8393..00000000000000 --- a/deps/npm/node_modules/cacache/lib/util/fix-owner.js +++ /dev/null @@ -1,145 +0,0 @@ -'use strict' - -const util = require('util') - -const chownr = util.promisify(require('chownr')) -const mkdirp = require('mkdirp') -const inflight = require('promise-inflight') -const inferOwner = require('infer-owner') - -// Memoize getuid()/getgid() calls. -// patch process.setuid/setgid to invalidate cached value on change -const self = { uid: null, gid: null } -const getSelf = () => { - if (typeof self.uid !== 'number') { - self.uid = process.getuid() - const setuid = process.setuid - process.setuid = (uid) => { - self.uid = null - process.setuid = setuid - return process.setuid(uid) - } - } - if (typeof self.gid !== 'number') { - self.gid = process.getgid() - const setgid = process.setgid - process.setgid = (gid) => { - self.gid = null - process.setgid = setgid - return process.setgid(gid) - } - } -} - -module.exports.chownr = fixOwner - -function fixOwner (cache, filepath) { - if (!process.getuid) { - // This platform doesn't need ownership fixing - return Promise.resolve() - } - - getSelf() - if (self.uid !== 0) { - // almost certainly can't chown anyway - return Promise.resolve() - } - - return Promise.resolve(inferOwner(cache)).then((owner) => { - const { uid, gid } = owner - - // No need to override if it's already what we used. - if (self.uid === uid && self.gid === gid) { - return - } - - return inflight('fixOwner: fixing ownership on ' + filepath, () => - chownr( - filepath, - typeof uid === 'number' ? uid : self.uid, - typeof gid === 'number' ? gid : self.gid - ).catch((err) => { - if (err.code === 'ENOENT') { - return null - } - throw err - }) - ) - }) -} - -module.exports.chownr.sync = fixOwnerSync - -function fixOwnerSync (cache, filepath) { - if (!process.getuid) { - // This platform doesn't need ownership fixing - return - } - const { uid, gid } = inferOwner.sync(cache) - getSelf() - if (self.uid !== 0) { - // almost certainly can't chown anyway - return - } - - if (self.uid === uid && self.gid === gid) { - // No need to override if it's already what we used. - return - } - try { - chownr.sync( - filepath, - typeof uid === 'number' ? uid : self.uid, - typeof gid === 'number' ? gid : self.gid - ) - } catch (err) { - // only catch ENOENT, any other error is a problem. - if (err.code === 'ENOENT') { - return null - } - throw err - } -} - -module.exports.mkdirfix = mkdirfix - -function mkdirfix (cache, p, cb) { - // we have to infer the owner _before_ making the directory, even though - // we aren't going to use the results, since the cache itself might not - // exist yet. If we mkdirp it, then our current uid/gid will be assumed - // to be correct if it creates the cache folder in the process. - return Promise.resolve(inferOwner(cache)).then(() => { - return mkdirp(p) - .then((made) => { - if (made) { - return fixOwner(cache, made).then(() => made) - } - }) - .catch((err) => { - if (err.code === 'EEXIST') { - return fixOwner(cache, p).then(() => null) - } - throw err - }) - }) -} - -module.exports.mkdirfix.sync = mkdirfixSync - -function mkdirfixSync (cache, p) { - try { - inferOwner.sync(cache) - const made = mkdirp.sync(p) - if (made) { - fixOwnerSync(cache, made) - return made - } - } catch (err) { - if (err.code === 'EEXIST') { - fixOwnerSync(cache, p) - return null - } else { - throw err - } - } -} diff --git a/deps/npm/node_modules/cacache/lib/util/hash-to-segments.js b/deps/npm/node_modules/cacache/lib/util/hash-to-segments.js deleted file mode 100644 index 445599b5038088..00000000000000 --- a/deps/npm/node_modules/cacache/lib/util/hash-to-segments.js +++ /dev/null @@ -1,7 +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/deps/npm/node_modules/cacache/lib/util/move-file.js b/deps/npm/node_modules/cacache/lib/util/move-file.js deleted file mode 100644 index 84130b2e9ffb82..00000000000000 --- a/deps/npm/node_modules/cacache/lib/util/move-file.js +++ /dev/null @@ -1,69 +0,0 @@ -'use strict' - -const fs = require('fs') -const util = require('util') -const chmod = util.promisify(fs.chmod) -const unlink = util.promisify(fs.unlink) -const stat = util.promisify(fs.stat) -const move = require('@npmcli/move-file') -const pinflight = require('promise-inflight') - -module.exports = moveFile - -function moveFile (src, dest) { - const isWindows = global.__CACACHE_TEST_FAKE_WINDOWS__ || - process.platform === 'win32' - - // 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 new Promise((resolve, reject) => { - fs.link(src, dest, (err) => { - if (err) { - if (isWindows && err.code === 'EPERM') { - // XXX This is a really weird way to handle this situation, as it - // results in the src file being deleted even though the dest - // might not exist. Since we pretty much always write files to - // deterministic locations based on content hash, this is likely - // ok (or at worst, just ends in a future cache miss). But it would - // be worth investigating at some time in the future if this is - // really what we want to do here. - return resolve() - } else if (err.code === 'EEXIST' || err.code === 'EBUSY') { - // file already exists, so whatever - return resolve() - } else { - return reject(err) - } - } else { - return resolve() - } - }) - }) - .then(() => { - // content should never change for any reason, so make it read-only - return Promise.all([ - unlink(src), - !isWindows && chmod(dest, '0444') - ]) - }) - .catch(() => { - return pinflight('cacache-move-file:' + dest, () => { - return 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 - // only delete if it successfully copies - return move(src, dest) - }) - }) - }) -} diff --git a/deps/npm/node_modules/cacache/lib/util/tmp.js b/deps/npm/node_modules/cacache/lib/util/tmp.js deleted file mode 100644 index fbcd2ab132eae5..00000000000000 --- a/deps/npm/node_modules/cacache/lib/util/tmp.js +++ /dev/null @@ -1,35 +0,0 @@ -'use strict' - -const util = require('util') - -const fixOwner = require('./fix-owner') -const path = require('path') -const rimraf = util.promisify(require('rimraf')) -const uniqueFilename = require('unique-filename') -const { disposer } = require('./disposer') - -module.exports.mkdir = mktmpdir - -function mktmpdir (cache, opts = {}) { - const { tmpPrefix } = opts - const tmpTarget = uniqueFilename(path.join(cache, 'tmp'), tmpPrefix) - return fixOwner.mkdirfix(cache, tmpTarget).then(() => { - return tmpTarget - }) -} - -module.exports.withTmp = withTmp - -function withTmp (cache, opts, cb) { - if (!cb) { - cb = opts - opts = {} - } - return disposer(mktmpdir(cache, opts), rimraf, cb) -} - -module.exports.fix = fixtmpdir - -function fixtmpdir (cache) { - return fixOwner(cache, path.join(cache, 'tmp')) -} diff --git a/deps/npm/node_modules/cacache/lib/verify.js b/deps/npm/node_modules/cacache/lib/verify.js deleted file mode 100644 index 5a011a3f1d2cb1..00000000000000 --- a/deps/npm/node_modules/cacache/lib/verify.js +++ /dev/null @@ -1,287 +0,0 @@ -'use strict' - -const util = require('util') - -const pMap = require('p-map') -const contentPath = require('./content/path') -const fixOwner = require('./util/fix-owner') -const fs = require('fs') -const fsm = require('fs-minipass') -const glob = util.promisify(require('glob')) -const index = require('./entry-index') -const path = require('path') -const rimraf = util.promisify(require('rimraf')) -const ssri = require('ssri') - -const hasOwnProperty = (obj, key) => - Object.prototype.hasOwnProperty.call(obj, key) - -const stat = util.promisify(fs.stat) -const truncate = util.promisify(fs.truncate) -const writeFile = util.promisify(fs.writeFile) -const readFile = util.promisify(fs.readFile) - -const verifyOpts = (opts) => ({ - concurrency: 20, - log: { silly () {} }, - ...opts -}) - -module.exports = verify - -function verify (cache, opts) { - opts = verifyOpts(opts) - opts.log.silly('verify', 'verifying cache at', cache) - - const steps = [ - markStartTime, - fixPerms, - garbageCollect, - rebuildIndex, - cleanTmp, - writeVerifile, - markEndTime - ] - - return steps - .reduce((promise, step, i) => { - const label = step.name - const start = new Date() - return promise.then((stats) => { - return 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 Promise.resolve(stats) - }) - }) - }, Promise.resolve({})) - .then((stats) => { - stats.runTime.total = stats.endTime - stats.startTime - opts.log.silly( - 'verify', - 'verification finished for', - cache, - 'in', - `${stats.runTime.total}ms` - ) - return stats - }) -} - -function markStartTime (cache, opts) { - return Promise.resolve({ startTime: new Date() }) -} - -function markEndTime (cache, opts) { - return Promise.resolve({ endTime: new Date() }) -} - -function fixPerms (cache, opts) { - opts.log.silly('verify', 'fixing cache permissions') - return fixOwner - .mkdirfix(cache, cache) - .then(() => { - // TODO - fix file permissions too - return fixOwner.chownr(cache, cache) - }) - .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.silly('verify', 'garbage collecting content') - const indexStream = index.lsStream(cache) - const liveContent = new Set() - indexStream.on('data', (entry) => { - if (opts.filter && !opts.filter(entry)) { - return - } - liveContent.add(entry.integrity.toString()) - }) - return new Promise((resolve, reject) => { - indexStream.on('end', resolve).on('error', reject) - }).then(() => { - const contentDir = contentPath.contentDir(cache) - return glob(path.join(contentDir, '**'), { - follow: false, - nodir: true, - nosort: true - }).then((files) => { - return Promise.resolve({ - verifiedContent: 0, - reclaimedCount: 0, - reclaimedSize: 0, - badContentCount: 0, - keptSize: 0 - }).then((stats) => - pMap( - 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 stat(f).then((s) => { - return rimraf(f).then(() => { - stats.reclaimedSize += s.size - return stats - }) - }) - } - }, - { concurrency: opts.concurrency } - ).then(() => stats) - ) - }) - }) -} - -function verifyContent (filepath, sri) { - return stat(filepath) - .then((s) => { - const contentInfo = { - size: s.size, - valid: true - } - return ssri - .checkStream(new fsm.ReadStream(filepath), sri) - .catch((err) => { - if (err.code !== 'EINTEGRITY') { - throw err - } - return rimraf(filepath).then(() => { - contentInfo.valid = false - }) - }) - .then(() => contentInfo) - }) - .catch((err) => { - if (err.code === 'ENOENT') { - return { size: 0, valid: false } - } - throw err - }) -} - -function rebuildIndex (cache, opts) { - opts.log.silly('verify', 'rebuilding index') - return index.ls(cache).then((entries) => { - const stats = { - missingContent: 0, - rejectedEntries: 0, - totalEntries: 0 - } - const buckets = {} - for (const k in entries) { - /* istanbul ignore else */ - if (hasOwnProperty(entries, k)) { - const hashed = index.hashKey(k) - const entry = entries[k] - const excluded = 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 pMap( - Object.keys(buckets), - (key) => { - return rebuildBucket(cache, buckets[key], stats, opts) - }, - { concurrency: opts.concurrency } - ).then(() => stats) - }) -} - -function rebuildBucket (cache, bucket, stats, opts) { - return truncate(bucket._path).then(() => { - // This needs to be serialized because cacache explicitly - // lets very racy bucket conflicts clobber each other. - return bucket.reduce((promise, entry) => { - return promise.then(() => { - const content = contentPath(cache, entry.integrity) - return stat(content) - .then(() => { - return index - .insert(cache, entry.key, entry.integrity, { - metadata: entry.metadata, - size: entry.size - }) - .then(() => { - stats.totalEntries++ - }) - }) - .catch((err) => { - if (err.code === 'ENOENT') { - stats.rejectedEntries++ - stats.missingContent++ - return - } - throw err - }) - }) - }, Promise.resolve()) - }) -} - -function cleanTmp (cache, opts) { - 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.silly('verify', 'writing verifile to ' + verifile) - try { - return writeFile(verifile, '' + +new Date()) - } finally { - fixOwner.chownr.sync(cache, verifile) - } -} - -module.exports.lastRun = lastRun - -function lastRun (cache) { - return readFile(path.join(cache, '_lastverified'), 'utf8').then( - (data) => new Date(+data) - ) -} diff --git a/deps/npm/node_modules/cacache/ls.js b/deps/npm/node_modules/cacache/ls.js deleted file mode 100644 index 6006c99e348521..00000000000000 --- a/deps/npm/node_modules/cacache/ls.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict' - -const index = require('./lib/entry-index') - -module.exports = index.ls -module.exports.stream = index.lsStream diff --git a/deps/npm/node_modules/cacache/package.json b/deps/npm/node_modules/cacache/package.json deleted file mode 100644 index 053c245b52b726..00000000000000 --- a/deps/npm/node_modules/cacache/package.json +++ /dev/null @@ -1,95 +0,0 @@ -{ - "name": "cacache", - "version": "15.0.5", - "cache-version": { - "content": "2", - "index": "5" - }, - "description": "Fast, fault-tolerant, cross-platform, disk-based, data-agnostic, content-addressable cache.", - "main": "index.js", - "files": [ - "*.js", - "lib" - ], - "scripts": { - "benchmarks": "node test/benchmarks", - "lint": "standard", - "postrelease": "npm publish", - "posttest": "npm run lint", - "prepublishOnly": "git push --follow-tags", - "prerelease": "npm t", - "release": "standard-version -s", - "test": "tap", - "coverage": "tap", - "test-docker": "docker run -it --rm --name pacotest -v \"$PWD\":/tmp -w /tmp node:latest npm test" - }, - "repository": "https://github.com/npm/cacache", - "keywords": [ - "cache", - "caching", - "content-addressable", - "sri", - "sri hash", - "subresource integrity", - "cache", - "storage", - "store", - "file store", - "filesystem", - "disk cache", - "disk storage" - ], - "author": { - "name": "Kat Marchán", - "email": "kzm@sykosomatic.org", - "twitter": "maybekatz" - }, - "contributors": [ - { - "name": "Charlotte Spencer", - "email": "charlottelaspencer@gmail.com", - "twitter": "charlotteis" - }, - { - "name": "Rebecca Turner", - "email": "me@re-becca.org", - "twitter": "ReBeccaOrg" - } - ], - "license": "ISC", - "dependencies": { - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.0", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - }, - "devDependencies": { - "benchmark": "^2.1.4", - "chalk": "^4.0.0", - "require-inject": "^1.4.4", - "standard": "^14.3.1", - "standard-version": "^7.1.0", - "tacks": "^1.3.0", - "tap": "^14.10.6" - }, - "tap": { - "100": true, - "test-regex": "test/[^/]*.js" - }, - "engines": { - "node": ">= 10" - } -} diff --git a/deps/npm/node_modules/cacache/put.js b/deps/npm/node_modules/cacache/put.js deleted file mode 100644 index eb21aa867173f6..00000000000000 --- a/deps/npm/node_modules/cacache/put.js +++ /dev/null @@ -1,84 +0,0 @@ -'use strict' - -const index = require('./lib/entry-index') -const memo = require('./lib/memoization') -const write = require('./lib/content/write') -const Flush = require('minipass-flush') -const { PassThrough } = require('minipass-collect') -const Pipeline = require('minipass-pipeline') - -const putOpts = (opts) => ({ - algorithms: ['sha512'], - ...opts -}) - -module.exports = putData - -function putData (cache, key, data, opts = {}) { - const { memoize } = opts - opts = putOpts(opts) - return write(cache, data, opts).then((res) => { - return index - .insert(cache, key, res.integrity, { ...opts, size: res.size }) - .then((entry) => { - if (memoize) { - memo.put(cache, entry, data, opts) - } - return res.integrity - }) - }) -} - -module.exports.stream = putStream - -function putStream (cache, key, opts = {}) { - const { memoize } = opts - opts = putOpts(opts) - let integrity - let size - - let memoData - const pipeline = new Pipeline() - // first item in the pipeline is the memoizer, because we need - // that to end first and get the collected data. - if (memoize) { - const memoizer = new PassThrough().on('collect', data => { - memoData = data - }) - pipeline.push(memoizer) - } - - // contentStream is a write-only, not a passthrough - // no data comes out of it. - const contentStream = write.stream(cache, opts) - .on('integrity', (int) => { - integrity = int - }) - .on('size', (s) => { - size = s - }) - - pipeline.push(contentStream) - - // last but not least, we write the index and emit hash and size, - // and memoize if we're doing that - pipeline.push(new Flush({ - flush () { - return index - .insert(cache, key, integrity, { ...opts, size }) - .then((entry) => { - if (memoize && memoData) { - memo.put(cache, entry, memoData, opts) - } - if (integrity) { - pipeline.emit('integrity', integrity) - } - if (size) { - pipeline.emit('size', size) - } - }) - } - })) - - return pipeline -} diff --git a/deps/npm/node_modules/cacache/rm.js b/deps/npm/node_modules/cacache/rm.js deleted file mode 100644 index 7dd4e8c8b07f1c..00000000000000 --- a/deps/npm/node_modules/cacache/rm.js +++ /dev/null @@ -1,31 +0,0 @@ -'use strict' - -const util = require('util') - -const index = require('./lib/entry-index') -const memo = require('./lib/memoization') -const path = require('path') -const rimraf = util.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/deps/npm/node_modules/cacache/verify.js b/deps/npm/node_modules/cacache/verify.js deleted file mode 100644 index db7763d7afd074..00000000000000 --- a/deps/npm/node_modules/cacache/verify.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict' - -module.exports = require('./lib/verify') diff --git a/deps/npm/node_modules/caseless/LICENSE b/deps/npm/node_modules/caseless/LICENSE deleted file mode 100644 index 61789f4a4f8586..00000000000000 --- a/deps/npm/node_modules/caseless/LICENSE +++ /dev/null @@ -1,28 +0,0 @@ -Apache License -Version 2.0, January 2004 -http://www.apache.org/licenses/ -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION -1. Definitions. -"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. -"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. -"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. -"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. -"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. -"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. -"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). -"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. -"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." -"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. -2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. -3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. -4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: -You must give any other recipients of the Work or Derivative Works a copy of this License; and -You must cause any modified files to carry prominent notices stating that You changed the files; and -You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and -If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. -5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. -6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. -7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. -8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. -9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. -END OF TERMS AND CONDITIONS \ No newline at end of file diff --git a/deps/npm/node_modules/caseless/README.md b/deps/npm/node_modules/caseless/README.md deleted file mode 100644 index e5077a21659b25..00000000000000 --- a/deps/npm/node_modules/caseless/README.md +++ /dev/null @@ -1,45 +0,0 @@ -## Caseless -- wrap an object to set and get property with caseless semantics but also preserve caseing. - -This library is incredibly useful when working with HTTP headers. It allows you to get/set/check for headers in a caseless manner while also preserving the caseing of headers the first time they are set. - -## Usage - -```javascript -var headers = {} - , c = caseless(headers) - ; -c.set('a-Header', 'asdf') -c.get('a-header') === 'asdf' -``` - -## has(key) - -Has takes a name and if it finds a matching header will return that header name with the preserved caseing it was set with. - -```javascript -c.has('a-header') === 'a-Header' -``` - -## set(key, value[, clobber=true]) - -Set is fairly straight forward except that if the header exists and clobber is disabled it will add `','+value` to the existing header. - -```javascript -c.set('a-Header', 'fdas') -c.set('a-HEADER', 'more', false) -c.get('a-header') === 'fdsa,more' -``` - -## swap(key) - -Swaps the casing of a header with the new one that is passed in. - -```javascript -var headers = {} - , c = caseless(headers) - ; -c.set('a-Header', 'fdas') -c.swap('a-HEADER') -c.has('a-header') === 'a-HEADER' -headers === {'a-HEADER': 'fdas'} -``` diff --git a/deps/npm/node_modules/caseless/index.js b/deps/npm/node_modules/caseless/index.js deleted file mode 100644 index b194734ee4e8db..00000000000000 --- a/deps/npm/node_modules/caseless/index.js +++ /dev/null @@ -1,67 +0,0 @@ -function Caseless (dict) { - this.dict = dict || {} -} -Caseless.prototype.set = function (name, value, clobber) { - if (typeof name === 'object') { - for (var i in name) { - this.set(i, name[i], value) - } - } else { - if (typeof clobber === 'undefined') clobber = true - var has = this.has(name) - - if (!clobber && has) this.dict[has] = this.dict[has] + ',' + value - else this.dict[has || name] = value - return has - } -} -Caseless.prototype.has = function (name) { - var keys = Object.keys(this.dict) - , name = name.toLowerCase() - ; - for (var i=0;i", - "license": "Apache-2.0", - "bugs": { - "url": "https://github.com/mikeal/caseless/issues" - }, - "devDependencies": { - "tape": "^2.10.2" - } -} diff --git a/deps/npm/node_modules/caseless/test.js b/deps/npm/node_modules/caseless/test.js deleted file mode 100644 index f55196cc079490..00000000000000 --- a/deps/npm/node_modules/caseless/test.js +++ /dev/null @@ -1,67 +0,0 @@ -var tape = require('tape') - , caseless = require('./') - ; - -tape('set get has', function (t) { - var headers = {} - , c = caseless(headers) - ; - t.plan(17) - c.set('a-Header', 'asdf') - t.equal(c.get('a-header'), 'asdf') - t.equal(c.has('a-header'), 'a-Header') - t.ok(!c.has('nothing')) - // old bug where we used the wrong regex - t.ok(!c.has('a-hea')) - c.set('a-header', 'fdsa') - t.equal(c.get('a-header'), 'fdsa') - t.equal(c.get('a-Header'), 'fdsa') - c.set('a-HEADER', 'more', false) - t.equal(c.get('a-header'), 'fdsa,more') - - t.deepEqual(headers, {'a-Header': 'fdsa,more'}) - c.swap('a-HEADER') - t.deepEqual(headers, {'a-HEADER': 'fdsa,more'}) - - c.set('deleteme', 'foobar') - t.ok(c.has('deleteme')) - t.ok(c.del('deleteme')) - t.notOk(c.has('deleteme')) - t.notOk(c.has('idonotexist')) - t.ok(c.del('idonotexist')) - - c.set('tva', 'test1') - c.set('tva-header', 'test2') - t.equal(c.has('tva'), 'tva') - t.notOk(c.has('header')) - - t.equal(c.get('tva'), 'test1') - -}) - -tape('swap', function (t) { - var headers = {} - , c = caseless(headers) - ; - t.plan(4) - // No Header to Swap. - t.throws(function () { - c.swap('content-type') - }) - // Set Header. - c.set('content-type', 'application/json') - // Swap Header With Itself. - c.swap('content-type') - // Does Not Delete Itself. - t.ok(c.has('content-type')) - // Swap Header With a Different Header. - c.swap('Content-Type') - // Still Has Header. - t.ok(c.has('Content-Type')) - // Delete Header. - c.del('Content-Type') - // No Header to Swap. - t.throws(function () { - c.swap('content-type') - }) -}) diff --git a/deps/npm/node_modules/chalk/index.d.ts b/deps/npm/node_modules/chalk/index.d.ts deleted file mode 100644 index 9cd88f38beea87..00000000000000 --- a/deps/npm/node_modules/chalk/index.d.ts +++ /dev/null @@ -1,415 +0,0 @@ -/** -Basic foreground colors. - -[More colors here.](https://github.com/chalk/chalk/blob/master/readme.md#256-and-truecolor-color-support) -*/ -declare type ForegroundColor = - | 'black' - | 'red' - | 'green' - | 'yellow' - | 'blue' - | 'magenta' - | 'cyan' - | 'white' - | 'gray' - | 'grey' - | 'blackBright' - | 'redBright' - | 'greenBright' - | 'yellowBright' - | 'blueBright' - | 'magentaBright' - | 'cyanBright' - | 'whiteBright'; - -/** -Basic background colors. - -[More colors here.](https://github.com/chalk/chalk/blob/master/readme.md#256-and-truecolor-color-support) -*/ -declare type BackgroundColor = - | 'bgBlack' - | 'bgRed' - | 'bgGreen' - | 'bgYellow' - | 'bgBlue' - | 'bgMagenta' - | 'bgCyan' - | 'bgWhite' - | 'bgGray' - | 'bgGrey' - | 'bgBlackBright' - | 'bgRedBright' - | 'bgGreenBright' - | 'bgYellowBright' - | 'bgBlueBright' - | 'bgMagentaBright' - | 'bgCyanBright' - | 'bgWhiteBright'; - -/** -Basic colors. - -[More colors here.](https://github.com/chalk/chalk/blob/master/readme.md#256-and-truecolor-color-support) -*/ -declare type Color = ForegroundColor | BackgroundColor; - -declare type Modifiers = - | 'reset' - | 'bold' - | 'dim' - | 'italic' - | 'underline' - | 'inverse' - | 'hidden' - | 'strikethrough' - | 'visible'; - -declare namespace chalk { - /** - Levels: - - `0` - All colors disabled. - - `1` - Basic 16 colors support. - - `2` - ANSI 256 colors support. - - `3` - Truecolor 16 million colors support. - */ - type Level = 0 | 1 | 2 | 3; - - interface Options { - /** - Specify the color support for Chalk. - - By default, color support is automatically detected based on the environment. - - Levels: - - `0` - All colors disabled. - - `1` - Basic 16 colors support. - - `2` - ANSI 256 colors support. - - `3` - Truecolor 16 million colors support. - */ - level?: Level; - } - - /** - Return a new Chalk instance. - */ - type Instance = new (options?: Options) => Chalk; - - /** - Detect whether the terminal supports color. - */ - interface ColorSupport { - /** - The color level used by Chalk. - */ - level: Level; - - /** - Return whether Chalk supports basic 16 colors. - */ - hasBasic: boolean; - - /** - Return whether Chalk supports ANSI 256 colors. - */ - has256: boolean; - - /** - Return whether Chalk supports Truecolor 16 million colors. - */ - has16m: boolean; - } - - interface ChalkFunction { - /** - Use a template string. - - @remarks Template literals are unsupported for nested calls (see [issue #341](https://github.com/chalk/chalk/issues/341)) - - @example - ``` - import chalk = require('chalk'); - - log(chalk` - CPU: {red ${cpu.totalPercent}%} - RAM: {green ${ram.used / ram.total * 100}%} - DISK: {rgb(255,131,0) ${disk.used / disk.total * 100}%} - `); - ``` - - @example - ``` - import chalk = require('chalk'); - - log(chalk.red.bgBlack`2 + 3 = {bold ${2 + 3}}`) - ``` - */ - (text: TemplateStringsArray, ...placeholders: unknown[]): string; - - (...text: unknown[]): string; - } - - interface Chalk extends ChalkFunction { - /** - Return a new Chalk instance. - */ - Instance: Instance; - - /** - The color support for Chalk. - - By default, color support is automatically detected based on the environment. - - Levels: - - `0` - All colors disabled. - - `1` - Basic 16 colors support. - - `2` - ANSI 256 colors support. - - `3` - Truecolor 16 million colors support. - */ - level: Level; - - /** - Use HEX value to set text color. - - @param color - Hexadecimal value representing the desired color. - - @example - ``` - import chalk = require('chalk'); - - chalk.hex('#DEADED'); - ``` - */ - hex(color: string): Chalk; - - /** - Use keyword color value to set text color. - - @param color - Keyword value representing the desired color. - - @example - ``` - import chalk = require('chalk'); - - chalk.keyword('orange'); - ``` - */ - keyword(color: string): Chalk; - - /** - Use RGB values to set text color. - */ - rgb(red: number, green: number, blue: number): Chalk; - - /** - Use HSL values to set text color. - */ - hsl(hue: number, saturation: number, lightness: number): Chalk; - - /** - Use HSV values to set text color. - */ - hsv(hue: number, saturation: number, value: number): Chalk; - - /** - Use HWB values to set text color. - */ - hwb(hue: number, whiteness: number, blackness: number): Chalk; - - /** - Use a [Select/Set Graphic Rendition](https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_parameters) (SGR) [color code number](https://en.wikipedia.org/wiki/ANSI_escape_code#3/4_bit) to set text color. - - 30 <= code && code < 38 || 90 <= code && code < 98 - For example, 31 for red, 91 for redBright. - */ - ansi(code: number): Chalk; - - /** - Use a [8-bit unsigned number](https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit) to set text color. - */ - ansi256(index: number): Chalk; - - /** - Use HEX value to set background color. - - @param color - Hexadecimal value representing the desired color. - - @example - ``` - import chalk = require('chalk'); - - chalk.bgHex('#DEADED'); - ``` - */ - bgHex(color: string): Chalk; - - /** - Use keyword color value to set background color. - - @param color - Keyword value representing the desired color. - - @example - ``` - import chalk = require('chalk'); - - chalk.bgKeyword('orange'); - ``` - */ - bgKeyword(color: string): Chalk; - - /** - Use RGB values to set background color. - */ - bgRgb(red: number, green: number, blue: number): Chalk; - - /** - Use HSL values to set background color. - */ - bgHsl(hue: number, saturation: number, lightness: number): Chalk; - - /** - Use HSV values to set background color. - */ - bgHsv(hue: number, saturation: number, value: number): Chalk; - - /** - Use HWB values to set background color. - */ - bgHwb(hue: number, whiteness: number, blackness: number): Chalk; - - /** - Use a [Select/Set Graphic Rendition](https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_parameters) (SGR) [color code number](https://en.wikipedia.org/wiki/ANSI_escape_code#3/4_bit) to set background color. - - 30 <= code && code < 38 || 90 <= code && code < 98 - For example, 31 for red, 91 for redBright. - Use the foreground code, not the background code (for example, not 41, nor 101). - */ - bgAnsi(code: number): Chalk; - - /** - Use a [8-bit unsigned number](https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit) to set background color. - */ - bgAnsi256(index: number): Chalk; - - /** - Modifier: Resets the current color chain. - */ - readonly reset: Chalk; - - /** - Modifier: Make text bold. - */ - readonly bold: Chalk; - - /** - Modifier: Emitting only a small amount of light. - */ - readonly dim: Chalk; - - /** - Modifier: Make text italic. (Not widely supported) - */ - readonly italic: Chalk; - - /** - Modifier: Make text underline. (Not widely supported) - */ - readonly underline: Chalk; - - /** - Modifier: Inverse background and foreground colors. - */ - readonly inverse: Chalk; - - /** - Modifier: Prints the text, but makes it invisible. - */ - readonly hidden: Chalk; - - /** - Modifier: Puts a horizontal line through the center of the text. (Not widely supported) - */ - readonly strikethrough: Chalk; - - /** - Modifier: Prints the text only when Chalk has a color support level > 0. - Can be useful for things that are purely cosmetic. - */ - readonly visible: Chalk; - - readonly black: Chalk; - readonly red: Chalk; - readonly green: Chalk; - readonly yellow: Chalk; - readonly blue: Chalk; - readonly magenta: Chalk; - readonly cyan: Chalk; - readonly white: Chalk; - - /* - Alias for `blackBright`. - */ - readonly gray: Chalk; - - /* - Alias for `blackBright`. - */ - readonly grey: Chalk; - - readonly blackBright: Chalk; - readonly redBright: Chalk; - readonly greenBright: Chalk; - readonly yellowBright: Chalk; - readonly blueBright: Chalk; - readonly magentaBright: Chalk; - readonly cyanBright: Chalk; - readonly whiteBright: Chalk; - - readonly bgBlack: Chalk; - readonly bgRed: Chalk; - readonly bgGreen: Chalk; - readonly bgYellow: Chalk; - readonly bgBlue: Chalk; - readonly bgMagenta: Chalk; - readonly bgCyan: Chalk; - readonly bgWhite: Chalk; - - /* - Alias for `bgBlackBright`. - */ - readonly bgGray: Chalk; - - /* - Alias for `bgBlackBright`. - */ - readonly bgGrey: Chalk; - - readonly bgBlackBright: Chalk; - readonly bgRedBright: Chalk; - readonly bgGreenBright: Chalk; - readonly bgYellowBright: Chalk; - readonly bgBlueBright: Chalk; - readonly bgMagentaBright: Chalk; - readonly bgCyanBright: Chalk; - readonly bgWhiteBright: Chalk; - } -} - -/** -Main Chalk object that allows to chain styles together. -Call the last one as a method with a string argument. -Order doesn't matter, and later styles take precedent in case of a conflict. -This simply means that `chalk.red.yellow.green` is equivalent to `chalk.green`. -*/ -declare const chalk: chalk.Chalk & chalk.ChalkFunction & { - supportsColor: chalk.ColorSupport | false; - Level: chalk.Level; - Color: Color; - ForegroundColor: ForegroundColor; - BackgroundColor: BackgroundColor; - Modifiers: Modifiers; - stderr: chalk.Chalk & {supportsColor: chalk.ColorSupport | false}; -}; - -export = chalk; diff --git a/deps/npm/node_modules/chalk/license b/deps/npm/node_modules/chalk/license deleted file mode 100644 index e7af2f77107d73..00000000000000 --- a/deps/npm/node_modules/chalk/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -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/deps/npm/node_modules/chalk/package.json b/deps/npm/node_modules/chalk/package.json deleted file mode 100644 index 0d99f0f28621f2..00000000000000 --- a/deps/npm/node_modules/chalk/package.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "name": "chalk", - "version": "4.1.0", - "description": "Terminal string styling done right", - "license": "MIT", - "repository": "chalk/chalk", - "funding": "https://github.com/chalk/chalk?sponsor=1", - "main": "source", - "engines": { - "node": ">=10" - }, - "scripts": { - "test": "xo && nyc ava && tsd", - "bench": "matcha benchmark.js" - }, - "files": [ - "source", - "index.d.ts" - ], - "keywords": [ - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "str", - "ansi", - "style", - "styles", - "tty", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "devDependencies": { - "ava": "^2.4.0", - "coveralls": "^3.0.7", - "execa": "^4.0.0", - "import-fresh": "^3.1.0", - "matcha": "^0.7.0", - "nyc": "^15.0.0", - "resolve-from": "^5.0.0", - "tsd": "^0.7.4", - "xo": "^0.28.2" - }, - "xo": { - "rules": { - "unicorn/prefer-string-slice": "off", - "unicorn/prefer-includes": "off", - "@typescript-eslint/member-ordering": "off", - "no-redeclare": "off", - "unicorn/string-content": "off", - "unicorn/better-regex": "off" - } - } -} diff --git a/deps/npm/node_modules/chalk/readme.md b/deps/npm/node_modules/chalk/readme.md deleted file mode 100644 index 338f42cb8b525b..00000000000000 --- a/deps/npm/node_modules/chalk/readme.md +++ /dev/null @@ -1,293 +0,0 @@ -

-
-
- Chalk -
-
-
-

- -> Terminal string styling done right - -[![Build Status](https://travis-ci.org/chalk/chalk.svg?branch=master)](https://travis-ci.org/chalk/chalk) [![Coverage Status](https://coveralls.io/repos/github/chalk/chalk/badge.svg?branch=master)](https://coveralls.io/github/chalk/chalk?branch=master) [![npm dependents](https://badgen.net/npm/dependents/chalk)](https://www.npmjs.com/package/chalk?activeTab=dependents) [![Downloads](https://badgen.net/npm/dt/chalk)](https://www.npmjs.com/package/chalk) [![](https://img.shields.io/badge/unicorn-approved-ff69b4.svg)](https://www.youtube.com/watch?v=9auOCbH5Ns4) [![XO code style](https://img.shields.io/badge/code_style-XO-5ed9c7.svg)](https://github.com/xojs/xo) ![TypeScript-ready](https://img.shields.io/npm/types/chalk.svg) [![run on repl.it](https://repl.it/badge/github/chalk/chalk)](https://repl.it/github/chalk/chalk) - - - -## Highlights - -- Expressive API -- Highly performant -- Ability to nest styles -- [256/Truecolor color support](#256-and-truecolor-color-support) -- Auto-detects color support -- Doesn't extend `String.prototype` -- Clean and focused -- Actively maintained -- [Used by ~50,000 packages](https://www.npmjs.com/browse/depended/chalk) as of January 1, 2020 - -## Install - -```console -$ npm install chalk -``` - -## Usage - -```js -const chalk = require('chalk'); - -console.log(chalk.blue('Hello world!')); -``` - -Chalk comes with an easy to use composable API where you just chain and nest the styles you want. - -```js -const chalk = require('chalk'); -const log = console.log; - -// Combine styled and normal strings -log(chalk.blue('Hello') + ' World' + chalk.red('!')); - -// Compose multiple styles using the chainable API -log(chalk.blue.bgRed.bold('Hello world!')); - -// Pass in multiple arguments -log(chalk.blue('Hello', 'World!', 'Foo', 'bar', 'biz', 'baz')); - -// Nest styles -log(chalk.red('Hello', chalk.underline.bgBlue('world') + '!')); - -// Nest styles of the same type even (color, underline, background) -log(chalk.green( - 'I am a green line ' + - chalk.blue.underline.bold('with a blue substring') + - ' that becomes green again!' -)); - -// ES2015 template literal -log(` -CPU: ${chalk.red('90%')} -RAM: ${chalk.green('40%')} -DISK: ${chalk.yellow('70%')} -`); - -// ES2015 tagged template literal -log(chalk` -CPU: {red ${cpu.totalPercent}%} -RAM: {green ${ram.used / ram.total * 100}%} -DISK: {rgb(255,131,0) ${disk.used / disk.total * 100}%} -`); - -// Use RGB colors in terminal emulators that support it. -log(chalk.keyword('orange')('Yay for orange colored text!')); -log(chalk.rgb(123, 45, 67).underline('Underlined reddish color')); -log(chalk.hex('#DEADED').bold('Bold gray!')); -``` - -Easily define your own themes: - -```js -const chalk = require('chalk'); - -const error = chalk.bold.red; -const warning = chalk.keyword('orange'); - -console.log(error('Error!')); -console.log(warning('Warning!')); -``` - -Take advantage of console.log [string substitution](https://nodejs.org/docs/latest/api/console.html#console_console_log_data_args): - -```js -const name = 'Sindre'; -console.log(chalk.green('Hello %s'), name); -//=> 'Hello Sindre' -``` - -## API - -### chalk.` -Browserstack-logo-white - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/deps/npm/node_modules/psl/data/rules.json b/deps/npm/node_modules/psl/data/rules.json deleted file mode 100644 index e19abdc8938dc4..00000000000000 --- a/deps/npm/node_modules/psl/data/rules.json +++ /dev/null @@ -1,8834 +0,0 @@ -[ -"ac", -"com.ac", -"edu.ac", -"gov.ac", -"net.ac", -"mil.ac", -"org.ac", -"ad", -"nom.ad", -"ae", -"co.ae", -"net.ae", -"org.ae", -"sch.ae", -"ac.ae", -"gov.ae", -"mil.ae", -"aero", -"accident-investigation.aero", -"accident-prevention.aero", -"aerobatic.aero", -"aeroclub.aero", -"aerodrome.aero", -"agents.aero", -"aircraft.aero", -"airline.aero", -"airport.aero", -"air-surveillance.aero", -"airtraffic.aero", -"air-traffic-control.aero", -"ambulance.aero", -"amusement.aero", -"association.aero", -"author.aero", -"ballooning.aero", -"broker.aero", -"caa.aero", -"cargo.aero", -"catering.aero", -"certification.aero", -"championship.aero", -"charter.aero", -"civilaviation.aero", -"club.aero", -"conference.aero", -"consultant.aero", -"consulting.aero", -"control.aero", -"council.aero", -"crew.aero", -"design.aero", -"dgca.aero", -"educator.aero", -"emergency.aero", -"engine.aero", -"engineer.aero", -"entertainment.aero", -"equipment.aero", -"exchange.aero", -"express.aero", -"federation.aero", -"flight.aero", -"freight.aero", -"fuel.aero", -"gliding.aero", -"government.aero", -"groundhandling.aero", -"group.aero", -"hanggliding.aero", -"homebuilt.aero", -"insurance.aero", -"journal.aero", -"journalist.aero", -"leasing.aero", -"logistics.aero", -"magazine.aero", -"maintenance.aero", -"media.aero", -"microlight.aero", -"modelling.aero", -"navigation.aero", -"parachuting.aero", -"paragliding.aero", -"passenger-association.aero", -"pilot.aero", -"press.aero", -"production.aero", -"recreation.aero", -"repbody.aero", -"res.aero", -"research.aero", -"rotorcraft.aero", -"safety.aero", -"scientist.aero", -"services.aero", -"show.aero", -"skydiving.aero", -"software.aero", -"student.aero", -"trader.aero", -"trading.aero", -"trainer.aero", -"union.aero", -"workinggroup.aero", -"works.aero", -"af", -"gov.af", -"com.af", -"org.af", -"net.af", -"edu.af", -"ag", -"com.ag", -"org.ag", -"net.ag", -"co.ag", -"nom.ag", -"ai", -"off.ai", -"com.ai", -"net.ai", -"org.ai", -"al", -"com.al", -"edu.al", -"gov.al", -"mil.al", -"net.al", -"org.al", -"am", -"co.am", -"com.am", -"commune.am", -"net.am", -"org.am", -"ao", -"ed.ao", -"gv.ao", -"og.ao", -"co.ao", -"pb.ao", -"it.ao", -"aq", -"ar", -"com.ar", -"edu.ar", -"gob.ar", -"gov.ar", -"int.ar", -"mil.ar", -"musica.ar", -"net.ar", -"org.ar", -"tur.ar", -"arpa", -"e164.arpa", -"in-addr.arpa", -"ip6.arpa", -"iris.arpa", -"uri.arpa", -"urn.arpa", -"as", -"gov.as", -"asia", -"at", -"ac.at", -"co.at", -"gv.at", -"or.at", -"au", -"com.au", -"net.au", -"org.au", -"edu.au", -"gov.au", -"asn.au", -"id.au", -"info.au", -"conf.au", -"oz.au", -"act.au", -"nsw.au", -"nt.au", -"qld.au", -"sa.au", -"tas.au", -"vic.au", -"wa.au", -"act.edu.au", -"catholic.edu.au", -"nsw.edu.au", -"nt.edu.au", -"qld.edu.au", -"sa.edu.au", -"tas.edu.au", -"vic.edu.au", -"wa.edu.au", -"qld.gov.au", -"sa.gov.au", -"tas.gov.au", -"vic.gov.au", -"wa.gov.au", -"education.tas.edu.au", -"schools.nsw.edu.au", -"aw", -"com.aw", -"ax", -"az", -"com.az", -"net.az", -"int.az", -"gov.az", -"org.az", -"edu.az", -"info.az", -"pp.az", -"mil.az", -"name.az", -"pro.az", -"biz.az", -"ba", -"com.ba", -"edu.ba", -"gov.ba", -"mil.ba", -"net.ba", -"org.ba", -"bb", -"biz.bb", -"co.bb", -"com.bb", -"edu.bb", -"gov.bb", -"info.bb", -"net.bb", -"org.bb", -"store.bb", -"tv.bb", -"*.bd", -"be", -"ac.be", -"bf", -"gov.bf", -"bg", -"a.bg", -"b.bg", -"c.bg", -"d.bg", -"e.bg", -"f.bg", -"g.bg", -"h.bg", -"i.bg", -"j.bg", -"k.bg", -"l.bg", -"m.bg", -"n.bg", -"o.bg", -"p.bg", -"q.bg", -"r.bg", -"s.bg", -"t.bg", -"u.bg", -"v.bg", -"w.bg", -"x.bg", -"y.bg", -"z.bg", -"0.bg", -"1.bg", -"2.bg", -"3.bg", -"4.bg", -"5.bg", -"6.bg", -"7.bg", -"8.bg", -"9.bg", -"bh", -"com.bh", -"edu.bh", -"net.bh", -"org.bh", -"gov.bh", -"bi", -"co.bi", -"com.bi", -"edu.bi", -"or.bi", -"org.bi", -"biz", -"bj", -"asso.bj", -"barreau.bj", -"gouv.bj", -"bm", -"com.bm", -"edu.bm", -"gov.bm", -"net.bm", -"org.bm", -"bn", -"com.bn", -"edu.bn", -"gov.bn", -"net.bn", -"org.bn", -"bo", -"com.bo", -"edu.bo", -"gob.bo", -"int.bo", -"org.bo", -"net.bo", -"mil.bo", -"tv.bo", -"web.bo", -"academia.bo", -"agro.bo", -"arte.bo", -"blog.bo", -"bolivia.bo", -"ciencia.bo", -"cooperativa.bo", -"democracia.bo", -"deporte.bo", -"ecologia.bo", -"economia.bo", -"empresa.bo", -"indigena.bo", -"industria.bo", -"info.bo", -"medicina.bo", -"movimiento.bo", -"musica.bo", -"natural.bo", -"nombre.bo", -"noticias.bo", -"patria.bo", -"politica.bo", -"profesional.bo", -"plurinacional.bo", -"pueblo.bo", -"revista.bo", -"salud.bo", -"tecnologia.bo", -"tksat.bo", -"transporte.bo", -"wiki.bo", -"br", -"9guacu.br", -"abc.br", -"adm.br", -"adv.br", -"agr.br", -"aju.br", -"am.br", -"anani.br", -"aparecida.br", -"arq.br", -"art.br", -"ato.br", -"b.br", -"barueri.br", -"belem.br", -"bhz.br", -"bio.br", -"blog.br", -"bmd.br", -"boavista.br", -"bsb.br", -"campinagrande.br", -"campinas.br", -"caxias.br", -"cim.br", -"cng.br", -"cnt.br", -"com.br", -"contagem.br", -"coop.br", -"cri.br", -"cuiaba.br", -"curitiba.br", -"def.br", -"ecn.br", -"eco.br", -"edu.br", -"emp.br", -"eng.br", -"esp.br", -"etc.br", -"eti.br", -"far.br", -"feira.br", -"flog.br", -"floripa.br", -"fm.br", -"fnd.br", -"fortal.br", -"fot.br", -"foz.br", -"fst.br", -"g12.br", -"ggf.br", -"goiania.br", -"gov.br", -"ac.gov.br", -"al.gov.br", -"am.gov.br", -"ap.gov.br", -"ba.gov.br", -"ce.gov.br", -"df.gov.br", -"es.gov.br", -"go.gov.br", -"ma.gov.br", -"mg.gov.br", -"ms.gov.br", -"mt.gov.br", -"pa.gov.br", -"pb.gov.br", -"pe.gov.br", -"pi.gov.br", -"pr.gov.br", -"rj.gov.br", -"rn.gov.br", -"ro.gov.br", -"rr.gov.br", -"rs.gov.br", -"sc.gov.br", -"se.gov.br", -"sp.gov.br", -"to.gov.br", -"gru.br", -"imb.br", -"ind.br", -"inf.br", -"jab.br", -"jampa.br", -"jdf.br", -"joinville.br", -"jor.br", -"jus.br", -"leg.br", -"lel.br", -"londrina.br", -"macapa.br", -"maceio.br", -"manaus.br", -"maringa.br", -"mat.br", -"med.br", -"mil.br", -"morena.br", -"mp.br", -"mus.br", -"natal.br", -"net.br", -"niteroi.br", -"*.nom.br", -"not.br", -"ntr.br", -"odo.br", -"ong.br", -"org.br", -"osasco.br", -"palmas.br", -"poa.br", -"ppg.br", -"pro.br", -"psc.br", -"psi.br", -"pvh.br", -"qsl.br", -"radio.br", -"rec.br", -"recife.br", -"ribeirao.br", -"rio.br", -"riobranco.br", -"riopreto.br", -"salvador.br", -"sampa.br", -"santamaria.br", -"santoandre.br", -"saobernardo.br", -"saogonca.br", -"sjc.br", -"slg.br", -"slz.br", -"sorocaba.br", -"srv.br", -"taxi.br", -"tc.br", -"teo.br", -"the.br", -"tmp.br", -"trd.br", -"tur.br", -"tv.br", -"udi.br", -"vet.br", -"vix.br", -"vlog.br", -"wiki.br", -"zlg.br", -"bs", -"com.bs", -"net.bs", -"org.bs", -"edu.bs", -"gov.bs", -"bt", -"com.bt", -"edu.bt", -"gov.bt", -"net.bt", -"org.bt", -"bv", -"bw", -"co.bw", -"org.bw", -"by", -"gov.by", -"mil.by", -"com.by", -"of.by", -"bz", -"com.bz", -"net.bz", -"org.bz", -"edu.bz", -"gov.bz", -"ca", -"ab.ca", -"bc.ca", -"mb.ca", -"nb.ca", -"nf.ca", -"nl.ca", -"ns.ca", -"nt.ca", -"nu.ca", -"on.ca", -"pe.ca", -"qc.ca", -"sk.ca", -"yk.ca", -"gc.ca", -"cat", -"cc", -"cd", -"gov.cd", -"cf", -"cg", -"ch", -"ci", -"org.ci", -"or.ci", -"com.ci", -"co.ci", -"edu.ci", -"ed.ci", -"ac.ci", -"net.ci", -"go.ci", -"asso.ci", -"aéroport.ci", -"int.ci", -"presse.ci", -"md.ci", -"gouv.ci", -"*.ck", -"!www.ck", -"cl", -"aprendemas.cl", -"co.cl", -"gob.cl", -"gov.cl", -"mil.cl", -"cm", -"co.cm", -"com.cm", -"gov.cm", -"net.cm", -"cn", -"ac.cn", -"com.cn", -"edu.cn", -"gov.cn", -"net.cn", -"org.cn", -"mil.cn", -"公司.cn", -"网络.cn", -"網絡.cn", -"ah.cn", -"bj.cn", -"cq.cn", -"fj.cn", -"gd.cn", -"gs.cn", -"gz.cn", -"gx.cn", -"ha.cn", -"hb.cn", -"he.cn", -"hi.cn", -"hl.cn", -"hn.cn", -"jl.cn", -"js.cn", -"jx.cn", -"ln.cn", -"nm.cn", -"nx.cn", -"qh.cn", -"sc.cn", -"sd.cn", -"sh.cn", -"sn.cn", -"sx.cn", -"tj.cn", -"xj.cn", -"xz.cn", -"yn.cn", -"zj.cn", -"hk.cn", -"mo.cn", -"tw.cn", -"co", -"arts.co", -"com.co", -"edu.co", -"firm.co", -"gov.co", -"info.co", -"int.co", -"mil.co", -"net.co", -"nom.co", -"org.co", -"rec.co", -"web.co", -"com", -"coop", -"cr", -"ac.cr", -"co.cr", -"ed.cr", -"fi.cr", -"go.cr", -"or.cr", -"sa.cr", -"cu", -"com.cu", -"edu.cu", -"org.cu", -"net.cu", -"gov.cu", -"inf.cu", -"cv", -"cw", -"com.cw", -"edu.cw", -"net.cw", -"org.cw", -"cx", -"gov.cx", -"cy", -"ac.cy", -"biz.cy", -"com.cy", -"ekloges.cy", -"gov.cy", -"ltd.cy", -"name.cy", -"net.cy", -"org.cy", -"parliament.cy", -"press.cy", -"pro.cy", -"tm.cy", -"cz", -"de", -"dj", -"dk", -"dm", -"com.dm", -"net.dm", -"org.dm", -"edu.dm", -"gov.dm", -"do", -"art.do", -"com.do", -"edu.do", -"gob.do", -"gov.do", -"mil.do", -"net.do", -"org.do", -"sld.do", -"web.do", -"dz", -"com.dz", -"org.dz", -"net.dz", -"gov.dz", -"edu.dz", -"asso.dz", -"pol.dz", -"art.dz", -"ec", -"com.ec", -"info.ec", -"net.ec", -"fin.ec", -"k12.ec", -"med.ec", -"pro.ec", -"org.ec", -"edu.ec", -"gov.ec", -"gob.ec", -"mil.ec", -"edu", -"ee", -"edu.ee", -"gov.ee", -"riik.ee", -"lib.ee", -"med.ee", -"com.ee", -"pri.ee", -"aip.ee", -"org.ee", -"fie.ee", -"eg", -"com.eg", -"edu.eg", -"eun.eg", -"gov.eg", -"mil.eg", -"name.eg", -"net.eg", -"org.eg", -"sci.eg", -"*.er", -"es", -"com.es", -"nom.es", -"org.es", -"gob.es", -"edu.es", -"et", -"com.et", -"gov.et", -"org.et", -"edu.et", -"biz.et", -"name.et", -"info.et", -"net.et", -"eu", -"fi", -"aland.fi", -"fj", -"ac.fj", -"biz.fj", -"com.fj", -"gov.fj", -"info.fj", -"mil.fj", -"name.fj", -"net.fj", -"org.fj", -"pro.fj", -"*.fk", -"fm", -"fo", -"fr", -"asso.fr", -"com.fr", -"gouv.fr", -"nom.fr", -"prd.fr", -"tm.fr", -"aeroport.fr", -"avocat.fr", -"avoues.fr", -"cci.fr", -"chambagri.fr", -"chirurgiens-dentistes.fr", -"experts-comptables.fr", -"geometre-expert.fr", -"greta.fr", -"huissier-justice.fr", -"medecin.fr", -"notaires.fr", -"pharmacien.fr", -"port.fr", -"veterinaire.fr", -"ga", -"gb", -"gd", -"ge", -"com.ge", -"edu.ge", -"gov.ge", -"org.ge", -"mil.ge", -"net.ge", -"pvt.ge", -"gf", -"gg", -"co.gg", -"net.gg", -"org.gg", -"gh", -"com.gh", -"edu.gh", -"gov.gh", -"org.gh", -"mil.gh", -"gi", -"com.gi", -"ltd.gi", -"gov.gi", -"mod.gi", -"edu.gi", -"org.gi", -"gl", -"co.gl", -"com.gl", -"edu.gl", -"net.gl", -"org.gl", -"gm", -"gn", -"ac.gn", -"com.gn", -"edu.gn", -"gov.gn", -"org.gn", -"net.gn", -"gov", -"gp", -"com.gp", -"net.gp", -"mobi.gp", -"edu.gp", -"org.gp", -"asso.gp", -"gq", -"gr", -"com.gr", -"edu.gr", -"net.gr", -"org.gr", -"gov.gr", -"gs", -"gt", -"com.gt", -"edu.gt", -"gob.gt", -"ind.gt", -"mil.gt", -"net.gt", -"org.gt", -"gu", -"com.gu", -"edu.gu", -"gov.gu", -"guam.gu", -"info.gu", -"net.gu", -"org.gu", -"web.gu", -"gw", -"gy", -"co.gy", -"com.gy", -"edu.gy", -"gov.gy", -"net.gy", -"org.gy", -"hk", -"com.hk", -"edu.hk", -"gov.hk", -"idv.hk", -"net.hk", -"org.hk", -"公司.hk", -"教育.hk", -"敎育.hk", -"政府.hk", -"個人.hk", -"个人.hk", -"箇人.hk", -"網络.hk", -"网络.hk", -"组織.hk", -"網絡.hk", -"网絡.hk", -"组织.hk", -"組織.hk", -"組织.hk", -"hm", -"hn", -"com.hn", -"edu.hn", -"org.hn", -"net.hn", -"mil.hn", -"gob.hn", -"hr", -"iz.hr", -"from.hr", -"name.hr", -"com.hr", -"ht", -"com.ht", -"shop.ht", -"firm.ht", -"info.ht", -"adult.ht", -"net.ht", -"pro.ht", -"org.ht", -"med.ht", -"art.ht", -"coop.ht", -"pol.ht", -"asso.ht", -"edu.ht", -"rel.ht", -"gouv.ht", -"perso.ht", -"hu", -"co.hu", -"info.hu", -"org.hu", -"priv.hu", -"sport.hu", -"tm.hu", -"2000.hu", -"agrar.hu", -"bolt.hu", -"casino.hu", -"city.hu", -"erotica.hu", -"erotika.hu", -"film.hu", -"forum.hu", -"games.hu", -"hotel.hu", -"ingatlan.hu", -"jogasz.hu", -"konyvelo.hu", -"lakas.hu", -"media.hu", -"news.hu", -"reklam.hu", -"sex.hu", -"shop.hu", -"suli.hu", -"szex.hu", -"tozsde.hu", -"utazas.hu", -"video.hu", -"id", -"ac.id", -"biz.id", -"co.id", -"desa.id", -"go.id", -"mil.id", -"my.id", -"net.id", -"or.id", -"ponpes.id", -"sch.id", -"web.id", -"ie", -"gov.ie", -"il", -"ac.il", -"co.il", -"gov.il", -"idf.il", -"k12.il", -"muni.il", -"net.il", -"org.il", -"im", -"ac.im", -"co.im", -"com.im", -"ltd.co.im", -"net.im", -"org.im", -"plc.co.im", -"tt.im", -"tv.im", -"in", -"co.in", -"firm.in", -"net.in", -"org.in", -"gen.in", -"ind.in", -"nic.in", -"ac.in", -"edu.in", -"res.in", -"gov.in", -"mil.in", -"info", -"int", -"eu.int", -"io", -"com.io", -"iq", -"gov.iq", -"edu.iq", -"mil.iq", -"com.iq", -"org.iq", -"net.iq", -"ir", -"ac.ir", -"co.ir", -"gov.ir", -"id.ir", -"net.ir", -"org.ir", -"sch.ir", -"ایران.ir", -"ايران.ir", -"is", -"net.is", -"com.is", -"edu.is", -"gov.is", -"org.is", -"int.is", -"it", -"gov.it", -"edu.it", -"abr.it", -"abruzzo.it", -"aosta-valley.it", -"aostavalley.it", -"bas.it", -"basilicata.it", -"cal.it", -"calabria.it", -"cam.it", -"campania.it", -"emilia-romagna.it", -"emiliaromagna.it", -"emr.it", -"friuli-v-giulia.it", -"friuli-ve-giulia.it", -"friuli-vegiulia.it", -"friuli-venezia-giulia.it", -"friuli-veneziagiulia.it", -"friuli-vgiulia.it", -"friuliv-giulia.it", -"friulive-giulia.it", -"friulivegiulia.it", -"friulivenezia-giulia.it", -"friuliveneziagiulia.it", -"friulivgiulia.it", -"fvg.it", -"laz.it", -"lazio.it", -"lig.it", -"liguria.it", -"lom.it", -"lombardia.it", -"lombardy.it", -"lucania.it", -"mar.it", -"marche.it", -"mol.it", -"molise.it", -"piedmont.it", -"piemonte.it", -"pmn.it", -"pug.it", -"puglia.it", -"sar.it", -"sardegna.it", -"sardinia.it", -"sic.it", -"sicilia.it", -"sicily.it", -"taa.it", -"tos.it", -"toscana.it", -"trentin-sud-tirol.it", -"trentin-süd-tirol.it", -"trentin-sudtirol.it", -"trentin-südtirol.it", -"trentin-sued-tirol.it", -"trentin-suedtirol.it", -"trentino-a-adige.it", -"trentino-aadige.it", -"trentino-alto-adige.it", -"trentino-altoadige.it", -"trentino-s-tirol.it", -"trentino-stirol.it", -"trentino-sud-tirol.it", -"trentino-süd-tirol.it", -"trentino-sudtirol.it", -"trentino-südtirol.it", -"trentino-sued-tirol.it", -"trentino-suedtirol.it", -"trentino.it", -"trentinoa-adige.it", -"trentinoaadige.it", -"trentinoalto-adige.it", -"trentinoaltoadige.it", -"trentinos-tirol.it", -"trentinostirol.it", -"trentinosud-tirol.it", -"trentinosüd-tirol.it", -"trentinosudtirol.it", -"trentinosüdtirol.it", -"trentinosued-tirol.it", -"trentinosuedtirol.it", -"trentinsud-tirol.it", -"trentinsüd-tirol.it", -"trentinsudtirol.it", -"trentinsüdtirol.it", -"trentinsued-tirol.it", -"trentinsuedtirol.it", -"tuscany.it", -"umb.it", -"umbria.it", -"val-d-aosta.it", -"val-daosta.it", -"vald-aosta.it", -"valdaosta.it", -"valle-aosta.it", -"valle-d-aosta.it", -"valle-daosta.it", -"valleaosta.it", -"valled-aosta.it", -"valledaosta.it", -"vallee-aoste.it", -"vallée-aoste.it", -"vallee-d-aoste.it", -"vallée-d-aoste.it", -"valleeaoste.it", -"valléeaoste.it", -"valleedaoste.it", -"valléedaoste.it", -"vao.it", -"vda.it", -"ven.it", -"veneto.it", -"ag.it", -"agrigento.it", -"al.it", -"alessandria.it", -"alto-adige.it", -"altoadige.it", -"an.it", -"ancona.it", -"andria-barletta-trani.it", -"andria-trani-barletta.it", -"andriabarlettatrani.it", -"andriatranibarletta.it", -"ao.it", -"aosta.it", -"aoste.it", -"ap.it", -"aq.it", -"aquila.it", -"ar.it", -"arezzo.it", -"ascoli-piceno.it", -"ascolipiceno.it", -"asti.it", -"at.it", -"av.it", -"avellino.it", -"ba.it", -"balsan-sudtirol.it", -"balsan-südtirol.it", -"balsan-suedtirol.it", -"balsan.it", -"bari.it", -"barletta-trani-andria.it", -"barlettatraniandria.it", -"belluno.it", -"benevento.it", -"bergamo.it", -"bg.it", -"bi.it", -"biella.it", -"bl.it", -"bn.it", -"bo.it", -"bologna.it", -"bolzano-altoadige.it", -"bolzano.it", -"bozen-sudtirol.it", -"bozen-südtirol.it", -"bozen-suedtirol.it", -"bozen.it", -"br.it", -"brescia.it", -"brindisi.it", -"bs.it", -"bt.it", -"bulsan-sudtirol.it", -"bulsan-südtirol.it", -"bulsan-suedtirol.it", -"bulsan.it", -"bz.it", -"ca.it", -"cagliari.it", -"caltanissetta.it", -"campidano-medio.it", -"campidanomedio.it", -"campobasso.it", -"carbonia-iglesias.it", -"carboniaiglesias.it", -"carrara-massa.it", -"carraramassa.it", -"caserta.it", -"catania.it", -"catanzaro.it", -"cb.it", -"ce.it", -"cesena-forli.it", -"cesena-forlì.it", -"cesenaforli.it", -"cesenaforlì.it", -"ch.it", -"chieti.it", -"ci.it", -"cl.it", -"cn.it", -"co.it", -"como.it", -"cosenza.it", -"cr.it", -"cremona.it", -"crotone.it", -"cs.it", -"ct.it", -"cuneo.it", -"cz.it", -"dell-ogliastra.it", -"dellogliastra.it", -"en.it", -"enna.it", -"fc.it", -"fe.it", -"fermo.it", -"ferrara.it", -"fg.it", -"fi.it", -"firenze.it", -"florence.it", -"fm.it", -"foggia.it", -"forli-cesena.it", -"forlì-cesena.it", -"forlicesena.it", -"forlìcesena.it", -"fr.it", -"frosinone.it", -"ge.it", -"genoa.it", -"genova.it", -"go.it", -"gorizia.it", -"gr.it", -"grosseto.it", -"iglesias-carbonia.it", -"iglesiascarbonia.it", -"im.it", -"imperia.it", -"is.it", -"isernia.it", -"kr.it", -"la-spezia.it", -"laquila.it", -"laspezia.it", -"latina.it", -"lc.it", -"le.it", -"lecce.it", -"lecco.it", -"li.it", -"livorno.it", -"lo.it", -"lodi.it", -"lt.it", -"lu.it", -"lucca.it", -"macerata.it", -"mantova.it", -"massa-carrara.it", -"massacarrara.it", -"matera.it", -"mb.it", -"mc.it", -"me.it", -"medio-campidano.it", -"mediocampidano.it", -"messina.it", -"mi.it", -"milan.it", -"milano.it", -"mn.it", -"mo.it", -"modena.it", -"monza-brianza.it", -"monza-e-della-brianza.it", -"monza.it", -"monzabrianza.it", -"monzaebrianza.it", -"monzaedellabrianza.it", -"ms.it", -"mt.it", -"na.it", -"naples.it", -"napoli.it", -"no.it", -"novara.it", -"nu.it", -"nuoro.it", -"og.it", -"ogliastra.it", -"olbia-tempio.it", -"olbiatempio.it", -"or.it", -"oristano.it", -"ot.it", -"pa.it", -"padova.it", -"padua.it", -"palermo.it", -"parma.it", -"pavia.it", -"pc.it", -"pd.it", -"pe.it", -"perugia.it", -"pesaro-urbino.it", -"pesarourbino.it", -"pescara.it", -"pg.it", -"pi.it", -"piacenza.it", -"pisa.it", -"pistoia.it", -"pn.it", -"po.it", -"pordenone.it", -"potenza.it", -"pr.it", -"prato.it", -"pt.it", -"pu.it", -"pv.it", -"pz.it", -"ra.it", -"ragusa.it", -"ravenna.it", -"rc.it", -"re.it", -"reggio-calabria.it", -"reggio-emilia.it", -"reggiocalabria.it", -"reggioemilia.it", -"rg.it", -"ri.it", -"rieti.it", -"rimini.it", -"rm.it", -"rn.it", -"ro.it", -"roma.it", -"rome.it", -"rovigo.it", -"sa.it", -"salerno.it", -"sassari.it", -"savona.it", -"si.it", -"siena.it", -"siracusa.it", -"so.it", -"sondrio.it", -"sp.it", -"sr.it", -"ss.it", -"suedtirol.it", -"südtirol.it", -"sv.it", -"ta.it", -"taranto.it", -"te.it", -"tempio-olbia.it", -"tempioolbia.it", -"teramo.it", -"terni.it", -"tn.it", -"to.it", -"torino.it", -"tp.it", -"tr.it", -"trani-andria-barletta.it", -"trani-barletta-andria.it", -"traniandriabarletta.it", -"tranibarlettaandria.it", -"trapani.it", -"trento.it", -"treviso.it", -"trieste.it", -"ts.it", -"turin.it", -"tv.it", -"ud.it", -"udine.it", -"urbino-pesaro.it", -"urbinopesaro.it", -"va.it", -"varese.it", -"vb.it", -"vc.it", -"ve.it", -"venezia.it", -"venice.it", -"verbania.it", -"vercelli.it", -"verona.it", -"vi.it", -"vibo-valentia.it", -"vibovalentia.it", -"vicenza.it", -"viterbo.it", -"vr.it", -"vs.it", -"vt.it", -"vv.it", -"je", -"co.je", -"net.je", -"org.je", -"*.jm", -"jo", -"com.jo", -"org.jo", -"net.jo", -"edu.jo", -"sch.jo", -"gov.jo", -"mil.jo", -"name.jo", -"jobs", -"jp", -"ac.jp", -"ad.jp", -"co.jp", -"ed.jp", -"go.jp", -"gr.jp", -"lg.jp", -"ne.jp", -"or.jp", -"aichi.jp", -"akita.jp", -"aomori.jp", -"chiba.jp", -"ehime.jp", -"fukui.jp", -"fukuoka.jp", -"fukushima.jp", -"gifu.jp", -"gunma.jp", -"hiroshima.jp", -"hokkaido.jp", -"hyogo.jp", -"ibaraki.jp", -"ishikawa.jp", -"iwate.jp", -"kagawa.jp", -"kagoshima.jp", -"kanagawa.jp", -"kochi.jp", -"kumamoto.jp", -"kyoto.jp", -"mie.jp", -"miyagi.jp", -"miyazaki.jp", -"nagano.jp", -"nagasaki.jp", -"nara.jp", -"niigata.jp", -"oita.jp", -"okayama.jp", -"okinawa.jp", -"osaka.jp", -"saga.jp", -"saitama.jp", -"shiga.jp", -"shimane.jp", -"shizuoka.jp", -"tochigi.jp", -"tokushima.jp", -"tokyo.jp", -"tottori.jp", -"toyama.jp", -"wakayama.jp", -"yamagata.jp", -"yamaguchi.jp", -"yamanashi.jp", -"栃木.jp", -"愛知.jp", -"愛媛.jp", -"兵庫.jp", -"熊本.jp", -"茨城.jp", -"北海道.jp", -"千葉.jp", -"和歌山.jp", -"長崎.jp", -"長野.jp", -"新潟.jp", -"青森.jp", -"静岡.jp", -"東京.jp", -"石川.jp", -"埼玉.jp", -"三重.jp", -"京都.jp", -"佐賀.jp", -"大分.jp", -"大阪.jp", -"奈良.jp", -"宮城.jp", -"宮崎.jp", -"富山.jp", -"山口.jp", -"山形.jp", -"山梨.jp", -"岩手.jp", -"岐阜.jp", -"岡山.jp", -"島根.jp", -"広島.jp", -"徳島.jp", -"沖縄.jp", -"滋賀.jp", -"神奈川.jp", -"福井.jp", -"福岡.jp", -"福島.jp", -"秋田.jp", -"群馬.jp", -"香川.jp", -"高知.jp", -"鳥取.jp", -"鹿児島.jp", -"*.kawasaki.jp", -"*.kitakyushu.jp", -"*.kobe.jp", -"*.nagoya.jp", -"*.sapporo.jp", -"*.sendai.jp", -"*.yokohama.jp", -"!city.kawasaki.jp", -"!city.kitakyushu.jp", -"!city.kobe.jp", -"!city.nagoya.jp", -"!city.sapporo.jp", -"!city.sendai.jp", -"!city.yokohama.jp", -"aisai.aichi.jp", -"ama.aichi.jp", -"anjo.aichi.jp", -"asuke.aichi.jp", -"chiryu.aichi.jp", -"chita.aichi.jp", -"fuso.aichi.jp", -"gamagori.aichi.jp", -"handa.aichi.jp", -"hazu.aichi.jp", -"hekinan.aichi.jp", -"higashiura.aichi.jp", -"ichinomiya.aichi.jp", -"inazawa.aichi.jp", -"inuyama.aichi.jp", -"isshiki.aichi.jp", -"iwakura.aichi.jp", -"kanie.aichi.jp", -"kariya.aichi.jp", -"kasugai.aichi.jp", -"kira.aichi.jp", -"kiyosu.aichi.jp", -"komaki.aichi.jp", -"konan.aichi.jp", -"kota.aichi.jp", -"mihama.aichi.jp", -"miyoshi.aichi.jp", -"nishio.aichi.jp", -"nisshin.aichi.jp", -"obu.aichi.jp", -"oguchi.aichi.jp", -"oharu.aichi.jp", -"okazaki.aichi.jp", -"owariasahi.aichi.jp", -"seto.aichi.jp", -"shikatsu.aichi.jp", -"shinshiro.aichi.jp", -"shitara.aichi.jp", -"tahara.aichi.jp", -"takahama.aichi.jp", -"tobishima.aichi.jp", -"toei.aichi.jp", -"togo.aichi.jp", -"tokai.aichi.jp", -"tokoname.aichi.jp", -"toyoake.aichi.jp", -"toyohashi.aichi.jp", -"toyokawa.aichi.jp", -"toyone.aichi.jp", -"toyota.aichi.jp", -"tsushima.aichi.jp", -"yatomi.aichi.jp", -"akita.akita.jp", -"daisen.akita.jp", -"fujisato.akita.jp", -"gojome.akita.jp", -"hachirogata.akita.jp", -"happou.akita.jp", -"higashinaruse.akita.jp", -"honjo.akita.jp", -"honjyo.akita.jp", -"ikawa.akita.jp", -"kamikoani.akita.jp", -"kamioka.akita.jp", -"katagami.akita.jp", -"kazuno.akita.jp", -"kitaakita.akita.jp", -"kosaka.akita.jp", -"kyowa.akita.jp", -"misato.akita.jp", -"mitane.akita.jp", -"moriyoshi.akita.jp", -"nikaho.akita.jp", -"noshiro.akita.jp", -"odate.akita.jp", -"oga.akita.jp", -"ogata.akita.jp", -"semboku.akita.jp", -"yokote.akita.jp", -"yurihonjo.akita.jp", -"aomori.aomori.jp", -"gonohe.aomori.jp", -"hachinohe.aomori.jp", -"hashikami.aomori.jp", -"hiranai.aomori.jp", -"hirosaki.aomori.jp", -"itayanagi.aomori.jp", -"kuroishi.aomori.jp", -"misawa.aomori.jp", -"mutsu.aomori.jp", -"nakadomari.aomori.jp", -"noheji.aomori.jp", -"oirase.aomori.jp", -"owani.aomori.jp", -"rokunohe.aomori.jp", -"sannohe.aomori.jp", -"shichinohe.aomori.jp", -"shingo.aomori.jp", -"takko.aomori.jp", -"towada.aomori.jp", -"tsugaru.aomori.jp", -"tsuruta.aomori.jp", -"abiko.chiba.jp", -"asahi.chiba.jp", -"chonan.chiba.jp", -"chosei.chiba.jp", -"choshi.chiba.jp", -"chuo.chiba.jp", -"funabashi.chiba.jp", -"futtsu.chiba.jp", -"hanamigawa.chiba.jp", -"ichihara.chiba.jp", -"ichikawa.chiba.jp", -"ichinomiya.chiba.jp", -"inzai.chiba.jp", -"isumi.chiba.jp", -"kamagaya.chiba.jp", -"kamogawa.chiba.jp", -"kashiwa.chiba.jp", -"katori.chiba.jp", -"katsuura.chiba.jp", -"kimitsu.chiba.jp", -"kisarazu.chiba.jp", -"kozaki.chiba.jp", -"kujukuri.chiba.jp", -"kyonan.chiba.jp", -"matsudo.chiba.jp", -"midori.chiba.jp", -"mihama.chiba.jp", -"minamiboso.chiba.jp", -"mobara.chiba.jp", -"mutsuzawa.chiba.jp", -"nagara.chiba.jp", -"nagareyama.chiba.jp", -"narashino.chiba.jp", -"narita.chiba.jp", -"noda.chiba.jp", -"oamishirasato.chiba.jp", -"omigawa.chiba.jp", -"onjuku.chiba.jp", -"otaki.chiba.jp", -"sakae.chiba.jp", -"sakura.chiba.jp", -"shimofusa.chiba.jp", -"shirako.chiba.jp", -"shiroi.chiba.jp", -"shisui.chiba.jp", -"sodegaura.chiba.jp", -"sosa.chiba.jp", -"tako.chiba.jp", -"tateyama.chiba.jp", -"togane.chiba.jp", -"tohnosho.chiba.jp", -"tomisato.chiba.jp", -"urayasu.chiba.jp", -"yachimata.chiba.jp", -"yachiyo.chiba.jp", -"yokaichiba.chiba.jp", -"yokoshibahikari.chiba.jp", -"yotsukaido.chiba.jp", -"ainan.ehime.jp", -"honai.ehime.jp", -"ikata.ehime.jp", -"imabari.ehime.jp", -"iyo.ehime.jp", -"kamijima.ehime.jp", -"kihoku.ehime.jp", -"kumakogen.ehime.jp", -"masaki.ehime.jp", -"matsuno.ehime.jp", -"matsuyama.ehime.jp", -"namikata.ehime.jp", -"niihama.ehime.jp", -"ozu.ehime.jp", -"saijo.ehime.jp", -"seiyo.ehime.jp", -"shikokuchuo.ehime.jp", -"tobe.ehime.jp", -"toon.ehime.jp", -"uchiko.ehime.jp", -"uwajima.ehime.jp", -"yawatahama.ehime.jp", -"echizen.fukui.jp", -"eiheiji.fukui.jp", -"fukui.fukui.jp", -"ikeda.fukui.jp", -"katsuyama.fukui.jp", -"mihama.fukui.jp", -"minamiechizen.fukui.jp", -"obama.fukui.jp", -"ohi.fukui.jp", -"ono.fukui.jp", -"sabae.fukui.jp", -"sakai.fukui.jp", -"takahama.fukui.jp", -"tsuruga.fukui.jp", -"wakasa.fukui.jp", -"ashiya.fukuoka.jp", -"buzen.fukuoka.jp", -"chikugo.fukuoka.jp", -"chikuho.fukuoka.jp", -"chikujo.fukuoka.jp", -"chikushino.fukuoka.jp", -"chikuzen.fukuoka.jp", -"chuo.fukuoka.jp", -"dazaifu.fukuoka.jp", -"fukuchi.fukuoka.jp", -"hakata.fukuoka.jp", -"higashi.fukuoka.jp", -"hirokawa.fukuoka.jp", -"hisayama.fukuoka.jp", -"iizuka.fukuoka.jp", -"inatsuki.fukuoka.jp", -"kaho.fukuoka.jp", -"kasuga.fukuoka.jp", -"kasuya.fukuoka.jp", -"kawara.fukuoka.jp", -"keisen.fukuoka.jp", -"koga.fukuoka.jp", -"kurate.fukuoka.jp", -"kurogi.fukuoka.jp", -"kurume.fukuoka.jp", -"minami.fukuoka.jp", -"miyako.fukuoka.jp", -"miyama.fukuoka.jp", -"miyawaka.fukuoka.jp", -"mizumaki.fukuoka.jp", -"munakata.fukuoka.jp", -"nakagawa.fukuoka.jp", -"nakama.fukuoka.jp", -"nishi.fukuoka.jp", -"nogata.fukuoka.jp", -"ogori.fukuoka.jp", -"okagaki.fukuoka.jp", -"okawa.fukuoka.jp", -"oki.fukuoka.jp", -"omuta.fukuoka.jp", -"onga.fukuoka.jp", -"onojo.fukuoka.jp", -"oto.fukuoka.jp", -"saigawa.fukuoka.jp", -"sasaguri.fukuoka.jp", -"shingu.fukuoka.jp", -"shinyoshitomi.fukuoka.jp", -"shonai.fukuoka.jp", -"soeda.fukuoka.jp", -"sue.fukuoka.jp", -"tachiarai.fukuoka.jp", -"tagawa.fukuoka.jp", -"takata.fukuoka.jp", -"toho.fukuoka.jp", -"toyotsu.fukuoka.jp", -"tsuiki.fukuoka.jp", -"ukiha.fukuoka.jp", -"umi.fukuoka.jp", -"usui.fukuoka.jp", -"yamada.fukuoka.jp", -"yame.fukuoka.jp", -"yanagawa.fukuoka.jp", -"yukuhashi.fukuoka.jp", -"aizubange.fukushima.jp", -"aizumisato.fukushima.jp", -"aizuwakamatsu.fukushima.jp", -"asakawa.fukushima.jp", -"bandai.fukushima.jp", -"date.fukushima.jp", -"fukushima.fukushima.jp", -"furudono.fukushima.jp", -"futaba.fukushima.jp", -"hanawa.fukushima.jp", -"higashi.fukushima.jp", -"hirata.fukushima.jp", -"hirono.fukushima.jp", -"iitate.fukushima.jp", -"inawashiro.fukushima.jp", -"ishikawa.fukushima.jp", -"iwaki.fukushima.jp", -"izumizaki.fukushima.jp", -"kagamiishi.fukushima.jp", -"kaneyama.fukushima.jp", -"kawamata.fukushima.jp", -"kitakata.fukushima.jp", -"kitashiobara.fukushima.jp", -"koori.fukushima.jp", -"koriyama.fukushima.jp", -"kunimi.fukushima.jp", -"miharu.fukushima.jp", -"mishima.fukushima.jp", -"namie.fukushima.jp", -"nango.fukushima.jp", -"nishiaizu.fukushima.jp", -"nishigo.fukushima.jp", -"okuma.fukushima.jp", -"omotego.fukushima.jp", -"ono.fukushima.jp", -"otama.fukushima.jp", -"samegawa.fukushima.jp", -"shimogo.fukushima.jp", -"shirakawa.fukushima.jp", -"showa.fukushima.jp", -"soma.fukushima.jp", -"sukagawa.fukushima.jp", -"taishin.fukushima.jp", -"tamakawa.fukushima.jp", -"tanagura.fukushima.jp", -"tenei.fukushima.jp", -"yabuki.fukushima.jp", -"yamato.fukushima.jp", -"yamatsuri.fukushima.jp", -"yanaizu.fukushima.jp", -"yugawa.fukushima.jp", -"anpachi.gifu.jp", -"ena.gifu.jp", -"gifu.gifu.jp", -"ginan.gifu.jp", -"godo.gifu.jp", -"gujo.gifu.jp", -"hashima.gifu.jp", -"hichiso.gifu.jp", -"hida.gifu.jp", -"higashishirakawa.gifu.jp", -"ibigawa.gifu.jp", -"ikeda.gifu.jp", -"kakamigahara.gifu.jp", -"kani.gifu.jp", -"kasahara.gifu.jp", -"kasamatsu.gifu.jp", -"kawaue.gifu.jp", -"kitagata.gifu.jp", -"mino.gifu.jp", -"minokamo.gifu.jp", -"mitake.gifu.jp", -"mizunami.gifu.jp", -"motosu.gifu.jp", -"nakatsugawa.gifu.jp", -"ogaki.gifu.jp", -"sakahogi.gifu.jp", -"seki.gifu.jp", -"sekigahara.gifu.jp", -"shirakawa.gifu.jp", -"tajimi.gifu.jp", -"takayama.gifu.jp", -"tarui.gifu.jp", -"toki.gifu.jp", -"tomika.gifu.jp", -"wanouchi.gifu.jp", -"yamagata.gifu.jp", -"yaotsu.gifu.jp", -"yoro.gifu.jp", -"annaka.gunma.jp", -"chiyoda.gunma.jp", -"fujioka.gunma.jp", -"higashiagatsuma.gunma.jp", -"isesaki.gunma.jp", -"itakura.gunma.jp", -"kanna.gunma.jp", -"kanra.gunma.jp", -"katashina.gunma.jp", -"kawaba.gunma.jp", -"kiryu.gunma.jp", -"kusatsu.gunma.jp", -"maebashi.gunma.jp", -"meiwa.gunma.jp", -"midori.gunma.jp", -"minakami.gunma.jp", -"naganohara.gunma.jp", -"nakanojo.gunma.jp", -"nanmoku.gunma.jp", -"numata.gunma.jp", -"oizumi.gunma.jp", -"ora.gunma.jp", -"ota.gunma.jp", -"shibukawa.gunma.jp", -"shimonita.gunma.jp", -"shinto.gunma.jp", -"showa.gunma.jp", -"takasaki.gunma.jp", -"takayama.gunma.jp", -"tamamura.gunma.jp", -"tatebayashi.gunma.jp", -"tomioka.gunma.jp", -"tsukiyono.gunma.jp", -"tsumagoi.gunma.jp", -"ueno.gunma.jp", -"yoshioka.gunma.jp", -"asaminami.hiroshima.jp", -"daiwa.hiroshima.jp", -"etajima.hiroshima.jp", -"fuchu.hiroshima.jp", -"fukuyama.hiroshima.jp", -"hatsukaichi.hiroshima.jp", -"higashihiroshima.hiroshima.jp", -"hongo.hiroshima.jp", -"jinsekikogen.hiroshima.jp", -"kaita.hiroshima.jp", -"kui.hiroshima.jp", -"kumano.hiroshima.jp", -"kure.hiroshima.jp", -"mihara.hiroshima.jp", -"miyoshi.hiroshima.jp", -"naka.hiroshima.jp", -"onomichi.hiroshima.jp", -"osakikamijima.hiroshima.jp", -"otake.hiroshima.jp", -"saka.hiroshima.jp", -"sera.hiroshima.jp", -"seranishi.hiroshima.jp", -"shinichi.hiroshima.jp", -"shobara.hiroshima.jp", -"takehara.hiroshima.jp", -"abashiri.hokkaido.jp", -"abira.hokkaido.jp", -"aibetsu.hokkaido.jp", -"akabira.hokkaido.jp", -"akkeshi.hokkaido.jp", -"asahikawa.hokkaido.jp", -"ashibetsu.hokkaido.jp", -"ashoro.hokkaido.jp", -"assabu.hokkaido.jp", -"atsuma.hokkaido.jp", -"bibai.hokkaido.jp", -"biei.hokkaido.jp", -"bifuka.hokkaido.jp", -"bihoro.hokkaido.jp", -"biratori.hokkaido.jp", -"chippubetsu.hokkaido.jp", -"chitose.hokkaido.jp", -"date.hokkaido.jp", -"ebetsu.hokkaido.jp", -"embetsu.hokkaido.jp", -"eniwa.hokkaido.jp", -"erimo.hokkaido.jp", -"esan.hokkaido.jp", -"esashi.hokkaido.jp", -"fukagawa.hokkaido.jp", -"fukushima.hokkaido.jp", -"furano.hokkaido.jp", -"furubira.hokkaido.jp", -"haboro.hokkaido.jp", -"hakodate.hokkaido.jp", -"hamatonbetsu.hokkaido.jp", -"hidaka.hokkaido.jp", -"higashikagura.hokkaido.jp", -"higashikawa.hokkaido.jp", -"hiroo.hokkaido.jp", -"hokuryu.hokkaido.jp", -"hokuto.hokkaido.jp", -"honbetsu.hokkaido.jp", -"horokanai.hokkaido.jp", -"horonobe.hokkaido.jp", -"ikeda.hokkaido.jp", -"imakane.hokkaido.jp", -"ishikari.hokkaido.jp", -"iwamizawa.hokkaido.jp", -"iwanai.hokkaido.jp", -"kamifurano.hokkaido.jp", -"kamikawa.hokkaido.jp", -"kamishihoro.hokkaido.jp", -"kamisunagawa.hokkaido.jp", -"kamoenai.hokkaido.jp", -"kayabe.hokkaido.jp", -"kembuchi.hokkaido.jp", -"kikonai.hokkaido.jp", -"kimobetsu.hokkaido.jp", -"kitahiroshima.hokkaido.jp", -"kitami.hokkaido.jp", -"kiyosato.hokkaido.jp", -"koshimizu.hokkaido.jp", -"kunneppu.hokkaido.jp", -"kuriyama.hokkaido.jp", -"kuromatsunai.hokkaido.jp", -"kushiro.hokkaido.jp", -"kutchan.hokkaido.jp", -"kyowa.hokkaido.jp", -"mashike.hokkaido.jp", -"matsumae.hokkaido.jp", -"mikasa.hokkaido.jp", -"minamifurano.hokkaido.jp", -"mombetsu.hokkaido.jp", -"moseushi.hokkaido.jp", -"mukawa.hokkaido.jp", -"muroran.hokkaido.jp", -"naie.hokkaido.jp", -"nakagawa.hokkaido.jp", -"nakasatsunai.hokkaido.jp", -"nakatombetsu.hokkaido.jp", -"nanae.hokkaido.jp", -"nanporo.hokkaido.jp", -"nayoro.hokkaido.jp", -"nemuro.hokkaido.jp", -"niikappu.hokkaido.jp", -"niki.hokkaido.jp", -"nishiokoppe.hokkaido.jp", -"noboribetsu.hokkaido.jp", -"numata.hokkaido.jp", -"obihiro.hokkaido.jp", -"obira.hokkaido.jp", -"oketo.hokkaido.jp", -"okoppe.hokkaido.jp", -"otaru.hokkaido.jp", -"otobe.hokkaido.jp", -"otofuke.hokkaido.jp", -"otoineppu.hokkaido.jp", -"oumu.hokkaido.jp", -"ozora.hokkaido.jp", -"pippu.hokkaido.jp", -"rankoshi.hokkaido.jp", -"rebun.hokkaido.jp", -"rikubetsu.hokkaido.jp", -"rishiri.hokkaido.jp", -"rishirifuji.hokkaido.jp", -"saroma.hokkaido.jp", -"sarufutsu.hokkaido.jp", -"shakotan.hokkaido.jp", -"shari.hokkaido.jp", -"shibecha.hokkaido.jp", -"shibetsu.hokkaido.jp", -"shikabe.hokkaido.jp", -"shikaoi.hokkaido.jp", -"shimamaki.hokkaido.jp", -"shimizu.hokkaido.jp", -"shimokawa.hokkaido.jp", -"shinshinotsu.hokkaido.jp", -"shintoku.hokkaido.jp", -"shiranuka.hokkaido.jp", -"shiraoi.hokkaido.jp", -"shiriuchi.hokkaido.jp", -"sobetsu.hokkaido.jp", -"sunagawa.hokkaido.jp", -"taiki.hokkaido.jp", -"takasu.hokkaido.jp", -"takikawa.hokkaido.jp", -"takinoue.hokkaido.jp", -"teshikaga.hokkaido.jp", -"tobetsu.hokkaido.jp", -"tohma.hokkaido.jp", -"tomakomai.hokkaido.jp", -"tomari.hokkaido.jp", -"toya.hokkaido.jp", -"toyako.hokkaido.jp", -"toyotomi.hokkaido.jp", -"toyoura.hokkaido.jp", -"tsubetsu.hokkaido.jp", -"tsukigata.hokkaido.jp", -"urakawa.hokkaido.jp", -"urausu.hokkaido.jp", -"uryu.hokkaido.jp", -"utashinai.hokkaido.jp", -"wakkanai.hokkaido.jp", -"wassamu.hokkaido.jp", -"yakumo.hokkaido.jp", -"yoichi.hokkaido.jp", -"aioi.hyogo.jp", -"akashi.hyogo.jp", -"ako.hyogo.jp", -"amagasaki.hyogo.jp", -"aogaki.hyogo.jp", -"asago.hyogo.jp", -"ashiya.hyogo.jp", -"awaji.hyogo.jp", -"fukusaki.hyogo.jp", -"goshiki.hyogo.jp", -"harima.hyogo.jp", -"himeji.hyogo.jp", -"ichikawa.hyogo.jp", -"inagawa.hyogo.jp", -"itami.hyogo.jp", -"kakogawa.hyogo.jp", -"kamigori.hyogo.jp", -"kamikawa.hyogo.jp", -"kasai.hyogo.jp", -"kasuga.hyogo.jp", -"kawanishi.hyogo.jp", -"miki.hyogo.jp", -"minamiawaji.hyogo.jp", -"nishinomiya.hyogo.jp", -"nishiwaki.hyogo.jp", -"ono.hyogo.jp", -"sanda.hyogo.jp", -"sannan.hyogo.jp", -"sasayama.hyogo.jp", -"sayo.hyogo.jp", -"shingu.hyogo.jp", -"shinonsen.hyogo.jp", -"shiso.hyogo.jp", -"sumoto.hyogo.jp", -"taishi.hyogo.jp", -"taka.hyogo.jp", -"takarazuka.hyogo.jp", -"takasago.hyogo.jp", -"takino.hyogo.jp", -"tamba.hyogo.jp", -"tatsuno.hyogo.jp", -"toyooka.hyogo.jp", -"yabu.hyogo.jp", -"yashiro.hyogo.jp", -"yoka.hyogo.jp", -"yokawa.hyogo.jp", -"ami.ibaraki.jp", -"asahi.ibaraki.jp", -"bando.ibaraki.jp", -"chikusei.ibaraki.jp", -"daigo.ibaraki.jp", -"fujishiro.ibaraki.jp", -"hitachi.ibaraki.jp", -"hitachinaka.ibaraki.jp", -"hitachiomiya.ibaraki.jp", -"hitachiota.ibaraki.jp", -"ibaraki.ibaraki.jp", -"ina.ibaraki.jp", -"inashiki.ibaraki.jp", -"itako.ibaraki.jp", -"iwama.ibaraki.jp", -"joso.ibaraki.jp", -"kamisu.ibaraki.jp", -"kasama.ibaraki.jp", -"kashima.ibaraki.jp", -"kasumigaura.ibaraki.jp", -"koga.ibaraki.jp", -"miho.ibaraki.jp", -"mito.ibaraki.jp", -"moriya.ibaraki.jp", -"naka.ibaraki.jp", -"namegata.ibaraki.jp", -"oarai.ibaraki.jp", -"ogawa.ibaraki.jp", -"omitama.ibaraki.jp", -"ryugasaki.ibaraki.jp", -"sakai.ibaraki.jp", -"sakuragawa.ibaraki.jp", -"shimodate.ibaraki.jp", -"shimotsuma.ibaraki.jp", -"shirosato.ibaraki.jp", -"sowa.ibaraki.jp", -"suifu.ibaraki.jp", -"takahagi.ibaraki.jp", -"tamatsukuri.ibaraki.jp", -"tokai.ibaraki.jp", -"tomobe.ibaraki.jp", -"tone.ibaraki.jp", -"toride.ibaraki.jp", -"tsuchiura.ibaraki.jp", -"tsukuba.ibaraki.jp", -"uchihara.ibaraki.jp", -"ushiku.ibaraki.jp", -"yachiyo.ibaraki.jp", -"yamagata.ibaraki.jp", -"yawara.ibaraki.jp", -"yuki.ibaraki.jp", -"anamizu.ishikawa.jp", -"hakui.ishikawa.jp", -"hakusan.ishikawa.jp", -"kaga.ishikawa.jp", -"kahoku.ishikawa.jp", -"kanazawa.ishikawa.jp", -"kawakita.ishikawa.jp", -"komatsu.ishikawa.jp", -"nakanoto.ishikawa.jp", -"nanao.ishikawa.jp", -"nomi.ishikawa.jp", -"nonoichi.ishikawa.jp", -"noto.ishikawa.jp", -"shika.ishikawa.jp", -"suzu.ishikawa.jp", -"tsubata.ishikawa.jp", -"tsurugi.ishikawa.jp", -"uchinada.ishikawa.jp", -"wajima.ishikawa.jp", -"fudai.iwate.jp", -"fujisawa.iwate.jp", -"hanamaki.iwate.jp", -"hiraizumi.iwate.jp", -"hirono.iwate.jp", -"ichinohe.iwate.jp", -"ichinoseki.iwate.jp", -"iwaizumi.iwate.jp", -"iwate.iwate.jp", -"joboji.iwate.jp", -"kamaishi.iwate.jp", -"kanegasaki.iwate.jp", -"karumai.iwate.jp", -"kawai.iwate.jp", -"kitakami.iwate.jp", -"kuji.iwate.jp", -"kunohe.iwate.jp", -"kuzumaki.iwate.jp", -"miyako.iwate.jp", -"mizusawa.iwate.jp", -"morioka.iwate.jp", -"ninohe.iwate.jp", -"noda.iwate.jp", -"ofunato.iwate.jp", -"oshu.iwate.jp", -"otsuchi.iwate.jp", -"rikuzentakata.iwate.jp", -"shiwa.iwate.jp", -"shizukuishi.iwate.jp", -"sumita.iwate.jp", -"tanohata.iwate.jp", -"tono.iwate.jp", -"yahaba.iwate.jp", -"yamada.iwate.jp", -"ayagawa.kagawa.jp", -"higashikagawa.kagawa.jp", -"kanonji.kagawa.jp", -"kotohira.kagawa.jp", -"manno.kagawa.jp", -"marugame.kagawa.jp", -"mitoyo.kagawa.jp", -"naoshima.kagawa.jp", -"sanuki.kagawa.jp", -"tadotsu.kagawa.jp", -"takamatsu.kagawa.jp", -"tonosho.kagawa.jp", -"uchinomi.kagawa.jp", -"utazu.kagawa.jp", -"zentsuji.kagawa.jp", -"akune.kagoshima.jp", -"amami.kagoshima.jp", -"hioki.kagoshima.jp", -"isa.kagoshima.jp", -"isen.kagoshima.jp", -"izumi.kagoshima.jp", -"kagoshima.kagoshima.jp", -"kanoya.kagoshima.jp", -"kawanabe.kagoshima.jp", -"kinko.kagoshima.jp", -"kouyama.kagoshima.jp", -"makurazaki.kagoshima.jp", -"matsumoto.kagoshima.jp", -"minamitane.kagoshima.jp", -"nakatane.kagoshima.jp", -"nishinoomote.kagoshima.jp", -"satsumasendai.kagoshima.jp", -"soo.kagoshima.jp", -"tarumizu.kagoshima.jp", -"yusui.kagoshima.jp", -"aikawa.kanagawa.jp", -"atsugi.kanagawa.jp", -"ayase.kanagawa.jp", -"chigasaki.kanagawa.jp", -"ebina.kanagawa.jp", -"fujisawa.kanagawa.jp", -"hadano.kanagawa.jp", -"hakone.kanagawa.jp", -"hiratsuka.kanagawa.jp", -"isehara.kanagawa.jp", -"kaisei.kanagawa.jp", -"kamakura.kanagawa.jp", -"kiyokawa.kanagawa.jp", -"matsuda.kanagawa.jp", -"minamiashigara.kanagawa.jp", -"miura.kanagawa.jp", -"nakai.kanagawa.jp", -"ninomiya.kanagawa.jp", -"odawara.kanagawa.jp", -"oi.kanagawa.jp", -"oiso.kanagawa.jp", -"sagamihara.kanagawa.jp", -"samukawa.kanagawa.jp", -"tsukui.kanagawa.jp", -"yamakita.kanagawa.jp", -"yamato.kanagawa.jp", -"yokosuka.kanagawa.jp", -"yugawara.kanagawa.jp", -"zama.kanagawa.jp", -"zushi.kanagawa.jp", -"aki.kochi.jp", -"geisei.kochi.jp", -"hidaka.kochi.jp", -"higashitsuno.kochi.jp", -"ino.kochi.jp", -"kagami.kochi.jp", -"kami.kochi.jp", -"kitagawa.kochi.jp", -"kochi.kochi.jp", -"mihara.kochi.jp", -"motoyama.kochi.jp", -"muroto.kochi.jp", -"nahari.kochi.jp", -"nakamura.kochi.jp", -"nankoku.kochi.jp", -"nishitosa.kochi.jp", -"niyodogawa.kochi.jp", -"ochi.kochi.jp", -"okawa.kochi.jp", -"otoyo.kochi.jp", -"otsuki.kochi.jp", -"sakawa.kochi.jp", -"sukumo.kochi.jp", -"susaki.kochi.jp", -"tosa.kochi.jp", -"tosashimizu.kochi.jp", -"toyo.kochi.jp", -"tsuno.kochi.jp", -"umaji.kochi.jp", -"yasuda.kochi.jp", -"yusuhara.kochi.jp", -"amakusa.kumamoto.jp", -"arao.kumamoto.jp", -"aso.kumamoto.jp", -"choyo.kumamoto.jp", -"gyokuto.kumamoto.jp", -"kamiamakusa.kumamoto.jp", -"kikuchi.kumamoto.jp", -"kumamoto.kumamoto.jp", -"mashiki.kumamoto.jp", -"mifune.kumamoto.jp", -"minamata.kumamoto.jp", -"minamioguni.kumamoto.jp", -"nagasu.kumamoto.jp", -"nishihara.kumamoto.jp", -"oguni.kumamoto.jp", -"ozu.kumamoto.jp", -"sumoto.kumamoto.jp", -"takamori.kumamoto.jp", -"uki.kumamoto.jp", -"uto.kumamoto.jp", -"yamaga.kumamoto.jp", -"yamato.kumamoto.jp", -"yatsushiro.kumamoto.jp", -"ayabe.kyoto.jp", -"fukuchiyama.kyoto.jp", -"higashiyama.kyoto.jp", -"ide.kyoto.jp", -"ine.kyoto.jp", -"joyo.kyoto.jp", -"kameoka.kyoto.jp", -"kamo.kyoto.jp", -"kita.kyoto.jp", -"kizu.kyoto.jp", -"kumiyama.kyoto.jp", -"kyotamba.kyoto.jp", -"kyotanabe.kyoto.jp", -"kyotango.kyoto.jp", -"maizuru.kyoto.jp", -"minami.kyoto.jp", -"minamiyamashiro.kyoto.jp", -"miyazu.kyoto.jp", -"muko.kyoto.jp", -"nagaokakyo.kyoto.jp", -"nakagyo.kyoto.jp", -"nantan.kyoto.jp", -"oyamazaki.kyoto.jp", -"sakyo.kyoto.jp", -"seika.kyoto.jp", -"tanabe.kyoto.jp", -"uji.kyoto.jp", -"ujitawara.kyoto.jp", -"wazuka.kyoto.jp", -"yamashina.kyoto.jp", -"yawata.kyoto.jp", -"asahi.mie.jp", -"inabe.mie.jp", -"ise.mie.jp", -"kameyama.mie.jp", -"kawagoe.mie.jp", -"kiho.mie.jp", -"kisosaki.mie.jp", -"kiwa.mie.jp", -"komono.mie.jp", -"kumano.mie.jp", -"kuwana.mie.jp", -"matsusaka.mie.jp", -"meiwa.mie.jp", -"mihama.mie.jp", -"minamiise.mie.jp", -"misugi.mie.jp", -"miyama.mie.jp", -"nabari.mie.jp", -"shima.mie.jp", -"suzuka.mie.jp", -"tado.mie.jp", -"taiki.mie.jp", -"taki.mie.jp", -"tamaki.mie.jp", -"toba.mie.jp", -"tsu.mie.jp", -"udono.mie.jp", -"ureshino.mie.jp", -"watarai.mie.jp", -"yokkaichi.mie.jp", -"furukawa.miyagi.jp", -"higashimatsushima.miyagi.jp", -"ishinomaki.miyagi.jp", -"iwanuma.miyagi.jp", -"kakuda.miyagi.jp", -"kami.miyagi.jp", -"kawasaki.miyagi.jp", -"marumori.miyagi.jp", -"matsushima.miyagi.jp", -"minamisanriku.miyagi.jp", -"misato.miyagi.jp", -"murata.miyagi.jp", -"natori.miyagi.jp", -"ogawara.miyagi.jp", -"ohira.miyagi.jp", -"onagawa.miyagi.jp", -"osaki.miyagi.jp", -"rifu.miyagi.jp", -"semine.miyagi.jp", -"shibata.miyagi.jp", -"shichikashuku.miyagi.jp", -"shikama.miyagi.jp", -"shiogama.miyagi.jp", -"shiroishi.miyagi.jp", -"tagajo.miyagi.jp", -"taiwa.miyagi.jp", -"tome.miyagi.jp", -"tomiya.miyagi.jp", -"wakuya.miyagi.jp", -"watari.miyagi.jp", -"yamamoto.miyagi.jp", -"zao.miyagi.jp", -"aya.miyazaki.jp", -"ebino.miyazaki.jp", -"gokase.miyazaki.jp", -"hyuga.miyazaki.jp", -"kadogawa.miyazaki.jp", -"kawaminami.miyazaki.jp", -"kijo.miyazaki.jp", -"kitagawa.miyazaki.jp", -"kitakata.miyazaki.jp", -"kitaura.miyazaki.jp", -"kobayashi.miyazaki.jp", -"kunitomi.miyazaki.jp", -"kushima.miyazaki.jp", -"mimata.miyazaki.jp", -"miyakonojo.miyazaki.jp", -"miyazaki.miyazaki.jp", -"morotsuka.miyazaki.jp", -"nichinan.miyazaki.jp", -"nishimera.miyazaki.jp", -"nobeoka.miyazaki.jp", -"saito.miyazaki.jp", -"shiiba.miyazaki.jp", -"shintomi.miyazaki.jp", -"takaharu.miyazaki.jp", -"takanabe.miyazaki.jp", -"takazaki.miyazaki.jp", -"tsuno.miyazaki.jp", -"achi.nagano.jp", -"agematsu.nagano.jp", -"anan.nagano.jp", -"aoki.nagano.jp", -"asahi.nagano.jp", -"azumino.nagano.jp", -"chikuhoku.nagano.jp", -"chikuma.nagano.jp", -"chino.nagano.jp", -"fujimi.nagano.jp", -"hakuba.nagano.jp", -"hara.nagano.jp", -"hiraya.nagano.jp", -"iida.nagano.jp", -"iijima.nagano.jp", -"iiyama.nagano.jp", -"iizuna.nagano.jp", -"ikeda.nagano.jp", -"ikusaka.nagano.jp", -"ina.nagano.jp", -"karuizawa.nagano.jp", -"kawakami.nagano.jp", -"kiso.nagano.jp", -"kisofukushima.nagano.jp", -"kitaaiki.nagano.jp", -"komagane.nagano.jp", -"komoro.nagano.jp", -"matsukawa.nagano.jp", -"matsumoto.nagano.jp", -"miasa.nagano.jp", -"minamiaiki.nagano.jp", -"minamimaki.nagano.jp", -"minamiminowa.nagano.jp", -"minowa.nagano.jp", -"miyada.nagano.jp", -"miyota.nagano.jp", -"mochizuki.nagano.jp", -"nagano.nagano.jp", -"nagawa.nagano.jp", -"nagiso.nagano.jp", -"nakagawa.nagano.jp", -"nakano.nagano.jp", -"nozawaonsen.nagano.jp", -"obuse.nagano.jp", -"ogawa.nagano.jp", -"okaya.nagano.jp", -"omachi.nagano.jp", -"omi.nagano.jp", -"ookuwa.nagano.jp", -"ooshika.nagano.jp", -"otaki.nagano.jp", -"otari.nagano.jp", -"sakae.nagano.jp", -"sakaki.nagano.jp", -"saku.nagano.jp", -"sakuho.nagano.jp", -"shimosuwa.nagano.jp", -"shinanomachi.nagano.jp", -"shiojiri.nagano.jp", -"suwa.nagano.jp", -"suzaka.nagano.jp", -"takagi.nagano.jp", -"takamori.nagano.jp", -"takayama.nagano.jp", -"tateshina.nagano.jp", -"tatsuno.nagano.jp", -"togakushi.nagano.jp", -"togura.nagano.jp", -"tomi.nagano.jp", -"ueda.nagano.jp", -"wada.nagano.jp", -"yamagata.nagano.jp", -"yamanouchi.nagano.jp", -"yasaka.nagano.jp", -"yasuoka.nagano.jp", -"chijiwa.nagasaki.jp", -"futsu.nagasaki.jp", -"goto.nagasaki.jp", -"hasami.nagasaki.jp", -"hirado.nagasaki.jp", -"iki.nagasaki.jp", -"isahaya.nagasaki.jp", -"kawatana.nagasaki.jp", -"kuchinotsu.nagasaki.jp", -"matsuura.nagasaki.jp", -"nagasaki.nagasaki.jp", -"obama.nagasaki.jp", -"omura.nagasaki.jp", -"oseto.nagasaki.jp", -"saikai.nagasaki.jp", -"sasebo.nagasaki.jp", -"seihi.nagasaki.jp", -"shimabara.nagasaki.jp", -"shinkamigoto.nagasaki.jp", -"togitsu.nagasaki.jp", -"tsushima.nagasaki.jp", -"unzen.nagasaki.jp", -"ando.nara.jp", -"gose.nara.jp", -"heguri.nara.jp", -"higashiyoshino.nara.jp", -"ikaruga.nara.jp", -"ikoma.nara.jp", -"kamikitayama.nara.jp", -"kanmaki.nara.jp", -"kashiba.nara.jp", -"kashihara.nara.jp", -"katsuragi.nara.jp", -"kawai.nara.jp", -"kawakami.nara.jp", -"kawanishi.nara.jp", -"koryo.nara.jp", -"kurotaki.nara.jp", -"mitsue.nara.jp", -"miyake.nara.jp", -"nara.nara.jp", -"nosegawa.nara.jp", -"oji.nara.jp", -"ouda.nara.jp", -"oyodo.nara.jp", -"sakurai.nara.jp", -"sango.nara.jp", -"shimoichi.nara.jp", -"shimokitayama.nara.jp", -"shinjo.nara.jp", -"soni.nara.jp", -"takatori.nara.jp", -"tawaramoto.nara.jp", -"tenkawa.nara.jp", -"tenri.nara.jp", -"uda.nara.jp", -"yamatokoriyama.nara.jp", -"yamatotakada.nara.jp", -"yamazoe.nara.jp", -"yoshino.nara.jp", -"aga.niigata.jp", -"agano.niigata.jp", -"gosen.niigata.jp", -"itoigawa.niigata.jp", -"izumozaki.niigata.jp", -"joetsu.niigata.jp", -"kamo.niigata.jp", -"kariwa.niigata.jp", -"kashiwazaki.niigata.jp", -"minamiuonuma.niigata.jp", -"mitsuke.niigata.jp", -"muika.niigata.jp", -"murakami.niigata.jp", -"myoko.niigata.jp", -"nagaoka.niigata.jp", -"niigata.niigata.jp", -"ojiya.niigata.jp", -"omi.niigata.jp", -"sado.niigata.jp", -"sanjo.niigata.jp", -"seiro.niigata.jp", -"seirou.niigata.jp", -"sekikawa.niigata.jp", -"shibata.niigata.jp", -"tagami.niigata.jp", -"tainai.niigata.jp", -"tochio.niigata.jp", -"tokamachi.niigata.jp", -"tsubame.niigata.jp", -"tsunan.niigata.jp", -"uonuma.niigata.jp", -"yahiko.niigata.jp", -"yoita.niigata.jp", -"yuzawa.niigata.jp", -"beppu.oita.jp", -"bungoono.oita.jp", -"bungotakada.oita.jp", -"hasama.oita.jp", -"hiji.oita.jp", -"himeshima.oita.jp", -"hita.oita.jp", -"kamitsue.oita.jp", -"kokonoe.oita.jp", -"kuju.oita.jp", -"kunisaki.oita.jp", -"kusu.oita.jp", -"oita.oita.jp", -"saiki.oita.jp", -"taketa.oita.jp", -"tsukumi.oita.jp", -"usa.oita.jp", -"usuki.oita.jp", -"yufu.oita.jp", -"akaiwa.okayama.jp", -"asakuchi.okayama.jp", -"bizen.okayama.jp", -"hayashima.okayama.jp", -"ibara.okayama.jp", -"kagamino.okayama.jp", -"kasaoka.okayama.jp", -"kibichuo.okayama.jp", -"kumenan.okayama.jp", -"kurashiki.okayama.jp", -"maniwa.okayama.jp", -"misaki.okayama.jp", -"nagi.okayama.jp", -"niimi.okayama.jp", -"nishiawakura.okayama.jp", -"okayama.okayama.jp", -"satosho.okayama.jp", -"setouchi.okayama.jp", -"shinjo.okayama.jp", -"shoo.okayama.jp", -"soja.okayama.jp", -"takahashi.okayama.jp", -"tamano.okayama.jp", -"tsuyama.okayama.jp", -"wake.okayama.jp", -"yakage.okayama.jp", -"aguni.okinawa.jp", -"ginowan.okinawa.jp", -"ginoza.okinawa.jp", -"gushikami.okinawa.jp", -"haebaru.okinawa.jp", -"higashi.okinawa.jp", -"hirara.okinawa.jp", -"iheya.okinawa.jp", -"ishigaki.okinawa.jp", -"ishikawa.okinawa.jp", -"itoman.okinawa.jp", -"izena.okinawa.jp", -"kadena.okinawa.jp", -"kin.okinawa.jp", -"kitadaito.okinawa.jp", -"kitanakagusuku.okinawa.jp", -"kumejima.okinawa.jp", -"kunigami.okinawa.jp", -"minamidaito.okinawa.jp", -"motobu.okinawa.jp", -"nago.okinawa.jp", -"naha.okinawa.jp", -"nakagusuku.okinawa.jp", -"nakijin.okinawa.jp", -"nanjo.okinawa.jp", -"nishihara.okinawa.jp", -"ogimi.okinawa.jp", -"okinawa.okinawa.jp", -"onna.okinawa.jp", -"shimoji.okinawa.jp", -"taketomi.okinawa.jp", -"tarama.okinawa.jp", -"tokashiki.okinawa.jp", -"tomigusuku.okinawa.jp", -"tonaki.okinawa.jp", -"urasoe.okinawa.jp", -"uruma.okinawa.jp", -"yaese.okinawa.jp", -"yomitan.okinawa.jp", -"yonabaru.okinawa.jp", -"yonaguni.okinawa.jp", -"zamami.okinawa.jp", -"abeno.osaka.jp", -"chihayaakasaka.osaka.jp", -"chuo.osaka.jp", -"daito.osaka.jp", -"fujiidera.osaka.jp", -"habikino.osaka.jp", -"hannan.osaka.jp", -"higashiosaka.osaka.jp", -"higashisumiyoshi.osaka.jp", -"higashiyodogawa.osaka.jp", -"hirakata.osaka.jp", -"ibaraki.osaka.jp", -"ikeda.osaka.jp", -"izumi.osaka.jp", -"izumiotsu.osaka.jp", -"izumisano.osaka.jp", -"kadoma.osaka.jp", -"kaizuka.osaka.jp", -"kanan.osaka.jp", -"kashiwara.osaka.jp", -"katano.osaka.jp", -"kawachinagano.osaka.jp", -"kishiwada.osaka.jp", -"kita.osaka.jp", -"kumatori.osaka.jp", -"matsubara.osaka.jp", -"minato.osaka.jp", -"minoh.osaka.jp", -"misaki.osaka.jp", -"moriguchi.osaka.jp", -"neyagawa.osaka.jp", -"nishi.osaka.jp", -"nose.osaka.jp", -"osakasayama.osaka.jp", -"sakai.osaka.jp", -"sayama.osaka.jp", -"sennan.osaka.jp", -"settsu.osaka.jp", -"shijonawate.osaka.jp", -"shimamoto.osaka.jp", -"suita.osaka.jp", -"tadaoka.osaka.jp", -"taishi.osaka.jp", -"tajiri.osaka.jp", -"takaishi.osaka.jp", -"takatsuki.osaka.jp", -"tondabayashi.osaka.jp", -"toyonaka.osaka.jp", -"toyono.osaka.jp", -"yao.osaka.jp", -"ariake.saga.jp", -"arita.saga.jp", -"fukudomi.saga.jp", -"genkai.saga.jp", -"hamatama.saga.jp", -"hizen.saga.jp", -"imari.saga.jp", -"kamimine.saga.jp", -"kanzaki.saga.jp", -"karatsu.saga.jp", -"kashima.saga.jp", -"kitagata.saga.jp", -"kitahata.saga.jp", -"kiyama.saga.jp", -"kouhoku.saga.jp", -"kyuragi.saga.jp", -"nishiarita.saga.jp", -"ogi.saga.jp", -"omachi.saga.jp", -"ouchi.saga.jp", -"saga.saga.jp", -"shiroishi.saga.jp", -"taku.saga.jp", -"tara.saga.jp", -"tosu.saga.jp", -"yoshinogari.saga.jp", -"arakawa.saitama.jp", -"asaka.saitama.jp", -"chichibu.saitama.jp", -"fujimi.saitama.jp", -"fujimino.saitama.jp", -"fukaya.saitama.jp", -"hanno.saitama.jp", -"hanyu.saitama.jp", -"hasuda.saitama.jp", -"hatogaya.saitama.jp", -"hatoyama.saitama.jp", -"hidaka.saitama.jp", -"higashichichibu.saitama.jp", -"higashimatsuyama.saitama.jp", -"honjo.saitama.jp", -"ina.saitama.jp", -"iruma.saitama.jp", -"iwatsuki.saitama.jp", -"kamiizumi.saitama.jp", -"kamikawa.saitama.jp", -"kamisato.saitama.jp", -"kasukabe.saitama.jp", -"kawagoe.saitama.jp", -"kawaguchi.saitama.jp", -"kawajima.saitama.jp", -"kazo.saitama.jp", -"kitamoto.saitama.jp", -"koshigaya.saitama.jp", -"kounosu.saitama.jp", -"kuki.saitama.jp", -"kumagaya.saitama.jp", -"matsubushi.saitama.jp", -"minano.saitama.jp", -"misato.saitama.jp", -"miyashiro.saitama.jp", -"miyoshi.saitama.jp", -"moroyama.saitama.jp", -"nagatoro.saitama.jp", -"namegawa.saitama.jp", -"niiza.saitama.jp", -"ogano.saitama.jp", -"ogawa.saitama.jp", -"ogose.saitama.jp", -"okegawa.saitama.jp", -"omiya.saitama.jp", -"otaki.saitama.jp", -"ranzan.saitama.jp", -"ryokami.saitama.jp", -"saitama.saitama.jp", -"sakado.saitama.jp", -"satte.saitama.jp", -"sayama.saitama.jp", -"shiki.saitama.jp", -"shiraoka.saitama.jp", -"soka.saitama.jp", -"sugito.saitama.jp", -"toda.saitama.jp", -"tokigawa.saitama.jp", -"tokorozawa.saitama.jp", -"tsurugashima.saitama.jp", -"urawa.saitama.jp", -"warabi.saitama.jp", -"yashio.saitama.jp", -"yokoze.saitama.jp", -"yono.saitama.jp", -"yorii.saitama.jp", -"yoshida.saitama.jp", -"yoshikawa.saitama.jp", -"yoshimi.saitama.jp", -"aisho.shiga.jp", -"gamo.shiga.jp", -"higashiomi.shiga.jp", -"hikone.shiga.jp", -"koka.shiga.jp", -"konan.shiga.jp", -"kosei.shiga.jp", -"koto.shiga.jp", -"kusatsu.shiga.jp", -"maibara.shiga.jp", -"moriyama.shiga.jp", -"nagahama.shiga.jp", -"nishiazai.shiga.jp", -"notogawa.shiga.jp", -"omihachiman.shiga.jp", -"otsu.shiga.jp", -"ritto.shiga.jp", -"ryuoh.shiga.jp", -"takashima.shiga.jp", -"takatsuki.shiga.jp", -"torahime.shiga.jp", -"toyosato.shiga.jp", -"yasu.shiga.jp", -"akagi.shimane.jp", -"ama.shimane.jp", -"gotsu.shimane.jp", -"hamada.shimane.jp", -"higashiizumo.shimane.jp", -"hikawa.shimane.jp", -"hikimi.shimane.jp", -"izumo.shimane.jp", -"kakinoki.shimane.jp", -"masuda.shimane.jp", -"matsue.shimane.jp", -"misato.shimane.jp", -"nishinoshima.shimane.jp", -"ohda.shimane.jp", -"okinoshima.shimane.jp", -"okuizumo.shimane.jp", -"shimane.shimane.jp", -"tamayu.shimane.jp", -"tsuwano.shimane.jp", -"unnan.shimane.jp", -"yakumo.shimane.jp", -"yasugi.shimane.jp", -"yatsuka.shimane.jp", -"arai.shizuoka.jp", -"atami.shizuoka.jp", -"fuji.shizuoka.jp", -"fujieda.shizuoka.jp", -"fujikawa.shizuoka.jp", -"fujinomiya.shizuoka.jp", -"fukuroi.shizuoka.jp", -"gotemba.shizuoka.jp", -"haibara.shizuoka.jp", -"hamamatsu.shizuoka.jp", -"higashiizu.shizuoka.jp", -"ito.shizuoka.jp", -"iwata.shizuoka.jp", -"izu.shizuoka.jp", -"izunokuni.shizuoka.jp", -"kakegawa.shizuoka.jp", -"kannami.shizuoka.jp", -"kawanehon.shizuoka.jp", -"kawazu.shizuoka.jp", -"kikugawa.shizuoka.jp", -"kosai.shizuoka.jp", -"makinohara.shizuoka.jp", -"matsuzaki.shizuoka.jp", -"minamiizu.shizuoka.jp", -"mishima.shizuoka.jp", -"morimachi.shizuoka.jp", -"nishiizu.shizuoka.jp", -"numazu.shizuoka.jp", -"omaezaki.shizuoka.jp", -"shimada.shizuoka.jp", -"shimizu.shizuoka.jp", -"shimoda.shizuoka.jp", -"shizuoka.shizuoka.jp", -"susono.shizuoka.jp", -"yaizu.shizuoka.jp", -"yoshida.shizuoka.jp", -"ashikaga.tochigi.jp", -"bato.tochigi.jp", -"haga.tochigi.jp", -"ichikai.tochigi.jp", -"iwafune.tochigi.jp", -"kaminokawa.tochigi.jp", -"kanuma.tochigi.jp", -"karasuyama.tochigi.jp", -"kuroiso.tochigi.jp", -"mashiko.tochigi.jp", -"mibu.tochigi.jp", -"moka.tochigi.jp", -"motegi.tochigi.jp", -"nasu.tochigi.jp", -"nasushiobara.tochigi.jp", -"nikko.tochigi.jp", -"nishikata.tochigi.jp", -"nogi.tochigi.jp", -"ohira.tochigi.jp", -"ohtawara.tochigi.jp", -"oyama.tochigi.jp", -"sakura.tochigi.jp", -"sano.tochigi.jp", -"shimotsuke.tochigi.jp", -"shioya.tochigi.jp", -"takanezawa.tochigi.jp", -"tochigi.tochigi.jp", -"tsuga.tochigi.jp", -"ujiie.tochigi.jp", -"utsunomiya.tochigi.jp", -"yaita.tochigi.jp", -"aizumi.tokushima.jp", -"anan.tokushima.jp", -"ichiba.tokushima.jp", -"itano.tokushima.jp", -"kainan.tokushima.jp", -"komatsushima.tokushima.jp", -"matsushige.tokushima.jp", -"mima.tokushima.jp", -"minami.tokushima.jp", -"miyoshi.tokushima.jp", -"mugi.tokushima.jp", -"nakagawa.tokushima.jp", -"naruto.tokushima.jp", -"sanagochi.tokushima.jp", -"shishikui.tokushima.jp", -"tokushima.tokushima.jp", -"wajiki.tokushima.jp", -"adachi.tokyo.jp", -"akiruno.tokyo.jp", -"akishima.tokyo.jp", -"aogashima.tokyo.jp", -"arakawa.tokyo.jp", -"bunkyo.tokyo.jp", -"chiyoda.tokyo.jp", -"chofu.tokyo.jp", -"chuo.tokyo.jp", -"edogawa.tokyo.jp", -"fuchu.tokyo.jp", -"fussa.tokyo.jp", -"hachijo.tokyo.jp", -"hachioji.tokyo.jp", -"hamura.tokyo.jp", -"higashikurume.tokyo.jp", -"higashimurayama.tokyo.jp", -"higashiyamato.tokyo.jp", -"hino.tokyo.jp", -"hinode.tokyo.jp", -"hinohara.tokyo.jp", -"inagi.tokyo.jp", -"itabashi.tokyo.jp", -"katsushika.tokyo.jp", -"kita.tokyo.jp", -"kiyose.tokyo.jp", -"kodaira.tokyo.jp", -"koganei.tokyo.jp", -"kokubunji.tokyo.jp", -"komae.tokyo.jp", -"koto.tokyo.jp", -"kouzushima.tokyo.jp", -"kunitachi.tokyo.jp", -"machida.tokyo.jp", -"meguro.tokyo.jp", -"minato.tokyo.jp", -"mitaka.tokyo.jp", -"mizuho.tokyo.jp", -"musashimurayama.tokyo.jp", -"musashino.tokyo.jp", -"nakano.tokyo.jp", -"nerima.tokyo.jp", -"ogasawara.tokyo.jp", -"okutama.tokyo.jp", -"ome.tokyo.jp", -"oshima.tokyo.jp", -"ota.tokyo.jp", -"setagaya.tokyo.jp", -"shibuya.tokyo.jp", -"shinagawa.tokyo.jp", -"shinjuku.tokyo.jp", -"suginami.tokyo.jp", -"sumida.tokyo.jp", -"tachikawa.tokyo.jp", -"taito.tokyo.jp", -"tama.tokyo.jp", -"toshima.tokyo.jp", -"chizu.tottori.jp", -"hino.tottori.jp", -"kawahara.tottori.jp", -"koge.tottori.jp", -"kotoura.tottori.jp", -"misasa.tottori.jp", -"nanbu.tottori.jp", -"nichinan.tottori.jp", -"sakaiminato.tottori.jp", -"tottori.tottori.jp", -"wakasa.tottori.jp", -"yazu.tottori.jp", -"yonago.tottori.jp", -"asahi.toyama.jp", -"fuchu.toyama.jp", -"fukumitsu.toyama.jp", -"funahashi.toyama.jp", -"himi.toyama.jp", -"imizu.toyama.jp", -"inami.toyama.jp", -"johana.toyama.jp", -"kamiichi.toyama.jp", -"kurobe.toyama.jp", -"nakaniikawa.toyama.jp", -"namerikawa.toyama.jp", -"nanto.toyama.jp", -"nyuzen.toyama.jp", -"oyabe.toyama.jp", -"taira.toyama.jp", -"takaoka.toyama.jp", -"tateyama.toyama.jp", -"toga.toyama.jp", -"tonami.toyama.jp", -"toyama.toyama.jp", -"unazuki.toyama.jp", -"uozu.toyama.jp", -"yamada.toyama.jp", -"arida.wakayama.jp", -"aridagawa.wakayama.jp", -"gobo.wakayama.jp", -"hashimoto.wakayama.jp", -"hidaka.wakayama.jp", -"hirogawa.wakayama.jp", -"inami.wakayama.jp", -"iwade.wakayama.jp", -"kainan.wakayama.jp", -"kamitonda.wakayama.jp", -"katsuragi.wakayama.jp", -"kimino.wakayama.jp", -"kinokawa.wakayama.jp", -"kitayama.wakayama.jp", -"koya.wakayama.jp", -"koza.wakayama.jp", -"kozagawa.wakayama.jp", -"kudoyama.wakayama.jp", -"kushimoto.wakayama.jp", -"mihama.wakayama.jp", -"misato.wakayama.jp", -"nachikatsuura.wakayama.jp", -"shingu.wakayama.jp", -"shirahama.wakayama.jp", -"taiji.wakayama.jp", -"tanabe.wakayama.jp", -"wakayama.wakayama.jp", -"yuasa.wakayama.jp", -"yura.wakayama.jp", -"asahi.yamagata.jp", -"funagata.yamagata.jp", -"higashine.yamagata.jp", -"iide.yamagata.jp", -"kahoku.yamagata.jp", -"kaminoyama.yamagata.jp", -"kaneyama.yamagata.jp", -"kawanishi.yamagata.jp", -"mamurogawa.yamagata.jp", -"mikawa.yamagata.jp", -"murayama.yamagata.jp", -"nagai.yamagata.jp", -"nakayama.yamagata.jp", -"nanyo.yamagata.jp", -"nishikawa.yamagata.jp", -"obanazawa.yamagata.jp", -"oe.yamagata.jp", -"oguni.yamagata.jp", -"ohkura.yamagata.jp", -"oishida.yamagata.jp", -"sagae.yamagata.jp", -"sakata.yamagata.jp", -"sakegawa.yamagata.jp", -"shinjo.yamagata.jp", -"shirataka.yamagata.jp", -"shonai.yamagata.jp", -"takahata.yamagata.jp", -"tendo.yamagata.jp", -"tozawa.yamagata.jp", -"tsuruoka.yamagata.jp", -"yamagata.yamagata.jp", -"yamanobe.yamagata.jp", -"yonezawa.yamagata.jp", -"yuza.yamagata.jp", -"abu.yamaguchi.jp", -"hagi.yamaguchi.jp", -"hikari.yamaguchi.jp", -"hofu.yamaguchi.jp", -"iwakuni.yamaguchi.jp", -"kudamatsu.yamaguchi.jp", -"mitou.yamaguchi.jp", -"nagato.yamaguchi.jp", -"oshima.yamaguchi.jp", -"shimonoseki.yamaguchi.jp", -"shunan.yamaguchi.jp", -"tabuse.yamaguchi.jp", -"tokuyama.yamaguchi.jp", -"toyota.yamaguchi.jp", -"ube.yamaguchi.jp", -"yuu.yamaguchi.jp", -"chuo.yamanashi.jp", -"doshi.yamanashi.jp", -"fuefuki.yamanashi.jp", -"fujikawa.yamanashi.jp", -"fujikawaguchiko.yamanashi.jp", -"fujiyoshida.yamanashi.jp", -"hayakawa.yamanashi.jp", -"hokuto.yamanashi.jp", -"ichikawamisato.yamanashi.jp", -"kai.yamanashi.jp", -"kofu.yamanashi.jp", -"koshu.yamanashi.jp", -"kosuge.yamanashi.jp", -"minami-alps.yamanashi.jp", -"minobu.yamanashi.jp", -"nakamichi.yamanashi.jp", -"nanbu.yamanashi.jp", -"narusawa.yamanashi.jp", -"nirasaki.yamanashi.jp", -"nishikatsura.yamanashi.jp", -"oshino.yamanashi.jp", -"otsuki.yamanashi.jp", -"showa.yamanashi.jp", -"tabayama.yamanashi.jp", -"tsuru.yamanashi.jp", -"uenohara.yamanashi.jp", -"yamanakako.yamanashi.jp", -"yamanashi.yamanashi.jp", -"ke", -"ac.ke", -"co.ke", -"go.ke", -"info.ke", -"me.ke", -"mobi.ke", -"ne.ke", -"or.ke", -"sc.ke", -"kg", -"org.kg", -"net.kg", -"com.kg", -"edu.kg", -"gov.kg", -"mil.kg", -"*.kh", -"ki", -"edu.ki", -"biz.ki", -"net.ki", -"org.ki", -"gov.ki", -"info.ki", -"com.ki", -"km", -"org.km", -"nom.km", -"gov.km", -"prd.km", -"tm.km", -"edu.km", -"mil.km", -"ass.km", -"com.km", -"coop.km", -"asso.km", -"presse.km", -"medecin.km", -"notaires.km", -"pharmaciens.km", -"veterinaire.km", -"gouv.km", -"kn", -"net.kn", -"org.kn", -"edu.kn", -"gov.kn", -"kp", -"com.kp", -"edu.kp", -"gov.kp", -"org.kp", -"rep.kp", -"tra.kp", -"kr", -"ac.kr", -"co.kr", -"es.kr", -"go.kr", -"hs.kr", -"kg.kr", -"mil.kr", -"ms.kr", -"ne.kr", -"or.kr", -"pe.kr", -"re.kr", -"sc.kr", -"busan.kr", -"chungbuk.kr", -"chungnam.kr", -"daegu.kr", -"daejeon.kr", -"gangwon.kr", -"gwangju.kr", -"gyeongbuk.kr", -"gyeonggi.kr", -"gyeongnam.kr", -"incheon.kr", -"jeju.kr", -"jeonbuk.kr", -"jeonnam.kr", -"seoul.kr", -"ulsan.kr", -"kw", -"com.kw", -"edu.kw", -"emb.kw", -"gov.kw", -"ind.kw", -"net.kw", -"org.kw", -"ky", -"edu.ky", -"gov.ky", -"com.ky", -"org.ky", -"net.ky", -"kz", -"org.kz", -"edu.kz", -"net.kz", -"gov.kz", -"mil.kz", -"com.kz", -"la", -"int.la", -"net.la", -"info.la", -"edu.la", -"gov.la", -"per.la", -"com.la", -"org.la", -"lb", -"com.lb", -"edu.lb", -"gov.lb", -"net.lb", -"org.lb", -"lc", -"com.lc", -"net.lc", -"co.lc", -"org.lc", -"edu.lc", -"gov.lc", -"li", -"lk", -"gov.lk", -"sch.lk", -"net.lk", -"int.lk", -"com.lk", -"org.lk", -"edu.lk", -"ngo.lk", -"soc.lk", -"web.lk", -"ltd.lk", -"assn.lk", -"grp.lk", -"hotel.lk", -"ac.lk", -"lr", -"com.lr", -"edu.lr", -"gov.lr", -"org.lr", -"net.lr", -"ls", -"ac.ls", -"biz.ls", -"co.ls", -"edu.ls", -"gov.ls", -"info.ls", -"net.ls", -"org.ls", -"sc.ls", -"lt", -"gov.lt", -"lu", -"lv", -"com.lv", -"edu.lv", -"gov.lv", -"org.lv", -"mil.lv", -"id.lv", -"net.lv", -"asn.lv", -"conf.lv", -"ly", -"com.ly", -"net.ly", -"gov.ly", -"plc.ly", -"edu.ly", -"sch.ly", -"med.ly", -"org.ly", -"id.ly", -"ma", -"co.ma", -"net.ma", -"gov.ma", -"org.ma", -"ac.ma", -"press.ma", -"mc", -"tm.mc", -"asso.mc", -"md", -"me", -"co.me", -"net.me", -"org.me", -"edu.me", -"ac.me", -"gov.me", -"its.me", -"priv.me", -"mg", -"org.mg", -"nom.mg", -"gov.mg", -"prd.mg", -"tm.mg", -"edu.mg", -"mil.mg", -"com.mg", -"co.mg", -"mh", -"mil", -"mk", -"com.mk", -"org.mk", -"net.mk", -"edu.mk", -"gov.mk", -"inf.mk", -"name.mk", -"ml", -"com.ml", -"edu.ml", -"gouv.ml", -"gov.ml", -"net.ml", -"org.ml", -"presse.ml", -"*.mm", -"mn", -"gov.mn", -"edu.mn", -"org.mn", -"mo", -"com.mo", -"net.mo", -"org.mo", -"edu.mo", -"gov.mo", -"mobi", -"mp", -"mq", -"mr", -"gov.mr", -"ms", -"com.ms", -"edu.ms", -"gov.ms", -"net.ms", -"org.ms", -"mt", -"com.mt", -"edu.mt", -"net.mt", -"org.mt", -"mu", -"com.mu", -"net.mu", -"org.mu", -"gov.mu", -"ac.mu", -"co.mu", -"or.mu", -"museum", -"academy.museum", -"agriculture.museum", -"air.museum", -"airguard.museum", -"alabama.museum", -"alaska.museum", -"amber.museum", -"ambulance.museum", -"american.museum", -"americana.museum", -"americanantiques.museum", -"americanart.museum", -"amsterdam.museum", -"and.museum", -"annefrank.museum", -"anthro.museum", -"anthropology.museum", -"antiques.museum", -"aquarium.museum", -"arboretum.museum", -"archaeological.museum", -"archaeology.museum", -"architecture.museum", -"art.museum", -"artanddesign.museum", -"artcenter.museum", -"artdeco.museum", -"arteducation.museum", -"artgallery.museum", -"arts.museum", -"artsandcrafts.museum", -"asmatart.museum", -"assassination.museum", -"assisi.museum", -"association.museum", -"astronomy.museum", -"atlanta.museum", -"austin.museum", -"australia.museum", -"automotive.museum", -"aviation.museum", -"axis.museum", -"badajoz.museum", -"baghdad.museum", -"bahn.museum", -"bale.museum", -"baltimore.museum", -"barcelona.museum", -"baseball.museum", -"basel.museum", -"baths.museum", -"bauern.museum", -"beauxarts.museum", -"beeldengeluid.museum", -"bellevue.museum", -"bergbau.museum", -"berkeley.museum", -"berlin.museum", -"bern.museum", -"bible.museum", -"bilbao.museum", -"bill.museum", -"birdart.museum", -"birthplace.museum", -"bonn.museum", -"boston.museum", -"botanical.museum", -"botanicalgarden.museum", -"botanicgarden.museum", -"botany.museum", -"brandywinevalley.museum", -"brasil.museum", -"bristol.museum", -"british.museum", -"britishcolumbia.museum", -"broadcast.museum", -"brunel.museum", -"brussel.museum", -"brussels.museum", -"bruxelles.museum", -"building.museum", -"burghof.museum", -"bus.museum", -"bushey.museum", -"cadaques.museum", -"california.museum", -"cambridge.museum", -"can.museum", -"canada.museum", -"capebreton.museum", -"carrier.museum", -"cartoonart.museum", -"casadelamoneda.museum", -"castle.museum", -"castres.museum", -"celtic.museum", -"center.museum", -"chattanooga.museum", -"cheltenham.museum", -"chesapeakebay.museum", -"chicago.museum", -"children.museum", -"childrens.museum", -"childrensgarden.museum", -"chiropractic.museum", -"chocolate.museum", -"christiansburg.museum", -"cincinnati.museum", -"cinema.museum", -"circus.museum", -"civilisation.museum", -"civilization.museum", -"civilwar.museum", -"clinton.museum", -"clock.museum", -"coal.museum", -"coastaldefence.museum", -"cody.museum", -"coldwar.museum", -"collection.museum", -"colonialwilliamsburg.museum", -"coloradoplateau.museum", -"columbia.museum", -"columbus.museum", -"communication.museum", -"communications.museum", -"community.museum", -"computer.museum", -"computerhistory.museum", -"comunicações.museum", -"contemporary.museum", -"contemporaryart.museum", -"convent.museum", -"copenhagen.museum", -"corporation.museum", -"correios-e-telecomunicações.museum", -"corvette.museum", -"costume.museum", -"countryestate.museum", -"county.museum", -"crafts.museum", -"cranbrook.museum", -"creation.museum", -"cultural.museum", -"culturalcenter.museum", -"culture.museum", -"cyber.museum", -"cymru.museum", -"dali.museum", -"dallas.museum", -"database.museum", -"ddr.museum", -"decorativearts.museum", -"delaware.museum", -"delmenhorst.museum", -"denmark.museum", -"depot.museum", -"design.museum", -"detroit.museum", -"dinosaur.museum", -"discovery.museum", -"dolls.museum", -"donostia.museum", -"durham.museum", -"eastafrica.museum", -"eastcoast.museum", -"education.museum", -"educational.museum", -"egyptian.museum", -"eisenbahn.museum", -"elburg.museum", -"elvendrell.museum", -"embroidery.museum", -"encyclopedic.museum", -"england.museum", -"entomology.museum", -"environment.museum", -"environmentalconservation.museum", -"epilepsy.museum", -"essex.museum", -"estate.museum", -"ethnology.museum", -"exeter.museum", -"exhibition.museum", -"family.museum", -"farm.museum", -"farmequipment.museum", -"farmers.museum", -"farmstead.museum", -"field.museum", -"figueres.museum", -"filatelia.museum", -"film.museum", -"fineart.museum", -"finearts.museum", -"finland.museum", -"flanders.museum", -"florida.museum", -"force.museum", -"fortmissoula.museum", -"fortworth.museum", -"foundation.museum", -"francaise.museum", -"frankfurt.museum", -"franziskaner.museum", -"freemasonry.museum", -"freiburg.museum", -"fribourg.museum", -"frog.museum", -"fundacio.museum", -"furniture.museum", -"gallery.museum", -"garden.museum", -"gateway.museum", -"geelvinck.museum", -"gemological.museum", -"geology.museum", -"georgia.museum", -"giessen.museum", -"glas.museum", -"glass.museum", -"gorge.museum", -"grandrapids.museum", -"graz.museum", -"guernsey.museum", -"halloffame.museum", -"hamburg.museum", -"handson.museum", -"harvestcelebration.museum", -"hawaii.museum", -"health.museum", -"heimatunduhren.museum", -"hellas.museum", -"helsinki.museum", -"hembygdsforbund.museum", -"heritage.museum", -"histoire.museum", -"historical.museum", -"historicalsociety.museum", -"historichouses.museum", -"historisch.museum", -"historisches.museum", -"history.museum", -"historyofscience.museum", -"horology.museum", -"house.museum", -"humanities.museum", -"illustration.museum", -"imageandsound.museum", -"indian.museum", -"indiana.museum", -"indianapolis.museum", -"indianmarket.museum", -"intelligence.museum", -"interactive.museum", -"iraq.museum", -"iron.museum", -"isleofman.museum", -"jamison.museum", -"jefferson.museum", -"jerusalem.museum", -"jewelry.museum", -"jewish.museum", -"jewishart.museum", -"jfk.museum", -"journalism.museum", -"judaica.museum", -"judygarland.museum", -"juedisches.museum", -"juif.museum", -"karate.museum", -"karikatur.museum", -"kids.museum", -"koebenhavn.museum", -"koeln.museum", -"kunst.museum", -"kunstsammlung.museum", -"kunstunddesign.museum", -"labor.museum", -"labour.museum", -"lajolla.museum", -"lancashire.museum", -"landes.museum", -"lans.museum", -"läns.museum", -"larsson.museum", -"lewismiller.museum", -"lincoln.museum", -"linz.museum", -"living.museum", -"livinghistory.museum", -"localhistory.museum", -"london.museum", -"losangeles.museum", -"louvre.museum", -"loyalist.museum", -"lucerne.museum", -"luxembourg.museum", -"luzern.museum", -"mad.museum", -"madrid.museum", -"mallorca.museum", -"manchester.museum", -"mansion.museum", -"mansions.museum", -"manx.museum", -"marburg.museum", -"maritime.museum", -"maritimo.museum", -"maryland.museum", -"marylhurst.museum", -"media.museum", -"medical.museum", -"medizinhistorisches.museum", -"meeres.museum", -"memorial.museum", -"mesaverde.museum", -"michigan.museum", -"midatlantic.museum", -"military.museum", -"mill.museum", -"miners.museum", -"mining.museum", -"minnesota.museum", -"missile.museum", -"missoula.museum", -"modern.museum", -"moma.museum", -"money.museum", -"monmouth.museum", -"monticello.museum", -"montreal.museum", -"moscow.museum", -"motorcycle.museum", -"muenchen.museum", -"muenster.museum", -"mulhouse.museum", -"muncie.museum", -"museet.museum", -"museumcenter.museum", -"museumvereniging.museum", -"music.museum", -"national.museum", -"nationalfirearms.museum", -"nationalheritage.museum", -"nativeamerican.museum", -"naturalhistory.museum", -"naturalhistorymuseum.museum", -"naturalsciences.museum", -"nature.museum", -"naturhistorisches.museum", -"natuurwetenschappen.museum", -"naumburg.museum", -"naval.museum", -"nebraska.museum", -"neues.museum", -"newhampshire.museum", -"newjersey.museum", -"newmexico.museum", -"newport.museum", -"newspaper.museum", -"newyork.museum", -"niepce.museum", -"norfolk.museum", -"north.museum", -"nrw.museum", -"nyc.museum", -"nyny.museum", -"oceanographic.museum", -"oceanographique.museum", -"omaha.museum", -"online.museum", -"ontario.museum", -"openair.museum", -"oregon.museum", -"oregontrail.museum", -"otago.museum", -"oxford.museum", -"pacific.museum", -"paderborn.museum", -"palace.museum", -"paleo.museum", -"palmsprings.museum", -"panama.museum", -"paris.museum", -"pasadena.museum", -"pharmacy.museum", -"philadelphia.museum", -"philadelphiaarea.museum", -"philately.museum", -"phoenix.museum", -"photography.museum", -"pilots.museum", -"pittsburgh.museum", -"planetarium.museum", -"plantation.museum", -"plants.museum", -"plaza.museum", -"portal.museum", -"portland.museum", -"portlligat.museum", -"posts-and-telecommunications.museum", -"preservation.museum", -"presidio.museum", -"press.museum", -"project.museum", -"public.museum", -"pubol.museum", -"quebec.museum", -"railroad.museum", -"railway.museum", -"research.museum", -"resistance.museum", -"riodejaneiro.museum", -"rochester.museum", -"rockart.museum", -"roma.museum", -"russia.museum", -"saintlouis.museum", -"salem.museum", -"salvadordali.museum", -"salzburg.museum", -"sandiego.museum", -"sanfrancisco.museum", -"santabarbara.museum", -"santacruz.museum", -"santafe.museum", -"saskatchewan.museum", -"satx.museum", -"savannahga.museum", -"schlesisches.museum", -"schoenbrunn.museum", -"schokoladen.museum", -"school.museum", -"schweiz.museum", -"science.museum", -"scienceandhistory.museum", -"scienceandindustry.museum", -"sciencecenter.museum", -"sciencecenters.museum", -"science-fiction.museum", -"sciencehistory.museum", -"sciences.museum", -"sciencesnaturelles.museum", -"scotland.museum", -"seaport.museum", -"settlement.museum", -"settlers.museum", -"shell.museum", -"sherbrooke.museum", -"sibenik.museum", -"silk.museum", -"ski.museum", -"skole.museum", -"society.museum", -"sologne.museum", -"soundandvision.museum", -"southcarolina.museum", -"southwest.museum", -"space.museum", -"spy.museum", -"square.museum", -"stadt.museum", -"stalbans.museum", -"starnberg.museum", -"state.museum", -"stateofdelaware.museum", -"station.museum", -"steam.museum", -"steiermark.museum", -"stjohn.museum", -"stockholm.museum", -"stpetersburg.museum", -"stuttgart.museum", -"suisse.museum", -"surgeonshall.museum", -"surrey.museum", -"svizzera.museum", -"sweden.museum", -"sydney.museum", -"tank.museum", -"tcm.museum", -"technology.museum", -"telekommunikation.museum", -"television.museum", -"texas.museum", -"textile.museum", -"theater.museum", -"time.museum", -"timekeeping.museum", -"topology.museum", -"torino.museum", -"touch.museum", -"town.museum", -"transport.museum", -"tree.museum", -"trolley.museum", -"trust.museum", -"trustee.museum", -"uhren.museum", -"ulm.museum", -"undersea.museum", -"university.museum", -"usa.museum", -"usantiques.museum", -"usarts.museum", -"uscountryestate.museum", -"usculture.museum", -"usdecorativearts.museum", -"usgarden.museum", -"ushistory.museum", -"ushuaia.museum", -"uslivinghistory.museum", -"utah.museum", -"uvic.museum", -"valley.museum", -"vantaa.museum", -"versailles.museum", -"viking.museum", -"village.museum", -"virginia.museum", -"virtual.museum", -"virtuel.museum", -"vlaanderen.museum", -"volkenkunde.museum", -"wales.museum", -"wallonie.museum", -"war.museum", -"washingtondc.museum", -"watchandclock.museum", -"watch-and-clock.museum", -"western.museum", -"westfalen.museum", -"whaling.museum", -"wildlife.museum", -"williamsburg.museum", -"windmill.museum", -"workshop.museum", -"york.museum", -"yorkshire.museum", -"yosemite.museum", -"youth.museum", -"zoological.museum", -"zoology.museum", -"ירושלים.museum", -"иком.museum", -"mv", -"aero.mv", -"biz.mv", -"com.mv", -"coop.mv", -"edu.mv", -"gov.mv", -"info.mv", -"int.mv", -"mil.mv", -"museum.mv", -"name.mv", -"net.mv", -"org.mv", -"pro.mv", -"mw", -"ac.mw", -"biz.mw", -"co.mw", -"com.mw", -"coop.mw", -"edu.mw", -"gov.mw", -"int.mw", -"museum.mw", -"net.mw", -"org.mw", -"mx", -"com.mx", -"org.mx", -"gob.mx", -"edu.mx", -"net.mx", -"my", -"com.my", -"net.my", -"org.my", -"gov.my", -"edu.my", -"mil.my", -"name.my", -"mz", -"ac.mz", -"adv.mz", -"co.mz", -"edu.mz", -"gov.mz", -"mil.mz", -"net.mz", -"org.mz", -"na", -"info.na", -"pro.na", -"name.na", -"school.na", -"or.na", -"dr.na", -"us.na", -"mx.na", -"ca.na", -"in.na", -"cc.na", -"tv.na", -"ws.na", -"mobi.na", -"co.na", -"com.na", -"org.na", -"name", -"nc", -"asso.nc", -"nom.nc", -"ne", -"net", -"nf", -"com.nf", -"net.nf", -"per.nf", -"rec.nf", -"web.nf", -"arts.nf", -"firm.nf", -"info.nf", -"other.nf", -"store.nf", -"ng", -"com.ng", -"edu.ng", -"gov.ng", -"i.ng", -"mil.ng", -"mobi.ng", -"name.ng", -"net.ng", -"org.ng", -"sch.ng", -"ni", -"ac.ni", -"biz.ni", -"co.ni", -"com.ni", -"edu.ni", -"gob.ni", -"in.ni", -"info.ni", -"int.ni", -"mil.ni", -"net.ni", -"nom.ni", -"org.ni", -"web.ni", -"nl", -"no", -"fhs.no", -"vgs.no", -"fylkesbibl.no", -"folkebibl.no", -"museum.no", -"idrett.no", -"priv.no", -"mil.no", -"stat.no", -"dep.no", -"kommune.no", -"herad.no", -"aa.no", -"ah.no", -"bu.no", -"fm.no", -"hl.no", -"hm.no", -"jan-mayen.no", -"mr.no", -"nl.no", -"nt.no", -"of.no", -"ol.no", -"oslo.no", -"rl.no", -"sf.no", -"st.no", -"svalbard.no", -"tm.no", -"tr.no", -"va.no", -"vf.no", -"gs.aa.no", -"gs.ah.no", -"gs.bu.no", -"gs.fm.no", -"gs.hl.no", -"gs.hm.no", -"gs.jan-mayen.no", -"gs.mr.no", -"gs.nl.no", -"gs.nt.no", -"gs.of.no", -"gs.ol.no", -"gs.oslo.no", -"gs.rl.no", -"gs.sf.no", -"gs.st.no", -"gs.svalbard.no", -"gs.tm.no", -"gs.tr.no", -"gs.va.no", -"gs.vf.no", -"akrehamn.no", -"åkrehamn.no", -"algard.no", -"ålgård.no", -"arna.no", -"brumunddal.no", -"bryne.no", -"bronnoysund.no", -"brønnøysund.no", -"drobak.no", -"drøbak.no", -"egersund.no", -"fetsund.no", -"floro.no", -"florø.no", -"fredrikstad.no", -"hokksund.no", -"honefoss.no", -"hønefoss.no", -"jessheim.no", -"jorpeland.no", -"jørpeland.no", -"kirkenes.no", -"kopervik.no", -"krokstadelva.no", -"langevag.no", -"langevåg.no", -"leirvik.no", -"mjondalen.no", -"mjøndalen.no", -"mo-i-rana.no", -"mosjoen.no", -"mosjøen.no", -"nesoddtangen.no", -"orkanger.no", -"osoyro.no", -"osøyro.no", -"raholt.no", -"råholt.no", -"sandnessjoen.no", -"sandnessjøen.no", -"skedsmokorset.no", -"slattum.no", -"spjelkavik.no", -"stathelle.no", -"stavern.no", -"stjordalshalsen.no", -"stjørdalshalsen.no", -"tananger.no", -"tranby.no", -"vossevangen.no", -"afjord.no", -"åfjord.no", -"agdenes.no", -"al.no", -"ål.no", -"alesund.no", -"ålesund.no", -"alstahaug.no", -"alta.no", -"áltá.no", -"alaheadju.no", -"álaheadju.no", -"alvdal.no", -"amli.no", -"åmli.no", -"amot.no", -"åmot.no", -"andebu.no", -"andoy.no", -"andøy.no", -"andasuolo.no", -"ardal.no", -"årdal.no", -"aremark.no", -"arendal.no", -"ås.no", -"aseral.no", -"åseral.no", -"asker.no", -"askim.no", -"askvoll.no", -"askoy.no", -"askøy.no", -"asnes.no", -"åsnes.no", -"audnedaln.no", -"aukra.no", -"aure.no", -"aurland.no", -"aurskog-holand.no", -"aurskog-høland.no", -"austevoll.no", -"austrheim.no", -"averoy.no", -"averøy.no", -"balestrand.no", -"ballangen.no", -"balat.no", -"bálát.no", -"balsfjord.no", -"bahccavuotna.no", -"báhccavuotna.no", -"bamble.no", -"bardu.no", -"beardu.no", -"beiarn.no", -"bajddar.no", -"bájddar.no", -"baidar.no", -"báidár.no", -"berg.no", -"bergen.no", -"berlevag.no", -"berlevåg.no", -"bearalvahki.no", -"bearalváhki.no", -"bindal.no", -"birkenes.no", -"bjarkoy.no", -"bjarkøy.no", -"bjerkreim.no", -"bjugn.no", -"bodo.no", -"bodø.no", -"badaddja.no", -"bådåddjå.no", -"budejju.no", -"bokn.no", -"bremanger.no", -"bronnoy.no", -"brønnøy.no", -"bygland.no", -"bykle.no", -"barum.no", -"bærum.no", -"bo.telemark.no", -"bø.telemark.no", -"bo.nordland.no", -"bø.nordland.no", -"bievat.no", -"bievát.no", -"bomlo.no", -"bømlo.no", -"batsfjord.no", -"båtsfjord.no", -"bahcavuotna.no", -"báhcavuotna.no", -"dovre.no", -"drammen.no", -"drangedal.no", -"dyroy.no", -"dyrøy.no", -"donna.no", -"dønna.no", -"eid.no", -"eidfjord.no", -"eidsberg.no", -"eidskog.no", -"eidsvoll.no", -"eigersund.no", -"elverum.no", -"enebakk.no", -"engerdal.no", -"etne.no", -"etnedal.no", -"evenes.no", -"evenassi.no", -"evenášši.no", -"evje-og-hornnes.no", -"farsund.no", -"fauske.no", -"fuossko.no", -"fuoisku.no", -"fedje.no", -"fet.no", -"finnoy.no", -"finnøy.no", -"fitjar.no", -"fjaler.no", -"fjell.no", -"flakstad.no", -"flatanger.no", -"flekkefjord.no", -"flesberg.no", -"flora.no", -"fla.no", -"flå.no", -"folldal.no", -"forsand.no", -"fosnes.no", -"frei.no", -"frogn.no", -"froland.no", -"frosta.no", -"frana.no", -"fræna.no", -"froya.no", -"frøya.no", -"fusa.no", -"fyresdal.no", -"forde.no", -"førde.no", -"gamvik.no", -"gangaviika.no", -"gáŋgaviika.no", -"gaular.no", -"gausdal.no", -"gildeskal.no", -"gildeskål.no", -"giske.no", -"gjemnes.no", -"gjerdrum.no", -"gjerstad.no", -"gjesdal.no", -"gjovik.no", -"gjøvik.no", -"gloppen.no", -"gol.no", -"gran.no", -"grane.no", -"granvin.no", -"gratangen.no", -"grimstad.no", -"grong.no", -"kraanghke.no", -"kråanghke.no", -"grue.no", -"gulen.no", -"hadsel.no", -"halden.no", -"halsa.no", -"hamar.no", -"hamaroy.no", -"habmer.no", -"hábmer.no", -"hapmir.no", -"hápmir.no", -"hammerfest.no", -"hammarfeasta.no", -"hámmárfeasta.no", -"haram.no", -"hareid.no", -"harstad.no", -"hasvik.no", -"aknoluokta.no", -"ákŋoluokta.no", -"hattfjelldal.no", -"aarborte.no", -"haugesund.no", -"hemne.no", -"hemnes.no", -"hemsedal.no", -"heroy.more-og-romsdal.no", -"herøy.møre-og-romsdal.no", -"heroy.nordland.no", -"herøy.nordland.no", -"hitra.no", -"hjartdal.no", -"hjelmeland.no", -"hobol.no", -"hobøl.no", -"hof.no", -"hol.no", -"hole.no", -"holmestrand.no", -"holtalen.no", -"holtålen.no", -"hornindal.no", -"horten.no", -"hurdal.no", -"hurum.no", -"hvaler.no", -"hyllestad.no", -"hagebostad.no", -"hægebostad.no", -"hoyanger.no", -"høyanger.no", -"hoylandet.no", -"høylandet.no", -"ha.no", -"hå.no", -"ibestad.no", -"inderoy.no", -"inderøy.no", -"iveland.no", -"jevnaker.no", -"jondal.no", -"jolster.no", -"jølster.no", -"karasjok.no", -"karasjohka.no", -"kárášjohka.no", -"karlsoy.no", -"galsa.no", -"gálsá.no", -"karmoy.no", -"karmøy.no", -"kautokeino.no", -"guovdageaidnu.no", -"klepp.no", -"klabu.no", -"klæbu.no", -"kongsberg.no", -"kongsvinger.no", -"kragero.no", -"kragerø.no", -"kristiansand.no", -"kristiansund.no", -"krodsherad.no", -"krødsherad.no", -"kvalsund.no", -"rahkkeravju.no", -"ráhkkerávju.no", -"kvam.no", -"kvinesdal.no", -"kvinnherad.no", -"kviteseid.no", -"kvitsoy.no", -"kvitsøy.no", -"kvafjord.no", -"kvæfjord.no", -"giehtavuoatna.no", -"kvanangen.no", -"kvænangen.no", -"navuotna.no", -"návuotna.no", -"kafjord.no", -"kåfjord.no", -"gaivuotna.no", -"gáivuotna.no", -"larvik.no", -"lavangen.no", -"lavagis.no", -"loabat.no", -"loabát.no", -"lebesby.no", -"davvesiida.no", -"leikanger.no", -"leirfjord.no", -"leka.no", -"leksvik.no", -"lenvik.no", -"leangaviika.no", -"leaŋgaviika.no", -"lesja.no", -"levanger.no", -"lier.no", -"lierne.no", -"lillehammer.no", -"lillesand.no", -"lindesnes.no", -"lindas.no", -"lindås.no", -"lom.no", -"loppa.no", -"lahppi.no", -"láhppi.no", -"lund.no", -"lunner.no", -"luroy.no", -"lurøy.no", -"luster.no", -"lyngdal.no", -"lyngen.no", -"ivgu.no", -"lardal.no", -"lerdal.no", -"lærdal.no", -"lodingen.no", -"lødingen.no", -"lorenskog.no", -"lørenskog.no", -"loten.no", -"løten.no", -"malvik.no", -"masoy.no", -"måsøy.no", -"muosat.no", -"muosát.no", -"mandal.no", -"marker.no", -"marnardal.no", -"masfjorden.no", -"meland.no", -"meldal.no", -"melhus.no", -"meloy.no", -"meløy.no", -"meraker.no", -"meråker.no", -"moareke.no", -"moåreke.no", -"midsund.no", -"midtre-gauldal.no", -"modalen.no", -"modum.no", -"molde.no", -"moskenes.no", -"moss.no", -"mosvik.no", -"malselv.no", -"målselv.no", -"malatvuopmi.no", -"málatvuopmi.no", -"namdalseid.no", -"aejrie.no", -"namsos.no", -"namsskogan.no", -"naamesjevuemie.no", -"nååmesjevuemie.no", -"laakesvuemie.no", -"nannestad.no", -"narvik.no", -"narviika.no", -"naustdal.no", -"nedre-eiker.no", -"nes.akershus.no", -"nes.buskerud.no", -"nesna.no", -"nesodden.no", -"nesseby.no", -"unjarga.no", -"unjárga.no", -"nesset.no", -"nissedal.no", -"nittedal.no", -"nord-aurdal.no", -"nord-fron.no", -"nord-odal.no", -"norddal.no", -"nordkapp.no", -"davvenjarga.no", -"davvenjárga.no", -"nordre-land.no", -"nordreisa.no", -"raisa.no", -"ráisa.no", -"nore-og-uvdal.no", -"notodden.no", -"naroy.no", -"nærøy.no", -"notteroy.no", -"nøtterøy.no", -"odda.no", -"oksnes.no", -"øksnes.no", -"oppdal.no", -"oppegard.no", -"oppegård.no", -"orkdal.no", -"orland.no", -"ørland.no", -"orskog.no", -"ørskog.no", -"orsta.no", -"ørsta.no", -"os.hedmark.no", -"os.hordaland.no", -"osen.no", -"osteroy.no", -"osterøy.no", -"ostre-toten.no", -"østre-toten.no", -"overhalla.no", -"ovre-eiker.no", -"øvre-eiker.no", -"oyer.no", -"øyer.no", -"oygarden.no", -"øygarden.no", -"oystre-slidre.no", -"øystre-slidre.no", -"porsanger.no", -"porsangu.no", -"porsáŋgu.no", -"porsgrunn.no", -"radoy.no", -"radøy.no", -"rakkestad.no", -"rana.no", -"ruovat.no", -"randaberg.no", -"rauma.no", -"rendalen.no", -"rennebu.no", -"rennesoy.no", -"rennesøy.no", -"rindal.no", -"ringebu.no", -"ringerike.no", -"ringsaker.no", -"rissa.no", -"risor.no", -"risør.no", -"roan.no", -"rollag.no", -"rygge.no", -"ralingen.no", -"rælingen.no", -"rodoy.no", -"rødøy.no", -"romskog.no", -"rømskog.no", -"roros.no", -"røros.no", -"rost.no", -"røst.no", -"royken.no", -"røyken.no", -"royrvik.no", -"røyrvik.no", -"rade.no", -"råde.no", -"salangen.no", -"siellak.no", -"saltdal.no", -"salat.no", -"sálát.no", -"sálat.no", -"samnanger.no", -"sande.more-og-romsdal.no", -"sande.møre-og-romsdal.no", -"sande.vestfold.no", -"sandefjord.no", -"sandnes.no", -"sandoy.no", -"sandøy.no", -"sarpsborg.no", -"sauda.no", -"sauherad.no", -"sel.no", -"selbu.no", -"selje.no", -"seljord.no", -"sigdal.no", -"siljan.no", -"sirdal.no", -"skaun.no", -"skedsmo.no", -"ski.no", -"skien.no", -"skiptvet.no", -"skjervoy.no", -"skjervøy.no", -"skierva.no", -"skiervá.no", -"skjak.no", -"skjåk.no", -"skodje.no", -"skanland.no", -"skånland.no", -"skanit.no", -"skánit.no", -"smola.no", -"smøla.no", -"snillfjord.no", -"snasa.no", -"snåsa.no", -"snoasa.no", -"snaase.no", -"snåase.no", -"sogndal.no", -"sokndal.no", -"sola.no", -"solund.no", -"songdalen.no", -"sortland.no", -"spydeberg.no", -"stange.no", -"stavanger.no", -"steigen.no", -"steinkjer.no", -"stjordal.no", -"stjørdal.no", -"stokke.no", -"stor-elvdal.no", -"stord.no", -"stordal.no", -"storfjord.no", -"omasvuotna.no", -"strand.no", -"stranda.no", -"stryn.no", -"sula.no", -"suldal.no", -"sund.no", -"sunndal.no", -"surnadal.no", -"sveio.no", -"svelvik.no", -"sykkylven.no", -"sogne.no", -"søgne.no", -"somna.no", -"sømna.no", -"sondre-land.no", -"søndre-land.no", -"sor-aurdal.no", -"sør-aurdal.no", -"sor-fron.no", -"sør-fron.no", -"sor-odal.no", -"sør-odal.no", -"sor-varanger.no", -"sør-varanger.no", -"matta-varjjat.no", -"mátta-várjjat.no", -"sorfold.no", -"sørfold.no", -"sorreisa.no", -"sørreisa.no", -"sorum.no", -"sørum.no", -"tana.no", -"deatnu.no", -"time.no", -"tingvoll.no", -"tinn.no", -"tjeldsund.no", -"dielddanuorri.no", -"tjome.no", -"tjøme.no", -"tokke.no", -"tolga.no", -"torsken.no", -"tranoy.no", -"tranøy.no", -"tromso.no", -"tromsø.no", -"tromsa.no", -"romsa.no", -"trondheim.no", -"troandin.no", -"trysil.no", -"trana.no", -"træna.no", -"trogstad.no", -"trøgstad.no", -"tvedestrand.no", -"tydal.no", -"tynset.no", -"tysfjord.no", -"divtasvuodna.no", -"divttasvuotna.no", -"tysnes.no", -"tysvar.no", -"tysvær.no", -"tonsberg.no", -"tønsberg.no", -"ullensaker.no", -"ullensvang.no", -"ulvik.no", -"utsira.no", -"vadso.no", -"vadsø.no", -"cahcesuolo.no", -"čáhcesuolo.no", -"vaksdal.no", -"valle.no", -"vang.no", -"vanylven.no", -"vardo.no", -"vardø.no", -"varggat.no", -"várggát.no", -"vefsn.no", -"vaapste.no", -"vega.no", -"vegarshei.no", -"vegårshei.no", -"vennesla.no", -"verdal.no", -"verran.no", -"vestby.no", -"vestnes.no", -"vestre-slidre.no", -"vestre-toten.no", -"vestvagoy.no", -"vestvågøy.no", -"vevelstad.no", -"vik.no", -"vikna.no", -"vindafjord.no", -"volda.no", -"voss.no", -"varoy.no", -"værøy.no", -"vagan.no", -"vågan.no", -"voagat.no", -"vagsoy.no", -"vågsøy.no", -"vaga.no", -"vågå.no", -"valer.ostfold.no", -"våler.østfold.no", -"valer.hedmark.no", -"våler.hedmark.no", -"*.np", -"nr", -"biz.nr", -"info.nr", -"gov.nr", -"edu.nr", -"org.nr", -"net.nr", -"com.nr", -"nu", -"nz", -"ac.nz", -"co.nz", -"cri.nz", -"geek.nz", -"gen.nz", -"govt.nz", -"health.nz", -"iwi.nz", -"kiwi.nz", -"maori.nz", -"mil.nz", -"māori.nz", -"net.nz", -"org.nz", -"parliament.nz", -"school.nz", -"om", -"co.om", -"com.om", -"edu.om", -"gov.om", -"med.om", -"museum.om", -"net.om", -"org.om", -"pro.om", -"onion", -"org", -"pa", -"ac.pa", -"gob.pa", -"com.pa", -"org.pa", -"sld.pa", -"edu.pa", -"net.pa", -"ing.pa", -"abo.pa", -"med.pa", -"nom.pa", -"pe", -"edu.pe", -"gob.pe", -"nom.pe", -"mil.pe", -"org.pe", -"com.pe", -"net.pe", -"pf", -"com.pf", -"org.pf", -"edu.pf", -"*.pg", -"ph", -"com.ph", -"net.ph", -"org.ph", -"gov.ph", -"edu.ph", -"ngo.ph", -"mil.ph", -"i.ph", -"pk", -"com.pk", -"net.pk", -"edu.pk", -"org.pk", -"fam.pk", -"biz.pk", -"web.pk", -"gov.pk", -"gob.pk", -"gok.pk", -"gon.pk", -"gop.pk", -"gos.pk", -"info.pk", -"pl", -"com.pl", -"net.pl", -"org.pl", -"aid.pl", -"agro.pl", -"atm.pl", -"auto.pl", -"biz.pl", -"edu.pl", -"gmina.pl", -"gsm.pl", -"info.pl", -"mail.pl", -"miasta.pl", -"media.pl", -"mil.pl", -"nieruchomosci.pl", -"nom.pl", -"pc.pl", -"powiat.pl", -"priv.pl", -"realestate.pl", -"rel.pl", -"sex.pl", -"shop.pl", -"sklep.pl", -"sos.pl", -"szkola.pl", -"targi.pl", -"tm.pl", -"tourism.pl", -"travel.pl", -"turystyka.pl", -"gov.pl", -"ap.gov.pl", -"ic.gov.pl", -"is.gov.pl", -"us.gov.pl", -"kmpsp.gov.pl", -"kppsp.gov.pl", -"kwpsp.gov.pl", -"psp.gov.pl", -"wskr.gov.pl", -"kwp.gov.pl", -"mw.gov.pl", -"ug.gov.pl", -"um.gov.pl", -"umig.gov.pl", -"ugim.gov.pl", -"upow.gov.pl", -"uw.gov.pl", -"starostwo.gov.pl", -"pa.gov.pl", -"po.gov.pl", -"psse.gov.pl", -"pup.gov.pl", -"rzgw.gov.pl", -"sa.gov.pl", -"so.gov.pl", -"sr.gov.pl", -"wsa.gov.pl", -"sko.gov.pl", -"uzs.gov.pl", -"wiih.gov.pl", -"winb.gov.pl", -"pinb.gov.pl", -"wios.gov.pl", -"witd.gov.pl", -"wzmiuw.gov.pl", -"piw.gov.pl", -"wiw.gov.pl", -"griw.gov.pl", -"wif.gov.pl", -"oum.gov.pl", -"sdn.gov.pl", -"zp.gov.pl", -"uppo.gov.pl", -"mup.gov.pl", -"wuoz.gov.pl", -"konsulat.gov.pl", -"oirm.gov.pl", -"augustow.pl", -"babia-gora.pl", -"bedzin.pl", -"beskidy.pl", -"bialowieza.pl", -"bialystok.pl", -"bielawa.pl", -"bieszczady.pl", -"boleslawiec.pl", -"bydgoszcz.pl", -"bytom.pl", -"cieszyn.pl", -"czeladz.pl", -"czest.pl", -"dlugoleka.pl", -"elblag.pl", -"elk.pl", -"glogow.pl", -"gniezno.pl", -"gorlice.pl", -"grajewo.pl", -"ilawa.pl", -"jaworzno.pl", -"jelenia-gora.pl", -"jgora.pl", -"kalisz.pl", -"kazimierz-dolny.pl", -"karpacz.pl", -"kartuzy.pl", -"kaszuby.pl", -"katowice.pl", -"kepno.pl", -"ketrzyn.pl", -"klodzko.pl", -"kobierzyce.pl", -"kolobrzeg.pl", -"konin.pl", -"konskowola.pl", -"kutno.pl", -"lapy.pl", -"lebork.pl", -"legnica.pl", -"lezajsk.pl", -"limanowa.pl", -"lomza.pl", -"lowicz.pl", -"lubin.pl", -"lukow.pl", -"malbork.pl", -"malopolska.pl", -"mazowsze.pl", -"mazury.pl", -"mielec.pl", -"mielno.pl", -"mragowo.pl", -"naklo.pl", -"nowaruda.pl", -"nysa.pl", -"olawa.pl", -"olecko.pl", -"olkusz.pl", -"olsztyn.pl", -"opoczno.pl", -"opole.pl", -"ostroda.pl", -"ostroleka.pl", -"ostrowiec.pl", -"ostrowwlkp.pl", -"pila.pl", -"pisz.pl", -"podhale.pl", -"podlasie.pl", -"polkowice.pl", -"pomorze.pl", -"pomorskie.pl", -"prochowice.pl", -"pruszkow.pl", -"przeworsk.pl", -"pulawy.pl", -"radom.pl", -"rawa-maz.pl", -"rybnik.pl", -"rzeszow.pl", -"sanok.pl", -"sejny.pl", -"slask.pl", -"slupsk.pl", -"sosnowiec.pl", -"stalowa-wola.pl", -"skoczow.pl", -"starachowice.pl", -"stargard.pl", -"suwalki.pl", -"swidnica.pl", -"swiebodzin.pl", -"swinoujscie.pl", -"szczecin.pl", -"szczytno.pl", -"tarnobrzeg.pl", -"tgory.pl", -"turek.pl", -"tychy.pl", -"ustka.pl", -"walbrzych.pl", -"warmia.pl", -"warszawa.pl", -"waw.pl", -"wegrow.pl", -"wielun.pl", -"wlocl.pl", -"wloclawek.pl", -"wodzislaw.pl", -"wolomin.pl", -"wroclaw.pl", -"zachpomor.pl", -"zagan.pl", -"zarow.pl", -"zgora.pl", -"zgorzelec.pl", -"pm", -"pn", -"gov.pn", -"co.pn", -"org.pn", -"edu.pn", -"net.pn", -"post", -"pr", -"com.pr", -"net.pr", -"org.pr", -"gov.pr", -"edu.pr", -"isla.pr", -"pro.pr", -"biz.pr", -"info.pr", -"name.pr", -"est.pr", -"prof.pr", -"ac.pr", -"pro", -"aaa.pro", -"aca.pro", -"acct.pro", -"avocat.pro", -"bar.pro", -"cpa.pro", -"eng.pro", -"jur.pro", -"law.pro", -"med.pro", -"recht.pro", -"ps", -"edu.ps", -"gov.ps", -"sec.ps", -"plo.ps", -"com.ps", -"org.ps", -"net.ps", -"pt", -"net.pt", -"gov.pt", -"org.pt", -"edu.pt", -"int.pt", -"publ.pt", -"com.pt", -"nome.pt", -"pw", -"co.pw", -"ne.pw", -"or.pw", -"ed.pw", -"go.pw", -"belau.pw", -"py", -"com.py", -"coop.py", -"edu.py", -"gov.py", -"mil.py", -"net.py", -"org.py", -"qa", -"com.qa", -"edu.qa", -"gov.qa", -"mil.qa", -"name.qa", -"net.qa", -"org.qa", -"sch.qa", -"re", -"asso.re", -"com.re", -"nom.re", -"ro", -"arts.ro", -"com.ro", -"firm.ro", -"info.ro", -"nom.ro", -"nt.ro", -"org.ro", -"rec.ro", -"store.ro", -"tm.ro", -"www.ro", -"rs", -"ac.rs", -"co.rs", -"edu.rs", -"gov.rs", -"in.rs", -"org.rs", -"ru", -"rw", -"ac.rw", -"co.rw", -"coop.rw", -"gov.rw", -"mil.rw", -"net.rw", -"org.rw", -"sa", -"com.sa", -"net.sa", -"org.sa", -"gov.sa", -"med.sa", -"pub.sa", -"edu.sa", -"sch.sa", -"sb", -"com.sb", -"edu.sb", -"gov.sb", -"net.sb", -"org.sb", -"sc", -"com.sc", -"gov.sc", -"net.sc", -"org.sc", -"edu.sc", -"sd", -"com.sd", -"net.sd", -"org.sd", -"edu.sd", -"med.sd", -"tv.sd", -"gov.sd", -"info.sd", -"se", -"a.se", -"ac.se", -"b.se", -"bd.se", -"brand.se", -"c.se", -"d.se", -"e.se", -"f.se", -"fh.se", -"fhsk.se", -"fhv.se", -"g.se", -"h.se", -"i.se", -"k.se", -"komforb.se", -"kommunalforbund.se", -"komvux.se", -"l.se", -"lanbib.se", -"m.se", -"n.se", -"naturbruksgymn.se", -"o.se", -"org.se", -"p.se", -"parti.se", -"pp.se", -"press.se", -"r.se", -"s.se", -"t.se", -"tm.se", -"u.se", -"w.se", -"x.se", -"y.se", -"z.se", -"sg", -"com.sg", -"net.sg", -"org.sg", -"gov.sg", -"edu.sg", -"per.sg", -"sh", -"com.sh", -"net.sh", -"gov.sh", -"org.sh", -"mil.sh", -"si", -"sj", -"sk", -"sl", -"com.sl", -"net.sl", -"edu.sl", -"gov.sl", -"org.sl", -"sm", -"sn", -"art.sn", -"com.sn", -"edu.sn", -"gouv.sn", -"org.sn", -"perso.sn", -"univ.sn", -"so", -"com.so", -"edu.so", -"gov.so", -"me.so", -"net.so", -"org.so", -"sr", -"ss", -"biz.ss", -"com.ss", -"edu.ss", -"gov.ss", -"net.ss", -"org.ss", -"st", -"co.st", -"com.st", -"consulado.st", -"edu.st", -"embaixada.st", -"gov.st", -"mil.st", -"net.st", -"org.st", -"principe.st", -"saotome.st", -"store.st", -"su", -"sv", -"com.sv", -"edu.sv", -"gob.sv", -"org.sv", -"red.sv", -"sx", -"gov.sx", -"sy", -"edu.sy", -"gov.sy", -"net.sy", -"mil.sy", -"com.sy", -"org.sy", -"sz", -"co.sz", -"ac.sz", -"org.sz", -"tc", -"td", -"tel", -"tf", -"tg", -"th", -"ac.th", -"co.th", -"go.th", -"in.th", -"mi.th", -"net.th", -"or.th", -"tj", -"ac.tj", -"biz.tj", -"co.tj", -"com.tj", -"edu.tj", -"go.tj", -"gov.tj", -"int.tj", -"mil.tj", -"name.tj", -"net.tj", -"nic.tj", -"org.tj", -"test.tj", -"web.tj", -"tk", -"tl", -"gov.tl", -"tm", -"com.tm", -"co.tm", -"org.tm", -"net.tm", -"nom.tm", -"gov.tm", -"mil.tm", -"edu.tm", -"tn", -"com.tn", -"ens.tn", -"fin.tn", -"gov.tn", -"ind.tn", -"intl.tn", -"nat.tn", -"net.tn", -"org.tn", -"info.tn", -"perso.tn", -"tourism.tn", -"edunet.tn", -"rnrt.tn", -"rns.tn", -"rnu.tn", -"mincom.tn", -"agrinet.tn", -"defense.tn", -"turen.tn", -"to", -"com.to", -"gov.to", -"net.to", -"org.to", -"edu.to", -"mil.to", -"tr", -"av.tr", -"bbs.tr", -"bel.tr", -"biz.tr", -"com.tr", -"dr.tr", -"edu.tr", -"gen.tr", -"gov.tr", -"info.tr", -"mil.tr", -"k12.tr", -"kep.tr", -"name.tr", -"net.tr", -"org.tr", -"pol.tr", -"tel.tr", -"tsk.tr", -"tv.tr", -"web.tr", -"nc.tr", -"gov.nc.tr", -"tt", -"co.tt", -"com.tt", -"org.tt", -"net.tt", -"biz.tt", -"info.tt", -"pro.tt", -"int.tt", -"coop.tt", -"jobs.tt", -"mobi.tt", -"travel.tt", -"museum.tt", -"aero.tt", -"name.tt", -"gov.tt", -"edu.tt", -"tv", -"tw", -"edu.tw", -"gov.tw", -"mil.tw", -"com.tw", -"net.tw", -"org.tw", -"idv.tw", -"game.tw", -"ebiz.tw", -"club.tw", -"網路.tw", -"組織.tw", -"商業.tw", -"tz", -"ac.tz", -"co.tz", -"go.tz", -"hotel.tz", -"info.tz", -"me.tz", -"mil.tz", -"mobi.tz", -"ne.tz", -"or.tz", -"sc.tz", -"tv.tz", -"ua", -"com.ua", -"edu.ua", -"gov.ua", -"in.ua", -"net.ua", -"org.ua", -"cherkassy.ua", -"cherkasy.ua", -"chernigov.ua", -"chernihiv.ua", -"chernivtsi.ua", -"chernovtsy.ua", -"ck.ua", -"cn.ua", -"cr.ua", -"crimea.ua", -"cv.ua", -"dn.ua", -"dnepropetrovsk.ua", -"dnipropetrovsk.ua", -"dominic.ua", -"donetsk.ua", -"dp.ua", -"if.ua", -"ivano-frankivsk.ua", -"kh.ua", -"kharkiv.ua", -"kharkov.ua", -"kherson.ua", -"khmelnitskiy.ua", -"khmelnytskyi.ua", -"kiev.ua", -"kirovograd.ua", -"km.ua", -"kr.ua", -"krym.ua", -"ks.ua", -"kv.ua", -"kyiv.ua", -"lg.ua", -"lt.ua", -"lugansk.ua", -"lutsk.ua", -"lv.ua", -"lviv.ua", -"mk.ua", -"mykolaiv.ua", -"nikolaev.ua", -"od.ua", -"odesa.ua", -"odessa.ua", -"pl.ua", -"poltava.ua", -"rivne.ua", -"rovno.ua", -"rv.ua", -"sb.ua", -"sebastopol.ua", -"sevastopol.ua", -"sm.ua", -"sumy.ua", -"te.ua", -"ternopil.ua", -"uz.ua", -"uzhgorod.ua", -"vinnica.ua", -"vinnytsia.ua", -"vn.ua", -"volyn.ua", -"yalta.ua", -"zaporizhzhe.ua", -"zaporizhzhia.ua", -"zhitomir.ua", -"zhytomyr.ua", -"zp.ua", -"zt.ua", -"ug", -"co.ug", -"or.ug", -"ac.ug", -"sc.ug", -"go.ug", -"ne.ug", -"com.ug", -"org.ug", -"uk", -"ac.uk", -"co.uk", -"gov.uk", -"ltd.uk", -"me.uk", -"net.uk", -"nhs.uk", -"org.uk", -"plc.uk", -"police.uk", -"*.sch.uk", -"us", -"dni.us", -"fed.us", -"isa.us", -"kids.us", -"nsn.us", -"ak.us", -"al.us", -"ar.us", -"as.us", -"az.us", -"ca.us", -"co.us", -"ct.us", -"dc.us", -"de.us", -"fl.us", -"ga.us", -"gu.us", -"hi.us", -"ia.us", -"id.us", -"il.us", -"in.us", -"ks.us", -"ky.us", -"la.us", -"ma.us", -"md.us", -"me.us", -"mi.us", -"mn.us", -"mo.us", -"ms.us", -"mt.us", -"nc.us", -"nd.us", -"ne.us", -"nh.us", -"nj.us", -"nm.us", -"nv.us", -"ny.us", -"oh.us", -"ok.us", -"or.us", -"pa.us", -"pr.us", -"ri.us", -"sc.us", -"sd.us", -"tn.us", -"tx.us", -"ut.us", -"vi.us", -"vt.us", -"va.us", -"wa.us", -"wi.us", -"wv.us", -"wy.us", -"k12.ak.us", -"k12.al.us", -"k12.ar.us", -"k12.as.us", -"k12.az.us", -"k12.ca.us", -"k12.co.us", -"k12.ct.us", -"k12.dc.us", -"k12.de.us", -"k12.fl.us", -"k12.ga.us", -"k12.gu.us", -"k12.ia.us", -"k12.id.us", -"k12.il.us", -"k12.in.us", -"k12.ks.us", -"k12.ky.us", -"k12.la.us", -"k12.ma.us", -"k12.md.us", -"k12.me.us", -"k12.mi.us", -"k12.mn.us", -"k12.mo.us", -"k12.ms.us", -"k12.mt.us", -"k12.nc.us", -"k12.ne.us", -"k12.nh.us", -"k12.nj.us", -"k12.nm.us", -"k12.nv.us", -"k12.ny.us", -"k12.oh.us", -"k12.ok.us", -"k12.or.us", -"k12.pa.us", -"k12.pr.us", -"k12.ri.us", -"k12.sc.us", -"k12.tn.us", -"k12.tx.us", -"k12.ut.us", -"k12.vi.us", -"k12.vt.us", -"k12.va.us", -"k12.wa.us", -"k12.wi.us", -"k12.wy.us", -"cc.ak.us", -"cc.al.us", -"cc.ar.us", -"cc.as.us", -"cc.az.us", -"cc.ca.us", -"cc.co.us", -"cc.ct.us", -"cc.dc.us", -"cc.de.us", -"cc.fl.us", -"cc.ga.us", -"cc.gu.us", -"cc.hi.us", -"cc.ia.us", -"cc.id.us", -"cc.il.us", -"cc.in.us", -"cc.ks.us", -"cc.ky.us", -"cc.la.us", -"cc.ma.us", -"cc.md.us", -"cc.me.us", -"cc.mi.us", -"cc.mn.us", -"cc.mo.us", -"cc.ms.us", -"cc.mt.us", -"cc.nc.us", -"cc.nd.us", -"cc.ne.us", -"cc.nh.us", -"cc.nj.us", -"cc.nm.us", -"cc.nv.us", -"cc.ny.us", -"cc.oh.us", -"cc.ok.us", -"cc.or.us", -"cc.pa.us", -"cc.pr.us", -"cc.ri.us", -"cc.sc.us", -"cc.sd.us", -"cc.tn.us", -"cc.tx.us", -"cc.ut.us", -"cc.vi.us", -"cc.vt.us", -"cc.va.us", -"cc.wa.us", -"cc.wi.us", -"cc.wv.us", -"cc.wy.us", -"lib.ak.us", -"lib.al.us", -"lib.ar.us", -"lib.as.us", -"lib.az.us", -"lib.ca.us", -"lib.co.us", -"lib.ct.us", -"lib.dc.us", -"lib.fl.us", -"lib.ga.us", -"lib.gu.us", -"lib.hi.us", -"lib.ia.us", -"lib.id.us", -"lib.il.us", -"lib.in.us", -"lib.ks.us", -"lib.ky.us", -"lib.la.us", -"lib.ma.us", -"lib.md.us", -"lib.me.us", -"lib.mi.us", -"lib.mn.us", -"lib.mo.us", -"lib.ms.us", -"lib.mt.us", -"lib.nc.us", -"lib.nd.us", -"lib.ne.us", -"lib.nh.us", -"lib.nj.us", -"lib.nm.us", -"lib.nv.us", -"lib.ny.us", -"lib.oh.us", -"lib.ok.us", -"lib.or.us", -"lib.pa.us", -"lib.pr.us", -"lib.ri.us", -"lib.sc.us", -"lib.sd.us", -"lib.tn.us", -"lib.tx.us", -"lib.ut.us", -"lib.vi.us", -"lib.vt.us", -"lib.va.us", -"lib.wa.us", -"lib.wi.us", -"lib.wy.us", -"pvt.k12.ma.us", -"chtr.k12.ma.us", -"paroch.k12.ma.us", -"ann-arbor.mi.us", -"cog.mi.us", -"dst.mi.us", -"eaton.mi.us", -"gen.mi.us", -"mus.mi.us", -"tec.mi.us", -"washtenaw.mi.us", -"uy", -"com.uy", -"edu.uy", -"gub.uy", -"mil.uy", -"net.uy", -"org.uy", -"uz", -"co.uz", -"com.uz", -"net.uz", -"org.uz", -"va", -"vc", -"com.vc", -"net.vc", -"org.vc", -"gov.vc", -"mil.vc", -"edu.vc", -"ve", -"arts.ve", -"co.ve", -"com.ve", -"e12.ve", -"edu.ve", -"firm.ve", -"gob.ve", -"gov.ve", -"info.ve", -"int.ve", -"mil.ve", -"net.ve", -"org.ve", -"rec.ve", -"store.ve", -"tec.ve", -"web.ve", -"vg", -"vi", -"co.vi", -"com.vi", -"k12.vi", -"net.vi", -"org.vi", -"vn", -"com.vn", -"net.vn", -"org.vn", -"edu.vn", -"gov.vn", -"int.vn", -"ac.vn", -"biz.vn", -"info.vn", -"name.vn", -"pro.vn", -"health.vn", -"vu", -"com.vu", -"edu.vu", -"net.vu", -"org.vu", -"wf", -"ws", -"com.ws", -"net.ws", -"org.ws", -"gov.ws", -"edu.ws", -"yt", -"امارات", -"հայ", -"বাংলা", -"бг", -"бел", -"中国", -"中國", -"الجزائر", -"مصر", -"ею", -"ευ", -"موريتانيا", -"გე", -"ελ", -"香港", -"公司.香港", -"教育.香港", -"政府.香港", -"個人.香港", -"網絡.香港", -"組織.香港", -"ಭಾರತ", -"ଭାରତ", -"ভাৰত", -"भारतम्", -"भारोत", -"ڀارت", -"ഭാരതം", -"भारत", -"بارت", -"بھارت", -"భారత్", -"ભારત", -"ਭਾਰਤ", -"ভারত", -"இந்தியா", -"ایران", -"ايران", -"عراق", -"الاردن", -"한국", -"қаз", -"ලංකා", -"இலங்கை", -"المغرب", -"мкд", -"мон", -"澳門", -"澳门", -"مليسيا", -"عمان", -"پاکستان", -"پاكستان", -"فلسطين", -"срб", -"пр.срб", -"орг.срб", -"обр.срб", -"од.срб", -"упр.срб", -"ак.срб", -"рф", -"قطر", -"السعودية", -"السعودیة", -"السعودیۃ", -"السعوديه", -"سودان", -"新加坡", -"சிங்கப்பூர்", -"سورية", -"سوريا", -"ไทย", -"ศึกษา.ไทย", -"ธุรกิจ.ไทย", -"รัฐบาล.ไทย", -"ทหาร.ไทย", -"เน็ต.ไทย", -"องค์กร.ไทย", -"تونس", -"台灣", -"台湾", -"臺灣", -"укр", -"اليمن", -"xxx", -"*.ye", -"ac.za", -"agric.za", -"alt.za", -"co.za", -"edu.za", -"gov.za", -"grondar.za", -"law.za", -"mil.za", -"net.za", -"ngo.za", -"nic.za", -"nis.za", -"nom.za", -"org.za", -"school.za", -"tm.za", -"web.za", -"zm", -"ac.zm", -"biz.zm", -"co.zm", -"com.zm", -"edu.zm", -"gov.zm", -"info.zm", -"mil.zm", -"net.zm", -"org.zm", -"sch.zm", -"zw", -"ac.zw", -"co.zw", -"gov.zw", -"mil.zw", -"org.zw", -"aaa", -"aarp", -"abarth", -"abb", -"abbott", -"abbvie", -"abc", -"able", -"abogado", -"abudhabi", -"academy", -"accenture", -"accountant", -"accountants", -"aco", -"actor", -"adac", -"ads", -"adult", -"aeg", -"aetna", -"afamilycompany", -"afl", -"africa", -"agakhan", -"agency", -"aig", -"aigo", -"airbus", -"airforce", -"airtel", -"akdn", -"alfaromeo", -"alibaba", -"alipay", -"allfinanz", -"allstate", -"ally", -"alsace", -"alstom", -"amazon", -"americanexpress", -"americanfamily", -"amex", -"amfam", -"amica", -"amsterdam", -"analytics", -"android", -"anquan", -"anz", -"aol", -"apartments", -"app", -"apple", -"aquarelle", -"arab", -"aramco", -"archi", -"army", -"art", -"arte", -"asda", -"associates", -"athleta", -"attorney", -"auction", -"audi", -"audible", -"audio", -"auspost", -"author", -"auto", -"autos", -"avianca", -"aws", -"axa", -"azure", -"baby", -"baidu", -"banamex", -"bananarepublic", -"band", -"bank", -"bar", -"barcelona", -"barclaycard", -"barclays", -"barefoot", -"bargains", -"baseball", -"basketball", -"bauhaus", -"bayern", -"bbc", -"bbt", -"bbva", -"bcg", -"bcn", -"beats", -"beauty", -"beer", -"bentley", -"berlin", -"best", -"bestbuy", -"bet", -"bharti", -"bible", -"bid", -"bike", -"bing", -"bingo", -"bio", -"black", -"blackfriday", -"blockbuster", -"blog", -"bloomberg", -"blue", -"bms", -"bmw", -"bnpparibas", -"boats", -"boehringer", -"bofa", -"bom", -"bond", -"boo", -"book", -"booking", -"bosch", -"bostik", -"boston", -"bot", -"boutique", -"box", -"bradesco", -"bridgestone", -"broadway", -"broker", -"brother", -"brussels", -"budapest", -"bugatti", -"build", -"builders", -"business", -"buy", -"buzz", -"bzh", -"cab", -"cafe", -"cal", -"call", -"calvinklein", -"cam", -"camera", -"camp", -"cancerresearch", -"canon", -"capetown", -"capital", -"capitalone", -"car", -"caravan", -"cards", -"care", -"career", -"careers", -"cars", -"casa", -"case", -"caseih", -"cash", -"casino", -"catering", -"catholic", -"cba", -"cbn", -"cbre", -"cbs", -"ceb", -"center", -"ceo", -"cern", -"cfa", -"cfd", -"chanel", -"channel", -"charity", -"chase", -"chat", -"cheap", -"chintai", -"christmas", -"chrome", -"church", -"cipriani", -"circle", -"cisco", -"citadel", -"citi", -"citic", -"city", -"cityeats", -"claims", -"cleaning", -"click", -"clinic", -"clinique", -"clothing", -"cloud", -"club", -"clubmed", -"coach", -"codes", -"coffee", -"college", -"cologne", -"comcast", -"commbank", -"community", -"company", -"compare", -"computer", -"comsec", -"condos", -"construction", -"consulting", -"contact", -"contractors", -"cooking", -"cookingchannel", -"cool", -"corsica", -"country", -"coupon", -"coupons", -"courses", -"cpa", -"credit", -"creditcard", -"creditunion", -"cricket", -"crown", -"crs", -"cruise", -"cruises", -"csc", -"cuisinella", -"cymru", -"cyou", -"dabur", -"dad", -"dance", -"data", -"date", -"dating", -"datsun", -"day", -"dclk", -"dds", -"deal", -"dealer", -"deals", -"degree", -"delivery", -"dell", -"deloitte", -"delta", -"democrat", -"dental", -"dentist", -"desi", -"design", -"dev", -"dhl", -"diamonds", -"diet", -"digital", -"direct", -"directory", -"discount", -"discover", -"dish", -"diy", -"dnp", -"docs", -"doctor", -"dog", -"domains", -"dot", -"download", -"drive", -"dtv", -"dubai", -"duck", -"dunlop", -"dupont", -"durban", -"dvag", -"dvr", -"earth", -"eat", -"eco", -"edeka", -"education", -"email", -"emerck", -"energy", -"engineer", -"engineering", -"enterprises", -"epson", -"equipment", -"ericsson", -"erni", -"esq", -"estate", -"esurance", -"etisalat", -"eurovision", -"eus", -"events", -"exchange", -"expert", -"exposed", -"express", -"extraspace", -"fage", -"fail", -"fairwinds", -"faith", -"family", -"fan", -"fans", -"farm", -"farmers", -"fashion", -"fast", -"fedex", -"feedback", -"ferrari", -"ferrero", -"fiat", -"fidelity", -"fido", -"film", -"final", -"finance", -"financial", -"fire", -"firestone", -"firmdale", -"fish", -"fishing", -"fit", -"fitness", -"flickr", -"flights", -"flir", -"florist", -"flowers", -"fly", -"foo", -"food", -"foodnetwork", -"football", -"ford", -"forex", -"forsale", -"forum", -"foundation", -"fox", -"free", -"fresenius", -"frl", -"frogans", -"frontdoor", -"frontier", -"ftr", -"fujitsu", -"fujixerox", -"fun", -"fund", -"furniture", -"futbol", -"fyi", -"gal", -"gallery", -"gallo", -"gallup", -"game", -"games", -"gap", -"garden", -"gay", -"gbiz", -"gdn", -"gea", -"gent", -"genting", -"george", -"ggee", -"gift", -"gifts", -"gives", -"giving", -"glade", -"glass", -"gle", -"global", -"globo", -"gmail", -"gmbh", -"gmo", -"gmx", -"godaddy", -"gold", -"goldpoint", -"golf", -"goo", -"goodyear", -"goog", -"google", -"gop", -"got", -"grainger", -"graphics", -"gratis", -"green", -"gripe", -"grocery", -"group", -"guardian", -"gucci", -"guge", -"guide", -"guitars", -"guru", -"hair", -"hamburg", -"hangout", -"haus", -"hbo", -"hdfc", -"hdfcbank", -"health", -"healthcare", -"help", -"helsinki", -"here", -"hermes", -"hgtv", -"hiphop", -"hisamitsu", -"hitachi", -"hiv", -"hkt", -"hockey", -"holdings", -"holiday", -"homedepot", -"homegoods", -"homes", -"homesense", -"honda", -"horse", -"hospital", -"host", -"hosting", -"hot", -"hoteles", -"hotels", -"hotmail", -"house", -"how", -"hsbc", -"hughes", -"hyatt", -"hyundai", -"ibm", -"icbc", -"ice", -"icu", -"ieee", -"ifm", -"ikano", -"imamat", -"imdb", -"immo", -"immobilien", -"inc", -"industries", -"infiniti", -"ing", -"ink", -"institute", -"insurance", -"insure", -"intel", -"international", -"intuit", -"investments", -"ipiranga", -"irish", -"ismaili", -"ist", -"istanbul", -"itau", -"itv", -"iveco", -"jaguar", -"java", -"jcb", -"jcp", -"jeep", -"jetzt", -"jewelry", -"jio", -"jll", -"jmp", -"jnj", -"joburg", -"jot", -"joy", -"jpmorgan", -"jprs", -"juegos", -"juniper", -"kaufen", -"kddi", -"kerryhotels", -"kerrylogistics", -"kerryproperties", -"kfh", -"kia", -"kim", -"kinder", -"kindle", -"kitchen", -"kiwi", -"koeln", -"komatsu", -"kosher", -"kpmg", -"kpn", -"krd", -"kred", -"kuokgroup", -"kyoto", -"lacaixa", -"lamborghini", -"lamer", -"lancaster", -"lancia", -"land", -"landrover", -"lanxess", -"lasalle", -"lat", -"latino", -"latrobe", -"law", -"lawyer", -"lds", -"lease", -"leclerc", -"lefrak", -"legal", -"lego", -"lexus", -"lgbt", -"lidl", -"life", -"lifeinsurance", -"lifestyle", -"lighting", -"like", -"lilly", -"limited", -"limo", -"lincoln", -"linde", -"link", -"lipsy", -"live", -"living", -"lixil", -"llc", -"llp", -"loan", -"loans", -"locker", -"locus", -"loft", -"lol", -"london", -"lotte", -"lotto", -"love", -"lpl", -"lplfinancial", -"ltd", -"ltda", -"lundbeck", -"lupin", -"luxe", -"luxury", -"macys", -"madrid", -"maif", -"maison", -"makeup", -"man", -"management", -"mango", -"map", -"market", -"marketing", -"markets", -"marriott", -"marshalls", -"maserati", -"mattel", -"mba", -"mckinsey", -"med", -"media", -"meet", -"melbourne", -"meme", -"memorial", -"men", -"menu", -"merckmsd", -"metlife", -"miami", -"microsoft", -"mini", -"mint", -"mit", -"mitsubishi", -"mlb", -"mls", -"mma", -"mobile", -"moda", -"moe", -"moi", -"mom", -"monash", -"money", -"monster", -"mormon", -"mortgage", -"moscow", -"moto", -"motorcycles", -"mov", -"movie", -"msd", -"mtn", -"mtr", -"mutual", -"nab", -"nadex", -"nagoya", -"nationwide", -"natura", -"navy", -"nba", -"nec", -"netbank", -"netflix", -"network", -"neustar", -"new", -"newholland", -"news", -"next", -"nextdirect", -"nexus", -"nfl", -"ngo", -"nhk", -"nico", -"nike", -"nikon", -"ninja", -"nissan", -"nissay", -"nokia", -"northwesternmutual", -"norton", -"now", -"nowruz", -"nowtv", -"nra", -"nrw", -"ntt", -"nyc", -"obi", -"observer", -"off", -"office", -"okinawa", -"olayan", -"olayangroup", -"oldnavy", -"ollo", -"omega", -"one", -"ong", -"onl", -"online", -"onyourside", -"ooo", -"open", -"oracle", -"orange", -"organic", -"origins", -"osaka", -"otsuka", -"ott", -"ovh", -"page", -"panasonic", -"paris", -"pars", -"partners", -"parts", -"party", -"passagens", -"pay", -"pccw", -"pet", -"pfizer", -"pharmacy", -"phd", -"philips", -"phone", -"photo", -"photography", -"photos", -"physio", -"pics", -"pictet", -"pictures", -"pid", -"pin", -"ping", -"pink", -"pioneer", -"pizza", -"place", -"play", -"playstation", -"plumbing", -"plus", -"pnc", -"pohl", -"poker", -"politie", -"porn", -"pramerica", -"praxi", -"press", -"prime", -"prod", -"productions", -"prof", -"progressive", -"promo", -"properties", -"property", -"protection", -"pru", -"prudential", -"pub", -"pwc", -"qpon", -"quebec", -"quest", -"qvc", -"racing", -"radio", -"raid", -"read", -"realestate", -"realtor", -"realty", -"recipes", -"red", -"redstone", -"redumbrella", -"rehab", -"reise", -"reisen", -"reit", -"reliance", -"ren", -"rent", -"rentals", -"repair", -"report", -"republican", -"rest", -"restaurant", -"review", -"reviews", -"rexroth", -"rich", -"richardli", -"ricoh", -"rightathome", -"ril", -"rio", -"rip", -"rmit", -"rocher", -"rocks", -"rodeo", -"rogers", -"room", -"rsvp", -"rugby", -"ruhr", -"run", -"rwe", -"ryukyu", -"saarland", -"safe", -"safety", -"sakura", -"sale", -"salon", -"samsclub", -"samsung", -"sandvik", -"sandvikcoromant", -"sanofi", -"sap", -"sarl", -"sas", -"save", -"saxo", -"sbi", -"sbs", -"sca", -"scb", -"schaeffler", -"schmidt", -"scholarships", -"school", -"schule", -"schwarz", -"science", -"scjohnson", -"scor", -"scot", -"search", -"seat", -"secure", -"security", -"seek", -"select", -"sener", -"services", -"ses", -"seven", -"sew", -"sex", -"sexy", -"sfr", -"shangrila", -"sharp", -"shaw", -"shell", -"shia", -"shiksha", -"shoes", -"shop", -"shopping", -"shouji", -"show", -"showtime", -"shriram", -"silk", -"sina", -"singles", -"site", -"ski", -"skin", -"sky", -"skype", -"sling", -"smart", -"smile", -"sncf", -"soccer", -"social", -"softbank", -"software", -"sohu", -"solar", -"solutions", -"song", -"sony", -"soy", -"spa", -"space", -"sport", -"spot", -"spreadbetting", -"srl", -"stada", -"staples", -"star", -"statebank", -"statefarm", -"stc", -"stcgroup", -"stockholm", -"storage", -"store", -"stream", -"studio", -"study", -"style", -"sucks", -"supplies", -"supply", -"support", -"surf", -"surgery", -"suzuki", -"swatch", -"swiftcover", -"swiss", -"sydney", -"symantec", -"systems", -"tab", -"taipei", -"talk", -"taobao", -"target", -"tatamotors", -"tatar", -"tattoo", -"tax", -"taxi", -"tci", -"tdk", -"team", -"tech", -"technology", -"temasek", -"tennis", -"teva", -"thd", -"theater", -"theatre", -"tiaa", -"tickets", -"tienda", -"tiffany", -"tips", -"tires", -"tirol", -"tjmaxx", -"tjx", -"tkmaxx", -"tmall", -"today", -"tokyo", -"tools", -"top", -"toray", -"toshiba", -"total", -"tours", -"town", -"toyota", -"toys", -"trade", -"trading", -"training", -"travel", -"travelchannel", -"travelers", -"travelersinsurance", -"trust", -"trv", -"tube", -"tui", -"tunes", -"tushu", -"tvs", -"ubank", -"ubs", -"unicom", -"university", -"uno", -"uol", -"ups", -"vacations", -"vana", -"vanguard", -"vegas", -"ventures", -"verisign", -"versicherung", -"vet", -"viajes", -"video", -"vig", -"viking", -"villas", -"vin", -"vip", -"virgin", -"visa", -"vision", -"viva", -"vivo", -"vlaanderen", -"vodka", -"volkswagen", -"volvo", -"vote", -"voting", -"voto", -"voyage", -"vuelos", -"wales", -"walmart", -"walter", -"wang", -"wanggou", -"watch", -"watches", -"weather", -"weatherchannel", -"webcam", -"weber", -"website", -"wed", -"wedding", -"weibo", -"weir", -"whoswho", -"wien", -"wiki", -"williamhill", -"win", -"windows", -"wine", -"winners", -"wme", -"wolterskluwer", -"woodside", -"work", -"works", -"world", -"wow", -"wtc", -"wtf", -"xbox", -"xerox", -"xfinity", -"xihuan", -"xin", -"कॉम", -"セール", -"佛山", -"慈善", -"集团", -"在线", -"大众汽车", -"点看", -"คอม", -"八卦", -"موقع", -"公益", -"公司", -"香格里拉", -"网站", -"移动", -"我爱你", -"москва", -"католик", -"онлайн", -"сайт", -"联通", -"קום", -"时尚", -"微博", -"淡马锡", -"ファッション", -"орг", -"नेट", -"ストア", -"アマゾン", -"삼성", -"商标", -"商店", -"商城", -"дети", -"ポイント", -"新闻", -"工行", -"家電", -"كوم", -"中文网", -"中信", -"娱乐", -"谷歌", -"電訊盈科", -"购物", -"クラウド", -"通販", -"网店", -"संगठन", -"餐厅", -"网络", -"ком", -"亚马逊", -"诺基亚", -"食品", -"飞利浦", -"手表", -"手机", -"ارامكو", -"العليان", -"اتصالات", -"بازار", -"ابوظبي", -"كاثوليك", -"همراه", -"닷컴", -"政府", -"شبكة", -"بيتك", -"عرب", -"机构", -"组织机构", -"健康", -"招聘", -"рус", -"珠宝", -"大拿", -"みんな", -"グーグル", -"世界", -"書籍", -"网址", -"닷넷", -"コム", -"天主教", -"游戏", -"vermögensberater", -"vermögensberatung", -"企业", -"信息", -"嘉里大酒店", -"嘉里", -"广东", -"政务", -"xyz", -"yachts", -"yahoo", -"yamaxun", -"yandex", -"yodobashi", -"yoga", -"yokohama", -"you", -"youtube", -"yun", -"zappos", -"zara", -"zero", -"zip", -"zone", -"zuerich", -"cc.ua", -"inf.ua", -"ltd.ua", -"adobeaemcloud.com", -"adobeaemcloud.net", -"*.dev.adobeaemcloud.com", -"beep.pl", -"barsy.ca", -"*.compute.estate", -"*.alces.network", -"altervista.org", -"alwaysdata.net", -"cloudfront.net", -"*.compute.amazonaws.com", -"*.compute-1.amazonaws.com", -"*.compute.amazonaws.com.cn", -"us-east-1.amazonaws.com", -"cn-north-1.eb.amazonaws.com.cn", -"cn-northwest-1.eb.amazonaws.com.cn", -"elasticbeanstalk.com", -"ap-northeast-1.elasticbeanstalk.com", -"ap-northeast-2.elasticbeanstalk.com", -"ap-northeast-3.elasticbeanstalk.com", -"ap-south-1.elasticbeanstalk.com", -"ap-southeast-1.elasticbeanstalk.com", -"ap-southeast-2.elasticbeanstalk.com", -"ca-central-1.elasticbeanstalk.com", -"eu-central-1.elasticbeanstalk.com", -"eu-west-1.elasticbeanstalk.com", -"eu-west-2.elasticbeanstalk.com", -"eu-west-3.elasticbeanstalk.com", -"sa-east-1.elasticbeanstalk.com", -"us-east-1.elasticbeanstalk.com", -"us-east-2.elasticbeanstalk.com", -"us-gov-west-1.elasticbeanstalk.com", -"us-west-1.elasticbeanstalk.com", -"us-west-2.elasticbeanstalk.com", -"*.elb.amazonaws.com", -"*.elb.amazonaws.com.cn", -"s3.amazonaws.com", -"s3-ap-northeast-1.amazonaws.com", -"s3-ap-northeast-2.amazonaws.com", -"s3-ap-south-1.amazonaws.com", -"s3-ap-southeast-1.amazonaws.com", -"s3-ap-southeast-2.amazonaws.com", -"s3-ca-central-1.amazonaws.com", -"s3-eu-central-1.amazonaws.com", -"s3-eu-west-1.amazonaws.com", -"s3-eu-west-2.amazonaws.com", -"s3-eu-west-3.amazonaws.com", -"s3-external-1.amazonaws.com", -"s3-fips-us-gov-west-1.amazonaws.com", -"s3-sa-east-1.amazonaws.com", -"s3-us-gov-west-1.amazonaws.com", -"s3-us-east-2.amazonaws.com", -"s3-us-west-1.amazonaws.com", -"s3-us-west-2.amazonaws.com", -"s3.ap-northeast-2.amazonaws.com", -"s3.ap-south-1.amazonaws.com", -"s3.cn-north-1.amazonaws.com.cn", -"s3.ca-central-1.amazonaws.com", -"s3.eu-central-1.amazonaws.com", -"s3.eu-west-2.amazonaws.com", -"s3.eu-west-3.amazonaws.com", -"s3.us-east-2.amazonaws.com", -"s3.dualstack.ap-northeast-1.amazonaws.com", -"s3.dualstack.ap-northeast-2.amazonaws.com", -"s3.dualstack.ap-south-1.amazonaws.com", -"s3.dualstack.ap-southeast-1.amazonaws.com", -"s3.dualstack.ap-southeast-2.amazonaws.com", -"s3.dualstack.ca-central-1.amazonaws.com", -"s3.dualstack.eu-central-1.amazonaws.com", -"s3.dualstack.eu-west-1.amazonaws.com", -"s3.dualstack.eu-west-2.amazonaws.com", -"s3.dualstack.eu-west-3.amazonaws.com", -"s3.dualstack.sa-east-1.amazonaws.com", -"s3.dualstack.us-east-1.amazonaws.com", -"s3.dualstack.us-east-2.amazonaws.com", -"s3-website-us-east-1.amazonaws.com", -"s3-website-us-west-1.amazonaws.com", -"s3-website-us-west-2.amazonaws.com", -"s3-website-ap-northeast-1.amazonaws.com", -"s3-website-ap-southeast-1.amazonaws.com", -"s3-website-ap-southeast-2.amazonaws.com", -"s3-website-eu-west-1.amazonaws.com", -"s3-website-sa-east-1.amazonaws.com", -"s3-website.ap-northeast-2.amazonaws.com", -"s3-website.ap-south-1.amazonaws.com", -"s3-website.ca-central-1.amazonaws.com", -"s3-website.eu-central-1.amazonaws.com", -"s3-website.eu-west-2.amazonaws.com", -"s3-website.eu-west-3.amazonaws.com", -"s3-website.us-east-2.amazonaws.com", -"amsw.nl", -"t3l3p0rt.net", -"tele.amune.org", -"apigee.io", -"on-aptible.com", -"user.aseinet.ne.jp", -"gv.vc", -"d.gv.vc", -"user.party.eus", -"pimienta.org", -"poivron.org", -"potager.org", -"sweetpepper.org", -"myasustor.com", -"myfritz.net", -"*.awdev.ca", -"*.advisor.ws", -"b-data.io", -"backplaneapp.io", -"balena-devices.com", -"app.banzaicloud.io", -"betainabox.com", -"bnr.la", -"blackbaudcdn.net", -"boomla.net", -"boxfuse.io", -"square7.ch", -"bplaced.com", -"bplaced.de", -"square7.de", -"bplaced.net", -"square7.net", -"browsersafetymark.io", -"uk0.bigv.io", -"dh.bytemark.co.uk", -"vm.bytemark.co.uk", -"mycd.eu", -"carrd.co", -"crd.co", -"uwu.ai", -"ae.org", -"ar.com", -"br.com", -"cn.com", -"com.de", -"com.se", -"de.com", -"eu.com", -"gb.com", -"gb.net", -"hu.com", -"hu.net", -"jp.net", -"jpn.com", -"kr.com", -"mex.com", -"no.com", -"qc.com", -"ru.com", -"sa.com", -"se.net", -"uk.com", -"uk.net", -"us.com", -"uy.com", -"za.bz", -"za.com", -"africa.com", -"gr.com", -"in.net", -"us.org", -"co.com", -"c.la", -"certmgr.org", -"xenapponazure.com", -"discourse.group", -"discourse.team", -"virtueeldomein.nl", -"cleverapps.io", -"*.lcl.dev", -"*.stg.dev", -"c66.me", -"cloud66.ws", -"cloud66.zone", -"jdevcloud.com", -"wpdevcloud.com", -"cloudaccess.host", -"freesite.host", -"cloudaccess.net", -"cloudcontrolled.com", -"cloudcontrolapp.com", -"cloudera.site", -"trycloudflare.com", -"workers.dev", -"wnext.app", -"co.ca", -"*.otap.co", -"co.cz", -"c.cdn77.org", -"cdn77-ssl.net", -"r.cdn77.net", -"rsc.cdn77.org", -"ssl.origin.cdn77-secure.org", -"cloudns.asia", -"cloudns.biz", -"cloudns.club", -"cloudns.cc", -"cloudns.eu", -"cloudns.in", -"cloudns.info", -"cloudns.org", -"cloudns.pro", -"cloudns.pw", -"cloudns.us", -"cloudeity.net", -"cnpy.gdn", -"co.nl", -"co.no", -"webhosting.be", -"hosting-cluster.nl", -"ac.ru", -"edu.ru", -"gov.ru", -"int.ru", -"mil.ru", -"test.ru", -"dyn.cosidns.de", -"dynamisches-dns.de", -"dnsupdater.de", -"internet-dns.de", -"l-o-g-i-n.de", -"dynamic-dns.info", -"feste-ip.net", -"knx-server.net", -"static-access.net", -"realm.cz", -"*.cryptonomic.net", -"cupcake.is", -"*.customer-oci.com", -"*.oci.customer-oci.com", -"*.ocp.customer-oci.com", -"*.ocs.customer-oci.com", -"cyon.link", -"cyon.site", -"daplie.me", -"localhost.daplie.me", -"dattolocal.com", -"dattorelay.com", -"dattoweb.com", -"mydatto.com", -"dattolocal.net", -"mydatto.net", -"biz.dk", -"co.dk", -"firm.dk", -"reg.dk", -"store.dk", -"*.dapps.earth", -"*.bzz.dapps.earth", -"builtwithdark.com", -"edgestack.me", -"debian.net", -"dedyn.io", -"dnshome.de", -"online.th", -"shop.th", -"drayddns.com", -"dreamhosters.com", -"mydrobo.com", -"drud.io", -"drud.us", -"duckdns.org", -"dy.fi", -"tunk.org", -"dyndns-at-home.com", -"dyndns-at-work.com", -"dyndns-blog.com", -"dyndns-free.com", -"dyndns-home.com", -"dyndns-ip.com", -"dyndns-mail.com", -"dyndns-office.com", -"dyndns-pics.com", -"dyndns-remote.com", -"dyndns-server.com", -"dyndns-web.com", -"dyndns-wiki.com", -"dyndns-work.com", -"dyndns.biz", -"dyndns.info", -"dyndns.org", -"dyndns.tv", -"at-band-camp.net", -"ath.cx", -"barrel-of-knowledge.info", -"barrell-of-knowledge.info", -"better-than.tv", -"blogdns.com", -"blogdns.net", -"blogdns.org", -"blogsite.org", -"boldlygoingnowhere.org", -"broke-it.net", -"buyshouses.net", -"cechire.com", -"dnsalias.com", -"dnsalias.net", -"dnsalias.org", -"dnsdojo.com", -"dnsdojo.net", -"dnsdojo.org", -"does-it.net", -"doesntexist.com", -"doesntexist.org", -"dontexist.com", -"dontexist.net", -"dontexist.org", -"doomdns.com", -"doomdns.org", -"dvrdns.org", -"dyn-o-saur.com", -"dynalias.com", -"dynalias.net", -"dynalias.org", -"dynathome.net", -"dyndns.ws", -"endofinternet.net", -"endofinternet.org", -"endoftheinternet.org", -"est-a-la-maison.com", -"est-a-la-masion.com", -"est-le-patron.com", -"est-mon-blogueur.com", -"for-better.biz", -"for-more.biz", -"for-our.info", -"for-some.biz", -"for-the.biz", -"forgot.her.name", -"forgot.his.name", -"from-ak.com", -"from-al.com", -"from-ar.com", -"from-az.net", -"from-ca.com", -"from-co.net", -"from-ct.com", -"from-dc.com", -"from-de.com", -"from-fl.com", -"from-ga.com", -"from-hi.com", -"from-ia.com", -"from-id.com", -"from-il.com", -"from-in.com", -"from-ks.com", -"from-ky.com", -"from-la.net", -"from-ma.com", -"from-md.com", -"from-me.org", -"from-mi.com", -"from-mn.com", -"from-mo.com", -"from-ms.com", -"from-mt.com", -"from-nc.com", -"from-nd.com", -"from-ne.com", -"from-nh.com", -"from-nj.com", -"from-nm.com", -"from-nv.com", -"from-ny.net", -"from-oh.com", -"from-ok.com", -"from-or.com", -"from-pa.com", -"from-pr.com", -"from-ri.com", -"from-sc.com", -"from-sd.com", -"from-tn.com", -"from-tx.com", -"from-ut.com", -"from-va.com", -"from-vt.com", -"from-wa.com", -"from-wi.com", -"from-wv.com", -"from-wy.com", -"ftpaccess.cc", -"fuettertdasnetz.de", -"game-host.org", -"game-server.cc", -"getmyip.com", -"gets-it.net", -"go.dyndns.org", -"gotdns.com", -"gotdns.org", -"groks-the.info", -"groks-this.info", -"ham-radio-op.net", -"here-for-more.info", -"hobby-site.com", -"hobby-site.org", -"home.dyndns.org", -"homedns.org", -"homeftp.net", -"homeftp.org", -"homeip.net", -"homelinux.com", -"homelinux.net", -"homelinux.org", -"homeunix.com", -"homeunix.net", -"homeunix.org", -"iamallama.com", -"in-the-band.net", -"is-a-anarchist.com", -"is-a-blogger.com", -"is-a-bookkeeper.com", -"is-a-bruinsfan.org", -"is-a-bulls-fan.com", -"is-a-candidate.org", -"is-a-caterer.com", -"is-a-celticsfan.org", -"is-a-chef.com", -"is-a-chef.net", -"is-a-chef.org", -"is-a-conservative.com", -"is-a-cpa.com", -"is-a-cubicle-slave.com", -"is-a-democrat.com", -"is-a-designer.com", -"is-a-doctor.com", -"is-a-financialadvisor.com", -"is-a-geek.com", -"is-a-geek.net", -"is-a-geek.org", -"is-a-green.com", -"is-a-guru.com", -"is-a-hard-worker.com", -"is-a-hunter.com", -"is-a-knight.org", -"is-a-landscaper.com", -"is-a-lawyer.com", -"is-a-liberal.com", -"is-a-libertarian.com", -"is-a-linux-user.org", -"is-a-llama.com", -"is-a-musician.com", -"is-a-nascarfan.com", -"is-a-nurse.com", -"is-a-painter.com", -"is-a-patsfan.org", -"is-a-personaltrainer.com", -"is-a-photographer.com", -"is-a-player.com", -"is-a-republican.com", -"is-a-rockstar.com", -"is-a-socialist.com", -"is-a-soxfan.org", -"is-a-student.com", -"is-a-teacher.com", -"is-a-techie.com", -"is-a-therapist.com", -"is-an-accountant.com", -"is-an-actor.com", -"is-an-actress.com", -"is-an-anarchist.com", -"is-an-artist.com", -"is-an-engineer.com", -"is-an-entertainer.com", -"is-by.us", -"is-certified.com", -"is-found.org", -"is-gone.com", -"is-into-anime.com", -"is-into-cars.com", -"is-into-cartoons.com", -"is-into-games.com", -"is-leet.com", -"is-lost.org", -"is-not-certified.com", -"is-saved.org", -"is-slick.com", -"is-uberleet.com", -"is-very-bad.org", -"is-very-evil.org", -"is-very-good.org", -"is-very-nice.org", -"is-very-sweet.org", -"is-with-theband.com", -"isa-geek.com", -"isa-geek.net", -"isa-geek.org", -"isa-hockeynut.com", -"issmarterthanyou.com", -"isteingeek.de", -"istmein.de", -"kicks-ass.net", -"kicks-ass.org", -"knowsitall.info", -"land-4-sale.us", -"lebtimnetz.de", -"leitungsen.de", -"likes-pie.com", -"likescandy.com", -"merseine.nu", -"mine.nu", -"misconfused.org", -"mypets.ws", -"myphotos.cc", -"neat-url.com", -"office-on-the.net", -"on-the-web.tv", -"podzone.net", -"podzone.org", -"readmyblog.org", -"saves-the-whales.com", -"scrapper-site.net", -"scrapping.cc", -"selfip.biz", -"selfip.com", -"selfip.info", -"selfip.net", -"selfip.org", -"sells-for-less.com", -"sells-for-u.com", -"sells-it.net", -"sellsyourhome.org", -"servebbs.com", -"servebbs.net", -"servebbs.org", -"serveftp.net", -"serveftp.org", -"servegame.org", -"shacknet.nu", -"simple-url.com", -"space-to-rent.com", -"stuff-4-sale.org", -"stuff-4-sale.us", -"teaches-yoga.com", -"thruhere.net", -"traeumtgerade.de", -"webhop.biz", -"webhop.info", -"webhop.net", -"webhop.org", -"worse-than.tv", -"writesthisblog.com", -"ddnss.de", -"dyn.ddnss.de", -"dyndns.ddnss.de", -"dyndns1.de", -"dyn-ip24.de", -"home-webserver.de", -"dyn.home-webserver.de", -"myhome-server.de", -"ddnss.org", -"definima.net", -"definima.io", -"bci.dnstrace.pro", -"ddnsfree.com", -"ddnsgeek.com", -"giize.com", -"gleeze.com", -"kozow.com", -"loseyourip.com", -"ooguy.com", -"theworkpc.com", -"casacam.net", -"dynu.net", -"accesscam.org", -"camdvr.org", -"freeddns.org", -"mywire.org", -"webredirect.org", -"myddns.rocks", -"blogsite.xyz", -"dynv6.net", -"e4.cz", -"en-root.fr", -"mytuleap.com", -"onred.one", -"staging.onred.one", -"enonic.io", -"customer.enonic.io", -"eu.org", -"al.eu.org", -"asso.eu.org", -"at.eu.org", -"au.eu.org", -"be.eu.org", -"bg.eu.org", -"ca.eu.org", -"cd.eu.org", -"ch.eu.org", -"cn.eu.org", -"cy.eu.org", -"cz.eu.org", -"de.eu.org", -"dk.eu.org", -"edu.eu.org", -"ee.eu.org", -"es.eu.org", -"fi.eu.org", -"fr.eu.org", -"gr.eu.org", -"hr.eu.org", -"hu.eu.org", -"ie.eu.org", -"il.eu.org", -"in.eu.org", -"int.eu.org", -"is.eu.org", -"it.eu.org", -"jp.eu.org", -"kr.eu.org", -"lt.eu.org", -"lu.eu.org", -"lv.eu.org", -"mc.eu.org", -"me.eu.org", -"mk.eu.org", -"mt.eu.org", -"my.eu.org", -"net.eu.org", -"ng.eu.org", -"nl.eu.org", -"no.eu.org", -"nz.eu.org", -"paris.eu.org", -"pl.eu.org", -"pt.eu.org", -"q-a.eu.org", -"ro.eu.org", -"ru.eu.org", -"se.eu.org", -"si.eu.org", -"sk.eu.org", -"tr.eu.org", -"uk.eu.org", -"us.eu.org", -"eu-1.evennode.com", -"eu-2.evennode.com", -"eu-3.evennode.com", -"eu-4.evennode.com", -"us-1.evennode.com", -"us-2.evennode.com", -"us-3.evennode.com", -"us-4.evennode.com", -"twmail.cc", -"twmail.net", -"twmail.org", -"mymailer.com.tw", -"url.tw", -"apps.fbsbx.com", -"ru.net", -"adygeya.ru", -"bashkiria.ru", -"bir.ru", -"cbg.ru", -"com.ru", -"dagestan.ru", -"grozny.ru", -"kalmykia.ru", -"kustanai.ru", -"marine.ru", -"mordovia.ru", -"msk.ru", -"mytis.ru", -"nalchik.ru", -"nov.ru", -"pyatigorsk.ru", -"spb.ru", -"vladikavkaz.ru", -"vladimir.ru", -"abkhazia.su", -"adygeya.su", -"aktyubinsk.su", -"arkhangelsk.su", -"armenia.su", -"ashgabad.su", -"azerbaijan.su", -"balashov.su", -"bashkiria.su", -"bryansk.su", -"bukhara.su", -"chimkent.su", -"dagestan.su", -"east-kazakhstan.su", -"exnet.su", -"georgia.su", -"grozny.su", -"ivanovo.su", -"jambyl.su", -"kalmykia.su", -"kaluga.su", -"karacol.su", -"karaganda.su", -"karelia.su", -"khakassia.su", -"krasnodar.su", -"kurgan.su", -"kustanai.su", -"lenug.su", -"mangyshlak.su", -"mordovia.su", -"msk.su", -"murmansk.su", -"nalchik.su", -"navoi.su", -"north-kazakhstan.su", -"nov.su", -"obninsk.su", -"penza.su", -"pokrovsk.su", -"sochi.su", -"spb.su", -"tashkent.su", -"termez.su", -"togliatti.su", -"troitsk.su", -"tselinograd.su", -"tula.su", -"tuva.su", -"vladikavkaz.su", -"vladimir.su", -"vologda.su", -"channelsdvr.net", -"u.channelsdvr.net", -"fastly-terrarium.com", -"fastlylb.net", -"map.fastlylb.net", -"freetls.fastly.net", -"map.fastly.net", -"a.prod.fastly.net", -"global.prod.fastly.net", -"a.ssl.fastly.net", -"b.ssl.fastly.net", -"global.ssl.fastly.net", -"fastpanel.direct", -"fastvps-server.com", -"fhapp.xyz", -"fedorainfracloud.org", -"fedorapeople.org", -"cloud.fedoraproject.org", -"app.os.fedoraproject.org", -"app.os.stg.fedoraproject.org", -"mydobiss.com", -"filegear.me", -"filegear-au.me", -"filegear-de.me", -"filegear-gb.me", -"filegear-ie.me", -"filegear-jp.me", -"filegear-sg.me", -"firebaseapp.com", -"flynnhub.com", -"flynnhosting.net", -"0e.vc", -"freebox-os.com", -"freeboxos.com", -"fbx-os.fr", -"fbxos.fr", -"freebox-os.fr", -"freeboxos.fr", -"freedesktop.org", -"*.futurecms.at", -"*.ex.futurecms.at", -"*.in.futurecms.at", -"futurehosting.at", -"futuremailing.at", -"*.ex.ortsinfo.at", -"*.kunden.ortsinfo.at", -"*.statics.cloud", -"service.gov.uk", -"gehirn.ne.jp", -"usercontent.jp", -"gentapps.com", -"lab.ms", -"github.io", -"githubusercontent.com", -"gitlab.io", -"glitch.me", -"lolipop.io", -"cloudapps.digital", -"london.cloudapps.digital", -"homeoffice.gov.uk", -"ro.im", -"shop.ro", -"goip.de", -"run.app", -"a.run.app", -"web.app", -"*.0emm.com", -"appspot.com", -"*.r.appspot.com", -"blogspot.ae", -"blogspot.al", -"blogspot.am", -"blogspot.ba", -"blogspot.be", -"blogspot.bg", -"blogspot.bj", -"blogspot.ca", -"blogspot.cf", -"blogspot.ch", -"blogspot.cl", -"blogspot.co.at", -"blogspot.co.id", -"blogspot.co.il", -"blogspot.co.ke", -"blogspot.co.nz", -"blogspot.co.uk", -"blogspot.co.za", -"blogspot.com", -"blogspot.com.ar", -"blogspot.com.au", -"blogspot.com.br", -"blogspot.com.by", -"blogspot.com.co", -"blogspot.com.cy", -"blogspot.com.ee", -"blogspot.com.eg", -"blogspot.com.es", -"blogspot.com.mt", -"blogspot.com.ng", -"blogspot.com.tr", -"blogspot.com.uy", -"blogspot.cv", -"blogspot.cz", -"blogspot.de", -"blogspot.dk", -"blogspot.fi", -"blogspot.fr", -"blogspot.gr", -"blogspot.hk", -"blogspot.hr", -"blogspot.hu", -"blogspot.ie", -"blogspot.in", -"blogspot.is", -"blogspot.it", -"blogspot.jp", -"blogspot.kr", -"blogspot.li", -"blogspot.lt", -"blogspot.lu", -"blogspot.md", -"blogspot.mk", -"blogspot.mr", -"blogspot.mx", -"blogspot.my", -"blogspot.nl", -"blogspot.no", -"blogspot.pe", -"blogspot.pt", -"blogspot.qa", -"blogspot.re", -"blogspot.ro", -"blogspot.rs", -"blogspot.ru", -"blogspot.se", -"blogspot.sg", -"blogspot.si", -"blogspot.sk", -"blogspot.sn", -"blogspot.td", -"blogspot.tw", -"blogspot.ug", -"blogspot.vn", -"cloudfunctions.net", -"cloud.goog", -"codespot.com", -"googleapis.com", -"googlecode.com", -"pagespeedmobilizer.com", -"publishproxy.com", -"withgoogle.com", -"withyoutube.com", -"awsmppl.com", -"fin.ci", -"free.hr", -"caa.li", -"ua.rs", -"conf.se", -"hs.zone", -"hs.run", -"hashbang.sh", -"hasura.app", -"hasura-app.io", -"hepforge.org", -"herokuapp.com", -"herokussl.com", -"myravendb.com", -"ravendb.community", -"ravendb.me", -"development.run", -"ravendb.run", -"bpl.biz", -"orx.biz", -"ng.city", -"biz.gl", -"ng.ink", -"col.ng", -"firm.ng", -"gen.ng", -"ltd.ng", -"ngo.ng", -"ng.school", -"sch.so", -"häkkinen.fi", -"*.moonscale.io", -"moonscale.net", -"iki.fi", -"dyn-berlin.de", -"in-berlin.de", -"in-brb.de", -"in-butter.de", -"in-dsl.de", -"in-dsl.net", -"in-dsl.org", -"in-vpn.de", -"in-vpn.net", -"in-vpn.org", -"biz.at", -"info.at", -"info.cx", -"ac.leg.br", -"al.leg.br", -"am.leg.br", -"ap.leg.br", -"ba.leg.br", -"ce.leg.br", -"df.leg.br", -"es.leg.br", -"go.leg.br", -"ma.leg.br", -"mg.leg.br", -"ms.leg.br", -"mt.leg.br", -"pa.leg.br", -"pb.leg.br", -"pe.leg.br", -"pi.leg.br", -"pr.leg.br", -"rj.leg.br", -"rn.leg.br", -"ro.leg.br", -"rr.leg.br", -"rs.leg.br", -"sc.leg.br", -"se.leg.br", -"sp.leg.br", -"to.leg.br", -"pixolino.com", -"ipifony.net", -"mein-iserv.de", -"test-iserv.de", -"iserv.dev", -"iobb.net", -"myjino.ru", -"*.hosting.myjino.ru", -"*.landing.myjino.ru", -"*.spectrum.myjino.ru", -"*.vps.myjino.ru", -"*.triton.zone", -"*.cns.joyent.com", -"js.org", -"kaas.gg", -"khplay.nl", -"keymachine.de", -"kinghost.net", -"uni5.net", -"knightpoint.systems", -"oya.to", -"co.krd", -"edu.krd", -"git-repos.de", -"lcube-server.de", -"svn-repos.de", -"leadpages.co", -"lpages.co", -"lpusercontent.com", -"lelux.site", -"co.business", -"co.education", -"co.events", -"co.financial", -"co.network", -"co.place", -"co.technology", -"app.lmpm.com", -"linkitools.space", -"linkyard.cloud", -"linkyard-cloud.ch", -"members.linode.com", -"nodebalancer.linode.com", -"we.bs", -"loginline.app", -"loginline.dev", -"loginline.io", -"loginline.services", -"loginline.site", -"krasnik.pl", -"leczna.pl", -"lubartow.pl", -"lublin.pl", -"poniatowa.pl", -"swidnik.pl", -"uklugs.org", -"glug.org.uk", -"lug.org.uk", -"lugs.org.uk", -"barsy.bg", -"barsy.co.uk", -"barsyonline.co.uk", -"barsycenter.com", -"barsyonline.com", -"barsy.club", -"barsy.de", -"barsy.eu", -"barsy.in", -"barsy.info", -"barsy.io", -"barsy.me", -"barsy.menu", -"barsy.mobi", -"barsy.net", -"barsy.online", -"barsy.org", -"barsy.pro", -"barsy.pub", -"barsy.shop", -"barsy.site", -"barsy.support", -"barsy.uk", -"*.magentosite.cloud", -"mayfirst.info", -"mayfirst.org", -"hb.cldmail.ru", -"miniserver.com", -"memset.net", -"cloud.metacentrum.cz", -"custom.metacentrum.cz", -"flt.cloud.muni.cz", -"usr.cloud.muni.cz", -"meteorapp.com", -"eu.meteorapp.com", -"co.pl", -"azurecontainer.io", -"azurewebsites.net", -"azure-mobile.net", -"cloudapp.net", -"mozilla-iot.org", -"bmoattachments.org", -"net.ru", -"org.ru", -"pp.ru", -"ui.nabu.casa", -"pony.club", -"of.fashion", -"on.fashion", -"of.football", -"in.london", -"of.london", -"for.men", -"and.mom", -"for.mom", -"for.one", -"for.sale", -"of.work", -"to.work", -"nctu.me", -"bitballoon.com", -"netlify.com", -"4u.com", -"ngrok.io", -"nh-serv.co.uk", -"nfshost.com", -"dnsking.ch", -"mypi.co", -"n4t.co", -"001www.com", -"ddnslive.com", -"myiphost.com", -"forumz.info", -"16-b.it", -"32-b.it", -"64-b.it", -"soundcast.me", -"tcp4.me", -"dnsup.net", -"hicam.net", -"now-dns.net", -"ownip.net", -"vpndns.net", -"dynserv.org", -"now-dns.org", -"x443.pw", -"now-dns.top", -"ntdll.top", -"freeddns.us", -"crafting.xyz", -"zapto.xyz", -"nsupdate.info", -"nerdpol.ovh", -"blogsyte.com", -"brasilia.me", -"cable-modem.org", -"ciscofreak.com", -"collegefan.org", -"couchpotatofries.org", -"damnserver.com", -"ddns.me", -"ditchyourip.com", -"dnsfor.me", -"dnsiskinky.com", -"dvrcam.info", -"dynns.com", -"eating-organic.net", -"fantasyleague.cc", -"geekgalaxy.com", -"golffan.us", -"health-carereform.com", -"homesecuritymac.com", -"homesecuritypc.com", -"hopto.me", -"ilovecollege.info", -"loginto.me", -"mlbfan.org", -"mmafan.biz", -"myactivedirectory.com", -"mydissent.net", -"myeffect.net", -"mymediapc.net", -"mypsx.net", -"mysecuritycamera.com", -"mysecuritycamera.net", -"mysecuritycamera.org", -"net-freaks.com", -"nflfan.org", -"nhlfan.net", -"no-ip.ca", -"no-ip.co.uk", -"no-ip.net", -"noip.us", -"onthewifi.com", -"pgafan.net", -"point2this.com", -"pointto.us", -"privatizehealthinsurance.net", -"quicksytes.com", -"read-books.org", -"securitytactics.com", -"serveexchange.com", -"servehumour.com", -"servep2p.com", -"servesarcasm.com", -"stufftoread.com", -"ufcfan.org", -"unusualperson.com", -"workisboring.com", -"3utilities.com", -"bounceme.net", -"ddns.net", -"ddnsking.com", -"gotdns.ch", -"hopto.org", -"myftp.biz", -"myftp.org", -"myvnc.com", -"no-ip.biz", -"no-ip.info", -"no-ip.org", -"noip.me", -"redirectme.net", -"servebeer.com", -"serveblog.net", -"servecounterstrike.com", -"serveftp.com", -"servegame.com", -"servehalflife.com", -"servehttp.com", -"serveirc.com", -"serveminecraft.net", -"servemp3.com", -"servepics.com", -"servequake.com", -"sytes.net", -"webhop.me", -"zapto.org", -"stage.nodeart.io", -"nodum.co", -"nodum.io", -"pcloud.host", -"nyc.mn", -"nom.ae", -"nom.af", -"nom.ai", -"nom.al", -"nym.by", -"nom.bz", -"nym.bz", -"nom.cl", -"nym.ec", -"nom.gd", -"nom.ge", -"nom.gl", -"nym.gr", -"nom.gt", -"nym.gy", -"nym.hk", -"nom.hn", -"nym.ie", -"nom.im", -"nom.ke", -"nym.kz", -"nym.la", -"nym.lc", -"nom.li", -"nym.li", -"nym.lt", -"nym.lu", -"nom.lv", -"nym.me", -"nom.mk", -"nym.mn", -"nym.mx", -"nom.nu", -"nym.nz", -"nym.pe", -"nym.pt", -"nom.pw", -"nom.qa", -"nym.ro", -"nom.rs", -"nom.si", -"nym.sk", -"nom.st", -"nym.su", -"nym.sx", -"nom.tj", -"nym.tw", -"nom.ug", -"nom.uy", -"nom.vc", -"nom.vg", -"static.observableusercontent.com", -"cya.gg", -"cloudycluster.net", -"nid.io", -"opencraft.hosting", -"operaunite.com", -"skygearapp.com", -"outsystemscloud.com", -"ownprovider.com", -"own.pm", -"ox.rs", -"oy.lc", -"pgfog.com", -"pagefrontapp.com", -"art.pl", -"gliwice.pl", -"krakow.pl", -"poznan.pl", -"wroc.pl", -"zakopane.pl", -"pantheonsite.io", -"gotpantheon.com", -"mypep.link", -"perspecta.cloud", -"on-web.fr", -"*.platform.sh", -"*.platformsh.site", -"dyn53.io", -"co.bn", -"xen.prgmr.com", -"priv.at", -"prvcy.page", -"*.dweb.link", -"protonet.io", -"chirurgiens-dentistes-en-france.fr", -"byen.site", -"pubtls.org", -"qualifioapp.com", -"qbuser.com", -"instantcloud.cn", -"ras.ru", -"qa2.com", -"qcx.io", -"*.sys.qcx.io", -"dev-myqnapcloud.com", -"alpha-myqnapcloud.com", -"myqnapcloud.com", -"*.quipelements.com", -"vapor.cloud", -"vaporcloud.io", -"rackmaze.com", -"rackmaze.net", -"*.on-k3s.io", -"*.on-rancher.cloud", -"*.on-rio.io", -"readthedocs.io", -"rhcloud.com", -"app.render.com", -"onrender.com", -"repl.co", -"repl.run", -"resindevice.io", -"devices.resinstaging.io", -"hzc.io", -"wellbeingzone.eu", -"ptplus.fit", -"wellbeingzone.co.uk", -"git-pages.rit.edu", -"sandcats.io", -"logoip.de", -"logoip.com", -"schokokeks.net", -"gov.scot", -"scrysec.com", -"firewall-gateway.com", -"firewall-gateway.de", -"my-gateway.de", -"my-router.de", -"spdns.de", -"spdns.eu", -"firewall-gateway.net", -"my-firewall.org", -"myfirewall.org", -"spdns.org", -"senseering.net", -"biz.ua", -"co.ua", -"pp.ua", -"shiftedit.io", -"myshopblocks.com", -"shopitsite.com", -"mo-siemens.io", -"1kapp.com", -"appchizi.com", -"applinzi.com", -"sinaapp.com", -"vipsinaapp.com", -"siteleaf.net", -"bounty-full.com", -"alpha.bounty-full.com", -"beta.bounty-full.com", -"stackhero-network.com", -"static.land", -"dev.static.land", -"sites.static.land", -"apps.lair.io", -"*.stolos.io", -"spacekit.io", -"customer.speedpartner.de", -"api.stdlib.com", -"storj.farm", -"utwente.io", -"soc.srcf.net", -"user.srcf.net", -"temp-dns.com", -"applicationcloud.io", -"scapp.io", -"*.s5y.io", -"*.sensiosite.cloud", -"syncloud.it", -"diskstation.me", -"dscloud.biz", -"dscloud.me", -"dscloud.mobi", -"dsmynas.com", -"dsmynas.net", -"dsmynas.org", -"familyds.com", -"familyds.net", -"familyds.org", -"i234.me", -"myds.me", -"synology.me", -"vpnplus.to", -"direct.quickconnect.to", -"taifun-dns.de", -"gda.pl", -"gdansk.pl", -"gdynia.pl", -"med.pl", -"sopot.pl", -"edugit.org", -"telebit.app", -"telebit.io", -"*.telebit.xyz", -"gwiddle.co.uk", -"thingdustdata.com", -"cust.dev.thingdust.io", -"cust.disrec.thingdust.io", -"cust.prod.thingdust.io", -"cust.testing.thingdust.io", -"arvo.network", -"azimuth.network", -"bloxcms.com", -"townnews-staging.com", -"12hp.at", -"2ix.at", -"4lima.at", -"lima-city.at", -"12hp.ch", -"2ix.ch", -"4lima.ch", -"lima-city.ch", -"trafficplex.cloud", -"de.cool", -"12hp.de", -"2ix.de", -"4lima.de", -"lima-city.de", -"1337.pictures", -"clan.rip", -"lima-city.rocks", -"webspace.rocks", -"lima.zone", -"*.transurl.be", -"*.transurl.eu", -"*.transurl.nl", -"tuxfamily.org", -"dd-dns.de", -"diskstation.eu", -"diskstation.org", -"dray-dns.de", -"draydns.de", -"dyn-vpn.de", -"dynvpn.de", -"mein-vigor.de", -"my-vigor.de", -"my-wan.de", -"syno-ds.de", -"synology-diskstation.de", -"synology-ds.de", -"uber.space", -"*.uberspace.de", -"hk.com", -"hk.org", -"ltd.hk", -"inc.hk", -"virtualuser.de", -"virtual-user.de", -"urown.cloud", -"dnsupdate.info", -"lib.de.us", -"2038.io", -"router.management", -"v-info.info", -"voorloper.cloud", -"v.ua", -"wafflecell.com", -"*.webhare.dev", -"wedeploy.io", -"wedeploy.me", -"wedeploy.sh", -"remotewd.com", -"wmflabs.org", -"myforum.community", -"community-pro.de", -"diskussionsbereich.de", -"community-pro.net", -"meinforum.net", -"half.host", -"xnbay.com", -"u2.xnbay.com", -"u2-local.xnbay.com", -"cistron.nl", -"demon.nl", -"xs4all.space", -"yandexcloud.net", -"storage.yandexcloud.net", -"website.yandexcloud.net", -"official.academy", -"yolasite.com", -"ybo.faith", -"yombo.me", -"homelink.one", -"ybo.party", -"ybo.review", -"ybo.science", -"ybo.trade", -"nohost.me", -"noho.st", -"za.net", -"za.org", -"now.sh", -"bss.design", -"basicserver.io", -"virtualserver.io", -"enterprisecloud.nu" -] \ No newline at end of file diff --git a/deps/npm/node_modules/psl/dist/psl.js b/deps/npm/node_modules/psl/dist/psl.js deleted file mode 100644 index f4b9b8925bcf3a..00000000000000 --- a/deps/npm/node_modules/psl/dist/psl.js +++ /dev/null @@ -1,9645 +0,0 @@ -(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.psl = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i= punySuffix.length) { - // return memo; - // } - //} - return rule; - }, null); -}; - - -// -// Error codes and messages. -// -exports.errorCodes = { - DOMAIN_TOO_SHORT: 'Domain name too short.', - DOMAIN_TOO_LONG: 'Domain name too long. It should be no more than 255 chars.', - LABEL_STARTS_WITH_DASH: 'Domain name label can not start with a dash.', - LABEL_ENDS_WITH_DASH: 'Domain name label can not end with a dash.', - LABEL_TOO_LONG: 'Domain name label should be at most 63 chars long.', - LABEL_TOO_SHORT: 'Domain name label should be at least 1 character long.', - LABEL_INVALID_CHARS: 'Domain name label can only contain alphanumeric characters or dashes.' -}; - - -// -// Validate domain name and throw if not valid. -// -// From wikipedia: -// -// Hostnames are composed of series of labels concatenated with dots, as are all -// domain names. Each label must be between 1 and 63 characters long, and the -// entire hostname (including the delimiting dots) has a maximum of 255 chars. -// -// Allowed chars: -// -// * `a-z` -// * `0-9` -// * `-` but not as a starting or ending character -// * `.` as a separator for the textual portions of a domain name -// -// * http://en.wikipedia.org/wiki/Domain_name -// * http://en.wikipedia.org/wiki/Hostname -// -internals.validate = function (input) { - - // Before we can validate we need to take care of IDNs with unicode chars. - var ascii = Punycode.toASCII(input); - - if (ascii.length < 1) { - return 'DOMAIN_TOO_SHORT'; - } - if (ascii.length > 255) { - return 'DOMAIN_TOO_LONG'; - } - - // Check each part's length and allowed chars. - var labels = ascii.split('.'); - var label; - - for (var i = 0; i < labels.length; ++i) { - label = labels[i]; - if (!label.length) { - return 'LABEL_TOO_SHORT'; - } - if (label.length > 63) { - return 'LABEL_TOO_LONG'; - } - if (label.charAt(0) === '-') { - return 'LABEL_STARTS_WITH_DASH'; - } - if (label.charAt(label.length - 1) === '-') { - return 'LABEL_ENDS_WITH_DASH'; - } - if (!/^[a-z0-9\-]+$/.test(label)) { - return 'LABEL_INVALID_CHARS'; - } - } -}; - - -// -// Public API -// - - -// -// Parse domain. -// -exports.parse = function (input) { - - if (typeof input !== 'string') { - throw new TypeError('Domain name must be a string.'); - } - - // Force domain to lowercase. - var domain = input.slice(0).toLowerCase(); - - // Handle FQDN. - // TODO: Simply remove trailing dot? - if (domain.charAt(domain.length - 1) === '.') { - domain = domain.slice(0, domain.length - 1); - } - - // Validate and sanitise input. - var error = internals.validate(domain); - if (error) { - return { - input: input, - error: { - message: exports.errorCodes[error], - code: error - } - }; - } - - var parsed = { - input: input, - tld: null, - sld: null, - domain: null, - subdomain: null, - listed: false - }; - - var domainParts = domain.split('.'); - - // Non-Internet TLD - if (domainParts[domainParts.length - 1] === 'local') { - return parsed; - } - - var handlePunycode = function () { - - if (!/xn--/.test(domain)) { - return parsed; - } - if (parsed.domain) { - parsed.domain = Punycode.toASCII(parsed.domain); - } - if (parsed.subdomain) { - parsed.subdomain = Punycode.toASCII(parsed.subdomain); - } - return parsed; - }; - - var rule = internals.findRule(domain); - - // Unlisted tld. - if (!rule) { - if (domainParts.length < 2) { - return parsed; - } - parsed.tld = domainParts.pop(); - parsed.sld = domainParts.pop(); - parsed.domain = [parsed.sld, parsed.tld].join('.'); - if (domainParts.length) { - parsed.subdomain = domainParts.pop(); - } - return handlePunycode(); - } - - // At this point we know the public suffix is listed. - parsed.listed = true; - - var tldParts = rule.suffix.split('.'); - var privateParts = domainParts.slice(0, domainParts.length - tldParts.length); - - if (rule.exception) { - privateParts.push(tldParts.shift()); - } - - parsed.tld = tldParts.join('.'); - - if (!privateParts.length) { - return handlePunycode(); - } - - if (rule.wildcard) { - tldParts.unshift(privateParts.pop()); - parsed.tld = tldParts.join('.'); - } - - if (!privateParts.length) { - return handlePunycode(); - } - - parsed.sld = privateParts.pop(); - parsed.domain = [parsed.sld, parsed.tld].join('.'); - - if (privateParts.length) { - parsed.subdomain = privateParts.join('.'); - } - - return handlePunycode(); -}; - - -// -// Get domain. -// -exports.get = function (domain) { - - if (!domain) { - return null; - } - return exports.parse(domain).domain || null; -}; - - -// -// Check whether domain belongs to a known public suffix. -// -exports.isValid = function (domain) { - - var parsed = exports.parse(domain); - return Boolean(parsed.domain && parsed.listed); -}; - -},{"./data/rules.json":1,"punycode":3}],3:[function(require,module,exports){ -(function (global){ -/*! https://mths.be/punycode v1.4.1 by @mathias */ -;(function(root) { - - /** Detect free variables */ - var freeExports = typeof exports == 'object' && exports && - !exports.nodeType && exports; - var freeModule = typeof module == 'object' && module && - !module.nodeType && module; - var freeGlobal = typeof global == 'object' && global; - if ( - freeGlobal.global === freeGlobal || - freeGlobal.window === freeGlobal || - freeGlobal.self === freeGlobal - ) { - root = freeGlobal; - } - - /** - * The `punycode` object. - * @name punycode - * @type Object - */ - var punycode, - - /** Highest positive signed 32-bit float value */ - maxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1 - - /** Bootstring parameters */ - base = 36, - tMin = 1, - tMax = 26, - skew = 38, - damp = 700, - initialBias = 72, - initialN = 128, // 0x80 - delimiter = '-', // '\x2D' - - /** Regular expressions */ - regexPunycode = /^xn--/, - regexNonASCII = /[^\x20-\x7E]/, // unprintable ASCII chars + non-ASCII chars - regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g, // RFC 3490 separators - - /** Error messages */ - errors = { - 'overflow': 'Overflow: input needs wider integers to process', - 'not-basic': 'Illegal input >= 0x80 (not a basic code point)', - 'invalid-input': 'Invalid input' - }, - - /** Convenience shortcuts */ - baseMinusTMin = base - tMin, - floor = Math.floor, - stringFromCharCode = String.fromCharCode, - - /** Temporary variable */ - key; - - /*--------------------------------------------------------------------------*/ - - /** - * A generic error utility function. - * @private - * @param {String} type The error type. - * @returns {Error} Throws a `RangeError` with the applicable error message. - */ - function error(type) { - throw new RangeError(errors[type]); - } - - /** - * A generic `Array#map` utility function. - * @private - * @param {Array} array The array to iterate over. - * @param {Function} callback The function that gets called for every array - * item. - * @returns {Array} A new array of values returned by the callback function. - */ - function map(array, fn) { - var length = array.length; - var result = []; - while (length--) { - result[length] = fn(array[length]); - } - return result; - } - - /** - * A simple `Array#map`-like wrapper to work with domain name strings or email - * addresses. - * @private - * @param {String} domain The domain name or email address. - * @param {Function} callback The function that gets called for every - * character. - * @returns {Array} A new string of characters returned by the callback - * function. - */ - function mapDomain(string, fn) { - var parts = string.split('@'); - var result = ''; - if (parts.length > 1) { - // In email addresses, only the domain name should be punycoded. Leave - // the local part (i.e. everything up to `@`) intact. - result = parts[0] + '@'; - string = parts[1]; - } - // Avoid `split(regex)` for IE8 compatibility. See #17. - string = string.replace(regexSeparators, '\x2E'); - var labels = string.split('.'); - var encoded = map(labels, fn).join('.'); - return result + encoded; - } - - /** - * Creates an array containing the numeric code points of each Unicode - * character in the string. While JavaScript uses UCS-2 internally, - * this function will convert a pair of surrogate halves (each of which - * UCS-2 exposes as separate characters) into a single code point, - * matching UTF-16. - * @see `punycode.ucs2.encode` - * @see - * @memberOf punycode.ucs2 - * @name decode - * @param {String} string The Unicode input string (UCS-2). - * @returns {Array} The new array of code points. - */ - function ucs2decode(string) { - var output = [], - counter = 0, - length = string.length, - value, - extra; - while (counter < length) { - value = string.charCodeAt(counter++); - if (value >= 0xD800 && value <= 0xDBFF && counter < length) { - // high surrogate, and there is a next character - extra = string.charCodeAt(counter++); - if ((extra & 0xFC00) == 0xDC00) { // low surrogate - output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); - } else { - // unmatched surrogate; only append this code unit, in case the next - // code unit is the high surrogate of a surrogate pair - output.push(value); - counter--; - } - } else { - output.push(value); - } - } - return output; - } - - /** - * Creates a string based on an array of numeric code points. - * @see `punycode.ucs2.decode` - * @memberOf punycode.ucs2 - * @name encode - * @param {Array} codePoints The array of numeric code points. - * @returns {String} The new Unicode string (UCS-2). - */ - function ucs2encode(array) { - return map(array, function(value) { - var output = ''; - if (value > 0xFFFF) { - value -= 0x10000; - output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800); - value = 0xDC00 | value & 0x3FF; - } - output += stringFromCharCode(value); - return output; - }).join(''); - } - - /** - * Converts a basic code point into a digit/integer. - * @see `digitToBasic()` - * @private - * @param {Number} codePoint The basic numeric code point value. - * @returns {Number} The numeric value of a basic code point (for use in - * representing integers) in the range `0` to `base - 1`, or `base` if - * the code point does not represent a value. - */ - function basicToDigit(codePoint) { - if (codePoint - 48 < 10) { - return codePoint - 22; - } - if (codePoint - 65 < 26) { - return codePoint - 65; - } - if (codePoint - 97 < 26) { - return codePoint - 97; - } - return base; - } - - /** - * Converts a digit/integer into a basic code point. - * @see `basicToDigit()` - * @private - * @param {Number} digit The numeric value of a basic code point. - * @returns {Number} The basic code point whose value (when used for - * representing integers) is `digit`, which needs to be in the range - * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is - * used; else, the lowercase form is used. The behavior is undefined - * if `flag` is non-zero and `digit` has no uppercase form. - */ - function digitToBasic(digit, flag) { - // 0..25 map to ASCII a..z or A..Z - // 26..35 map to ASCII 0..9 - return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5); - } - - /** - * Bias adaptation function as per section 3.4 of RFC 3492. - * https://tools.ietf.org/html/rfc3492#section-3.4 - * @private - */ - function adapt(delta, numPoints, firstTime) { - var k = 0; - delta = firstTime ? floor(delta / damp) : delta >> 1; - delta += floor(delta / numPoints); - for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) { - delta = floor(delta / baseMinusTMin); - } - return floor(k + (baseMinusTMin + 1) * delta / (delta + skew)); - } - - /** - * Converts a Punycode string of ASCII-only symbols to a string of Unicode - * symbols. - * @memberOf punycode - * @param {String} input The Punycode string of ASCII-only symbols. - * @returns {String} The resulting string of Unicode symbols. - */ - function decode(input) { - // Don't use UCS-2 - var output = [], - inputLength = input.length, - out, - i = 0, - n = initialN, - bias = initialBias, - basic, - j, - index, - oldi, - w, - k, - digit, - t, - /** Cached calculation results */ - baseMinusT; - - // Handle the basic code points: let `basic` be the number of input code - // points before the last delimiter, or `0` if there is none, then copy - // the first basic code points to the output. - - basic = input.lastIndexOf(delimiter); - if (basic < 0) { - basic = 0; - } - - for (j = 0; j < basic; ++j) { - // if it's not a basic code point - if (input.charCodeAt(j) >= 0x80) { - error('not-basic'); - } - output.push(input.charCodeAt(j)); - } - - // Main decoding loop: start just after the last delimiter if any basic code - // points were copied; start at the beginning otherwise. - - for (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) { - - // `index` is the index of the next character to be consumed. - // Decode a generalized variable-length integer into `delta`, - // which gets added to `i`. The overflow checking is easier - // if we increase `i` as we go, then subtract off its starting - // value at the end to obtain `delta`. - for (oldi = i, w = 1, k = base; /* no condition */; k += base) { - - if (index >= inputLength) { - error('invalid-input'); - } - - digit = basicToDigit(input.charCodeAt(index++)); - - if (digit >= base || digit > floor((maxInt - i) / w)) { - error('overflow'); - } - - i += digit * w; - t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); - - if (digit < t) { - break; - } - - baseMinusT = base - t; - if (w > floor(maxInt / baseMinusT)) { - error('overflow'); - } - - w *= baseMinusT; - - } - - out = output.length + 1; - bias = adapt(i - oldi, out, oldi == 0); - - // `i` was supposed to wrap around from `out` to `0`, - // incrementing `n` each time, so we'll fix that now: - if (floor(i / out) > maxInt - n) { - error('overflow'); - } - - n += floor(i / out); - i %= out; - - // Insert `n` at position `i` of the output - output.splice(i++, 0, n); - - } - - return ucs2encode(output); - } - - /** - * Converts a string of Unicode symbols (e.g. a domain name label) to a - * Punycode string of ASCII-only symbols. - * @memberOf punycode - * @param {String} input The string of Unicode symbols. - * @returns {String} The resulting Punycode string of ASCII-only symbols. - */ - function encode(input) { - var n, - delta, - handledCPCount, - basicLength, - bias, - j, - m, - q, - k, - t, - currentValue, - output = [], - /** `inputLength` will hold the number of code points in `input`. */ - inputLength, - /** Cached calculation results */ - handledCPCountPlusOne, - baseMinusT, - qMinusT; - - // Convert the input in UCS-2 to Unicode - input = ucs2decode(input); - - // Cache the length - inputLength = input.length; - - // Initialize the state - n = initialN; - delta = 0; - bias = initialBias; - - // Handle the basic code points - for (j = 0; j < inputLength; ++j) { - currentValue = input[j]; - if (currentValue < 0x80) { - output.push(stringFromCharCode(currentValue)); - } - } - - handledCPCount = basicLength = output.length; - - // `handledCPCount` is the number of code points that have been handled; - // `basicLength` is the number of basic code points. - - // Finish the basic string - if it is not empty - with a delimiter - if (basicLength) { - output.push(delimiter); - } - - // Main encoding loop: - while (handledCPCount < inputLength) { - - // All non-basic code points < n have been handled already. Find the next - // larger one: - for (m = maxInt, j = 0; j < inputLength; ++j) { - currentValue = input[j]; - if (currentValue >= n && currentValue < m) { - m = currentValue; - } - } - - // Increase `delta` enough to advance the decoder's state to , - // but guard against overflow - handledCPCountPlusOne = handledCPCount + 1; - if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) { - error('overflow'); - } - - delta += (m - n) * handledCPCountPlusOne; - n = m; - - for (j = 0; j < inputLength; ++j) { - currentValue = input[j]; - - if (currentValue < n && ++delta > maxInt) { - error('overflow'); - } - - if (currentValue == n) { - // Represent delta as a generalized variable-length integer - for (q = delta, k = base; /* no condition */; k += base) { - t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); - if (q < t) { - break; - } - qMinusT = q - t; - baseMinusT = base - t; - output.push( - stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)) - ); - q = floor(qMinusT / baseMinusT); - } - - output.push(stringFromCharCode(digitToBasic(q, 0))); - bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength); - delta = 0; - ++handledCPCount; - } - } - - ++delta; - ++n; - - } - return output.join(''); - } - - /** - * Converts a Punycode string representing a domain name or an email address - * to Unicode. Only the Punycoded parts of the input will be converted, i.e. - * it doesn't matter if you call it on a string that has already been - * converted to Unicode. - * @memberOf punycode - * @param {String} input The Punycoded domain name or email address to - * convert to Unicode. - * @returns {String} The Unicode representation of the given Punycode - * string. - */ - function toUnicode(input) { - return mapDomain(input, function(string) { - return regexPunycode.test(string) - ? decode(string.slice(4).toLowerCase()) - : string; - }); - } - - /** - * Converts a Unicode string representing a domain name or an email address to - * Punycode. Only the non-ASCII parts of the domain name will be converted, - * i.e. it doesn't matter if you call it with a domain that's already in - * ASCII. - * @memberOf punycode - * @param {String} input The domain name or email address to convert, as a - * Unicode string. - * @returns {String} The Punycode representation of the given domain name or - * email address. - */ - function toASCII(input) { - return mapDomain(input, function(string) { - return regexNonASCII.test(string) - ? 'xn--' + encode(string) - : string; - }); - } - - /*--------------------------------------------------------------------------*/ - - /** Define the public API */ - punycode = { - /** - * A string representing the current Punycode.js version number. - * @memberOf punycode - * @type String - */ - 'version': '1.4.1', - /** - * An object of methods to convert from JavaScript's internal character - * representation (UCS-2) to Unicode code points, and back. - * @see - * @memberOf punycode - * @type Object - */ - 'ucs2': { - 'decode': ucs2decode, - 'encode': ucs2encode - }, - 'decode': decode, - 'encode': encode, - 'toASCII': toASCII, - 'toUnicode': toUnicode - }; - - /** Expose `punycode` */ - // Some AMD build optimizers, like r.js, check for specific condition patterns - // like the following: - if ( - typeof define == 'function' && - typeof define.amd == 'object' && - define.amd - ) { - define('punycode', function() { - return punycode; - }); - } else if (freeExports && freeModule) { - if (module.exports == freeExports) { - // in Node.js, io.js, or RingoJS v0.8.0+ - freeModule.exports = punycode; - } else { - // in Narwhal or RingoJS v0.7.0- - for (key in punycode) { - punycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]); - } - } - } else { - // in Rhino or a web browser - root.punycode = punycode; - } - -}(this)); - -}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{}]},{},[2])(2) -}); diff --git a/deps/npm/node_modules/psl/dist/psl.min.js b/deps/npm/node_modules/psl/dist/psl.min.js deleted file mode 100644 index d5c787e4862e64..00000000000000 --- a/deps/npm/node_modules/psl/dist/psl.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).psl=a()}}(function(){return function s(m,t,u){function r(o,a){if(!t[o]){if(!m[o]){var i="function"==typeof require&&require;if(!a&&i)return i(o,!0);if(p)return p(o,!0);var e=new Error("Cannot find module '"+o+"'");throw e.code="MODULE_NOT_FOUND",e}var n=t[o]={exports:{}};m[o][0].call(n.exports,function(a){return r(m[o][1][a]||a)},n,n.exports,s,m,t,u)}return t[o].exports}for(var p="function"==typeof require&&require,a=0;a= 0x80 (not a basic code point)","invalid-input":"Invalid input"},c=b-y,x=Math.floor,q=String.fromCharCode;function A(a){throw new RangeError(k[a])}function l(a,o){for(var i=a.length,e=[];i--;)e[i]=o(a[i]);return e}function g(a,o){var i=a.split("@"),e="";return 1>>10&1023|55296),a=56320|1023&a),o+=q(a)}).join("")}function L(a,o){return a+22+75*(a<26)-((0!=o)<<5)}function I(a,o,i){var e=0;for(a=i?x(a/t):a>>1,a+=x(a/o);c*f>>1x((d-g)/m))&&A("overflow"),g+=u*m,!(u<(r=t<=j?y:j+f<=t?f:t-j));t+=b)m>x(d/(p=b-r))&&A("overflow"),m*=p;j=I(g-s,o=c.length+1,0==s),x(g/o)>d-h&&A("overflow"),h+=x(g/o),g%=o,c.splice(g++,0,h)}return _(c)}function j(a){var o,i,e,n,s,m,t,u,r,p,k,c,l,g,h,j=[];for(c=(a=O(a)).length,o=w,s=v,m=i=0;mx((d-i)/(l=e+1))&&A("overflow"),i+=(t-o)*l,o=t,m=0;md&&A("overflow"),k==o){for(u=i,r=b;!(u<(p=r<=s?y:s+f<=r?f:r-s));r+=b)h=u-p,g=b-p,j.push(q(L(p+h%g,0))),u=x(h/g);j.push(q(L(u,0))),s=I(i,l,e==n),i=0,++e}++i,++o}return j.join("")}if(n={version:"1.4.1",ucs2:{decode:O,encode:_},decode:h,encode:j,toASCII:function(a){return g(a,function(a){return r.test(a)?"xn--"+j(a):a})},toUnicode:function(a){return g(a,function(a){return u.test(a)?h(a.slice(4).toLowerCase()):a})}},0,o&&i)if(T.exports==o)i.exports=n;else for(s in n)n.hasOwnProperty(s)&&(o[s]=n[s]);else a.punycode=n}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[2])(2)}); diff --git a/deps/npm/node_modules/psl/index.js b/deps/npm/node_modules/psl/index.js deleted file mode 100644 index da7bc12136cbbe..00000000000000 --- a/deps/npm/node_modules/psl/index.js +++ /dev/null @@ -1,269 +0,0 @@ -/*eslint no-var:0, prefer-arrow-callback: 0, object-shorthand: 0 */ -'use strict'; - - -var Punycode = require('punycode'); - - -var internals = {}; - - -// -// Read rules from file. -// -internals.rules = require('./data/rules.json').map(function (rule) { - - return { - rule: rule, - suffix: rule.replace(/^(\*\.|\!)/, ''), - punySuffix: -1, - wildcard: rule.charAt(0) === '*', - exception: rule.charAt(0) === '!' - }; -}); - - -// -// Check is given string ends with `suffix`. -// -internals.endsWith = function (str, suffix) { - - return str.indexOf(suffix, str.length - suffix.length) !== -1; -}; - - -// -// Find rule for a given domain. -// -internals.findRule = function (domain) { - - var punyDomain = Punycode.toASCII(domain); - return internals.rules.reduce(function (memo, rule) { - - if (rule.punySuffix === -1){ - rule.punySuffix = Punycode.toASCII(rule.suffix); - } - if (!internals.endsWith(punyDomain, '.' + rule.punySuffix) && punyDomain !== rule.punySuffix) { - return memo; - } - // This has been commented out as it never seems to run. This is because - // sub tlds always appear after their parents and we never find a shorter - // match. - //if (memo) { - // var memoSuffix = Punycode.toASCII(memo.suffix); - // if (memoSuffix.length >= punySuffix.length) { - // return memo; - // } - //} - return rule; - }, null); -}; - - -// -// Error codes and messages. -// -exports.errorCodes = { - DOMAIN_TOO_SHORT: 'Domain name too short.', - DOMAIN_TOO_LONG: 'Domain name too long. It should be no more than 255 chars.', - LABEL_STARTS_WITH_DASH: 'Domain name label can not start with a dash.', - LABEL_ENDS_WITH_DASH: 'Domain name label can not end with a dash.', - LABEL_TOO_LONG: 'Domain name label should be at most 63 chars long.', - LABEL_TOO_SHORT: 'Domain name label should be at least 1 character long.', - LABEL_INVALID_CHARS: 'Domain name label can only contain alphanumeric characters or dashes.' -}; - - -// -// Validate domain name and throw if not valid. -// -// From wikipedia: -// -// Hostnames are composed of series of labels concatenated with dots, as are all -// domain names. Each label must be between 1 and 63 characters long, and the -// entire hostname (including the delimiting dots) has a maximum of 255 chars. -// -// Allowed chars: -// -// * `a-z` -// * `0-9` -// * `-` but not as a starting or ending character -// * `.` as a separator for the textual portions of a domain name -// -// * http://en.wikipedia.org/wiki/Domain_name -// * http://en.wikipedia.org/wiki/Hostname -// -internals.validate = function (input) { - - // Before we can validate we need to take care of IDNs with unicode chars. - var ascii = Punycode.toASCII(input); - - if (ascii.length < 1) { - return 'DOMAIN_TOO_SHORT'; - } - if (ascii.length > 255) { - return 'DOMAIN_TOO_LONG'; - } - - // Check each part's length and allowed chars. - var labels = ascii.split('.'); - var label; - - for (var i = 0; i < labels.length; ++i) { - label = labels[i]; - if (!label.length) { - return 'LABEL_TOO_SHORT'; - } - if (label.length > 63) { - return 'LABEL_TOO_LONG'; - } - if (label.charAt(0) === '-') { - return 'LABEL_STARTS_WITH_DASH'; - } - if (label.charAt(label.length - 1) === '-') { - return 'LABEL_ENDS_WITH_DASH'; - } - if (!/^[a-z0-9\-]+$/.test(label)) { - return 'LABEL_INVALID_CHARS'; - } - } -}; - - -// -// Public API -// - - -// -// Parse domain. -// -exports.parse = function (input) { - - if (typeof input !== 'string') { - throw new TypeError('Domain name must be a string.'); - } - - // Force domain to lowercase. - var domain = input.slice(0).toLowerCase(); - - // Handle FQDN. - // TODO: Simply remove trailing dot? - if (domain.charAt(domain.length - 1) === '.') { - domain = domain.slice(0, domain.length - 1); - } - - // Validate and sanitise input. - var error = internals.validate(domain); - if (error) { - return { - input: input, - error: { - message: exports.errorCodes[error], - code: error - } - }; - } - - var parsed = { - input: input, - tld: null, - sld: null, - domain: null, - subdomain: null, - listed: false - }; - - var domainParts = domain.split('.'); - - // Non-Internet TLD - if (domainParts[domainParts.length - 1] === 'local') { - return parsed; - } - - var handlePunycode = function () { - - if (!/xn--/.test(domain)) { - return parsed; - } - if (parsed.domain) { - parsed.domain = Punycode.toASCII(parsed.domain); - } - if (parsed.subdomain) { - parsed.subdomain = Punycode.toASCII(parsed.subdomain); - } - return parsed; - }; - - var rule = internals.findRule(domain); - - // Unlisted tld. - if (!rule) { - if (domainParts.length < 2) { - return parsed; - } - parsed.tld = domainParts.pop(); - parsed.sld = domainParts.pop(); - parsed.domain = [parsed.sld, parsed.tld].join('.'); - if (domainParts.length) { - parsed.subdomain = domainParts.pop(); - } - return handlePunycode(); - } - - // At this point we know the public suffix is listed. - parsed.listed = true; - - var tldParts = rule.suffix.split('.'); - var privateParts = domainParts.slice(0, domainParts.length - tldParts.length); - - if (rule.exception) { - privateParts.push(tldParts.shift()); - } - - parsed.tld = tldParts.join('.'); - - if (!privateParts.length) { - return handlePunycode(); - } - - if (rule.wildcard) { - tldParts.unshift(privateParts.pop()); - parsed.tld = tldParts.join('.'); - } - - if (!privateParts.length) { - return handlePunycode(); - } - - parsed.sld = privateParts.pop(); - parsed.domain = [parsed.sld, parsed.tld].join('.'); - - if (privateParts.length) { - parsed.subdomain = privateParts.join('.'); - } - - return handlePunycode(); -}; - - -// -// Get domain. -// -exports.get = function (domain) { - - if (!domain) { - return null; - } - return exports.parse(domain).domain || null; -}; - - -// -// Check whether domain belongs to a known public suffix. -// -exports.isValid = function (domain) { - - var parsed = exports.parse(domain); - return Boolean(parsed.domain && parsed.listed); -}; diff --git a/deps/npm/node_modules/psl/package.json b/deps/npm/node_modules/psl/package.json deleted file mode 100644 index ee2da19fa2d628..00000000000000 --- a/deps/npm/node_modules/psl/package.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "psl", - "version": "1.8.0", - "description": "Domain name parser based on the Public Suffix List", - "repository": { - "type": "git", - "url": "git@github.com:lupomontero/psl.git" - }, - "main": "index.js", - "scripts": { - "pretest": "eslint .", - "test": "mocha test && karma start ./karma.conf.js --single-run", - "watch": "mocha test --watch", - "prebuild": "./scripts/update-rules.js", - "build": "browserify ./index.js --standalone=psl > ./dist/psl.js", - "postbuild": "cat ./dist/psl.js | uglifyjs -c -m > ./dist/psl.min.js", - "commit-and-pr": "commit-and-pr", - "changelog": "git log $(git describe --tags --abbrev=0)..HEAD --oneline --format=\"%h %s (%an <%ae>)\"" - }, - "keywords": [ - "publicsuffix", - "publicsuffixlist" - ], - "author": "Lupo Montero (https://lupomontero.com/)", - "license": "MIT", - "devDependencies": { - "JSONStream": "^1.3.5", - "browserify": "^16.5.0", - "commit-and-pr": "^1.0.4", - "eslint": "^6.8.0", - "eslint-config-hapi": "^12.0.0", - "eslint-plugin-hapi": "^4.1.0", - "karma": "^4.4.1", - "karma-browserify": "^7.0.0", - "karma-mocha": "^1.3.0", - "karma-mocha-reporter": "^2.2.5", - "karma-phantomjs-launcher": "^1.0.4", - "mocha": "^7.1.1", - "phantomjs-prebuilt": "^2.1.16", - "request": "^2.88.2", - "uglify-js": "^3.8.0", - "watchify": "^3.11.1" - } -} diff --git a/deps/npm/node_modules/puka/CHANGELOG.md b/deps/npm/node_modules/puka/CHANGELOG.md deleted file mode 100644 index 781b81295a4a7f..00000000000000 --- a/deps/npm/node_modules/puka/CHANGELOG.md +++ /dev/null @@ -1,31 +0,0 @@ -# Changelog -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [1.0.1](https://gitlab.com/rhendric/puka/-/compare/v1.0.0...v1.0.1) - 2020-05-16 - -### Fixed - -- Add more carets to win32 command arguments ([45965ca](https://gitlab.com/rhendric/puka/-/commit/45965ca60fcc518082e0b085d8e81f3f3279ffb4)) - - As previously documented and implemented, Puka assumed that all programs - are batch files for the purpose of multi-escaping commands that appear - in pipelines. However, regardless of whether a command is in a pipeline, - one extra layer of escaping is needed if the command invokes a batch - file, which Puka was not producing. This only applies to the arguments - to the command, not to the batch file path, nor to paths used in - redirects. (The property-based spawn test which was supposed to catch - such oversights missed this one because it was invoking the Node.js - executable directly, not, as recommended in the documentation, a batch - file.) - - Going forward, the caveats described in the documentation continue to - apply: if you are running programs on Windows with Puka, make sure they - are batch files, or you may find arguments are being escaped with too - many carets. As the documentation says, if this causes problems for you, - please open an issue so we can work out the details of what a good - workaround looks like. - -## [1.0.0](https://gitlab.com/rhendric/puka/-/tags/v1.0.0) - 2017-09-29 diff --git a/deps/npm/node_modules/puka/LICENSE.txt b/deps/npm/node_modules/puka/LICENSE.txt deleted file mode 100644 index 0141196a593376..00000000000000 --- a/deps/npm/node_modules/puka/LICENSE.txt +++ /dev/null @@ -1,18 +0,0 @@ -Copyright 2017 Ryan Hendrickson - -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/deps/npm/node_modules/puka/README.md b/deps/npm/node_modules/puka/README.md deleted file mode 100644 index edbda4d3a29fb9..00000000000000 --- a/deps/npm/node_modules/puka/README.md +++ /dev/null @@ -1,411 +0,0 @@ -# Puka - -[![GitLab CI pipeline status](https://gitlab.com/rhendric/puka/badges/master/pipeline.svg)](https://gitlab.com/rhendric/puka/commits/master) [![AppVeyor build status](https://img.shields.io/appveyor/ci/rhendric/puka.svg?label=windows%20tests)](https://ci.appveyor.com/project/rhendric/puka) [![Codecov status](https://img.shields.io/codecov/c/gl/rhendric/puka.svg)](https://codecov.io/gl/rhendric/puka) - -Puka is a cross-platform library for safely passing strings through shells. - -#### Contents - -- [Introduction](#introduction) - - [Why would I use Puka?](#why-would-i-use-puka) - - [How do I use Puka?](#how-do-i-use-puka) - - [What's the catch?](#whats-the-catch) -- [API Documentation](#api-documentation) - - [Basic API](#basic-api) - - [sh](#sh) - - [unquoted](#unquoted) - - [Advanced API](#advanced-api) - - [quoteForShell](#quoteforshell) - - [quoteForCmd](#quoteforcmd) - - [quoteForSh](#quoteforsh) - - [ShellString](#shellstring) - - [Secret API](#secret-api) -- [The sh DSL](#the-sh-dsl) - - [Syntax](#syntax) - - [Semantics](#semantics) - - [Types of placeholders](#types-of-placeholders) - -## Introduction - -### Why would I use Puka? - -When launching a child process from Node, you have a choice between launching -directly from the operating system (as with [child_process.spawn](https://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options), -if you don't use the `{ shell: true }` option), and running the command through -a shell (as with [child_process.exec](https://nodejs.org/api/child_process.html#child_process_child_process_exec_command_options_callback)). -Using a shell gives you more power, such as the ability to chain multiple -commands together or use redirection, but you have to construct your command as -a single string instead of using an array of arguments. And doing that can be -buggy (if not dangerous) if you don't take care to quote any arguments -correctly for the shell you're targeting, _and_ the quoting has to be done -differently on Windows and non-Windows shells. - -Puka solves that problem by giving you a simple and platform-agnostic way to -build shell commands with arguments that pass through your shell unaltered and -with no unsafe side effects, **whether you are running on Windows or a -Unix-based OS**. - -### How do I use Puka? - -Puka gives you an `sh` function intended for tagging -[template literals](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals), -which quotes (if necessary) any values interpolated into the template. A simple -example: - -```javascript -const { sh } = require('puka'); -const { execSync } = require('child_process'); - -const arg = 'file with spaces.txt'; -execSync(sh`some-command ${arg}`); -``` - -But Puka supports more than this! See [the `sh` DSL documentation](#the-sh-dsl) -for a detailed description of all the features currently supported. - -### What's the catch? - -Here are the ones I know about: - -Puka does _not_ ensure that the actual commands you're running are -cross-platform. If you're running npm programs, you generally won't have a -problem with that, but if you want to run ``sh`cat file` `` on Windows, you'll -need to depend on something like -[cash-cat](https://www.npmjs.com/package/cash-cat). - -I searched for days for a way to quote or escape line breaks in arguments to -`cmd.exe`, but couldn't find one (regular `^`-prepending and quotation marks -don't seem to cut it). If you know of a way that works, please [open an -issue](https://gitlab.com/rhendric/puka/issues/new) to tell me about it! Until -then, any line break characters (`\r` or `\n`) in values being interpolated by -`sh` will cause an error to be thrown on Windows only. - -Also on Windows, you may notice quoting mistakes if you run commands that -involve invoking a native executable (not a batch file ending in `.cmd` or -`.bat`). Unfortunately, batch files require some extra escaping on Windows, and -Puka assumes all programs are batch files because npm creates batch file shims -for programs it installs (and, if you care about cross-platform, you'll be -using npm programs in your commands). If this causes problems for you, please -[open an issue](https://gitlab.com/rhendric/puka/issues/new); if your situation -is specific enough, there may be workarounds or improvements to Puka to be -found. - -## API Documentation - -### Basic API - - - - -#### sh - -A string template tag for safely constructing cross-platform shell commands. - -An `sh` template is not actually treated as a literal string to be -interpolated; instead, it is a tiny DSL designed to make working with shell -strings safe, simple, and straightforward. To get started quickly, see the -examples below. [More detailed documentation][1] is available -further down. - -##### Examples - -```javascript -const title = '"this" & "that"'; -sh`script --title=${title}`; // => "script '--title=\"this\" & \"that\"'" -// Note: these examples show results for non-Windows platforms. -// On Windows, the above would instead be -// 'script ^^^"--title=\\^^^"this\\^^^" ^^^& \\^^^"that\\^^^"^^^"'. - -const names = ['file1', 'file 2']; -sh`rimraf ${names}.txt`; // => "rimraf file1.txt 'file 2.txt'" - -const cmd1 = ['cat', 'file 1.txt', 'file 2.txt']; -const cmd2 = ['use-input', '-abc']; -sh`${cmd1}|${cmd2}`; // => "cat 'file 1.txt' 'file 2.txt'|use-input -abc" -``` - -Returns **[String][2]** a string formatted for the platform Node is currently -running on. - -#### unquoted - -This function permits raw strings to be interpolated into a `sh` template. - -**IMPORTANT**: If you're using Puka due to security concerns, make sure you -don't pass any untrusted content to `unquoted`. This may be obvious, but -stray punctuation in an `unquoted` section can compromise the safety of the -entire shell command. - -##### Parameters - -- `value` any value (it will be treated as a string) - -##### Examples - -```javascript -const both = true; -sh`foo ${unquoted(both ? '&&' : '||')} bar`; // => 'foo && bar' -``` - -### Advanced API - -If these functions make life easier for you, go ahead and use them; they -are just as well supported as the above. But if you aren't certain you -need them, you probably don't. - - -#### quoteForShell - -Quotes a string for injecting into a shell command. - -This function is exposed for some hypothetical case when the `sh` DSL simply -won't do; `sh` is expected to be the more convenient option almost always. -Compare: - -```javascript -console.log('cmd' + args.map(a => ' ' + quoteForShell(a)).join('')); -console.log(sh`cmd ${args}`); // same as above - -console.log('cmd' + args.map(a => ' ' + quoteForShell(a, true)).join('')); -console.log(sh`cmd "${args}"`); // same as above -``` - -Additionally, on Windows, `sh` checks the entire command string for pipes, -which subtly change how arguments need to be quoted. If your commands may -involve pipes, you are strongly encouraged to use `sh` and not try to roll -your own with `quoteForShell`. - -##### Parameters - -- `text` **[String][2]** to be quoted -- `forceQuote` **[Boolean][3]?** whether to always add quotes even if the string - is already safe. Defaults to `false`. -- `platform` **[String][2]?** a value that `process.platform` might take: - `'win32'`, `'linux'`, etc.; determines how the string is to be formatted. - When omitted, effectively the same as `process.platform`. - -Returns **[String][2]** a string that is safe for the current (or specified) -platform. - -#### quoteForCmd - -A Windows-specific version of [quoteForShell][4]. - -##### Parameters - -- `text` **[String][2]** to be quoted -- `forceQuote` **[Boolean][3]?** whether to always add quotes even if the string - is already safe. Defaults to `false`. - -#### quoteForSh - -A Unix-specific version of [quoteForShell][4]. - -##### Parameters - -- `text` **[String][2]** to be quoted -- `forceQuote` **[Boolean][3]?** whether to always add quotes even if the string - is already safe. Defaults to `false`. - -#### ShellString - -A ShellString represents a shell command after it has been interpolated, but -before it has been formatted for a particular platform. ShellStrings are -useful if you want to prepare a command for a different platform than the -current one, for instance. - -To create a ShellString, use `ShellString.sh` the same way you would use -top-level `sh`. - -##### toString - -A method to format a ShellString into a regular String formatted for a -particular platform. - -###### Parameters - -- `platform` **[String][2]?** a value that `process.platform` might take: - `'win32'`, `'linux'`, etc.; determines how the string is to be formatted. - When omitted, effectively the same as `process.platform`. - -Returns **[String][2]** - -##### sh - -`ShellString.sh` is a template tag just like `sh`; the only difference is -that this function returns a ShellString which has not yet been formatted -into a String. - -Returns **[ShellString][5]** - -### Secret API - -Some internals of string formatting have been exposed for the ambitious and -brave souls who want to try to extend Puka to handle more shells or custom -interpolated values. This ‘secret’ API is partially documented in the code -but not here, and the semantic versioning guarantees on this API are bumped -down by one level: in other words, minor version releases of Puka can change -the secret API in backward-incompatible ways, and patch releases can add or -deprecate functionality. - -If it's not even documented in the code, use at your own risk—no semver -guarantees apply. - - -[1]: #the-sh-dsl - -[2]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String - -[3]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean - -[4]: #quoteforshell - -[5]: #shellstring - -## The sh DSL - -### Syntax - -An `sh` template comprises words, separated by whitespace. Words can contain: - -- text, which is composed of any characters that are not whitespace, single or - double quotes, or any of the special characters - ``# $ & ( ) ; < > \ ` |``; -- quotations, which are matching single or double quotes surrounding any - characters other than the delimiting quote; and -- placeholders, using the standard JavaScript template syntax (`${}`). - (Placeholders may also appear inside quotations.) - -The special characters ``# $ & ( ) ; < > \ ` |``, if unquoted, form their own -words. - -Redirect operators (`<`, `>`, `>>`, `2>`, etc.) receive their own special -handling, as do semicolons. Other than these two exceptions, no attempt is made -to understand any more sophisticated features of shell syntax. - -Standard JavaScript escape sequences, such as `\t`, are honored in the template -literal, and are treated equivalently to the characters they represent. There -is no further mechanism for escaping within the `sh` DSL itself; in particular, -if you want to put quotes inside quotes, you have to use interpolation, like -this: - -```javascript -sh`echo "${'single = \', double = "'}"` // => "echo 'single = '\\'', double = \"'" -``` - -### Semantics - -Words that do not contain placeholders are emitted mostly verbatim to the -output string. Quotations are formatted in the expected style for the target -platform (single quotes for Unix, double quotes for Windows) regardless of the -quotes used in the template literal—as with JavaScript, single and double quotes -are interchangeable, except for the requirement to pair like with like. Unquoted -semicolons are translated to ampersands on Windows; all other special characters -(as enumerated above), when unquoted, are passed as-is to the output for the -shell to interpret. - -Puka may still quote words not containing the above special characters, if they -contain characters that need quoting on the target platform. For example, on -Windows, the character `%` is used for variable interpolation in `cmd.exe`, and -Puka quotes it on on that platform even if it appears unquoted in the template -literal. Consequently, there is no need to be paranoid about quoting anything -that doesn't look alphanumeric inside a `sh` template literal, for fear of being -burned on a different operating system; anything that matches the definition of -‘text’ above will never need manual quoting. - -#### Types of placeholders - -##### Strings - -If a word contains a string placeholder, then the value of the placeholder is -interpolated into the word and the entire word, if necessary, is quoted. If -the placeholder occurs within quotes, no further quoting is performed: - -```javascript -sh`script --file="${'herp derp'}.txt"`; // => "script --file='herp derp.txt'" -``` - -This behavior can be exploited to force consistent quoting, if desired; but -both of the examples below are safe on all platforms: - -```javascript -const words = ['oneword', 'two words']; -sh`minimal ${words[0]}`; // => "minimal oneword" -sh`minimal ${words[1]}`; // => "minimal 'two words'" -sh`consistent '${words[0]}'`; // => "consistent 'oneword'" -sh`consistent '${words[1]}'`; // => "consistent 'two words'" -``` - -##### Arrays and iterables - -If a word contains a placeholder for an array (or other iterable object), then -the entire word is repeated once for each value in the array, separated by -spaces. If the array is empty, then the word is not emitted at all, and neither -is any leading whitespace. - -```javascript -const files = ['foo', 'bar']; -sh`script ${files}`; // => "script foo bar" -sh`script --file=${files}`; // => "script --file=foo --file=bar" -sh`script --file=${[]}`; // => "script" -``` - -Note that, since special characters are their own words, the pipe operator here -is not repeated: - -```javascript -const cmd = ['script', 'foo', 'bar']; -sh`${cmd}|another-script`; // => "script foo bar|another-script" -``` - -Multiple arrays in the same word generate a Cartesian product: - -```javascript -const names = ['foo', 'bar'], exts = ['log', 'txt']; -// Same word -sh`... ${names}.${exts}`; // => "... foo.log foo.txt bar.log bar.txt" -sh`... "${names} ${exts}"`; // => "... 'foo log' 'foo txt' 'bar log' 'bar txt'" - -// Not the same word (extra space just for emphasis): -sh`... ${names} ${exts}`; // => "... foo bar log txt" -sh`... ${names};${exts}`; // => "... foo bar;log txt" -``` - -Finally, if a placeholder appears in the object of a redirect operator, the -entire redirect is repeated as necessary: - -```javascript -sh`script > ${['foo', 'bar']}.txt`; // => "script > foo.txt > bar.txt" -sh`script > ${[]}.txt`; // => "script" -``` - -##### unquoted - -The `unquoted` function returns a value that will skip being quoted when used -in a placeholder, alone or in an array. - -```javascript -const cmd = 'script < input.txt'; -const fields = ['foo', 'bar']; -sh`${unquoted(cmd)} | json ${fields}`; // => "script < input.txt | json foo bar" -``` - -##### ShellString - -If `ShellString.sh` is used to construct an unformatted ShellString, that value -can be used in a placeholder to insert the contents of the ShellString into the -outer template literal. This is safer than using `unquoted` as in the previous -example, but `unquoted` can be used when all you have is a string from another -(trusted!) source. - -```javascript -const url = 'http://example.com/data.json?x=1&y=2'; -const curl = ShellString.sh`curl -L ${url}`; -const fields = ['foo', 'bar']; -sh`${curl} | json ${fields}`; // => "curl -L 'http://example.com/data.json?x=1&y=2' | json foo bar" -``` - -##### Anything else - -... is treated like a string—namely, a value `x` is equivalent to `'' + x`, if -not in one of the above categories. diff --git a/deps/npm/node_modules/puka/index.js b/deps/npm/node_modules/puka/index.js deleted file mode 100644 index b69e47d7639db9..00000000000000 --- a/deps/npm/node_modules/puka/index.js +++ /dev/null @@ -1,804 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, '__esModule', { value: true }); - -/** - * Key a method on your object with this symbol and you can get special - * formatting for that value! See ShellStringText, ShellStringUnquoted, or - * shellStringSemicolon for examples. - * @ignore - */ -const formatSymbol = Symbol('format'); -/** - * This symbol is for implementing advanced behaviors like the need for extra - * carets in Windows shell strings that use pipes. If present, it's called in - * an earlier phase than formatSymbol, and is passed a mutable context that can - * be read during the format phase to influence formatting. - * @ignore - */ -const preformatSymbol = Symbol('preformat'); - -// When minimum Node version becomes 6, replace calls to sticky with /.../y and -// inline execFrom. -let stickySupported = true; -try { - new RegExp('', 'y'); -} catch (e) { - stickySupported = false; -} -const sticky = stickySupported ? source => new RegExp(source, 'y') : source => new RegExp(`^(?:${source})`); -const execFrom = stickySupported ? (re, haystack, index) => (re.lastIndex = index, re.exec(haystack)) : (re, haystack, index) => re.exec(haystack.substr(index)); - -function quoteForCmd(text, forceQuote) { - let caretDepth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; - // See the below blog post for an explanation of this function and - // quoteForWin32: - // https://blogs.msdn.microsoft.com/twistylittlepassagesallalike/2011/04/23/everyone-quotes-command-line-arguments-the-wrong-way/ - if (!text.length) { - return '""'; - } - if (/[\n\r]/.test(text)) { - throw new Error("Line breaks can't be quoted on Windows"); - } - const caretEscape = /["%]/.test(text); - text = quoteForWin32(text, forceQuote || !caretEscape && /[&()<>^|]/.test(text)); - if (caretEscape) { - // See Win32Context for explanation of what caretDepth is for. - do { - text = text.replace(/[\t "%&()<>^|]/g, '^$&'); - } while (caretDepth--); - } - return text; -} -const quoteForWin32 = (text, forceQuote) => forceQuote || /[\t "]/.test(text) ? `"${text.replace(/\\+(?=$|")/g, '$&$&').replace(/"/g, '\\"')}"` : text; -const cmdMetaChars = /[\t\n\r "%&()<>^|]/; -class Win32Context { - constructor() { - this.currentScope = newScope(null); - this.scopesByObject = new Map(); - this.argDetectState = 0; - this.argSet = new Set(); - } - read(text) { - // When cmd.exe executes a batch file, or pipes to or from one, it spawns a - // second copy of itself to run the inner command. This necessitates - // doubling up on carets so that escaped characters survive both cmd.exe - // invocations. See: - // https://stackoverflow.com/questions/8192318/why-does-delayed-expansion-fail-when-inside-a-piped-block-of-code#8194279 - // https://ss64.com/nt/syntax-redirection.html - // - // Parentheses can create an additional subshell, requiring additional - // escaping... it's a mess. - // - // So here's what we do about it: we read all unquoted text in a shell - // string and put it through this tiny parser that looks for pipes, - // sequence operators (&, &&, ||), redirects, and parentheses. This can't - // be part of the main Puka parsing, because it can be affected by - // `unquoted(...)` values provided at evaluation time. - // - // Then, after associating each thing that needs to be quoted with a scope - // (via `mark()`), and identifying whether or not it's an argument to a - // command, we can determine the depth of caret escaping required in each - // scope and pass it (via `Formatter::quote()`) to `quoteForCmd()`. - // - // See also `ShellStringText`, which holds the logic for the previous - // paragraph. - const length = text.length; - for (let pos = 0, match; pos < length;) { - while (match = execFrom(reUnimportant, text, pos)) { - if (match[2] == null) { - // (not whitespace) - if (match[1] != null) { - // (>&) - this.argDetectState = this.argDetectState === 0 ? ADS_FLAG_INITIAL_REDIRECT : 0; - } else if (this.argDetectState !== ADS_FLAG_ARGS) { - this.argDetectState |= ADS_FLAG_WORD; - } - } else { - // (whitespace) - if ((this.argDetectState & ADS_FLAG_WORD) !== 0) { - this.argDetectState = ADS_FLAG_ARGS & ~this.argDetectState >> 1; - } - } - pos += match[0].length; - } - if (pos >= length) break; - if (match = execFrom(reSeqOp, text, pos)) { - this.seq(); - pos += match[0].length; - } else { - const char = text.charCodeAt(pos); - if (char === CARET) { - pos += 2; - } else if (char === QUOTE) { - // If you were foolish enough to leave a dangling quotation mark in - // an unquoted span... you're likely to have bigger problems than - // incorrect escaping. So we just do the simplest thing of looking for - // the end quote only in this piece of text. - pos += execFrom(reNotQuote, text, pos + 1)[0].length + 2; - } else { - if (char === OPEN_PAREN) { - this.enterScope(); - } else if (char === CLOSE_PAREN) { - this.exitScope(); - } else if (char === PIPE) { - this.pipe(); - } else { - // (char === '<' or '>') - this.argDetectState = this.argDetectState === 0 ? ADS_FLAG_INITIAL_REDIRECT : 0; - } - pos++; - } - } - } - } - enterScope() { - this.currentScope = newScope(this.currentScope); - this.argDetectState = 0; - } - exitScope() { - this.currentScope = this.currentScope.parent || (this.currentScope.parent = newScope(null)); - this.argDetectState = ADS_FLAG_ARGS; - } - seq() { - // | binds tighter than sequence operators, so the latter create new sibling - // scopes for future |s to mutate. - this.currentScope = newScope(this.currentScope.parent); - this.argDetectState = 0; - } - pipe() { - this.currentScope.depthDelta = 1; - this.argDetectState = 0; - } - mark(obj) { - this.scopesByObject.set(obj, this.currentScope); - if (this.argDetectState === ADS_FLAG_ARGS) { - this.argSet.add(obj); - } else { - this.argDetectState |= ADS_FLAG_WORD; - } - } - at(obj) { - const scope = this.scopesByObject.get(obj); - return { - depth: getDepth(scope), - isArgument: this.argSet.has(obj), - isNative: scope.isNative - }; - } -} -// These flags span the Win32Context's argument detection state machine. WORD -// is set when the context is inside a word that is not an argument (meaning it -// is either the first word in the command, or it is the object of a redirect). -// ARGS is set when the context has reached the arguments of a command. -// INITIAL_REDIRECT tracks the edge case when a redirect occurs before the -// first word of the command (if this flag is set, reaching the end of a word -// should take the state machine back to 0 instead of setting ADS_FLAG_ARGS). -const ADS_FLAG_WORD = 0x1; -const ADS_FLAG_ARGS = 0x2; -const ADS_FLAG_INITIAL_REDIRECT = 0x4; -const getDepth = scope => scope === null ? 0 : scope.depth !== -1 ? scope.depth : scope.depth = getDepth(scope.parent) + scope.depthDelta; -const newScope = parent => ({ - parent, - depthDelta: 0, - depth: -1, - isNative: false -}); -const CARET = '^'.charCodeAt(); -const QUOTE = '"'.charCodeAt(); -const OPEN_PAREN = '('.charCodeAt(); -const CLOSE_PAREN = ')'.charCodeAt(); -const PIPE = '|'.charCodeAt(); -const reNotQuote = sticky('[^"]*'); -const reSeqOp = sticky('&&?|\\|\\|'); -const reUnimportant = sticky('(\\d*>&)|[^\\s"$&()<>^|]+|(\\s+)'); - -const quoteForSh = (text, forceQuote) => text.length ? forceQuote || shMetaChars.test(text) ? `'${text.replace(/'/g, "'\\''")}'`.replace(/^(?:'')+(?!$)/, '').replace(/\\'''/g, "\\'") : text : "''"; -const shMetaChars = /[\t\n\r "#$&'()*;<>?\\`|~]/; - -/** - * To get a Formatter, call `Formatter.for`. - * - * To create a new Formatter, pass an object to `Formatter.declare`. - * - * To set the global default Formatter, assign to `Formatter.default`. - * - * @class - * @property {Formatter} default - The Formatter to be used when no platform - * is provided—for example, when creating strings with `sh`. - * @ignore - */ -function Formatter() {} -Object.assign(Formatter, -/** @lends Formatter */ -{ - /** - * Gets a Formatter that has been declared for the provided platform, or - * the base `'sh'` formatter if there is no Formatter specific to this - * platform, or the Formatter for the current platform if no specific platform - * is provided. - */ - for(platform) { - return platform == null ? Formatter.default || (Formatter.default = Formatter.for(process.platform)) : Formatter._registry.get(platform) || Formatter._registry.get('sh'); - }, - /** - * Creates a new Formatter or mutates the properties on an existing - * Formatter. The `platform` key on the provided properties object determines - * when the Formatter is retrieved. - */ - declare(props) { - const platform = props && props.platform || 'sh'; - const existingFormatter = Formatter._registry.get(platform); - const formatter = Object.assign(existingFormatter || new Formatter(), props); - formatter.emptyString === void 0 && (formatter.emptyString = formatter.quote('', true)); - existingFormatter || Formatter._registry.set(formatter.platform, formatter); - }, - _registry: new Map(), - prototype: { - platform: 'sh', - quote: quoteForSh, - metaChars: shMetaChars, - hasExtraMetaChars: false, - statementSeparator: ';', - createContext() { - return defaultContext; - } - } -}); -const defaultContext = { - at() {} -}; -Formatter.declare(); -Formatter.declare({ - platform: 'win32', - quote(text, forceQuote, opts) { - const caretDepth = opts ? (opts.depth || 0) + (opts.isArgument && !opts.isNative ? 1 : 0) : 0; - return quoteForCmd(text, forceQuote, caretDepth); - }, - metaChars: cmdMetaChars, - hasExtraMetaChars: true, - statementSeparator: '&', - createContext(root) { - const context = new this.Context(); - root[preformatSymbol](context); - return context; - }, - Context: Win32Context -}); - -const isObject = any => any === Object(any); -function memoize(f) { - const cache = new WeakMap(); - return arg => { - let result = cache.get(arg); - if (result === void 0) { - result = f(arg); - cache.set(arg, result); - } - return result; - }; -} - -/** - * Represents a contiguous span of text that may or must be quoted. The contents - * may already contain quoted segments, which will always be quoted. If unquoted - * segments also require quoting, the entire span will be quoted together. - * @ignore - */ -class ShellStringText { - constructor(contents, untested) { - this.contents = contents; - this.untested = untested; - } - [formatSymbol](formatter, context) { - const unformattedContents = this.contents; - const length = unformattedContents.length; - const contents = new Array(length); - for (let i = 0; i < length; i++) { - const c = unformattedContents[i]; - contents[i] = isObject(c) && formatSymbol in c ? c[formatSymbol](formatter) : c; - } - for (let unquoted = true, i = 0; i < length; i++) { - const content = contents[i]; - if (content === null) { - unquoted = !unquoted; - } else { - if (unquoted && (formatter.hasExtraMetaChars || this.untested && this.untested.has(i)) && formatter.metaChars.test(content)) { - return formatter.quote(contents.join(''), false, context.at(this)); - } - } - } - const parts = []; - for (let quoted = null, i = 0; i < length; i++) { - const content = contents[i]; - if (content === null) { - quoted = quoted ? (parts.push(formatter.quote(quoted.join(''), true, context.at(this))), null) : []; - } else { - (quoted || parts).push(content); - } - } - const result = parts.join(''); - return result.length ? result : formatter.emptyString; - } - [preformatSymbol](context) { - context.mark(this); - } -} - -/** - * Represents a contiguous span of text that will not be quoted. - * @ignore - */ -class ShellStringUnquoted { - constructor(value) { - this.value = value; - } - [formatSymbol]() { - return this.value; - } - [preformatSymbol](context) { - context.read(this.value); - } -} - -/** - * Represents a semicolon... or an ampersand, on Windows. - * @ignore - */ -const shellStringSemicolon = { - [formatSymbol](formatter) { - return formatter.statementSeparator; - }, - [preformatSymbol](context) { - context.seq(); - } -}; - -const PLACEHOLDER = {}; -const parse = memoize(templateSpans => { - // These are the token types our DSL can recognize. Their values won't escape - // this function. - const TOKEN_TEXT = 0; - const TOKEN_QUOTE = 1; - const TOKEN_SEMI = 2; - const TOKEN_UNQUOTED = 3; - const TOKEN_SPACE = 4; - const TOKEN_REDIRECT = 5; - const result = []; - let placeholderCount = 0; - let prefix = null; - let onlyPrefixOnce = false; - let contents = []; - let quote = 0; - const lastSpan = templateSpans.length - 1; - for (let spanIndex = 0; spanIndex <= lastSpan; spanIndex++) { - const templateSpan = templateSpans[spanIndex]; - const posEnd = templateSpan.length; - let tokenStart = 0; - if (spanIndex) { - placeholderCount++; - contents.push(PLACEHOLDER); - } - // For each span, we first do a recognizing pass in which we use regular - // expressions to identify the positions of tokens in the text, and then - // a second pass that actually splits the text into the minimum number of - // substrings necessary. - const recognized = []; // [type1, index1, type2, index2...] - let firstWordBreak = -1; - let lastWordBreak = -1; - { - let pos = 0, - match; - while (pos < posEnd) { - if (quote) { - if (match = execFrom(quote === CHAR_SQUO ? reQuotation1 : reQuotation2, templateSpan, pos)) { - recognized.push(TOKEN_TEXT, pos); - pos += match[0].length; - } - if (pos < posEnd) { - recognized.push(TOKEN_QUOTE, pos++); - quote = 0; - } - } else { - if (match = execFrom(reRedirectOrSpace, templateSpan, pos)) { - firstWordBreak < 0 && (firstWordBreak = pos); - lastWordBreak = pos; - recognized.push(match[1] ? TOKEN_REDIRECT : TOKEN_SPACE, pos); - pos += match[0].length; - } - if (match = execFrom(reText, templateSpan, pos)) { - const setBreaks = match[1] != null; - setBreaks && firstWordBreak < 0 && (firstWordBreak = pos); - recognized.push(setBreaks ? TOKEN_UNQUOTED : TOKEN_TEXT, pos); - pos += match[0].length; - setBreaks && (lastWordBreak = pos); - } - const char = templateSpan.charCodeAt(pos); - if (char === CHAR_SEMI) { - firstWordBreak < 0 && (firstWordBreak = pos); - recognized.push(TOKEN_SEMI, pos++); - lastWordBreak = pos; - } else if (char === CHAR_SQUO || char === CHAR_DQUO) { - recognized.push(TOKEN_QUOTE, pos++); - quote = char; - } - } - } - } - // Word breaks are only important if they separate words with placeholders, - // so we can ignore the first/last break if this is the first/last span. - spanIndex === 0 && (firstWordBreak = -1); - spanIndex === lastSpan && (lastWordBreak = posEnd); - // Here begins the second pass mentioned above. This loop runs one more - // iteration than there are tokens in recognized, because it handles tokens - // on a one-iteration delay; hence the i <= iEnd instead of i < iEnd. - const iEnd = recognized.length; - for (let i = 0, type = -1; i <= iEnd; i += 2) { - let typeNext = -1, - pos; - if (i === iEnd) { - pos = posEnd; - } else { - typeNext = recognized[i]; - pos = recognized[i + 1]; - // If the next token is space or redirect, but there's another word - // break in this span, then we can handle that token the same way we - // would handle unquoted text because it isn't being attached to a - // placeholder. - typeNext >= TOKEN_SPACE && pos !== lastWordBreak && (typeNext = TOKEN_UNQUOTED); - } - const breakHere = pos === firstWordBreak || pos === lastWordBreak; - if (pos && (breakHere || typeNext !== type)) { - let value = type === TOKEN_QUOTE ? null : type === TOKEN_SEMI ? shellStringSemicolon : templateSpan.substring(tokenStart, pos); - if (type >= TOKEN_SEMI) { - // This branch handles semicolons, unquoted text, spaces, and - // redirects. shellStringSemicolon is already a formatSymbol object; - // the rest need to be wrapped. - type === TOKEN_SEMI || (value = new ShellStringUnquoted(value)); - // We don't need to check placeholderCount here like we do below; - // that's only relevant during the first word break of the span, and - // because this iteration of the loop is processing the token that - // was checked for breaks in the previous iteration, it will have - // already been handled. For the same reason, prefix is guaranteed to - // be null. - if (contents.length) { - result.push(new ShellStringText(contents, null)); - contents = []; - } - // Only spaces and redirects become prefixes, but not if they've been - // rewritten to unquoted above. - if (type >= TOKEN_SPACE) { - prefix = value; - onlyPrefixOnce = type === TOKEN_SPACE; - } else { - result.push(value); - } - } else { - contents.push(value); - } - tokenStart = pos; - } - if (breakHere) { - if (placeholderCount) { - result.push({ - contents, - placeholderCount, - prefix, - onlyPrefixOnce - }); - } else { - // There's no prefix to handle in this branch; a prefix prior to this - // span would mean placeholderCount > 0, and a prefix in this span - // can't be created because spaces and redirects get rewritten to - // unquoted before the last word break. - contents.length && result.push(new ShellStringText(contents, null)); - } - placeholderCount = 0; - prefix = null; - onlyPrefixOnce = false; - contents = []; - } - type = typeNext; - } - } - if (quote) { - throw new SyntaxError(`String is missing a ${String.fromCharCode(quote)} character`); - } - return result; -}); -const CHAR_SEMI = ';'.charCodeAt(); -const CHAR_SQUO = "'".charCodeAt(); -const CHAR_DQUO = '"'.charCodeAt(); -const reQuotation1 = sticky("[^']+"); -const reQuotation2 = sticky('[^"]+'); -const reText = sticky('[^\\s"#$&\'();<>\\\\`|]+|([#$&()\\\\`|]+)'); -const reRedirectOrSpace = sticky('(\\s*\\d*[<>]+\\s*)|\\s+'); - -class BitSet { - constructor() { - this.vector = new Int32Array(1); - } - has(n) { - return (this.vector[n >>> 5] & 1 << n) !== 0; - } - add(n) { - const i = n >>> 5, - requiredLength = i + 1; - let vector = this.vector, - _vector = vector, - length = _vector.length; - if (requiredLength > length) { - while (requiredLength > (length *= 2)); - const oldValues = vector; - vector = new Int32Array(length); - vector.set(oldValues); - this.vector = vector; - } - vector[i] |= 1 << n; - } -} - -function evaluate(template, values) { - values = values.map(toStringishArray); - const children = []; - let valuesStart = 0; - for (let i = 0, iMax = template.length; i < iMax; i++) { - const word = template[i]; - if (formatSymbol in word) { - children.push(word); - continue; - } - const contents = word.contents, - placeholderCount = word.placeholderCount, - prefix = word.prefix, - onlyPrefixOnce = word.onlyPrefixOnce; - const kMax = contents.length; - const valuesEnd = valuesStart + placeholderCount; - const tuples = cartesianProduct(values, valuesStart, valuesEnd); - valuesStart = valuesEnd; - for (let j = 0, jMax = tuples.length; j < jMax; j++) { - const needSpace = j > 0; - const tuple = tuples[j]; - (needSpace || prefix) && children.push(needSpace && (onlyPrefixOnce || !prefix) ? unquotedSpace : prefix); - let interpolatedContents = []; - let untested = null; - let quoting = false; - let tupleIndex = 0; - for (let k = 0; k < kMax; k++) { - const content = contents[k]; - if (content === PLACEHOLDER) { - const value = tuple[tupleIndex++]; - if (quoting) { - interpolatedContents.push(value); - } else { - if (isObject(value) && formatSymbol in value) { - if (interpolatedContents.length) { - children.push(new ShellStringText(interpolatedContents, untested)); - interpolatedContents = []; - untested = null; - } - children.push(value); - } else { - (untested || (untested = new BitSet())).add(interpolatedContents.length); - interpolatedContents.push(value); - } - } - } else { - interpolatedContents.push(content); - content === null && (quoting = !quoting); - } - } - if (interpolatedContents.length) { - children.push(new ShellStringText(interpolatedContents, untested)); - } - } - } - return children; -} -const primToStringish = value => value == null ? '' + value : value; -function toStringishArray(value) { - let array; - switch (true) { - default: - if (isObject(value)) { - if (Array.isArray(value)) { - array = value; - break; - } - if (Symbol.iterator in value) { - array = Array.from(value); - break; - } - } - array = [value]; - } - return array.map(primToStringish); -} -function cartesianProduct(arrs, start, end) { - const size = end - start; - let resultLength = 1; - for (let i = start; i < end; i++) { - resultLength *= arrs[i].length; - } - if (resultLength > 1e6) { - throw new RangeError("Far too many elements to interpolate"); - } - const result = new Array(resultLength); - const indices = new Array(size).fill(0); - for (let i = 0; i < resultLength; i++) { - const value = result[i] = new Array(size); - for (let j = 0; j < size; j++) { - value[j] = arrs[j + start][indices[j]]; - } - for (let j = size - 1; j >= 0; j--) { - if (++indices[j] < arrs[j + start].length) break; - indices[j] = 0; - } - } - return result; -} -const unquotedSpace = new ShellStringUnquoted(' '); - -/** - * A ShellString represents a shell command after it has been interpolated, but - * before it has been formatted for a particular platform. ShellStrings are - * useful if you want to prepare a command for a different platform than the - * current one, for instance. - * - * To create a ShellString, use `ShellString.sh` the same way you would use - * top-level `sh`. - */ -class ShellString { - /** @hideconstructor */ - constructor(children) { - this.children = children; - } - /** - * `ShellString.sh` is a template tag just like `sh`; the only difference is - * that this function returns a ShellString which has not yet been formatted - * into a String. - * @returns {ShellString} - * @function sh - * @static - * @memberof ShellString - */ - static sh(templateSpans) { - for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - values[_key - 1] = arguments[_key]; - } - return new ShellString(evaluate(parse(templateSpans), values)); - } - /** - * A method to format a ShellString into a regular String formatted for a - * particular platform. - * - * @param {String} [platform] a value that `process.platform` might take: - * `'win32'`, `'linux'`, etc.; determines how the string is to be formatted. - * When omitted, effectively the same as `process.platform`. - * @returns {String} - */ - toString(platform) { - return this[formatSymbol](Formatter.for(platform)); - } - [formatSymbol](formatter) { - let context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : formatter.createContext(this); - return this.children.map(child => child[formatSymbol](formatter, context)).join(''); - } - [preformatSymbol](context) { - const children = this.children; - for (let i = 0, iMax = children.length; i < iMax; i++) { - const child = children[i]; - if (preformatSymbol in child) { - child[preformatSymbol](context); - } - } - } -} - -/** - * A Windows-specific version of {@link quoteForShell}. - * @param {String} text to be quoted - * @param {Boolean} [forceQuote] whether to always add quotes even if the string - * is already safe. Defaults to `false`. - */ - -/** - * A Unix-specific version of {@link quoteForShell}. - * @param {String} text to be quoted - * @param {Boolean} [forceQuote] whether to always add quotes even if the string - * is already safe. Defaults to `false`. - */ - -/** - * Quotes a string for injecting into a shell command. - * - * This function is exposed for some hypothetical case when the `sh` DSL simply - * won't do; `sh` is expected to be the more convenient option almost always. - * Compare: - * - * ```javascript - * console.log('cmd' + args.map(a => ' ' + quoteForShell(a)).join('')); - * console.log(sh`cmd ${args}`); // same as above - * - * console.log('cmd' + args.map(a => ' ' + quoteForShell(a, true)).join('')); - * console.log(sh`cmd "${args}"`); // same as above - * ``` - * - * Additionally, on Windows, `sh` checks the entire command string for pipes, - * which subtly change how arguments need to be quoted. If your commands may - * involve pipes, you are strongly encouraged to use `sh` and not try to roll - * your own with `quoteForShell`. - * - * @param {String} text to be quoted - * @param {Boolean} [forceQuote] whether to always add quotes even if the string - * is already safe. Defaults to `false`. - * @param {String} [platform] a value that `process.platform` might take: - * `'win32'`, `'linux'`, etc.; determines how the string is to be formatted. - * When omitted, effectively the same as `process.platform`. - * - * @returns {String} a string that is safe for the current (or specified) - * platform. - */ -function quoteForShell(text, forceQuote, platform) { - return Formatter.for(platform).quote(text, forceQuote); -} - -/** - * A string template tag for safely constructing cross-platform shell commands. - * - * An `sh` template is not actually treated as a literal string to be - * interpolated; instead, it is a tiny DSL designed to make working with shell - * strings safe, simple, and straightforward. To get started quickly, see the - * examples below. {@link #the-sh-dsl More detailed documentation} is available - * further down. - * - * @name sh - * @example - * const title = '"this" & "that"'; - * sh`script --title=${title}`; // => "script '--title=\"this\" & \"that\"'" - * // Note: these examples show results for non-Windows platforms. - * // On Windows, the above would instead be - * // 'script ^^^"--title=\\^^^"this\\^^^" ^^^& \\^^^"that\\^^^"^^^"'. - * - * const names = ['file1', 'file 2']; - * sh`rimraf ${names}.txt`; // => "rimraf file1.txt 'file 2.txt'" - * - * const cmd1 = ['cat', 'file 1.txt', 'file 2.txt']; - * const cmd2 = ['use-input', '-abc']; - * sh`${cmd1}|${cmd2}`; // => "cat 'file 1.txt' 'file 2.txt'|use-input -abc" - * - * @returns {String} - a string formatted for the platform Node is currently - * running on. - */ -const sh = function () { - return ShellString.sh.apply(ShellString, arguments).toString(); -}; - -/** - * This function permits raw strings to be interpolated into a `sh` template. - * - * **IMPORTANT**: If you're using Puka due to security concerns, make sure you - * don't pass any untrusted content to `unquoted`. This may be obvious, but - * stray punctuation in an `unquoted` section can compromise the safety of the - * entire shell command. - * - * @param value - any value (it will be treated as a string) - * - * @example - * const both = true; - * sh`foo ${unquoted(both ? '&&' : '||')} bar`; // => 'foo && bar' - */ -const unquoted = value => new ShellStringUnquoted(value); - -exports.Formatter = Formatter; -exports.ShellString = ShellString; -exports.ShellStringText = ShellStringText; -exports.ShellStringUnquoted = ShellStringUnquoted; -exports.quoteForCmd = quoteForCmd; -exports.quoteForSh = quoteForSh; -exports.quoteForShell = quoteForShell; -exports.sh = sh; -exports.shellStringSemicolon = shellStringSemicolon; -exports.formatSymbol = formatSymbol; -exports.preformatSymbol = preformatSymbol; -exports.unquoted = unquoted; diff --git a/deps/npm/node_modules/puka/package.json b/deps/npm/node_modules/puka/package.json deleted file mode 100644 index 41798dc2493b85..00000000000000 --- a/deps/npm/node_modules/puka/package.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "puka", - "version": "1.0.1", - "description": "A cross-platform library for safely passing strings through shells", - "keywords": [ - "args", - "arguments", - "cmd", - "command", - "command-line", - "cross-platform", - "escape", - "escaping", - "exec", - "linux", - "mac", - "macos", - "osx", - "quote", - "quoting", - "sh", - "shell", - "spawn", - "unix", - "win", - "win32", - "windows" - ], - "homepage": "https://gitlab.com/rhendric/puka", - "bugs": "https://gitlab.com/rhendric/puka/issues", - "license": "MIT", - "author": "Ryan Hendrickson ", - "repository": "gitlab:rhendric/puka", - "dependencies": {}, - "engines": { - "node": ">=4" - } -} \ No newline at end of file diff --git a/deps/npm/node_modules/punycode/LICENSE-MIT.txt b/deps/npm/node_modules/punycode/LICENSE-MIT.txt deleted file mode 100644 index a41e0a7ef970ec..00000000000000 --- a/deps/npm/node_modules/punycode/LICENSE-MIT.txt +++ /dev/null @@ -1,20 +0,0 @@ -Copyright Mathias Bynens - -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/deps/npm/node_modules/punycode/README.md b/deps/npm/node_modules/punycode/README.md deleted file mode 100644 index ee2f9d63320c0d..00000000000000 --- a/deps/npm/node_modules/punycode/README.md +++ /dev/null @@ -1,122 +0,0 @@ -# Punycode.js [![Build status](https://travis-ci.org/bestiejs/punycode.js.svg?branch=master)](https://travis-ci.org/bestiejs/punycode.js) [![Code coverage status](http://img.shields.io/codecov/c/github/bestiejs/punycode.js.svg)](https://codecov.io/gh/bestiejs/punycode.js) [![Dependency status](https://gemnasium.com/bestiejs/punycode.js.svg)](https://gemnasium.com/bestiejs/punycode.js) - -Punycode.js is a robust Punycode converter that fully complies to [RFC 3492](https://tools.ietf.org/html/rfc3492) and [RFC 5891](https://tools.ietf.org/html/rfc5891). - -This JavaScript library is the result of comparing, optimizing and documenting different open-source implementations of the Punycode algorithm: - -* [The C example code from RFC 3492](https://tools.ietf.org/html/rfc3492#appendix-C) -* [`punycode.c` by _Markus W. Scherer_ (IBM)](http://opensource.apple.com/source/ICU/ICU-400.42/icuSources/common/punycode.c) -* [`punycode.c` by _Ben Noordhuis_](https://github.com/bnoordhuis/punycode/blob/master/punycode.c) -* [JavaScript implementation by _some_](http://stackoverflow.com/questions/183485/can-anyone-recommend-a-good-free-javascript-for-punycode-to-unicode-conversion/301287#301287) -* [`punycode.js` by _Ben Noordhuis_](https://github.com/joyent/node/blob/426298c8c1c0d5b5224ac3658c41e7c2a3fe9377/lib/punycode.js) (note: [not fully compliant](https://github.com/joyent/node/issues/2072)) - -This project was [bundled](https://github.com/joyent/node/blob/master/lib/punycode.js) with Node.js from [v0.6.2+](https://github.com/joyent/node/compare/975f1930b1...61e796decc) until [v7](https://github.com/nodejs/node/pull/7941) (soft-deprecated). - -The current version supports recent versions of Node.js only. It provides a CommonJS module and an ES6 module. For the old version that offers the same functionality with broader support, including Rhino, Ringo, Narwhal, and web browsers, see [v1.4.1](https://github.com/bestiejs/punycode.js/releases/tag/v1.4.1). - -## Installation - -Via [npm](https://www.npmjs.com/): - -```bash -npm install punycode --save -``` - -In [Node.js](https://nodejs.org/): - -```js -const punycode = require('punycode'); -``` - -## API - -### `punycode.decode(string)` - -Converts a Punycode string of ASCII symbols to a string of Unicode symbols. - -```js -// decode domain name parts -punycode.decode('maana-pta'); // 'mañana' -punycode.decode('--dqo34k'); // '☃-⌘' -``` - -### `punycode.encode(string)` - -Converts a string of Unicode symbols to a Punycode string of ASCII symbols. - -```js -// encode domain name parts -punycode.encode('mañana'); // 'maana-pta' -punycode.encode('☃-⌘'); // '--dqo34k' -``` - -### `punycode.toUnicode(input)` - -Converts a Punycode string representing a domain name or an email address to Unicode. Only the Punycoded parts of the input will be converted, i.e. it doesn’t matter if you call it on a string that has already been converted to Unicode. - -```js -// decode domain names -punycode.toUnicode('xn--maana-pta.com'); -// → 'mañana.com' -punycode.toUnicode('xn----dqo34k.com'); -// → '☃-⌘.com' - -// decode email addresses -punycode.toUnicode('джумла@xn--p-8sbkgc5ag7bhce.xn--ba-lmcq'); -// → 'джумла@джpумлатест.bрфa' -``` - -### `punycode.toASCII(input)` - -Converts a lowercased Unicode string representing a domain name or an email address to Punycode. Only the non-ASCII parts of the input will be converted, i.e. it doesn’t matter if you call it with a domain that’s already in ASCII. - -```js -// encode domain names -punycode.toASCII('mañana.com'); -// → 'xn--maana-pta.com' -punycode.toASCII('☃-⌘.com'); -// → 'xn----dqo34k.com' - -// encode email addresses -punycode.toASCII('джумла@джpумлатест.bрфa'); -// → 'джумла@xn--p-8sbkgc5ag7bhce.xn--ba-lmcq' -``` - -### `punycode.ucs2` - -#### `punycode.ucs2.decode(string)` - -Creates an array containing the numeric code point values of each Unicode symbol in the string. While [JavaScript uses UCS-2 internally](https://mathiasbynens.be/notes/javascript-encoding), this function will convert a pair of surrogate halves (each of which UCS-2 exposes as separate characters) into a single code point, matching UTF-16. - -```js -punycode.ucs2.decode('abc'); -// → [0x61, 0x62, 0x63] -// surrogate pair for U+1D306 TETRAGRAM FOR CENTRE: -punycode.ucs2.decode('\uD834\uDF06'); -// → [0x1D306] -``` - -#### `punycode.ucs2.encode(codePoints)` - -Creates a string based on an array of numeric code point values. - -```js -punycode.ucs2.encode([0x61, 0x62, 0x63]); -// → 'abc' -punycode.ucs2.encode([0x1D306]); -// → '\uD834\uDF06' -``` - -### `punycode.version` - -A string representing the current Punycode.js version number. - -## Author - -| [![twitter/mathias](https://gravatar.com/avatar/24e08a9ea84deb17ae121074d0f17125?s=70)](https://twitter.com/mathias "Follow @mathias on Twitter") | -|---| -| [Mathias Bynens](https://mathiasbynens.be/) | - -## License - -Punycode.js is available under the [MIT](https://mths.be/mit) license. diff --git a/deps/npm/node_modules/punycode/package.json b/deps/npm/node_modules/punycode/package.json deleted file mode 100644 index 9202ccf8c0c8f7..00000000000000 --- a/deps/npm/node_modules/punycode/package.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "name": "punycode", - "version": "2.1.1", - "description": "A robust Punycode converter that fully complies to RFC 3492 and RFC 5891, and works on nearly all JavaScript platforms.", - "homepage": "https://mths.be/punycode", - "main": "punycode.js", - "jsnext:main": "punycode.es6.js", - "module": "punycode.es6.js", - "engines": { - "node": ">=6" - }, - "keywords": [ - "punycode", - "unicode", - "idn", - "idna", - "dns", - "url", - "domain" - ], - "license": "MIT", - "author": { - "name": "Mathias Bynens", - "url": "https://mathiasbynens.be/" - }, - "contributors": [ - { - "name": "Mathias Bynens", - "url": "https://mathiasbynens.be/" - } - ], - "repository": { - "type": "git", - "url": "https://github.com/bestiejs/punycode.js.git" - }, - "bugs": "https://github.com/bestiejs/punycode.js/issues", - "files": [ - "LICENSE-MIT.txt", - "punycode.js", - "punycode.es6.js" - ], - "scripts": { - "test": "mocha tests", - "prepublish": "node scripts/prepublish.js" - }, - "devDependencies": { - "codecov": "^1.0.1", - "istanbul": "^0.4.1", - "mocha": "^2.5.3" - }, - "jspm": { - "map": { - "./punycode.js": { - "node": "@node/punycode" - } - } - } -} diff --git a/deps/npm/node_modules/punycode/punycode.es6.js b/deps/npm/node_modules/punycode/punycode.es6.js deleted file mode 100644 index 4610bc9ebf2974..00000000000000 --- a/deps/npm/node_modules/punycode/punycode.es6.js +++ /dev/null @@ -1,441 +0,0 @@ -'use strict'; - -/** Highest positive signed 32-bit float value */ -const maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1 - -/** Bootstring parameters */ -const base = 36; -const tMin = 1; -const tMax = 26; -const skew = 38; -const damp = 700; -const initialBias = 72; -const initialN = 128; // 0x80 -const delimiter = '-'; // '\x2D' - -/** Regular expressions */ -const regexPunycode = /^xn--/; -const regexNonASCII = /[^\0-\x7E]/; // non-ASCII chars -const regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g; // RFC 3490 separators - -/** Error messages */ -const errors = { - 'overflow': 'Overflow: input needs wider integers to process', - 'not-basic': 'Illegal input >= 0x80 (not a basic code point)', - 'invalid-input': 'Invalid input' -}; - -/** Convenience shortcuts */ -const baseMinusTMin = base - tMin; -const floor = Math.floor; -const stringFromCharCode = String.fromCharCode; - -/*--------------------------------------------------------------------------*/ - -/** - * A generic error utility function. - * @private - * @param {String} type The error type. - * @returns {Error} Throws a `RangeError` with the applicable error message. - */ -function error(type) { - throw new RangeError(errors[type]); -} - -/** - * A generic `Array#map` utility function. - * @private - * @param {Array} array The array to iterate over. - * @param {Function} callback The function that gets called for every array - * item. - * @returns {Array} A new array of values returned by the callback function. - */ -function map(array, fn) { - const result = []; - let length = array.length; - while (length--) { - result[length] = fn(array[length]); - } - return result; -} - -/** - * A simple `Array#map`-like wrapper to work with domain name strings or email - * addresses. - * @private - * @param {String} domain The domain name or email address. - * @param {Function} callback The function that gets called for every - * character. - * @returns {Array} A new string of characters returned by the callback - * function. - */ -function mapDomain(string, fn) { - const parts = string.split('@'); - let result = ''; - if (parts.length > 1) { - // In email addresses, only the domain name should be punycoded. Leave - // the local part (i.e. everything up to `@`) intact. - result = parts[0] + '@'; - string = parts[1]; - } - // Avoid `split(regex)` for IE8 compatibility. See #17. - string = string.replace(regexSeparators, '\x2E'); - const labels = string.split('.'); - const encoded = map(labels, fn).join('.'); - return result + encoded; -} - -/** - * Creates an array containing the numeric code points of each Unicode - * character in the string. While JavaScript uses UCS-2 internally, - * this function will convert a pair of surrogate halves (each of which - * UCS-2 exposes as separate characters) into a single code point, - * matching UTF-16. - * @see `punycode.ucs2.encode` - * @see - * @memberOf punycode.ucs2 - * @name decode - * @param {String} string The Unicode input string (UCS-2). - * @returns {Array} The new array of code points. - */ -function ucs2decode(string) { - const output = []; - let counter = 0; - const length = string.length; - while (counter < length) { - const value = string.charCodeAt(counter++); - if (value >= 0xD800 && value <= 0xDBFF && counter < length) { - // It's a high surrogate, and there is a next character. - const extra = string.charCodeAt(counter++); - if ((extra & 0xFC00) == 0xDC00) { // Low surrogate. - output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); - } else { - // It's an unmatched surrogate; only append this code unit, in case the - // next code unit is the high surrogate of a surrogate pair. - output.push(value); - counter--; - } - } else { - output.push(value); - } - } - return output; -} - -/** - * Creates a string based on an array of numeric code points. - * @see `punycode.ucs2.decode` - * @memberOf punycode.ucs2 - * @name encode - * @param {Array} codePoints The array of numeric code points. - * @returns {String} The new Unicode string (UCS-2). - */ -const ucs2encode = array => String.fromCodePoint(...array); - -/** - * Converts a basic code point into a digit/integer. - * @see `digitToBasic()` - * @private - * @param {Number} codePoint The basic numeric code point value. - * @returns {Number} The numeric value of a basic code point (for use in - * representing integers) in the range `0` to `base - 1`, or `base` if - * the code point does not represent a value. - */ -const basicToDigit = function(codePoint) { - if (codePoint - 0x30 < 0x0A) { - return codePoint - 0x16; - } - if (codePoint - 0x41 < 0x1A) { - return codePoint - 0x41; - } - if (codePoint - 0x61 < 0x1A) { - return codePoint - 0x61; - } - return base; -}; - -/** - * Converts a digit/integer into a basic code point. - * @see `basicToDigit()` - * @private - * @param {Number} digit The numeric value of a basic code point. - * @returns {Number} The basic code point whose value (when used for - * representing integers) is `digit`, which needs to be in the range - * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is - * used; else, the lowercase form is used. The behavior is undefined - * if `flag` is non-zero and `digit` has no uppercase form. - */ -const digitToBasic = function(digit, flag) { - // 0..25 map to ASCII a..z or A..Z - // 26..35 map to ASCII 0..9 - return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5); -}; - -/** - * Bias adaptation function as per section 3.4 of RFC 3492. - * https://tools.ietf.org/html/rfc3492#section-3.4 - * @private - */ -const adapt = function(delta, numPoints, firstTime) { - let k = 0; - delta = firstTime ? floor(delta / damp) : delta >> 1; - delta += floor(delta / numPoints); - for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) { - delta = floor(delta / baseMinusTMin); - } - return floor(k + (baseMinusTMin + 1) * delta / (delta + skew)); -}; - -/** - * Converts a Punycode string of ASCII-only symbols to a string of Unicode - * symbols. - * @memberOf punycode - * @param {String} input The Punycode string of ASCII-only symbols. - * @returns {String} The resulting string of Unicode symbols. - */ -const decode = function(input) { - // Don't use UCS-2. - const output = []; - const inputLength = input.length; - let i = 0; - let n = initialN; - let bias = initialBias; - - // Handle the basic code points: let `basic` be the number of input code - // points before the last delimiter, or `0` if there is none, then copy - // the first basic code points to the output. - - let basic = input.lastIndexOf(delimiter); - if (basic < 0) { - basic = 0; - } - - for (let j = 0; j < basic; ++j) { - // if it's not a basic code point - if (input.charCodeAt(j) >= 0x80) { - error('not-basic'); - } - output.push(input.charCodeAt(j)); - } - - // Main decoding loop: start just after the last delimiter if any basic code - // points were copied; start at the beginning otherwise. - - for (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) { - - // `index` is the index of the next character to be consumed. - // Decode a generalized variable-length integer into `delta`, - // which gets added to `i`. The overflow checking is easier - // if we increase `i` as we go, then subtract off its starting - // value at the end to obtain `delta`. - let oldi = i; - for (let w = 1, k = base; /* no condition */; k += base) { - - if (index >= inputLength) { - error('invalid-input'); - } - - const digit = basicToDigit(input.charCodeAt(index++)); - - if (digit >= base || digit > floor((maxInt - i) / w)) { - error('overflow'); - } - - i += digit * w; - const t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); - - if (digit < t) { - break; - } - - const baseMinusT = base - t; - if (w > floor(maxInt / baseMinusT)) { - error('overflow'); - } - - w *= baseMinusT; - - } - - const out = output.length + 1; - bias = adapt(i - oldi, out, oldi == 0); - - // `i` was supposed to wrap around from `out` to `0`, - // incrementing `n` each time, so we'll fix that now: - if (floor(i / out) > maxInt - n) { - error('overflow'); - } - - n += floor(i / out); - i %= out; - - // Insert `n` at position `i` of the output. - output.splice(i++, 0, n); - - } - - return String.fromCodePoint(...output); -}; - -/** - * Converts a string of Unicode symbols (e.g. a domain name label) to a - * Punycode string of ASCII-only symbols. - * @memberOf punycode - * @param {String} input The string of Unicode symbols. - * @returns {String} The resulting Punycode string of ASCII-only symbols. - */ -const encode = function(input) { - const output = []; - - // Convert the input in UCS-2 to an array of Unicode code points. - input = ucs2decode(input); - - // Cache the length. - let inputLength = input.length; - - // Initialize the state. - let n = initialN; - let delta = 0; - let bias = initialBias; - - // Handle the basic code points. - for (const currentValue of input) { - if (currentValue < 0x80) { - output.push(stringFromCharCode(currentValue)); - } - } - - let basicLength = output.length; - let handledCPCount = basicLength; - - // `handledCPCount` is the number of code points that have been handled; - // `basicLength` is the number of basic code points. - - // Finish the basic string with a delimiter unless it's empty. - if (basicLength) { - output.push(delimiter); - } - - // Main encoding loop: - while (handledCPCount < inputLength) { - - // All non-basic code points < n have been handled already. Find the next - // larger one: - let m = maxInt; - for (const currentValue of input) { - if (currentValue >= n && currentValue < m) { - m = currentValue; - } - } - - // Increase `delta` enough to advance the decoder's state to , - // but guard against overflow. - const handledCPCountPlusOne = handledCPCount + 1; - if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) { - error('overflow'); - } - - delta += (m - n) * handledCPCountPlusOne; - n = m; - - for (const currentValue of input) { - if (currentValue < n && ++delta > maxInt) { - error('overflow'); - } - if (currentValue == n) { - // Represent delta as a generalized variable-length integer. - let q = delta; - for (let k = base; /* no condition */; k += base) { - const t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); - if (q < t) { - break; - } - const qMinusT = q - t; - const baseMinusT = base - t; - output.push( - stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)) - ); - q = floor(qMinusT / baseMinusT); - } - - output.push(stringFromCharCode(digitToBasic(q, 0))); - bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength); - delta = 0; - ++handledCPCount; - } - } - - ++delta; - ++n; - - } - return output.join(''); -}; - -/** - * Converts a Punycode string representing a domain name or an email address - * to Unicode. Only the Punycoded parts of the input will be converted, i.e. - * it doesn't matter if you call it on a string that has already been - * converted to Unicode. - * @memberOf punycode - * @param {String} input The Punycoded domain name or email address to - * convert to Unicode. - * @returns {String} The Unicode representation of the given Punycode - * string. - */ -const toUnicode = function(input) { - return mapDomain(input, function(string) { - return regexPunycode.test(string) - ? decode(string.slice(4).toLowerCase()) - : string; - }); -}; - -/** - * Converts a Unicode string representing a domain name or an email address to - * Punycode. Only the non-ASCII parts of the domain name will be converted, - * i.e. it doesn't matter if you call it with a domain that's already in - * ASCII. - * @memberOf punycode - * @param {String} input The domain name or email address to convert, as a - * Unicode string. - * @returns {String} The Punycode representation of the given domain name or - * email address. - */ -const toASCII = function(input) { - return mapDomain(input, function(string) { - return regexNonASCII.test(string) - ? 'xn--' + encode(string) - : string; - }); -}; - -/*--------------------------------------------------------------------------*/ - -/** Define the public API */ -const punycode = { - /** - * A string representing the current Punycode.js version number. - * @memberOf punycode - * @type String - */ - 'version': '2.1.0', - /** - * An object of methods to convert from JavaScript's internal character - * representation (UCS-2) to Unicode code points, and back. - * @see - * @memberOf punycode - * @type Object - */ - 'ucs2': { - 'decode': ucs2decode, - 'encode': ucs2encode - }, - 'decode': decode, - 'encode': encode, - 'toASCII': toASCII, - 'toUnicode': toUnicode -}; - -export { ucs2decode, ucs2encode, decode, encode, toASCII, toUnicode }; -export default punycode; diff --git a/deps/npm/node_modules/punycode/punycode.js b/deps/npm/node_modules/punycode/punycode.js deleted file mode 100644 index ea61fd0d39a39d..00000000000000 --- a/deps/npm/node_modules/punycode/punycode.js +++ /dev/null @@ -1,440 +0,0 @@ -'use strict'; - -/** Highest positive signed 32-bit float value */ -const maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1 - -/** Bootstring parameters */ -const base = 36; -const tMin = 1; -const tMax = 26; -const skew = 38; -const damp = 700; -const initialBias = 72; -const initialN = 128; // 0x80 -const delimiter = '-'; // '\x2D' - -/** Regular expressions */ -const regexPunycode = /^xn--/; -const regexNonASCII = /[^\0-\x7E]/; // non-ASCII chars -const regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g; // RFC 3490 separators - -/** Error messages */ -const errors = { - 'overflow': 'Overflow: input needs wider integers to process', - 'not-basic': 'Illegal input >= 0x80 (not a basic code point)', - 'invalid-input': 'Invalid input' -}; - -/** Convenience shortcuts */ -const baseMinusTMin = base - tMin; -const floor = Math.floor; -const stringFromCharCode = String.fromCharCode; - -/*--------------------------------------------------------------------------*/ - -/** - * A generic error utility function. - * @private - * @param {String} type The error type. - * @returns {Error} Throws a `RangeError` with the applicable error message. - */ -function error(type) { - throw new RangeError(errors[type]); -} - -/** - * A generic `Array#map` utility function. - * @private - * @param {Array} array The array to iterate over. - * @param {Function} callback The function that gets called for every array - * item. - * @returns {Array} A new array of values returned by the callback function. - */ -function map(array, fn) { - const result = []; - let length = array.length; - while (length--) { - result[length] = fn(array[length]); - } - return result; -} - -/** - * A simple `Array#map`-like wrapper to work with domain name strings or email - * addresses. - * @private - * @param {String} domain The domain name or email address. - * @param {Function} callback The function that gets called for every - * character. - * @returns {Array} A new string of characters returned by the callback - * function. - */ -function mapDomain(string, fn) { - const parts = string.split('@'); - let result = ''; - if (parts.length > 1) { - // In email addresses, only the domain name should be punycoded. Leave - // the local part (i.e. everything up to `@`) intact. - result = parts[0] + '@'; - string = parts[1]; - } - // Avoid `split(regex)` for IE8 compatibility. See #17. - string = string.replace(regexSeparators, '\x2E'); - const labels = string.split('.'); - const encoded = map(labels, fn).join('.'); - return result + encoded; -} - -/** - * Creates an array containing the numeric code points of each Unicode - * character in the string. While JavaScript uses UCS-2 internally, - * this function will convert a pair of surrogate halves (each of which - * UCS-2 exposes as separate characters) into a single code point, - * matching UTF-16. - * @see `punycode.ucs2.encode` - * @see - * @memberOf punycode.ucs2 - * @name decode - * @param {String} string The Unicode input string (UCS-2). - * @returns {Array} The new array of code points. - */ -function ucs2decode(string) { - const output = []; - let counter = 0; - const length = string.length; - while (counter < length) { - const value = string.charCodeAt(counter++); - if (value >= 0xD800 && value <= 0xDBFF && counter < length) { - // It's a high surrogate, and there is a next character. - const extra = string.charCodeAt(counter++); - if ((extra & 0xFC00) == 0xDC00) { // Low surrogate. - output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); - } else { - // It's an unmatched surrogate; only append this code unit, in case the - // next code unit is the high surrogate of a surrogate pair. - output.push(value); - counter--; - } - } else { - output.push(value); - } - } - return output; -} - -/** - * Creates a string based on an array of numeric code points. - * @see `punycode.ucs2.decode` - * @memberOf punycode.ucs2 - * @name encode - * @param {Array} codePoints The array of numeric code points. - * @returns {String} The new Unicode string (UCS-2). - */ -const ucs2encode = array => String.fromCodePoint(...array); - -/** - * Converts a basic code point into a digit/integer. - * @see `digitToBasic()` - * @private - * @param {Number} codePoint The basic numeric code point value. - * @returns {Number} The numeric value of a basic code point (for use in - * representing integers) in the range `0` to `base - 1`, or `base` if - * the code point does not represent a value. - */ -const basicToDigit = function(codePoint) { - if (codePoint - 0x30 < 0x0A) { - return codePoint - 0x16; - } - if (codePoint - 0x41 < 0x1A) { - return codePoint - 0x41; - } - if (codePoint - 0x61 < 0x1A) { - return codePoint - 0x61; - } - return base; -}; - -/** - * Converts a digit/integer into a basic code point. - * @see `basicToDigit()` - * @private - * @param {Number} digit The numeric value of a basic code point. - * @returns {Number} The basic code point whose value (when used for - * representing integers) is `digit`, which needs to be in the range - * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is - * used; else, the lowercase form is used. The behavior is undefined - * if `flag` is non-zero and `digit` has no uppercase form. - */ -const digitToBasic = function(digit, flag) { - // 0..25 map to ASCII a..z or A..Z - // 26..35 map to ASCII 0..9 - return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5); -}; - -/** - * Bias adaptation function as per section 3.4 of RFC 3492. - * https://tools.ietf.org/html/rfc3492#section-3.4 - * @private - */ -const adapt = function(delta, numPoints, firstTime) { - let k = 0; - delta = firstTime ? floor(delta / damp) : delta >> 1; - delta += floor(delta / numPoints); - for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) { - delta = floor(delta / baseMinusTMin); - } - return floor(k + (baseMinusTMin + 1) * delta / (delta + skew)); -}; - -/** - * Converts a Punycode string of ASCII-only symbols to a string of Unicode - * symbols. - * @memberOf punycode - * @param {String} input The Punycode string of ASCII-only symbols. - * @returns {String} The resulting string of Unicode symbols. - */ -const decode = function(input) { - // Don't use UCS-2. - const output = []; - const inputLength = input.length; - let i = 0; - let n = initialN; - let bias = initialBias; - - // Handle the basic code points: let `basic` be the number of input code - // points before the last delimiter, or `0` if there is none, then copy - // the first basic code points to the output. - - let basic = input.lastIndexOf(delimiter); - if (basic < 0) { - basic = 0; - } - - for (let j = 0; j < basic; ++j) { - // if it's not a basic code point - if (input.charCodeAt(j) >= 0x80) { - error('not-basic'); - } - output.push(input.charCodeAt(j)); - } - - // Main decoding loop: start just after the last delimiter if any basic code - // points were copied; start at the beginning otherwise. - - for (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) { - - // `index` is the index of the next character to be consumed. - // Decode a generalized variable-length integer into `delta`, - // which gets added to `i`. The overflow checking is easier - // if we increase `i` as we go, then subtract off its starting - // value at the end to obtain `delta`. - let oldi = i; - for (let w = 1, k = base; /* no condition */; k += base) { - - if (index >= inputLength) { - error('invalid-input'); - } - - const digit = basicToDigit(input.charCodeAt(index++)); - - if (digit >= base || digit > floor((maxInt - i) / w)) { - error('overflow'); - } - - i += digit * w; - const t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); - - if (digit < t) { - break; - } - - const baseMinusT = base - t; - if (w > floor(maxInt / baseMinusT)) { - error('overflow'); - } - - w *= baseMinusT; - - } - - const out = output.length + 1; - bias = adapt(i - oldi, out, oldi == 0); - - // `i` was supposed to wrap around from `out` to `0`, - // incrementing `n` each time, so we'll fix that now: - if (floor(i / out) > maxInt - n) { - error('overflow'); - } - - n += floor(i / out); - i %= out; - - // Insert `n` at position `i` of the output. - output.splice(i++, 0, n); - - } - - return String.fromCodePoint(...output); -}; - -/** - * Converts a string of Unicode symbols (e.g. a domain name label) to a - * Punycode string of ASCII-only symbols. - * @memberOf punycode - * @param {String} input The string of Unicode symbols. - * @returns {String} The resulting Punycode string of ASCII-only symbols. - */ -const encode = function(input) { - const output = []; - - // Convert the input in UCS-2 to an array of Unicode code points. - input = ucs2decode(input); - - // Cache the length. - let inputLength = input.length; - - // Initialize the state. - let n = initialN; - let delta = 0; - let bias = initialBias; - - // Handle the basic code points. - for (const currentValue of input) { - if (currentValue < 0x80) { - output.push(stringFromCharCode(currentValue)); - } - } - - let basicLength = output.length; - let handledCPCount = basicLength; - - // `handledCPCount` is the number of code points that have been handled; - // `basicLength` is the number of basic code points. - - // Finish the basic string with a delimiter unless it's empty. - if (basicLength) { - output.push(delimiter); - } - - // Main encoding loop: - while (handledCPCount < inputLength) { - - // All non-basic code points < n have been handled already. Find the next - // larger one: - let m = maxInt; - for (const currentValue of input) { - if (currentValue >= n && currentValue < m) { - m = currentValue; - } - } - - // Increase `delta` enough to advance the decoder's state to , - // but guard against overflow. - const handledCPCountPlusOne = handledCPCount + 1; - if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) { - error('overflow'); - } - - delta += (m - n) * handledCPCountPlusOne; - n = m; - - for (const currentValue of input) { - if (currentValue < n && ++delta > maxInt) { - error('overflow'); - } - if (currentValue == n) { - // Represent delta as a generalized variable-length integer. - let q = delta; - for (let k = base; /* no condition */; k += base) { - const t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); - if (q < t) { - break; - } - const qMinusT = q - t; - const baseMinusT = base - t; - output.push( - stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)) - ); - q = floor(qMinusT / baseMinusT); - } - - output.push(stringFromCharCode(digitToBasic(q, 0))); - bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength); - delta = 0; - ++handledCPCount; - } - } - - ++delta; - ++n; - - } - return output.join(''); -}; - -/** - * Converts a Punycode string representing a domain name or an email address - * to Unicode. Only the Punycoded parts of the input will be converted, i.e. - * it doesn't matter if you call it on a string that has already been - * converted to Unicode. - * @memberOf punycode - * @param {String} input The Punycoded domain name or email address to - * convert to Unicode. - * @returns {String} The Unicode representation of the given Punycode - * string. - */ -const toUnicode = function(input) { - return mapDomain(input, function(string) { - return regexPunycode.test(string) - ? decode(string.slice(4).toLowerCase()) - : string; - }); -}; - -/** - * Converts a Unicode string representing a domain name or an email address to - * Punycode. Only the non-ASCII parts of the domain name will be converted, - * i.e. it doesn't matter if you call it with a domain that's already in - * ASCII. - * @memberOf punycode - * @param {String} input The domain name or email address to convert, as a - * Unicode string. - * @returns {String} The Punycode representation of the given domain name or - * email address. - */ -const toASCII = function(input) { - return mapDomain(input, function(string) { - return regexNonASCII.test(string) - ? 'xn--' + encode(string) - : string; - }); -}; - -/*--------------------------------------------------------------------------*/ - -/** Define the public API */ -const punycode = { - /** - * A string representing the current Punycode.js version number. - * @memberOf punycode - * @type String - */ - 'version': '2.1.0', - /** - * An object of methods to convert from JavaScript's internal character - * representation (UCS-2) to Unicode code points, and back. - * @see - * @memberOf punycode - * @type Object - */ - 'ucs2': { - 'decode': ucs2decode, - 'encode': ucs2encode - }, - 'decode': decode, - 'encode': encode, - 'toASCII': toASCII, - 'toUnicode': toUnicode -}; - -module.exports = punycode; diff --git a/deps/npm/node_modules/qrcode-terminal/.travis.yml b/deps/npm/node_modules/qrcode-terminal/.travis.yml deleted file mode 100644 index 6e5919de39a312..00000000000000 --- a/deps/npm/node_modules/qrcode-terminal/.travis.yml +++ /dev/null @@ -1,3 +0,0 @@ -language: node_js -node_js: - - "0.10" diff --git a/deps/npm/node_modules/qrcode-terminal/LICENSE b/deps/npm/node_modules/qrcode-terminal/LICENSE deleted file mode 100644 index 07e74fd549beb4..00000000000000 --- a/deps/npm/node_modules/qrcode-terminal/LICENSE +++ /dev/null @@ -1,222 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - -============================================================== -This product also include the following software: -============================================================== - - QRCode for JavaScript - - Copyright (c) 2009 Kazuhiko Arase - - URL: http://www.d-project.com/ - - Licensed under the MIT license: - http://www.opensource.org/licenses/mit-license.php - - The word "QR Code" is registered trademark of - DENSO WAVE INCORPORATED - http://www.denso-wave.com/qrcode/faqpatent-e.html - -Located in ./vendor/QRCode -- project has been modified to work in Node and some refactoring was done for code cleanup diff --git a/deps/npm/node_modules/qrcode-terminal/README.md b/deps/npm/node_modules/qrcode-terminal/README.md deleted file mode 100644 index f5c830f20f45bd..00000000000000 --- a/deps/npm/node_modules/qrcode-terminal/README.md +++ /dev/null @@ -1,82 +0,0 @@ -# QRCode Terminal Edition [![Build Status][travis-ci-img]][travis-ci-url] - -> Going where no QRCode has gone before. - -![Basic Example][basic-example-img] - -# Node Library - -## Install - -Can be installed with: - - $ npm install qrcode-terminal - -and used: - - var qrcode = require('qrcode-terminal'); - -## Usage - -To display some data to the terminal just call: - - qrcode.generate('This will be a QRCode, eh!'); - -You can even specify the error level (default is 'L'): - - qrcode.setErrorLevel('Q'); - qrcode.generate('This will be a QRCode with error level Q!'); - -If you don't want to display to the terminal but just want to string you can provide a callback: - - qrcode.generate('http://github.com', function (qrcode) { - console.log(qrcode); - }); - -If you want to display small output, provide `opts` with `small`: - - qrcode.generate('This will be a small QRCode, eh!', {small: true}); - - qrcode.generate('This will be a small QRCode, eh!', {small: true}, function (qrcode) { - console.log(qrcode) - }); - -# Command-Line - -## Install - - $ npm install -g qrcode-terminal - -## Usage - - $ qrcode-terminal --help - $ qrcode-terminal 'http://github.com' - $ echo 'http://github.com' | qrcode-terminal - -# Support - -- OS X -- Linux -- Windows - -# Server-side - -[node-qrcode][node-qrcode-url] is a popular server-side QRCode generator that -renders to a `canvas` object. - -# Developing - -To setup the development envrionment run `npm install` - -To run tests run `npm test` - -# Contributers - - Gord Tanner - Micheal Brooks - -[travis-ci-img]: https://travis-ci.org/gtanner/qrcode-terminal.png -[travis-ci-url]: https://travis-ci.org/gtanner/qrcode-terminal -[basic-example-img]: https://raw.github.com/gtanner/qrcode-terminal/master/example/basic.png -[node-qrcode-url]: https://github.com/soldair/node-qrcode - diff --git a/deps/npm/node_modules/qrcode-terminal/bin/qrcode-terminal.js b/deps/npm/node_modules/qrcode-terminal/bin/qrcode-terminal.js deleted file mode 100755 index 64762879eff1f3..00000000000000 --- a/deps/npm/node_modules/qrcode-terminal/bin/qrcode-terminal.js +++ /dev/null @@ -1,101 +0,0 @@ -#!/usr/bin/env node - -/*! - * Module dependencies. - */ - -var qrcode = require('../lib/main'), - path = require('path'), - fs = require('fs'); - -/*! - * Parse the process name - */ - -var name = process.argv[1].replace(/^.*[\\\/]/, '').replace('.js', ''); - -/*! - * Parse the input - */ - -if (process.stdin.isTTY) { - // called with input as argument, e.g.: - // ./qrcode-terminal.js "INPUT" - - var input = process.argv[2]; - handleInput(input); -} else { - // called with piped input, e.g.: - // echo "INPUT" | ./qrcode-terminal.js - - var readline = require('readline'); - - var interface = readline.createInterface({ - input: process.stdin, - output: process.stdout, - terminal: false - }); - - interface.on('line', function(line) { - handleInput(line); - }); -} - -/*! - * Process the input - */ - -function handleInput(input) { - - /*! - * Display help - */ - - if (!input || input === '-h' || input === '--help') { - help(); - process.exit(); - } - - /*! - * Display version - */ - - if (input === '-v' || input === '--version') { - version(); - process.exit(); - } - - /*! - * Render the QR Code - */ - - qrcode.generate(input); -} - -/*! - * Helper functions - */ - -function help() { - console.log([ - '', - 'Usage: ' + name + ' ', - '', - 'Options:', - ' -h, --help output usage information', - ' -v, --version output version number', - '', - 'Examples:', - '', - ' $ ' + name + ' hello', - ' $ ' + name + ' "hello world"', - '' - ].join('\n')); -} - -function version() { - var packagePath = path.join(__dirname, '..', 'package.json'), - packageJSON = JSON.parse(fs.readFileSync(packagePath), 'utf8'); - - console.log(packageJSON.version); -} diff --git a/deps/npm/node_modules/qrcode-terminal/example/basic.js b/deps/npm/node_modules/qrcode-terminal/example/basic.js deleted file mode 100644 index e1e306d5521f5c..00000000000000 --- a/deps/npm/node_modules/qrcode-terminal/example/basic.js +++ /dev/null @@ -1,2 +0,0 @@ -var qrcode = require('../lib/main'); -qrcode.generate('this is the bomb'); diff --git a/deps/npm/node_modules/qrcode-terminal/example/basic.png b/deps/npm/node_modules/qrcode-terminal/example/basic.png deleted file mode 100644 index 2ab5c226f4311f6892bd73a0f0f279257d5cafd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46426 zcmaI7cRZW#+c&O5H@Yb;ZLQj+YLB*R?@f_du{S{wx@oPNQL{c)#YjbkAkkJ)VzgF7 zjMfSgR3eCoJigEKyzb|7-@n)E_uner6`^!+aPVFA)zPsq)X}+V5f<#_8vx?qa5!D(2+^>e#?O+9)k9M8 zx?XsVp=%05;Y;Xm_tRnZjuq!DFLGsCyfk=REn=Bb`cUGE>EqXT-iVY^gEZ+HLmM{^ zVuwiKgNzw4Hg=;4KRNP*mjjC%U0yzQPMss;vqNjvEBUU@k>p2wM^CvPnR;;2z?$Xp zPwMsS0bkh==#8fV(VCVH2r|2zwIO71VSZ4+~sL;9YD*_$1n*Yr;c z$DWctaK0RNl|S=+@8H%b2gh#QEqyHo1-~1l2hwXhh?wW>SJgHh9prMW7wql?I%n=n zu7cOykM%9G;#s@wxW{_mAI7p;U;fTg6`LZQz@kg1FS4q=2G7$T6bfAQ0WqBbS8n)I zwwz}8`TZA<%8M^(aJ^}aV5L^geRD~@dG#rE)QQdd5K&IW*E8lBM$1xS1$_8xu0IN@XprE zT}KW+gFfbb{%D}?=IhqdzFQGE?Xb?}B%lX>uCB{+s2Mr(e4@&ocT257onS~L$5_NP z>Zh2`>ANRw9-Mskh3DrNo(D%zUykP;#9MtRJOMhmdFJt#0y8%zjZ^teY)Wi$>}!Fq zm|fu)q6xGIcTPRsMYJB+3icH}RMXFAAA2X)Z>j;5W{re*AAh4=*6Zi(9a7ok4Serumwe6r}fxRKDu9`R_u zHgh@njdBm}1M{b`56@)UjIPtKny1fa9vA!qd=9+99w(bi+1zn#?rVMJ@s#Vc`^_XK zJ$btd!~SG7HJdVf|5G0leoWlq?TK%HntygUg)l3?%j}P$+zR`y$!_obY0cX4dxA9JD?>ojxTK^z!~wEsMnAg!bJMj3vjzj@ldS8o58N7q^8KlQq z!AI-3o~V7M8FHlfi$L0+^XE_BH{(!$DEZ^~$uGA;&Ru?HWpQNiIqky*XU@70HzHmz ze_x0`0eE)d?h&o0s(-K4-ahr{fx~%)Z^@^GFD708=dI7Jy`*dI$tt&sljJU@{Cub4 zDV~{j{XyDI-5o9yX;IVA^C}{${VGRQ6jUTtg2GcW zERlSKmlSg|ar?}+AD0TF%_PjE2Ja3YDqU&0O zTWBo;=#wq>N~ePEPM&XZW53?xVhQ9%??TQ&jzW+S{^;V(+P_xO1JRuj9vWcr##|@0 zm#Rt?{aZ9go-6o6TEPF=Aq_1BFC<7jz3}cz$i<0U7Po#%eY$f;#OD^DO!T9_sNX5) zo8OgMUa+UhJAwOY5K89fbn*Q0jEc^C?=yNNBmGb^Kr;;4ret%PV6>8&N|E!>C^A-kMBn zD-A0ipsR<5gc#cC2)I z)~twmmK;pT#?|hwRg(QjTRz(byU(^J*6nbW8j<>iiU@~l{goO4ouXG1cG^BsG7QXRSG{9x?yK z*kDFtg!e8(fh+~qg<}_v!5^Z(I_b!Fa&$^|M(HW&x#@xR8oT?tBj%;Ljm0L#+DwAp z|5JIjl2FMrpwjO=@V5W;fbPJH0sjG#^r%dv!xZwniXx4pQ+98hWy6y&oiKD z-_C&f0BcX$xZQYe5D|H;kq|@sHGo(Xq4-4FuRX)$uq>IkPD&)MapP}nrg5irrDd5( znyDAX6!s2k4U!5wTKU=*(CuM4k*VQpAs*qxRl9lALeOgbcj$MWUJqCg)Ld)GV#rJG zIjq1w2S0bUQKkoF5@0)8H?fcF0o1S8$BA@R>X!R@9 zDh5bQX|=1x$$ZoN=T_#eVPz_R>Wiyp&s}Vk zsZ`CqBp4PuUp~Lxo!U+A;q6H<4l!=YHZUp|-4^Q=TQiS=1r*15os3Lmr==C$R=18y zTUVF_t8p4`8m~;qpwvBfz6&O6dRxD#{!`5}oIR3O4mFH25AHqRKanMm!n+3tiusFa zhTk<7uZa+f1TJF}nPb}}6YP8HH<>d>7LReB#FBPNQ|ceXKK=duB*#BWQN=ES*+b^({I zwrVF@T1p>(@J#3(?tPlYsyb&r20N20c*jNJtW0eDmsDW($l*fa_W}VxwK>aH3uZ$j8l3)#i-|#;;0!nRKww?6UH5aDw|@IkS3fggHbh z))Wl65v|n%4q1SFp;hxIbNBYSe)l5sc~~&IL*Ph!0~vz!@Uf6E_zD$=1F&DPi-%CIH$Sx zr55#Fzej>P7d>ulylwsRo_GaJknYBrkosl?Buo!CtaA;^8-bexExZn4tuM(Q? z?+m)s%D|1)g)BEFT|*u&-Db=Ubypjk%PIpUd?&-lItY|}o3lE&QF`(Cy})W^)XZpm zSG<2K22=J|scxh^x!E7fv>d8X=ZwnQfXphd=fr>6bKU$y#t!O()6?ly8mHq||C+=; z2zUnySz#+Je)iny z&C}{uVY)G0Npn{(#)@tj-TUEyTk6xaJ#Tl;vh|_wPK8ab7I4kves=s})(7Z)IAGan*y%W+`_=Ya>TJ=#vFJGJ z_3fBX6(I6TU~GHy?nfq)VP>t)>f4Vx-f}{c^TG?U=fSToCyKpPeT~yUe|ts`^~>z> zud={q2It$5Yi1TuVHcF846LOF_e{f!~rV8omk=lUaW znyJ_*S`#ok!}>$uJ~)jZLeoM|ea)iY?yK!)9d+!zfbHU#uQ$stW$4ZLKTRIs<{|s>D&^zOcQJQn zk^--HjDi{cIVqJ-Ybpok@PF}MPl{bSemxn9+|uhC`0G@>cJ)SnbA>vi)uBy(dN#&u z!({44t8z#OVrTuuOd=GTE~E+3_{rYy#Z@6nxOh^|VWC!=!F4qO3E}hB^7yG?1|eXY70}DeYh(lH$G; zJ}zoFH{stB-F_mz_-FsSZ$5^XZw|_X6?i|rY{+kT^NA($N42FFSy<50-!iTAa+C5$ zvpcG|!`Rg!L^m(%A8B`Se$ia1c)&mAVGr~5yB{by$m$y2Xx^|_}KX-N-B7j zN73tZp0c68)9Uf%^>L|R2<4CWH9*P zy%qDC^;W0A<82md;0L!GiOg#z2wootlRqQ$7k%vW505Vp~T=3YmY4t zY!4vWIK@7_#QdZAIrB^-eq-5J!mnbz+4WPGansA|#MrRk4jBdo=E1lhGvr)}T!sXB z4_nJJBRnE(@HqDp!hedv)T0y;>lXWN^TGl80HM0xbZsxI2ahZf0)OiFqH*85V|=T`|KmXQS-1YgVgW~)5=|MOFb_Su$LrRSkB;K#S%cUh9cROC`Nk0?ySJQ8rov`?0eCK%k z367k*;&a>QIPiHLpI#oB(vCS2;(Fu@=+YO;m7{rFkDo4V9bgh}hVXtpCYERV=LO-4 z=!diOCgyyh8yt|k`Rym>dwh@U?z(0Br0xp0y?eBvkaASp%|ZT5-ay`+ez$&5e|SHS z&E=*?WxpQf8SZlI-1d;>a(a$Qbm=ziY>^hgzh%DU?Tq~$zB#>Ha@_Q2QAqLM;)ic< zC6%73w^K;TNa4K(OWONx;x2Sa$ol4pu9wEW9CWJgQ;;}L!0ysGzmkH}8KQn<@V2;! zfR%CzsI?ch;9Y1l2&s<<0<0$s6e`8dOUySdxy;op?Ob-fuzcC%!tm86SA$9^7v(R2 zu0mz)M2l~_$wLT@LN$G%qQ?St{LAXP8^j=$bT8JDRBonS&^STq21=V^vX-urqUx(E^s=oaBeuFH zpBHSrqr|y!6!?;VaYyWn#3%8Iy9-b9ETe-L>?WPJ;#)oYr(4!ee|uw|6&^KN6|x?m z6?03|9|6q$6Q4`@T1cJxsPkIiK))y5MZGxccKO7D$l~Y|f)B(V1hxG`z>wxv+gD9x z@7zBFT=KcCH2>spowRava4$G7!m91whT=>t^J()CJ@l(J_Sq`0AEKVeKi!%CQqhl? zoo&pd2{nK=ML7!k6(ixr_`XUP67Cr1IsV}%yZ`CA<8D|t;r=|8&O(FRDyJmfxZTc6 z-=ridx~Bx_Ud)Iqzp!_3?{$i0Pqb^~x7`D7FYd*MslN=ij!&k_x^{gUoH)lO%KiV2fNdXWU)vQTFSb1`|eiZk?02;5*9a$G61S#Akgi_Kn8(2Xmrg*}bo--(Ksy z-oO7&H@V`X9%iN1I3OcnV}eEKG5A{Um?om|Ebh7W8ydGgM~Z%pQVaDwB#5@YG&0ZZ zoxSx=X8E?rZAG~$U5Sftu7J;5UnHGpOUmD7Jb>G_KCCoC+0;MAI{e9Yudu>|CHHBL zxi#s6mAD|L0x}z>p_34`rq-P;uX6^kC-t6nGsLDVYnI?w6>(2$(v{$-HwA4J$PJYG zwi>R55?&M0^q zd0^u9dzyxXts~y(*w5~!D_}L1gH+}B)0CR1T7f56E#8q}*_il%uZy@kM3^xr&Q&y; z{*{Mb($&FA=S+EeeD~Sqe#Q5lXra@?59NK1vRt|M0D=wAua!#Y9b461y6ep6V#2X> zv+~-#v`h;fm3i|r^H0ZXWtC3Ea;v|-^s-S?2%k>+qCTJg2YCMF>4z^*d^^+s&%(Ww zdwzGdM4kBSfbGTH&frPb&2-S zj|@_51eF0GEjz60!NX_VU-e2Q|5zC{{4o4=rXgn2?oC_f3#$=@q}r#2Y3=FXw7R5> zvLuhf*Zq2wvBT%_DdVlBro*Sl)`oeNCxTmCDc%aMUcoc|zQOlh=Y!i^^&3k%RHP74avY)bMe~$UoTj3hv!r{r-HD+kD|uR|@N0l|tIN$FpU(U?l(;Az(Kl+43ljI8E z)l%99XyLQRDENP-`^J^R8nK$2C;;y=7UJEbNoNWPW$!?=yw+yf3kUZ+AB5kXgAkGr z?0+|Xdxs18R`5Jy@7H!SPxp!L5>t(0N*rFrRsloC44ni=yI|uhnivy9 zZ%e9pjj$7P?pNjFrcsZbTlWKr3h|8nwX-XpcFI zPdI{Nb&HG@b=7fjJm4^V{Lm))2nBOC4`d78P+zW(A9>I`F!K89^2D8+ue%MZT~EEX zdvk{WlwlGd&lK)-441ud_lqN`iN`O=0Ux)EJU*tMa=h$AQihh+C(ARs4<27GhX^YU zEsbrQ^gh7XCyY_X{I%hcWA!tX*?nviDbFKKb*ZpJ6+h`eIvI&=CmuI@tr9(efXqt4T()!cle|26slj6Rh&aqNFQ zT0MW$6@Ki*{r^Mbzd(EBh~Th^0Kx*UHD&J+!gsH1XgQxp3Tcf??3}F9a78SCi*8L1&6ljHlJ9 zH+|b*{Ij_|+eNydllcFboH%hh#qiUJE1-|AITe z{N!landeAC+D8_OPb2W&kr9=Xh91|>r&b^W^h@+5pR1oo$sKT)9NAzX0$U6S6d2=TtS^jIrg56coG?y3nh^u8TO|{? zo|!+AQbI#>G_GpF_y74f$^)t6PtK_2tN3;46Dpk}d4mc$!(|cx6rZ!ZTVG4lZf@<20fED2ddf*$U^Sd=& z{e&IhXN>Y!^2Y??iebcT96C@K@_CJ)QO^BuX_SfnygT9Z`}0)2v#fF*dku?Y7LR`r?gmUK$-Eib03!a>AI~p-{jREe);5ftn?VpRERo zN||Ij{v#Lo-}=BO^9=s9{0eX}a-eVfJ#jJ2788LA1q{hHH>J|ToX9tyt?9I&i!u-3w-kc<63454T9nFJphA?VJ?86F|$CbO^~vU zvY>f>w}vaf?kAfo(b-^Gb>3{}L0sK3P6@(9)`r=_sg|I`|0Xu#(PypC^pskr#9)D$ zWNCFd;^+u&5Il$rbQugRSb4kGz@5KG1@t)9pShdA;=JLk(+`5xMAYNLdyUXgS-hV= z0<8rj6Bc4T|A#_f&a;^wSvq1&=-x(~YKf1vr3O0Z7Li?G%*KEObSel>NXPZnL_k=1 zy&iintG|v^D4aJ}C@~;(gGh@?!z6Hh^B|fTLO|1lU?h-g^T47cP`G+1Fyq$0TKRM~|h_5Yd)_whN3qk39aOAM6$M4pK7n3!#$85)xhe?6qsyo8a z#;_dIKf$%nE9Fn;sa=;|e3tA9BQG8u|0sK?Da{%6g{xy@BQT=%f5VHuc;_VldQCBa zUVjMKw-z|B(cC0EBtxus9%PZgs3@o{x;V%rUKNow>o)wj?}#n{MQIO^!;q;OFel$E zVm1*z*bA1#XVnDM3IEICJ^k|d(w&n+{N{%$n0~)w2aKUj>8TMUn<;xSkRWl#UM*?f zzAY=;U;#WKa*DcnE-&n7v4d7d`wWscHPfmAD?HpjVkH2xWrX?MTxio%H>1GMYI32T95=ScLF5dljaBpw(5 ziqhwOA1!8+;R`XXNC4;%eJ`Mr*0M@K&p>8i;J&)%dS}#scWaj(emRoFthbjXgMwX( zod#KsFcLZdh&DswZ0YC(JPdqzrhu0E@3ff&YP!KMNkcwCicem$4bv>5Lu6IuYJ?7L zrb?{9aV77bPXV%2DVOGqv?2iOrOqh`z-Uuz;Wrfi9T&Uv9|%6phQi2HB#0D54l5>6 zM|%G;Z{yAa4Fa?(cBiR2t4 z+7^Iz9$f1K%i_GAr~#rU!G;Le zsVEToNw0I1c8v@x|RoYOdqjwRVX2X80HeOMN;_yA4Nzr{LD_1pV z5ms~=*-M0h@GurUaJ>pH?c!8jm%bqCT5O_~1xkTdO4-zbGSl};4=u&fg|*?bPQ7{!5ZY3n283!MG~8wuiN-)% zcya=Tix%Pnwm~jv4C^Cc-lAB%83)b{EMP{kA?oA+QY1PRswRi8rfi}IAvpBU`c(o_HMto7A?4B_q%wI!GT?+PVnt`;fAT&+S1WRa8Z~jam=U_ zYMV2SAb-|J4RhHlUC_I6S2W3K`+s_w|C!(>RHm0B22FNC@q)*)Cxg)5B{U~v<6@l(L!Hgm${OxSvrbWQC6MR~`= zX=TB<*CVQE5_!<1IR}<{z=cgJaLlm{2_T_pI!_TypED2{vUe%dyNM( z_6#j5Aj2%yus0SDo>a%gvG7yYza!RV+bGnrm!z)|r)=WO-8+$i0tB=f+G?hI@gMh3 zgJJ0UpH)pZ%nMZw=kieP#zy$h0g52Bb8dCSxKq7kn^|B47~x$OGqy(i+sTvQHs75p z2Yb}Z3%EDZ-Ark97Dul>mjt4$>qWHD^;6??P{MFcF!Qg94T@){R0HoQCxlL5S_5;F zxrdV}+1VuV*isWYYPDKZQ^J@d3J@O-tcML^HSL*^>snN$OijSy_aRIic~M`9|3xwX zl1D}nIh$k{N%h7Ag63PDNm{mYs^+LhfL3^s=a4p@q{g5*gsV1ZP_(j%2vBo48;N($ z4ntd%^A5SFl7|=@tlz9ssHh8e!$usFNoS~v$Ks90OEIEE_`-h(Vu0ZZ>v9N~Il<># zA^ZMSFR$0`**Hn5-a%E8HmPGrr$J&kdC0UR3JpNg3)xK=YwT-=#unYEzyEWsbrFRX zALy8p6M&dnboRzfqG$IDhZes*jL9g9m2`cuR>%B`J%`Ma zBUTS$Y3+9nHuZ9UU z!|I@|MWmYoH>e+zb?2E12PQ+-9?fG~O-lm4&)KofYAFuVd_~*gjgUmtZ5BdzT zkbUTZq|6wA&4bM*xmk7OPSbc`PAm_+4p9J6@5Sc!=8_ZESPv=RUz6E?p()WmLW_oK zz%~(Lcg%(%EO1_vLjDl9r#TK@@6no0-)UH*$wTC7>Lvqm8|)!1W`J{8uV_QibnD#I zSe|ATsU$&bP=nTgs~Ap<-N5je6Es&sZq9dE)E9hdFC=C!dOleZ4we%TZLZ5fQ99L# zi=eeDOyZ;2k9X~kjQn+UCd9qf&E~eQlCD z%!PMnCdRn7g;eY=8aeA-;_w&#V(vv@NzqFXNlP z&+|;VJ#tH5X?p(vxwAnK_ua zHwbmwe)a9pT+%07gIA{Y==?7ZJt^eS%Qa3eMGoUS0{fs>t`L$}r?Gw}i`%kNQ9_Y0 zW*>OF#(CbB+7d{TZ;=Lq5+q4jXD^n2?6gL<)SDde(vv~k;B7A{fsNj;6J`C4#1tspsu#;BX!tD7|)YZ93D z6dO@W8;wZbh7gc6jlb36L_0{vaLf|QPPxBF*cI*~;WwQNf)(M6kUTm5Q7N5j_%YmJ zI6zuk)gzBqZY%}FSyCVQTWf?614HLQu&&PLsmrkgMFO#F@ZZ97&-CrTA2Zjw5_>%^ zqXiZ!Xl{mjju1_Hfw#zKZOsH<>br`$t6fA7?o-9r| z#@jAA6FJe);4^D~b!}9vq=aR(!N7I&sZkH62DP@l$Phxh9G`4#t*n$iGJy^HxfX!H zmWP)FWu@1JDDKV)h+P>oiv%Q3MXe8EDf*E{C<#2#%p(e!8g^sd8kt2GOx(%@`M(~2 zpS(IY=wXRjEpH4aJ_#1;!^k3SF_|EyG;?!5(7OW_uD&7~O9>Lkc7#+6BEnPN^ZfzSptOZj$}w(uddxM3?4}@92e-9kkE8$(LsM z8b?%$G`8XN4%#sLst~jL!X^V}p5o|R0tqUvB2L1nc7tqS!bdG%Ysx^{~pOYa?!p1l^19;Qb|G7L+fR_`lH$T^L3q6xRy z@qX`!Mu>&vR=MIeF%6%+gP{+-8q$~=}nr`dr&Ya{-8A1tABdP`Vtf8z#r_Y7dz{8#+fRatBbWL=y5#K#P*(%1$s9p=z*^rHnV6 z`Q)bKhG-y|A=gBh2;Iy@CqsHB*Z?5{g!BcLM-kAIM&qTP>|yfb@jTlqXEJ30A}Pmw zS7!|Q2Zm1SuMM9bN+0Hp!LCTR_Kh=)vmHxW?bB=Hk+;DJuccG0AAO-6>lot`Tr!rF%bw#*jR9SU9ngH1BNd^eALq`Te zhjzmUo7e_xe~L3)9Ub1+!MCn!|P^1Q;P5+c0MC zVC1WJ0Gr^FVaCy0gc!2o3EZ}*dg{ZN8)j&Vd~~f~bB|w%pA=zR5@*Mn9H&_o(KCyt z5UZXwNa7DzW`rt`05{(uBLhUG8V(B1Ty^(GaprB^t{*0c^nt>2iaZz9+AFuKQJH}V zBxSTD5R(gU1R%4RbUxci0ftp(J!5Z!Pdt82pkY4SbaNk0Z`f(mzL>C=71guYJau7+ z{Y&btxE|GimMXk=H8|?U1(b zi8P@9-AM8feKyw71gy34sTR6X4wb_YNaULYQh0p4!M18(NsxDJ4v0i+kHb33sf(vS z1S9PUq>phDhWPz`Z&s`utAkz_+_k=Pb|poNtNP;Ud9QtfF{=-RBaWYKhA{^X~)Qj1ZbwjA8q zI*U3<;O{BB5p?hkfdMuWuG1gcSx*sStVp#A~6U>jJ6TAPG{bBSWh|eQ3gPRhiD{M)FaB=e_qg> zMNwlm2`yqD#5yDKT?ABLxFda)*z560YiC|LFK!>cGdb#%z(4}&MMGorw(D9rS_X#s zcLG#ajwCKU)U|XZb$R@n7@I-&kHJW8>N%i!WH`YXA);*rANjh6&r5oRPRigO?})rX z16(L6Gz>JaBu_Mw=YR2IlkN+6O!h}uw}@dX$~Bu+LvxCtDtJJSGXXBk<$31$b=6Y>NNMvebmI4@L2@QJNW7dBW$!c4P4JMzvpb!4+sj&1Br z#kBe7$Z3iltWe54y!>E#CHs}>jmTPrl;nx)X9h|pWhe4n!ymdUKLXsP?w9=_3VG{7Pj+t88CmLr9b1p|72RwC1LN4 z5uSsxu`(_HiM0ueZR`=DM(`bn;Y+MpHfuKBAAwOCuXkzFwU7ZytW;X@8eycCKNWtL z>BE*89h>+jxXx}xWi2D5FmpqjAyC_-Si6hvkef%7A6s2C`n zY_en<1#KY1m?0h1wF9aE-;RX(4dkzkA^R9Yb&=!o}5;Ezm)sh zi2r;udsle#&n!V)ko`-$hrK_?JKv4(P@8GNk2=J%xk6WX)|0ce4&Fzz2L0!YnZsZu zOlhzIsb`6Ise7TPgTLgUzgA`Yg-|kVhTWvX_J?)T6J^qbcM88TN~T?#8xNkC*VS?3 zUftcD14qe%u?Mm>#bj-K03epV-T@J2 zN;>9w3(n&CW(JE`)#75Uj)wWq*W~X9=I7nN2W_~+X*@D~>6U3!SXdFI%4||L(x_{N zJVIKtc4BV!)(N;(RgYADA5|sl&zd!snVZ)vNI@gae5u`AB7RTQGKtmUmp^C%cf*Kr z$5xMipnkq)?NPPn-9_1|Xd_6xE6{@Ysa0M9la;E{8%zubhjXWVw-xp2BtrZuiYuAW*Kj& z5qi@njjGU-iOlSoz&h)7c|U0*KeGH`WfH5Y&#KTxvZ~DzGq=p(FaUJqCR$Z?QIghD$eBa9VscJ8fP8?r8IUf_Xe2JD#Yy*-r!ro}JlRkM26_ zKetjyN&t4d^tczo*)TFwm7O>Q2_=jVCZzWGS8qx*98A*=*o$%rs%hE>yA!vj zYgW~bXAicUliNEww7E66eyZGM{d_;zSyd9>IuZLMnA5y9Xo=L3t9c_PYuGg7Sf$9- zur1^(Z0T1O_V5UA69^@_3ux@_9*`Iw0gOfk$lnx zl|7TV+835Hs05L1k&S(3g94z3Eg%E=_q%lQ!6|BJ@UC%Z=~c>zG)?ayp{(Hx zYL)$x0q&jfiJ(5(O7+O=XtB!fS{Ow&qESYhTB>|alzwYkR(+c*!+P7g#*1+&#m!ssI#wM<*o=45LURl9 z)n>r}KjES{L5F|C*H*JTU{0LxuOc2#Ppchp3!SSUcLVj6H zYXU85)(_ZpK>ZUhgKM6wPW5aWX;&Hk3x&Yz&5KMLO;es?gK9QwhCZBTM(?ees=h zPqE^2zp93tyr=KUThk`m8+>Y1SAIf1l!tec(uTh7xBuQpbR2Mg*_!iL!L$GD9Nmyv zbY?@?J59Ry!N3((!c044la5HxoXI-?4@O~WMF#ArD3u^AV`(CR9bsy2{vj@Piw-pI|L1BpR4_mxr&6O~GpmY<`U-J0gpS4Wh0x@y-d zd(6({RhEB|t-x~aNzLv#H2Rv>#=4tQSeeJ(CO57s>Nnx@;&k2(IVr(MmUc|Tf}|Xk zxglYW^VS${(R)AhMBB6%kr{{S3W<)EBlt;g&!Ys(y5(Yp_|ws`0e-^l?V5v8Gqp{N zAZ{dmqQZVw7N@7BDaf?Otd1%LZ-o9ZU+)al@?zK$0vF6#AM4iozp!Eehn=rZWS?I_ zGtB(31z;ro{WTrIy6`C0$dK7X%Eirj5=b_s26D1BtW_qKmjqqx+055wGo#r8kx5s0 zv~Bk#i?%;Q@7N0=o27xT3T4-_#H+Mx%j2v>~RAiX3Zoh@d3S8E-h>XqIL@+E0K1ugz-iUfDd!3@C}$xXt<4 zU-`TBO04af_U!RW`3ked?o!r=@&?9!HgNDz$<8!v#_)a`PR23r8-l%-{c{~84}S{V zx2fwOhXYqf@J>Jh+YL=P*qV^o?V+A-sx^vW!G#9dlQGe=$*GwR@9S^?_3;kn88*Fm zcNm6M#O`1=y7n0~kEQB7+3eeFoi=+Mw-8A2`-P)oad<+Cf1)6Cz|yQq_Mq@DVt7sFZbYa_#^J7=5D=EkFa z2VR?Q(qaWuNhqQ)6u9i?8)i?T^rIiP^&yjn|cdF>3@u5q6Q;dTO=J3n=9WWW2>l~ z4kn&eosoVU@uPrV5W&FSHn(W4%SpVAQf{r?H=Q`!J_ch(t#9J&5_>AA4k}mUS5+9bu1Gz*0q!CKG{AI^>r#w4WhHZ zi{tI)QEC@EYy)%-3&o9bd7_Xr3Nwys>VV;fd6b$)z89va~ot9>Yb z3Fu0GB{_6*WQFp!w|Xsdg}*lD#tdFdE^hD+UX{d>RWHGJwOc#V)glI~F`kR4tXdi_ zQkGan{0N9#)ls9b(T25h!Vh>lgpx}0?z~aPvnQdP_=FiYbnS1G2|mYemJJqMYumtf zfelK245KSHBpECKsi59cmbte=u2{7i=6Wf3+Q)j_Z1|6BwX>O+&a-ULY)1{ov&k|@ z^^Hz%YnYbj&j%p|C&b2V*N&Tv2{w=Wg&6(kdjxzP;l$-fbIgo#)O)%6`V{=}>oj_e|&=1oNwtBMj`E;?vrh`V@j!T0Q6yXcQV`VGL zISdN)1S|_ow7}76Ojr8Q(tYqGdttfC;~Z-YZq z5NQJZ%S|4%m!@+h54uobsr=*K$R&6e6RQ;z`@1KU%+=iU944FO5=p4|yW>NRn$_WX zJX=ZFghPRs8Y>3`V;Z-Yw%Zr&#dEsX7B*{YV;U?mW_+wDZ^qA-h>vw30`quIdLhD- zVQE#|9G);o+Wb*Ps&$6e6lu@gDw^yaM6cRzbADBV+lLk57`sz;k^BXdt(b@)VIlZV zoUT-D7HO&_@ln^?uRAk=I!3R zLiUQij(ruhGODLW4m(P`3+<)--2Gqdy?0ns>Gn1}woymNhKizsGg1_kBGL)bag?D* zMkxU)QHlr%5$S{w84H7yC1bK}=G(Y;BxOY1D{q%?p`B6xX;x+1hv##v3nbB@8 zbpL3)FuTtvH}Hs&K-eW*YWbWMH;JpLViKdC+~0-hs17FPw>x-=$rF>ZrL|XA7lAF@e&lc_~rU}T1Ik^;VgG`|6|%0+-j#S z-kvLC9Tn%eg{GypL+mw8@(M*4I}Pg?n;^$(&%H3+UQv)7g!$x%tNU;nF;Qll(;kqe zWjUm(MQM4ewD@toEGOzm*GIvJ@bT&SxmlL33-ho9oU*VQM%&v>4T2X(F6!vTIZem) zZV}HMD2EXb>pu%Eawt*Pyn6PN!9{;#xShY^x_!2){s}nfh(b3g8d@A7{q%;Gz!Lm9 zWI{3x9nnKR&_u>syv|Nu6#h|IX7FSYcrHJupT93btXO|2n%jru%!w-xtDn-l4R37p3qLTE`3#Y4uaMEFN^-;Grp4(@^p4OUxOx(OW zrJ3adpXBG6!U<*mrn{?BwN~iumH+_CKNqGXGIOx#d`Aul@n`%V(89-CfuA3k?^f!T zGZ`9ot0teXCiDM1l(dlI8HxKHciP~9v9kENx?lO{%Id@k&$2rZN_xKc6&nJzN@?^rAMYBH6@03hKJL&6f%ou z`p{d_?X~JzdYZfd+dxWK_^_22i=FZ^&bJ?PX!T>H~^DmK8W(u%)v2C0|dC5 zvrK}%#}v|W?BXTBRhL>`AQx`4+GqTyKuM*e&iC`*dn=w*@I4MzMD9GF+0h}wl|{QX!LfT zq`0OvrFWqRT>MR@*(<~|k5#V+o#&oA=>4k6$6-Dr5I|K}Pdqid@4nER|CSEtaE zp7m`56V<#fFZfV(aKyoitJ6JsvUd2x;g2+4CtbYGb;kz0N9Gpn`%Pt?(H2iT zoWA9pH+Ala5%^QzS^dhC#H2-!KPsWliKnWO#)5D=Ehqnnez(NA7khki%04WdFle;_ zOqhHPw0_B40xc4sFcN}KuOB=do>Gz`S!iq*hhgXi#zO^1!Hm;oTZYtq5|Uj97Cmv* z)mu|j?b6&>D($2#75*U-5JYI}%p>US9RE;EYB>g*V^te!x6;*}Lfb+P8<7(5(+y~gHtyVbC;EBV=6Qm8*CCWydsi>vdE589dau4aiNrS{nH!wV|AKsAydORwR4sw*)prN zqY+`pJJ+a=?(zM(=2Sac9m6OI3&6AuIN{UPdY@df(6{Vjw)qgN&wY5#@LFg;YF}}v zSJ-jgjZgtpann)H>n9?sZz@S&@Dj0 zu2J8ttfXG#COHhH4Ok2edIIJ5If>zy6t`IEj-N<2vsTfmpUul|w3j_lqO^5oo93H7 z{<6>qG25D25xph(gd*?L$f_i9zhNJ4(LxPo&m?f(#RgRbI#--W@Je)QyZCcO&my~> zy(+j-Dpj@8IhGknP1p~#=J~6b;KgPf@(HLwG7Vw|b<)%M4?Vk3T_{*faN-AG)5<3i zcus%{+6l(XDiEszKT1gTVp3_8jKsv(-b2JKirDpqT$pHgH;RT}rkNZ3ZXA3X0Izdz zE+yj`Id1(uMHptDZ5dvj;B-xrDZWr!+3WbdweZr3-*Hi61N7>NG9NaB(w;Hq>ii!+p5AvVa@0_R+*uW17}ERLMXi!jlz6T0Ec|D6Kac6NzeY|U6*vDH zNxS*ZEpj@_R)faRGj1&mD}$s?Q1&?yKfkr`4>o-Ne$PaAEbAe~fo0F;SP;tS)0OIe z`^!>LLvbndj1~*2DT<;YNX!^+bMun^M^U$!L{$ry(WTu2zZ#Z;>9e*qc`l(1hbS%% z`#=xoko9fJvGBXG%n^KcQ6dZIuaH9(+R>kVZdy)kq8(oSfP zEPpVwFQRqJi9WR0VP7INq|FOgX~`f<41c?R{Ym5y(9OUP8%3D<0;T;)#aIfZS#spj zmpu=eFCdBMV}q|eF&19Xge8xnjjo#drl?h<`%_5(Z1?+^DdtivaMgzkFf$!zLKts7 z9#Z)O1(=p697}?-bE~2iu(Pe~JZ64Y3(h72)O5BT*w9z0)Y*B>Np?(-!%q~vxWNJ{ z-ea<6I@byDj-K0ns+=oSt7nziny^oEQr#>nf%YM8H_CeFA@0MY4wjRLFA3vUW}dmvD$VA~ zCQNC+*pPK9{4y(}1U|lQ9 zZNmc5nX0U@p_SdbYw%UEORHCVM3(8Fz>Yl6to8_C-*k>R&6Lp>(D2y;9r~S@W68t* z^qH3j-5%Gu3=|}-UH1CHstpOCRkT=f9D241v%ldtwV~MIsq4sS(rk?#$PVr#yqYXl zI7j*U;~x9B#))&SZOU5Cn)GVdYMY6|x2GOZYK~IMijQwx{^rKEJ&4scWK9}MEFF#H zT_i%P5`!pq6ZXaxL2X{sZC;c_b)|FKAG*F98Hh0ZiTMzCVp(`Y>o&twslCg5UF_NA zFIwC@d3rTbK1|c2ohT2b&irmdaqQx{q>Wzf{gYzcu*W~Pq_RliQAmVaTDuod4TFx1 z|EYef_;=?WYY%GwvU-!elA_gat^JoZI{tpiU}`(CHa;>e7ZF4wiK!!Am&;rTUHWZY zPqB-^WSOd-V(YCiyjh_qGn*dTBYZ*iqSVebJ-|%V*@*njFmnY~<7Hf%p~)7bo>iKr zlN}3f_OQ4hn~SDB`8<|<&Q5up?000pJ+yIGs{m)S_cV=%==9y)Vw4`O(q%I7#hPpp zcsW~0fW@_&=}E;C{-}_EY{`SLkQ+Brk@b$<=(g6Rw^B3KVtX0Wiq2=h%9ibY$>C!| z?rivKwEne>Q3TV?lwj*e!B!A9E?`9#^7^FHUY*38f@~4nH+2Xf#U;9UQ*W#%8 z53krnZ}-^G2tqZt`Jr==cey(ONpD$n^*&*6Kt3MiPLf=ZAvzDpvqNjHw;m~#Z7Fy; zt}*t~!}!3%$ek5Yrd{Y`h`}^Vk2;ck&JMPr=c&e&t($Gig2Z7_Ks%~J0WNzB`swTI zIVTUSuF=w>A!=RNIj)f^WM_O^o`zagx>Az4R_hjPGh8C`_oaH@= zbT8Q-ZaEa28i$Efy>CbqC-MdAg@%XH2&}4hTEXT<;wZ#^R)1n7-V^DTR-9{mAo`+< z=)t%<&8W9$4z#_BR;ur|gWOW8hJ_AlnN2S))PfTh=Dpc}f@L2AOD~0%Syd&alh`GJ zZh_o-Z5wf42B(XB>|REb?2_w&Dy{mXQfYC#d$s9Nvm;VoM_7xrw)5yBC{Pf>8Il9< zKV5Y+LdJAxZX^1Xa)@t&zf62Fq>qvAy_N6WR1K?|>ssh(p~}fuTpuSbyyTACqM|PO z;&gCEE(rffRy?sktkIkndE;oxaRo8_gv@I_Rvs(rm3WNi59xSM261|sihr)zN&)AW z5KS}}Nst7qG$lp(Xr^4?$;`+f*2JTN!^!-uE$8I>A{`zFN$pYc|A~^e4=!|);#0b7Rg;V)`Zpq)Q83| zwD?P2-DDydUlV%1qjz`Y?2}iFUep1)n=SL%c9Og71VyQnVbyCUd80Ary1wI{7giF# zFy-a5*~$h@i28CshcsAqWY#GH6(s|k$z$t0H{DdxdfNn5dX!^@C+bOO-r2@WqB?xM z8@t+3C$7E!-Iqv|i-_*KOT8+?Zc9fBkUC5}p_yXS&%1OvYO$=l=|TBy!qz&LsQb49rBM_pg|V=!2d z8fcO4@M83;Og|I$DgTqyH&ohwI)&-2KTy)Nd(mJ&Z9wtE*Oyfro^Q0aJQia3qSb2@ zo8C_J4#Ov@)FN}znRbfy?{n`?JllgyMY$DiJYk)?A??JcvquP3Gb1d!E_7rh_C6J?LWBs}(|CQt}yF~zxQsq-n(H$9P{m7=`>T(Z$-RZHJa!A7Hz^J?x!A-$n zao(HL{`%&`%S~W8HO0!q`k?vVS93k><25GaCaJmN-q@XrX^o_4M&Hh(XGUt~+g^$8 z)_PEhu}v++InF6r900%A?o?@D4=npb)Lcf>7>2(4^_9ksM_HgN zex_2^Ayr7cWH-q;;^KZ(_~QA%c@wHj_$caAfKEjJ=`#)0I+8@s$v@7NGSZ61do)lA z%q!h!53|JwPk26!T4!|63CzbOwpq_^HT7yOI_yWi4=7!vV2jpS{qP$&JgNg*^E1Bg z%bSHa6ISCK;^^38iJ)uh#BS`x41QO~t+60jwYH7Pr!TMO{s`ufs~K&yUzXWAqe zC{6c|b59#E6T1oRV{KWA=!o?Pl<3%pp|7XCTh4E~(xOF_r2g!9L3~zR&XM*Abu=bt zv`r@2sNaig{jbY9MsCPXTp78x=)_ckqiHrcMxsnylyO}0Q|>3JzbR>KtKyFWXgL@B zl*0>(f8ww+QwT@NpuzWk_)0ShH%__LM#)%Z7acX}dx^VN-EAMc z@Zj7C2HJ9-E&QBj))Tfm$?U34aV^Scf5;oBTOlH=;A5>a>GX6PD?QrKrvCBn%b;+o zeIVlrJVEzDBNwwKYo4^=%Bc~icr*bC0$~ljAL(TxkwX(%CVKUISUaKapjnhxO^FGs$1wPOW1bSo@5|ZlHP>cQ?~fNwqQW^Y z^d}4A6bO2a7Eynvk=B2(?Z~=6HBh2E;Y_iX zy02nHt34-%d=7olvBJ~_<%fC#3t!OTh|buKQ&ZRHeK)`B%*hMRrDbnR+6`Ri(Se^v z!11FwHD+BU$KF1Eu)Bu3poGqvb(W9kkC^P%GCdIr-L&rXk#|EHNPFL=9@tK^o;9z- zuTBpIzHzGXzT58Yw%c2&;`&wO54rOfnh2?q4_9T`CL1n|HXjL$9EP^w>chpU-Yu>4 zEg({{e|$!-dkc%)6xL;;p{YR4QM~we@u`4xEI%hGaDQ0islc)ITkefZ=lQR`%%_~* zO1NnG<3Lra(7+VzYzS6JD!s!`M=n^OJ-O}gSpbBwj~bduZ*A)Jw^&1bv9*%9U`+&F zkBW`VbVi|mOe$`Y*czdCH?u==i>FZ5)Zj3ez}B=)+Fbf~g&XKjc zoKFcGAuhb2AjwD%X3et#Axu7OR68o2IM!NGa3%CI?WHWD0?lEC4i@NWU-unoVO)-o zWQH>eTIMsVe&*!~O@S6b#WT?NYI=TFA(0n*|ByXBhY=P9^wv10maX=>oCSJwr0tfL ziOqqiwiJ!tV_p~k@K&k``YnQd$mh$nDx&l8mDXu`ODr0!4BBU@WbRULoNw_iAKdri z$qQ3WBSEom{P*Ls34+6~M~C&OH+~U?_Q{2{oGuST8{|l928|*_Lc&gM*7=bg@V1un zpMEsUJ4U+W&`GF}oJYx?W5+hWewsTTzN@E2k!+fZ!ZLuT=pORTccu?LG0$Fz8FR!; zmd;zrcF^7Q>*(?MKe}lyOd-bp*onu^anOxe#R^o^N2RW~_M`)wZ|{3)YoE*W_Xpaw z-Dv_i=2T^0bVSrbGSlN@!rPu|;&G|}m)siuU@%I55Vj6G-xDQ!Rds>dv(SIVVt>TD z8OMmX>EDCzn#`C(8_r4$a%da)(EcTh8=1E4ex@#)?mq2NDs!GXAoum%=RHINLe2Vg zo7eY%7wGI-tGiYuQEIy)Q`?VJ9V1uR4poYNF^-6GoEvx6pJ1ZS zu`0#VqF%X#`7^9Ln|igY7S{xh1h+Z`j;Y)jIB0Jkb41-|7WK}rUPvCh^;7wWjc=8D zDNnQR;F{LkzBnPA&EpW|{2(nhHD7828LONHPs2;$hdb2CxGae-Z66mZRqm=e2)fa3 zdy50(mYa+ddIdPQu!Zb!zBlZiv%vVLq=kCv&N|R`(qh4Gcl4XyW}egiWCEPpy<4tb zLtzH}rq~JDNyb273R{)tTLK#qGJTs`VM&u*^V7+EtFbUr@|jtlbO70JTb!e=jorZe7{{oJjJf96ik9Dk}7rL$1?`}mN;>083Y z*TVC;w)BcT3D#_YN84hxWgySPX7Q5{*Qjy}a=JH{GAS;9EuDKlCn>*jOSHGnZ1CVj zs<<|fgUbU?3_9KiCS&jFm%mphdnbTvaQ*yH{i=ftq9a+~)8UM(15ro6H-%bqi4GA7C@x+C?^@jP~E7aaQWd3IrNSphE0 zwVLWR;Wboqwt6w(K^l^tA3pmCIsQ)Ix<}ARYN>(BEb9Dd^SPVC;Fldp*Lx#4!U`>#*Ml#XR?8p|x5gU!N=+iqim=E{x>Q+lYVlZR;g zw9W5D`H7}=a6`?sC^dJ&X+ct!)+^7$w_T&!V#n&ul^$+}?JI)U9$!3Png6zK5?VUu zVVgHIEurA6Z)Y~8`s9JEGH$~!q3fAQ6)l4eJ*@D z7%Uw}M!$R^gBY`C3_Yp&j*)zJ^D%hc&s~ON^?}kO1}$Pio4kcBI zHe!7Vht((wMcSUqKe5V7_+gvIp}lfR)~L&l5gtGrWdAHc^0!F;h#KV*MkW0-BBSu6 zMA4#uSkxcpU+1aBIBYyovpx(HW#LfR)9-ti$yjIP>ue9rBlJ{bw@-NN)$V6H-m<^p zrt#yN)^^}o16Lo&4-~z&(U$8u)ED3|o|N+>SQp6{s(IoDjT+XF<$fvrdGI-CmqLKy zQRMt9R05X}j@o~tF)on5T~87ufXQ#&3FoIb!X&+BoD9K%T`gFhJs(ZO!lFJAASI*M z1NvnQM^0nSds1CNp5NH#t?XUtQkKPZ>+8MK&wa43B#be!^(}#%K0Zs!gxwywpVnF5+A0Z% zTr3z9HoOei&xtg&r~AAhFgUaW0@E^039Pt3um#c^);vaaOkbVPLysEmOz@F1dknIZ zWDP@l1g7G>c5npacce%3Ilj3FRDM^i#(R$bT;g1`^^CfTcoXb^JT~%bwy+?j2ZEyQ z1(Q6y_Gj=XtEZpm^>cdLWkCy2h4mHvLn?u9_C@bh!|=U1X<_*dI>_~tb0|@|A%W3V zJN)`%%7Y7e{CV$xemEfMWdHezNin;T%W9U|Olj^R}o^)nj`z@7ziW#{* zz&a(`lJMkhkCwUJk0Wxy7_LQYspo`cTS>WFwa3m0O^SnYYnKXB(HUr~eXg6`)yhZZ z=NjkX%gdFxfb&M{yV`I{5nS(P;r3Y%ok0>iVJCj=@! zvth9EYej+Z52x3dbi!M_&vpmIM;HEZ3kgeUHq7k1j#7^8Wb6|ZC_QM^*Iu zJU-w4eUIQ7K0*2*M?Nw8O306Natt@OL_)hn^Rg}8wiN=tpN!XqAz|6!{l$)D@L%6b zdLLsW$6+_Fh_)x^dNw{48*zM$K{-amyIo&bP zE$~NO(-xgQv=_R{U(@?@)i2;=5p?=JjiA4EGP!-CE@1p|Nk~M1)2Vwh)qEGP{v%bz zWyw6vBDdDch-wGhqN2Te8~<$9xOCy;_~}zg$u|!4n1tQ@Y-(@+{V!!<+n(KQorrv$ z?C&LL3ywN|;9T$CbcuFS#v*G9j9202OSNw{#K$z~;4pi&B%P?HbF zhezLcCHhR8+-sSTS%-GqEj83!ob?{RX^u}Y$ToZf{w{H7PjmN&H*#HZsD<46F=DME zdK8AdDw>)J3iOH01TWlrHcr;b`P$`te6JzHLf9UB*zv=sORW)3xUw~>Lk}rKX7;;? zJ7)|pB^O81lT(XRsIl_^l{KRM62K=t+8Jf-dExOxwN#|tbV+$4g+8G^#8Q~lP<*8| zo3wu4@b4RA+zwrzShu+9@(kG&#Htrd2Va?rKit=0ea>HK*-FxqD0ar5c;_m%E@ouy zBS}oS@u&r{#7dTW$;Vo-wQFfIRKlMp`|HE-Ddjhe$P<`}(1`1YkZxU+gj&;KHEV^J zwq`ohb2p^Q7Ln<|h>xv93)A<5`Yl48PPw^NX4Cmg~7&jL?gmcH z+8z?W_^>rZlMZ?0g2Vj^+}X)wO>i+V*T#P0ndUqm>SW=iLN6@=UA}O#@37HeoBs`9 zCImCP7SrBUqSUtj`|t01uKj!DP0g*7C=@De^TYGMJPzBi5KXD}o-GSvrdr|b2sWZ8 zH}hYN%r&v9`jTudAnwB!xqGkedNj93Vd&)r?|l>hvB1R*p9R#kqR4&z7^I#rJgd-! zbrv)H1_YP{vm`YFAyegAR;kB*cs~~kp@q`M_iFoGPy8NVa|4-*XIYG`IDFgG z53B7tCsQ@C)<*g7n8Rr;CYOA@ZrXoWsOsuPzK6QDYQL;5C}5-ILuU?Z6W2z8XGiLV)X@mM7Sj$2OuR~(q+Dn?kr}ti zbC)#}gKjqPU-=2mYokc4x@)cwSS963`>3L}fBB`odsbZby#$!&R)hL6W7P_=whbU| z-gq=%rM+j>PB!#O{N8O|`8k05Y7kkWmX8#ih2fva@Ppz0RZ;y(Ir!>?@YhlC9MZ8uNCsmyt2S=a=J7?kh?U}1t5)ZKfBpIL$#mbXjm-LP z)jt>h8Y_`mCt+|1YU~OauumX{v>|eq&BnfWdP$M}NsPwhkAPM2PU_$Puu_}}m=zb-tF*$O-|H>8`IUk_ zhgXVyRI^XU zS-?;p&!;!6fZ8d2K%1kL?g{cM#d`olB|XVMv@$3u8vqxe+|zMeDfR#iWqda?X(hr0 z90FY6zi-j+$^L7u)NKpb**3*y!~GNhJNZ{&r=%1G(?p7DgQzNT+xoA8@&5FZRZhou z+O4$81HdW@d$o#JN)-XT{pa9+Ia$pArZ(P_PX~DwZoAo_{|k_qNF@(8Z{GZ}pGXk{ zfL65*+x!<$#b_RCkjvL}*1r26Ni7Ko2)bjh+)5nrT7s8rulH!K6dNtUi^n<0O7Kfx z3bnFz9Wrue&tq+;JrYo{r4?8hN!tu>+Jz$ zAp3k5uc-Q-MxzbPs71=&gXwVRec^xXgUm}YAE$dkfOcbYmJE~Qd_#35k$q_i=*j-V z;7aX*%mFDqEqmiiVpp;QU=OJ~LsuH0d&w@FXdD#k6DXVr#a`BgdEA>>G%iz|Ws))KI9$ilA#_Sq#Ub7eMNU5Rj800S`& zUaR?!Y!nX!Us#EJ?tf&X-vA@udNKXi)4RW~Kc%^pjVjy{cCXAv2LW4bd6TcPa&@&! z!S~;{==l)x^(xGVEt@xAGr4tH`G6XbQ(}RaOG(GpFEKPJC38{#{VP`~%jWV^F+6PX zD+Ty2X7*jJYc#1zC{B?kb-8eUW`;4 z9iO|@1~}UvP^?g4A}v)|AAQ#R(o;eA)LGDo@6#3!Pe-XTc|V|_`zsPLqo%DKKKKs%0w3DMp~*K8XyL55pD^&W}Y6-nsf6=jCDdsLgZg;lg zO4Dlo1Xx^UQ>^~Xq^e&Se@Qyp1(dAiQWgeP z-$fV|LW0Gi-Pkyy)aC?usbKx568itLeEX{s()((sCtvL(`PE>Sw}f_bop1pAW~Kh= zuv#FtNTGD_2NuOu76AMDE7M%I6t`zBf&RiFmAikDjK9C=;Jq&3;*nPhGFI00+82Q6 z`RCw&btnIKwShe3e^WB}wPbDo(9m$wnMLt8U4lIlfO4~fuq+C{*0aXDZKfaCS%fX(WwCOh`50I{nN03eKitiAlJ0f2rS8j!L} zjC7YzLH};;#U(EA^Wl!af$^`#Gj*x_LHKngti-V0Kx(Pj@PqD37!&~L$fIWJdaM+m z0es}xA8$6VSlbi`kp5p=a*V8(Iy&>J?3&-I(X3jx81KiYQqr)A`slky6;Ak^Tz~)m zwjBq4y`>a5+uU10ycpEf8k~p02YXFyXx+74H#*2OaH8O%_~gy+R;^yU;poo$+Q)7m z2ih;df3_V2q%q?ge|wZ9=mP2dTeNERrgh5Jo1R!7`qx>&fgi(H@5mpo4}w_#b)ltm z8-7`}vG*-flpA{2^WQYE7(NhBnZ zOo|7gWTcp!rK<@xE^O*Wx?Pc5TF+mrxPB10bc|c2xyrvqCqJ42vVRU+u8f7Vr2t!*SccssF_xK-EcZX+=Ah$x3eC{^zh23TZ(5qs3-8j1A6yYmgZhT0#>G z2}GItV*A)%YNlZ;=xn6qA_+>8RY(yiX$3Gd6jdUlvPpd5lJ*;@YXRlM;T_10U!(D> z_YYd1eDiW|#jRy=HJAk`|DVH_=_soKUGKV3G$M#HBh<7_2Vbm+X2%O=m)xF4qoPm? zCE_0k#bTIX9<^A?7tp7o%>nh3Py=!YubZwyT{fng2pa!|flFHde;*ld-kuI;kH{@U zxfj0!hThh8;%_Vl){&%k@PF>ozKn;X7xi)$mQ?<3N#)Z1crsPi9}PHt5f;S~`k`b4 zA_54-;?~NB4X)4d2vUhrB@w4~^5dVYrEh{8t7bEnIl80r!OIsLJ$L+t`Coy}97s?H zI3)<668pFN?*=l|Zk>!@|4t4-*lY(9lz9|0Cu3P6I|F2>GuEohVC?#@0E}&?)p)CZ z1Id1 zO8|72^^?E^v!$4jN)S9DAzIc2cz^hk_t%BZ#x3{$!+`g1@KRXj{Vj5U_p>nw_vPOI z1K|C?WSm{*{T#q_EeLwfa&z7Ry#LPc`OCfE6!3lywOVbt_dfx=|EGsO%e@~0c>n*@ zrG0GSC<=`rOWt4p;Z|*SH+?;nc+44~HQgk}C(`S&3O4-M>mr)$LpMw;9gs@vh5_(V zLQ0Bgv|$=4mjv#H+-%?j+J9MJEw@bhgK>Z&)U?|4mdo4#IR59bWl7fUV+-Fr8Z8I7 zzaaendhFO#H_8~J_z>Y-8Abvq4zub9*~WOX8Ssq@#XRRFN(o~vWnjsGnT*;EW5Pjz zb64*EBA;K!7yV>Pv|;X&5yZ}rrPIYb0EHv#wW^jCPnS*uU~qRZ>E~sc5C$mx zpTkxt1k4W^Wd~7!;uWblxeju}7~^)GK{o1Pch`h*d`VE5lqgyZfwR$IHvsXe0F^HS z5FeWwo)NqJmB)7u+^|rAA^mNcl=DFVk-n- zZ1+~IB;gJ~;S)^iZlH6)GJwE9#U)GC6hSgNDwdGVNW8Th_Ain7{|6g(|NUj@|H+_P zG^8Fvq1DW=-L&yjp`xAU0x-r#3mF6?Q=n-kgdwF?s0d=iC!l{YY#z=N`mz6^FAe{< zh#Ej&-bcV!<9atX#jG13%DBQhOE{ZOh+JqNg9837CPhk$Bm+65B{E49%OsBCMF3e& z0tpgzxdz%1wG2kK90JVTQN(||taKUCIQY+DD;4sE4ns*of;zG3J*v+@0~Ww{H-UF4 ziR0`+0%0uH!ye62@-H6F&>g45Lr!{?dZIa3t zf+kwb*2I!r&14JZc>aPA`Qo>@$YoV9JWYA(b;ntE)I8(rxRuBGZ8k`@&u%NhUX zFXhQU-1$~U12upu!1v`2|FX<>+YYbVm_l2#%)%QwHvIPJ%B9=ODzbwIFVC5L;|V~s zdM`koHYaE=tC@i-N3Z{PuL$@>8}O9OnC;7|-kUdXx3X8P=L&F^uJ)Vd>$$HjJn*gC z4fL22fC};Zv&(AiRjYTXlGZFg=h622+MNv>mhrulC*OPy`^Mpc57h-&_TD|0m*423 zq5A9TU}HuuB4C+#_Y!;j&&MhMW$1i~y|EXTPA~3u+yMb4F_$Ukh1)?|l`Yz&tEnXd zRw+x}k^g3Y`_Ai=d3e2y^vDr&>^J+wbj!aJaQci&MfMj+yl5mE0_GWNaXOiV``U?* z?r5(&p$8ArUcbB*Z+U4JA$hc>qtiKLp*|jLa#=yCh6exPlKKGo>asXcoLJ&{56&(<8V3}j3tmYj+Flq%0lBgS;Td#>>GmuZc+@>!WPP=C%7<8tf+k$yjWc1iZv#=+Y21gPy{1r zBaCe4I)0=c^9a~E|1Z5Xl&=$ojlYy}=s!tnIfGJ)myNp~$*dn@T3V=)CPmf0WD=}+ z2TYhnIU3{H=*a;yC*3N#DhH}+z3Nq}ou^H|9)aN|3WuYE7-t5oBMv5W81N-=iQ1JCDF9AEpaRsd!K!*7HaR-{G6rF8HqIN%T}$Zh%@- zJdg1DvK#aH-Hr@1wbDX_1$cbiu^CZU1y*1OL93L`Jz^wVmNx~5A@k$(Q2CCQ#gBvsF`-(ZZGc2Y*n3?&qS1Ww6EJ4?=)DohJ%nj=ZW9!?5O zW|?XTaN}AS0cF@+E}y3F^kJ`-t0YQP8K+`lMPjJelU`y-hKbyATF7`iTC}dMI6lb$!9c=dQcZrLY+l{7@T1ZkAD1xai!GE6y>8q@V%Z%%iQW>3`gwCh9X+&4s*eN z#j|D=C^WRz5^K;;vhn5ibdOM#C>4U<_Ikjy?&o%BS4681D7|cErX)wZPm{xks~C|( z5qAUKnww=$V(+Or_#sRX_O9YQl#lv1HR*4E&VF*lM_|lSHq$d;DYSd5r%63~hfrhL9BERDW?Zz@ zGPZzBstpK=LsJ*s`-1vv7*+|I8-DnAsHAUu&VIS{akPk{t}u$?K8kHnzWaDhLG-8w zhm$n!*l9K6&1DbpIUU_2IC8i3BSx9W4xL@?Ym$Pv*DJ2LKqcyXv;4fH@c497RZG39 zmh!MBMiQ?;@5nB~h0+8lxI3k$rLg2%w{PKSjL0S{Ih4S~R888MU_}90e8=v@&ZZWg z2MLP_?LU%%l{%6a>@w~_n(_yt_aGeJ*vT{E-i*A~gJ)++4b!4oseC(Ex=oXYgH}*L zUGs(HU%jH6T9ga;)7VT3y)QzK+HO~j_WS1BjvBwyj1UFUX!}}Xt*RN6oE_-q?or1M z^qVQ0=nN8vR}^`&UlLwp!6HXAq{45OF;{%shw*dBYn_-Wu4rM6bxe&y)c1n*<6o3i|%XGatCQ4RP&#ezG#1D?( z`0vd0)Fg%FlMc0LFR3G}GLojjDnztq-m^y(dUlP34@8~Fi74mAE@js_dS1uu7r~m4 z0%xu`e7K<8nJ4zv%rOda8}@M33ea?7aI()M`ZLx0@sPfeDij@;?{*}#gz{Q0h>vNeGNVoi-`+0J z4?pN5ni_E_PLB6gYyB+>SbHDN&5>Wgp<;cZ#g;0kY*|Zz+BJHCyf+RZWM5fLMX-;Bd+=Mugk(m-o+yo^J^QJwfab0zNak#GGQanf91Nb)C=5Y7==x45e zg`cyls0YAgW$SUBkhp@iPg)R&0OX{dYaXK%)K74%|Fh&~phVp7+iQi?$dUNj)IU_#_JNvu zRKRxR_U*FzMYq`(tv(b~+)_GUG^-*OJktLgN4|^k-Zand95N}5(#l~7N^_>3xdK{T zq(V%@b|gzIl%<}L5}A+(3rQv71@z$z*f_w9QneH1i`&tyr`_xEA$nR{DJ{*RJmwwG z=;8GDdTt@93f=Lw-$yqWf>bSc6$yC-$u*OSzyNi6&Et{+00)eGzY(GCo$r9lmRI!> z9L+#!>{dMoR)<9`*#m(GS3&u+bU|pMAbPl-XtN+Z#6`?Zv&?to*9_*yogB!=ueSsa ztQ7@eBhN1dHXr;lv`Hha@#+lhE)}cNZ5J{;9zK?lA~ht4>_rRCjgVy@EB~DR=7p7ZNLNmgpKCLa5#i)I^Y&3cC5uM^u6WJ&DYvN*M6n-9$3dcQ z4?!}TCbAVEV3y_mLOavENxE%mF}6^S$?fS<%+Q6BqrTNQ4Fjurm{)CfuBB1FHanhD z@tnr=zKmWnFO)SZ?pFk7=-NY?e36!L=(QPd>S^Ba?E=k|+n*k6`h3|J{j%JfO{Vs< zOCxnE@X5LNpkS4-w(LSNEW_6gU<Lv^d$jaoN(jh-r4AH(Xc76&R_QzH)?=_N?TPm_zb4;$iDS4_PA0L62_U~> zLib3cIQw4zrq-Nk0qHoez8BCA`=ax>Emi?y$||UFU*^Uo0DGew*9rhw5aWnYsKuM0 zqAte)R9|;pDW1CnSYA`%eCbQEFYBLi>cQcG}1a{k3$dS5uQaGvk{ne5ms2mO{IfUKmvtpWwdVI7GcI4t{p zzmi-|W27mouy>ZbV=18);*<6I@s6^NCUrLzL>*6GBy`$n3$jkWXX?n4V}}e!d}few zmd&f(;;fnqX_WL?F}S)Y6w^<(J1Q9|V!ZV0R{kxHKEn|3^Tf_iAA&BB!&6ITyLl>XAJ=wQ#@Vj3oVFTTq`vGG?$y4bFUv1`Q`%4%t5St%F=}AHHAEi=o?W- z(x_dIgd$8bvS*nR!tb6$#vZV8FYv1yo)&}>A!=#S{kyC{l?c+LryD^Ia@51mY?S4{#Mfn|k1fwqD>txWxV zO$9{}KG3lg$&T&_U~vQ@rr4)lu8V$I7HMP5_WAMkjZ z63udA%_9&ahrG{q79g929>pS$)*KH|S5frj;sAc+itn7=wZJzgDi+QbYig@*itBX6 zPXcxpFE;*QEOsasrB2yllA|Z>O<5Oh$L)cgpLPHe)9ZZIqJ7*barUk%k|kdKumb`+ z_la+e6&^uFet8TuT?VUcoR zp|lS-shk6_s?vuu7~(QBcyCyOb#Q3`K;l5W0^|;*l&pC!vQE&8ujuc}o);5`NaVdr z%#OX|{j!&3s+S8lX`S0}JgiuJYu#ghN8OuqWpYytfKs_CwVTE9qAPkKwTw(>Z|F3~ z7iw{o<%VVzL^thRhN!#Wg$>S7#6AKbxWT2vxkNZ%{c%S&4g}PE6-9m2dW<6ph%jaS z0eEf|>PjceNiNrKM?TTj^`OO>vFg4(N-e#F2q)XpKde^wQZj5yXE2;TTaMi0@+lOxnriEBh=t|~!=ct}kflj*wD8)x!>f+peR6g5J z2rntRz#Ak0M23H0JkIqlwWSANV_8y=EGiKQB#r&w3V_OO?*xAmzG}J! zG9UzGsNapGi-1qKdnmGW$X04IZqYLsuLLqVP!mYqvs9un)!p&{KZFJ(c9v9|03DJ7&CJHfRY4hw zR<#WE3Qd;ZM>@JX{6~4u05>3@Q|ITyld*x+K{nk}rdSk;#z}TdQrA2qdDeAHUPuyd z`^?^te5JfK;ypvnta*~3aZf%tIbVSg&B7RaD?cbKjpp0Qj!zh?dDugznbe=*VBH*} zy-ZGH-!fzGcqf=KhT}(Dj^h~8*6eCdM@dB0jwcaJB=a(xnX62ot?el<*-n&~EKJdnVk0BGfZ*eqTaOM8%Syu=Td52Y7?~rKqH{7h zrozk%f)iR4jC+KDf#CW2#|HcT{e8Z_=lT9Vm-pxO`F?+2Yu4IpodqR|mzzy?fH-;; zxNU;!?WH~0MfycQV&R+c9cY7M03_ds>;f~#ZBp*qgWsh#!I{$jAQ6oG_TIsx*C5Ld z!gI~o>{MqZ@aIz#(xxB#4uQ0D%zJ#8g1c+*VoC_UUhoy?u6)5q5XMJYz$cE9dUE-! zMzTa4J4F#9b>U5YyE-Z?2+6Ior2P(0OAcNV7lgp%A-`&FdOKk1S^AYM5NWl7d~KG8 zOj|5u*{1YP*Ip)wRi2DtB|Y91DrWl~FEOma^#v~(&5bU(Cqqm-K{6}W!#c`zPKv6( zyRlQaFQG%oiq3%gChJbGnys+8_w~ni2||%UY9VTcZ%s9*gUUHs;L1+f%wD*Jgut`8 z&sdN4s`UlE@@0D@r+XAN3?RkP&(|tMrwv-PM5Bgr@UN?5uiFciTU|Em;XdFmIZ#JVsNArAUBf_cgx0R4iPw(x)hw74*}j$nr?Hu_U-`|J=}r2E1;-0 z9Yv73mR{sG7k`2Ae`)Z2#QA6Q-D`)_8uYJWPpkS1mxoV#m5B1g?c@pG0G!UStJo}2h z{l0DG%~+)uX&C~#Y^bmVqb3~lUapX(Axvy534=10ig+fxM^wzD;zM|z=`02_kkijJ z9Jpsox9|&M@RCID2@$R9G{9T5LKF`-CRg>a=LxvWxqLW0p=qXvIE5HyU)iwOCpz^* z#9E|9IJ1#Q$wzyMU3pd16XHids|4e@2yeFdhS>T|mhKP5Z%R%07U6?a)l|je5Rhw{ zoqUwL%w^;kGZ6`Dw|rsa7A;b%nAx^ey|b{dCo>{Vam4ShjWPq z@a)tsE5DSi>$KuSO#~HvkIU;P$2j8QQ#SNb9O60S*%aq9e@?gQry-7XD8EO8Mp{6b zYiyhI);&+zl-j1kS|PdJ10??avQ z->x+bDCet3F23Cpc5u^`t3nEmW>NDjY(|!GYb(V##7>VP(43X%L3x<8$r{(6P7Mfn z*b4NGIIi!kNax;H#I$;$O^HChx0i*P_^dM8)Bw$c#B=o=Ul{Su=Pw;nWN5bv|2(&a zo3kj&!MTSz1@X(cZ&{TvG_$yyI0Qhhdfoh;phBA${{HqbVGhk*CShCcYAYIG1&8kElN_WxP^!sa_aXPY@-gXynBzVD^0 z1QOlTY=w!Wa}iX5RBV0g`jPPMAJAL(Z;-Diiv;l~=kX-|WUAg>i6`ait0cKi7Z#Y? z(+K}tl{`U6iH)B`4oeR4X_8CZxO1grGmMk*>qr;pCQdNcbK65l6h`U)dgRT2Mtd==+#3wH#s%#cGPKoUD==&!^A^gJd^XmSPtj@%

y|L{>D6q?#W@bFA~UvA1h@nDHuS^Gp9Z4i0`z=lqXVlX znYd1#2UBhnw4bdSu4QQ)HP0eP5c^kq%s$7~pie4)^GZ|WHzZaA$Uhn<;4EDlq=Zq#QuZ4IYa^+LP8|MNQ7;SYG zv-a0*H3y+-VR=7qZZ4U79QXUS@E`WnY=gqE>W12)hK~M#rN3Tt z&U^`)+kffk3Lb|8t#vm=+yQUX)`8~rx{9WtR_lwq;OK?M>mw%qHVBN)0G<1c wC)vTfdEM*3d7o@^n+yR1e>3Zy7fY{EcysG6d^LLMPvA-ZB>iLVM`!-^e+b{uO8@`> diff --git a/deps/npm/node_modules/qrcode-terminal/example/callback.js b/deps/npm/node_modules/qrcode-terminal/example/callback.js deleted file mode 100644 index 5aa6814e1be8b3..00000000000000 --- a/deps/npm/node_modules/qrcode-terminal/example/callback.js +++ /dev/null @@ -1,4 +0,0 @@ -var qrcode = require('../lib/main'); -qrcode.generate('someone sets it up', function (str) { - console.log(str); -}); diff --git a/deps/npm/node_modules/qrcode-terminal/example/small-qrcode.js b/deps/npm/node_modules/qrcode-terminal/example/small-qrcode.js deleted file mode 100644 index f7d145d4ac4326..00000000000000 --- a/deps/npm/node_modules/qrcode-terminal/example/small-qrcode.js +++ /dev/null @@ -1,6 +0,0 @@ -var qrcode = require('../lib/main'), - url = 'https://google.com/'; - -qrcode.generate(url, { small: true }, function (qr) { - console.log(qr); -}); diff --git a/deps/npm/node_modules/qrcode-terminal/lib/main.js b/deps/npm/node_modules/qrcode-terminal/lib/main.js deleted file mode 100644 index 488cc1aea9802b..00000000000000 --- a/deps/npm/node_modules/qrcode-terminal/lib/main.js +++ /dev/null @@ -1,100 +0,0 @@ -var QRCode = require('./../vendor/QRCode'), - QRErrorCorrectLevel = require('./../vendor/QRCode/QRErrorCorrectLevel'), - black = "\033[40m \033[0m", - white = "\033[47m \033[0m", - toCell = function (isBlack) { - return isBlack ? black : white; - }, - repeat = function (color) { - return { - times: function (count) { - return new Array(count).join(color); - } - }; - }, - fill = function(length, value) { - var arr = new Array(length); - for (var i = 0; i < length; i++) { - arr[i] = value; - } - return arr; - }; - -module.exports = { - - error: QRErrorCorrectLevel.L, - - generate: function (input, opts, cb) { - if (typeof opts === 'function') { - cb = opts; - opts = {}; - } - - var qrcode = new QRCode(-1, this.error); - qrcode.addData(input); - qrcode.make(); - - var output = ''; - if (opts && opts.small) { - var BLACK = true, WHITE = false; - var moduleCount = qrcode.getModuleCount(); - var moduleData = qrcode.modules.slice(); - - var oddRow = moduleCount % 2 === 1; - if (oddRow) { - moduleData.push(fill(moduleCount, WHITE)); - } - - var platte= { - WHITE_ALL: '\u2588', - WHITE_BLACK: '\u2580', - BLACK_WHITE: '\u2584', - BLACK_ALL: ' ', - }; - - var borderTop = repeat(platte.BLACK_WHITE).times(moduleCount + 3); - var borderBottom = repeat(platte.WHITE_BLACK).times(moduleCount + 3); - output += borderTop + '\n'; - - for (var row = 0; row < moduleCount; row += 2) { - output += platte.WHITE_ALL; - - for (var col = 0; col < moduleCount; col++) { - if (moduleData[row][col] === WHITE && moduleData[row + 1][col] === WHITE) { - output += platte.WHITE_ALL; - } else if (moduleData[row][col] === WHITE && moduleData[row + 1][col] === BLACK) { - output += platte.WHITE_BLACK; - } else if (moduleData[row][col] === BLACK && moduleData[row + 1][col] === WHITE) { - output += platte.BLACK_WHITE; - } else { - output += platte.BLACK_ALL; - } - } - - output += platte.WHITE_ALL + '\n'; - } - - if (!oddRow) { - output += borderBottom; - } - } else { - var border = repeat(white).times(qrcode.getModuleCount() + 3); - - output += border + '\n'; - qrcode.modules.forEach(function (row) { - output += white; - output += row.map(toCell).join(''); - output += white + '\n'; - }); - output += border; - } - - if (cb) cb(output); - else console.log(output); - }, - - setErrorLevel: function (error) { - this.error = QRErrorCorrectLevel[error] || this.error; - } - -}; diff --git a/deps/npm/node_modules/qrcode-terminal/package.json b/deps/npm/node_modules/qrcode-terminal/package.json deleted file mode 100644 index 9a6b9e78448936..00000000000000 --- a/deps/npm/node_modules/qrcode-terminal/package.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "qrcode-terminal", - "keywords": ["ansi", "ascii", "qrcode", "console"], - "version" : "0.12.0", - "description" : "QRCodes, in the terminal", - "homepage": "https://github.com/gtanner/qrcode-terminal", - "repository": { - "type": "git", - "url": "https://github.com/gtanner/qrcode-terminal" - }, - "contributors": [{ - "name": "Gord Tanner", - "email": "gtanner@gmail.com", - "url": "http://github.com/gtanner" - }, { - "name": "Michael Brooks", - "email": "mikeywbrooks@gmail.com", - "url": "http://github.com/mwbrooks" - }], - "licenses": [{ - "type": "Apache 2.0" - }], - "main": "./lib/main", - "bin": { - "qrcode-terminal": "./bin/qrcode-terminal.js" - }, - "preferGlobal": false, - "devDependencies": { - "sinon": "*", - "mocha": "*", - "expect.js": "*", - "jshint": "*" - }, - "scripts": { - "test": "./node_modules/jshint/bin/jshint lib vendor && node example/basic.js && ./node_modules/mocha/bin/mocha -R nyan" - } -} diff --git a/deps/npm/node_modules/qrcode-terminal/test/main.js b/deps/npm/node_modules/qrcode-terminal/test/main.js deleted file mode 100644 index 71cf3f957d165c..00000000000000 --- a/deps/npm/node_modules/qrcode-terminal/test/main.js +++ /dev/null @@ -1,63 +0,0 @@ -var expect = require('expect.js'), - qrcode = require('./../lib/main'), - sinon = require('sinon'); - -describe('in the main module', function() { - describe('the generate method', function () { - describe('when not providing a callback', function () { - beforeEach(function () { - sinon.stub(console, 'log'); - }); - - afterEach(function () { - sinon.sandbox.restore(); - console.log.reset(); - }); - - it('logs to the console', function () { - qrcode.generate('test'); - expect(console.log.called).to.be(true); - }); - }); - - describe('when providing a callback', function () { - it('will call the callback', function () { - var cb = sinon.spy(); - qrcode.generate('test', cb); - expect(cb.called).to.be(true); - }); - - it('will not call the console.log method', function () { - qrcode.generate('test', sinon.spy()); - expect(console.log.called).to.be(false); - }); - }); - - describe('the QR Code', function () { - it('should be a string', function (done) { - qrcode.generate('test', function(result) { - expect(result).to.be.a('string'); - done(); - }); - }); - - it('should not end with a newline', function (done) { - qrcode.generate('test', function(result) { - expect(result).not.to.match(/\n$/); - done(); - }); - }); - }); - - describe('the error level', function () { - it('should default to 1', function() { - expect(qrcode.error).to.be(1); - }); - - it('should not allow other levels', function() { - qrcode.setErrorLevel = 'something'; - expect(qrcode.error).to.be(1); - }); - }); - }); -}); diff --git a/deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QR8bitByte.js b/deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QR8bitByte.js deleted file mode 100644 index 94bf74f0e897de..00000000000000 --- a/deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QR8bitByte.js +++ /dev/null @@ -1,22 +0,0 @@ -var QRMode = require('./QRMode'); - -function QR8bitByte(data) { - this.mode = QRMode.MODE_8BIT_BYTE; - this.data = data; -} - -QR8bitByte.prototype = { - - getLength : function() { - return this.data.length; - }, - - write : function(buffer) { - for (var i = 0; i < this.data.length; i++) { - // not JIS ... - buffer.put(this.data.charCodeAt(i), 8); - } - } -}; - -module.exports = QR8bitByte; diff --git a/deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRBitBuffer.js b/deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRBitBuffer.js deleted file mode 100644 index e2861f68d1b38a..00000000000000 --- a/deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRBitBuffer.js +++ /dev/null @@ -1,38 +0,0 @@ -function QRBitBuffer() { - this.buffer = []; - this.length = 0; -} - -QRBitBuffer.prototype = { - - get : function(index) { - var bufIndex = Math.floor(index / 8); - return ( (this.buffer[bufIndex] >>> (7 - index % 8) ) & 1) == 1; - }, - - put : function(num, length) { - for (var i = 0; i < length; i++) { - this.putBit( ( (num >>> (length - i - 1) ) & 1) == 1); - } - }, - - getLengthInBits : function() { - return this.length; - }, - - putBit : function(bit) { - - var bufIndex = Math.floor(this.length / 8); - if (this.buffer.length <= bufIndex) { - this.buffer.push(0); - } - - if (bit) { - this.buffer[bufIndex] |= (0x80 >>> (this.length % 8) ); - } - - this.length++; - } -}; - -module.exports = QRBitBuffer; diff --git a/deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRErrorCorrectLevel.js b/deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRErrorCorrectLevel.js deleted file mode 100644 index 9b4b30099d0333..00000000000000 --- a/deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRErrorCorrectLevel.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - L : 1, - M : 0, - Q : 3, - H : 2 -}; - diff --git a/deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRMaskPattern.js b/deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRMaskPattern.js deleted file mode 100644 index f6fdeb53730c8b..00000000000000 --- a/deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRMaskPattern.js +++ /dev/null @@ -1,10 +0,0 @@ -module.exports = { - PATTERN000 : 0, - PATTERN001 : 1, - PATTERN010 : 2, - PATTERN011 : 3, - PATTERN100 : 4, - PATTERN101 : 5, - PATTERN110 : 6, - PATTERN111 : 7 -}; diff --git a/deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRMath.js b/deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRMath.js deleted file mode 100644 index 8f4a0370ebb32a..00000000000000 --- a/deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRMath.js +++ /dev/null @@ -1,44 +0,0 @@ -var QRMath = { - - glog : function(n) { - - if (n < 1) { - throw new Error("glog(" + n + ")"); - } - - return QRMath.LOG_TABLE[n]; - }, - - gexp : function(n) { - - while (n < 0) { - n += 255; - } - - while (n >= 256) { - n -= 255; - } - - return QRMath.EXP_TABLE[n]; - }, - - EXP_TABLE : new Array(256), - - LOG_TABLE : new Array(256) - -}; - -for (var i = 0; i < 8; i++) { - QRMath.EXP_TABLE[i] = 1 << i; -} -for (var i = 8; i < 256; i++) { - QRMath.EXP_TABLE[i] = QRMath.EXP_TABLE[i - 4] - ^ QRMath.EXP_TABLE[i - 5] - ^ QRMath.EXP_TABLE[i - 6] - ^ QRMath.EXP_TABLE[i - 8]; -} -for (var i = 0; i < 255; i++) { - QRMath.LOG_TABLE[QRMath.EXP_TABLE[i] ] = i; -} - -module.exports = QRMath; diff --git a/deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRMode.js b/deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRMode.js deleted file mode 100644 index 050c8a3037f60d..00000000000000 --- a/deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRMode.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = { - MODE_NUMBER : 1 << 0, - MODE_ALPHA_NUM : 1 << 1, - MODE_8BIT_BYTE : 1 << 2, - MODE_KANJI : 1 << 3 -}; diff --git a/deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRPolynomial.js b/deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRPolynomial.js deleted file mode 100644 index 0c05f38ef32468..00000000000000 --- a/deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRPolynomial.js +++ /dev/null @@ -1,66 +0,0 @@ -var QRMath = require('./QRMath'); - -function QRPolynomial(num, shift) { - if (num.length === undefined) { - throw new Error(num.length + "/" + shift); - } - - var offset = 0; - - while (offset < num.length && num[offset] === 0) { - offset++; - } - - this.num = new Array(num.length - offset + shift); - for (var i = 0; i < num.length - offset; i++) { - this.num[i] = num[i + offset]; - } -} - -QRPolynomial.prototype = { - - get : function(index) { - return this.num[index]; - }, - - getLength : function() { - return this.num.length; - }, - - multiply : function(e) { - - var num = new Array(this.getLength() + e.getLength() - 1); - - for (var i = 0; i < this.getLength(); i++) { - for (var j = 0; j < e.getLength(); j++) { - num[i + j] ^= QRMath.gexp(QRMath.glog(this.get(i) ) + QRMath.glog(e.get(j) ) ); - } - } - - return new QRPolynomial(num, 0); - }, - - mod : function(e) { - - if (this.getLength() - e.getLength() < 0) { - return this; - } - - var ratio = QRMath.glog(this.get(0) ) - QRMath.glog(e.get(0) ); - - var num = new Array(this.getLength() ); - - for (var i = 0; i < this.getLength(); i++) { - num[i] = this.get(i); - } - - for (var x = 0; x < e.getLength(); x++) { - num[x] ^= QRMath.gexp(QRMath.glog(e.get(x) ) + ratio); - } - - // recursive call - return new QRPolynomial(num, 0).mod(e); - } -}; - -module.exports = QRPolynomial; diff --git a/deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRRSBlock.js b/deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRRSBlock.js deleted file mode 100644 index d150af17460799..00000000000000 --- a/deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRRSBlock.js +++ /dev/null @@ -1,298 +0,0 @@ -var QRErrorCorrectLevel = require('./QRErrorCorrectLevel'); - -function QRRSBlock(totalCount, dataCount) { - this.totalCount = totalCount; - this.dataCount = dataCount; -} - -QRRSBlock.RS_BLOCK_TABLE = [ - - // L - // M - // Q - // H - - // 1 - [1, 26, 19], - [1, 26, 16], - [1, 26, 13], - [1, 26, 9], - - // 2 - [1, 44, 34], - [1, 44, 28], - [1, 44, 22], - [1, 44, 16], - - // 3 - [1, 70, 55], - [1, 70, 44], - [2, 35, 17], - [2, 35, 13], - - // 4 - [1, 100, 80], - [2, 50, 32], - [2, 50, 24], - [4, 25, 9], - - // 5 - [1, 134, 108], - [2, 67, 43], - [2, 33, 15, 2, 34, 16], - [2, 33, 11, 2, 34, 12], - - // 6 - [2, 86, 68], - [4, 43, 27], - [4, 43, 19], - [4, 43, 15], - - // 7 - [2, 98, 78], - [4, 49, 31], - [2, 32, 14, 4, 33, 15], - [4, 39, 13, 1, 40, 14], - - // 8 - [2, 121, 97], - [2, 60, 38, 2, 61, 39], - [4, 40, 18, 2, 41, 19], - [4, 40, 14, 2, 41, 15], - - // 9 - [2, 146, 116], - [3, 58, 36, 2, 59, 37], - [4, 36, 16, 4, 37, 17], - [4, 36, 12, 4, 37, 13], - - // 10 - [2, 86, 68, 2, 87, 69], - [4, 69, 43, 1, 70, 44], - [6, 43, 19, 2, 44, 20], - [6, 43, 15, 2, 44, 16], - - // 11 - [4, 101, 81], - [1, 80, 50, 4, 81, 51], - [4, 50, 22, 4, 51, 23], - [3, 36, 12, 8, 37, 13], - - // 12 - [2, 116, 92, 2, 117, 93], - [6, 58, 36, 2, 59, 37], - [4, 46, 20, 6, 47, 21], - [7, 42, 14, 4, 43, 15], - - // 13 - [4, 133, 107], - [8, 59, 37, 1, 60, 38], - [8, 44, 20, 4, 45, 21], - [12, 33, 11, 4, 34, 12], - - // 14 - [3, 145, 115, 1, 146, 116], - [4, 64, 40, 5, 65, 41], - [11, 36, 16, 5, 37, 17], - [11, 36, 12, 5, 37, 13], - - // 15 - [5, 109, 87, 1, 110, 88], - [5, 65, 41, 5, 66, 42], - [5, 54, 24, 7, 55, 25], - [11, 36, 12], - - // 16 - [5, 122, 98, 1, 123, 99], - [7, 73, 45, 3, 74, 46], - [15, 43, 19, 2, 44, 20], - [3, 45, 15, 13, 46, 16], - - // 17 - [1, 135, 107, 5, 136, 108], - [10, 74, 46, 1, 75, 47], - [1, 50, 22, 15, 51, 23], - [2, 42, 14, 17, 43, 15], - - // 18 - [5, 150, 120, 1, 151, 121], - [9, 69, 43, 4, 70, 44], - [17, 50, 22, 1, 51, 23], - [2, 42, 14, 19, 43, 15], - - // 19 - [3, 141, 113, 4, 142, 114], - [3, 70, 44, 11, 71, 45], - [17, 47, 21, 4, 48, 22], - [9, 39, 13, 16, 40, 14], - - // 20 - [3, 135, 107, 5, 136, 108], - [3, 67, 41, 13, 68, 42], - [15, 54, 24, 5, 55, 25], - [15, 43, 15, 10, 44, 16], - - // 21 - [4, 144, 116, 4, 145, 117], - [17, 68, 42], - [17, 50, 22, 6, 51, 23], - [19, 46, 16, 6, 47, 17], - - // 22 - [2, 139, 111, 7, 140, 112], - [17, 74, 46], - [7, 54, 24, 16, 55, 25], - [34, 37, 13], - - // 23 - [4, 151, 121, 5, 152, 122], - [4, 75, 47, 14, 76, 48], - [11, 54, 24, 14, 55, 25], - [16, 45, 15, 14, 46, 16], - - // 24 - [6, 147, 117, 4, 148, 118], - [6, 73, 45, 14, 74, 46], - [11, 54, 24, 16, 55, 25], - [30, 46, 16, 2, 47, 17], - - // 25 - [8, 132, 106, 4, 133, 107], - [8, 75, 47, 13, 76, 48], - [7, 54, 24, 22, 55, 25], - [22, 45, 15, 13, 46, 16], - - // 26 - [10, 142, 114, 2, 143, 115], - [19, 74, 46, 4, 75, 47], - [28, 50, 22, 6, 51, 23], - [33, 46, 16, 4, 47, 17], - - // 27 - [8, 152, 122, 4, 153, 123], - [22, 73, 45, 3, 74, 46], - [8, 53, 23, 26, 54, 24], - [12, 45, 15, 28, 46, 16], - - // 28 - [3, 147, 117, 10, 148, 118], - [3, 73, 45, 23, 74, 46], - [4, 54, 24, 31, 55, 25], - [11, 45, 15, 31, 46, 16], - - // 29 - [7, 146, 116, 7, 147, 117], - [21, 73, 45, 7, 74, 46], - [1, 53, 23, 37, 54, 24], - [19, 45, 15, 26, 46, 16], - - // 30 - [5, 145, 115, 10, 146, 116], - [19, 75, 47, 10, 76, 48], - [15, 54, 24, 25, 55, 25], - [23, 45, 15, 25, 46, 16], - - // 31 - [13, 145, 115, 3, 146, 116], - [2, 74, 46, 29, 75, 47], - [42, 54, 24, 1, 55, 25], - [23, 45, 15, 28, 46, 16], - - // 32 - [17, 145, 115], - [10, 74, 46, 23, 75, 47], - [10, 54, 24, 35, 55, 25], - [19, 45, 15, 35, 46, 16], - - // 33 - [17, 145, 115, 1, 146, 116], - [14, 74, 46, 21, 75, 47], - [29, 54, 24, 19, 55, 25], - [11, 45, 15, 46, 46, 16], - - // 34 - [13, 145, 115, 6, 146, 116], - [14, 74, 46, 23, 75, 47], - [44, 54, 24, 7, 55, 25], - [59, 46, 16, 1, 47, 17], - - // 35 - [12, 151, 121, 7, 152, 122], - [12, 75, 47, 26, 76, 48], - [39, 54, 24, 14, 55, 25], - [22, 45, 15, 41, 46, 16], - - // 36 - [6, 151, 121, 14, 152, 122], - [6, 75, 47, 34, 76, 48], - [46, 54, 24, 10, 55, 25], - [2, 45, 15, 64, 46, 16], - - // 37 - [17, 152, 122, 4, 153, 123], - [29, 74, 46, 14, 75, 47], - [49, 54, 24, 10, 55, 25], - [24, 45, 15, 46, 46, 16], - - // 38 - [4, 152, 122, 18, 153, 123], - [13, 74, 46, 32, 75, 47], - [48, 54, 24, 14, 55, 25], - [42, 45, 15, 32, 46, 16], - - // 39 - [20, 147, 117, 4, 148, 118], - [40, 75, 47, 7, 76, 48], - [43, 54, 24, 22, 55, 25], - [10, 45, 15, 67, 46, 16], - - // 40 - [19, 148, 118, 6, 149, 119], - [18, 75, 47, 31, 76, 48], - [34, 54, 24, 34, 55, 25], - [20, 45, 15, 61, 46, 16] -]; - -QRRSBlock.getRSBlocks = function(typeNumber, errorCorrectLevel) { - - var rsBlock = QRRSBlock.getRsBlockTable(typeNumber, errorCorrectLevel); - - if (rsBlock === undefined) { - throw new Error("bad rs block @ typeNumber:" + typeNumber + "/errorCorrectLevel:" + errorCorrectLevel); - } - - var length = rsBlock.length / 3; - - var list = []; - - for (var i = 0; i < length; i++) { - - var count = rsBlock[i * 3 + 0]; - var totalCount = rsBlock[i * 3 + 1]; - var dataCount = rsBlock[i * 3 + 2]; - - for (var j = 0; j < count; j++) { - list.push(new QRRSBlock(totalCount, dataCount) ); - } - } - - return list; -}; - -QRRSBlock.getRsBlockTable = function(typeNumber, errorCorrectLevel) { - - switch(errorCorrectLevel) { - case QRErrorCorrectLevel.L : - return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 0]; - case QRErrorCorrectLevel.M : - return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 1]; - case QRErrorCorrectLevel.Q : - return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 2]; - case QRErrorCorrectLevel.H : - return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 3]; - default : - return undefined; - } -}; - -module.exports = QRRSBlock; diff --git a/deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRUtil.js b/deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRUtil.js deleted file mode 100644 index e5b7d5b3cc542b..00000000000000 --- a/deps/npm/node_modules/qrcode-terminal/vendor/QRCode/QRUtil.js +++ /dev/null @@ -1,272 +0,0 @@ -var QRMode = require('./QRMode'); -var QRPolynomial = require('./QRPolynomial'); -var QRMath = require('./QRMath'); -var QRMaskPattern = require('./QRMaskPattern'); - -var QRUtil = { - - PATTERN_POSITION_TABLE : [ - [], - [6, 18], - [6, 22], - [6, 26], - [6, 30], - [6, 34], - [6, 22, 38], - [6, 24, 42], - [6, 26, 46], - [6, 28, 50], - [6, 30, 54], - [6, 32, 58], - [6, 34, 62], - [6, 26, 46, 66], - [6, 26, 48, 70], - [6, 26, 50, 74], - [6, 30, 54, 78], - [6, 30, 56, 82], - [6, 30, 58, 86], - [6, 34, 62, 90], - [6, 28, 50, 72, 94], - [6, 26, 50, 74, 98], - [6, 30, 54, 78, 102], - [6, 28, 54, 80, 106], - [6, 32, 58, 84, 110], - [6, 30, 58, 86, 114], - [6, 34, 62, 90, 118], - [6, 26, 50, 74, 98, 122], - [6, 30, 54, 78, 102, 126], - [6, 26, 52, 78, 104, 130], - [6, 30, 56, 82, 108, 134], - [6, 34, 60, 86, 112, 138], - [6, 30, 58, 86, 114, 142], - [6, 34, 62, 90, 118, 146], - [6, 30, 54, 78, 102, 126, 150], - [6, 24, 50, 76, 102, 128, 154], - [6, 28, 54, 80, 106, 132, 158], - [6, 32, 58, 84, 110, 136, 162], - [6, 26, 54, 82, 110, 138, 166], - [6, 30, 58, 86, 114, 142, 170] - ], - - G15 : (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0), - G18 : (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0), - G15_MASK : (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1), - - getBCHTypeInfo : function(data) { - var d = data << 10; - while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) >= 0) { - d ^= (QRUtil.G15 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) ) ); - } - return ( (data << 10) | d) ^ QRUtil.G15_MASK; - }, - - getBCHTypeNumber : function(data) { - var d = data << 12; - while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) >= 0) { - d ^= (QRUtil.G18 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) ) ); - } - return (data << 12) | d; - }, - - getBCHDigit : function(data) { - - var digit = 0; - - while (data !== 0) { - digit++; - data >>>= 1; - } - - return digit; - }, - - getPatternPosition : function(typeNumber) { - return QRUtil.PATTERN_POSITION_TABLE[typeNumber - 1]; - }, - - getMask : function(maskPattern, i, j) { - - switch (maskPattern) { - - case QRMaskPattern.PATTERN000 : return (i + j) % 2 === 0; - case QRMaskPattern.PATTERN001 : return i % 2 === 0; - case QRMaskPattern.PATTERN010 : return j % 3 === 0; - case QRMaskPattern.PATTERN011 : return (i + j) % 3 === 0; - case QRMaskPattern.PATTERN100 : return (Math.floor(i / 2) + Math.floor(j / 3) ) % 2 === 0; - case QRMaskPattern.PATTERN101 : return (i * j) % 2 + (i * j) % 3 === 0; - case QRMaskPattern.PATTERN110 : return ( (i * j) % 2 + (i * j) % 3) % 2 === 0; - case QRMaskPattern.PATTERN111 : return ( (i * j) % 3 + (i + j) % 2) % 2 === 0; - - default : - throw new Error("bad maskPattern:" + maskPattern); - } - }, - - getErrorCorrectPolynomial : function(errorCorrectLength) { - - var a = new QRPolynomial([1], 0); - - for (var i = 0; i < errorCorrectLength; i++) { - a = a.multiply(new QRPolynomial([1, QRMath.gexp(i)], 0) ); - } - - return a; - }, - - getLengthInBits : function(mode, type) { - - if (1 <= type && type < 10) { - - // 1 - 9 - - switch(mode) { - case QRMode.MODE_NUMBER : return 10; - case QRMode.MODE_ALPHA_NUM : return 9; - case QRMode.MODE_8BIT_BYTE : return 8; - case QRMode.MODE_KANJI : return 8; - default : - throw new Error("mode:" + mode); - } - - } else if (type < 27) { - - // 10 - 26 - - switch(mode) { - case QRMode.MODE_NUMBER : return 12; - case QRMode.MODE_ALPHA_NUM : return 11; - case QRMode.MODE_8BIT_BYTE : return 16; - case QRMode.MODE_KANJI : return 10; - default : - throw new Error("mode:" + mode); - } - - } else if (type < 41) { - - // 27 - 40 - - switch(mode) { - case QRMode.MODE_NUMBER : return 14; - case QRMode.MODE_ALPHA_NUM : return 13; - case QRMode.MODE_8BIT_BYTE : return 16; - case QRMode.MODE_KANJI : return 12; - default : - throw new Error("mode:" + mode); - } - - } else { - throw new Error("type:" + type); - } - }, - - getLostPoint : function(qrCode) { - - var moduleCount = qrCode.getModuleCount(); - var lostPoint = 0; - var row = 0; - var col = 0; - - - // LEVEL1 - - for (row = 0; row < moduleCount; row++) { - - for (col = 0; col < moduleCount; col++) { - - var sameCount = 0; - var dark = qrCode.isDark(row, col); - - for (var r = -1; r <= 1; r++) { - - if (row + r < 0 || moduleCount <= row + r) { - continue; - } - - for (var c = -1; c <= 1; c++) { - - if (col + c < 0 || moduleCount <= col + c) { - continue; - } - - if (r === 0 && c === 0) { - continue; - } - - if (dark === qrCode.isDark(row + r, col + c) ) { - sameCount++; - } - } - } - - if (sameCount > 5) { - lostPoint += (3 + sameCount - 5); - } - } - } - - // LEVEL2 - - for (row = 0; row < moduleCount - 1; row++) { - for (col = 0; col < moduleCount - 1; col++) { - var count = 0; - if (qrCode.isDark(row, col ) ) count++; - if (qrCode.isDark(row + 1, col ) ) count++; - if (qrCode.isDark(row, col + 1) ) count++; - if (qrCode.isDark(row + 1, col + 1) ) count++; - if (count === 0 || count === 4) { - lostPoint += 3; - } - } - } - - // LEVEL3 - - for (row = 0; row < moduleCount; row++) { - for (col = 0; col < moduleCount - 6; col++) { - if (qrCode.isDark(row, col) && - !qrCode.isDark(row, col + 1) && - qrCode.isDark(row, col + 2) && - qrCode.isDark(row, col + 3) && - qrCode.isDark(row, col + 4) && - !qrCode.isDark(row, col + 5) && - qrCode.isDark(row, col + 6) ) { - lostPoint += 40; - } - } - } - - for (col = 0; col < moduleCount; col++) { - for (row = 0; row < moduleCount - 6; row++) { - if (qrCode.isDark(row, col) && - !qrCode.isDark(row + 1, col) && - qrCode.isDark(row + 2, col) && - qrCode.isDark(row + 3, col) && - qrCode.isDark(row + 4, col) && - !qrCode.isDark(row + 5, col) && - qrCode.isDark(row + 6, col) ) { - lostPoint += 40; - } - } - } - - // LEVEL4 - - var darkCount = 0; - - for (col = 0; col < moduleCount; col++) { - for (row = 0; row < moduleCount; row++) { - if (qrCode.isDark(row, col) ) { - darkCount++; - } - } - } - - var ratio = Math.abs(100 * darkCount / moduleCount / moduleCount - 50) / 5; - lostPoint += ratio * 10; - - return lostPoint; - } - -}; - -module.exports = QRUtil; diff --git a/deps/npm/node_modules/qrcode-terminal/vendor/QRCode/index.js b/deps/npm/node_modules/qrcode-terminal/vendor/QRCode/index.js deleted file mode 100644 index 10eb8eb0a06aa5..00000000000000 --- a/deps/npm/node_modules/qrcode-terminal/vendor/QRCode/index.js +++ /dev/null @@ -1,462 +0,0 @@ -//--------------------------------------------------------------------- -// QRCode for JavaScript -// -// Copyright (c) 2009 Kazuhiko Arase -// -// URL: http://www.d-project.com/ -// -// Licensed under the MIT license: -// http://www.opensource.org/licenses/mit-license.php -// -// The word "QR Code" is registered trademark of -// DENSO WAVE INCORPORATED -// http://www.denso-wave.com/qrcode/faqpatent-e.html -// -//--------------------------------------------------------------------- -// Modified to work in node for this project (and some refactoring) -//--------------------------------------------------------------------- - -var QR8bitByte = require('./QR8bitByte'); -var QRUtil = require('./QRUtil'); -var QRPolynomial = require('./QRPolynomial'); -var QRRSBlock = require('./QRRSBlock'); -var QRBitBuffer = require('./QRBitBuffer'); - -function QRCode(typeNumber, errorCorrectLevel) { - this.typeNumber = typeNumber; - this.errorCorrectLevel = errorCorrectLevel; - this.modules = null; - this.moduleCount = 0; - this.dataCache = null; - this.dataList = []; -} - -QRCode.prototype = { - - addData : function(data) { - var newData = new QR8bitByte(data); - this.dataList.push(newData); - this.dataCache = null; - }, - - isDark : function(row, col) { - if (row < 0 || this.moduleCount <= row || col < 0 || this.moduleCount <= col) { - throw new Error(row + "," + col); - } - return this.modules[row][col]; - }, - - getModuleCount : function() { - return this.moduleCount; - }, - - make : function() { - // Calculate automatically typeNumber if provided is < 1 - if (this.typeNumber < 1 ){ - var typeNumber = 1; - for (typeNumber = 1; typeNumber < 40; typeNumber++) { - var rsBlocks = QRRSBlock.getRSBlocks(typeNumber, this.errorCorrectLevel); - - var buffer = new QRBitBuffer(); - var totalDataCount = 0; - for (var i = 0; i < rsBlocks.length; i++) { - totalDataCount += rsBlocks[i].dataCount; - } - - for (var x = 0; x < this.dataList.length; x++) { - var data = this.dataList[x]; - buffer.put(data.mode, 4); - buffer.put(data.getLength(), QRUtil.getLengthInBits(data.mode, typeNumber) ); - data.write(buffer); - } - if (buffer.getLengthInBits() <= totalDataCount * 8) - break; - } - this.typeNumber = typeNumber; - } - this.makeImpl(false, this.getBestMaskPattern() ); - }, - - makeImpl : function(test, maskPattern) { - - this.moduleCount = this.typeNumber * 4 + 17; - this.modules = new Array(this.moduleCount); - - for (var row = 0; row < this.moduleCount; row++) { - - this.modules[row] = new Array(this.moduleCount); - - for (var col = 0; col < this.moduleCount; col++) { - this.modules[row][col] = null;//(col + row) % 3; - } - } - - this.setupPositionProbePattern(0, 0); - this.setupPositionProbePattern(this.moduleCount - 7, 0); - this.setupPositionProbePattern(0, this.moduleCount - 7); - this.setupPositionAdjustPattern(); - this.setupTimingPattern(); - this.setupTypeInfo(test, maskPattern); - - if (this.typeNumber >= 7) { - this.setupTypeNumber(test); - } - - if (this.dataCache === null) { - this.dataCache = QRCode.createData(this.typeNumber, this.errorCorrectLevel, this.dataList); - } - - this.mapData(this.dataCache, maskPattern); - }, - - setupPositionProbePattern : function(row, col) { - - for (var r = -1; r <= 7; r++) { - - if (row + r <= -1 || this.moduleCount <= row + r) continue; - - for (var c = -1; c <= 7; c++) { - - if (col + c <= -1 || this.moduleCount <= col + c) continue; - - if ( (0 <= r && r <= 6 && (c === 0 || c === 6) ) || - (0 <= c && c <= 6 && (r === 0 || r === 6) ) || - (2 <= r && r <= 4 && 2 <= c && c <= 4) ) { - this.modules[row + r][col + c] = true; - } else { - this.modules[row + r][col + c] = false; - } - } - } - }, - - getBestMaskPattern : function() { - - var minLostPoint = 0; - var pattern = 0; - - for (var i = 0; i < 8; i++) { - - this.makeImpl(true, i); - - var lostPoint = QRUtil.getLostPoint(this); - - if (i === 0 || minLostPoint > lostPoint) { - minLostPoint = lostPoint; - pattern = i; - } - } - - return pattern; - }, - - createMovieClip : function(target_mc, instance_name, depth) { - - var qr_mc = target_mc.createEmptyMovieClip(instance_name, depth); - var cs = 1; - - this.make(); - - for (var row = 0; row < this.modules.length; row++) { - - var y = row * cs; - - for (var col = 0; col < this.modules[row].length; col++) { - - var x = col * cs; - var dark = this.modules[row][col]; - - if (dark) { - qr_mc.beginFill(0, 100); - qr_mc.moveTo(x, y); - qr_mc.lineTo(x + cs, y); - qr_mc.lineTo(x + cs, y + cs); - qr_mc.lineTo(x, y + cs); - qr_mc.endFill(); - } - } - } - - return qr_mc; - }, - - setupTimingPattern : function() { - - for (var r = 8; r < this.moduleCount - 8; r++) { - if (this.modules[r][6] !== null) { - continue; - } - this.modules[r][6] = (r % 2 === 0); - } - - for (var c = 8; c < this.moduleCount - 8; c++) { - if (this.modules[6][c] !== null) { - continue; - } - this.modules[6][c] = (c % 2 === 0); - } - }, - - setupPositionAdjustPattern : function() { - - var pos = QRUtil.getPatternPosition(this.typeNumber); - - for (var i = 0; i < pos.length; i++) { - - for (var j = 0; j < pos.length; j++) { - - var row = pos[i]; - var col = pos[j]; - - if (this.modules[row][col] !== null) { - continue; - } - - for (var r = -2; r <= 2; r++) { - - for (var c = -2; c <= 2; c++) { - - if (Math.abs(r) === 2 || - Math.abs(c) === 2 || - (r === 0 && c === 0) ) { - this.modules[row + r][col + c] = true; - } else { - this.modules[row + r][col + c] = false; - } - } - } - } - } - }, - - setupTypeNumber : function(test) { - - var bits = QRUtil.getBCHTypeNumber(this.typeNumber); - var mod; - - for (var i = 0; i < 18; i++) { - mod = (!test && ( (bits >> i) & 1) === 1); - this.modules[Math.floor(i / 3)][i % 3 + this.moduleCount - 8 - 3] = mod; - } - - for (var x = 0; x < 18; x++) { - mod = (!test && ( (bits >> x) & 1) === 1); - this.modules[x % 3 + this.moduleCount - 8 - 3][Math.floor(x / 3)] = mod; - } - }, - - setupTypeInfo : function(test, maskPattern) { - - var data = (this.errorCorrectLevel << 3) | maskPattern; - var bits = QRUtil.getBCHTypeInfo(data); - var mod; - - // vertical - for (var v = 0; v < 15; v++) { - - mod = (!test && ( (bits >> v) & 1) === 1); - - if (v < 6) { - this.modules[v][8] = mod; - } else if (v < 8) { - this.modules[v + 1][8] = mod; - } else { - this.modules[this.moduleCount - 15 + v][8] = mod; - } - } - - // horizontal - for (var h = 0; h < 15; h++) { - - mod = (!test && ( (bits >> h) & 1) === 1); - - if (h < 8) { - this.modules[8][this.moduleCount - h - 1] = mod; - } else if (h < 9) { - this.modules[8][15 - h - 1 + 1] = mod; - } else { - this.modules[8][15 - h - 1] = mod; - } - } - - // fixed module - this.modules[this.moduleCount - 8][8] = (!test); - - }, - - mapData : function(data, maskPattern) { - - var inc = -1; - var row = this.moduleCount - 1; - var bitIndex = 7; - var byteIndex = 0; - - for (var col = this.moduleCount - 1; col > 0; col -= 2) { - - if (col === 6) col--; - - while (true) { - - for (var c = 0; c < 2; c++) { - - if (this.modules[row][col - c] === null) { - - var dark = false; - - if (byteIndex < data.length) { - dark = ( ( (data[byteIndex] >>> bitIndex) & 1) === 1); - } - - var mask = QRUtil.getMask(maskPattern, row, col - c); - - if (mask) { - dark = !dark; - } - - this.modules[row][col - c] = dark; - bitIndex--; - - if (bitIndex === -1) { - byteIndex++; - bitIndex = 7; - } - } - } - - row += inc; - - if (row < 0 || this.moduleCount <= row) { - row -= inc; - inc = -inc; - break; - } - } - } - - } - -}; - -QRCode.PAD0 = 0xEC; -QRCode.PAD1 = 0x11; - -QRCode.createData = function(typeNumber, errorCorrectLevel, dataList) { - - var rsBlocks = QRRSBlock.getRSBlocks(typeNumber, errorCorrectLevel); - - var buffer = new QRBitBuffer(); - - for (var i = 0; i < dataList.length; i++) { - var data = dataList[i]; - buffer.put(data.mode, 4); - buffer.put(data.getLength(), QRUtil.getLengthInBits(data.mode, typeNumber) ); - data.write(buffer); - } - - // calc num max data. - var totalDataCount = 0; - for (var x = 0; x < rsBlocks.length; x++) { - totalDataCount += rsBlocks[x].dataCount; - } - - if (buffer.getLengthInBits() > totalDataCount * 8) { - throw new Error("code length overflow. (" + - buffer.getLengthInBits() + - ">" + - totalDataCount * 8 + - ")"); - } - - // end code - if (buffer.getLengthInBits() + 4 <= totalDataCount * 8) { - buffer.put(0, 4); - } - - // padding - while (buffer.getLengthInBits() % 8 !== 0) { - buffer.putBit(false); - } - - // padding - while (true) { - - if (buffer.getLengthInBits() >= totalDataCount * 8) { - break; - } - buffer.put(QRCode.PAD0, 8); - - if (buffer.getLengthInBits() >= totalDataCount * 8) { - break; - } - buffer.put(QRCode.PAD1, 8); - } - - return QRCode.createBytes(buffer, rsBlocks); -}; - -QRCode.createBytes = function(buffer, rsBlocks) { - - var offset = 0; - - var maxDcCount = 0; - var maxEcCount = 0; - - var dcdata = new Array(rsBlocks.length); - var ecdata = new Array(rsBlocks.length); - - for (var r = 0; r < rsBlocks.length; r++) { - - var dcCount = rsBlocks[r].dataCount; - var ecCount = rsBlocks[r].totalCount - dcCount; - - maxDcCount = Math.max(maxDcCount, dcCount); - maxEcCount = Math.max(maxEcCount, ecCount); - - dcdata[r] = new Array(dcCount); - - for (var i = 0; i < dcdata[r].length; i++) { - dcdata[r][i] = 0xff & buffer.buffer[i + offset]; - } - offset += dcCount; - - var rsPoly = QRUtil.getErrorCorrectPolynomial(ecCount); - var rawPoly = new QRPolynomial(dcdata[r], rsPoly.getLength() - 1); - - var modPoly = rawPoly.mod(rsPoly); - ecdata[r] = new Array(rsPoly.getLength() - 1); - for (var x = 0; x < ecdata[r].length; x++) { - var modIndex = x + modPoly.getLength() - ecdata[r].length; - ecdata[r][x] = (modIndex >= 0)? modPoly.get(modIndex) : 0; - } - - } - - var totalCodeCount = 0; - for (var y = 0; y < rsBlocks.length; y++) { - totalCodeCount += rsBlocks[y].totalCount; - } - - var data = new Array(totalCodeCount); - var index = 0; - - for (var z = 0; z < maxDcCount; z++) { - for (var s = 0; s < rsBlocks.length; s++) { - if (z < dcdata[s].length) { - data[index++] = dcdata[s][z]; - } - } - } - - for (var xx = 0; xx < maxEcCount; xx++) { - for (var t = 0; t < rsBlocks.length; t++) { - if (xx < ecdata[t].length) { - data[index++] = ecdata[t][xx]; - } - } - } - - return data; - -}; - -module.exports = QRCode; diff --git a/deps/npm/node_modules/qs/.editorconfig b/deps/npm/node_modules/qs/.editorconfig deleted file mode 100644 index b2654e7ac5ca01..00000000000000 --- a/deps/npm/node_modules/qs/.editorconfig +++ /dev/null @@ -1,30 +0,0 @@ -root = true - -[*] -indent_style = space -indent_size = 4 -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true -max_line_length = 140 - -[test/*] -max_line_length = off - -[*.md] -max_line_length = off - -[*.json] -max_line_length = off - -[Makefile] -max_line_length = off - -[CHANGELOG.md] -indent_style = space -indent_size = 2 - -[LICENSE] -indent_size = 2 -max_line_length = off diff --git a/deps/npm/node_modules/qs/.eslintignore b/deps/npm/node_modules/qs/.eslintignore deleted file mode 100644 index 1521c8b7652b1e..00000000000000 --- a/deps/npm/node_modules/qs/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -dist diff --git a/deps/npm/node_modules/qs/CHANGELOG.md b/deps/npm/node_modules/qs/CHANGELOG.md deleted file mode 100644 index fe523209123630..00000000000000 --- a/deps/npm/node_modules/qs/CHANGELOG.md +++ /dev/null @@ -1,226 +0,0 @@ -## **6.5.2** -- [Fix] use `safer-buffer` instead of `Buffer` constructor -- [Refactor] utils: `module.exports` one thing, instead of mutating `exports` (#230) -- [Dev Deps] update `browserify`, `eslint`, `iconv-lite`, `safer-buffer`, `tape`, `browserify` - -## **6.5.1** -- [Fix] Fix parsing & compacting very deep objects (#224) -- [Refactor] name utils functions -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` -- [Tests] up to `node` `v8.4`; use `nvm install-latest-npm` so newer npm doesn’t break older node -- [Tests] Use precise dist for Node.js 0.6 runtime (#225) -- [Tests] make 0.6 required, now that it’s passing -- [Tests] on `node` `v8.2`; fix npm on node 0.6 - -## **6.5.0** -- [New] add `utils.assign` -- [New] pass default encoder/decoder to custom encoder/decoder functions (#206) -- [New] `parse`/`stringify`: add `ignoreQueryPrefix`/`addQueryPrefix` options, respectively (#213) -- [Fix] Handle stringifying empty objects with addQueryPrefix (#217) -- [Fix] do not mutate `options` argument (#207) -- [Refactor] `parse`: cache index to reuse in else statement (#182) -- [Docs] add various badges to readme (#208) -- [Dev Deps] update `eslint`, `browserify`, `iconv-lite`, `tape` -- [Tests] up to `node` `v8.1`, `v7.10`, `v6.11`; npm v4.6 breaks on node < v1; npm v5+ breaks on node < v4 -- [Tests] add `editorconfig-tools` - -## **6.4.0** -- [New] `qs.stringify`: add `encodeValuesOnly` option -- [Fix] follow `allowPrototypes` option during merge (#201, #201) -- [Fix] support keys starting with brackets (#202, #200) -- [Fix] chmod a-x -- [Dev Deps] update `eslint` -- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds -- [eslint] reduce warnings - -## **6.3.2** -- [Fix] follow `allowPrototypes` option during merge (#201, #200) -- [Dev Deps] update `eslint` -- [Fix] chmod a-x -- [Fix] support keys starting with brackets (#202, #200) -- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds - -## **6.3.1** -- [Fix] ensure that `allowPrototypes: false` does not ever shadow Object.prototype properties (thanks, @snyk!) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `browserify`, `iconv-lite`, `qs-iconv`, `tape` -- [Tests] on all node minors; improve test matrix -- [Docs] document stringify option `allowDots` (#195) -- [Docs] add empty object and array values example (#195) -- [Docs] Fix minor inconsistency/typo (#192) -- [Docs] document stringify option `sort` (#191) -- [Refactor] `stringify`: throw faster with an invalid encoder -- [Refactor] remove unnecessary escapes (#184) -- Remove contributing.md, since `qs` is no longer part of `hapi` (#183) - -## **6.3.0** -- [New] Add support for RFC 1738 (#174, #173) -- [New] `stringify`: Add `serializeDate` option to customize Date serialization (#159) -- [Fix] ensure `utils.merge` handles merging two arrays -- [Refactor] only constructors should be capitalized -- [Refactor] capitalized var names are for constructors only -- [Refactor] avoid using a sparse array -- [Robustness] `formats`: cache `String#replace` -- [Dev Deps] update `browserify`, `eslint`, `@ljharb/eslint-config`; add `safe-publish-latest` -- [Tests] up to `node` `v6.8`, `v4.6`; improve test matrix -- [Tests] flesh out arrayLimit/arrayFormat tests (#107) -- [Tests] skip Object.create tests when null objects are not available -- [Tests] Turn on eslint for test files (#175) - -## **6.2.3** -- [Fix] follow `allowPrototypes` option during merge (#201, #200) -- [Fix] chmod a-x -- [Fix] support keys starting with brackets (#202, #200) -- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds - -## **6.2.2** -- [Fix] ensure that `allowPrototypes: false` does not ever shadow Object.prototype properties - -## **6.2.1** -- [Fix] ensure `key[]=x&key[]&key[]=y` results in 3, not 2, values -- [Refactor] Be explicit and use `Object.prototype.hasOwnProperty.call` -- [Tests] remove `parallelshell` since it does not reliably report failures -- [Tests] up to `node` `v6.3`, `v5.12` -- [Dev Deps] update `tape`, `eslint`, `@ljharb/eslint-config`, `qs-iconv` - -## [**6.2.0**](https://github.com/ljharb/qs/issues?milestone=36&state=closed) -- [New] pass Buffers to the encoder/decoder directly (#161) -- [New] add "encoder" and "decoder" options, for custom param encoding/decoding (#160) -- [Fix] fix compacting of nested sparse arrays (#150) - -## **6.1.2 -- [Fix] follow `allowPrototypes` option during merge (#201, #200) -- [Fix] chmod a-x -- [Fix] support keys starting with brackets (#202, #200) -- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds - -## **6.1.1** -- [Fix] ensure that `allowPrototypes: false` does not ever shadow Object.prototype properties - -## [**6.1.0**](https://github.com/ljharb/qs/issues?milestone=35&state=closed) -- [New] allowDots option for `stringify` (#151) -- [Fix] "sort" option should work at a depth of 3 or more (#151) -- [Fix] Restore `dist` directory; will be removed in v7 (#148) - -## **6.0.4** -- [Fix] follow `allowPrototypes` option during merge (#201, #200) -- [Fix] chmod a-x -- [Fix] support keys starting with brackets (#202, #200) -- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds - -## **6.0.3** -- [Fix] ensure that `allowPrototypes: false` does not ever shadow Object.prototype properties -- [Fix] Restore `dist` directory; will be removed in v7 (#148) - -## [**6.0.2**](https://github.com/ljharb/qs/issues?milestone=33&state=closed) -- Revert ES6 requirement and restore support for node down to v0.8. - -## [**6.0.1**](https://github.com/ljharb/qs/issues?milestone=32&state=closed) -- [**#127**](https://github.com/ljharb/qs/pull/127) Fix engines definition in package.json - -## [**6.0.0**](https://github.com/ljharb/qs/issues?milestone=31&state=closed) -- [**#124**](https://github.com/ljharb/qs/issues/124) Use ES6 and drop support for node < v4 - -## **5.2.1** -- [Fix] ensure `key[]=x&key[]&key[]=y` results in 3, not 2, values - -## [**5.2.0**](https://github.com/ljharb/qs/issues?milestone=30&state=closed) -- [**#64**](https://github.com/ljharb/qs/issues/64) Add option to sort object keys in the query string - -## [**5.1.0**](https://github.com/ljharb/qs/issues?milestone=29&state=closed) -- [**#117**](https://github.com/ljharb/qs/issues/117) make URI encoding stringified results optional -- [**#106**](https://github.com/ljharb/qs/issues/106) Add flag `skipNulls` to optionally skip null values in stringify - -## [**5.0.0**](https://github.com/ljharb/qs/issues?milestone=28&state=closed) -- [**#114**](https://github.com/ljharb/qs/issues/114) default allowDots to false -- [**#100**](https://github.com/ljharb/qs/issues/100) include dist to npm - -## [**4.0.0**](https://github.com/ljharb/qs/issues?milestone=26&state=closed) -- [**#98**](https://github.com/ljharb/qs/issues/98) make returning plain objects and allowing prototype overwriting properties optional - -## [**3.1.0**](https://github.com/ljharb/qs/issues?milestone=24&state=closed) -- [**#89**](https://github.com/ljharb/qs/issues/89) Add option to disable "Transform dot notation to bracket notation" - -## [**3.0.0**](https://github.com/ljharb/qs/issues?milestone=23&state=closed) -- [**#80**](https://github.com/ljharb/qs/issues/80) qs.parse silently drops properties -- [**#77**](https://github.com/ljharb/qs/issues/77) Perf boost -- [**#60**](https://github.com/ljharb/qs/issues/60) Add explicit option to disable array parsing -- [**#74**](https://github.com/ljharb/qs/issues/74) Bad parse when turning array into object -- [**#81**](https://github.com/ljharb/qs/issues/81) Add a `filter` option -- [**#68**](https://github.com/ljharb/qs/issues/68) Fixed issue with recursion and passing strings into objects. -- [**#66**](https://github.com/ljharb/qs/issues/66) Add mixed array and object dot notation support Closes: #47 -- [**#76**](https://github.com/ljharb/qs/issues/76) RFC 3986 -- [**#85**](https://github.com/ljharb/qs/issues/85) No equal sign -- [**#84**](https://github.com/ljharb/qs/issues/84) update license attribute - -## [**2.4.1**](https://github.com/ljharb/qs/issues?milestone=20&state=closed) -- [**#73**](https://github.com/ljharb/qs/issues/73) Property 'hasOwnProperty' of object # is not a function - -## [**2.4.0**](https://github.com/ljharb/qs/issues?milestone=19&state=closed) -- [**#70**](https://github.com/ljharb/qs/issues/70) Add arrayFormat option - -## [**2.3.3**](https://github.com/ljharb/qs/issues?milestone=18&state=closed) -- [**#59**](https://github.com/ljharb/qs/issues/59) make sure array indexes are >= 0, closes #57 -- [**#58**](https://github.com/ljharb/qs/issues/58) make qs usable for browser loader - -## [**2.3.2**](https://github.com/ljharb/qs/issues?milestone=17&state=closed) -- [**#55**](https://github.com/ljharb/qs/issues/55) allow merging a string into an object - -## [**2.3.1**](https://github.com/ljharb/qs/issues?milestone=16&state=closed) -- [**#52**](https://github.com/ljharb/qs/issues/52) Return "undefined" and "false" instead of throwing "TypeError". - -## [**2.3.0**](https://github.com/ljharb/qs/issues?milestone=15&state=closed) -- [**#50**](https://github.com/ljharb/qs/issues/50) add option to omit array indices, closes #46 - -## [**2.2.5**](https://github.com/ljharb/qs/issues?milestone=14&state=closed) -- [**#39**](https://github.com/ljharb/qs/issues/39) Is there an alternative to Buffer.isBuffer? -- [**#49**](https://github.com/ljharb/qs/issues/49) refactor utils.merge, fixes #45 -- [**#41**](https://github.com/ljharb/qs/issues/41) avoid browserifying Buffer, for #39 - -## [**2.2.4**](https://github.com/ljharb/qs/issues?milestone=13&state=closed) -- [**#38**](https://github.com/ljharb/qs/issues/38) how to handle object keys beginning with a number - -## [**2.2.3**](https://github.com/ljharb/qs/issues?milestone=12&state=closed) -- [**#37**](https://github.com/ljharb/qs/issues/37) parser discards first empty value in array -- [**#36**](https://github.com/ljharb/qs/issues/36) Update to lab 4.x - -## [**2.2.2**](https://github.com/ljharb/qs/issues?milestone=11&state=closed) -- [**#33**](https://github.com/ljharb/qs/issues/33) Error when plain object in a value -- [**#34**](https://github.com/ljharb/qs/issues/34) use Object.prototype.hasOwnProperty.call instead of obj.hasOwnProperty -- [**#24**](https://github.com/ljharb/qs/issues/24) Changelog? Semver? - -## [**2.2.1**](https://github.com/ljharb/qs/issues?milestone=10&state=closed) -- [**#32**](https://github.com/ljharb/qs/issues/32) account for circular references properly, closes #31 -- [**#31**](https://github.com/ljharb/qs/issues/31) qs.parse stackoverflow on circular objects - -## [**2.2.0**](https://github.com/ljharb/qs/issues?milestone=9&state=closed) -- [**#26**](https://github.com/ljharb/qs/issues/26) Don't use Buffer global if it's not present -- [**#30**](https://github.com/ljharb/qs/issues/30) Bug when merging non-object values into arrays -- [**#29**](https://github.com/ljharb/qs/issues/29) Don't call Utils.clone at the top of Utils.merge -- [**#23**](https://github.com/ljharb/qs/issues/23) Ability to not limit parameters? - -## [**2.1.0**](https://github.com/ljharb/qs/issues?milestone=8&state=closed) -- [**#22**](https://github.com/ljharb/qs/issues/22) Enable using a RegExp as delimiter - -## [**2.0.0**](https://github.com/ljharb/qs/issues?milestone=7&state=closed) -- [**#18**](https://github.com/ljharb/qs/issues/18) Why is there arrayLimit? -- [**#20**](https://github.com/ljharb/qs/issues/20) Configurable parametersLimit -- [**#21**](https://github.com/ljharb/qs/issues/21) make all limits optional, for #18, for #20 - -## [**1.2.2**](https://github.com/ljharb/qs/issues?milestone=6&state=closed) -- [**#19**](https://github.com/ljharb/qs/issues/19) Don't overwrite null values - -## [**1.2.1**](https://github.com/ljharb/qs/issues?milestone=5&state=closed) -- [**#16**](https://github.com/ljharb/qs/issues/16) ignore non-string delimiters -- [**#15**](https://github.com/ljharb/qs/issues/15) Close code block - -## [**1.2.0**](https://github.com/ljharb/qs/issues?milestone=4&state=closed) -- [**#12**](https://github.com/ljharb/qs/issues/12) Add optional delim argument -- [**#13**](https://github.com/ljharb/qs/issues/13) fix #11: flattened keys in array are now correctly parsed - -## [**1.1.0**](https://github.com/ljharb/qs/issues?milestone=3&state=closed) -- [**#7**](https://github.com/ljharb/qs/issues/7) Empty values of a POST array disappear after being submitted -- [**#9**](https://github.com/ljharb/qs/issues/9) Should not omit equals signs (=) when value is null -- [**#6**](https://github.com/ljharb/qs/issues/6) Minor grammar fix in README - -## [**1.0.2**](https://github.com/ljharb/qs/issues?milestone=2&state=closed) -- [**#5**](https://github.com/ljharb/qs/issues/5) array holes incorrectly copied into object on large index diff --git a/deps/npm/node_modules/qs/LICENSE b/deps/npm/node_modules/qs/LICENSE deleted file mode 100644 index d4569487a094b9..00000000000000 --- a/deps/npm/node_modules/qs/LICENSE +++ /dev/null @@ -1,28 +0,0 @@ -Copyright (c) 2014 Nathan LaFreniere and other contributors. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * 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. - * The names of any contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - -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 HOLDERS AND 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. - - * * * - -The complete list of contributors can be found at: https://github.com/hapijs/qs/graphs/contributors diff --git a/deps/npm/node_modules/qs/README.md b/deps/npm/node_modules/qs/README.md deleted file mode 100644 index d81196662bc237..00000000000000 --- a/deps/npm/node_modules/qs/README.md +++ /dev/null @@ -1,475 +0,0 @@ -# qs [![Version Badge][2]][1] - -[![Build Status][3]][4] -[![dependency status][5]][6] -[![dev dependency status][7]][8] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] - -[![npm badge][11]][1] - -A querystring parsing and stringifying library with some added security. - -Lead Maintainer: [Jordan Harband](https://github.com/ljharb) - -The **qs** module was originally created and maintained by [TJ Holowaychuk](https://github.com/visionmedia/node-querystring). - -## Usage - -```javascript -var qs = require('qs'); -var assert = require('assert'); - -var obj = qs.parse('a=c'); -assert.deepEqual(obj, { a: 'c' }); - -var str = qs.stringify(obj); -assert.equal(str, 'a=c'); -``` - -### Parsing Objects - -[](#preventEval) -```javascript -qs.parse(string, [options]); -``` - -**qs** allows you to create nested objects within your query strings, by surrounding the name of sub-keys with square brackets `[]`. -For example, the string `'foo[bar]=baz'` converts to: - -```javascript -assert.deepEqual(qs.parse('foo[bar]=baz'), { - foo: { - bar: 'baz' - } -}); -``` - -When using the `plainObjects` option the parsed value is returned as a null object, created via `Object.create(null)` and as such you should be aware that prototype methods will not exist on it and a user may set those names to whatever value they like: - -```javascript -var nullObject = qs.parse('a[hasOwnProperty]=b', { plainObjects: true }); -assert.deepEqual(nullObject, { a: { hasOwnProperty: 'b' } }); -``` - -By default parameters that would overwrite properties on the object prototype are ignored, if you wish to keep the data from those fields either use `plainObjects` as mentioned above, or set `allowPrototypes` to `true` which will allow user input to overwrite those properties. *WARNING* It is generally a bad idea to enable this option as it can cause problems when attempting to use the properties that have been overwritten. Always be careful with this option. - -```javascript -var protoObject = qs.parse('a[hasOwnProperty]=b', { allowPrototypes: true }); -assert.deepEqual(protoObject, { a: { hasOwnProperty: 'b' } }); -``` - -URI encoded strings work too: - -```javascript -assert.deepEqual(qs.parse('a%5Bb%5D=c'), { - a: { b: 'c' } -}); -``` - -You can also nest your objects, like `'foo[bar][baz]=foobarbaz'`: - -```javascript -assert.deepEqual(qs.parse('foo[bar][baz]=foobarbaz'), { - foo: { - bar: { - baz: 'foobarbaz' - } - } -}); -``` - -By default, when nesting objects **qs** will only parse up to 5 children deep. This means if you attempt to parse a string like -`'a[b][c][d][e][f][g][h][i]=j'` your resulting object will be: - -```javascript -var expected = { - a: { - b: { - c: { - d: { - e: { - f: { - '[g][h][i]': 'j' - } - } - } - } - } - } -}; -var string = 'a[b][c][d][e][f][g][h][i]=j'; -assert.deepEqual(qs.parse(string), expected); -``` - -This depth can be overridden by passing a `depth` option to `qs.parse(string, [options])`: - -```javascript -var deep = qs.parse('a[b][c][d][e][f][g][h][i]=j', { depth: 1 }); -assert.deepEqual(deep, { a: { b: { '[c][d][e][f][g][h][i]': 'j' } } }); -``` - -The depth limit helps mitigate abuse when **qs** is used to parse user input, and it is recommended to keep it a reasonably small number. - -For similar reasons, by default **qs** will only parse up to 1000 parameters. This can be overridden by passing a `parameterLimit` option: - -```javascript -var limited = qs.parse('a=b&c=d', { parameterLimit: 1 }); -assert.deepEqual(limited, { a: 'b' }); -``` - -To bypass the leading question mark, use `ignoreQueryPrefix`: - -```javascript -var prefixed = qs.parse('?a=b&c=d', { ignoreQueryPrefix: true }); -assert.deepEqual(prefixed, { a: 'b', c: 'd' }); -``` - -An optional delimiter can also be passed: - -```javascript -var delimited = qs.parse('a=b;c=d', { delimiter: ';' }); -assert.deepEqual(delimited, { a: 'b', c: 'd' }); -``` - -Delimiters can be a regular expression too: - -```javascript -var regexed = qs.parse('a=b;c=d,e=f', { delimiter: /[;,]/ }); -assert.deepEqual(regexed, { a: 'b', c: 'd', e: 'f' }); -``` - -Option `allowDots` can be used to enable dot notation: - -```javascript -var withDots = qs.parse('a.b=c', { allowDots: true }); -assert.deepEqual(withDots, { a: { b: 'c' } }); -``` - -### Parsing Arrays - -**qs** can also parse arrays using a similar `[]` notation: - -```javascript -var withArray = qs.parse('a[]=b&a[]=c'); -assert.deepEqual(withArray, { a: ['b', 'c'] }); -``` - -You may specify an index as well: - -```javascript -var withIndexes = qs.parse('a[1]=c&a[0]=b'); -assert.deepEqual(withIndexes, { a: ['b', 'c'] }); -``` - -Note that the only difference between an index in an array and a key in an object is that the value between the brackets must be a number -to create an array. When creating arrays with specific indices, **qs** will compact a sparse array to only the existing values preserving -their order: - -```javascript -var noSparse = qs.parse('a[1]=b&a[15]=c'); -assert.deepEqual(noSparse, { a: ['b', 'c'] }); -``` - -Note that an empty string is also a value, and will be preserved: - -```javascript -var withEmptyString = qs.parse('a[]=&a[]=b'); -assert.deepEqual(withEmptyString, { a: ['', 'b'] }); - -var withIndexedEmptyString = qs.parse('a[0]=b&a[1]=&a[2]=c'); -assert.deepEqual(withIndexedEmptyString, { a: ['b', '', 'c'] }); -``` - -**qs** will also limit specifying indices in an array to a maximum index of `20`. Any array members with an index of greater than `20` will -instead be converted to an object with the index as the key: - -```javascript -var withMaxIndex = qs.parse('a[100]=b'); -assert.deepEqual(withMaxIndex, { a: { '100': 'b' } }); -``` - -This limit can be overridden by passing an `arrayLimit` option: - -```javascript -var withArrayLimit = qs.parse('a[1]=b', { arrayLimit: 0 }); -assert.deepEqual(withArrayLimit, { a: { '1': 'b' } }); -``` - -To disable array parsing entirely, set `parseArrays` to `false`. - -```javascript -var noParsingArrays = qs.parse('a[]=b', { parseArrays: false }); -assert.deepEqual(noParsingArrays, { a: { '0': 'b' } }); -``` - -If you mix notations, **qs** will merge the two items into an object: - -```javascript -var mixedNotation = qs.parse('a[0]=b&a[b]=c'); -assert.deepEqual(mixedNotation, { a: { '0': 'b', b: 'c' } }); -``` - -You can also create arrays of objects: - -```javascript -var arraysOfObjects = qs.parse('a[][b]=c'); -assert.deepEqual(arraysOfObjects, { a: [{ b: 'c' }] }); -``` - -### Stringifying - -[](#preventEval) -```javascript -qs.stringify(object, [options]); -``` - -When stringifying, **qs** by default URI encodes output. Objects are stringified as you would expect: - -```javascript -assert.equal(qs.stringify({ a: 'b' }), 'a=b'); -assert.equal(qs.stringify({ a: { b: 'c' } }), 'a%5Bb%5D=c'); -``` - -This encoding can be disabled by setting the `encode` option to `false`: - -```javascript -var unencoded = qs.stringify({ a: { b: 'c' } }, { encode: false }); -assert.equal(unencoded, 'a[b]=c'); -``` - -Encoding can be disabled for keys by setting the `encodeValuesOnly` option to `true`: -```javascript -var encodedValues = qs.stringify( - { a: 'b', c: ['d', 'e=f'], f: [['g'], ['h']] }, - { encodeValuesOnly: true } -); -assert.equal(encodedValues,'a=b&c[0]=d&c[1]=e%3Df&f[0][0]=g&f[1][0]=h'); -``` - -This encoding can also be replaced by a custom encoding method set as `encoder` option: - -```javascript -var encoded = qs.stringify({ a: { b: 'c' } }, { encoder: function (str) { - // Passed in values `a`, `b`, `c` - return // Return encoded string -}}) -``` - -_(Note: the `encoder` option does not apply if `encode` is `false`)_ - -Analogue to the `encoder` there is a `decoder` option for `parse` to override decoding of properties and values: - -```javascript -var decoded = qs.parse('x=z', { decoder: function (str) { - // Passed in values `x`, `z` - return // Return decoded string -}}) -``` - -Examples beyond this point will be shown as though the output is not URI encoded for clarity. Please note that the return values in these cases *will* be URI encoded during real usage. - -When arrays are stringified, by default they are given explicit indices: - -```javascript -qs.stringify({ a: ['b', 'c', 'd'] }); -// 'a[0]=b&a[1]=c&a[2]=d' -``` - -You may override this by setting the `indices` option to `false`: - -```javascript -qs.stringify({ a: ['b', 'c', 'd'] }, { indices: false }); -// 'a=b&a=c&a=d' -``` - -You may use the `arrayFormat` option to specify the format of the output array: - -```javascript -qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'indices' }) -// 'a[0]=b&a[1]=c' -qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'brackets' }) -// 'a[]=b&a[]=c' -qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' }) -// 'a=b&a=c' -``` - -When objects are stringified, by default they use bracket notation: - -```javascript -qs.stringify({ a: { b: { c: 'd', e: 'f' } } }); -// 'a[b][c]=d&a[b][e]=f' -``` - -You may override this to use dot notation by setting the `allowDots` option to `true`: - -```javascript -qs.stringify({ a: { b: { c: 'd', e: 'f' } } }, { allowDots: true }); -// 'a.b.c=d&a.b.e=f' -``` - -Empty strings and null values will omit the value, but the equals sign (=) remains in place: - -```javascript -assert.equal(qs.stringify({ a: '' }), 'a='); -``` - -Key with no values (such as an empty object or array) will return nothing: - -```javascript -assert.equal(qs.stringify({ a: [] }), ''); -assert.equal(qs.stringify({ a: {} }), ''); -assert.equal(qs.stringify({ a: [{}] }), ''); -assert.equal(qs.stringify({ a: { b: []} }), ''); -assert.equal(qs.stringify({ a: { b: {}} }), ''); -``` - -Properties that are set to `undefined` will be omitted entirely: - -```javascript -assert.equal(qs.stringify({ a: null, b: undefined }), 'a='); -``` - -The query string may optionally be prepended with a question mark: - -```javascript -assert.equal(qs.stringify({ a: 'b', c: 'd' }, { addQueryPrefix: true }), '?a=b&c=d'); -``` - -The delimiter may be overridden with stringify as well: - -```javascript -assert.equal(qs.stringify({ a: 'b', c: 'd' }, { delimiter: ';' }), 'a=b;c=d'); -``` - -If you only want to override the serialization of `Date` objects, you can provide a `serializeDate` option: - -```javascript -var date = new Date(7); -assert.equal(qs.stringify({ a: date }), 'a=1970-01-01T00:00:00.007Z'.replace(/:/g, '%3A')); -assert.equal( - qs.stringify({ a: date }, { serializeDate: function (d) { return d.getTime(); } }), - 'a=7' -); -``` - -You may use the `sort` option to affect the order of parameter keys: - -```javascript -function alphabeticalSort(a, b) { - return a.localeCompare(b); -} -assert.equal(qs.stringify({ a: 'c', z: 'y', b : 'f' }, { sort: alphabeticalSort }), 'a=c&b=f&z=y'); -``` - -Finally, you can use the `filter` option to restrict which keys will be included in the stringified output. -If you pass a function, it will be called for each key to obtain the replacement value. Otherwise, if you -pass an array, it will be used to select properties and array indices for stringification: - -```javascript -function filterFunc(prefix, value) { - if (prefix == 'b') { - // Return an `undefined` value to omit a property. - return; - } - if (prefix == 'e[f]') { - return value.getTime(); - } - if (prefix == 'e[g][0]') { - return value * 2; - } - return value; -} -qs.stringify({ a: 'b', c: 'd', e: { f: new Date(123), g: [2] } }, { filter: filterFunc }); -// 'a=b&c=d&e[f]=123&e[g][0]=4' -qs.stringify({ a: 'b', c: 'd', e: 'f' }, { filter: ['a', 'e'] }); -// 'a=b&e=f' -qs.stringify({ a: ['b', 'c', 'd'], e: 'f' }, { filter: ['a', 0, 2] }); -// 'a[0]=b&a[2]=d' -``` - -### Handling of `null` values - -By default, `null` values are treated like empty strings: - -```javascript -var withNull = qs.stringify({ a: null, b: '' }); -assert.equal(withNull, 'a=&b='); -``` - -Parsing does not distinguish between parameters with and without equal signs. Both are converted to empty strings. - -```javascript -var equalsInsensitive = qs.parse('a&b='); -assert.deepEqual(equalsInsensitive, { a: '', b: '' }); -``` - -To distinguish between `null` values and empty strings use the `strictNullHandling` flag. In the result string the `null` -values have no `=` sign: - -```javascript -var strictNull = qs.stringify({ a: null, b: '' }, { strictNullHandling: true }); -assert.equal(strictNull, 'a&b='); -``` - -To parse values without `=` back to `null` use the `strictNullHandling` flag: - -```javascript -var parsedStrictNull = qs.parse('a&b=', { strictNullHandling: true }); -assert.deepEqual(parsedStrictNull, { a: null, b: '' }); -``` - -To completely skip rendering keys with `null` values, use the `skipNulls` flag: - -```javascript -var nullsSkipped = qs.stringify({ a: 'b', c: null}, { skipNulls: true }); -assert.equal(nullsSkipped, 'a=b'); -``` - -### Dealing with special character sets - -By default the encoding and decoding of characters is done in `utf-8`. If you -wish to encode querystrings to a different character set (i.e. -[Shift JIS](https://en.wikipedia.org/wiki/Shift_JIS)) you can use the -[`qs-iconv`](https://github.com/martinheidegger/qs-iconv) library: - -```javascript -var encoder = require('qs-iconv/encoder')('shift_jis'); -var shiftJISEncoded = qs.stringify({ a: 'こんにちは!' }, { encoder: encoder }); -assert.equal(shiftJISEncoded, 'a=%82%B1%82%F1%82%C9%82%BF%82%CD%81I'); -``` - -This also works for decoding of query strings: - -```javascript -var decoder = require('qs-iconv/decoder')('shift_jis'); -var obj = qs.parse('a=%82%B1%82%F1%82%C9%82%BF%82%CD%81I', { decoder: decoder }); -assert.deepEqual(obj, { a: 'こんにちは!' }); -``` - -### RFC 3986 and RFC 1738 space encoding - -RFC3986 used as default option and encodes ' ' to *%20* which is backward compatible. -In the same time, output can be stringified as per RFC1738 with ' ' equal to '+'. - -``` -assert.equal(qs.stringify({ a: 'b c' }), 'a=b%20c'); -assert.equal(qs.stringify({ a: 'b c' }, { format : 'RFC3986' }), 'a=b%20c'); -assert.equal(qs.stringify({ a: 'b c' }, { format : 'RFC1738' }), 'a=b+c'); -``` - -[1]: https://npmjs.org/package/qs -[2]: http://versionbadg.es/ljharb/qs.svg -[3]: https://api.travis-ci.org/ljharb/qs.svg -[4]: https://travis-ci.org/ljharb/qs -[5]: https://david-dm.org/ljharb/qs.svg -[6]: https://david-dm.org/ljharb/qs -[7]: https://david-dm.org/ljharb/qs/dev-status.svg -[8]: https://david-dm.org/ljharb/qs?type=dev -[9]: https://ci.testling.com/ljharb/qs.png -[10]: https://ci.testling.com/ljharb/qs -[11]: https://nodei.co/npm/qs.png?downloads=true&stars=true -[license-image]: http://img.shields.io/npm/l/qs.svg -[license-url]: LICENSE -[downloads-image]: http://img.shields.io/npm/dm/qs.svg -[downloads-url]: http://npm-stat.com/charts.html?package=qs diff --git a/deps/npm/node_modules/qs/dist/qs.js b/deps/npm/node_modules/qs/dist/qs.js deleted file mode 100644 index ecf7ba44cf15be..00000000000000 --- a/deps/npm/node_modules/qs/dist/qs.js +++ /dev/null @@ -1,638 +0,0 @@ -(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.Qs = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i= 0; --i) { - var obj; - var root = chain[i]; - - if (root === '[]') { - obj = []; - obj = obj.concat(leaf); - } else { - obj = options.plainObjects ? Object.create(null) : {}; - var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root; - var index = parseInt(cleanRoot, 10); - if ( - !isNaN(index) - && root !== cleanRoot - && String(index) === cleanRoot - && index >= 0 - && (options.parseArrays && index <= options.arrayLimit) - ) { - obj = []; - obj[index] = leaf; - } else { - obj[cleanRoot] = leaf; - } - } - - leaf = obj; - } - - return leaf; -}; - -var parseKeys = function parseQueryStringKeys(givenKey, val, options) { - if (!givenKey) { - return; - } - - // Transform dot notation to bracket notation - var key = options.allowDots ? givenKey.replace(/\.([^.[]+)/g, '[$1]') : givenKey; - - // The regex chunks - - var brackets = /(\[[^[\]]*])/; - var child = /(\[[^[\]]*])/g; - - // Get the parent - - var segment = brackets.exec(key); - var parent = segment ? key.slice(0, segment.index) : key; - - // Stash the parent if it exists - - var keys = []; - if (parent) { - // If we aren't using plain objects, optionally prefix keys - // that would overwrite object prototype properties - if (!options.plainObjects && has.call(Object.prototype, parent)) { - if (!options.allowPrototypes) { - return; - } - } - - keys.push(parent); - } - - // Loop through children appending to the array until we hit depth - - var i = 0; - while ((segment = child.exec(key)) !== null && i < options.depth) { - i += 1; - if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) { - if (!options.allowPrototypes) { - return; - } - } - keys.push(segment[1]); - } - - // If there's a remainder, just add whatever is left - - if (segment) { - keys.push('[' + key.slice(segment.index) + ']'); - } - - return parseObject(keys, val, options); -}; - -module.exports = function (str, opts) { - var options = opts ? utils.assign({}, opts) : {}; - - if (options.decoder !== null && options.decoder !== undefined && typeof options.decoder !== 'function') { - throw new TypeError('Decoder has to be a function.'); - } - - options.ignoreQueryPrefix = options.ignoreQueryPrefix === true; - options.delimiter = typeof options.delimiter === 'string' || utils.isRegExp(options.delimiter) ? options.delimiter : defaults.delimiter; - options.depth = typeof options.depth === 'number' ? options.depth : defaults.depth; - options.arrayLimit = typeof options.arrayLimit === 'number' ? options.arrayLimit : defaults.arrayLimit; - options.parseArrays = options.parseArrays !== false; - options.decoder = typeof options.decoder === 'function' ? options.decoder : defaults.decoder; - options.allowDots = typeof options.allowDots === 'boolean' ? options.allowDots : defaults.allowDots; - options.plainObjects = typeof options.plainObjects === 'boolean' ? options.plainObjects : defaults.plainObjects; - options.allowPrototypes = typeof options.allowPrototypes === 'boolean' ? options.allowPrototypes : defaults.allowPrototypes; - options.parameterLimit = typeof options.parameterLimit === 'number' ? options.parameterLimit : defaults.parameterLimit; - options.strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling; - - if (str === '' || str === null || typeof str === 'undefined') { - return options.plainObjects ? Object.create(null) : {}; - } - - var tempObj = typeof str === 'string' ? parseValues(str, options) : str; - var obj = options.plainObjects ? Object.create(null) : {}; - - // Iterate over the keys and setup the new object - - var keys = Object.keys(tempObj); - for (var i = 0; i < keys.length; ++i) { - var key = keys[i]; - var newObj = parseKeys(key, tempObj[key], options); - obj = utils.merge(obj, newObj, options); - } - - return utils.compact(obj); -}; - -},{"./utils":5}],4:[function(require,module,exports){ -'use strict'; - -var utils = require('./utils'); -var formats = require('./formats'); - -var arrayPrefixGenerators = { - brackets: function brackets(prefix) { // eslint-disable-line func-name-matching - return prefix + '[]'; - }, - indices: function indices(prefix, key) { // eslint-disable-line func-name-matching - return prefix + '[' + key + ']'; - }, - repeat: function repeat(prefix) { // eslint-disable-line func-name-matching - return prefix; - } -}; - -var toISO = Date.prototype.toISOString; - -var defaults = { - delimiter: '&', - encode: true, - encoder: utils.encode, - encodeValuesOnly: false, - serializeDate: function serializeDate(date) { // eslint-disable-line func-name-matching - return toISO.call(date); - }, - skipNulls: false, - strictNullHandling: false -}; - -var stringify = function stringify( // eslint-disable-line func-name-matching - object, - prefix, - generateArrayPrefix, - strictNullHandling, - skipNulls, - encoder, - filter, - sort, - allowDots, - serializeDate, - formatter, - encodeValuesOnly -) { - var obj = object; - if (typeof filter === 'function') { - obj = filter(prefix, obj); - } else if (obj instanceof Date) { - obj = serializeDate(obj); - } else if (obj === null) { - if (strictNullHandling) { - return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder) : prefix; - } - - obj = ''; - } - - if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean' || utils.isBuffer(obj)) { - if (encoder) { - var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder); - return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder))]; - } - return [formatter(prefix) + '=' + formatter(String(obj))]; - } - - var values = []; - - if (typeof obj === 'undefined') { - return values; - } - - var objKeys; - if (Array.isArray(filter)) { - objKeys = filter; - } else { - var keys = Object.keys(obj); - objKeys = sort ? keys.sort(sort) : keys; - } - - for (var i = 0; i < objKeys.length; ++i) { - var key = objKeys[i]; - - if (skipNulls && obj[key] === null) { - continue; - } - - if (Array.isArray(obj)) { - values = values.concat(stringify( - obj[key], - generateArrayPrefix(prefix, key), - generateArrayPrefix, - strictNullHandling, - skipNulls, - encoder, - filter, - sort, - allowDots, - serializeDate, - formatter, - encodeValuesOnly - )); - } else { - values = values.concat(stringify( - obj[key], - prefix + (allowDots ? '.' + key : '[' + key + ']'), - generateArrayPrefix, - strictNullHandling, - skipNulls, - encoder, - filter, - sort, - allowDots, - serializeDate, - formatter, - encodeValuesOnly - )); - } - } - - return values; -}; - -module.exports = function (object, opts) { - var obj = object; - var options = opts ? utils.assign({}, opts) : {}; - - if (options.encoder !== null && options.encoder !== undefined && typeof options.encoder !== 'function') { - throw new TypeError('Encoder has to be a function.'); - } - - var delimiter = typeof options.delimiter === 'undefined' ? defaults.delimiter : options.delimiter; - var strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling; - var skipNulls = typeof options.skipNulls === 'boolean' ? options.skipNulls : defaults.skipNulls; - var encode = typeof options.encode === 'boolean' ? options.encode : defaults.encode; - var encoder = typeof options.encoder === 'function' ? options.encoder : defaults.encoder; - var sort = typeof options.sort === 'function' ? options.sort : null; - var allowDots = typeof options.allowDots === 'undefined' ? false : options.allowDots; - var serializeDate = typeof options.serializeDate === 'function' ? options.serializeDate : defaults.serializeDate; - var encodeValuesOnly = typeof options.encodeValuesOnly === 'boolean' ? options.encodeValuesOnly : defaults.encodeValuesOnly; - if (typeof options.format === 'undefined') { - options.format = formats['default']; - } else if (!Object.prototype.hasOwnProperty.call(formats.formatters, options.format)) { - throw new TypeError('Unknown format option provided.'); - } - var formatter = formats.formatters[options.format]; - var objKeys; - var filter; - - if (typeof options.filter === 'function') { - filter = options.filter; - obj = filter('', obj); - } else if (Array.isArray(options.filter)) { - filter = options.filter; - objKeys = filter; - } - - var keys = []; - - if (typeof obj !== 'object' || obj === null) { - return ''; - } - - var arrayFormat; - if (options.arrayFormat in arrayPrefixGenerators) { - arrayFormat = options.arrayFormat; - } else if ('indices' in options) { - arrayFormat = options.indices ? 'indices' : 'repeat'; - } else { - arrayFormat = 'indices'; - } - - var generateArrayPrefix = arrayPrefixGenerators[arrayFormat]; - - if (!objKeys) { - objKeys = Object.keys(obj); - } - - if (sort) { - objKeys.sort(sort); - } - - for (var i = 0; i < objKeys.length; ++i) { - var key = objKeys[i]; - - if (skipNulls && obj[key] === null) { - continue; - } - - keys = keys.concat(stringify( - obj[key], - key, - generateArrayPrefix, - strictNullHandling, - skipNulls, - encode ? encoder : null, - filter, - sort, - allowDots, - serializeDate, - formatter, - encodeValuesOnly - )); - } - - var joined = keys.join(delimiter); - var prefix = options.addQueryPrefix === true ? '?' : ''; - - return joined.length > 0 ? prefix + joined : ''; -}; - -},{"./formats":1,"./utils":5}],5:[function(require,module,exports){ -'use strict'; - -var has = Object.prototype.hasOwnProperty; - -var hexTable = (function () { - var array = []; - for (var i = 0; i < 256; ++i) { - array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase()); - } - - return array; -}()); - -var compactQueue = function compactQueue(queue) { - var obj; - - while (queue.length) { - var item = queue.pop(); - obj = item.obj[item.prop]; - - if (Array.isArray(obj)) { - var compacted = []; - - for (var j = 0; j < obj.length; ++j) { - if (typeof obj[j] !== 'undefined') { - compacted.push(obj[j]); - } - } - - item.obj[item.prop] = compacted; - } - } - - return obj; -}; - -var arrayToObject = function arrayToObject(source, options) { - var obj = options && options.plainObjects ? Object.create(null) : {}; - for (var i = 0; i < source.length; ++i) { - if (typeof source[i] !== 'undefined') { - obj[i] = source[i]; - } - } - - return obj; -}; - -var merge = function merge(target, source, options) { - if (!source) { - return target; - } - - if (typeof source !== 'object') { - if (Array.isArray(target)) { - target.push(source); - } else if (typeof target === 'object') { - if (options.plainObjects || options.allowPrototypes || !has.call(Object.prototype, source)) { - target[source] = true; - } - } else { - return [target, source]; - } - - return target; - } - - if (typeof target !== 'object') { - return [target].concat(source); - } - - var mergeTarget = target; - if (Array.isArray(target) && !Array.isArray(source)) { - mergeTarget = arrayToObject(target, options); - } - - if (Array.isArray(target) && Array.isArray(source)) { - source.forEach(function (item, i) { - if (has.call(target, i)) { - if (target[i] && typeof target[i] === 'object') { - target[i] = merge(target[i], item, options); - } else { - target.push(item); - } - } else { - target[i] = item; - } - }); - return target; - } - - return Object.keys(source).reduce(function (acc, key) { - var value = source[key]; - - if (has.call(acc, key)) { - acc[key] = merge(acc[key], value, options); - } else { - acc[key] = value; - } - return acc; - }, mergeTarget); -}; - -var assign = function assignSingleSource(target, source) { - return Object.keys(source).reduce(function (acc, key) { - acc[key] = source[key]; - return acc; - }, target); -}; - -var decode = function (str) { - try { - return decodeURIComponent(str.replace(/\+/g, ' ')); - } catch (e) { - return str; - } -}; - -var encode = function encode(str) { - // This code was originally written by Brian White (mscdex) for the io.js core querystring library. - // It has been adapted here for stricter adherence to RFC 3986 - if (str.length === 0) { - return str; - } - - var string = typeof str === 'string' ? str : String(str); - - var out = ''; - for (var i = 0; i < string.length; ++i) { - var c = string.charCodeAt(i); - - if ( - c === 0x2D // - - || c === 0x2E // . - || c === 0x5F // _ - || c === 0x7E // ~ - || (c >= 0x30 && c <= 0x39) // 0-9 - || (c >= 0x41 && c <= 0x5A) // a-z - || (c >= 0x61 && c <= 0x7A) // A-Z - ) { - out += string.charAt(i); - continue; - } - - if (c < 0x80) { - out = out + hexTable[c]; - continue; - } - - if (c < 0x800) { - out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]); - continue; - } - - if (c < 0xD800 || c >= 0xE000) { - out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]); - continue; - } - - i += 1; - c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF)); - out += hexTable[0xF0 | (c >> 18)] - + hexTable[0x80 | ((c >> 12) & 0x3F)] - + hexTable[0x80 | ((c >> 6) & 0x3F)] - + hexTable[0x80 | (c & 0x3F)]; - } - - return out; -}; - -var compact = function compact(value) { - var queue = [{ obj: { o: value }, prop: 'o' }]; - var refs = []; - - for (var i = 0; i < queue.length; ++i) { - var item = queue[i]; - var obj = item.obj[item.prop]; - - var keys = Object.keys(obj); - for (var j = 0; j < keys.length; ++j) { - var key = keys[j]; - var val = obj[key]; - if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) { - queue.push({ obj: obj, prop: key }); - refs.push(val); - } - } - } - - return compactQueue(queue); -}; - -var isRegExp = function isRegExp(obj) { - return Object.prototype.toString.call(obj) === '[object RegExp]'; -}; - -var isBuffer = function isBuffer(obj) { - if (obj === null || typeof obj === 'undefined') { - return false; - } - - return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj)); -}; - -module.exports = { - arrayToObject: arrayToObject, - assign: assign, - compact: compact, - decode: decode, - encode: encode, - isBuffer: isBuffer, - isRegExp: isRegExp, - merge: merge -}; - -},{}]},{},[2])(2) -}); diff --git a/deps/npm/node_modules/qs/lib/formats.js b/deps/npm/node_modules/qs/lib/formats.js deleted file mode 100644 index df459975291f24..00000000000000 --- a/deps/npm/node_modules/qs/lib/formats.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var replace = String.prototype.replace; -var percentTwenties = /%20/g; - -module.exports = { - 'default': 'RFC3986', - formatters: { - RFC1738: function (value) { - return replace.call(value, percentTwenties, '+'); - }, - RFC3986: function (value) { - return value; - } - }, - RFC1738: 'RFC1738', - RFC3986: 'RFC3986' -}; diff --git a/deps/npm/node_modules/qs/lib/index.js b/deps/npm/node_modules/qs/lib/index.js deleted file mode 100644 index 0d6a97dcf09644..00000000000000 --- a/deps/npm/node_modules/qs/lib/index.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var stringify = require('./stringify'); -var parse = require('./parse'); -var formats = require('./formats'); - -module.exports = { - formats: formats, - parse: parse, - stringify: stringify -}; diff --git a/deps/npm/node_modules/qs/lib/parse.js b/deps/npm/node_modules/qs/lib/parse.js deleted file mode 100644 index 8c9872ecc693a0..00000000000000 --- a/deps/npm/node_modules/qs/lib/parse.js +++ /dev/null @@ -1,174 +0,0 @@ -'use strict'; - -var utils = require('./utils'); - -var has = Object.prototype.hasOwnProperty; - -var defaults = { - allowDots: false, - allowPrototypes: false, - arrayLimit: 20, - decoder: utils.decode, - delimiter: '&', - depth: 5, - parameterLimit: 1000, - plainObjects: false, - strictNullHandling: false -}; - -var parseValues = function parseQueryStringValues(str, options) { - var obj = {}; - var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\?/, '') : str; - var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit; - var parts = cleanStr.split(options.delimiter, limit); - - for (var i = 0; i < parts.length; ++i) { - var part = parts[i]; - - var bracketEqualsPos = part.indexOf(']='); - var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1; - - var key, val; - if (pos === -1) { - key = options.decoder(part, defaults.decoder); - val = options.strictNullHandling ? null : ''; - } else { - key = options.decoder(part.slice(0, pos), defaults.decoder); - val = options.decoder(part.slice(pos + 1), defaults.decoder); - } - if (has.call(obj, key)) { - obj[key] = [].concat(obj[key]).concat(val); - } else { - obj[key] = val; - } - } - - return obj; -}; - -var parseObject = function (chain, val, options) { - var leaf = val; - - for (var i = chain.length - 1; i >= 0; --i) { - var obj; - var root = chain[i]; - - if (root === '[]') { - obj = []; - obj = obj.concat(leaf); - } else { - obj = options.plainObjects ? Object.create(null) : {}; - var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root; - var index = parseInt(cleanRoot, 10); - if ( - !isNaN(index) - && root !== cleanRoot - && String(index) === cleanRoot - && index >= 0 - && (options.parseArrays && index <= options.arrayLimit) - ) { - obj = []; - obj[index] = leaf; - } else { - obj[cleanRoot] = leaf; - } - } - - leaf = obj; - } - - return leaf; -}; - -var parseKeys = function parseQueryStringKeys(givenKey, val, options) { - if (!givenKey) { - return; - } - - // Transform dot notation to bracket notation - var key = options.allowDots ? givenKey.replace(/\.([^.[]+)/g, '[$1]') : givenKey; - - // The regex chunks - - var brackets = /(\[[^[\]]*])/; - var child = /(\[[^[\]]*])/g; - - // Get the parent - - var segment = brackets.exec(key); - var parent = segment ? key.slice(0, segment.index) : key; - - // Stash the parent if it exists - - var keys = []; - if (parent) { - // If we aren't using plain objects, optionally prefix keys - // that would overwrite object prototype properties - if (!options.plainObjects && has.call(Object.prototype, parent)) { - if (!options.allowPrototypes) { - return; - } - } - - keys.push(parent); - } - - // Loop through children appending to the array until we hit depth - - var i = 0; - while ((segment = child.exec(key)) !== null && i < options.depth) { - i += 1; - if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) { - if (!options.allowPrototypes) { - return; - } - } - keys.push(segment[1]); - } - - // If there's a remainder, just add whatever is left - - if (segment) { - keys.push('[' + key.slice(segment.index) + ']'); - } - - return parseObject(keys, val, options); -}; - -module.exports = function (str, opts) { - var options = opts ? utils.assign({}, opts) : {}; - - if (options.decoder !== null && options.decoder !== undefined && typeof options.decoder !== 'function') { - throw new TypeError('Decoder has to be a function.'); - } - - options.ignoreQueryPrefix = options.ignoreQueryPrefix === true; - options.delimiter = typeof options.delimiter === 'string' || utils.isRegExp(options.delimiter) ? options.delimiter : defaults.delimiter; - options.depth = typeof options.depth === 'number' ? options.depth : defaults.depth; - options.arrayLimit = typeof options.arrayLimit === 'number' ? options.arrayLimit : defaults.arrayLimit; - options.parseArrays = options.parseArrays !== false; - options.decoder = typeof options.decoder === 'function' ? options.decoder : defaults.decoder; - options.allowDots = typeof options.allowDots === 'boolean' ? options.allowDots : defaults.allowDots; - options.plainObjects = typeof options.plainObjects === 'boolean' ? options.plainObjects : defaults.plainObjects; - options.allowPrototypes = typeof options.allowPrototypes === 'boolean' ? options.allowPrototypes : defaults.allowPrototypes; - options.parameterLimit = typeof options.parameterLimit === 'number' ? options.parameterLimit : defaults.parameterLimit; - options.strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling; - - if (str === '' || str === null || typeof str === 'undefined') { - return options.plainObjects ? Object.create(null) : {}; - } - - var tempObj = typeof str === 'string' ? parseValues(str, options) : str; - var obj = options.plainObjects ? Object.create(null) : {}; - - // Iterate over the keys and setup the new object - - var keys = Object.keys(tempObj); - for (var i = 0; i < keys.length; ++i) { - var key = keys[i]; - var newObj = parseKeys(key, tempObj[key], options); - obj = utils.merge(obj, newObj, options); - } - - return utils.compact(obj); -}; diff --git a/deps/npm/node_modules/qs/lib/stringify.js b/deps/npm/node_modules/qs/lib/stringify.js deleted file mode 100644 index ab915ac46382b3..00000000000000 --- a/deps/npm/node_modules/qs/lib/stringify.js +++ /dev/null @@ -1,210 +0,0 @@ -'use strict'; - -var utils = require('./utils'); -var formats = require('./formats'); - -var arrayPrefixGenerators = { - brackets: function brackets(prefix) { // eslint-disable-line func-name-matching - return prefix + '[]'; - }, - indices: function indices(prefix, key) { // eslint-disable-line func-name-matching - return prefix + '[' + key + ']'; - }, - repeat: function repeat(prefix) { // eslint-disable-line func-name-matching - return prefix; - } -}; - -var toISO = Date.prototype.toISOString; - -var defaults = { - delimiter: '&', - encode: true, - encoder: utils.encode, - encodeValuesOnly: false, - serializeDate: function serializeDate(date) { // eslint-disable-line func-name-matching - return toISO.call(date); - }, - skipNulls: false, - strictNullHandling: false -}; - -var stringify = function stringify( // eslint-disable-line func-name-matching - object, - prefix, - generateArrayPrefix, - strictNullHandling, - skipNulls, - encoder, - filter, - sort, - allowDots, - serializeDate, - formatter, - encodeValuesOnly -) { - var obj = object; - if (typeof filter === 'function') { - obj = filter(prefix, obj); - } else if (obj instanceof Date) { - obj = serializeDate(obj); - } else if (obj === null) { - if (strictNullHandling) { - return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder) : prefix; - } - - obj = ''; - } - - if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean' || utils.isBuffer(obj)) { - if (encoder) { - var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder); - return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder))]; - } - return [formatter(prefix) + '=' + formatter(String(obj))]; - } - - var values = []; - - if (typeof obj === 'undefined') { - return values; - } - - var objKeys; - if (Array.isArray(filter)) { - objKeys = filter; - } else { - var keys = Object.keys(obj); - objKeys = sort ? keys.sort(sort) : keys; - } - - for (var i = 0; i < objKeys.length; ++i) { - var key = objKeys[i]; - - if (skipNulls && obj[key] === null) { - continue; - } - - if (Array.isArray(obj)) { - values = values.concat(stringify( - obj[key], - generateArrayPrefix(prefix, key), - generateArrayPrefix, - strictNullHandling, - skipNulls, - encoder, - filter, - sort, - allowDots, - serializeDate, - formatter, - encodeValuesOnly - )); - } else { - values = values.concat(stringify( - obj[key], - prefix + (allowDots ? '.' + key : '[' + key + ']'), - generateArrayPrefix, - strictNullHandling, - skipNulls, - encoder, - filter, - sort, - allowDots, - serializeDate, - formatter, - encodeValuesOnly - )); - } - } - - return values; -}; - -module.exports = function (object, opts) { - var obj = object; - var options = opts ? utils.assign({}, opts) : {}; - - if (options.encoder !== null && options.encoder !== undefined && typeof options.encoder !== 'function') { - throw new TypeError('Encoder has to be a function.'); - } - - var delimiter = typeof options.delimiter === 'undefined' ? defaults.delimiter : options.delimiter; - var strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling; - var skipNulls = typeof options.skipNulls === 'boolean' ? options.skipNulls : defaults.skipNulls; - var encode = typeof options.encode === 'boolean' ? options.encode : defaults.encode; - var encoder = typeof options.encoder === 'function' ? options.encoder : defaults.encoder; - var sort = typeof options.sort === 'function' ? options.sort : null; - var allowDots = typeof options.allowDots === 'undefined' ? false : options.allowDots; - var serializeDate = typeof options.serializeDate === 'function' ? options.serializeDate : defaults.serializeDate; - var encodeValuesOnly = typeof options.encodeValuesOnly === 'boolean' ? options.encodeValuesOnly : defaults.encodeValuesOnly; - if (typeof options.format === 'undefined') { - options.format = formats['default']; - } else if (!Object.prototype.hasOwnProperty.call(formats.formatters, options.format)) { - throw new TypeError('Unknown format option provided.'); - } - var formatter = formats.formatters[options.format]; - var objKeys; - var filter; - - if (typeof options.filter === 'function') { - filter = options.filter; - obj = filter('', obj); - } else if (Array.isArray(options.filter)) { - filter = options.filter; - objKeys = filter; - } - - var keys = []; - - if (typeof obj !== 'object' || obj === null) { - return ''; - } - - var arrayFormat; - if (options.arrayFormat in arrayPrefixGenerators) { - arrayFormat = options.arrayFormat; - } else if ('indices' in options) { - arrayFormat = options.indices ? 'indices' : 'repeat'; - } else { - arrayFormat = 'indices'; - } - - var generateArrayPrefix = arrayPrefixGenerators[arrayFormat]; - - if (!objKeys) { - objKeys = Object.keys(obj); - } - - if (sort) { - objKeys.sort(sort); - } - - for (var i = 0; i < objKeys.length; ++i) { - var key = objKeys[i]; - - if (skipNulls && obj[key] === null) { - continue; - } - - keys = keys.concat(stringify( - obj[key], - key, - generateArrayPrefix, - strictNullHandling, - skipNulls, - encode ? encoder : null, - filter, - sort, - allowDots, - serializeDate, - formatter, - encodeValuesOnly - )); - } - - var joined = keys.join(delimiter); - var prefix = options.addQueryPrefix === true ? '?' : ''; - - return joined.length > 0 ? prefix + joined : ''; -}; diff --git a/deps/npm/node_modules/qs/lib/utils.js b/deps/npm/node_modules/qs/lib/utils.js deleted file mode 100644 index 8775a3270c77f1..00000000000000 --- a/deps/npm/node_modules/qs/lib/utils.js +++ /dev/null @@ -1,213 +0,0 @@ -'use strict'; - -var has = Object.prototype.hasOwnProperty; - -var hexTable = (function () { - var array = []; - for (var i = 0; i < 256; ++i) { - array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase()); - } - - return array; -}()); - -var compactQueue = function compactQueue(queue) { - var obj; - - while (queue.length) { - var item = queue.pop(); - obj = item.obj[item.prop]; - - if (Array.isArray(obj)) { - var compacted = []; - - for (var j = 0; j < obj.length; ++j) { - if (typeof obj[j] !== 'undefined') { - compacted.push(obj[j]); - } - } - - item.obj[item.prop] = compacted; - } - } - - return obj; -}; - -var arrayToObject = function arrayToObject(source, options) { - var obj = options && options.plainObjects ? Object.create(null) : {}; - for (var i = 0; i < source.length; ++i) { - if (typeof source[i] !== 'undefined') { - obj[i] = source[i]; - } - } - - return obj; -}; - -var merge = function merge(target, source, options) { - if (!source) { - return target; - } - - if (typeof source !== 'object') { - if (Array.isArray(target)) { - target.push(source); - } else if (typeof target === 'object') { - if (options.plainObjects || options.allowPrototypes || !has.call(Object.prototype, source)) { - target[source] = true; - } - } else { - return [target, source]; - } - - return target; - } - - if (typeof target !== 'object') { - return [target].concat(source); - } - - var mergeTarget = target; - if (Array.isArray(target) && !Array.isArray(source)) { - mergeTarget = arrayToObject(target, options); - } - - if (Array.isArray(target) && Array.isArray(source)) { - source.forEach(function (item, i) { - if (has.call(target, i)) { - if (target[i] && typeof target[i] === 'object') { - target[i] = merge(target[i], item, options); - } else { - target.push(item); - } - } else { - target[i] = item; - } - }); - return target; - } - - return Object.keys(source).reduce(function (acc, key) { - var value = source[key]; - - if (has.call(acc, key)) { - acc[key] = merge(acc[key], value, options); - } else { - acc[key] = value; - } - return acc; - }, mergeTarget); -}; - -var assign = function assignSingleSource(target, source) { - return Object.keys(source).reduce(function (acc, key) { - acc[key] = source[key]; - return acc; - }, target); -}; - -var decode = function (str) { - try { - return decodeURIComponent(str.replace(/\+/g, ' ')); - } catch (e) { - return str; - } -}; - -var encode = function encode(str) { - // This code was originally written by Brian White (mscdex) for the io.js core querystring library. - // It has been adapted here for stricter adherence to RFC 3986 - if (str.length === 0) { - return str; - } - - var string = typeof str === 'string' ? str : String(str); - - var out = ''; - for (var i = 0; i < string.length; ++i) { - var c = string.charCodeAt(i); - - if ( - c === 0x2D // - - || c === 0x2E // . - || c === 0x5F // _ - || c === 0x7E // ~ - || (c >= 0x30 && c <= 0x39) // 0-9 - || (c >= 0x41 && c <= 0x5A) // a-z - || (c >= 0x61 && c <= 0x7A) // A-Z - ) { - out += string.charAt(i); - continue; - } - - if (c < 0x80) { - out = out + hexTable[c]; - continue; - } - - if (c < 0x800) { - out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]); - continue; - } - - if (c < 0xD800 || c >= 0xE000) { - out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]); - continue; - } - - i += 1; - c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF)); - out += hexTable[0xF0 | (c >> 18)] - + hexTable[0x80 | ((c >> 12) & 0x3F)] - + hexTable[0x80 | ((c >> 6) & 0x3F)] - + hexTable[0x80 | (c & 0x3F)]; - } - - return out; -}; - -var compact = function compact(value) { - var queue = [{ obj: { o: value }, prop: 'o' }]; - var refs = []; - - for (var i = 0; i < queue.length; ++i) { - var item = queue[i]; - var obj = item.obj[item.prop]; - - var keys = Object.keys(obj); - for (var j = 0; j < keys.length; ++j) { - var key = keys[j]; - var val = obj[key]; - if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) { - queue.push({ obj: obj, prop: key }); - refs.push(val); - } - } - } - - return compactQueue(queue); -}; - -var isRegExp = function isRegExp(obj) { - return Object.prototype.toString.call(obj) === '[object RegExp]'; -}; - -var isBuffer = function isBuffer(obj) { - if (obj === null || typeof obj === 'undefined') { - return false; - } - - return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj)); -}; - -module.exports = { - arrayToObject: arrayToObject, - assign: assign, - compact: compact, - decode: decode, - encode: encode, - isBuffer: isBuffer, - isRegExp: isRegExp, - merge: merge -}; diff --git a/deps/npm/node_modules/qs/package.json b/deps/npm/node_modules/qs/package.json deleted file mode 100644 index 2c6549003c47e2..00000000000000 --- a/deps/npm/node_modules/qs/package.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "name": "qs", - "description": "A querystring parser that supports nesting and arrays, with a depth limit", - "homepage": "https://github.com/ljharb/qs", - "version": "6.5.2", - "repository": { - "type": "git", - "url": "https://github.com/ljharb/qs.git" - }, - "main": "lib/index.js", - "contributors": [ - { - "name": "Jordan Harband", - "email": "ljharb@gmail.com", - "url": "http://ljharb.codes" - } - ], - "keywords": [ - "querystring", - "qs" - ], - "engines": { - "node": ">=0.6" - }, - "dependencies": {}, - "devDependencies": { - "@ljharb/eslint-config": "^12.2.1", - "browserify": "^16.2.0", - "covert": "^1.1.0", - "editorconfig-tools": "^0.1.1", - "eslint": "^4.19.1", - "evalmd": "^0.0.17", - "iconv-lite": "^0.4.21", - "mkdirp": "^0.5.1", - "qs-iconv": "^1.0.4", - "safe-publish-latest": "^1.1.1", - "safer-buffer": "^2.1.2", - "tape": "^4.9.0" - }, - "scripts": { - "prepublish": "safe-publish-latest && npm run dist", - "pretest": "npm run --silent readme && npm run --silent lint", - "test": "npm run --silent coverage", - "tests-only": "node test", - "readme": "evalmd README.md", - "prelint": "editorconfig-tools check * lib/* test/*", - "lint": "eslint lib/*.js test/*.js", - "coverage": "covert test", - "dist": "mkdirp dist && browserify --standalone Qs lib/index.js > dist/qs.js" - }, - "license": "BSD-3-Clause" -} diff --git a/deps/npm/node_modules/qs/test/index.js b/deps/npm/node_modules/qs/test/index.js deleted file mode 100644 index 5e6bc8fbd9b461..00000000000000 --- a/deps/npm/node_modules/qs/test/index.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -require('./parse'); - -require('./stringify'); - -require('./utils'); diff --git a/deps/npm/node_modules/qs/test/parse.js b/deps/npm/node_modules/qs/test/parse.js deleted file mode 100644 index 0f8fe4578a0cba..00000000000000 --- a/deps/npm/node_modules/qs/test/parse.js +++ /dev/null @@ -1,574 +0,0 @@ -'use strict'; - -var test = require('tape'); -var qs = require('../'); -var utils = require('../lib/utils'); -var iconv = require('iconv-lite'); -var SaferBuffer = require('safer-buffer').Buffer; - -test('parse()', function (t) { - t.test('parses a simple string', function (st) { - st.deepEqual(qs.parse('0=foo'), { 0: 'foo' }); - st.deepEqual(qs.parse('foo=c++'), { foo: 'c ' }); - st.deepEqual(qs.parse('a[>=]=23'), { a: { '>=': '23' } }); - st.deepEqual(qs.parse('a[<=>]==23'), { a: { '<=>': '=23' } }); - st.deepEqual(qs.parse('a[==]=23'), { a: { '==': '23' } }); - st.deepEqual(qs.parse('foo', { strictNullHandling: true }), { foo: null }); - st.deepEqual(qs.parse('foo'), { foo: '' }); - st.deepEqual(qs.parse('foo='), { foo: '' }); - st.deepEqual(qs.parse('foo=bar'), { foo: 'bar' }); - st.deepEqual(qs.parse(' foo = bar = baz '), { ' foo ': ' bar = baz ' }); - st.deepEqual(qs.parse('foo=bar=baz'), { foo: 'bar=baz' }); - st.deepEqual(qs.parse('foo=bar&bar=baz'), { foo: 'bar', bar: 'baz' }); - st.deepEqual(qs.parse('foo2=bar2&baz2='), { foo2: 'bar2', baz2: '' }); - st.deepEqual(qs.parse('foo=bar&baz', { strictNullHandling: true }), { foo: 'bar', baz: null }); - st.deepEqual(qs.parse('foo=bar&baz'), { foo: 'bar', baz: '' }); - st.deepEqual(qs.parse('cht=p3&chd=t:60,40&chs=250x100&chl=Hello|World'), { - cht: 'p3', - chd: 't:60,40', - chs: '250x100', - chl: 'Hello|World' - }); - st.end(); - }); - - t.test('allows enabling dot notation', function (st) { - st.deepEqual(qs.parse('a.b=c'), { 'a.b': 'c' }); - st.deepEqual(qs.parse('a.b=c', { allowDots: true }), { a: { b: 'c' } }); - st.end(); - }); - - t.deepEqual(qs.parse('a[b]=c'), { a: { b: 'c' } }, 'parses a single nested string'); - t.deepEqual(qs.parse('a[b][c]=d'), { a: { b: { c: 'd' } } }, 'parses a double nested string'); - t.deepEqual( - qs.parse('a[b][c][d][e][f][g][h]=i'), - { a: { b: { c: { d: { e: { f: { '[g][h]': 'i' } } } } } } }, - 'defaults to a depth of 5' - ); - - t.test('only parses one level when depth = 1', function (st) { - st.deepEqual(qs.parse('a[b][c]=d', { depth: 1 }), { a: { b: { '[c]': 'd' } } }); - st.deepEqual(qs.parse('a[b][c][d]=e', { depth: 1 }), { a: { b: { '[c][d]': 'e' } } }); - st.end(); - }); - - t.deepEqual(qs.parse('a=b&a=c'), { a: ['b', 'c'] }, 'parses a simple array'); - - t.test('parses an explicit array', function (st) { - st.deepEqual(qs.parse('a[]=b'), { a: ['b'] }); - st.deepEqual(qs.parse('a[]=b&a[]=c'), { a: ['b', 'c'] }); - st.deepEqual(qs.parse('a[]=b&a[]=c&a[]=d'), { a: ['b', 'c', 'd'] }); - st.end(); - }); - - t.test('parses a mix of simple and explicit arrays', function (st) { - st.deepEqual(qs.parse('a=b&a[]=c'), { a: ['b', 'c'] }); - st.deepEqual(qs.parse('a[]=b&a=c'), { a: ['b', 'c'] }); - st.deepEqual(qs.parse('a[0]=b&a=c'), { a: ['b', 'c'] }); - st.deepEqual(qs.parse('a=b&a[0]=c'), { a: ['b', 'c'] }); - - st.deepEqual(qs.parse('a[1]=b&a=c', { arrayLimit: 20 }), { a: ['b', 'c'] }); - st.deepEqual(qs.parse('a[]=b&a=c', { arrayLimit: 0 }), { a: ['b', 'c'] }); - st.deepEqual(qs.parse('a[]=b&a=c'), { a: ['b', 'c'] }); - - st.deepEqual(qs.parse('a=b&a[1]=c', { arrayLimit: 20 }), { a: ['b', 'c'] }); - st.deepEqual(qs.parse('a=b&a[]=c', { arrayLimit: 0 }), { a: ['b', 'c'] }); - st.deepEqual(qs.parse('a=b&a[]=c'), { a: ['b', 'c'] }); - - st.end(); - }); - - t.test('parses a nested array', function (st) { - st.deepEqual(qs.parse('a[b][]=c&a[b][]=d'), { a: { b: ['c', 'd'] } }); - st.deepEqual(qs.parse('a[>=]=25'), { a: { '>=': '25' } }); - st.end(); - }); - - t.test('allows to specify array indices', function (st) { - st.deepEqual(qs.parse('a[1]=c&a[0]=b&a[2]=d'), { a: ['b', 'c', 'd'] }); - st.deepEqual(qs.parse('a[1]=c&a[0]=b'), { a: ['b', 'c'] }); - st.deepEqual(qs.parse('a[1]=c', { arrayLimit: 20 }), { a: ['c'] }); - st.deepEqual(qs.parse('a[1]=c', { arrayLimit: 0 }), { a: { 1: 'c' } }); - st.deepEqual(qs.parse('a[1]=c'), { a: ['c'] }); - st.end(); - }); - - t.test('limits specific array indices to arrayLimit', function (st) { - st.deepEqual(qs.parse('a[20]=a', { arrayLimit: 20 }), { a: ['a'] }); - st.deepEqual(qs.parse('a[21]=a', { arrayLimit: 20 }), { a: { 21: 'a' } }); - st.end(); - }); - - t.deepEqual(qs.parse('a[12b]=c'), { a: { '12b': 'c' } }, 'supports keys that begin with a number'); - - t.test('supports encoded = signs', function (st) { - st.deepEqual(qs.parse('he%3Dllo=th%3Dere'), { 'he=llo': 'th=ere' }); - st.end(); - }); - - t.test('is ok with url encoded strings', function (st) { - st.deepEqual(qs.parse('a[b%20c]=d'), { a: { 'b c': 'd' } }); - st.deepEqual(qs.parse('a[b]=c%20d'), { a: { b: 'c d' } }); - st.end(); - }); - - t.test('allows brackets in the value', function (st) { - st.deepEqual(qs.parse('pets=["tobi"]'), { pets: '["tobi"]' }); - st.deepEqual(qs.parse('operators=[">=", "<="]'), { operators: '[">=", "<="]' }); - st.end(); - }); - - t.test('allows empty values', function (st) { - st.deepEqual(qs.parse(''), {}); - st.deepEqual(qs.parse(null), {}); - st.deepEqual(qs.parse(undefined), {}); - st.end(); - }); - - t.test('transforms arrays to objects', function (st) { - st.deepEqual(qs.parse('foo[0]=bar&foo[bad]=baz'), { foo: { 0: 'bar', bad: 'baz' } }); - st.deepEqual(qs.parse('foo[bad]=baz&foo[0]=bar'), { foo: { bad: 'baz', 0: 'bar' } }); - st.deepEqual(qs.parse('foo[bad]=baz&foo[]=bar'), { foo: { bad: 'baz', 0: 'bar' } }); - st.deepEqual(qs.parse('foo[]=bar&foo[bad]=baz'), { foo: { 0: 'bar', bad: 'baz' } }); - st.deepEqual(qs.parse('foo[bad]=baz&foo[]=bar&foo[]=foo'), { foo: { bad: 'baz', 0: 'bar', 1: 'foo' } }); - st.deepEqual(qs.parse('foo[0][a]=a&foo[0][b]=b&foo[1][a]=aa&foo[1][b]=bb'), { foo: [{ a: 'a', b: 'b' }, { a: 'aa', b: 'bb' }] }); - - st.deepEqual(qs.parse('a[]=b&a[t]=u&a[hasOwnProperty]=c', { allowPrototypes: false }), { a: { 0: 'b', t: 'u' } }); - st.deepEqual(qs.parse('a[]=b&a[t]=u&a[hasOwnProperty]=c', { allowPrototypes: true }), { a: { 0: 'b', t: 'u', hasOwnProperty: 'c' } }); - st.deepEqual(qs.parse('a[]=b&a[hasOwnProperty]=c&a[x]=y', { allowPrototypes: false }), { a: { 0: 'b', x: 'y' } }); - st.deepEqual(qs.parse('a[]=b&a[hasOwnProperty]=c&a[x]=y', { allowPrototypes: true }), { a: { 0: 'b', hasOwnProperty: 'c', x: 'y' } }); - st.end(); - }); - - t.test('transforms arrays to objects (dot notation)', function (st) { - st.deepEqual(qs.parse('foo[0].baz=bar&fool.bad=baz', { allowDots: true }), { foo: [{ baz: 'bar' }], fool: { bad: 'baz' } }); - st.deepEqual(qs.parse('foo[0].baz=bar&fool.bad.boo=baz', { allowDots: true }), { foo: [{ baz: 'bar' }], fool: { bad: { boo: 'baz' } } }); - st.deepEqual(qs.parse('foo[0][0].baz=bar&fool.bad=baz', { allowDots: true }), { foo: [[{ baz: 'bar' }]], fool: { bad: 'baz' } }); - st.deepEqual(qs.parse('foo[0].baz[0]=15&foo[0].bar=2', { allowDots: true }), { foo: [{ baz: ['15'], bar: '2' }] }); - st.deepEqual(qs.parse('foo[0].baz[0]=15&foo[0].baz[1]=16&foo[0].bar=2', { allowDots: true }), { foo: [{ baz: ['15', '16'], bar: '2' }] }); - st.deepEqual(qs.parse('foo.bad=baz&foo[0]=bar', { allowDots: true }), { foo: { bad: 'baz', 0: 'bar' } }); - st.deepEqual(qs.parse('foo.bad=baz&foo[]=bar', { allowDots: true }), { foo: { bad: 'baz', 0: 'bar' } }); - st.deepEqual(qs.parse('foo[]=bar&foo.bad=baz', { allowDots: true }), { foo: { 0: 'bar', bad: 'baz' } }); - st.deepEqual(qs.parse('foo.bad=baz&foo[]=bar&foo[]=foo', { allowDots: true }), { foo: { bad: 'baz', 0: 'bar', 1: 'foo' } }); - st.deepEqual(qs.parse('foo[0].a=a&foo[0].b=b&foo[1].a=aa&foo[1].b=bb', { allowDots: true }), { foo: [{ a: 'a', b: 'b' }, { a: 'aa', b: 'bb' }] }); - st.end(); - }); - - t.test('correctly prunes undefined values when converting an array to an object', function (st) { - st.deepEqual(qs.parse('a[2]=b&a[99999999]=c'), { a: { 2: 'b', 99999999: 'c' } }); - st.end(); - }); - - t.test('supports malformed uri characters', function (st) { - st.deepEqual(qs.parse('{%:%}', { strictNullHandling: true }), { '{%:%}': null }); - st.deepEqual(qs.parse('{%:%}='), { '{%:%}': '' }); - st.deepEqual(qs.parse('foo=%:%}'), { foo: '%:%}' }); - st.end(); - }); - - t.test('doesn\'t produce empty keys', function (st) { - st.deepEqual(qs.parse('_r=1&'), { _r: '1' }); - st.end(); - }); - - t.test('cannot access Object prototype', function (st) { - qs.parse('constructor[prototype][bad]=bad'); - qs.parse('bad[constructor][prototype][bad]=bad'); - st.equal(typeof Object.prototype.bad, 'undefined'); - st.end(); - }); - - t.test('parses arrays of objects', function (st) { - st.deepEqual(qs.parse('a[][b]=c'), { a: [{ b: 'c' }] }); - st.deepEqual(qs.parse('a[0][b]=c'), { a: [{ b: 'c' }] }); - st.end(); - }); - - t.test('allows for empty strings in arrays', function (st) { - st.deepEqual(qs.parse('a[]=b&a[]=&a[]=c'), { a: ['b', '', 'c'] }); - - st.deepEqual( - qs.parse('a[0]=b&a[1]&a[2]=c&a[19]=', { strictNullHandling: true, arrayLimit: 20 }), - { a: ['b', null, 'c', ''] }, - 'with arrayLimit 20 + array indices: null then empty string works' - ); - st.deepEqual( - qs.parse('a[]=b&a[]&a[]=c&a[]=', { strictNullHandling: true, arrayLimit: 0 }), - { a: ['b', null, 'c', ''] }, - 'with arrayLimit 0 + array brackets: null then empty string works' - ); - - st.deepEqual( - qs.parse('a[0]=b&a[1]=&a[2]=c&a[19]', { strictNullHandling: true, arrayLimit: 20 }), - { a: ['b', '', 'c', null] }, - 'with arrayLimit 20 + array indices: empty string then null works' - ); - st.deepEqual( - qs.parse('a[]=b&a[]=&a[]=c&a[]', { strictNullHandling: true, arrayLimit: 0 }), - { a: ['b', '', 'c', null] }, - 'with arrayLimit 0 + array brackets: empty string then null works' - ); - - st.deepEqual( - qs.parse('a[]=&a[]=b&a[]=c'), - { a: ['', 'b', 'c'] }, - 'array brackets: empty strings work' - ); - st.end(); - }); - - t.test('compacts sparse arrays', function (st) { - st.deepEqual(qs.parse('a[10]=1&a[2]=2', { arrayLimit: 20 }), { a: ['2', '1'] }); - st.deepEqual(qs.parse('a[1][b][2][c]=1', { arrayLimit: 20 }), { a: [{ b: [{ c: '1' }] }] }); - st.deepEqual(qs.parse('a[1][2][3][c]=1', { arrayLimit: 20 }), { a: [[[{ c: '1' }]]] }); - st.deepEqual(qs.parse('a[1][2][3][c][1]=1', { arrayLimit: 20 }), { a: [[[{ c: ['1'] }]]] }); - st.end(); - }); - - t.test('parses semi-parsed strings', function (st) { - st.deepEqual(qs.parse({ 'a[b]': 'c' }), { a: { b: 'c' } }); - st.deepEqual(qs.parse({ 'a[b]': 'c', 'a[d]': 'e' }), { a: { b: 'c', d: 'e' } }); - st.end(); - }); - - t.test('parses buffers correctly', function (st) { - var b = SaferBuffer.from('test'); - st.deepEqual(qs.parse({ a: b }), { a: b }); - st.end(); - }); - - t.test('continues parsing when no parent is found', function (st) { - st.deepEqual(qs.parse('[]=&a=b'), { 0: '', a: 'b' }); - st.deepEqual(qs.parse('[]&a=b', { strictNullHandling: true }), { 0: null, a: 'b' }); - st.deepEqual(qs.parse('[foo]=bar'), { foo: 'bar' }); - st.end(); - }); - - t.test('does not error when parsing a very long array', function (st) { - var str = 'a[]=a'; - while (Buffer.byteLength(str) < 128 * 1024) { - str = str + '&' + str; - } - - st.doesNotThrow(function () { - qs.parse(str); - }); - - st.end(); - }); - - t.test('should not throw when a native prototype has an enumerable property', { parallel: false }, function (st) { - Object.prototype.crash = ''; - Array.prototype.crash = ''; - st.doesNotThrow(qs.parse.bind(null, 'a=b')); - st.deepEqual(qs.parse('a=b'), { a: 'b' }); - st.doesNotThrow(qs.parse.bind(null, 'a[][b]=c')); - st.deepEqual(qs.parse('a[][b]=c'), { a: [{ b: 'c' }] }); - delete Object.prototype.crash; - delete Array.prototype.crash; - st.end(); - }); - - t.test('parses a string with an alternative string delimiter', function (st) { - st.deepEqual(qs.parse('a=b;c=d', { delimiter: ';' }), { a: 'b', c: 'd' }); - st.end(); - }); - - t.test('parses a string with an alternative RegExp delimiter', function (st) { - st.deepEqual(qs.parse('a=b; c=d', { delimiter: /[;,] */ }), { a: 'b', c: 'd' }); - st.end(); - }); - - t.test('does not use non-splittable objects as delimiters', function (st) { - st.deepEqual(qs.parse('a=b&c=d', { delimiter: true }), { a: 'b', c: 'd' }); - st.end(); - }); - - t.test('allows overriding parameter limit', function (st) { - st.deepEqual(qs.parse('a=b&c=d', { parameterLimit: 1 }), { a: 'b' }); - st.end(); - }); - - t.test('allows setting the parameter limit to Infinity', function (st) { - st.deepEqual(qs.parse('a=b&c=d', { parameterLimit: Infinity }), { a: 'b', c: 'd' }); - st.end(); - }); - - t.test('allows overriding array limit', function (st) { - st.deepEqual(qs.parse('a[0]=b', { arrayLimit: -1 }), { a: { 0: 'b' } }); - st.deepEqual(qs.parse('a[-1]=b', { arrayLimit: -1 }), { a: { '-1': 'b' } }); - st.deepEqual(qs.parse('a[0]=b&a[1]=c', { arrayLimit: 0 }), { a: { 0: 'b', 1: 'c' } }); - st.end(); - }); - - t.test('allows disabling array parsing', function (st) { - st.deepEqual(qs.parse('a[0]=b&a[1]=c', { parseArrays: false }), { a: { 0: 'b', 1: 'c' } }); - st.end(); - }); - - t.test('allows for query string prefix', function (st) { - st.deepEqual(qs.parse('?foo=bar', { ignoreQueryPrefix: true }), { foo: 'bar' }); - st.deepEqual(qs.parse('foo=bar', { ignoreQueryPrefix: true }), { foo: 'bar' }); - st.deepEqual(qs.parse('?foo=bar', { ignoreQueryPrefix: false }), { '?foo': 'bar' }); - st.end(); - }); - - t.test('parses an object', function (st) { - var input = { - 'user[name]': { 'pop[bob]': 3 }, - 'user[email]': null - }; - - var expected = { - user: { - name: { 'pop[bob]': 3 }, - email: null - } - }; - - var result = qs.parse(input); - - st.deepEqual(result, expected); - st.end(); - }); - - t.test('parses an object in dot notation', function (st) { - var input = { - 'user.name': { 'pop[bob]': 3 }, - 'user.email.': null - }; - - var expected = { - user: { - name: { 'pop[bob]': 3 }, - email: null - } - }; - - var result = qs.parse(input, { allowDots: true }); - - st.deepEqual(result, expected); - st.end(); - }); - - t.test('parses an object and not child values', function (st) { - var input = { - 'user[name]': { 'pop[bob]': { test: 3 } }, - 'user[email]': null - }; - - var expected = { - user: { - name: { 'pop[bob]': { test: 3 } }, - email: null - } - }; - - var result = qs.parse(input); - - st.deepEqual(result, expected); - st.end(); - }); - - t.test('does not blow up when Buffer global is missing', function (st) { - var tempBuffer = global.Buffer; - delete global.Buffer; - var result = qs.parse('a=b&c=d'); - global.Buffer = tempBuffer; - st.deepEqual(result, { a: 'b', c: 'd' }); - st.end(); - }); - - t.test('does not crash when parsing circular references', function (st) { - var a = {}; - a.b = a; - - var parsed; - - st.doesNotThrow(function () { - parsed = qs.parse({ 'foo[bar]': 'baz', 'foo[baz]': a }); - }); - - st.equal('foo' in parsed, true, 'parsed has "foo" property'); - st.equal('bar' in parsed.foo, true); - st.equal('baz' in parsed.foo, true); - st.equal(parsed.foo.bar, 'baz'); - st.deepEqual(parsed.foo.baz, a); - st.end(); - }); - - t.test('does not crash when parsing deep objects', function (st) { - var parsed; - var str = 'foo'; - - for (var i = 0; i < 5000; i++) { - str += '[p]'; - } - - str += '=bar'; - - st.doesNotThrow(function () { - parsed = qs.parse(str, { depth: 5000 }); - }); - - st.equal('foo' in parsed, true, 'parsed has "foo" property'); - - var depth = 0; - var ref = parsed.foo; - while ((ref = ref.p)) { - depth += 1; - } - - st.equal(depth, 5000, 'parsed is 5000 properties deep'); - - st.end(); - }); - - t.test('parses null objects correctly', { skip: !Object.create }, function (st) { - var a = Object.create(null); - a.b = 'c'; - - st.deepEqual(qs.parse(a), { b: 'c' }); - var result = qs.parse({ a: a }); - st.equal('a' in result, true, 'result has "a" property'); - st.deepEqual(result.a, a); - st.end(); - }); - - t.test('parses dates correctly', function (st) { - var now = new Date(); - st.deepEqual(qs.parse({ a: now }), { a: now }); - st.end(); - }); - - t.test('parses regular expressions correctly', function (st) { - var re = /^test$/; - st.deepEqual(qs.parse({ a: re }), { a: re }); - st.end(); - }); - - t.test('does not allow overwriting prototype properties', function (st) { - st.deepEqual(qs.parse('a[hasOwnProperty]=b', { allowPrototypes: false }), {}); - st.deepEqual(qs.parse('hasOwnProperty=b', { allowPrototypes: false }), {}); - - st.deepEqual( - qs.parse('toString', { allowPrototypes: false }), - {}, - 'bare "toString" results in {}' - ); - - st.end(); - }); - - t.test('can allow overwriting prototype properties', function (st) { - st.deepEqual(qs.parse('a[hasOwnProperty]=b', { allowPrototypes: true }), { a: { hasOwnProperty: 'b' } }); - st.deepEqual(qs.parse('hasOwnProperty=b', { allowPrototypes: true }), { hasOwnProperty: 'b' }); - - st.deepEqual( - qs.parse('toString', { allowPrototypes: true }), - { toString: '' }, - 'bare "toString" results in { toString: "" }' - ); - - st.end(); - }); - - t.test('params starting with a closing bracket', function (st) { - st.deepEqual(qs.parse(']=toString'), { ']': 'toString' }); - st.deepEqual(qs.parse(']]=toString'), { ']]': 'toString' }); - st.deepEqual(qs.parse(']hello]=toString'), { ']hello]': 'toString' }); - st.end(); - }); - - t.test('params starting with a starting bracket', function (st) { - st.deepEqual(qs.parse('[=toString'), { '[': 'toString' }); - st.deepEqual(qs.parse('[[=toString'), { '[[': 'toString' }); - st.deepEqual(qs.parse('[hello[=toString'), { '[hello[': 'toString' }); - st.end(); - }); - - t.test('add keys to objects', function (st) { - st.deepEqual( - qs.parse('a[b]=c&a=d'), - { a: { b: 'c', d: true } }, - 'can add keys to objects' - ); - - st.deepEqual( - qs.parse('a[b]=c&a=toString'), - { a: { b: 'c' } }, - 'can not overwrite prototype' - ); - - st.deepEqual( - qs.parse('a[b]=c&a=toString', { allowPrototypes: true }), - { a: { b: 'c', toString: true } }, - 'can overwrite prototype with allowPrototypes true' - ); - - st.deepEqual( - qs.parse('a[b]=c&a=toString', { plainObjects: true }), - { a: { b: 'c', toString: true } }, - 'can overwrite prototype with plainObjects true' - ); - - st.end(); - }); - - t.test('can return null objects', { skip: !Object.create }, function (st) { - var expected = Object.create(null); - expected.a = Object.create(null); - expected.a.b = 'c'; - expected.a.hasOwnProperty = 'd'; - st.deepEqual(qs.parse('a[b]=c&a[hasOwnProperty]=d', { plainObjects: true }), expected); - st.deepEqual(qs.parse(null, { plainObjects: true }), Object.create(null)); - var expectedArray = Object.create(null); - expectedArray.a = Object.create(null); - expectedArray.a[0] = 'b'; - expectedArray.a.c = 'd'; - st.deepEqual(qs.parse('a[]=b&a[c]=d', { plainObjects: true }), expectedArray); - st.end(); - }); - - t.test('can parse with custom encoding', function (st) { - st.deepEqual(qs.parse('%8c%a7=%91%e5%8d%e3%95%7b', { - decoder: function (str) { - var reg = /%([0-9A-F]{2})/ig; - var result = []; - var parts = reg.exec(str); - while (parts) { - result.push(parseInt(parts[1], 16)); - parts = reg.exec(str); - } - return iconv.decode(SaferBuffer.from(result), 'shift_jis').toString(); - } - }), { 県: '大阪府' }); - st.end(); - }); - - t.test('receives the default decoder as a second argument', function (st) { - st.plan(1); - qs.parse('a', { - decoder: function (str, defaultDecoder) { - st.equal(defaultDecoder, utils.decode); - } - }); - st.end(); - }); - - t.test('throws error with wrong decoder', function (st) { - st['throws'](function () { - qs.parse({}, { decoder: 'string' }); - }, new TypeError('Decoder has to be a function.')); - st.end(); - }); - - t.test('does not mutate the options argument', function (st) { - var options = {}; - qs.parse('a[b]=true', options); - st.deepEqual(options, {}); - st.end(); - }); - - t.end(); -}); diff --git a/deps/npm/node_modules/qs/test/stringify.js b/deps/npm/node_modules/qs/test/stringify.js deleted file mode 100644 index 165ac621fe3882..00000000000000 --- a/deps/npm/node_modules/qs/test/stringify.js +++ /dev/null @@ -1,597 +0,0 @@ -'use strict'; - -var test = require('tape'); -var qs = require('../'); -var utils = require('../lib/utils'); -var iconv = require('iconv-lite'); -var SaferBuffer = require('safer-buffer').Buffer; - -test('stringify()', function (t) { - t.test('stringifies a querystring object', function (st) { - st.equal(qs.stringify({ a: 'b' }), 'a=b'); - st.equal(qs.stringify({ a: 1 }), 'a=1'); - st.equal(qs.stringify({ a: 1, b: 2 }), 'a=1&b=2'); - st.equal(qs.stringify({ a: 'A_Z' }), 'a=A_Z'); - st.equal(qs.stringify({ a: '€' }), 'a=%E2%82%AC'); - st.equal(qs.stringify({ a: '' }), 'a=%EE%80%80'); - st.equal(qs.stringify({ a: 'א' }), 'a=%D7%90'); - st.equal(qs.stringify({ a: '𐐷' }), 'a=%F0%90%90%B7'); - st.end(); - }); - - t.test('adds query prefix', function (st) { - st.equal(qs.stringify({ a: 'b' }, { addQueryPrefix: true }), '?a=b'); - st.end(); - }); - - t.test('with query prefix, outputs blank string given an empty object', function (st) { - st.equal(qs.stringify({}, { addQueryPrefix: true }), ''); - st.end(); - }); - - t.test('stringifies a nested object', function (st) { - st.equal(qs.stringify({ a: { b: 'c' } }), 'a%5Bb%5D=c'); - st.equal(qs.stringify({ a: { b: { c: { d: 'e' } } } }), 'a%5Bb%5D%5Bc%5D%5Bd%5D=e'); - st.end(); - }); - - t.test('stringifies a nested object with dots notation', function (st) { - st.equal(qs.stringify({ a: { b: 'c' } }, { allowDots: true }), 'a.b=c'); - st.equal(qs.stringify({ a: { b: { c: { d: 'e' } } } }, { allowDots: true }), 'a.b.c.d=e'); - st.end(); - }); - - t.test('stringifies an array value', function (st) { - st.equal( - qs.stringify({ a: ['b', 'c', 'd'] }, { arrayFormat: 'indices' }), - 'a%5B0%5D=b&a%5B1%5D=c&a%5B2%5D=d', - 'indices => indices' - ); - st.equal( - qs.stringify({ a: ['b', 'c', 'd'] }, { arrayFormat: 'brackets' }), - 'a%5B%5D=b&a%5B%5D=c&a%5B%5D=d', - 'brackets => brackets' - ); - st.equal( - qs.stringify({ a: ['b', 'c', 'd'] }), - 'a%5B0%5D=b&a%5B1%5D=c&a%5B2%5D=d', - 'default => indices' - ); - st.end(); - }); - - t.test('omits nulls when asked', function (st) { - st.equal(qs.stringify({ a: 'b', c: null }, { skipNulls: true }), 'a=b'); - st.end(); - }); - - t.test('omits nested nulls when asked', function (st) { - st.equal(qs.stringify({ a: { b: 'c', d: null } }, { skipNulls: true }), 'a%5Bb%5D=c'); - st.end(); - }); - - t.test('omits array indices when asked', function (st) { - st.equal(qs.stringify({ a: ['b', 'c', 'd'] }, { indices: false }), 'a=b&a=c&a=d'); - st.end(); - }); - - t.test('stringifies a nested array value', function (st) { - st.equal(qs.stringify({ a: { b: ['c', 'd'] } }, { arrayFormat: 'indices' }), 'a%5Bb%5D%5B0%5D=c&a%5Bb%5D%5B1%5D=d'); - st.equal(qs.stringify({ a: { b: ['c', 'd'] } }, { arrayFormat: 'brackets' }), 'a%5Bb%5D%5B%5D=c&a%5Bb%5D%5B%5D=d'); - st.equal(qs.stringify({ a: { b: ['c', 'd'] } }), 'a%5Bb%5D%5B0%5D=c&a%5Bb%5D%5B1%5D=d'); - st.end(); - }); - - t.test('stringifies a nested array value with dots notation', function (st) { - st.equal( - qs.stringify( - { a: { b: ['c', 'd'] } }, - { allowDots: true, encode: false, arrayFormat: 'indices' } - ), - 'a.b[0]=c&a.b[1]=d', - 'indices: stringifies with dots + indices' - ); - st.equal( - qs.stringify( - { a: { b: ['c', 'd'] } }, - { allowDots: true, encode: false, arrayFormat: 'brackets' } - ), - 'a.b[]=c&a.b[]=d', - 'brackets: stringifies with dots + brackets' - ); - st.equal( - qs.stringify( - { a: { b: ['c', 'd'] } }, - { allowDots: true, encode: false } - ), - 'a.b[0]=c&a.b[1]=d', - 'default: stringifies with dots + indices' - ); - st.end(); - }); - - t.test('stringifies an object inside an array', function (st) { - st.equal( - qs.stringify({ a: [{ b: 'c' }] }, { arrayFormat: 'indices' }), - 'a%5B0%5D%5Bb%5D=c', - 'indices => brackets' - ); - st.equal( - qs.stringify({ a: [{ b: 'c' }] }, { arrayFormat: 'brackets' }), - 'a%5B%5D%5Bb%5D=c', - 'brackets => brackets' - ); - st.equal( - qs.stringify({ a: [{ b: 'c' }] }), - 'a%5B0%5D%5Bb%5D=c', - 'default => indices' - ); - - st.equal( - qs.stringify({ a: [{ b: { c: [1] } }] }, { arrayFormat: 'indices' }), - 'a%5B0%5D%5Bb%5D%5Bc%5D%5B0%5D=1', - 'indices => indices' - ); - - st.equal( - qs.stringify({ a: [{ b: { c: [1] } }] }, { arrayFormat: 'brackets' }), - 'a%5B%5D%5Bb%5D%5Bc%5D%5B%5D=1', - 'brackets => brackets' - ); - - st.equal( - qs.stringify({ a: [{ b: { c: [1] } }] }), - 'a%5B0%5D%5Bb%5D%5Bc%5D%5B0%5D=1', - 'default => indices' - ); - - st.end(); - }); - - t.test('stringifies an array with mixed objects and primitives', function (st) { - st.equal( - qs.stringify({ a: [{ b: 1 }, 2, 3] }, { encode: false, arrayFormat: 'indices' }), - 'a[0][b]=1&a[1]=2&a[2]=3', - 'indices => indices' - ); - st.equal( - qs.stringify({ a: [{ b: 1 }, 2, 3] }, { encode: false, arrayFormat: 'brackets' }), - 'a[][b]=1&a[]=2&a[]=3', - 'brackets => brackets' - ); - st.equal( - qs.stringify({ a: [{ b: 1 }, 2, 3] }, { encode: false }), - 'a[0][b]=1&a[1]=2&a[2]=3', - 'default => indices' - ); - - st.end(); - }); - - t.test('stringifies an object inside an array with dots notation', function (st) { - st.equal( - qs.stringify( - { a: [{ b: 'c' }] }, - { allowDots: true, encode: false, arrayFormat: 'indices' } - ), - 'a[0].b=c', - 'indices => indices' - ); - st.equal( - qs.stringify( - { a: [{ b: 'c' }] }, - { allowDots: true, encode: false, arrayFormat: 'brackets' } - ), - 'a[].b=c', - 'brackets => brackets' - ); - st.equal( - qs.stringify( - { a: [{ b: 'c' }] }, - { allowDots: true, encode: false } - ), - 'a[0].b=c', - 'default => indices' - ); - - st.equal( - qs.stringify( - { a: [{ b: { c: [1] } }] }, - { allowDots: true, encode: false, arrayFormat: 'indices' } - ), - 'a[0].b.c[0]=1', - 'indices => indices' - ); - st.equal( - qs.stringify( - { a: [{ b: { c: [1] } }] }, - { allowDots: true, encode: false, arrayFormat: 'brackets' } - ), - 'a[].b.c[]=1', - 'brackets => brackets' - ); - st.equal( - qs.stringify( - { a: [{ b: { c: [1] } }] }, - { allowDots: true, encode: false } - ), - 'a[0].b.c[0]=1', - 'default => indices' - ); - - st.end(); - }); - - t.test('does not omit object keys when indices = false', function (st) { - st.equal(qs.stringify({ a: [{ b: 'c' }] }, { indices: false }), 'a%5Bb%5D=c'); - st.end(); - }); - - t.test('uses indices notation for arrays when indices=true', function (st) { - st.equal(qs.stringify({ a: ['b', 'c'] }, { indices: true }), 'a%5B0%5D=b&a%5B1%5D=c'); - st.end(); - }); - - t.test('uses indices notation for arrays when no arrayFormat is specified', function (st) { - st.equal(qs.stringify({ a: ['b', 'c'] }), 'a%5B0%5D=b&a%5B1%5D=c'); - st.end(); - }); - - t.test('uses indices notation for arrays when no arrayFormat=indices', function (st) { - st.equal(qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'indices' }), 'a%5B0%5D=b&a%5B1%5D=c'); - st.end(); - }); - - t.test('uses repeat notation for arrays when no arrayFormat=repeat', function (st) { - st.equal(qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' }), 'a=b&a=c'); - st.end(); - }); - - t.test('uses brackets notation for arrays when no arrayFormat=brackets', function (st) { - st.equal(qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'brackets' }), 'a%5B%5D=b&a%5B%5D=c'); - st.end(); - }); - - t.test('stringifies a complicated object', function (st) { - st.equal(qs.stringify({ a: { b: 'c', d: 'e' } }), 'a%5Bb%5D=c&a%5Bd%5D=e'); - st.end(); - }); - - t.test('stringifies an empty value', function (st) { - st.equal(qs.stringify({ a: '' }), 'a='); - st.equal(qs.stringify({ a: null }, { strictNullHandling: true }), 'a'); - - st.equal(qs.stringify({ a: '', b: '' }), 'a=&b='); - st.equal(qs.stringify({ a: null, b: '' }, { strictNullHandling: true }), 'a&b='); - - st.equal(qs.stringify({ a: { b: '' } }), 'a%5Bb%5D='); - st.equal(qs.stringify({ a: { b: null } }, { strictNullHandling: true }), 'a%5Bb%5D'); - st.equal(qs.stringify({ a: { b: null } }, { strictNullHandling: false }), 'a%5Bb%5D='); - - st.end(); - }); - - t.test('stringifies a null object', { skip: !Object.create }, function (st) { - var obj = Object.create(null); - obj.a = 'b'; - st.equal(qs.stringify(obj), 'a=b'); - st.end(); - }); - - t.test('returns an empty string for invalid input', function (st) { - st.equal(qs.stringify(undefined), ''); - st.equal(qs.stringify(false), ''); - st.equal(qs.stringify(null), ''); - st.equal(qs.stringify(''), ''); - st.end(); - }); - - t.test('stringifies an object with a null object as a child', { skip: !Object.create }, function (st) { - var obj = { a: Object.create(null) }; - - obj.a.b = 'c'; - st.equal(qs.stringify(obj), 'a%5Bb%5D=c'); - st.end(); - }); - - t.test('drops keys with a value of undefined', function (st) { - st.equal(qs.stringify({ a: undefined }), ''); - - st.equal(qs.stringify({ a: { b: undefined, c: null } }, { strictNullHandling: true }), 'a%5Bc%5D'); - st.equal(qs.stringify({ a: { b: undefined, c: null } }, { strictNullHandling: false }), 'a%5Bc%5D='); - st.equal(qs.stringify({ a: { b: undefined, c: '' } }), 'a%5Bc%5D='); - st.end(); - }); - - t.test('url encodes values', function (st) { - st.equal(qs.stringify({ a: 'b c' }), 'a=b%20c'); - st.end(); - }); - - t.test('stringifies a date', function (st) { - var now = new Date(); - var str = 'a=' + encodeURIComponent(now.toISOString()); - st.equal(qs.stringify({ a: now }), str); - st.end(); - }); - - t.test('stringifies the weird object from qs', function (st) { - st.equal(qs.stringify({ 'my weird field': '~q1!2"\'w$5&7/z8)?' }), 'my%20weird%20field=~q1%212%22%27w%245%267%2Fz8%29%3F'); - st.end(); - }); - - t.test('skips properties that are part of the object prototype', function (st) { - Object.prototype.crash = 'test'; - st.equal(qs.stringify({ a: 'b' }), 'a=b'); - st.equal(qs.stringify({ a: { b: 'c' } }), 'a%5Bb%5D=c'); - delete Object.prototype.crash; - st.end(); - }); - - t.test('stringifies boolean values', function (st) { - st.equal(qs.stringify({ a: true }), 'a=true'); - st.equal(qs.stringify({ a: { b: true } }), 'a%5Bb%5D=true'); - st.equal(qs.stringify({ b: false }), 'b=false'); - st.equal(qs.stringify({ b: { c: false } }), 'b%5Bc%5D=false'); - st.end(); - }); - - t.test('stringifies buffer values', function (st) { - st.equal(qs.stringify({ a: SaferBuffer.from('test') }), 'a=test'); - st.equal(qs.stringify({ a: { b: SaferBuffer.from('test') } }), 'a%5Bb%5D=test'); - st.end(); - }); - - t.test('stringifies an object using an alternative delimiter', function (st) { - st.equal(qs.stringify({ a: 'b', c: 'd' }, { delimiter: ';' }), 'a=b;c=d'); - st.end(); - }); - - t.test('doesn\'t blow up when Buffer global is missing', function (st) { - var tempBuffer = global.Buffer; - delete global.Buffer; - var result = qs.stringify({ a: 'b', c: 'd' }); - global.Buffer = tempBuffer; - st.equal(result, 'a=b&c=d'); - st.end(); - }); - - t.test('selects properties when filter=array', function (st) { - st.equal(qs.stringify({ a: 'b' }, { filter: ['a'] }), 'a=b'); - st.equal(qs.stringify({ a: 1 }, { filter: [] }), ''); - - st.equal( - qs.stringify( - { a: { b: [1, 2, 3, 4], c: 'd' }, c: 'f' }, - { filter: ['a', 'b', 0, 2], arrayFormat: 'indices' } - ), - 'a%5Bb%5D%5B0%5D=1&a%5Bb%5D%5B2%5D=3', - 'indices => indices' - ); - st.equal( - qs.stringify( - { a: { b: [1, 2, 3, 4], c: 'd' }, c: 'f' }, - { filter: ['a', 'b', 0, 2], arrayFormat: 'brackets' } - ), - 'a%5Bb%5D%5B%5D=1&a%5Bb%5D%5B%5D=3', - 'brackets => brackets' - ); - st.equal( - qs.stringify( - { a: { b: [1, 2, 3, 4], c: 'd' }, c: 'f' }, - { filter: ['a', 'b', 0, 2] } - ), - 'a%5Bb%5D%5B0%5D=1&a%5Bb%5D%5B2%5D=3', - 'default => indices' - ); - - st.end(); - }); - - t.test('supports custom representations when filter=function', function (st) { - var calls = 0; - var obj = { a: 'b', c: 'd', e: { f: new Date(1257894000000) } }; - var filterFunc = function (prefix, value) { - calls += 1; - if (calls === 1) { - st.equal(prefix, '', 'prefix is empty'); - st.equal(value, obj); - } else if (prefix === 'c') { - return void 0; - } else if (value instanceof Date) { - st.equal(prefix, 'e[f]'); - return value.getTime(); - } - return value; - }; - - st.equal(qs.stringify(obj, { filter: filterFunc }), 'a=b&e%5Bf%5D=1257894000000'); - st.equal(calls, 5); - st.end(); - }); - - t.test('can disable uri encoding', function (st) { - st.equal(qs.stringify({ a: 'b' }, { encode: false }), 'a=b'); - st.equal(qs.stringify({ a: { b: 'c' } }, { encode: false }), 'a[b]=c'); - st.equal(qs.stringify({ a: 'b', c: null }, { strictNullHandling: true, encode: false }), 'a=b&c'); - st.end(); - }); - - t.test('can sort the keys', function (st) { - var sort = function (a, b) { - return a.localeCompare(b); - }; - st.equal(qs.stringify({ a: 'c', z: 'y', b: 'f' }, { sort: sort }), 'a=c&b=f&z=y'); - st.equal(qs.stringify({ a: 'c', z: { j: 'a', i: 'b' }, b: 'f' }, { sort: sort }), 'a=c&b=f&z%5Bi%5D=b&z%5Bj%5D=a'); - st.end(); - }); - - t.test('can sort the keys at depth 3 or more too', function (st) { - var sort = function (a, b) { - return a.localeCompare(b); - }; - st.equal( - qs.stringify( - { a: 'a', z: { zj: { zjb: 'zjb', zja: 'zja' }, zi: { zib: 'zib', zia: 'zia' } }, b: 'b' }, - { sort: sort, encode: false } - ), - 'a=a&b=b&z[zi][zia]=zia&z[zi][zib]=zib&z[zj][zja]=zja&z[zj][zjb]=zjb' - ); - st.equal( - qs.stringify( - { a: 'a', z: { zj: { zjb: 'zjb', zja: 'zja' }, zi: { zib: 'zib', zia: 'zia' } }, b: 'b' }, - { sort: null, encode: false } - ), - 'a=a&z[zj][zjb]=zjb&z[zj][zja]=zja&z[zi][zib]=zib&z[zi][zia]=zia&b=b' - ); - st.end(); - }); - - t.test('can stringify with custom encoding', function (st) { - st.equal(qs.stringify({ 県: '大阪府', '': '' }, { - encoder: function (str) { - if (str.length === 0) { - return ''; - } - var buf = iconv.encode(str, 'shiftjis'); - var result = []; - for (var i = 0; i < buf.length; ++i) { - result.push(buf.readUInt8(i).toString(16)); - } - return '%' + result.join('%'); - } - }), '%8c%a7=%91%e5%8d%e3%95%7b&='); - st.end(); - }); - - t.test('receives the default encoder as a second argument', function (st) { - st.plan(2); - qs.stringify({ a: 1 }, { - encoder: function (str, defaultEncoder) { - st.equal(defaultEncoder, utils.encode); - } - }); - st.end(); - }); - - t.test('throws error with wrong encoder', function (st) { - st['throws'](function () { - qs.stringify({}, { encoder: 'string' }); - }, new TypeError('Encoder has to be a function.')); - st.end(); - }); - - t.test('can use custom encoder for a buffer object', { skip: typeof Buffer === 'undefined' }, function (st) { - st.equal(qs.stringify({ a: SaferBuffer.from([1]) }, { - encoder: function (buffer) { - if (typeof buffer === 'string') { - return buffer; - } - return String.fromCharCode(buffer.readUInt8(0) + 97); - } - }), 'a=b'); - st.end(); - }); - - t.test('serializeDate option', function (st) { - var date = new Date(); - st.equal( - qs.stringify({ a: date }), - 'a=' + date.toISOString().replace(/:/g, '%3A'), - 'default is toISOString' - ); - - var mutatedDate = new Date(); - mutatedDate.toISOString = function () { - throw new SyntaxError(); - }; - st['throws'](function () { - mutatedDate.toISOString(); - }, SyntaxError); - st.equal( - qs.stringify({ a: mutatedDate }), - 'a=' + Date.prototype.toISOString.call(mutatedDate).replace(/:/g, '%3A'), - 'toISOString works even when method is not locally present' - ); - - var specificDate = new Date(6); - st.equal( - qs.stringify( - { a: specificDate }, - { serializeDate: function (d) { return d.getTime() * 7; } } - ), - 'a=42', - 'custom serializeDate function called' - ); - - st.end(); - }); - - t.test('RFC 1738 spaces serialization', function (st) { - st.equal(qs.stringify({ a: 'b c' }, { format: qs.formats.RFC1738 }), 'a=b+c'); - st.equal(qs.stringify({ 'a b': 'c d' }, { format: qs.formats.RFC1738 }), 'a+b=c+d'); - st.end(); - }); - - t.test('RFC 3986 spaces serialization', function (st) { - st.equal(qs.stringify({ a: 'b c' }, { format: qs.formats.RFC3986 }), 'a=b%20c'); - st.equal(qs.stringify({ 'a b': 'c d' }, { format: qs.formats.RFC3986 }), 'a%20b=c%20d'); - st.end(); - }); - - t.test('Backward compatibility to RFC 3986', function (st) { - st.equal(qs.stringify({ a: 'b c' }), 'a=b%20c'); - st.end(); - }); - - t.test('Edge cases and unknown formats', function (st) { - ['UFO1234', false, 1234, null, {}, []].forEach( - function (format) { - st['throws']( - function () { - qs.stringify({ a: 'b c' }, { format: format }); - }, - new TypeError('Unknown format option provided.') - ); - } - ); - st.end(); - }); - - t.test('encodeValuesOnly', function (st) { - st.equal( - qs.stringify( - { a: 'b', c: ['d', 'e=f'], f: [['g'], ['h']] }, - { encodeValuesOnly: true } - ), - 'a=b&c[0]=d&c[1]=e%3Df&f[0][0]=g&f[1][0]=h' - ); - st.equal( - qs.stringify( - { a: 'b', c: ['d', 'e'], f: [['g'], ['h']] } - ), - 'a=b&c%5B0%5D=d&c%5B1%5D=e&f%5B0%5D%5B0%5D=g&f%5B1%5D%5B0%5D=h' - ); - st.end(); - }); - - t.test('encodeValuesOnly - strictNullHandling', function (st) { - st.equal( - qs.stringify( - { a: { b: null } }, - { encodeValuesOnly: true, strictNullHandling: true } - ), - 'a[b]' - ); - st.end(); - }); - - t.test('does not mutate the options argument', function (st) { - var options = {}; - qs.stringify({}, options); - st.deepEqual(options, {}); - st.end(); - }); - - t.end(); -}); diff --git a/deps/npm/node_modules/qs/test/utils.js b/deps/npm/node_modules/qs/test/utils.js deleted file mode 100644 index eff4011a401c3d..00000000000000 --- a/deps/npm/node_modules/qs/test/utils.js +++ /dev/null @@ -1,34 +0,0 @@ -'use strict'; - -var test = require('tape'); -var utils = require('../lib/utils'); - -test('merge()', function (t) { - t.deepEqual(utils.merge({ a: 'b' }, { a: 'c' }), { a: ['b', 'c'] }, 'merges two objects with the same key'); - - var oneMerged = utils.merge({ foo: 'bar' }, { foo: { first: '123' } }); - t.deepEqual(oneMerged, { foo: ['bar', { first: '123' }] }, 'merges a standalone and an object into an array'); - - var twoMerged = utils.merge({ foo: ['bar', { first: '123' }] }, { foo: { second: '456' } }); - t.deepEqual(twoMerged, { foo: { 0: 'bar', 1: { first: '123' }, second: '456' } }, 'merges a standalone and two objects into an array'); - - var sandwiched = utils.merge({ foo: ['bar', { first: '123', second: '456' }] }, { foo: 'baz' }); - t.deepEqual(sandwiched, { foo: ['bar', { first: '123', second: '456' }, 'baz'] }, 'merges an object sandwiched by two standalones into an array'); - - var nestedArrays = utils.merge({ foo: ['baz'] }, { foo: ['bar', 'xyzzy'] }); - t.deepEqual(nestedArrays, { foo: ['baz', 'bar', 'xyzzy'] }); - - t.end(); -}); - -test('assign()', function (t) { - var target = { a: 1, b: 2 }; - var source = { b: 3, c: 4 }; - var result = utils.assign(target, source); - - t.equal(result, target, 'returns the target'); - t.deepEqual(target, { a: 1, b: 3, c: 4 }, 'target and source are merged'); - t.deepEqual(source, { b: 3, c: 4 }, 'source is untouched'); - - t.end(); -}); diff --git a/deps/npm/node_modules/read-cmd-shim/LICENSE b/deps/npm/node_modules/read-cmd-shim/LICENSE deleted file mode 100644 index f4be44d881b2d9..00000000000000 --- a/deps/npm/node_modules/read-cmd-shim/LICENSE +++ /dev/null @@ -1,14 +0,0 @@ -Copyright (c) 2015, Rebecca Turner - -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/deps/npm/node_modules/read-cmd-shim/README.md b/deps/npm/node_modules/read-cmd-shim/README.md deleted file mode 100644 index 457e36e35fca55..00000000000000 --- a/deps/npm/node_modules/read-cmd-shim/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# read-cmd-shim - -Figure out what a [`cmd-shim`](https://github.com/ForbesLindesay/cmd-shim) -is pointing at. This acts as the equivalent of -[`fs.readlink`](https://nodejs.org/api/fs.html#fs_fs_readlink_path_callback). - -### Usage - -``` -const readCmdShim = require('read-cmd-shim') - -readCmdShim('/path/to/shim.cmd').then(destination => { - … -}) - -const destination = readCmdShim.sync('/path/to/shim.cmd') -``` - -### readCmdShim(path) -> Promise - -Reads the `cmd-shim` located at `path` and resolves with the _relative_ -path that the shim points at. Consider this as roughly the equivalent of -`fs.readlink`. - -This can read both `.cmd` style that are run by the Windows Command Prompt -and Powershell, and the kind without any extension that are used by Cygwin. - -This can return errors that `fs.readFile` returns, except that they'll -include a stack trace from where `readCmdShim` was called. Plus it can -return a special `ENOTASHIM` exception, when it can't find a cmd-shim in the -file referenced by `path`. This should only happen if you pass in a -non-command shim. - -### readCmdShim.sync(path) - -Same as above but synchronous. Errors are thrown. diff --git a/deps/npm/node_modules/read-cmd-shim/index.js b/deps/npm/node_modules/read-cmd-shim/index.js deleted file mode 100644 index 4ac050fc3846e0..00000000000000 --- a/deps/npm/node_modules/read-cmd-shim/index.js +++ /dev/null @@ -1,69 +0,0 @@ -const fs = require('fs') -const {promisify} = require('util') -const {readFileSync} = fs -const readFile = promisify(fs.readFile) - -const extractPath = (path, cmdshimContents) => { - if (/[.]cmd$/.test(path)) { - return extractPathFromCmd(cmdshimContents) - } else if (/[.]ps1$/.test(path)) { - return extractPathFromPowershell(cmdshimContents) - } else { - return extractPathFromCygwin(cmdshimContents) - } -} - -const extractPathFromPowershell = cmdshimContents => { - const matches = cmdshimContents.match(/"[$]basedir[/]([^"]+?)"\s+[$]args/) - return matches && matches[1] -} - -const extractPathFromCmd = cmdshimContents => { - const matches = cmdshimContents.match(/"%(?:~dp0|dp0%)\\([^"]+?)"\s+%[*]/) - return matches && matches[1] -} - -const extractPathFromCygwin = cmdshimContents => { - const matches = cmdshimContents.match(/"[$]basedir[/]([^"]+?)"\s+"[$]@"/) - return matches && matches[1] -} - -const wrapError = (thrown, newError) => { - newError.message = thrown.message - newError.code = thrown.code - newError.path = thrown.path - return newError -} - -const notaShim = (path, er) => { - if (!er) { - er = new Error() - Error.captureStackTrace(er, notaShim) - } - er.code = 'ENOTASHIM' - er.message = `Can't read shim path from '${path}', ` + - `it doesn't appear to be a cmd-shim` - return er -} - -const readCmdShim = path => { - // create a new error to capture the stack trace from this point, - // instead of getting some opaque stack into node's internals - const er = new Error() - Error.captureStackTrace(er, readCmdShim) - return readFile(path).then(contents => { - const destination = extractPath(path, contents.toString()) - if (destination) return destination - return Promise.reject(notaShim(path, er)) - }, readFileEr => Promise.reject(wrapError(readFileEr, er))) -} - -const readCmdShimSync = path => { - const contents = readFileSync(path) - const destination = extractPath(path, contents.toString()) - if (!destination) throw notaShim(path) - return destination -} - -readCmdShim.sync = readCmdShimSync -module.exports = readCmdShim diff --git a/deps/npm/node_modules/read-cmd-shim/package.json b/deps/npm/node_modules/read-cmd-shim/package.json deleted file mode 100644 index 2a76dc3b1632ed..00000000000000 --- a/deps/npm/node_modules/read-cmd-shim/package.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "read-cmd-shim", - "version": "2.0.0", - "description": "Figure out what a cmd-shim is pointing at. This acts as the equivalent of fs.readlink.", - "main": "index.js", - "devDependencies": { - "cmd-shim": "^4.0.0", - "rimraf": "^3.0.0", - "tap": "^14.10.6" - }, - "scripts": { - "preversion": "npm t", - "postversion": "npm publish", - "prepublishOnly": "git push --follow-tags", - "test": "tap" - }, - "tap": { - "check-coverage": true - }, - "repository": { - "type": "git", - "url": "git+https://github.com/npm/read-cmd-shim.git" - }, - "license": "ISC", - "homepage": "https://github.com/npm/read-cmd-shim#readme", - "files": [ - "index.js" - ] -} diff --git a/deps/npm/node_modules/read-package-json-fast/LICENSE b/deps/npm/node_modules/read-package-json-fast/LICENSE deleted file mode 100644 index 20a47625409237..00000000000000 --- a/deps/npm/node_modules/read-package-json-fast/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -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/deps/npm/node_modules/read-package-json-fast/README.md b/deps/npm/node_modules/read-package-json-fast/README.md deleted file mode 100644 index 5ab6adbece8259..00000000000000 --- a/deps/npm/node_modules/read-package-json-fast/README.md +++ /dev/null @@ -1,79 +0,0 @@ -# read-package-json-fast - -Like [`read-package-json`](http://npm.im/read-package-json), but faster and -more accepting of "missing" data. - -This is only suitable for reading package.json files in a node_modules -tree, since it doesn't do the various cleanups, normalization, and warnings -that are beneficial at the root level in a package being published. - -## USAGE - -```js -const rpj = require('read-package-json-fast') - -// typical promisey type API -rpj('/path/to/package.json') - .then(data => ...) - .catch(er => ...) - -// or just normalize a package manifest -const normalized = rpj.normalize(packageJsonObject) -``` - -Errors raised from parsing will use -[`json-parse-even-better-errors`](http://npm.im/json-parse-even-better-errors), -so they'll be of type `JSONParseError` and have a `code: 'EJSONPARSE'` -property. Errors will also always have a `path` member referring to the -path originally passed into the function. - -## Indentation - -To preserve indentation when the file is saved back to disk, use -`data[Symbol.for('indent')]` as the third argument to `JSON.stringify`, and -if you want to preserve windows `\r\n` newlines, replace the `\n` chars in -the string with `data[Symbol.for('newline')]`. - -For example: - -```js -const data = await readPackageJsonFast('./package.json') -const indent = Symbol.for('indent') -const newline = Symbol.for('newline') -// .. do some stuff to the data .. -const string = JSON.stringify(data, null, data[indent]) + '\n' -const eolFixed = data[newline] === '\n' ? string - : string.replace(/\n/g, data[newline]) -await writeFile('./package.json', eolFixed) -``` - -Indentation is determined by looking at the whitespace between the initial -`{` and the first `"` that follows it. If you have lots of weird -inconsistent indentation, then it won't track that or give you any way to -preserve it. Whether this is a bug or a feature is debatable ;) - -## WHAT THIS MODULE DOES - -- Parse JSON -- Normalize `bundledDependencies`/`bundleDependencies` naming to just - `bundleDependencies` (without the extra `d`) -- Handle `true`, `false`, or object values passed to `bundleDependencies` -- Normalize `funding: ` to `funding: { url: }` -- Remove any `scripts` members that are not a string value. -- Normalize a string `bin` member to `{ [name]: bin }`. -- Fold `optionalDependencies` into `dependencies`. -- Set the `_id` property if name and version are set. (This is - load-bearing in a few places within the npm CLI.) - -## WHAT THIS MODULE DOES NOT DO - -- Warn about invalid/missing name, version, repository, etc. -- Extract a description from the `README.md` file, or attach the readme to - the parsed data object. -- Read the `HEAD` value out of the `.git` folder. -- Warn about potentially typo'ed scripts (eg, `tset` instead of `test`) -- Check to make sure that all the files in the `files` field exist and are - valid files. -- Fix bundleDependencies that are not listed in `dependencies`. -- Fix `dependencies` fields that are not strictly objects of string values. -- Anything involving the `directories` field (ie, bins, mans, and so on). diff --git a/deps/npm/node_modules/read-package-json-fast/index.js b/deps/npm/node_modules/read-package-json-fast/index.js deleted file mode 100644 index bfef5d6abcacc0..00000000000000 --- a/deps/npm/node_modules/read-package-json-fast/index.js +++ /dev/null @@ -1,82 +0,0 @@ -const {promisify} = require('util') -const fs = require('fs') -const readFile = promisify(fs.readFile) -const parse = require('json-parse-even-better-errors') -const rpj = path => readFile(path, 'utf8') - .then(data => normalize(parse(data))) - .catch(er => { - er.path = path - throw er - }) -const normalizePackageBin = require('npm-normalize-package-bin') - -const normalize = data => { - add_id(data) - fixBundled(data) - foldinOptionalDeps(data) - fixScripts(data) - fixFunding(data) - normalizePackageBin(data) - return data -} - -rpj.normalize = normalize - -const add_id = data => { - if (data.name && data.version) - data._id = `${data.name}@${data.version}` - return data -} - -const foldinOptionalDeps = data => { - const od = data.optionalDependencies - if (od && typeof od === 'object') { - data.dependencies = data.dependencies || {} - for (const [name, spec] of Object.entries(od)) { - data.dependencies[name] = spec - } - } - return data -} - -const fixBundled = data => { - const bdd = data.bundledDependencies - const bd = data.bundleDependencies === undefined ? bdd - : data.bundleDependencies - - if (bd === false) - data.bundleDependencies = [] - else if (bd === true) - data.bundleDependencies = Object.keys(data.dependencies || {}) - else if (bd && typeof bd === 'object') { - if (!Array.isArray(bd)) - data.bundleDependencies = Object.keys(bd) - else - data.bundleDependencies = bd - } else - delete data.bundleDependencies - - delete data.bundledDependencies - return data -} - -const fixScripts = data => { - if (!data.scripts || typeof data.scripts !== 'object') { - delete data.scripts - return data - } - - for (const [name, script] of Object.entries(data.scripts)) { - if (typeof script !== 'string') - delete data.scripts[name] - } - return data -} - -const fixFunding = data => { - if (data.funding && typeof data.funding === 'string') - data.funding = { url: data.funding } - return data -} - -module.exports = rpj diff --git a/deps/npm/node_modules/read-package-json-fast/package.json b/deps/npm/node_modules/read-package-json-fast/package.json deleted file mode 100644 index a59a3b2e86e9bc..00000000000000 --- a/deps/npm/node_modules/read-package-json-fast/package.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "read-package-json-fast", - "version": "1.2.1", - "description": "Like read-package-json, but faster", - "author": "Isaac Z. Schlueter (https://izs.me)", - "license": "ISC", - "scripts": { - "test": "tap", - "snap": "tap", - "preversion": "npm test", - "postversion": "npm publish", - "postpublish": "git push origin --follow-tags" - }, - "tap": { - "check-coverage": true - }, - "devDependencies": { - "tap": "^14.10.1" - }, - "dependencies": { - "json-parse-even-better-errors": "^2.3.0", - "npm-normalize-package-bin": "^1.0.1" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/npm/read-package-json-fast.git" - }, - "files": [ - "index.js" - ] -} diff --git a/deps/npm/node_modules/read-package-json/CHANGELOG.md b/deps/npm/node_modules/read-package-json/CHANGELOG.md deleted file mode 100644 index e63fd10f7703ec..00000000000000 --- a/deps/npm/node_modules/read-package-json/CHANGELOG.md +++ /dev/null @@ -1,51 +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/npm/read-package-json/compare/v2.1.2...v3.0.0) (2020-10-13) - - -### Bug Fixes - -* check-in updated lockfile ([19d9fbe](https://github.com/npm/read-package-json/commit/19d9fbe)) - - - - -## [2.1.2](https://github.com/npm/read-package-json/compare/v2.1.1...v2.1.2) (2020-08-20) - - -### Bug Fixes - -* even better json errors, remove graceful-fs ([fdbf082](https://github.com/npm/read-package-json/commit/fdbf082)) - - - - -## [2.1.1](https://github.com/npm/read-package-json/compare/v2.1.0...v2.1.1) (2019-12-09) - - -### Bug Fixes - -* normalize and sanitize pkg bin entries ([b8cb5fa](https://github.com/npm/read-package-json/commit/b8cb5fa)) - - - - -# [2.1.0](https://github.com/npm/read-package-json/compare/v2.0.13...v2.1.0) (2019-08-13) - - -### Features - -* support bundleDependencies: true ([76f6f42](https://github.com/npm/read-package-json/commit/76f6f42)) - - - - -## [2.0.13](https://github.com/npm/read-package-json/compare/v2.0.12...v2.0.13) (2018-03-08) - - -### Bug Fixes - -* **git:** support git packed refs --all mode ([#77](https://github.com/npm/read-package-json/issues/77)) ([1869940](https://github.com/npm/read-package-json/commit/1869940)) diff --git a/deps/npm/node_modules/read-package-json/LICENSE b/deps/npm/node_modules/read-package-json/LICENSE deleted file mode 100644 index 052085c436514a..00000000000000 --- a/deps/npm/node_modules/read-package-json/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter - -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/deps/npm/node_modules/read-package-json/README.md b/deps/npm/node_modules/read-package-json/README.md deleted file mode 100644 index da1f63dc8828bf..00000000000000 --- a/deps/npm/node_modules/read-package-json/README.md +++ /dev/null @@ -1,151 +0,0 @@ -# read-package-json - -This is the thing that npm uses to read package.json files. It -validates some stuff, and loads some default things. - -It keeps a cache of the files you've read, so that you don't end -up reading the same package.json file multiple times. - -Note that if you just want to see what's literally in the package.json -file, you can usually do `var data = require('some-module/package.json')`. - -This module is basically only needed by npm, but it's handy to see what -npm will see when it looks at your package. - -## Usage - -```javascript -var readJson = require('read-package-json') - -// readJson(filename, [logFunction=noop], [strict=false], cb) -readJson('/path/to/package.json', console.error, false, function (er, data) { - if (er) { - console.error("There was an error reading the file") - return - } - - console.error('the package data is', data) -}); -``` - -## readJson(file, [logFn = noop], [strict = false], cb) - -* `file` {String} The path to the package.json file -* `logFn` {Function} Function to handle logging. Defaults to a noop. -* `strict` {Boolean} True to enforce SemVer 2.0 version strings, and - other strict requirements. -* `cb` {Function} Gets called with `(er, data)`, as is The Node Way. - -Reads the JSON file and does the things. - -## `package.json` Fields - -See `man 5 package.json` or `npm help json`. - -## readJson.log - -By default this is a reference to the `npmlog` module. But if that -module can't be found, then it'll be set to just a dummy thing that does -nothing. - -Replace with your own `{log,warn,error}` object for fun loggy time. - -## readJson.extras(file, data, cb) - -Run all the extra stuff relative to the file, with the parsed data. - -Modifies the data as it does stuff. Calls the cb when it's done. - -## readJson.extraSet = [fn, fn, ...] - -Array of functions that are called by `extras`. Each one receives the -arguments `fn(file, data, cb)` and is expected to call `cb(er, data)` -when done or when an error occurs. - -Order is indeterminate, so each function should be completely -independent. - -Mix and match! - -## Other Relevant Files Besides `package.json` - -Some other files have an effect on the resulting data object, in the -following ways: - -### `README?(.*)` - -If there is a `README` or `README.*` file present, then npm will attach -a `readme` field to the data with the contents of this file. - -Owing to the fact that roughly 100% of existing node modules have -Markdown README files, it will generally be assumed to be Markdown, -regardless of the extension. Please plan accordingly. - -### `server.js` - -If there is a `server.js` file, and there is not already a -`scripts.start` field, then `scripts.start` will be set to `node -server.js`. - -### `AUTHORS` - -If there is not already a `contributors` field, then the `contributors` -field will be set to the contents of the `AUTHORS` file, split by lines, -and parsed. - -### `bindings.gyp` - -If a bindings.gyp file exists, and there is not already a -`scripts.install` field, then the `scripts.install` field will be set to -`node-gyp rebuild`. - -### `index.js` - -If the json file does not exist, but there is a `index.js` file -present instead, and that file has a package comment, then it will try -to parse the package comment, and use that as the data instead. - -A package comment looks like this: - -```javascript -/**package - * { "name": "my-bare-module" - * , "version": "1.2.3" - * , "description": "etc...." } - **/ - -// or... - -/**package -{ "name": "my-bare-module" -, "version": "1.2.3" -, "description": "etc...." } -**/ -``` - -The important thing is that it starts with `/**package`, and ends with -`**/`. If the package.json file exists, then the index.js is not -parsed. - -### `{directories.man}/*.[0-9]` - -If there is not already a `man` field defined as an array of files or a -single file, and -there is a `directories.man` field defined, then that directory will -be searched for manpages. - -Any valid manpages found in that directory will be assigned to the `man` -array, and installed in the appropriate man directory at package install -time, when installed globally on a Unix system. - -### `{directories.bin}/*` - -If there is not already a `bin` field defined as a string filename or a -hash of ` : ` pairs, then the `directories.bin` -directory will be searched and all the files within it will be linked as -executables at install time. - -When installing locally, npm links bins into `node_modules/.bin`, which -is in the `PATH` environ when npm runs scripts. When -installing globally, they are linked into `{prefix}/bin`, which is -presumably in the `PATH` environment variable. diff --git a/deps/npm/node_modules/read-package-json/package.json b/deps/npm/node_modules/read-package-json/package.json deleted file mode 100644 index 755dd3747a56a9..00000000000000 --- a/deps/npm/node_modules/read-package-json/package.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "read-package-json", - "version": "3.0.0", - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", - "description": "The thing npm uses to read package.json files with semantics and defaults and validation", - "repository": { - "type": "git", - "url": "https://github.com/npm/read-package-json.git" - }, - "main": "read-json.js", - "scripts": { - "prerelease": "npm t", - "postrelease": "npm publish && git push --follow-tags", - "pretest": "standard", - "release": "standard-version -s", - "test": "tap --nyc-arg=--all --coverage test/*.js" - }, - "dependencies": { - "glob": "^7.1.1", - "json-parse-even-better-errors": "^2.3.0", - "normalize-package-data": "^3.0.0", - "npm-normalize-package-bin": "^1.0.0" - }, - "devDependencies": { - "standard": "^11.0.0", - "standard-version": "^4.3.0", - "tap": "^11.1.2" - }, - "license": "ISC", - "files": [ - "read-json.js" - ], - "engines": { - "node": ">=10" - } -} diff --git a/deps/npm/node_modules/read-package-json/read-json.js b/deps/npm/node_modules/read-package-json/read-json.js deleted file mode 100644 index 0e91e784ec4fdf..00000000000000 --- a/deps/npm/node_modules/read-package-json/read-json.js +++ /dev/null @@ -1,469 +0,0 @@ -var fs = require('fs') - -var path = require('path') - -var glob = require('glob') -var normalizeData = require('normalize-package-data') -var safeJSON = require('json-parse-even-better-errors') -var util = require('util') -var normalizePackageBin = require('npm-normalize-package-bin') - -module.exports = readJson - -// put more stuff on here to customize. -readJson.extraSet = [ - bundleDependencies, - gypfile, - serverjs, - scriptpath, - authors, - readme, - mans, - bins, - githead -] - -var typoWarned = {} -var cache = {} - -function readJson (file, log_, strict_, cb_) { - var log, strict, cb - for (var i = 1; i < arguments.length - 1; i++) { - if (typeof arguments[i] === 'boolean') { - strict = arguments[i] - } else if (typeof arguments[i] === 'function') { - log = arguments[i] - } - } - - if (!log) log = function () {} - cb = arguments[ arguments.length - 1 ] - - readJson_(file, log, strict, cb) -} - -function readJson_ (file, log, strict, cb) { - fs.readFile(file, 'utf8', function (er, d) { - parseJson(file, er, d, log, strict, cb) - }) -} - -function stripBOM (content) { - // Remove byte order marker. This catches EF BB BF (the UTF-8 BOM) - // because the buffer-to-string conversion in `fs.readFileSync()` - // translates it to FEFF, the UTF-16 BOM. - if (content.charCodeAt(0) === 0xFEFF) content = content.slice(1) - return content -} - -function jsonClone (obj) { - if (obj == null) { - return obj - } else if (Array.isArray(obj)) { - var newarr = new Array(obj.length) - for (var ii in obj) { - newarr[ii] = obj[ii] - } - } else if (typeof obj === 'object') { - var newobj = {} - for (var kk in obj) { - newobj[kk] = jsonClone[kk] - } - } else { - return obj - } -} - -function parseJson (file, er, d, log, strict, cb) { - if (er && er.code === 'ENOENT') { - return fs.stat(path.dirname(file), function (err, stat) { - if (!err && stat && !stat.isDirectory()) { - // ENOTDIR isn't used on Windows, but npm expects it. - er = Object.create(er) - er.code = 'ENOTDIR' - return cb(er) - } else { - return indexjs(file, er, log, strict, cb) - } - }) - } - if (er) return cb(er) - - if (cache[d]) return cb(null, jsonClone(cache[d])) - - var data - - try { - data = safeJSON(stripBOM(d)) - } catch (er) { - data = parseIndex(d) - if (!data) return cb(parseError(er, file)) - } - - extrasCached(file, d, data, log, strict, cb) -} - -function extrasCached (file, d, data, log, strict, cb) { - extras(file, data, log, strict, function (err, data) { - if (!err) { - cache[d] = jsonClone(data) - } - cb(err, data) - }) -} - -function indexjs (file, er, log, strict, cb) { - if (path.basename(file) === 'index.js') return cb(er) - - var index = path.resolve(path.dirname(file), 'index.js') - fs.readFile(index, 'utf8', function (er2, d) { - if (er2) return cb(er) - - if (cache[d]) return cb(null, cache[d]) - - var data = parseIndex(d) - if (!data) return cb(er) - - extrasCached(file, d, data, log, strict, cb) - }) -} - -readJson.extras = extras -function extras (file, data, log_, strict_, cb_) { - var log, strict, cb - for (var i = 2; i < arguments.length - 1; i++) { - if (typeof arguments[i] === 'boolean') { - strict = arguments[i] - } else if (typeof arguments[i] === 'function') { - log = arguments[i] - } - } - - if (!log) log = function () {} - cb = arguments[i] - - var set = readJson.extraSet - var n = set.length - var errState = null - set.forEach(function (fn) { - fn(file, data, then) - }) - - function then (er) { - if (errState) return - if (er) return cb(errState = er) - if (--n > 0) return - final(file, data, log, strict, cb) - } -} - -function scriptpath (file, data, cb) { - if (!data.scripts) return cb(null, data) - var k = Object.keys(data.scripts) - k.forEach(scriptpath_, data.scripts) - cb(null, data) -} - -function scriptpath_ (key) { - var s = this[key] - // This is never allowed, and only causes problems - if (typeof s !== 'string') return delete this[key] - - var spre = /^(\.[/\\])?node_modules[/\\].bin[\\/]/ - if (s.match(spre)) { - this[key] = this[key].replace(spre, '') - } -} - -function gypfile (file, data, cb) { - var dir = path.dirname(file) - var s = data.scripts || {} - if (s.install || s.preinstall) return cb(null, data) - - glob('*.gyp', { cwd: dir }, function (er, files) { - if (er) return cb(er) - if (data.gypfile === false) return cb(null, data) - gypfile_(file, data, files, cb) - }) -} - -function gypfile_ (file, data, files, cb) { - if (!files.length) return cb(null, data) - var s = data.scripts || {} - s.install = 'node-gyp rebuild' - data.scripts = s - data.gypfile = true - return cb(null, data) -} - -function serverjs (file, data, cb) { - var dir = path.dirname(file) - var s = data.scripts || {} - if (s.start) return cb(null, data) - glob('server.js', { cwd: dir }, function (er, files) { - if (er) return cb(er) - serverjs_(file, data, files, cb) - }) -} - -function serverjs_ (file, data, files, cb) { - if (!files.length) return cb(null, data) - var s = data.scripts || {} - s.start = 'node server.js' - data.scripts = s - return cb(null, data) -} - -function authors (file, data, cb) { - if (data.contributors) return cb(null, data) - var af = path.resolve(path.dirname(file), 'AUTHORS') - fs.readFile(af, 'utf8', function (er, ad) { - // ignore error. just checking it. - if (er) return cb(null, data) - authors_(file, data, ad, cb) - }) -} - -function authors_ (file, data, ad, cb) { - ad = ad.split(/\r?\n/g).map(function (line) { - return line.replace(/^\s*#.*$/, '').trim() - }).filter(function (line) { - return line - }) - data.contributors = ad - return cb(null, data) -} - -function readme (file, data, cb) { - if (data.readme) return cb(null, data) - var dir = path.dirname(file) - var globOpts = { cwd: dir, nocase: true, mark: true } - glob('{README,README.*}', globOpts, function (er, files) { - if (er) return cb(er) - // don't accept directories. - files = files.filter(function (file) { - return !file.match(/\/$/) - }) - if (!files.length) return cb() - var fn = preferMarkdownReadme(files) - var rm = path.resolve(dir, fn) - readme_(file, data, rm, cb) - }) -} - -function preferMarkdownReadme (files) { - var fallback = 0 - var re = /\.m?a?r?k?d?o?w?n?$/i - for (var i = 0; i < files.length; i++) { - if (files[i].match(re)) { - return files[i] - } else if (files[i].match(/README$/)) { - fallback = i - } - } - // prefer README.md, followed by README; otherwise, return - // the first filename (which could be README) - return files[fallback] -} - -function readme_ (file, data, rm, cb) { - var rmfn = path.basename(rm) - fs.readFile(rm, 'utf8', function (er, rm) { - // maybe not readable, or something. - if (er) return cb() - data.readme = rm - data.readmeFilename = rmfn - return cb(er, data) - }) -} - -function mans (file, data, cb) { - var m = data.directories && data.directories.man - if (data.man || !m) return cb(null, data) - m = path.resolve(path.dirname(file), m) - glob('**/*.[0-9]', { cwd: m }, function (er, mans) { - if (er) return cb(er) - mans_(file, data, mans, cb) - }) -} - -function mans_ (file, data, mans, cb) { - var m = data.directories && data.directories.man - data.man = mans.map(function (mf) { - return path.resolve(path.dirname(file), m, mf) - }) - return cb(null, data) -} - -function bins (file, data, cb) { - data = normalizePackageBin(data) - - var m = data.directories && data.directories.bin - if (data.bin || !m) return cb(null, data) - - m = path.resolve(path.dirname(file), m) - glob('**', { cwd: m }, function (er, bins) { - if (er) return cb(er) - bins_(file, data, bins, cb) - }) -} - -function bins_ (file, data, bins, cb) { - var m = (data.directories && data.directories.bin) || '.' - data.bin = bins.reduce(function (acc, mf) { - if (mf && mf.charAt(0) !== '.') { - var f = path.basename(mf) - acc[f] = path.join(m, mf) - } - return acc - }, {}) - return cb(null, normalizePackageBin(data)) -} - -function bundleDependencies (file, data, cb) { - var bd = 'bundleDependencies' - var bdd = 'bundledDependencies' - // normalize key name - if (data[bdd] !== undefined) { - if (data[bd] === undefined) data[bd] = data[bdd] - delete data[bdd] - } - if (data[bd] === false) delete data[bd] - else if (data[bd] === true) { - data[bd] = Object.keys(data.dependencies || {}) - } else if (data[bd] !== undefined && !Array.isArray(data[bd])) { - delete data[bd] - } - return cb(null, data) -} - -function githead (file, data, cb) { - if (data.gitHead) return cb(null, data) - var dir = path.dirname(file) - var head = path.resolve(dir, '.git/HEAD') - fs.readFile(head, 'utf8', function (er, head) { - if (er) return cb(null, data) - githead_(file, data, dir, head, cb) - }) -} - -function githead_ (file, data, dir, head, cb) { - if (!head.match(/^ref: /)) { - data.gitHead = head.trim() - return cb(null, data) - } - var headRef = head.replace(/^ref: /, '').trim() - var headFile = path.resolve(dir, '.git', headRef) - fs.readFile(headFile, 'utf8', function (er, head) { - if (er || !head) { - var packFile = path.resolve(dir, '.git/packed-refs') - return fs.readFile(packFile, 'utf8', function (er, refs) { - if (er || !refs) { - return cb(null, data) - } - refs = refs.split('\n') - for (var i = 0; i < refs.length; i++) { - var match = refs[i].match(/^([0-9a-f]{40}) (.+)$/) - if (match && match[2].trim() === headRef) { - data.gitHead = match[1] - break - } - } - return cb(null, data) - }) - } - head = head.replace(/^ref: /, '').trim() - data.gitHead = head - return cb(null, data) - }) -} - -/** - * Warn if the bin references don't point to anything. This might be better in - * normalize-package-data if it had access to the file path. - */ -function checkBinReferences_ (file, data, warn, cb) { - if (!(data.bin instanceof Object)) return cb() - - var keys = Object.keys(data.bin) - var keysLeft = keys.length - if (!keysLeft) return cb() - - function handleExists (relName, result) { - keysLeft-- - if (!result) warn('No bin file found at ' + relName) - if (!keysLeft) cb() - } - - keys.forEach(function (key) { - var dirName = path.dirname(file) - var relName = data.bin[key] - /* istanbul ignore if - impossible, bins have been normalized */ - if (typeof relName !== 'string') { - var msg = 'Bin filename for ' + key + - ' is not a string: ' + util.inspect(relName) - warn(msg) - delete data.bin[key] - handleExists(relName, true) - return - } - var binPath = path.resolve(dirName, relName) - fs.stat(binPath, (err) => handleExists(relName, !err)) - }) -} - -function final (file, data, log, strict, cb) { - var pId = makePackageId(data) - - function warn (msg) { - if (typoWarned[pId]) return - if (log) log('package.json', pId, msg) - } - - try { - normalizeData(data, warn, strict) - } catch (error) { - return cb(error) - } - - checkBinReferences_(file, data, warn, function () { - typoWarned[pId] = true - cb(null, data) - }) -} - -function makePackageId (data) { - var name = cleanString(data.name) - var ver = cleanString(data.version) - return name + '@' + ver -} - -function cleanString (str) { - return (!str || typeof (str) !== 'string') ? '' : str.trim() -} - -// /**package { "name": "foo", "version": "1.2.3", ... } **/ -function parseIndex (data) { - data = data.split(/^\/\*\*package(?:\s|$)/m) - - if (data.length < 2) return null - data = data[1] - data = data.split(/\*\*\/$/m) - - if (data.length < 2) return null - data = data[0] - data = data.replace(/^\s*\*/mg, '') - - try { - return safeJSON(data) - } catch (er) { - return null - } -} - -function parseError (ex, file) { - var e = new Error('Failed to parse json\n' + ex.message) - e.code = 'EJSONPARSE' - e.file = file - return e -} diff --git a/deps/npm/node_modules/read/LICENSE b/deps/npm/node_modules/read/LICENSE deleted file mode 100644 index 19129e315fe593..00000000000000 --- a/deps/npm/node_modules/read/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -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/deps/npm/node_modules/read/README.md b/deps/npm/node_modules/read/README.md deleted file mode 100644 index 5967fad1180248..00000000000000 --- a/deps/npm/node_modules/read/README.md +++ /dev/null @@ -1,53 +0,0 @@ -## read - -For reading user input from stdin. - -Similar to the `readline` builtin's `question()` method, but with a -few more features. - -## USAGE - -```javascript -var read = require("read") -read(options, callback) -``` - -The callback gets called with either the user input, or the default -specified, or an error, as `callback(error, result, isDefault)` -node style. - -## OPTIONS - -Every option is optional. - -* `prompt` What to write to stdout before reading input. -* `silent` Don't echo the output as the user types it. -* `replace` Replace silenced characters with the supplied character value. -* `timeout` Number of ms to wait for user input before giving up. -* `default` The default value if the user enters nothing. -* `edit` Allow the user to edit the default value. -* `terminal` Treat the output as a TTY, whether it is or not. -* `input` Readable stream to get input data from. (default `process.stdin`) -* `output` Writeable stream to write prompts to. (default: `process.stdout`) - -If silent is true, and the input is a TTY, then read will set raw -mode, and read character by character. - -## COMPATIBILITY - -This module works sort of with node 0.6. It does not work with node -versions less than 0.6. It is best on node 0.8. - -On node version 0.6, it will remove all listeners on the input -stream's `data` and `keypress` events, because the readline module did -not fully clean up after itself in that version of node, and did not -make it possible to clean up after it in a way that has no potential -for side effects. - -Additionally, some of the readline options (like `terminal`) will not -function in versions of node before 0.8, because they were not -implemented in the builtin readline module. - -## CONTRIBUTING - -Patches welcome. diff --git a/deps/npm/node_modules/read/lib/read.js b/deps/npm/node_modules/read/lib/read.js deleted file mode 100644 index a93d1b3b532c08..00000000000000 --- a/deps/npm/node_modules/read/lib/read.js +++ /dev/null @@ -1,113 +0,0 @@ - -module.exports = read - -var readline = require('readline') -var Mute = require('mute-stream') - -function read (opts, cb) { - if (opts.num) { - throw new Error('read() no longer accepts a char number limit') - } - - if (typeof opts.default !== 'undefined' && - typeof opts.default !== 'string' && - typeof opts.default !== 'number') { - throw new Error('default value must be string or number') - } - - var input = opts.input || process.stdin - var output = opts.output || process.stdout - var prompt = (opts.prompt || '').trim() + ' ' - var silent = opts.silent - var editDef = false - var timeout = opts.timeout - - var def = opts.default || '' - if (def) { - if (silent) { - prompt += '(