diff options
| author | mo khan <mo.khan@gmail.com> | 2019-10-22 20:24:29 +0000 |
|---|---|---|
| committer | mo khan <mo.khan@gmail.com> | 2019-10-22 20:24:29 +0000 |
| commit | 431f07f8d11b2bc2a8fd09351a4323c9df676822 (patch) | |
| tree | 4f40b60925a4edf8eace71ae8af65bb5d67c7b6b | |
| parent | 7f175952a5a047d785b5ea72c15a10642523c62a (diff) | |
| parent | 561556fbd1f59492cfa8fdd790f2ce39c90f3a8d (diff) | |
Merge branch 'remove-tech-debt' into 'master'v1.7.2
Remove feature flags and temporary mappings
See merge request gitlab-org/security-products/license-management!75
| -rw-r--r-- | .env.12-2-stable | 2 | ||||
| -rw-r--r-- | .env.12-3-stable | 2 | ||||
| -rw-r--r-- | .env.12-4-stable | 2 | ||||
| -rw-r--r-- | .env.12-5-stable | 2 | ||||
| -rw-r--r-- | .env.legacy | 2 | ||||
| -rw-r--r-- | .gitlab-ci.yml | 13 | ||||
| -rw-r--r-- | CHANGELOG.md | 6 | ||||
| -rw-r--r-- | Dockerfile | 5 | ||||
| -rw-r--r-- | README.md | 2 | ||||
| -rwxr-xr-x | bin/test | 2 | ||||
| -rw-r--r-- | html2json.js | 88 | ||||
| -rw-r--r-- | lib/license/management/report/v1.rb | 8 | ||||
| -rw-r--r-- | lib/license/management/report/v2.rb | 2 | ||||
| -rw-r--r-- | lib/license/management/repository.rb | 20 | ||||
| -rw-r--r-- | lib/license/management/version.rb | 2 | ||||
| -rw-r--r-- | normalized-licenses.yml | 71 | ||||
| -rwxr-xr-x | run.sh | 14 | ||||
| -rw-r--r-- | test/results/js-yarn-v1.json | 168 |
18 files changed, 112 insertions, 299 deletions
diff --git a/.env.12-2-stable b/.env.12-2-stable index 3e94bc7..835c645 100644 --- a/.env.12-2-stable +++ b/.env.12-2-stable @@ -1,3 +1 @@ -FEATURE_RUBY_REPORT 'false' LM_REPORT_VERSION 1 -LM_V1_CANONICALIZE 'false' diff --git a/.env.12-3-stable b/.env.12-3-stable index edb6a67..835c645 100644 --- a/.env.12-3-stable +++ b/.env.12-3-stable @@ -1,3 +1 @@ -FEATURE_RUBY_REPORT 'true' LM_REPORT_VERSION 1 -LM_V1_CANONICALIZE 'false' diff --git a/.env.12-4-stable b/.env.12-4-stable index 8199a39..79d7c86 100644 --- a/.env.12-4-stable +++ b/.env.12-4-stable @@ -1,3 +1 @@ -FEATURE_RUBY_REPORT 'true' LM_REPORT_VERSION '1.1' -LM_V1_CANONICALIZE 'false' diff --git a/.env.12-5-stable b/.env.12-5-stable index 8199a39..79d7c86 100644 --- a/.env.12-5-stable +++ b/.env.12-5-stable @@ -1,3 +1 @@ -FEATURE_RUBY_REPORT 'true' LM_REPORT_VERSION '1.1' -LM_V1_CANONICALIZE 'false' diff --git a/.env.legacy b/.env.legacy index bba5f11..996bb9b 100644 --- a/.env.legacy +++ b/.env.legacy @@ -1,4 +1,2 @@ -FEATURE_RUBY_REPORT 'false' LM_PYTHON_VERSION 2.7 LM_REPORT_VERSION 1 -LM_V1_CANONICALIZE 'false' diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e3340b3..4432ad6 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -35,7 +35,6 @@ container_scanning: image: docker:stable stage: test variables: - FEATURE_RUBY_REPORT: 'false' LM_PYTHON_VERSION: 3 LM_REPORT_VERSION: 1 script: @@ -65,14 +64,12 @@ QA:java-maven: QA:java-maven-v1-1: extends: QA:java-maven variables: - FEATURE_RUBY_REPORT: 'true' LM_REPORT_VERSION: '1.1' QA_RESULTS: java-maven-v1.1 QA:java-maven-v2: extends: QA:java-maven variables: - FEATURE_RUBY_REPORT: 'true' LM_REPORT_VERSION: 2 QA_RESULTS: java-maven-v2 @@ -86,14 +83,12 @@ QA:python-pip: QA:python-pip-v1-1: extends: QA:python-pip variables: - FEATURE_RUBY_REPORT: 'true' LM_REPORT_VERSION: '1.1' QA_RESULTS: python-pip-v1.1 QA:python-pip-v2: extends: QA:python-pip variables: - FEATURE_RUBY_REPORT: 'true' LM_REPORT_VERSION: '2.0' QA_RESULTS: python-pip-v2 @@ -107,14 +102,12 @@ QA:python3-pip: QA:python3-pip-v1-1: extends: QA:python3-pip variables: - FEATURE_RUBY_REPORT: 'true' LM_REPORT_VERSION: '1.1' QA_RESULTS: python3-pip-v1.1 QA:python3-pip-v2: extends: QA:python3-pip variables: - FEATURE_RUBY_REPORT: 'true' LM_REPORT_VERSION: 2 QA_RESULTS: python3-pip-v2 @@ -127,14 +120,12 @@ QA:ruby-bundler: QA:ruby-bundler-v1-1: extends: QA:ruby-bundler variables: - FEATURE_RUBY_REPORT: 'true' LM_REPORT_VERSION: '1.1' QA_RESULTS: ruby-bundler-v1.1 QA:ruby-bundler-v2: extends: QA:ruby-bundler variables: - FEATURE_RUBY_REPORT: 'true' LM_REPORT_VERSION: 2 QA_RESULTS: ruby-bundler-v2 @@ -147,14 +138,12 @@ QA:go: QA:go-v1-1: extends: QA:go variables: - FEATURE_RUBY_REPORT: 'true' LM_REPORT_VERSION: '1.1' QA_RESULTS: go-modules-v1.1 QA:go-v2: extends: QA:go variables: - FEATURE_RUBY_REPORT: 'true' LM_REPORT_VERSION: 2 QA_RESULTS: go-modules-v2 @@ -167,14 +156,12 @@ QA:js: QA:js-v1-1: extends: QA:js variables: - FEATURE_RUBY_REPORT: 'true' LM_REPORT_VERSION: '1.1' QA_RESULTS: js-yarn-v1.1 QA:js-v2: extends: QA:js variables: - FEATURE_RUBY_REPORT: 'true' LM_REPORT_VERSION: 2 QA_RESULTS: js-yarn-v2 diff --git a/CHANGELOG.md b/CHANGELOG.md index a7e3d6a..942ff56 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # GitLab License management changelog +## v1.7.2 + +- Remove `LM_V1_CANONICALIZE` feature flag +- Remove `FEATURE_RUBY_REPORT` feature flag +- Remove `html2json.js` script + ## v1.7.1 - Add mappings for legacy license names @@ -12,8 +12,7 @@ RUN cd /tmp && \ tar xf /tmp/jdk-11.tgz && \ mv jdk-11.0.2+9 /usr/lib/jvm/adoptopen_jdk11 && \ rm /tmp/jdk-11.tgz - -RUN npm install npm-install-peers cheerio +RUN npm install npm-install-peers # Don't let Rubygem fail with the numerous projects using PG or MySQL, # install realpath, includes for python3, and pip for python3 @@ -46,7 +45,7 @@ ENV LM_PYTHON_VERSION $LM_PYTHON_VERSION ENV LM_REPORT_VERSION ${LM_REPORT_VERSION:-1} COPY test /test -COPY run.sh html2json.js / +COPY run.sh / COPY . /opt/license-management/ RUN bash -lc "source /rvm.sh && cd /opt/license-management && gem build *.gemspec && gem install *.gem" @@ -118,10 +118,8 @@ to the docker command. 2. Create a new `.env.*` that corresponds to the version to release and specify the default configuration. ```text - FEATURE_RUBY_REPORT 'true' LM_PYTHON_VERSION '3.5' LM_REPORT_VERSION '2.0' - LM_V1_CANONICALIZE 'true' ``` Please check the [Release Process documentation](https://gitlab.com/gitlab-org/security-products/release/blob/master/docs/release_process.md). @@ -2,7 +2,6 @@ set -e -export FEATURE_RUBY_REPORT=${FEATURE_RUBY_REPORT:-true} export LM_PYTHON_VERSION=${LM_PYTHON_VERSION:-2} export LM_REPORT_VERSION=${LM_REPORT_VERSION:-1} export QA_RESULTS=${QA_RESULTS:-$QA_PROJECT-v$LM_REPORT_VERSION} @@ -10,7 +9,6 @@ export RESULTS_DIR=${RESULTS_DIR:-`pwd`/results} docker run \ --rm \ - --env FEATURE_RUBY_REPORT \ --env LM_PYTHON_VERSION \ --env LM_REPORT_VERSION \ --volume $RESULTS_DIR:/results \ diff --git a/html2json.js b/html2json.js deleted file mode 100644 index 1c4ae9b..0000000 --- a/html2json.js +++ /dev/null @@ -1,88 +0,0 @@ -var cheerio = require('cheerio') -var path = require('path') - -// Read the HTML report -fs = require('fs') -var htmlContent; -try { - htmlContent = fs.readFileSync(process.argv[2], 'utf8'); -} catch(e) { - console.log('Error:', e.stack); - process.exit(1); -} - -// Get the directory containing the results to make pathes relative to it later. -report_directory = path.dirname(process.argv[2]) - -const $ = cheerio.load(htmlContent) - -// Map that keeps the total tally of the license occurrences -var licenses = {}; - -// Extract dependencies info. -var dependencies = [] -$('div.dependencies div').each(function(i, doc) { - // Get license name. - license = $(this).find('blockquote p').text().trim(); - license = license.split("\n")[0]; - - if(licenses[license]) { - licenses[license].count += 1; - } else { - licenses[license] = { count: 1, name: license } - } - - // Get URL. - license_url = $(this).find('blockquote p a[href]').attr('href'); - - // Get dependency name. - dependency_name = $(this).find('h2').text().trim(); - dependency_name = dependency_name.split("\n")[0]; - - // Get dependency URL. - dependency_url = $(this).find('h2 a[href]').attr('href'); - - // Get dependency description. - dependency_description = $(this).find('dl').first().next().text().trim(); - - // Get dependency location relative to the project root path - dependency_pathes = [] - $(this).find('dl').first().find('dd').each(function(i, doc) { - dependency_path = path.relative(report_directory, $(this).text().trim()); - - // Whitespace path means current directory - if (!dependency_path) { - dependency_path = "."; - } - - dependency_pathes.push(dependency_path); - }) - dependencies.push({ - license: { - name: license, - url: license_url - }, - dependency: { - name: dependency_name, - url: dependency_url, - description: dependency_description, - pathes: dependency_pathes - } - }) -}) - -// Stable sort of licenses. First license count descending, then license name ascending -licenses = Object.values(licenses) - .sort(function (a, b) { - if (a.count === b.count) { - return a.name > b.name ? 1 : -1; - } - return a.count < b.count ? 1 : -1; -}); - -console.log(JSON.stringify({ - licenses: licenses, - dependencies: dependencies}, null, 2)) - - - diff --git a/lib/license/management/report/v1.rb b/lib/license/management/report/v1.rb index 02fd9bd..1cc8728 100644 --- a/lib/license/management/report/v1.rb +++ b/lib/license/management/report/v1.rb @@ -14,7 +14,7 @@ module License private # when a dependency has multiple licenses, this will join the licenses into a single name - # this defect was backported from the html2json version of this script. + # this defect was backported from the [html2json](https://gitlab.com/gitlab-org/security-products/license-management/blob/7f175952a5a047d785b5ea72c15a10642523c62a/html2json.js) version of this script. def license_summary dependencies .map { |dependency| join_license_names(dependency.licenses) } @@ -67,17 +67,11 @@ module License end def license_data(license) - return repository.item_for(license, spdx: false) if canonicalize? - { 'name' => license.name.split(/[\r\n]+/)[0], 'url' => license.url || '' } end - - def canonicalize? - ENV.fetch('LM_V1_CANONICALIZE', 'false') == 'true' - end end end end diff --git a/lib/license/management/report/v2.rb b/lib/license/management/report/v2.rb index 5df6af7..810d191 100644 --- a/lib/license/management/report/v2.rb +++ b/lib/license/management/report/v2.rb @@ -26,7 +26,7 @@ module License end def data_for(license) - repository.item_for(license, spdx: true) + repository.item_for(license) end def map_from(dependency) diff --git a/lib/license/management/repository.rb b/lib/license/management/repository.rb index 164653c..0c428dd 100644 --- a/lib/license/management/repository.rb +++ b/lib/license/management/repository.rb @@ -14,24 +14,18 @@ module License @spdx_data = load_spdx_data_from(spdx_path) end - def item_for(license, spdx: true) - if spdx - item = spdx_data_for(license) - return item if item - end - - id = id_for(license) - item = id ? compatibility_data['licenses'][id] : nil - item ? { 'id' => id }.merge(item) : generate_item_for(license) + def item_for(license) + spdx_data_for(id_for(license)) || + spdx_data_for(license.send(:short_name)) || + generate_item_for(license) end private attr_reader :spdx_data, :compatibility_data - def spdx_data_for(license) - id = id_for(license) - data = id ? spdx_data[id] : spdx_data[license.send(:short_name)] + def spdx_data_for(id) + data = spdx_data[id] if data { 'id' => data['licenseId'], @@ -39,7 +33,7 @@ module License 'url' => data['seeAlso'][-1] } else - log_info("could not find license named `#{license.send(:short_name)}` in SPDX index") + log_info("Could not find license `#{id}` in SPDX") nil end end diff --git a/lib/license/management/version.rb b/lib/license/management/version.rb index 8e65182..b61aa01 100644 --- a/lib/license/management/version.rb +++ b/lib/license/management/version.rb @@ -2,6 +2,6 @@ module License module Management - VERSION = '1.7.1' + VERSION = '1.7.2' end end diff --git a/normalized-licenses.yml b/normalized-licenses.yml index cc184d5..3bfed18 100644 --- a/normalized-licenses.yml +++ b/normalized-licenses.yml @@ -1,88 +1,33 @@ --- ids: - ASL, version 2: Apache-2.0 - Apache 2.0: Apache-2.0 Apache1_1: Apache-1.1 + Apache 2.0: Apache-2.0 Apache2: Apache-2.0 + ASL, version 2: Apache-2.0 BSD: BSD-4-Clause CC0 1.0 Universal: CC0-1.0 CC01: CC0-1.0 EPL1: EPL-1.0 GPLv2: GPL-2.0 GPLv3: GPL-3.0 + http://www.apache.org/licenses/LICENSE-2.0: Apache-2.0 ISC: ISC LGPL 2.1: LGPL-2.1 - LGPL, version 2.1: LGPL-2.1 LGPL2_1: LGPL-2.1 LGPL: LGPL-3.0-only + LGPL, version 2.1: LGPL-2.1 MIT: MIT + Mozilla Public License 2.0: MPL-2.0 MPL 1.1: MPL-1.1 MPL1_1: MPL-1.1 MPL2: MPL-2.0 - Mozilla Public License 2.0: MPL-2.0 - New BSD License: BSD-3-Clause New BSD: BSD-3-Clause NewBSD: BSD-3-Clause - Python Software Foundation License: Python-2.0 + New BSD License: BSD-3-Clause Python: Python-2.0 + Python Software Foundation License: Python-2.0 Ruby: Ruby + ruby: Ruby Simplified BSD: BSD-2-Clause SimplifiedBSD: BSD-2-Clause - http://www.apache.org/licenses/LICENSE-2.0: Apache-2.0 - ruby: Ruby unknown: unknown -licenses: - GPL-3.0: - name: GPL 3.0 - url: https://www.gnu.org/licenses/gpl-3.0.txt - BSD-2-Clause: - name: Simplified BSD - url: https://opensource.org/licenses/bsd-license - ISC: - name: ISC - url: https://en.wikipedia.org/wiki/ISC_license - Apache-1.1: - name: Apache 1.1 - url: https://www.apache.org/licenses/LICENSE-1.1.txt - MPL-2.0: - name: Mozilla Public License 2.0 - url: https://www.mozilla.org/media/MPL/2.0/index.815ca599c9df.txt - LGPL-3.0-only: - name: LGPL - url: https://www.gnu.org/licenses/lgpl.txt - CC0-1.0: - name: CC0 1.0 - url: https://creativecommons.org/publicdomain/zero/1.0/ - unknown: - name: unknown - url: '' - GPL-2.0: - name: GPL 2.0 - url: https://www.gnu.org/licenses/gpl-2.0.txt - EPL-1.0: - name: EPL 1.0 - url: https://www.eclipse.org/legal/epl-v10.html - Python-2.0: - name: Python Software Foundation License - url: https://hg.python.org/cpython/raw-file/89ce323357db/LICENSE - BSD-3-Clause: - name: New BSD License - url: https://opensource.org/licenses/BSD-3-Clause - MIT: - name: MIT - url: https://opensource.org/licenses/mit-license - LGPL-2.1: - name: LGPL 2.1 - url: https://opensource.org/licenses/LGPL-2.1 - Ruby: - name: Ruby - url: https://www.ruby-lang.org/en/about/license.txt - Apache-2.0: - name: Apache 2.0 - url: https://www.apache.org/licenses/LICENSE-2.0.txt - MPL-1.1: - name: MPL 1.1 - url: https://www.mozilla.org/en-US/MPL/1.1/ - BSD-4-Clause: - name: BSD - url: https://en.wikipedia.org/wiki/BSD_licenses#4-clause_license_.28original_.22BSD_License.22.29 @@ -193,21 +193,11 @@ case "$COMMAND" in if [ "$skip_prepare" != true ]; then prepare="--prepare" fi - if [ "$FEATURE_RUBY_REPORT" = 'true' ]; then - echo "Preparing JSON report..." - license_management report ${prepare} --format=json --save=gl-license-management-report.json - else - echo "Preparing HTML report..." - license_finder report ${prepare} --format=html --save=gl-license-management-report.html - fi + echo "Preparing JSON report..." + license_management report ${prepare} --format=json --save=gl-license-management-report.json # rvm removes trap in bash: https://github.com/rvm/rvm/issues/4416 declare -f restore_lockfile > /dev/null && restore_lockfile popd > /dev/null - - if [ -f "gl-license-management-report.html" ]; then - # Extract data from the HTML report and put it into a JSON file - node /html2json.js $APP_PATH/gl-license-management-report.html > $APP_PATH/gl-license-management-report.json - fi ;; *) diff --git a/test/results/js-yarn-v1.json b/test/results/js-yarn-v1.json index 2401c97..890be10 100644 --- a/test/results/js-yarn-v1.json +++ b/test/results/js-yarn-v1.json @@ -2037,7 +2037,7 @@ }, "dependency": { "name": "acorn", - "url": "https://github.com/ternjs/acorn", + "url": "https://github.com/acornjs/acorn", "description": "", "pathes": [ "." @@ -2079,7 +2079,7 @@ }, "dependency": { "name": "acorn", - "url": "https://github.com/acornjs/acorn", + "url": "https://github.com/ternjs/acorn", "description": "", "pathes": [ "." @@ -2759,7 +2759,8 @@ }, { "license": { - "name": "MIT*" + "name": "MIT", + "url": "http://opensource.org/licenses/mit-license" }, "dependency": { "name": "assert-plus", @@ -2772,8 +2773,7 @@ }, { "license": { - "name": "MIT", - "url": "http://opensource.org/licenses/mit-license" + "name": "MIT*" }, "dependency": { "name": "assert-plus", @@ -2833,7 +2833,7 @@ }, "dependency": { "name": "async", - "url": "Unknown", + "url": "https://caolan.github.io/async/", "description": "", "pathes": [ "." @@ -2847,7 +2847,7 @@ }, "dependency": { "name": "async", - "url": "https://caolan.github.io/async/", + "url": "Unknown", "description": "", "pathes": [ "." @@ -2953,7 +2953,8 @@ }, { "license": { - "name": "Apache*" + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" }, "dependency": { "name": "aws-sign2", @@ -2966,8 +2967,7 @@ }, { "license": { - "name": "Apache 2.0", - "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + "name": "Apache*" }, "dependency": { "name": "aws-sign2", @@ -3419,7 +3419,7 @@ }, "dependency": { "name": "boom", - "url": "http://hueniverse.com", + "url": "Unknown", "description": "", "pathes": [ "." @@ -3433,7 +3433,7 @@ }, "dependency": { "name": "boom", - "url": "Unknown", + "url": "http://hueniverse.com", "description": "", "pathes": [ "." @@ -3489,7 +3489,7 @@ }, "dependency": { "name": "braces", - "url": "https://github.com/jonschlinkert/braces", + "url": "https://github.com/micromatch/braces", "description": "", "pathes": [ "." @@ -3503,7 +3503,7 @@ }, "dependency": { "name": "braces", - "url": "https://github.com/micromatch/braces", + "url": "https://github.com/jonschlinkert/braces", "description": "", "pathes": [ "." @@ -3923,7 +3923,7 @@ }, "dependency": { "name": "callsites", - "url": "http://sindresorhus.com", + "url": "sindresorhus.com", "description": "", "pathes": [ "." @@ -3937,7 +3937,7 @@ }, "dependency": { "name": "callsites", - "url": "sindresorhus.com", + "url": "http://sindresorhus.com", "description": "", "pathes": [ "." @@ -5279,7 +5279,7 @@ }, "dependency": { "name": "cryptiles", - "url": "http://hueniverse.com", + "url": "Unknown", "description": "", "pathes": [ "." @@ -5293,7 +5293,7 @@ }, "dependency": { "name": "cryptiles", - "url": "Unknown", + "url": "http://hueniverse.com", "description": "", "pathes": [ "." @@ -6305,8 +6305,8 @@ }, { "license": { - "name": "Simplified BSD", - "url": "http://opensource.org/licenses/bsd-license" + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" }, "dependency": { "name": "doctrine", @@ -6319,8 +6319,8 @@ }, { "license": { - "name": "Apache 2.0", - "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + "name": "Simplified BSD", + "url": "http://opensource.org/licenses/bsd-license" }, "dependency": { "name": "doctrine", @@ -7859,7 +7859,8 @@ }, { "license": { - "name": "Apache*" + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" }, "dependency": { "name": "forever-agent", @@ -7872,8 +7873,7 @@ }, { "license": { - "name": "Apache 2.0", - "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + "name": "Apache*" }, "dependency": { "name": "forever-agent", @@ -8335,7 +8335,7 @@ }, "dependency": { "name": "glob-parent", - "url": "https://github.com/es128/glob-parent", + "url": "https://gulpjs.com/", "description": "", "pathes": [ "." @@ -8349,7 +8349,7 @@ }, "dependency": { "name": "glob-parent", - "url": "https://gulpjs.com/", + "url": "https://github.com/es128/glob-parent", "description": "", "pathes": [ "." @@ -8377,7 +8377,7 @@ }, "dependency": { "name": "globals", - "url": "sindresorhus.com", + "url": "http://sindresorhus.com", "description": "", "pathes": [ "." @@ -8405,7 +8405,7 @@ }, "dependency": { "name": "globals", - "url": "http://sindresorhus.com", + "url": "sindresorhus.com", "description": "", "pathes": [ "." @@ -8834,11 +8834,12 @@ }, { "license": { - "name": "SEE LICENSE IN LICENSE" + "name": "New BSD", + "url": "http://opensource.org/licenses/BSD-3-Clause" }, "dependency": { "name": "hoek", - "url": "http://hueniverse.com", + "url": "Unknown", "description": "", "pathes": [ "." @@ -8847,12 +8848,11 @@ }, { "license": { - "name": "New BSD", - "url": "http://opensource.org/licenses/BSD-3-Clause" + "name": "SEE LICENSE IN LICENSE" }, "dependency": { "name": "hoek", - "url": "Unknown", + "url": "http://hueniverse.com", "description": "", "pathes": [ "." @@ -9434,8 +9434,8 @@ }, { "license": { - "name": "New BSD", - "url": "http://opensource.org/licenses/BSD-3-Clause" + "name": "MIT", + "url": "http://opensource.org/licenses/mit-license" }, "dependency": { "name": "invariant", @@ -9448,8 +9448,8 @@ }, { "license": { - "name": "MIT", - "url": "http://opensource.org/licenses/mit-license" + "name": "New BSD", + "url": "http://opensource.org/licenses/BSD-3-Clause" }, "dependency": { "name": "invariant", @@ -10615,7 +10615,7 @@ }, "dependency": { "name": "jsesc", - "url": "http://mths.be/jsesc", + "url": "https://mths.be/jsesc", "description": "", "pathes": [ "." @@ -10643,7 +10643,7 @@ }, "dependency": { "name": "jsesc", - "url": "https://mths.be/jsesc", + "url": "http://mths.be/jsesc", "description": "", "pathes": [ "." @@ -12011,7 +12011,7 @@ }, "dependency": { "name": "mime-types", - "url": "http://jongleberry.com", + "url": "Unknown", "description": "", "pathes": [ "." @@ -12039,7 +12039,7 @@ }, "dependency": { "name": "mime-types", - "url": "Unknown", + "url": "http://jongleberry.com", "description": "", "pathes": [ "." @@ -12832,7 +12832,8 @@ }, { "license": { - "name": "Apache*" + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" }, "dependency": { "name": "oauth-sign", @@ -12845,8 +12846,7 @@ }, { "license": { - "name": "Apache 2.0", - "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + "name": "Apache*" }, "dependency": { "name": "oauth-sign", @@ -13883,7 +13883,7 @@ }, "dependency": { "name": "postcss", - "url": "http://postcss.org/", + "url": "https://postcss.org/", "description": "", "pathes": [ "." @@ -13897,7 +13897,7 @@ }, "dependency": { "name": "postcss", - "url": "https://postcss.org/", + "url": "http://postcss.org/", "description": "", "pathes": [ "." @@ -14216,7 +14216,7 @@ }, "dependency": { "name": "postcss-discard-overridden", - "url": "https://github.com/Justineo/postcss-discard-overridden", + "url": "https://github.com/cssnano/cssnano", "description": "", "pathes": [ "." @@ -14230,7 +14230,7 @@ }, "dependency": { "name": "postcss-discard-overridden", - "url": "https://github.com/cssnano/cssnano", + "url": "https://github.com/Justineo/postcss-discard-overridden", "description": "", "pathes": [ "." @@ -14488,7 +14488,7 @@ }, "dependency": { "name": "postcss-merge-longhand", - "url": "https://github.com/ben-eb/postcss-merge-longhand", + "url": "https://github.com/cssnano/cssnano", "description": "", "pathes": [ "." @@ -14502,7 +14502,7 @@ }, "dependency": { "name": "postcss-merge-longhand", - "url": "https://github.com/cssnano/cssnano", + "url": "https://github.com/ben-eb/postcss-merge-longhand", "description": "", "pathes": [ "." @@ -14558,7 +14558,7 @@ }, "dependency": { "name": "postcss-minify-font-values", - "url": "https://github.com/TrySound/postcss-minify-font-values", + "url": "https://github.com/cssnano/cssnano", "description": "", "pathes": [ "." @@ -14572,7 +14572,7 @@ }, "dependency": { "name": "postcss-minify-font-values", - "url": "https://github.com/cssnano/cssnano", + "url": "https://github.com/TrySound/postcss-minify-font-values", "description": "", "pathes": [ "." @@ -14586,7 +14586,7 @@ }, "dependency": { "name": "postcss-minify-gradients", - "url": "https://github.com/ben-eb/postcss-minify-gradients", + "url": "https://github.com/cssnano/cssnano", "description": "", "pathes": [ "." @@ -14600,7 +14600,7 @@ }, "dependency": { "name": "postcss-minify-gradients", - "url": "https://github.com/cssnano/cssnano", + "url": "https://github.com/ben-eb/postcss-minify-gradients", "description": "", "pathes": [ "." @@ -14614,7 +14614,7 @@ }, "dependency": { "name": "postcss-minify-params", - "url": "https://github.com/ben-eb/postcss-minify-params", + "url": "https://github.com/cssnano/cssnano", "description": "", "pathes": [ "." @@ -14628,7 +14628,7 @@ }, "dependency": { "name": "postcss-minify-params", - "url": "https://github.com/cssnano/cssnano", + "url": "https://github.com/ben-eb/postcss-minify-params", "description": "", "pathes": [ "." @@ -14739,7 +14739,7 @@ }, "dependency": { "name": "postcss-normalize-charset", - "url": "https://github.com/ben-eb/postcss-charset", + "url": "https://github.com/cssnano/cssnano", "description": "", "pathes": [ "." @@ -14753,7 +14753,7 @@ }, "dependency": { "name": "postcss-normalize-charset", - "url": "https://github.com/cssnano/cssnano", + "url": "https://github.com/ben-eb/postcss-charset", "description": "", "pathes": [ "." @@ -14851,7 +14851,7 @@ }, "dependency": { "name": "postcss-normalize-url", - "url": "https://github.com/ben-eb/postcss-normalize-url", + "url": "https://github.com/cssnano/cssnano", "description": "", "pathes": [ "." @@ -14865,7 +14865,7 @@ }, "dependency": { "name": "postcss-normalize-url", - "url": "https://github.com/cssnano/cssnano", + "url": "https://github.com/ben-eb/postcss-normalize-url", "description": "", "pathes": [ "." @@ -15001,7 +15001,7 @@ }, "dependency": { "name": "postcss-reduce-initial", - "url": "https://github.com/ben-eb/postcss-reduce-initial", + "url": "https://github.com/cssnano/cssnano", "description": "", "pathes": [ "." @@ -15015,7 +15015,7 @@ }, "dependency": { "name": "postcss-reduce-initial", - "url": "https://github.com/cssnano/cssnano", + "url": "https://github.com/ben-eb/postcss-reduce-initial", "description": "", "pathes": [ "." @@ -15029,7 +15029,7 @@ }, "dependency": { "name": "postcss-reduce-transforms", - "url": "https://github.com/ben-eb/postcss-reduce-transforms", + "url": "https://github.com/cssnano/cssnano", "description": "", "pathes": [ "." @@ -15043,7 +15043,7 @@ }, "dependency": { "name": "postcss-reduce-transforms", - "url": "https://github.com/cssnano/cssnano", + "url": "https://github.com/ben-eb/postcss-reduce-transforms", "description": "", "pathes": [ "." @@ -15183,7 +15183,7 @@ }, "dependency": { "name": "postcss-unique-selectors", - "url": "https://github.com/ben-eb/postcss-unique-selectors", + "url": "https://github.com/cssnano/cssnano", "description": "", "pathes": [ "." @@ -15197,7 +15197,7 @@ }, "dependency": { "name": "postcss-unique-selectors", - "url": "https://github.com/cssnano/cssnano", + "url": "https://github.com/ben-eb/postcss-unique-selectors", "description": "", "pathes": [ "." @@ -15626,11 +15626,12 @@ }, { "license": { - "name": "SEE LICENSE IN LICENSE" + "name": "New BSD", + "url": "http://opensource.org/licenses/BSD-3-Clause" }, "dependency": { "name": "qs", - "url": "https://github.com/hapijs/qs", + "url": "https://github.com/ljharb/qs", "description": "", "pathes": [ "." @@ -15653,12 +15654,11 @@ }, { "license": { - "name": "New BSD", - "url": "http://opensource.org/licenses/BSD-3-Clause" + "name": "SEE LICENSE IN LICENSE" }, "dependency": { "name": "qs", - "url": "https://github.com/ljharb/qs", + "url": "https://github.com/hapijs/qs", "description": "", "pathes": [ "." @@ -15909,7 +15909,7 @@ }, "dependency": { "name": "readable-stream", - "url": "http://blog.izs.me/", + "url": "Unknown", "description": "", "pathes": [ "." @@ -15923,7 +15923,7 @@ }, "dependency": { "name": "readable-stream", - "url": "Unknown", + "url": "http://blog.izs.me/", "description": "", "pathes": [ "." @@ -16702,8 +16702,8 @@ }, { "license": { - "name": "BSD", - "url": "http://en.wikipedia.org/wiki/BSD_licenses#4-clause_license_.28original_.22BSD_License.22.29" + "name": "ISC", + "url": "http://en.wikipedia.org/wiki/ISC_license" }, "dependency": { "name": "sax", @@ -16716,8 +16716,8 @@ }, { "license": { - "name": "ISC", - "url": "http://en.wikipedia.org/wiki/ISC_license" + "name": "BSD", + "url": "http://en.wikipedia.org/wiki/BSD_licenses#4-clause_license_.28original_.22BSD_License.22.29" }, "dependency": { "name": "sax", @@ -17725,7 +17725,7 @@ }, "dependency": { "name": "string_decoder", - "url": "https://github.com/rvagg/string_decoder", + "url": "https://github.com/nodejs/string_decoder", "description": "", "pathes": [ "." @@ -17753,7 +17753,7 @@ }, "dependency": { "name": "string_decoder", - "url": "https://github.com/nodejs/string_decoder", + "url": "https://github.com/rvagg/string_decoder", "description": "", "pathes": [ "." @@ -18702,7 +18702,7 @@ }, "dependency": { "name": "uglify-js", - "url": "http://lisperator.net/uglifyjs", + "url": "http://lisperator.net/", "description": "", "pathes": [ "." @@ -18730,7 +18730,7 @@ }, "dependency": { "name": "uglify-js", - "url": "http://lisperator.net/", + "url": "http://lisperator.net/uglifyjs", "description": "", "pathes": [ "." @@ -20269,7 +20269,7 @@ }, "dependency": { "name": "yargs", - "url": "http://yargs.js.org/", + "url": "http://CodeTunnel.com", "description": "", "pathes": [ "." @@ -20283,7 +20283,7 @@ }, "dependency": { "name": "yargs", - "url": "http://CodeTunnel.com", + "url": "http://yargs.js.org/", "description": "", "pathes": [ "." |
