From c2fc97c0936fd7bee1a834098c799e9d4a13eed2 Mon Sep 17 00:00:00 2001 From: Basit Ayantunde Date: Mon, 20 Nov 2023 16:26:38 +0000 Subject: [PATCH 01/55] conda service implementation removed extra semicolon added architecture to conda revisions removed base version fix version fetching fixed lint errors update added tests Fix license not detected for some maven packages When processing scancode result, license information is first derived from package level data. When this is not available, ScanCodeSummarizer goes through the root files to look for license. Filtering for root files is based on case sensitive file path matching. In maven packaging, META/INF directory is the standard (see https://issues.apache.org/jira/browse/MJAR-73?attachmentOrder=desc, and https://issues.apache.org/jira/browse/MEAR-30). Change the location for maven to reflect the casing. utils.getLicenseLocations is also used in utils.isLicenseFile. isLicenseFile uses case insensitive matching. Preserve this case insensitive file path matching by converting the result from getLicenseLocations to lowercase there. Test case: https://clearlydefined.io/definitions/maven/mavencentral/org.flywaydb/flyway-core/9.20.0 https://dev.clearlydefined.io/definitions/maven/mavencentral/org.flywaydb/flyway-core/7.7.2 Task: https://github.com/clearlydefined/service/issues/846 Fix license detection for some sourcearchive packages Task: https://github.com/clearlydefined/crawler/issues/533 fixed test update --- README.md | 4 + app.js | 1 + business/statsService.js | 2 + lib/licenseMatcher.js | 4 + lib/utils.js | 11 +- providers/summary/clearlydefined.js | 29 + routes/originConda.js | 72 + schemas/curation-1.0.json | 5 + schemas/curations-1.0.json | 5 + schemas/definition-1.0.json | 5 + ...rg.apache.httpcomponents-httpcore-4.1.json | 18684 ++++++++++++++++ test/business/summarizerTest.js | 21 + .../30.1.0/maven-flywaydb-file-license.json | 1531 ++ test/lib/util.js | 42 +- test/providers/summary/scancode.js | 7 + test/summary/clearlydefinedTests.js | 43 + 16 files changed, 20456 insertions(+), 10 deletions(-) create mode 100644 routes/originConda.js create mode 100644 test/business/evidence/sourcearchive-mavencentral-org.apache.httpcomponents-httpcore-4.1.json create mode 100644 test/business/summarizerTest.js create mode 100644 test/fixtures/scancode/30.1.0/maven-flywaydb-file-license.json diff --git a/README.md b/README.md index 0f2439663..3807d5ea4 100644 --- a/README.md +++ b/README.md @@ -243,6 +243,7 @@ The format of harvested data is tool-specific. Tool output is stored in the tool - composer - rubygem - deb +- conda ## Provider Registry @@ -258,6 +259,9 @@ The format of harvested data is tool-specific. Tool output is stored in the tool - packagist.org - proxy.golang.org - ftp.debian.org +- repo.anaconda.com/pkgs/main (anaconda-main) +- repo.anaconda.com/pkgs/r (anaconda-r) +- conda.anaconda.org/conda-forge (conda-forge) ## Tool Name Registry diff --git a/app.js b/app.js index 6859b5aa0..5547e90ce 100644 --- a/app.js +++ b/app.js @@ -184,6 +184,7 @@ function createApp(config) { app.use('/', require('./routes/index')) app.use('/origins/github', require('./routes/originGitHub')()) app.use('/origins/crate', require('./routes/originCrate')()) + app.use('/origins/conda', require('./routes/originConda')()) app.use('/origins/pod', require('./routes/originPod')()) app.use('/origins/npm', require('./routes/originNpm')()) app.use('/origins/maven', require('./routes/originMaven')()) diff --git a/business/statsService.js b/business/statsService.js index 8167713a1..507fc16c9 100644 --- a/business/statsService.js +++ b/business/statsService.js @@ -35,6 +35,8 @@ class StatsService { _getStatLookup() { return { total: () => this._getType('total'), + conda: () => this._getType('conda'), + condasource: () => this._getType('condasource'), crate: () => this._getType('crate'), gem: () => this._getType('gem'), git: () => this._getType('git'), diff --git a/lib/licenseMatcher.js b/lib/licenseMatcher.js index a4316068c..e43f542d3 100644 --- a/lib/licenseMatcher.js +++ b/lib/licenseMatcher.js @@ -111,6 +111,10 @@ class HarvestLicenseMatchPolicy { switch (type) { case 'maven': return new BaseHarvestLicenseMatchStrategy('maven', ['manifest.summary.licenses']) + case 'conda': + return new BaseHarvestLicenseMatchStrategy('conda', ['registryData.license']) + case 'condasource': + return new BaseHarvestLicenseMatchStrategy('condasource', ['registryData.license']) case 'crate': return new BaseHarvestLicenseMatchStrategy('crate', ['registryData.license']) case 'pod': diff --git a/lib/utils.js b/lib/utils.js index 7c52be210..4c95404d0 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -321,7 +321,8 @@ function isLicenseFile(filePath, coordinates) { if (_licenseFileNames.includes(basePath)) return true if (!coordinates) return false for (const prefix of getLicenseLocations(coordinates) || []) { - if (_licenseFileNames.includes(filePath.replace(prefix, ''))) return true + const prefixLowered = prefix.toLowerCase() + if (_licenseFileNames.includes(filePath.replace(prefixLowered, ''))) return true } return false } @@ -338,7 +339,13 @@ function isDeclaredLicense(identifier) { } function getLicenseLocations(coordinates) { - const map = { npm: ['package/'], maven: ['meta-inf/'], pypi: [`${coordinates.name}-${coordinates.revision}/`], go: [goLicenseLocations(coordinates)] } + const map = { + npm: ['package/'], + maven: ['META-INF/'], + pypi: [`${coordinates.name}-${coordinates.revision}/`], + go: [goLicenseLocations(coordinates)] + } + map.sourcearchive = map.maven return map[coordinates.type] } diff --git a/providers/summary/clearlydefined.js b/providers/summary/clearlydefined.js index 13278b551..cafcb01ea 100644 --- a/providers/summary/clearlydefined.js +++ b/providers/summary/clearlydefined.js @@ -20,6 +20,12 @@ const mavenBasedUrls = { gradleplugin: 'https://plugins.gradle.org/m2' } +const condaChannels = { + 'anaconda-main': 'https://repo.anaconda.com/pkgs/main', + 'anaconda-r': 'https://repo.anaconda.com/pkgs/r', + 'conda-forge': 'https://conda.anaconda.org/conda-forge' +} + class ClearlyDescribedSummarizer { constructor(options) { this.options = options @@ -44,6 +50,12 @@ class ClearlyDescribedSummarizer { case 'npm': this.addNpmData(result, data, coordinates) break + case 'conda': + this.addCondaData(result, data, coordinates) + break + case 'condasource': + this.addCondaSrcData(result, data, coordinates) + break case 'crate': this.addCrateData(result, data, coordinates) break @@ -191,6 +203,23 @@ class ClearlyDescribedSummarizer { if (licenses.length) setIfValue(result, 'licensed.declared', SPDX.normalize(licenses.join(' OR '))) } + addCondaData(result, data, coordinates) { + setIfValue(result, 'described.releaseDate', extractDate(get(data, 'releaseDate'))) + setIfValue(result, 'described.urls.download', get(data, 'downloadUrl')) + setIfValue(result, 'described.urls.registry', new URL(`${condaChannels[coordinates.provider]}`).href) + setIfValue(result, 'described.projectWebsite', get(data, 'registryData.channelData.home')) + setIfValue(result, 'licensed.declared', SPDX.normalize(data.declaredLicenses)) + } + + addCondaSrcData(result, data, coordinates) { + setIfValue(result, 'described.releaseDate', extractDate(data.releaseDate)) + setIfValue(result, 'described.urls.download', get(data, 'registryData.channelData.source_url')) + setIfValue(result, 'described.urls.registry', new URL(`${condaChannels[coordinates.provider]}`).href) + setIfValue(result, 'described.projectWebsite', get(data, 'registryData.channelData.home')) + setIfValue(result, 'licensed.declared', SPDX.normalize(data.declaredLicenses)) + } + + addCrateData(result, data, coordinates) { setIfValue(result, 'described.releaseDate', extractDate(get(data, 'registryData.created_at'))) setIfValue(result, 'described.projectWebsite', get(data, 'manifest.homepage')) diff --git a/routes/originConda.js b/routes/originConda.js new file mode 100644 index 000000000..dfa0e7c90 --- /dev/null +++ b/routes/originConda.js @@ -0,0 +1,72 @@ +// Copyright (c) Microsoft Corporation and others. Licensed under the MIT license. +// SPDX-License-Identifier: MIT + +const asyncMiddleware = require('../middleware/asyncMiddleware') +const router = require('express').Router() +const requestPromise = require('request-promise-native') +const { uniq } = require('lodash') +const condaChannels = { + 'anaconda-main': 'https://repo.anaconda.com/pkgs/main', + 'anaconda-r': 'https://repo.anaconda.com/pkgs/r', + 'conda-forge': 'https://conda.anaconda.org/conda-forge' +} + +router.get( + '/:name/:channel/revisions', + asyncMiddleware(async (request, response) => { + const { name, channel } = request.params + if (!condaChannels[channel]) { + return response.status(404).send([]) + } + const url = `${condaChannels[channel]}/channeldata.json` + const channelData = await requestPromise({ url, method: 'GET', json: true }) + if (channelData.packages[name]) { + let revisions = [] + for (let subdir of channelData.packages[name].subdirs) { + const repoUrl = `${condaChannels[channel]}/${subdir}/repodata.json` + const repoData = await requestPromise({ url: repoUrl, method: 'GET', json: true }) + if (repoData['packages']) { + Object.entries(repoData['packages']) + .forEach(([, packageData]) => { + if (packageData.name == name) { + revisions.push(`${packageData.version}_${subdir}`) + } + }) + } + if (repoData['packages.conda']) { + Object.entries(repoData['packages.conda']) + .forEach(([, packageData]) => { + if (packageData.name == name) { + revisions.push(`${packageData.version}_${subdir}`) + } + }) + } + } + return response.status(200).send(uniq(revisions)) + } else { + return response.status(404).send([]) + } + }) +) + +router.get( + '/:name/:channel', + asyncMiddleware(async (request, response) => { + const { name, channel } = request.params + if (!condaChannels[channel]) { + return response.status(404).send([]) + } + const url = `${condaChannels[channel]}/channeldata.json` + const channelData = await requestPromise({ url, method: 'GET', json: true }) + let matches = Object.entries(channelData.packages).filter(([packageName,]) => packageName.includes(name)).map( + ([packageName,]) => { return { id: packageName } } + ) + return response.status(200).send(matches) + }) +) + +function setup() { + return router +} + +module.exports = setup \ No newline at end of file diff --git a/schemas/curation-1.0.json b/schemas/curation-1.0.json index 2bd32a9b1..4de658485 100644 --- a/schemas/curation-1.0.json +++ b/schemas/curation-1.0.json @@ -24,6 +24,8 @@ "type": "string", "enum": [ "npm", + "conda", + "condasource", "crate", "git", "maven", @@ -45,8 +47,11 @@ "provider": { "type": "string", "enum": [ + "anaconda-main", + "anaconda-r", "npmjs", "cocoapods", + "conda-forge", "cratesio", "github", "gitlab", diff --git a/schemas/curations-1.0.json b/schemas/curations-1.0.json index d520d53f4..df0788cd3 100644 --- a/schemas/curations-1.0.json +++ b/schemas/curations-1.0.json @@ -26,6 +26,8 @@ "type": "string", "enum": [ "npm", + "conda", + "condasource", "crate", "git", "go", @@ -47,8 +49,11 @@ "provider": { "type": "string", "enum": [ + "anaconda-main", + "anaconda-r", "npmjs", "cocoapods", + "conda-forge", "cratesio", "github", "gitlab", diff --git a/schemas/definition-1.0.json b/schemas/definition-1.0.json index f492f2cd6..e6b7b0814 100644 --- a/schemas/definition-1.0.json +++ b/schemas/definition-1.0.json @@ -32,6 +32,8 @@ "type": { "enum": [ "npm", + "conda", + "condasource", "crate", "git", "maven", @@ -48,8 +50,11 @@ }, "provider": { "enum": [ + "anaconda-main", + "anaconda-r", "npmjs", "cocoapods", + "conda-forge", "cratesio", "github", "gitlab", diff --git a/test/business/evidence/sourcearchive-mavencentral-org.apache.httpcomponents-httpcore-4.1.json b/test/business/evidence/sourcearchive-mavencentral-org.apache.httpcomponents-httpcore-4.1.json new file mode 100644 index 000000000..f09fa783e --- /dev/null +++ b/test/business/evidence/sourcearchive-mavencentral-org.apache.httpcomponents-httpcore-4.1.json @@ -0,0 +1,18684 @@ +{ + "clearlydefined": { + "1.3.0": { + "_metadata": { + "type": "clearlydefined", + "url": "cd:/sourcearchive/mavencentral/org.apache.httpcomponents/httpcore/4.1", + "fetchedAt": "2022-04-08T16:34:36.129Z", + "links": { + "self": { + "href": "urn:sourcearchive:mavencentral:org.apache.httpcomponents:httpcore:revision:4.1:tool:clearlydefined:1.3.0", + "type": "resource" + }, + "siblings": { + "href": "urn:sourcearchive:mavencentral:org.apache.httpcomponents:httpcore:revision:4.1:tool:clearlydefined", + "type": "collection" + } + }, + "schemaVersion": "1.3.0", + "toolVersion": "1.1.0" + }, + "attachments": [ + { + "path": "META-INF/LICENSE.txt", + "token": "59899c6091b540582ed617e8eeaac4919dc985ccfc35459ee9752b699be5205b" + }, + { + "path": "META-INF/NOTICE.txt", + "token": "03b803a07efe116211322efece599d0affaaa88b46f4cdec268744823730b9a4" + } + ], + "summaryInfo": { + "k": 819, + "count": 177, + "hashes": { + "sha1": "1fdf61e5ba87e0e4676c22677e0b2fe3a05c2fd8", + "sha256": "84a272d5ef49e69cfa5b4e6ff96e6c18468d3662d277190cff067e863aa23329" + } + }, + "files": [ + { + "path": "META-INF/LICENSE.txt", + "hashes": { + "sha1": "612ad650a328990087959416a7e2fd160b1daea9", + "sha256": "59899c6091b540582ed617e8eeaac4919dc985ccfc35459ee9752b699be5205b" + } + }, + { + "path": "META-INF/MANIFEST.MF", + "hashes": { + "sha1": "d1efee3a8c440a568c4860ffa6cf4c463ff41b76", + "sha256": "c1a8d39986ee6a0d47bb8e5b3aace6874a4a074477dd991556c370525de445b0" + } + }, + { + "path": "META-INF/NOTICE.txt", + "hashes": { + "sha1": "7a2fa8cdb386ec3ab29c165f9cd21e22177011de", + "sha256": "03b803a07efe116211322efece599d0affaaa88b46f4cdec268744823730b9a4" + } + }, + { + "path": "org/apache/http/ConnectionClosedException.java", + "hashes": { + "sha1": "09d2023caa789224e6a0f9eb5aca902055fb5888", + "sha256": "f099335615f4ecb5dde0bb7a850b763da9d003950cd033e84cc5ea7a9ec243c9" + } + }, + { + "path": "org/apache/http/ConnectionReuseStrategy.java", + "hashes": { + "sha1": "c29a8161e5d618f91b0b1506468a5bf3d9059374", + "sha256": "efd8e67af436d29d9e2feab3ff8fcf19796c13a3be1d2dbc2daf204ee8c8a7a2" + } + }, + { + "path": "org/apache/http/FormattedHeader.java", + "hashes": { + "sha1": "cfa74bb83c4a74c118fa4f892cd0dfb93468264a", + "sha256": "c9b6d84eb8ae3b1a6f4826a5d9b27f810a628af5068a74b76630979d8e6f8312" + } + }, + { + "path": "org/apache/http/Header.java", + "hashes": { + "sha1": "56c8765d09f121242787eff1dcf8e2df6493121f", + "sha256": "101c5dacae9caa4ef13244bebd4c66712f95d26de9407c97d46765bf88b61dbb" + } + }, + { + "path": "org/apache/http/HeaderElement.java", + "hashes": { + "sha1": "5bf3e02851084299a5bdb0e18f95cdb6cc0849a2", + "sha256": "3c72513f693c427ca36790a2c355d6c8227e216f1f7e115bdee3ad6b07cc4363" + } + }, + { + "path": "org/apache/http/HeaderElementIterator.java", + "hashes": { + "sha1": "18bc5ab1639c36c06b55d5a6cce6e70c68a0dbd6", + "sha256": "9558cac9934d2bcc8c0c3a7818d2e864fabfbb7c606f54fd0b1272db68685686" + } + }, + { + "path": "org/apache/http/HeaderIterator.java", + "hashes": { + "sha1": "f0b4b86111a065f1d615f20eebc3eaec9cafb581", + "sha256": "a3d76b8c496e92c8aba37db466a3b4b4507372c6cc8f8239473b11b27725764f" + } + }, + { + "path": "org/apache/http/HttpClientConnection.java", + "hashes": { + "sha1": "63c61b28b460e1a35eee1ecc536112c65dab1290", + "sha256": "ac7c021084f70779053b58a37799f6cfbcfb70f01da01360241e5f12110c8597" + } + }, + { + "path": "org/apache/http/HttpConnection.java", + "hashes": { + "sha1": "9748bf675ec200953817f916f95a5e22fe3387a3", + "sha256": "d9dd8def314026290da3705d0ff47c0fa49ea1fc1968676f1738c9cacc2b8c04" + } + }, + { + "path": "org/apache/http/HttpConnectionMetrics.java", + "hashes": { + "sha1": "6b3d3a427d0cce3386aa855b4e9cf5b33ab57a3e", + "sha256": "c41d3588bcfd86fa0c95abe339fde9d09b41399395bbd3dd86c828b1c11831fe" + } + }, + { + "path": "org/apache/http/HttpEntity.java", + "hashes": { + "sha1": "0925b67f19bf70db3ff07e1653656c709b8bb405", + "sha256": "9a8f48ba253d7d45ae8911515e147ad05a324b719f9a9b5252defb0feeb29dd4" + } + }, + { + "path": "org/apache/http/HttpEntityEnclosingRequest.java", + "hashes": { + "sha1": "890b3c0d39ec5283894e84ae694380b6938bac64", + "sha256": "fc41450a39ddc81e98a9c3d601589bb9eeefb20db756a8509b69610e422a563a" + } + }, + { + "path": "org/apache/http/HttpException.java", + "hashes": { + "sha1": "ec0511e1b1d58b9e61c29b4e8306be5b223c4b6c", + "sha256": "89d0d3f328366bd441ae58d8324b80f1945cd83a723bfded83fd371651829fff" + } + }, + { + "path": "org/apache/http/HttpHeaders.java", + "hashes": { + "sha1": "186aa17acc44cdffb90f518c5c878aa0a1bff0fb", + "sha256": "b2d798e93cf4afa192498c6448a02935c7198d7bfeded3f2fc4d0a4076d6e79a" + } + }, + { + "path": "org/apache/http/HttpHost.java", + "hashes": { + "sha1": "e76f64ae716af51fd1a4c4e3ea4954f86ef45bcf", + "sha256": "46a3fbee9b27f54ce98973a8394127ea830a21e8a9424c2c7b46ddcfb67437dd" + } + }, + { + "path": "org/apache/http/HttpInetConnection.java", + "hashes": { + "sha1": "1b96c2122d5767c6d4d6cb36306c49b300ec819d", + "sha256": "610631fcf15ed211ea95150949a684bff971a6854e3bc7795d53f01ceedba7be" + } + }, + { + "path": "org/apache/http/HttpMessage.java", + "hashes": { + "sha1": "cd15c87564a9b2bc73ac874d6f476a35beb6efb8", + "sha256": "a33820a3a25448673b540838853d74d24f4225631976f870a135f97c9163b15a" + } + }, + { + "path": "org/apache/http/HttpRequest.java", + "hashes": { + "sha1": "451d11743a5e75a64a378039344783d4e80a76ef", + "sha256": "d1b5ee74bf1c7910154269ebd4cd3a77de558a3324f8e026e146a60174b7b4c0" + } + }, + { + "path": "org/apache/http/HttpRequestFactory.java", + "hashes": { + "sha1": "3f86d512781bae2ea157ee456d38ca77b3d77d88", + "sha256": "50d09950f1ac3cf1888c557cbc0f167437c8c41125ab7548d553b0e1980a86f0" + } + }, + { + "path": "org/apache/http/HttpRequestInterceptor.java", + "hashes": { + "sha1": "86457e6bccedca3a5260e4ce4d3930a005952ba2", + "sha256": "d9a5c19dc0f88dd23e9c239e15e3a09f7e02a49c1679ca3726a58f68487341e4" + } + }, + { + "path": "org/apache/http/HttpResponse.java", + "hashes": { + "sha1": "fe4530eb9215e6afeafac9c192ac3c29961acb1d", + "sha256": "237dea689375c813a1d88fafa74a75748db5466cbf655e7985df118b44af685d" + } + }, + { + "path": "org/apache/http/HttpResponseFactory.java", + "hashes": { + "sha1": "2a02ed003c2ee607dfbe5a01294dbc53823d7d5e", + "sha256": "3eb5619b9130d9338d2c531c6b7f5316010246c704a757b7258820928ca8abc8" + } + }, + { + "path": "org/apache/http/HttpResponseInterceptor.java", + "hashes": { + "sha1": "75df9e63113bddd95ea52f9d3c94a8896697b979", + "sha256": "a60aa3a6fc89dd4056d2f5a05ceb2c4eab297188d4e374562c2f450b6df7da54" + } + }, + { + "path": "org/apache/http/HttpServerConnection.java", + "hashes": { + "sha1": "8495796dee60aef41a58627dd65999ab6a8e0289", + "sha256": "8410bd782a9a6df6196674d18d427769556079ce1be2c488c0cf1d950364884b" + } + }, + { + "path": "org/apache/http/HttpStatus.java", + "hashes": { + "sha1": "265cf51183216b610b661e9dd68603cd7860846f", + "sha256": "8e354585fccb6df1dab894d75afda75c407438f0a9d646b1ac157ff1a8351277" + } + }, + { + "path": "org/apache/http/HttpVersion.java", + "hashes": { + "sha1": "aa0d140a334b5d7f5291e4adc86efd2ce63408d0", + "sha256": "5a0d5d90e4dffc6be413132699a9eced69daa330e64f53cac16f15496c049175" + } + }, + { + "path": "org/apache/http/MalformedChunkCodingException.java", + "hashes": { + "sha1": "8599f21cd854fffa1a6759f66e0fa116fea958a7", + "sha256": "66c1b594f0ac8a172db0edeacbf6ab281084e12a75862163830dc9327e49cf9f" + } + }, + { + "path": "org/apache/http/MethodNotSupportedException.java", + "hashes": { + "sha1": "0f36b2d46981f6d9125bef485ca868646ff2cbea", + "sha256": "c0d660cd20afb844e7b698bc1a88ceb3b6d0119f16dbd329c8217ef2b79c46eb" + } + }, + { + "path": "org/apache/http/NameValuePair.java", + "hashes": { + "sha1": "82c2009c5bfb0cec1431e44e615f841bd18cd07e", + "sha256": "b5f724cebc0bf4cb7a0ce2a2eef0ca2c3cb420762bc62cf1d6fe9efa7e40829f" + } + }, + { + "path": "org/apache/http/NoHttpResponseException.java", + "hashes": { + "sha1": "71292280cb85fbb291626b02e3bd5291b5eb6d45", + "sha256": "08252fc7d90b3e558d8005ce580f10db5a45c2e1dc73188fb6bcb9989842ec28" + } + }, + { + "path": "org/apache/http/ParseException.java", + "hashes": { + "sha1": "7af794c44df567bb83e64c13d537c97077962ed3", + "sha256": "9f9be341fe00e8c5ae5869a835bfb2809ff1483daefda73ce0b8edf4d2ff5433" + } + }, + { + "path": "org/apache/http/ProtocolException.java", + "hashes": { + "sha1": "f81e9b126889e99227e1c91327c23dbaa8693c42", + "sha256": "3693f68bdd62477c0dce48e7b564c164e4150bf6d60ee3835164f6287ca3d077" + } + }, + { + "path": "org/apache/http/ProtocolVersion.java", + "hashes": { + "sha1": "f0d6e0dc2c49eb902354ebc07a94a315866fecac", + "sha256": "4a71bf24e1a1d4797350c7b14320f158aaebef77d7b757ad6c1942a0a9314f5e" + } + }, + { + "path": "org/apache/http/ReasonPhraseCatalog.java", + "hashes": { + "sha1": "b931f4350037937832a7bd03b9765b600583d263", + "sha256": "84a156582b653bb0b6db10cb771aa4c390d88432f494dcbddf23141d5ceb9ed0" + } + }, + { + "path": "org/apache/http/RequestLine.java", + "hashes": { + "sha1": "b39362f01a7dc2246c3ac86a0d9b8f8dd1118d0b", + "sha256": "482f9d0d9f1263df5f6111e104dc7e1a370dd469070fd4620596c8fee4572888" + } + }, + { + "path": "org/apache/http/StatusLine.java", + "hashes": { + "sha1": "582eb19dece77407f39a0efc8cde483fcb12ee4e", + "sha256": "411a7b1aac57e7c999faee2e6a0a99843d073bf386fcae014f4667577eabd498" + } + }, + { + "path": "org/apache/http/TokenIterator.java", + "hashes": { + "sha1": "f3b13f34a13778b0a11bb4e35620ab952e8eccfe", + "sha256": "16adf73c9103e3578a42ec1ca8544539c1ccfcfb96bcaa9ebbf9bed8382f1580" + } + }, + { + "path": "org/apache/http/TruncatedChunkException.java", + "hashes": { + "sha1": "b891629e7af31971f2dd97ef03c127e2cce37a67", + "sha256": "466f09c1309f6ff8a30d884e71dd55060b65513d149ef331a0862044e020bd3a" + } + }, + { + "path": "org/apache/http/UnsupportedHttpVersionException.java", + "hashes": { + "sha1": "3241e436404a7fcf713c4dc4edeed4732b7d46a0", + "sha256": "accbbf81f70ed2018e9ab535b544a3510e4454aed3e3c227d31f4f398cd3f777" + } + }, + { + "path": "org/apache/http/entity/AbstractHttpEntity.java", + "hashes": { + "sha1": "c856d7f8e0c40b3363d5932c37ef4c25364eb9e1", + "sha256": "4973bc74482d30f303136c3abcec3a59c9dbafe336d9733d01c8b18fd445a2c5" + } + }, + { + "path": "org/apache/http/entity/BasicHttpEntity.java", + "hashes": { + "sha1": "dddf065f662285729466b433a6d606f39985a4dc", + "sha256": "23931138016cc0ecaa64337e2fee29922efcc2d78e980b934d6684c3879b34c1" + } + }, + { + "path": "org/apache/http/entity/BufferedHttpEntity.java", + "hashes": { + "sha1": "f769eb9ff59cd0a50295e2c1426c97c40780a703", + "sha256": "fbcb851afbbf9e502170611b866b2387332b7a4db4565148e09d30d67feacc30" + } + }, + { + "path": "org/apache/http/entity/ByteArrayEntity.java", + "hashes": { + "sha1": "8eef873c4e188be7b4096e70f9942d9eb1874a9e", + "sha256": "61b35bf7103817ba873e697e7929bd6230df187eaca4a6f7a03200b6c44f7468" + } + }, + { + "path": "org/apache/http/entity/ContentLengthStrategy.java", + "hashes": { + "sha1": "49020f1bf8af79239880a4f8b41502633d992f16", + "sha256": "78e6de9e6dbb6d18995b94facef6709fdcc1fb4b236a15e07b001589616533ad" + } + }, + { + "path": "org/apache/http/entity/ContentProducer.java", + "hashes": { + "sha1": "221ae577191d451997785b76dc82e331fd0243b0", + "sha256": "5d00c59332254c9a2d127228b665ed04811c5e95af4604b615cd7db3878d5769" + } + }, + { + "path": "org/apache/http/entity/EntityTemplate.java", + "hashes": { + "sha1": "af3c4f99a0b2bf3c96ec004028801ed0ba13b296", + "sha256": "9078215e94dd01b719cf5011400cb4d76767a9064e0be2bf11fed1a485bee1db" + } + }, + { + "path": "org/apache/http/entity/FileEntity.java", + "hashes": { + "sha1": "9488113243f28ff3ebba616154fea619359f7094", + "sha256": "fc57263c2eca1a2dae09a2846b40eb8035ae1d68514bc7c38591bb2bd36824da" + } + }, + { + "path": "org/apache/http/entity/HttpEntityWrapper.java", + "hashes": { + "sha1": "0df036cd1832cc65992f244f8e1b88d4bb43a0cc", + "sha256": "ae7839045c3f40e6d22cd0ff6cc60a938c4c45095a8600fa69f1bca3ad47acb9" + } + }, + { + "path": "org/apache/http/entity/InputStreamEntity.java", + "hashes": { + "sha1": "f49bfca481c386986b541f7654c190645219f4b6", + "sha256": "ed3f09fcec47927f2ca4ad075de251c4e3721366365fa2536fd02fc8ebf240d2" + } + }, + { + "path": "org/apache/http/entity/SerializableEntity.java", + "hashes": { + "sha1": "01bfbe979d8fe1045965f7eec504b2c17abd994a", + "sha256": "ed9e4157d8e5797ff4985173d346288caaecd16ea20b975f0d4ce98e35af0aa3" + } + }, + { + "path": "org/apache/http/entity/StringEntity.java", + "hashes": { + "sha1": "2f38369ca2e14d71a8e89db4821776cecd582c53", + "sha256": "0df98c4e0f2895ca4b314db65578b84922a0fcad4e713917b13f4bd6fac4509a" + } + }, + { + "path": "org/apache/http/entity/package.html", + "hashes": { + "sha1": "c266c5b824b3e75e485ce45209c2e0131c24c8e6", + "sha256": "b22ab9e8dfef76a655d7e5e75b06c1857c800e6fd3e7bc96f25fd2ee6101df12" + } + }, + { + "path": "org/apache/http/impl/AbstractHttpClientConnection.java", + "hashes": { + "sha1": "60c9506d84e43a54cb35b0131fcef2d561b65a34", + "sha256": "fd339b1b7bb4bcb00b43f9c7ebc73c0f233a2072f6dbaf129a6eb8a68aa17e90" + } + }, + { + "path": "org/apache/http/impl/AbstractHttpServerConnection.java", + "hashes": { + "sha1": "12a96894adb6367732995927f14edda5a261b9cb", + "sha256": "cb8bd21eb150495500359f2319678c7c7e449f95084a8d316167883711107815" + } + }, + { + "path": "org/apache/http/impl/DefaultConnectionReuseStrategy.java", + "hashes": { + "sha1": "b235c292e889109c039399a435fb007f5a0fc5af", + "sha256": "8a0e09f936ee1e3d0001620474ef87020acaafdc0ee6f57f7258908acd379690" + } + }, + { + "path": "org/apache/http/impl/DefaultHttpClientConnection.java", + "hashes": { + "sha1": "b0fe5863c1e98b158fbd36242f68fa2c6a6341e2", + "sha256": "b1a03e5dc39f60d137bc6405f0e470a6dc4afffacb91a023fadee4ecc847dd8a" + } + }, + { + "path": "org/apache/http/impl/DefaultHttpRequestFactory.java", + "hashes": { + "sha1": "4fef9ad94732afc71f87f012dfbb438f58b23047", + "sha256": "efbda5252580c63f7961e01c0a1191d534bda5ed397396a4343c94da81df38b3" + } + }, + { + "path": "org/apache/http/impl/DefaultHttpResponseFactory.java", + "hashes": { + "sha1": "769a10254111b78447ed43676e302f3bbd1a96f2", + "sha256": "6549ac24f24fd1101fe3fe555217fafcdde22029a4d023085d9ede9530120881" + } + }, + { + "path": "org/apache/http/impl/DefaultHttpServerConnection.java", + "hashes": { + "sha1": "efeed4107cad605354ce5e6d18d4185dd502eb1c", + "sha256": "6315cbaf09f47fd666c7305f5813e3097c7b9ac62e26727a350f08858fbeda2b" + } + }, + { + "path": "org/apache/http/impl/EnglishReasonPhraseCatalog.java", + "hashes": { + "sha1": "2101d57a0960b69fb2d67a916de7a99185ccd8b7", + "sha256": "125791049bb84bf58756e2115cd32ac8cfcafe45bb49adf486dda6d72eac6d0d" + } + }, + { + "path": "org/apache/http/impl/HttpConnectionMetricsImpl.java", + "hashes": { + "sha1": "bbd3be16c20910d708f6272f5a082fc45b400b8f", + "sha256": "bb23c2ed91cdbf0df7720be5cff437d83f07e361910dbf8bcf1b80b68eaedadc" + } + }, + { + "path": "org/apache/http/impl/NoConnectionReuseStrategy.java", + "hashes": { + "sha1": "2e88be3e8bd03bd318b54e70f12bd6d3e8cc8771", + "sha256": "91aa58c3469e9c207510c9b18a9390f002e18fa6888cd3bb5b1190cbb3bd7289" + } + }, + { + "path": "org/apache/http/impl/SocketHttpClientConnection.java", + "hashes": { + "sha1": "1112ab430be5d25afcf611678425d6e033f11233", + "sha256": "85ddaa12b1036d3fc08542f3d9c9e1f5002793e0e70d8e28cf037feec89bace7" + } + }, + { + "path": "org/apache/http/impl/SocketHttpServerConnection.java", + "hashes": { + "sha1": "63da5106c1072a70e8fe170edf5bcfbfc9784a0b", + "sha256": "79351941f73641aed3a6b92286845ed9670d7de28a9979bb0a616ee55f95e965" + } + }, + { + "path": "org/apache/http/impl/entity/EntityDeserializer.java", + "hashes": { + "sha1": "12e8954a96ecf13892b7b8c6727479f9a5173c5b", + "sha256": "1df8c3a40c50a7e5bb5ab17f53b8acb21f313811a5362585845ad8e590d491bf" + } + }, + { + "path": "org/apache/http/impl/entity/EntitySerializer.java", + "hashes": { + "sha1": "c4635ad33e925d343710055a86b7338e30356edc", + "sha256": "0f38fbfc2cd314295e953a2dc21eb7d6c0dc94190df1585d780286b4e9582ffd" + } + }, + { + "path": "org/apache/http/impl/entity/LaxContentLengthStrategy.java", + "hashes": { + "sha1": "5371bdee192f768887308da504f50793752d58b3", + "sha256": "e5a61377efc414f6e1be01d8a2c7799e56be3e1f6f2fe6a0be8216ee2f100099" + } + }, + { + "path": "org/apache/http/impl/entity/StrictContentLengthStrategy.java", + "hashes": { + "sha1": "03329a1d64525f4bee1b2e1f6aa6289388672e01", + "sha256": "645d792f910516795e6c6472966484651fd127484cde7fa546a067a31da6a335" + } + }, + { + "path": "org/apache/http/impl/entity/package.html", + "hashes": { + "sha1": "260b6466229a20b6758971d4ce808578f023ec55", + "sha256": "27570e118d8d0d806aacfb3f2a02af28f00b1bade620f98fb03cd5996b8b8f21" + } + }, + { + "path": "org/apache/http/impl/io/AbstractMessageParser.java", + "hashes": { + "sha1": "bcce8bd96a89c8613e0b76151b62bdd94f6646cf", + "sha256": "44b09128fe6ff5a6487c02aff0be592782e034fdabb3096c03bfbcee79ee2692" + } + }, + { + "path": "org/apache/http/impl/io/AbstractMessageWriter.java", + "hashes": { + "sha1": "6f3cddc463dcb271dd50a8f89acc6875e18c78d8", + "sha256": "dc9e25d003c2218db0e855a9ddd4616ab1e3219108f09912c48475a45e05ef40" + } + }, + { + "path": "org/apache/http/impl/io/AbstractSessionInputBuffer.java", + "hashes": { + "sha1": "280d25c38fcd782d5712f50812ac7048ee00e460", + "sha256": "fbbc984818b04736b574c7b7c41f9c977e3b29de4aea2e1a545cda05dcd0fe8a" + } + }, + { + "path": "org/apache/http/impl/io/AbstractSessionOutputBuffer.java", + "hashes": { + "sha1": "155392d94dbf53e4049eaaf30bdf5ec193dba293", + "sha256": "c072a70ccb3d602dbda20f7a4eca44bbce10e0051fdc9d013917b793a783ecec" + } + }, + { + "path": "org/apache/http/impl/io/ChunkedInputStream.java", + "hashes": { + "sha1": "91043294ca1b4fb0ed29d0922306e8b81f575c42", + "sha256": "0e02da42df74a94ef0da912961f281a860675caf04d9f83ab70dbedee4cf00d9" + } + }, + { + "path": "org/apache/http/impl/io/ChunkedOutputStream.java", + "hashes": { + "sha1": "66c8fe3947e0be3318383470912e99f7607ee97b", + "sha256": "645357ff47229298125f4027c1177db707842faa5c60f9a1985b6608911997f7" + } + }, + { + "path": "org/apache/http/impl/io/ContentLengthInputStream.java", + "hashes": { + "sha1": "0b09d7e84096c5a55272fec7dc535b974ad74499", + "sha256": "cf235ad44a169cb9b40a18ad9e3e203fb8e5697676bc57e6835a828029a29360" + } + }, + { + "path": "org/apache/http/impl/io/ContentLengthOutputStream.java", + "hashes": { + "sha1": "1f37392e84a4484632e54df1c3b298d2090ddffd", + "sha256": "3b613eb6a005542703f75ce06a7a780413381726cd384f8d18bfb44e7f152e54" + } + }, + { + "path": "org/apache/http/impl/io/HttpRequestParser.java", + "hashes": { + "sha1": "778c9b6c2006b609af7ca049cb97be3bb9aa1045", + "sha256": "2dd797b2a47c2ca998c3599bce364d9e3ac63b5e4c46b6b7492d43fd9d9f1a8c" + } + }, + { + "path": "org/apache/http/impl/io/HttpRequestWriter.java", + "hashes": { + "sha1": "4aa8cc0f3d6d6f8e2276aecb5155b889ad14e08b", + "sha256": "f08077f013924642aaf4142f34799102f8606a08c331c78a02e4b0c376a090c0" + } + }, + { + "path": "org/apache/http/impl/io/HttpResponseParser.java", + "hashes": { + "sha1": "63eb075d35ff008367c00356ba4204c6bcab33c1", + "sha256": "68afb93dc6e5a049d76d8cc45b9f10c478757388a7ad3b1163c5d18aad7e68f3" + } + }, + { + "path": "org/apache/http/impl/io/HttpResponseWriter.java", + "hashes": { + "sha1": "01b458af1e0e94a1bb43fa235ae65a74aab35521", + "sha256": "44c9188ec37f89bb236f81ad666ae35ae8722f95a3eda20b37757c8400c0dfcf" + } + }, + { + "path": "org/apache/http/impl/io/HttpTransportMetricsImpl.java", + "hashes": { + "sha1": "964bc9544d21664e30a4e4f3a1e65be06774e3ed", + "sha256": "11613c88aaf4bec726b63204d7e4d148ea7cf3ae222d48f0fc44028726977d7f" + } + }, + { + "path": "org/apache/http/impl/io/IdentityInputStream.java", + "hashes": { + "sha1": "6aad7307fa4218755f9bc6b4526d5b53458b3408", + "sha256": "31e7772e1b64c72144b10f6d1bd82186b8e88efccc8d23b8a65c8a974d8d0232" + } + }, + { + "path": "org/apache/http/impl/io/IdentityOutputStream.java", + "hashes": { + "sha1": "9371bad68c344a7b956232d967cb1e6ea8d4b14b", + "sha256": "839c8403418fe23528458a0b93a25f132b3a0ed8c3379b2564ac2e0ee774f4d2" + } + }, + { + "path": "org/apache/http/impl/io/SocketInputBuffer.java", + "hashes": { + "sha1": "ed5a7f617e2bd32866f075fdde93993d3ea7b8c7", + "sha256": "bac1089de574289706c37ee67400093cbcba79405c8343626e7716c64b59ded4" + } + }, + { + "path": "org/apache/http/impl/io/SocketOutputBuffer.java", + "hashes": { + "sha1": "4c8bec5f77362b6053748a8b27fc868b578f8419", + "sha256": "a509d709f958e8930e8961845bd7472dfa4afabe8c5d963597fe78fb02026d2b" + } + }, + { + "path": "org/apache/http/impl/io/package.html", + "hashes": { + "sha1": "2773d92f35d6b1cbd88d221537cdd7e3480b44d4", + "sha256": "b87368cd67f0eebb8c3389296fa7cfa24d6dc7811d28d7c4738252442e7c115b" + } + }, + { + "path": "org/apache/http/impl/package.html", + "hashes": { + "sha1": "9083591a4633127045b16597b3d84a003bd8b01c", + "sha256": "0dc0c227baf5cbacd3c8d6647bdc1d14c3bfd0da51b314a3f1ffdb9c48ac8ab9" + } + }, + { + "path": "org/apache/http/io/BufferInfo.java", + "hashes": { + "sha1": "a451af2065ac796e9de471a8ac53034436034cb7", + "sha256": "af62facfbe355811640ec108d26807e9a921d60e5765bcac649aa61ab6ab0b54" + } + }, + { + "path": "org/apache/http/io/EofSensor.java", + "hashes": { + "sha1": "bde59919372a2d411f44e64e41dc46765b0255a3", + "sha256": "239cec87cb66f3e92f7c92cfcfaaf5010b09025d5c511ce2e089aebdcc2a3ad1" + } + }, + { + "path": "org/apache/http/io/HttpMessageParser.java", + "hashes": { + "sha1": "a0d773abf026d0cf22da1ea6d4b70d54c81af45d", + "sha256": "f041200d426d06451f81ce0e6ae627c6cb5ccb5dd36fd9373a7cc8b6df38279c" + } + }, + { + "path": "org/apache/http/io/HttpMessageWriter.java", + "hashes": { + "sha1": "acc7b93dd94582725212afc4a3fec8595d15b359", + "sha256": "c10865e702feb320b68286f834f1ee549c70a6449d38aa84e6e6d029d0fc9786" + } + }, + { + "path": "org/apache/http/io/HttpTransportMetrics.java", + "hashes": { + "sha1": "dda133066859bfcdef3cb3969660e376a38b9102", + "sha256": "ba16aa1ffd17afc3d8e959e0f30d6366fa5e6de9ac1a14aedcbaa26b652c355b" + } + }, + { + "path": "org/apache/http/io/SessionInputBuffer.java", + "hashes": { + "sha1": "bbd5dea1214626b80f4ff7d189b53323b0ba4f47", + "sha256": "6ab9d9204ff4ec7cc2eb883d61637486519e024385417f6d28f09b4b2831cd22" + } + }, + { + "path": "org/apache/http/io/SessionOutputBuffer.java", + "hashes": { + "sha1": "943960df12585acaa25424d19a76b824cfac6f53", + "sha256": "bdeb303c6155621582b986dd76cad8cc3e5191f9b607cab439503293f40ef0e0" + } + }, + { + "path": "org/apache/http/io/package.html", + "hashes": { + "sha1": "8b6848fb2b344845cc90d4bb6efe3a2b1041da04", + "sha256": "8baf127027fd109a7447e45726fcda44edc3e9e81c0717396e5c048cb7beab7d" + } + }, + { + "path": "org/apache/http/message/AbstractHttpMessage.java", + "hashes": { + "sha1": "9a42d7d775119bfd8b7c8e2612003071fb998db9", + "sha256": "a046970081199a56bda5da47dbaf2062a2ed789038095e0c04ac476188a2dedc" + } + }, + { + "path": "org/apache/http/message/BasicHeader.java", + "hashes": { + "sha1": "14cb1671a2beefd0a2cd15cae74f68f6b2f16d0c", + "sha256": "bf49a25695873a27916507927eb6207bc6e157f690694e9956cd97007bb3d9ee" + } + }, + { + "path": "org/apache/http/message/BasicHeaderElement.java", + "hashes": { + "sha1": "a2fb9cb773ca7123f9a216c07985036e23354c60", + "sha256": "10a4a1ae058d83a35779aeecbc1b446b41392da3e31d426d88a831ac4984694a" + } + }, + { + "path": "org/apache/http/message/BasicHeaderElementIterator.java", + "hashes": { + "sha1": "ea37d89184c7b66bc590efa97d5a011251ded313", + "sha256": "678acd955f3630bee143891e92e967308388c05aedda7ecb75a638cb925595eb" + } + }, + { + "path": "org/apache/http/message/BasicHeaderIterator.java", + "hashes": { + "sha1": "2e5d2a6c8c23c9445f4cf0ad8b19552f0f2ba841", + "sha256": "6e4f2bef011a99d28e147e3e1470f7cc5c04736f7b8e76c13a9e1dc24ae1affa" + } + }, + { + "path": "org/apache/http/message/BasicHeaderValueFormatter.java", + "hashes": { + "sha1": "a5710d3d1ae01960607981c7d0d1b3724770c8f5", + "sha256": "1994c47ce2ca01f7ac5233de27db3d44acdc55886a9bf9c26794d766e55d0f96" + } + }, + { + "path": "org/apache/http/message/BasicHeaderValueParser.java", + "hashes": { + "sha1": "73b5947c03c8f0c36bac961b4bf8e24a5d244016", + "sha256": "6c9d52aeae1f2925891e995e6b960f58cbe9e8357295867fce3d0d92db8781d9" + } + }, + { + "path": "org/apache/http/message/BasicHttpEntityEnclosingRequest.java", + "hashes": { + "sha1": "2661e29083919cc00b79bdb4bf8ffeef92541bd3", + "sha256": "3202e673da8530d085e73ec6f9649118308be544e2a2228e49364c7c54e44ef3" + } + }, + { + "path": "org/apache/http/message/BasicHttpRequest.java", + "hashes": { + "sha1": "e2a49cab5e94ff54165ac5a69cb56b614cd0a80d", + "sha256": "61901d7802c9e6668011f1ef587ce8e9dc4be4293349a47709ae8a6f00b2c051" + } + }, + { + "path": "org/apache/http/message/BasicHttpResponse.java", + "hashes": { + "sha1": "0e0c69290347151e1f21f20f0bfc144de5864d14", + "sha256": "ec41a4c9dd0d2e5dc0b29cba8bcc3ff09cda55e95290c7afc24bf1c02e34a0f8" + } + }, + { + "path": "org/apache/http/message/BasicLineFormatter.java", + "hashes": { + "sha1": "8afa64fea967817fb1537b676a63b411dcd31295", + "sha256": "4dfe11315633be6c1a3b9ac375dfd6c15a78df2c248214cd06152e067036b046" + } + }, + { + "path": "org/apache/http/message/BasicLineParser.java", + "hashes": { + "sha1": "f76e18fc4371ed0dd4570886cc1e8cb415f518e5", + "sha256": "3c706891b57c4fe02d93db8db9372c56061fbf6789cf6695a7f73f6b79594cf4" + } + }, + { + "path": "org/apache/http/message/BasicListHeaderIterator.java", + "hashes": { + "sha1": "5b6015f6caa0b22fabbff1119846b708b1e7d4e3", + "sha256": "8bcc36dd024a3c81a7c7e18d5b5e9354eea8828ea83fe688cc4e841b10869c58" + } + }, + { + "path": "org/apache/http/message/BasicNameValuePair.java", + "hashes": { + "sha1": "d524a85abd584cda752dfb8fd12594adf1c9ef06", + "sha256": "53a8d518947f9bc30fda99d17f4e297d7de6089601f2be6add5fc927ff8fe3ff" + } + }, + { + "path": "org/apache/http/message/BasicRequestLine.java", + "hashes": { + "sha1": "202e265c0fba335068e4af1d50a06e9294a40698", + "sha256": "499e922c6e19e6c1c212ad91482eb6909c6df633a2bc8aff01a06df4c7d05b35" + } + }, + { + "path": "org/apache/http/message/BasicStatusLine.java", + "hashes": { + "sha1": "5a5893ea5dc10959b978e928e0f14d49ac57f6d2", + "sha256": "fa0cdeea5593fac415b64969f570908ca0ca188688c7d2d2ea4610b15bc70b21" + } + }, + { + "path": "org/apache/http/message/BasicTokenIterator.java", + "hashes": { + "sha1": "6482ffea3c6484bbb71a6690dd53a55b2bf578ef", + "sha256": "2893fecc5242f4fb64aaea246c27dcc6d76d4c8e04798abe4d999556e88109ef" + } + }, + { + "path": "org/apache/http/message/BufferedHeader.java", + "hashes": { + "sha1": "9f34be4657c037f393ab1e97483cdcdd9e0595f6", + "sha256": "dc9909adf83d701d378f8c575314a1ca64c7f7ae057863092f38b81069f42202" + } + }, + { + "path": "org/apache/http/message/HeaderGroup.java", + "hashes": { + "sha1": "dc2da1cbdc3d57fd190b9aea755d4de5efe3b1c7", + "sha256": "13c930e0c47cf54855ca8d8aef41d5f3ee20c6bc39f6e6ad65296253e4bdf303" + } + }, + { + "path": "org/apache/http/message/HeaderValueFormatter.java", + "hashes": { + "sha1": "04a0ca72a8cdba1652da3ebea664208f181bc29d", + "sha256": "4bebb7d1dda14cedd3648d9e89ad1d62df79cda54e220265496c6668f2d083fa" + } + }, + { + "path": "org/apache/http/message/HeaderValueParser.java", + "hashes": { + "sha1": "f38659f0b25e537cd16485fce1154c3d0459c1e3", + "sha256": "d43303a845a44817ce6b4713a11132a68008b14f13a32e7e705a6c4b2b2e6074" + } + }, + { + "path": "org/apache/http/message/LineFormatter.java", + "hashes": { + "sha1": "c3cf87e17dd359d38088d8460f35cda7a8138257", + "sha256": "532ccfe6541ba8a5d1b385f033db37a1497f171d1a2448ce035f878b05c3c5bd" + } + }, + { + "path": "org/apache/http/message/LineParser.java", + "hashes": { + "sha1": "db4f1946169f89317a6bfd7e44cceb4f84491cb0", + "sha256": "10d4c06250b2f7358514df0e697092859dc775a76891d8b5d912fbf8695ab206" + } + }, + { + "path": "org/apache/http/message/ParserCursor.java", + "hashes": { + "sha1": "63e7107771baa81115c9e88a8ebc5b0d98117f4b", + "sha256": "dc2b1b73794cbeb57160cc9d1601a862a783ad882ca7815af1c070397ea3e9a1" + } + }, + { + "path": "org/apache/http/message/package.html", + "hashes": { + "sha1": "2b0f5e66f409b5f9206672efea2e8cc1ee1a0f4f", + "sha256": "96635bfcda2f7f1d3cf880965eea48cad5ad1e8dd14279160f73a98b0f4e3e64" + } + }, + { + "path": "org/apache/http/package.html", + "hashes": { + "sha1": "328c66b3236a7defc476222e61506f028f361bc4", + "sha256": "f3183f4dc94a4794db65f16c1be324e142bce7ac210af49ebc8f754c23f2a7ea" + } + }, + { + "path": "org/apache/http/params/AbstractHttpParams.java", + "hashes": { + "sha1": "0401305548fb392a2de0f99627cef7fee68cf6cb", + "sha256": "cbf2d0c536f162cc0e2a73f920601f3a1dd7ebc067c9bc37c89d237075ac6ec2" + } + }, + { + "path": "org/apache/http/params/BasicHttpParams.java", + "hashes": { + "sha1": "6c8c7474d6497cb9099e78cbf00b664b63d81c1d", + "sha256": "2c00d90d9fe96d1f1d7c97ad06d4158c09fd802841ea9aea647bf90dd4a490ae" + } + }, + { + "path": "org/apache/http/params/CoreConnectionPNames.java", + "hashes": { + "sha1": "4fcf871dd397743bacc65231444ceb30270b90a8", + "sha256": "fd63c3e365fbd73b6adf379a98e5f987e3a87acb6106bc6e667dcbb4e5242800" + } + }, + { + "path": "org/apache/http/params/CoreProtocolPNames.java", + "hashes": { + "sha1": "004b8802e57c03ab1b5329524b6e89e7898eb7e7", + "sha256": "8233c020c99b5b15bfc06f6ef97a2c325ace82f935002045c4099d65af87e762" + } + }, + { + "path": "org/apache/http/params/DefaultedHttpParams.java", + "hashes": { + "sha1": "22df83abee8830c832d4af4892b08bb6ae570fc5", + "sha256": "9407cdb0030602c84d4502db4cac36b7e58dbf88804b9ea71d8c63bfd6cc9149" + } + }, + { + "path": "org/apache/http/params/HttpAbstractParamBean.java", + "hashes": { + "sha1": "cbeac10e6fa8cc1ab09bdbee3e9b0a34b0eda3a1", + "sha256": "6c78da7bd2e58a6341d9327d59f0d110de29ca7944c875f31818338c8e7d4144" + } + }, + { + "path": "org/apache/http/params/HttpConnectionParamBean.java", + "hashes": { + "sha1": "82bf253bcd11121d5174b1cafa7fcbc1f83e5681", + "sha256": "efbb66d76226c9103d0230406fe879f65b384911561b678261d9021edab39b97" + } + }, + { + "path": "org/apache/http/params/HttpConnectionParams.java", + "hashes": { + "sha1": "7dbff412260f193b78ee012d4cb60faf27650c33", + "sha256": "43dc7643875fe47beccb8584803d14a29bf7c6092c9dd90a2c57f258faf3efb2" + } + }, + { + "path": "org/apache/http/params/HttpParams.java", + "hashes": { + "sha1": "b120d3eb0d015196a05639f57fa255477ecc4e6f", + "sha256": "d18dfb7ec3ee04818b3733be46172f7cfb0c2bb94362665d0d2984c9d51c8c63" + } + }, + { + "path": "org/apache/http/params/HttpProtocolParamBean.java", + "hashes": { + "sha1": "1eb1027b36e512b3d26a9c7eae61cdcb88ceac0d", + "sha256": "823a4db74e1dd7c6082577662859d2378bd9071b8c6f1501b8601302962e7377" + } + }, + { + "path": "org/apache/http/params/HttpProtocolParams.java", + "hashes": { + "sha1": "388905a2839b997ceae198b0929fa716d36f27d4", + "sha256": "3e0e6490a048051a8ad40f253a6fd57e92f995d8112e0137f50c9d84108c0bc6" + } + }, + { + "path": "org/apache/http/params/SyncBasicHttpParams.java", + "hashes": { + "sha1": "abd359da40b7f4a818cddcdb84d4dbef5d89f6c8", + "sha256": "641f1fa83e3bc01525ecf0e0dc05040d1c6eec5ea0f7e47463fa2f15daa3fa13" + } + }, + { + "path": "org/apache/http/params/package.html", + "hashes": { + "sha1": "d9d41dc12a6ba536473f59b602648d028fc4d354", + "sha256": "191cbd4e0fb162cae7ffc28bd0d0bcc371df34ecf05138bfbd4689190ff868ca" + } + }, + { + "path": "org/apache/http/protocol/BasicHttpContext.java", + "hashes": { + "sha1": "c4624809af7d770dd989d0eb639dada0fda7f769", + "sha256": "929e4a95e36c0c5d204a7bde80cc3281a5c4767339d407d644fd3c9b64555af5" + } + }, + { + "path": "org/apache/http/protocol/BasicHttpProcessor.java", + "hashes": { + "sha1": "0c19c07eb2071fe7e620461d28f3b71fbdbdaacb", + "sha256": "3bd4fa8860f4a20930ea39d9950a1464ef4421cb758ecb62422966b03277a61d" + } + }, + { + "path": "org/apache/http/protocol/DefaultedHttpContext.java", + "hashes": { + "sha1": "515dc3d534b188cfa81d040576f88d87fadeb0a7", + "sha256": "ea57f0cedc41ad08ddfdfbd241652644ebb49dfd496d78c82d76ee522dd034de" + } + }, + { + "path": "org/apache/http/protocol/ExecutionContext.java", + "hashes": { + "sha1": "6511c78611616b08e74f1629e882d868e72f9543", + "sha256": "12fb56b68fc221bdc9bc5e8f62d5bf522a6dff5f6cb99a3f031a9313d054cf78" + } + }, + { + "path": "org/apache/http/protocol/HTTP.java", + "hashes": { + "sha1": "ef0615a0ab8fc87942ca79705524791bad5625f5", + "sha256": "fef037ff4122ba1325e14bc383eec00534dfda519a31ca0fb2682b490dbdbc3e" + } + }, + { + "path": "org/apache/http/protocol/HttpContext.java", + "hashes": { + "sha1": "12b772e88ff602bc87a8f9ed275c1b77858ce1a0", + "sha256": "be9e5480412f49c366161c33d1f48eacaa375f0fea0cc5f33e38f1b96fca689d" + } + }, + { + "path": "org/apache/http/protocol/HttpDateGenerator.java", + "hashes": { + "sha1": "a45cca3585a4fbb49a5857946926e8913a2ac24f", + "sha256": "be3380be989330c99239978eeed2964773bad231368faa005b6f8c2f77767a49" + } + }, + { + "path": "org/apache/http/protocol/HttpExpectationVerifier.java", + "hashes": { + "sha1": "6616a01ccdf1b6d3868b086296181ff47416574a", + "sha256": "7fcb43a27f74d9340f4ed3503cc275ea35a1216ed83cfb8dd76913ea9420ba25" + } + }, + { + "path": "org/apache/http/protocol/HttpProcessor.java", + "hashes": { + "sha1": "4170b9a6ca01df2ca720d5d5a7147fd326aaed0c", + "sha256": "40f6fda3d3cc5360a392108edf012681b8bc8b9d3728397a1d620deb05ad6424" + } + }, + { + "path": "org/apache/http/protocol/HttpRequestExecutor.java", + "hashes": { + "sha1": "0ac2362c432520beabb6a4f0f0adb71eea3efb48", + "sha256": "e456d7981602be43c863080f370e60c9389c2a275b1c31b5e5b8ce17cb43e0be" + } + }, + { + "path": "org/apache/http/protocol/HttpRequestHandler.java", + "hashes": { + "sha1": "54402e85c90ae80c183640cdb675f61e2a508d7d", + "sha256": "7652c1b5205a1e37300a6f22700b4effb5e4da08d2f51d6a91e1a4daa32e507d" + } + }, + { + "path": "org/apache/http/protocol/HttpRequestHandlerRegistry.java", + "hashes": { + "sha1": "788980988e1cefac802e1fb84b84530e13cb9d32", + "sha256": "05d069883fb4ef822bee2e36b8d4f0cc87e482c14b33416d0a8a6d6bd00a56f3" + } + }, + { + "path": "org/apache/http/protocol/HttpRequestHandlerResolver.java", + "hashes": { + "sha1": "e7a15d8c899727ffd0b878699000ea70128d4b9c", + "sha256": "1472b8fd1cbfe20116c9effa195c9e0902173c58582a903611245cf9ec4b8062" + } + }, + { + "path": "org/apache/http/protocol/HttpRequestInterceptorList.java", + "hashes": { + "sha1": "189594259d89575a67db918788e1a76cef75d1a6", + "sha256": "783b0ea7a89d2c0a956b871fd6d14d2826c39b7cd61d5f111fd1d5a62362eb7c" + } + }, + { + "path": "org/apache/http/protocol/HttpResponseInterceptorList.java", + "hashes": { + "sha1": "1e90c2b40bcd8adfecf16dd4cc5b67e6c7d7ee66", + "sha256": "74a530eb0140c8e4a8a9369b14151819fd5ae8c39ce8d1839251e2c7cfbab89a" + } + }, + { + "path": "org/apache/http/protocol/HttpService.java", + "hashes": { + "sha1": "67ede2152d32557bf806a59bdf1386259099e7eb", + "sha256": "d99cf77c4011fc9c0f35cee1200fc136af07f5dd0ce9903949274eb3724e88df" + } + }, + { + "path": "org/apache/http/protocol/ImmutableHttpProcessor.java", + "hashes": { + "sha1": "1a2aa84cd3030c635537cf3d808c22904e5d14e5", + "sha256": "5011ba129908f0d9a1b477fa2fa26f64936a087e03ca27479a4929e4237b7870" + } + }, + { + "path": "org/apache/http/protocol/RequestConnControl.java", + "hashes": { + "sha1": "9aedfb9e2cc05e9517762a751b10c89b9524b121", + "sha256": "b38094b7131e5ff8c9d83fb020127c2ab70b57c6713c3a8226def641f5b9513d" + } + }, + { + "path": "org/apache/http/protocol/RequestContent.java", + "hashes": { + "sha1": "a36a8fed96333c8515accb18b903832f57ce788b", + "sha256": "3bc87cfed9b90db3fe9419c141f22b8c08f94a5d9f8f2e040bf076ed9f9c2cab" + } + }, + { + "path": "org/apache/http/protocol/RequestDate.java", + "hashes": { + "sha1": "452da3305c92d468017d0ed99b3c804da6d41b66", + "sha256": "9b51021beb68c2b672295f6e6e1f419bf203a5a8ebbc69ba8aa279d91c5bf591" + } + }, + { + "path": "org/apache/http/protocol/RequestExpectContinue.java", + "hashes": { + "sha1": "6fde1da5af235ca29fe54107d5765a6d65450a43", + "sha256": "bfeafff347a4dbec03f6b6d239337409f755c1de779eed3c4a395fa169721f9b" + } + }, + { + "path": "org/apache/http/protocol/RequestTargetHost.java", + "hashes": { + "sha1": "ee23fd878b23fa63ed4a0ec3eddb32cfedba5340", + "sha256": "dab26fc11f0d0d3e21de7496a5ab89250afde1bf077aebc92c383e2c5b3dc4c8" + } + }, + { + "path": "org/apache/http/protocol/RequestUserAgent.java", + "hashes": { + "sha1": "0ba2f64e37fcefbafd4f7a0f531e75e037bf59f4", + "sha256": "56a3bc2f2fdb2edc5000a75df14304b733df683c320ed82374f01d3d6275a9d0" + } + }, + { + "path": "org/apache/http/protocol/ResponseConnControl.java", + "hashes": { + "sha1": "7c73e05a6a06d46c02cf2dc19aaee81d554c2af2", + "sha256": "f3369ade9292d79108d80423006037d1de553a5d08d2078a064a449f90d8d950" + } + }, + { + "path": "org/apache/http/protocol/ResponseContent.java", + "hashes": { + "sha1": "407855877268538c9ef0ba58d2687e6faf069fc7", + "sha256": "3b09c204fb4feb817bd6357d138dcdfef69d4e0cb23d2b627573f16ff9b55971" + } + }, + { + "path": "org/apache/http/protocol/ResponseDate.java", + "hashes": { + "sha1": "eb6e0cb2d8e53fa55e1cc3a4b6b9875fda25ffb7", + "sha256": "dc29840d9139ad90fe5c7f8409fcc3e40bbff5dfdaa56986e4fe284c8612a07d" + } + }, + { + "path": "org/apache/http/protocol/ResponseServer.java", + "hashes": { + "sha1": "3c1b6ec6a9034204e5d52097aebec14692c69e36", + "sha256": "2c49c45f72d137d7a453a82c58cc209483671b7a8b6095f6b3767cb7c3db4801" + } + }, + { + "path": "org/apache/http/protocol/SyncBasicHttpContext.java", + "hashes": { + "sha1": "904b96563dd0e8e3de062ee1978b7b72eb9833f6", + "sha256": "b4fdc2294fc04ddfd95eddf7a02225e8fbd92efa35b0b1a8264052fdd4c102e5" + } + }, + { + "path": "org/apache/http/protocol/UriPatternMatcher.java", + "hashes": { + "sha1": "a96a7d37174a005f5ff4c61c09cb0e58e505c515", + "sha256": "0551e322a05eae3a5cb45bbf39cd1d60722801e819056ad05adba5656ac01165" + } + }, + { + "path": "org/apache/http/protocol/package.html", + "hashes": { + "sha1": "31dc05a3967b44dac9831ce7005296fc39b4c098", + "sha256": "88ed7f779110eba2b3a4f5091b786db359c99f65d1b459af423d1d43c3e1b9f9" + } + }, + { + "path": "org/apache/http/util/ByteArrayBuffer.java", + "hashes": { + "sha1": "1f43327077a86f45f27b9b8f81f534ac2c6247fc", + "sha256": "6e0128327f1ace03787d8b618456adde82463c8f6810ea5902501736e7f3a2fc" + } + }, + { + "path": "org/apache/http/util/CharArrayBuffer.java", + "hashes": { + "sha1": "b8a396d8e1b5eaebdfff7582615d0abc29ad10cc", + "sha256": "9d2dd7cd79b0579faf3bd740b21cb9c868a4fe34695361372b99864b9ea9528a" + } + }, + { + "path": "org/apache/http/util/EncodingUtils.java", + "hashes": { + "sha1": "ebcb4d1a312503192ed1d40c1750eccf9b0496bc", + "sha256": "d14ede17be75a7754d4901298d92c809f4a8d591d1232252c5019eb2f72a7335" + } + }, + { + "path": "org/apache/http/util/EntityUtils.java", + "hashes": { + "sha1": "5f32e1f2fb8848b00854498e26fa52b83fd03cff", + "sha256": "9a049e8dba1d2d7ce78274bc6f06002b50e7681f9816c73446a5cbb1e2eef13f" + } + }, + { + "path": "org/apache/http/util/ExceptionUtils.java", + "hashes": { + "sha1": "2c4bc02be0d5e4ef35c6c2e0e06fa57f5f195113", + "sha256": "dc63d8ec55ac4a2fc9f1ee6123a38992ce64f7d031eb23e052bdfff25d28957a" + } + }, + { + "path": "org/apache/http/util/LangUtils.java", + "hashes": { + "sha1": "ecfd92682e5e564c2193cb1fbf460f101716714e", + "sha256": "022b32fb3b265d15b8d5fe9cbf6c3f0dcf7faf66fbe0b2030de5bac260a9fd42" + } + }, + { + "path": "org/apache/http/util/VersionInfo.java", + "hashes": { + "sha1": "d9f180dd61eabf70a1b9cfed4fa74d6312ad16d0", + "sha256": "29c288cbb90783359e367ab681d40b685f31189d11e3bf06dbe4179323cd94fc" + } + }, + { + "path": "org/apache/http/util/package.html", + "hashes": { + "sha1": "6e7e6142aa8c0380a56c3b1d3298b7de49c2d3e4", + "sha256": "146eb50b3c8c9ddad34517f56ef96d08d3873d02c06569ba051d16c690172479" + } + }, + { + "path": "org/apache/http/version.properties", + "hashes": { + "sha1": "0cfffd33e6ddaa9fb575bf1e57cddbc2d3254fff", + "sha256": "987b51fc9582d4f9a22c22b6b248778f8def520b5a5b258e7c59737e280a0c1f" + } + } + ], + "releaseDate": "2010-11-13T19:11:34.000Z" + } + }, + "licensee": { + "9.14.0": { + "_metadata": { + "type": "licensee", + "url": "cd:/sourcearchive/mavencentral/org.apache.httpcomponents/httpcore/4.1", + "fetchedAt": "2022-04-08T16:34:36.129Z", + "links": { + "self": { + "href": "urn:sourcearchive:mavencentral:org.apache.httpcomponents:httpcore:revision:4.1:tool:licensee:9.14.0", + "type": "resource" + }, + "siblings": { + "href": "urn:sourcearchive:mavencentral:org.apache.httpcomponents:httpcore:revision:4.1:tool:licensee", + "type": "collection" + } + }, + "schemaVersion": "9.14.0", + "toolVersion": "9.12.0", + "processedAt": "2022-04-08T16:34:36.694Z" + }, + "licensee": { + "version": "9.12.0", + "parameters": [ + "--json", + "--no-readme" + ], + "output": { + "contentType": "application/json", + "content": { + "licenses": [ + { + "key": "apache-2.0", + "spdx_id": "Apache-2.0", + "meta": { + "title": "Apache License 2.0", + "source": "https://spdx.org/licenses/Apache-2.0.html", + "description": "A permissive license whose main conditions require preservation of copyright and license notices. Contributors provide an express grant of patent rights. Licensed works, modifications, and larger works may be distributed under different terms and without source code.", + "how": "Create a text file (typically named LICENSE or LICENSE.txt) in the root of your source code and copy the text of the license into the file.", + "using": [ + { + "Kubernetes": "https://github.com/kubernetes/kubernetes/blob/master/LICENSE" + }, + { + "PDF.js": "https://github.com/mozilla/pdf.js/blob/master/LICENSE" + }, + { + "Swift": "https://github.com/apple/swift/blob/master/LICENSE.txt" + } + ], + "featured": true, + "hidden": false, + "nickname": null, + "note": "The Apache Foundation recommends taking the additional step of adding a boilerplate notice to the header of each source file. You can find the notice at the very end of the license in the appendix." + }, + "url": "http://choosealicense.com/licenses/apache-2.0/", + "rules": { + "permissions": [ + { + "tag": "commercial-use", + "label": "Commercial use", + "description": "This software and derivatives may be used for commercial purposes." + }, + { + "tag": "modifications", + "label": "Modification", + "description": "This software may be modified." + }, + { + "tag": "distribution", + "label": "Distribution", + "description": "This software may be distributed." + }, + { + "tag": "patent-use", + "label": "Patent use", + "description": "This license provides an express grant of patent rights from contributors." + }, + { + "tag": "private-use", + "label": "Private use", + "description": "This software may be used and modified in private." + } + ], + "conditions": [ + { + "tag": "include-copyright", + "label": "License and copyright notice", + "description": "A copy of the license and copyright notice must be included with the software." + }, + { + "tag": "document-changes", + "label": "State changes", + "description": "Changes made to the code must be documented." + } + ], + "limitations": [ + { + "tag": "trademark-use", + "label": "Trademark use", + "description": "This license explicitly states that it does NOT grant trademark rights, even though licenses without such a statement probably do not grant any implicit trademark rights." + }, + { + "tag": "liability", + "label": "Liability", + "description": "This license includes a limitation of liability." + }, + { + "tag": "warranty", + "label": "Warranty", + "description": "The license explicitly states that it does NOT provide any warranty." + } + ] + }, + "fields": [], + "other": false, + "gpl": false, + "lgpl": false, + "cc": false + } + ], + "matched_files": [ + { + "filename": "META-INF/LICENSE.txt", + "content": " Apache License\n Version 2.0, January 2004\n http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n \"License\" shall mean the terms and conditions for use, reproduction,\n and distribution as defined by Sections 1 through 9 of this document.\n\n \"Licensor\" shall mean the copyright owner or entity authorized by\n the copyright owner that is granting the License.\n\n \"Legal Entity\" shall mean the union of the acting entity and all\n other entities that control, are controlled by, or are under common\n control with that entity. For the purposes of this definition,\n \"control\" means (i) the power, direct or indirect, to cause the\n direction or management of such entity, whether by contract or\n otherwise, or (ii) ownership of fifty percent (50%) or more of the\n outstanding shares, or (iii) beneficial ownership of such entity.\n\n \"You\" (or \"Your\") shall mean an individual or Legal Entity\n exercising permissions granted by this License.\n\n \"Source\" form shall mean the preferred form for making modifications,\n including but not limited to software source code, documentation\n source, and configuration files.\n\n \"Object\" form shall mean any form resulting from mechanical\n transformation or translation of a Source form, including but\n not limited to compiled object code, generated documentation,\n and conversions to other media types.\n\n \"Work\" shall mean the work of authorship, whether in Source or\n Object form, made available under the License, as indicated by a\n copyright notice that is included in or attached to the work\n (an example is provided in the Appendix below).\n\n \"Derivative Works\" shall mean any work, whether in Source or Object\n form, that is based on (or derived from) the Work and for which the\n editorial revisions, annotations, elaborations, or other modifications\n represent, as a whole, an original work of authorship. For the purposes\n of this License, Derivative Works shall not include works that remain\n separable from, or merely link (or bind by name) to the interfaces of,\n the Work and Derivative Works thereof.\n\n \"Contribution\" shall mean any work of authorship, including\n the original version of the Work and any modifications or additions\n to that Work or Derivative Works thereof, that is intentionally\n submitted to Licensor for inclusion in the Work by the copyright owner\n or by an individual or Legal Entity authorized to submit on behalf of\n the copyright owner. For the purposes of this definition, \"submitted\"\n means any form of electronic, verbal, or written communication sent\n to the Licensor or its representatives, including but not limited to\n communication on electronic mailing lists, source code control systems,\n and issue tracking systems that are managed by, or on behalf of, the\n Licensor for the purpose of discussing and improving the Work, but\n excluding communication that is conspicuously marked or otherwise\n designated in writing by the copyright owner as \"Not a Contribution.\"\n\n \"Contributor\" shall mean Licensor and any individual or Legal Entity\n on behalf of whom a Contribution has been received by Licensor and\n subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n this License, each Contributor hereby grants to You a perpetual,\n worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n copyright license to reproduce, prepare Derivative Works of,\n publicly display, publicly perform, sublicense, and distribute the\n Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n this License, each Contributor hereby grants to You a perpetual,\n worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n (except as stated in this section) patent license to make, have made,\n use, offer to sell, sell, import, and otherwise transfer the Work,\n where such license applies only to those patent claims licensable\n by such Contributor that are necessarily infringed by their\n Contribution(s) alone or by combination of their Contribution(s)\n with the Work to which such Contribution(s) was submitted. If You\n institute patent litigation against any entity (including a\n cross-claim or counterclaim in a lawsuit) alleging that the Work\n or a Contribution incorporated within the Work constitutes direct\n or contributory patent infringement, then any patent licenses\n granted to You under this License for that Work shall terminate\n as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n Work or Derivative Works thereof in any medium, with or without\n modifications, and in Source or Object form, provided that You\n meet the following conditions:\n\n (a) You must give any other recipients of the Work or\n Derivative Works a copy of this License; and\n\n (b) You must cause any modified files to carry prominent notices\n stating that You changed the files; and\n\n (c) You must retain, in the Source form of any Derivative Works\n that You distribute, all copyright, patent, trademark, and\n attribution notices from the Source form of the Work,\n excluding those notices that do not pertain to any part of\n the Derivative Works; and\n\n (d) If the Work includes a \"NOTICE\" text file as part of its\n distribution, then any Derivative Works that You distribute must\n include a readable copy of the attribution notices contained\n within such NOTICE file, excluding those notices that do not\n pertain to any part of the Derivative Works, in at least one\n of the following places: within a NOTICE text file distributed\n as part of the Derivative Works; within the Source form or\n documentation, if provided along with the Derivative Works; or,\n within a display generated by the Derivative Works, if and\n wherever such third-party notices normally appear. The contents\n of the NOTICE file are for informational purposes only and\n do not modify the License. You may add Your own attribution\n notices within Derivative Works that You distribute, alongside\n or as an addendum to the NOTICE text from the Work, provided\n that such additional attribution notices cannot be construed\n as modifying the License.\n\n You may add Your own copyright statement to Your modifications and\n may provide additional or different license terms and conditions\n for use, reproduction, or distribution of Your modifications, or\n for any such Derivative Works as a whole, provided Your use,\n reproduction, and distribution of the Work otherwise complies with\n the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n any Contribution intentionally submitted for inclusion in the Work\n by You to the Licensor shall be under the terms and conditions of\n this License, without any additional terms or conditions.\n Notwithstanding the above, nothing herein shall supersede or modify\n the terms of any separate license agreement you may have executed\n with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n names, trademarks, service marks, or product names of the Licensor,\n except as required for reasonable and customary use in describing the\n origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n agreed to in writing, Licensor provides the Work (and each\n Contributor provides its Contributions) on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n implied, including, without limitation, any warranties or conditions\n of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n PARTICULAR PURPOSE. You are solely responsible for determining the\n appropriateness of using or redistributing the Work and assume any\n risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n whether in tort (including negligence), contract, or otherwise,\n unless required by applicable law (such as deliberate and grossly\n negligent acts) or agreed to in writing, shall any Contributor be\n liable to You for damages, including any direct, indirect, special,\n incidental, or consequential damages of any character arising as a\n result of this License or out of the use or inability to use the\n Work (including but not limited to damages for loss of goodwill,\n work stoppage, computer failure or malfunction, or any and all\n other commercial damages or losses), even if such Contributor\n has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n the Work or Derivative Works thereof, You may choose to offer,\n and charge a fee for, acceptance of support, warranty, indemnity,\n or other liability obligations and/or rights consistent with this\n License. However, in accepting such obligations, You may act only\n on Your own behalf and on Your sole responsibility, not on behalf\n of any other Contributor, and only if You agree to indemnify,\n defend, and hold each Contributor harmless for any liability\n incurred by, or claims asserted against, such Contributor by reason\n of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS", + "content_hash": "ab3901051663cb8ee5dea9ebdff406ad136910e3", + "content_normalized": "terms and conditions for use, reproduction, and distribution - 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 holder or entity authorized by the copyright holder 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 holder or by an individual or legal entity authorized to submit on behalf of the copyright holder. 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 holder 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. - 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. - 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. - 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. - 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. - 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. - 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. - 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. - 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.", + "matcher": { + "name": "exact", + "confidence": 100 + }, + "matched_license": "Apache-2.0", + "attribution": null + } + ] + } + } + }, + "attachments": [ + { + "path": "META-INF/LICENSE.txt", + "token": "59899c6091b540582ed617e8eeaac4919dc985ccfc35459ee9752b699be5205b" + } + ] + } + }, + "scancode": { + "30.3.0": { + "_metadata": { + "type": "scancode", + "url": "cd:/sourcearchive/mavencentral/org.apache.httpcomponents/httpcore/4.1", + "fetchedAt": "2022-04-08T16:34:36.364Z", + "links": { + "self": { + "href": "urn:sourcearchive:mavencentral:org.apache.httpcomponents:httpcore:revision:4.1:tool:scancode:30.3.0", + "type": "resource" + }, + "siblings": { + "href": "urn:sourcearchive:mavencentral:org.apache.httpcomponents:httpcore:revision:4.1:tool:scancode", + "type": "collection" + } + }, + "schemaVersion": "30.3.0", + "toolVersion": "30.1.0", + "contentType": "application/json", + "releaseDate": "2010-11-13T19:11:34.000Z", + "processedAt": "2022-04-08T16:35:41.580Z" + }, + "content": { + "headers": [ + { + "tool_name": "scancode-toolkit", + "tool_version": "30.1.0", + "options": { + "input": [ + "/tmp/cd-uL4uDm" + ], + "--classify": true, + "--copyright": true, + "--email": true, + "--generated": true, + "--info": true, + "--is-license-text": true, + "--json-pp": "/tmp/cd-xabnUJ", + "--license": true, + "--license-clarity-score": true, + "--license-text": true, + "--license-text-diagnostics": true, + "--package": true, + "--processes": "2", + "--strip-root": true, + "--summary": true, + "--summary-key-files": true, + "--timeout": "1000.0", + "--url": true + }, + "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", + "start_timestamp": "2022-04-08T163437.512396", + "end_timestamp": "2022-04-08T163540.673801", + "output_format_version": "1.0.0", + "duration": 63.161415576934814, + "message": null, + "errors": [], + "extra_data": { + "spdx_license_list_version": "3.14", + "OUTDATED": "WARNING: Outdated ScanCode Toolkit version! You are using an outdated version of ScanCode Toolkit: 30.1.0 released on: 2021-09-24. A new version is available with important improvements including bug and security fixes, updated license, copyright and package detection, and improved scanning accuracy. Please download and install the latest version of ScanCode. Visit https://github.com/nexB/scancode-toolkit/releases for details.", + "files_count": 177 + } + } + ], + "summary": { + "license_expressions": [ + { + "value": "apache-2.0", + "count": 176 + } + ], + "copyrights": [ + { + "value": null, + "count": 176 + }, + { + "value": "Copyright The Apache Software Foundation", + "count": 1 + } + ], + "holders": [ + { + "value": null, + "count": 176 + }, + { + "value": "The Apache Software Foundation", + "count": 1 + } + ], + "authors": [ + { + "value": null, + "count": 176 + }, + { + "value": "The Apache Software Foundation (http://www.apache.org/)", + "count": 1 + } + ], + "programming_language": [ + { + "value": "Java", + "count": 163 + }, + { + "value": "HTML", + "count": 10 + } + ], + "packages": [] + }, + "license_clarity_score": { + "score": 15, + "declared": false, + "discovered": 0.01, + "consistency": false, + "spdx": false, + "license_texts": true + }, + "summary_of_key_files": { + "license_expressions": [], + "copyrights": [], + "holders": [], + "authors": [], + "programming_language": [] + }, + "files": [ + { + "path": "META-INF", + "type": "directory", + "name": "META-INF", + "base_name": "META-INF", + "extension": "", + "size": 0, + "date": null, + "sha1": null, + "md5": null, + "sha256": null, + "mime_type": null, + "file_type": null, + "programming_language": null, + "is_binary": false, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": true, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 3, + "dirs_count": 0, + "size_count": 10484, + "scan_errors": [] + }, + { + "path": "META-INF/LICENSE.txt", + "type": "file", + "name": "LICENSE.txt", + "base_name": "LICENSE", + "extension": ".txt", + "size": 10172, + "date": "2010-11-13", + "sha1": "612ad650a328990087959416a7e2fd160b1daea9", + "md5": "34f8c1142fd6208a8be89399cb521df9", + "sha256": "59899c6091b540582ed617e8eeaac4919dc985ccfc35459ee9752b699be5205b", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": null, + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 1, + "end_line": 176, + "matched_rule": { + "identifier": "apache-2.0_93.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": true, + "is_license_notice": false, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "1-hash", + "rule_length": 1407, + "matched_length": 1407, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Apache License\n Version 2.0, January 2004\n http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n \"License\" shall mean the terms and conditions for use, reproduction,\n and distribution as defined by Sections 1 through 9 of this document.\n\n \"Licensor\" shall mean the copyright owner or entity authorized by\n the copyright owner that is granting the License.\n\n \"Legal Entity\" shall mean the union of the acting entity and all\n other entities that control, are controlled by, or are under common\n control with that entity. For the purposes of this definition,\n \"control\" means (i) the power, direct or indirect, to cause the\n direction or management of such entity, whether by contract or\n otherwise, or (ii) ownership of fifty percent (50%) or more of the\n outstanding shares, or (iii) beneficial ownership of such entity.\n\n \"You\" (or \"Your\") shall mean an individual or Legal Entity\n exercising permissions granted by this License.\n\n \"Source\" form shall mean the preferred form for making modifications,\n including but not limited to software source code, documentation\n source, and configuration files.\n\n \"Object\" form shall mean any form resulting from mechanical\n transformation or translation of a Source form, including but\n not limited to compiled object code, generated documentation,\n and conversions to other media types.\n\n \"Work\" shall mean the work of authorship, whether in Source or\n Object form, made available under the License, as indicated by a\n copyright notice that is included in or attached to the work\n (an example is provided in the Appendix below).\n\n \"Derivative Works\" shall mean any work, whether in Source or Object\n form, that is based on (or derived from) the Work and for which the\n editorial revisions, annotations, elaborations, or other modifications\n represent, as a whole, an original work of authorship. For the purposes\n of this License, Derivative Works shall not include works that remain\n separable from, or merely link (or bind by name) to the interfaces of,\n the Work and Derivative Works thereof.\n\n \"Contribution\" shall mean any work of authorship, including\n the original version of the Work and any modifications or additions\n to that Work or Derivative Works thereof, that is intentionally\n submitted to Licensor for inclusion in the Work by the copyright owner\n or by an individual or Legal Entity authorized to submit on behalf of\n the copyright owner. For the purposes of this definition, \"submitted\"\n means any form of electronic, verbal, or written communication sent\n to the Licensor or its representatives, including but not limited to\n communication on electronic mailing lists, source code control systems,\n and issue tracking systems that are managed by, or on behalf of, the\n Licensor for the purpose of discussing and improving the Work, but\n excluding communication that is conspicuously marked or otherwise\n designated in writing by the copyright owner as \"Not a Contribution.\"\n\n \"Contributor\" shall mean Licensor and any individual or Legal Entity\n on behalf of whom a Contribution has been received by Licensor and\n subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n this License, each Contributor hereby grants to You a perpetual,\n worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n copyright license to reproduce, prepare Derivative Works of,\n publicly display, publicly perform, sublicense, and distribute the\n Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n this License, each Contributor hereby grants to You a perpetual,\n worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n (except as stated in this section) patent license to make, have made,\n use, offer to sell, sell, import, and otherwise transfer the Work,\n where such license applies only to those patent claims licensable\n by such Contributor that are necessarily infringed by their\n Contribution(s) alone or by combination of their Contribution(s)\n with the Work to which such Contribution(s) was submitted. If You\n institute patent litigation against any entity (including a\n cross-claim or counterclaim in a lawsuit) alleging that the Work\n or a Contribution incorporated within the Work constitutes direct\n or contributory patent infringement, then any patent licenses\n granted to You under this License for that Work shall terminate\n as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n Work or Derivative Works thereof in any medium, with or without\n modifications, and in Source or Object form, provided that You\n meet the following conditions:\n\n (a) You must give any other recipients of the Work or\n Derivative Works a copy of this License; and\n\n (b) You must cause any modified files to carry prominent notices\n stating that You changed the files; and\n\n (c) You must retain, in the Source form of any Derivative Works\n that You distribute, all copyright, patent, trademark, and\n attribution notices from the Source form of the Work,\n excluding those notices that do not pertain to any part of\n the Derivative Works; and\n\n (d) If the Work includes a \"NOTICE\" text file as part of its\n distribution, then any Derivative Works that You distribute must\n include a readable copy of the attribution notices contained\n within such NOTICE file, excluding those notices that do not\n pertain to any part of the Derivative Works, in at least one\n of the following places: within a NOTICE text file distributed\n as part of the Derivative Works; within the Source form or\n documentation, if provided along with the Derivative Works; or,\n within a display generated by the Derivative Works, if and\n wherever such third-party notices normally appear. The contents\n of the NOTICE file are for informational purposes only and\n do not modify the License. You may add Your own attribution\n notices within Derivative Works that You distribute, alongside\n or as an addendum to the NOTICE text from the Work, provided\n that such additional attribution notices cannot be construed\n as modifying the License.\n\n You may add Your own copyright statement to Your modifications and\n may provide additional or different license terms and conditions\n for use, reproduction, or distribution of Your modifications, or\n for any such Derivative Works as a whole, provided Your use,\n reproduction, and distribution of the Work otherwise complies with\n the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n any Contribution intentionally submitted for inclusion in the Work\n by You to the Licensor shall be under the terms and conditions of\n this License, without any additional terms or conditions.\n Notwithstanding the above, nothing herein shall supersede or modify\n the terms of any separate license agreement you may have executed\n with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n names, trademarks, service marks, or product names of the Licensor,\n except as required for reasonable and customary use in describing the\n origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n agreed to in writing, Licensor provides the Work (and each\n Contributor provides its Contributions) on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n implied, including, without limitation, any warranties or conditions\n of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n PARTICULAR PURPOSE. You are solely responsible for determining the\n appropriateness of using or redistributing the Work and assume any\n risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n whether in tort (including negligence), contract, or otherwise,\n unless required by applicable law (such as deliberate and grossly\n negligent acts) or agreed to in writing, shall any Contributor be\n liable to You for damages, including any direct, indirect, special,\n incidental, or consequential damages of any character arising as a\n result of this License or out of the use or inability to use the\n Work (including but not limited to damages for loss of goodwill,\n work stoppage, computer failure or malfunction, or any and all\n other commercial damages or losses), even if such Contributor\n has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n the Work or Derivative Works thereof, You may choose to offer,\n and charge a fee for, acceptance of support, warranty, indemnity,\n or other liability obligations and/or rights consistent with this\n License. However, in accepting such obligations, You may act only\n on Your own behalf and on Your sole responsibility, not on behalf\n of any other Contributor, and only if You agree to indemnify,\n defend, and hold each Contributor harmless for any liability\n incurred by, or claims asserted against, such Contributor by reason\n of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS" + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 100, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/", + "start_line": 3, + "end_line": 3 + } + ], + "is_legal": true, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": true, + "is_license_text": true, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "META-INF/MANIFEST.MF", + "type": "file", + "name": "MANIFEST.MF", + "base_name": "MANIFEST", + "extension": ".MF", + "size": 123, + "date": "2010-11-13", + "sha1": "d1efee3a8c440a568c4860ffa6cf4c463ff41b76", + "md5": "077d186f81cb0c703be1f2ef6c9bdd4a", + "sha256": "c1a8d39986ee6a0d47bb8e5b3aace6874a4a074477dd991556c370525de445b0", + "mime_type": "text/plain", + "file_type": "ASCII text, with CRLF line terminators", + "programming_language": null, + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [], + "is_legal": false, + "is_manifest": true, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "META-INF/NOTICE.txt", + "type": "file", + "name": "NOTICE.txt", + "base_name": "NOTICE", + "extension": ".txt", + "size": 189, + "date": "2010-11-13", + "sha1": "7a2fa8cdb386ec3ab29c165f9cd21e22177011de", + "md5": "313b4ac803c0b94d65dbf5f6ffee5b62", + "sha256": "03b803a07efe116211322efece599d0affaaa88b46f4cdec268744823730b9a4", + "mime_type": "text/plain", + "file_type": "ASCII text, with CRLF line terminators", + "programming_language": null, + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 95, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 4, + "end_line": 5, + "matched_rule": { + "identifier": "apache_no-version_1.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": true, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 14, + "matched_length": 14, + "match_coverage": 100, + "rule_relevance": 95 + }, + "matched_text": "This product includes software developed by\r\nThe Apache Software Foundation (http://www.apache.org/)." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 58.33, + "copyrights": [ + { + "value": "Copyright 2005-2010 The Apache Software Foundation", + "start_line": 2, + "end_line": 2 + } + ], + "holders": [ + { + "value": "The Apache Software Foundation", + "start_line": 2, + "end_line": 2 + } + ], + "authors": [ + { + "value": "The Apache Software Foundation (http://www.apache.org/)", + "start_line": 4, + "end_line": 5 + } + ], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/", + "start_line": 5, + "end_line": 5 + } + ], + "is_legal": true, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org", + "type": "directory", + "name": "org", + "base_name": "org", + "extension": "", + "size": 0, + "date": null, + "sha1": null, + "md5": null, + "sha256": null, + "mime_type": null, + "file_type": null, + "programming_language": null, + "is_binary": false, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": true, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 174, + "dirs_count": 11, + "size_count": 771044, + "scan_errors": [] + }, + { + "path": "org/apache", + "type": "directory", + "name": "apache", + "base_name": "apache", + "extension": "", + "size": 0, + "date": null, + "sha1": null, + "md5": null, + "sha256": null, + "mime_type": null, + "file_type": null, + "programming_language": null, + "is_binary": false, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 174, + "dirs_count": 10, + "size_count": 771044, + "scan_errors": [] + }, + { + "path": "org/apache/http", + "type": "directory", + "name": "http", + "base_name": "http", + "extension": "", + "size": 0, + "date": null, + "sha1": null, + "md5": null, + "sha256": null, + "mime_type": null, + "file_type": null, + "programming_language": null, + "is_binary": false, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 174, + "dirs_count": 9, + "size_count": 771044, + "scan_errors": [] + }, + { + "path": "org/apache/http/ConnectionClosedException.java", + "type": "file", + "name": "ConnectionClosedException.java", + "base_name": "ConnectionClosedException", + "extension": ".java", + "size": 1709, + "date": "2010-11-13", + "sha1": "09d2023caa789224e6a0f9eb5aca902055fb5888", + "md5": "8a827bf30df43515393726b7019abcf0", + "sha256": "f099335615f4ecb5dde0bb7a850b763da9d003950cd033e84cc5ea7a9ec243c9", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 75, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/ConnectionReuseStrategy.java", + "type": "file", + "name": "ConnectionReuseStrategy.java", + "base_name": "ConnectionReuseStrategy", + "extension": ".java", + "size": 2859, + "date": "2010-11-13", + "sha1": "c29a8161e5d618f91b0b1506468a5bf3d9059374", + "md5": "8b25ebf3b59bc49149fd332be63340ec", + "sha256": "efd8e67af436d29d9e2feab3ff8fcf19796c13a3be1d2dbc2daf204ee8c8a7a2", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 40.32, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/FormattedHeader.java", + "type": "file", + "name": "FormattedHeader.java", + "base_name": "FormattedHeader", + "extension": ".java", + "size": 2139, + "date": "2010-11-13", + "sha1": "cfa74bb83c4a74c118fa4f892cd0dfb93468264a", + "md5": "8a3eac13ba4d2d02851955a56a75585b", + "sha256": "c9b6d84eb8ae3b1a6f4826a5d9b27f810a628af5068a74b76630979d8e6f8312", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 55.15, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/Header.java", + "type": "file", + "name": "Header.java", + "base_name": "Header", + "extension": ".java", + "size": 2085, + "date": "2010-11-13", + "sha1": "56c8765d09f121242787eff1dcf8e2df6493121f", + "md5": "4e19bae060f7cad5c521f4cb1cd66a89", + "sha256": "101c5dacae9caa4ef13244bebd4c66712f95d26de9407c97d46765bf88b61dbb", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 57.47, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/HeaderElement.java", + "type": "file", + "name": "HeaderElement.java", + "base_name": "HeaderElement", + "extension": ".java", + "size": 3221, + "date": "2010-11-13", + "sha1": "5bf3e02851084299a5bdb0e18f95cdb6cc0849a2", + "md5": "01a4d4d88c23e3126c5bb03d745b405c", + "sha256": "3c72513f693c427ca36790a2c355d6c8227e216f1f7e115bdee3ad6b07cc4363", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 40.43, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/HeaderElementIterator.java", + "type": "file", + "name": "HeaderElementIterator.java", + "base_name": "HeaderElementIterator", + "extension": ".java", + "size": 1892, + "date": "2010-11-13", + "sha1": "18bc5ab1639c36c06b55d5a6cce6e70c68a0dbd6", + "md5": "00485bce46e2760f36b96ee113b0929b", + "sha256": "9558cac9934d2bcc8c0c3a7818d2e864fabfbb7c606f54fd0b1272db68685686", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 65.5, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/HeaderIterator.java", + "type": "file", + "name": "HeaderIterator.java", + "base_name": "HeaderIterator", + "extension": ".java", + "size": 1831, + "date": "2010-11-13", + "sha1": "f0b4b86111a065f1d615f20eebc3eaec9cafb581", + "md5": "91d333a1b2197c1ebb39bfe666893be3", + "sha256": "a3d76b8c496e92c8aba37db466a3b4b4507372c6cc8f8239473b11b27725764f", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 66.67, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/HttpClientConnection.java", + "type": "file", + "name": "HttpClientConnection.java", + "base_name": "HttpClientConnection", + "extension": ".java", + "size": 3893, + "date": "2010-11-13", + "sha1": "63c61b28b460e1a35eee1ecc536112c65dab1290", + "md5": "fc430b1e257909bf3ff025aa9be09307", + "sha256": "ac7c021084f70779053b58a37799f6cfbcfb70f01da01360241e5f12110c8597", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 31.51, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/HttpConnection.java", + "type": "file", + "name": "HttpConnection.java", + "base_name": "HttpConnection", + "extension": ".java", + "size": 3646, + "date": "2010-11-13", + "sha1": "9748bf675ec200953817f916f95a5e22fe3387a3", + "md5": "2c3c8a03bb6e8ebfff318a41a35a51f2", + "sha256": "d9dd8def314026290da3705d0ff47c0fa49ea1fc1968676f1738c9cacc2b8c04", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 33.19, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/HttpConnectionMetrics.java", + "type": "file", + "name": "HttpConnectionMetrics.java", + "base_name": "HttpConnectionMetrics", + "extension": ".java", + "size": 2297, + "date": "2010-11-13", + "sha1": "6b3d3a427d0cce3386aa855b4e9cf5b33ab57a3e", + "md5": "301d6ad66ae4d296402b8c93263447fb", + "sha256": "c41d3588bcfd86fa0c95abe339fde9d09b41399395bbd3dd86c828b1c11831fe", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 55.15, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/HttpEntity.java", + "type": "file", + "name": "HttpEntity.java", + "base_name": "HttpEntity", + "extension": ".java", + "size": 8063, + "date": "2010-11-13", + "sha1": "0925b67f19bf70db3ff07e1653656c709b8bb405", + "md5": "b18d46f61d60c52b79497daa0ad98df1", + "sha256": "9a8f48ba253d7d45ae8911515e147ad05a324b719f9a9b5252defb0feeb29dd4", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 14.94, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": true, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/HttpEntityEnclosingRequest.java", + "type": "file", + "name": "HttpEntityEnclosingRequest.java", + "base_name": "HttpEntityEnclosingRequest", + "extension": ".java", + "size": 2032, + "date": "2010-11-13", + "sha1": "890b3c0d39ec5283894e84ae694380b6938bac64", + "md5": "0b8507b957beb84f024d5c5f4aaf32c7", + "sha256": "fc41450a39ddc81e98a9c3d601589bb9eeefb20db756a8509b69610e422a563a", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 4, + "end_line": 25, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 60.98, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 12, + "end_line": 12 + }, + { + "url": "http://www.apache.org/", + "start_line": 25, + "end_line": 25 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/HttpException.java", + "type": "file", + "name": "HttpException.java", + "base_name": "HttpException", + "extension": ".java", + "size": 2282, + "date": "2010-11-13", + "sha1": "ec0511e1b1d58b9e61c29b4e8306be5b223c4b6c", + "md5": "11c18b4999a399fc20678cc8f8cc0f12", + "sha256": "89d0d3f328366bd441ae58d8324b80f1945cd83a723bfded83fd371651829fff", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 55.97, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/HttpHeaders.java", + "type": "file", + "name": "HttpHeaders.java", + "base_name": "HttpHeaders", + "extension": ".java", + "size": 7646, + "date": "2010-11-13", + "sha1": "186aa17acc44cdffb90f518c5c878aa0a1bff0fb", + "md5": "4e36fb070612a70c1e94564e354b37ba", + "sha256": "b2d798e93cf4afa192498c6448a02935c7198d7bfeded3f2fc4d0a4076d6e79a", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 13.32, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/HttpHost.java", + "type": "file", + "name": "HttpHost.java", + "base_name": "HttpHost", + "extension": ".java", + "size": 6421, + "date": "2010-11-13", + "sha1": "e76f64ae716af51fd1a4c4e3ea4954f86ef45bcf", + "md5": "3425f311ead45e010c964cdfc159f25a", + "sha256": "46a3fbee9b27f54ce98973a8394127ea830a21e8a9424c2c7b46ddcfb67437dd", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 21.37, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/HttpInetConnection.java", + "type": "file", + "name": "HttpInetConnection.java", + "base_name": "HttpInetConnection", + "extension": ".java", + "size": 1509, + "date": "2010-11-13", + "sha1": "1b96c2122d5767c6d4d6cb36306c49b300ec819d", + "md5": "37b96444e2e157b24851f54cd8a41e7d", + "sha256": "610631fcf15ed211ea95150949a684bff971a6854e3bc7795d53f01ceedba7be", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 82.42, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/HttpMessage.java", + "type": "file", + "name": "HttpMessage.java", + "base_name": "HttpMessage", + "extension": ".java", + "size": 6753, + "date": "2010-11-13", + "sha1": "cd15c87564a9b2bc73ac874d6f476a35beb6efb8", + "md5": "4d4ef45332bcb9c2557dc3a140506cb6", + "sha256": "a33820a3a25448673b540838853d74d24f4225631976f870a135f97c9163b15a", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 17.34, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/HttpRequest.java", + "type": "file", + "name": "HttpRequest.java", + "base_name": "HttpRequest", + "extension": ".java", + "size": 1892, + "date": "2010-11-13", + "sha1": "451d11743a5e75a64a378039344783d4e80a76ef", + "md5": "d91ba1da8fb30808747b83cbf94440c0", + "sha256": "d1b5ee74bf1c7910154269ebd4cd3a77de558a3324f8e026e146a60174b7b4c0", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 68.18, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/HttpRequestFactory.java", + "type": "file", + "name": "HttpRequestFactory.java", + "base_name": "HttpRequestFactory", + "extension": ".java", + "size": 1543, + "date": "2010-11-13", + "sha1": "3f86d512781bae2ea157ee456d38ca77b3d77d88", + "md5": "bfcfc205a644c95319d441cd336c6da2", + "sha256": "50d09950f1ac3cf1888c557cbc0f167437c8c41125ab7548d553b0e1980a86f0", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 83.33, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/HttpRequestInterceptor.java", + "type": "file", + "name": "HttpRequestInterceptor.java", + "base_name": "HttpRequestInterceptor", + "extension": ".java", + "size": 2708, + "date": "2010-11-13", + "sha1": "86457e6bccedca3a5260e4ce4d3930a005952ba2", + "md5": "bd231469fe7fdb6888867730778abf42", + "sha256": "d9a5c19dc0f88dd23e9c239e15e3a09f7e02a49c1679ca3726a58f68487341e4", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 43.73, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/HttpResponse.java", + "type": "file", + "name": "HttpResponse.java", + "base_name": "HttpResponse", + "extension": ".java", + "size": 5396, + "date": "2010-11-13", + "sha1": "fe4530eb9215e6afeafac9c192ac3c29961acb1d", + "md5": "cb0e65436d94fa3d892a4103b6ca16b8", + "sha256": "237dea689375c813a1d88fafa74a75748db5466cbf655e7985df118b44af685d", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 23.81, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/HttpResponseFactory.java", + "type": "file", + "name": "HttpResponseFactory.java", + "base_name": "HttpResponseFactory", + "extension": ".java", + "size": 2512, + "date": "2010-11-13", + "sha1": "2a02ed003c2ee607dfbe5a01294dbc53823d7d5e", + "md5": "39f6b295ea78a14fb2e16fc319220c1e", + "sha256": "3eb5619b9130d9338d2c531c6b7f5316010246c704a757b7258820928ca8abc8", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 51.72, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/HttpResponseInterceptor.java", + "type": "file", + "name": "HttpResponseInterceptor.java", + "base_name": "HttpResponseInterceptor", + "extension": ".java", + "size": 2714, + "date": "2010-11-13", + "sha1": "75df9e63113bddd95ea52f9d3c94a8896697b979", + "md5": "ebd8e8854eb8f9cd3d96aa0ecd862c62", + "sha256": "a60aa3a6fc89dd4056d2f5a05ceb2c4eab297188d4e374562c2f450b6df7da54", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 43.73, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/HttpServerConnection.java", + "type": "file", + "name": "HttpServerConnection.java", + "base_name": "HttpServerConnection", + "extension": ".java", + "size": 3258, + "date": "2010-11-13", + "sha1": "8495796dee60aef41a58627dd65999ab6a8e0289", + "md5": "b8fd815ee78cb0f435ee7e6a87c5d4e6", + "sha256": "8410bd782a9a6df6196674d18d427769556079ce1be2c488c0cf1d950364884b", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 38.17, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/HttpStatus.java", + "type": "file", + "name": "HttpStatus.java", + "base_name": "HttpStatus", + "extension": ".java", + "size": 7814, + "date": "2010-11-13", + "sha1": "265cf51183216b610b661e9dd68603cd7860846f", + "md5": "1ede47f4210c85ce705a3400471560f0", + "sha256": "8e354585fccb6df1dab894d75afda75c407438f0a9d646b1ac157ff1a8351277", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 13.23, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/HttpVersion.java", + "type": "file", + "name": "HttpVersion.java", + "base_name": "HttpVersion", + "extension": ".java", + "size": 3316, + "date": "2010-11-13", + "sha1": "aa0d140a334b5d7f5291e4adc86efd2ce63408d0", + "md5": "6f4c03e3d42656e492be2100abc5d5a4", + "sha256": "5a0d5d90e4dffc6be413132699a9eced69daa330e64f53cac16f15496c049175", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 37.59, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/MalformedChunkCodingException.java", + "type": "file", + "name": "MalformedChunkCodingException.java", + "base_name": "MalformedChunkCodingException", + "extension": ".java", + "size": 1854, + "date": "2010-11-13", + "sha1": "8599f21cd854fffa1a6759f66e0fa116fea958a7", + "md5": "240f0a29717a44fd80ab80d20265a7e3", + "sha256": "66c1b594f0ac8a172db0edeacbf6ab281084e12a75862163830dc9327e49cf9f", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 73.89, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/MethodNotSupportedException.java", + "type": "file", + "name": "MethodNotSupportedException.java", + "base_name": "MethodNotSupportedException", + "extension": ".java", + "size": 2130, + "date": "2010-11-13", + "sha1": "0f36b2d46981f6d9125bef485ca868646ff2cbea", + "md5": "c520bf3f4f1608e366f2128b20f632bc", + "sha256": "c0d660cd20afb844e7b698bc1a88ceb3b6d0119f16dbd329c8217ef2b79c46eb", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 60.48, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/NameValuePair.java", + "type": "file", + "name": "NameValuePair.java", + "base_name": "NameValuePair", + "extension": ".java", + "size": 1546, + "date": "2010-11-13", + "sha1": "82c2009c5bfb0cec1431e44e615f841bd18cd07e", + "md5": "01342f3942107f6494e48377c0964161", + "sha256": "b5f724cebc0bf4cb7a0ce2a2eef0ca2c3cb420762bc62cf1d6fe9efa7e40829f", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 81.52, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/NoHttpResponseException.java", + "type": "file", + "name": "NoHttpResponseException.java", + "base_name": "NoHttpResponseException", + "extension": ".java", + "size": 1707, + "date": "2010-11-13", + "sha1": "71292280cb85fbb291626b02e3bd5291b5eb6d45", + "md5": "c0fb1a52f11f0e9deabc5b8b4af23628", + "sha256": "08252fc7d90b3e558d8005ce580f10db5a45c2e1dc73188fb6bcb9989842ec28", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 74.63, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/package.html", + "type": "file", + "name": "package.html", + "base_name": "package", + "extension": ".html", + "size": 1826, + "date": "2010-11-13", + "sha1": "328c66b3236a7defc476222e61506f028f361bc4", + "md5": "049e79dd01d2d0d851d2f3d9f070ffe8", + "sha256": "f3183f4dc94a4794db65f16c1be324e142bce7ac210af49ebc8f754c23f2a7ea", + "mime_type": "text/html", + "file_type": "HTML document, ASCII text", + "programming_language": "HTML", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 6, + "end_line": 27, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 63.83, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 14, + "end_line": 14 + }, + { + "url": "http://www.apache.org/", + "start_line": 27, + "end_line": 27 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/ParseException.java", + "type": "file", + "name": "ParseException.java", + "base_name": "ParseException", + "extension": ".java", + "size": 2086, + "date": "2010-11-13", + "sha1": "7af794c44df567bb83e64c13d537c97077962ed3", + "md5": "d30becf876a5e514d8290e99afd8906e", + "sha256": "9f9be341fe00e8c5ae5869a835bfb2809ff1483daefda73ce0b8edf4d2ff5433", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 60.48, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/ProtocolException.java", + "type": "file", + "name": "ProtocolException.java", + "base_name": "ProtocolException", + "extension": ".java", + "size": 2302, + "date": "2010-11-13", + "sha1": "f81e9b126889e99227e1c91327c23dbaa8693c42", + "md5": "bd611c9091620fcfc58bf0c13b1dc80b", + "sha256": "3693f68bdd62477c0dce48e7b564c164e4150bf6d60ee3835164f6287ca3d077", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 56.18, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/ProtocolVersion.java", + "type": "file", + "name": "ProtocolVersion.java", + "base_name": "ProtocolVersion", + "extension": ".java", + "size": 9197, + "date": "2010-11-13", + "sha1": "f0d6e0dc2c49eb902354ebc07a94a315866fecac", + "md5": "6c342ba282b997fb2fa674d4e73d54cc", + "sha256": "4a71bf24e1a1d4797350c7b14320f158aaebef77d7b757ad6c1942a0a9314f5e", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 14.78, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/ReasonPhraseCatalog.java", + "type": "file", + "name": "ReasonPhraseCatalog.java", + "base_name": "ReasonPhraseCatalog", + "extension": ".java", + "size": 1804, + "date": "2010-11-13", + "sha1": "b931f4350037937832a7bd03b9765b600583d263", + "md5": "1eae65d079de64347731d96df46391e6", + "sha256": "84a156582b653bb0b6db10cb771aa4c390d88432f494dcbddf23141d5ceb9ed0", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 65.22, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/RequestLine.java", + "type": "file", + "name": "RequestLine.java", + "base_name": "RequestLine", + "extension": ".java", + "size": 1683, + "date": "2010-11-13", + "sha1": "b39362f01a7dc2246c3ac86a0d9b8f8dd1118d0b", + "md5": "04ff485c9dd1f0139ad560b7a00e9f46", + "sha256": "482f9d0d9f1263df5f6111e104dc7e1a370dd469070fd4620596c8fee4572888", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 69.77, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/StatusLine.java", + "type": "file", + "name": "StatusLine.java", + "base_name": "StatusLine", + "extension": ".java", + "size": 1827, + "date": "2010-11-13", + "sha1": "582eb19dece77407f39a0efc8cde483fcb12ee4e", + "md5": "b4e5ce6165546241e3111309d6992ed5", + "sha256": "411a7b1aac57e7c999faee2e6a0a99843d073bf386fcae014f4667577eabd498", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 63.83, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/TokenIterator.java", + "type": "file", + "name": "TokenIterator.java", + "base_name": "TokenIterator", + "extension": ".java", + "size": 1978, + "date": "2010-11-13", + "sha1": "f3b13f34a13778b0a11bb4e35620ab952e8eccfe", + "md5": "990e8617734395a5a62331a63c2589ad", + "sha256": "16adf73c9103e3578a42ec1ca8544539c1ccfcfb96bcaa9ebbf9bed8382f1580", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 60.98, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/TruncatedChunkException.java", + "type": "file", + "name": "TruncatedChunkException.java", + "base_name": "TruncatedChunkException", + "extension": ".java", + "size": 1677, + "date": "2010-11-13", + "sha1": "b891629e7af31971f2dd97ef03c127e2cce37a67", + "md5": "1a5cbcaf23ce641d73354606a936fba9", + "sha256": "466f09c1309f6ff8a30d884e71dd55060b65513d149ef331a0862044e020bd3a", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 77.72, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/UnsupportedHttpVersionException.java", + "type": "file", + "name": "UnsupportedHttpVersionException.java", + "base_name": "UnsupportedHttpVersionException", + "extension": ".java", + "size": 1861, + "date": "2010-11-13", + "sha1": "3241e436404a7fcf713c4dc4edeed4732b7d46a0", + "md5": "cb0464475dd15ed10c73e49127fe90ac", + "sha256": "accbbf81f70ed2018e9ab535b544a3510e4454aed3e3c227d31f4f398cd3f777", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 71.43, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/version.properties", + "type": "file", + "name": "version.properties", + "base_name": "version", + "extension": ".properties", + "size": 916, + "date": "2010-11-13", + "sha1": "0cfffd33e6ddaa9fb575bf1e57cddbc2d3254fff", + "md5": "4ffd6f1bb1363f6d253b1fa63c7dd19f", + "sha256": "987b51fc9582d4f9a22c22b6b248778f8def520b5a5b258e7c59737e280a0c1f", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": null, + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 2, + "end_line": 17, + "matched_rule": { + "identifier": "apache-2.0_2.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [ + "NOTICE" + ], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 119, + "matched_length": 119, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing,\n# software distributed under the License is distributed on an\n# \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n# KIND, either express or implied. See the License for the\n# specific language governing permissions and limitations\n# under the License." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 88.15, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 10, + "end_line": 10 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/entity", + "type": "directory", + "name": "entity", + "base_name": "entity", + "extension": "", + "size": 0, + "date": null, + "sha1": null, + "md5": null, + "sha256": null, + "mime_type": null, + "file_type": null, + "programming_language": null, + "is_binary": false, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 13, + "dirs_count": 0, + "size_count": 40900, + "scan_errors": [] + }, + { + "path": "org/apache/http/entity/AbstractHttpEntity.java", + "type": "file", + "name": "AbstractHttpEntity.java", + "base_name": "AbstractHttpEntity", + "extension": ".java", + "size": 5448, + "date": "2010-11-13", + "sha1": "c856d7f8e0c40b3363d5932c37ef4c25364eb9e1", + "md5": "48443daf0812e79098bf0d05460ea761", + "sha256": "4973bc74482d30f303136c3abcec3a59c9dbafe336d9733d01c8b18fd445a2c5", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 25.95, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/entity/BasicHttpEntity.java", + "type": "file", + "name": "BasicHttpEntity.java", + "base_name": "BasicHttpEntity", + "extension": ".java", + "size": 4120, + "date": "2010-11-13", + "sha1": "dddf065f662285729466b433a6d606f39985a4dc", + "md5": "0bc452f82a9142b9a57ab44195e6bd08", + "sha256": "23931138016cc0ecaa64337e2fee29922efcc2d78e980b934d6684c3879b34c1", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 33.56, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/entity/BufferedHttpEntity.java", + "type": "file", + "name": "BufferedHttpEntity.java", + "base_name": "BufferedHttpEntity", + "extension": ".java", + "size": 3675, + "date": "2010-11-13", + "sha1": "f769eb9ff59cd0a50295e2c1426c97c40780a703", + "md5": "636e6a79c1ff2329a56d553977328d09", + "sha256": "fbcb851afbbf9e502170611b866b2387332b7a4db4565148e09d30d67feacc30", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 37.59, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/entity/ByteArrayEntity.java", + "type": "file", + "name": "ByteArrayEntity.java", + "base_name": "ByteArrayEntity", + "extension": ".java", + "size": 2593, + "date": "2010-11-13", + "sha1": "8eef873c4e188be7b4096e70f9942d9eb1874a9e", + "md5": "7d62f3999cd502960a3e7770fa561d34", + "sha256": "61b35bf7103817ba873e697e7929bd6230df187eaca4a6f7a03200b6c44f7468", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 52.08, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/entity/ContentLengthStrategy.java", + "type": "file", + "name": "ContentLengthStrategy.java", + "base_name": "ContentLengthStrategy", + "extension": ".java", + "size": 2102, + "date": "2010-11-13", + "sha1": "49020f1bf8af79239880a4f8b41502633d992f16", + "md5": "199ca51b886f23381722c9adb34d3178", + "sha256": "78e6de9e6dbb6d18995b94facef6709fdcc1fb4b236a15e07b001589616533ad", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 56.6, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/entity/ContentProducer.java", + "type": "file", + "name": "ContentProducer.java", + "base_name": "ContentProducer", + "extension": ".java", + "size": 1535, + "date": "2010-11-13", + "sha1": "221ae577191d451997785b76dc82e331fd0243b0", + "md5": "a2dc200e9798367e16e6e8f9f12d08ea", + "sha256": "5d00c59332254c9a2d127228b665ed04811c5e95af4604b615cd7db3878d5769", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 77.72, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/entity/EntityTemplate.java", + "type": "file", + "name": "EntityTemplate.java", + "base_name": "EntityTemplate", + "extension": ".java", + "size": 2396, + "date": "2010-11-13", + "sha1": "af3c4f99a0b2bf3c96ec004028801ed0ba13b296", + "md5": "babbe6d4deb48827bc81ae3bded3f453", + "sha256": "9078215e94dd01b719cf5011400cb4d76767a9064e0be2bf11fed1a485bee1db", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 57.47, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/entity/FileEntity.java", + "type": "file", + "name": "FileEntity.java", + "base_name": "FileEntity", + "extension": ".java", + "size": 3008, + "date": "2010-11-13", + "sha1": "9488113243f28ff3ebba616154fea619359f7094", + "md5": "9841945151afb6f72b8254265f7ca439", + "sha256": "fc57263c2eca1a2dae09a2846b40eb8035ae1d68514bc7c38591bb2bd36824da", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 45.18, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/entity/HttpEntityWrapper.java", + "type": "file", + "name": "HttpEntityWrapper.java", + "base_name": "HttpEntityWrapper", + "extension": ".java", + "size": 3343, + "date": "2010-11-13", + "sha1": "0df036cd1832cc65992f244f8e1b88d4bb43a0cc", + "md5": "009d6da4d2e2220286a27ce512a16800", + "sha256": "ae7839045c3f40e6d22cd0ff6cc60a938c4c45095a8600fa69f1bca3ad47acb9", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 42.49, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/entity/InputStreamEntity.java", + "type": "file", + "name": "InputStreamEntity.java", + "base_name": "InputStreamEntity", + "extension": ".java", + "size": 3542, + "date": "2010-11-13", + "sha1": "f49bfca481c386986b541f7654c190645219f4b6", + "md5": "97259b591fd319048f8df194b1b90ca9", + "sha256": "ed3f09fcec47927f2ca4ad075de251c4e3721366365fa2536fd02fc8ebf240d2", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 37.88, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/entity/package.html", + "type": "file", + "name": "package.html", + "base_name": "package", + "extension": ".html", + "size": 2071, + "date": "2010-11-13", + "sha1": "c266c5b824b3e75e485ce45209c2e0131c24c8e6", + "md5": "2dacd912c642c993266d626decd2f209", + "sha256": "b22ab9e8dfef76a655d7e5e75b06c1857c800e6fd3e7bc96f25fd2ee6101df12", + "mime_type": "text/html", + "file_type": "HTML document, ASCII text", + "programming_language": "HTML", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 6, + "end_line": 27, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 55.56, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 14, + "end_line": 14 + }, + { + "url": "http://www.apache.org/", + "start_line": 27, + "end_line": 27 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/entity/SerializableEntity.java", + "type": "file", + "name": "SerializableEntity.java", + "base_name": "SerializableEntity", + "extension": ".java", + "size": 3735, + "date": "2010-11-13", + "sha1": "01bfbe979d8fe1045965f7eec504b2c17abd994a", + "md5": "4b70190bac172fb3c79c5e601ad96988", + "sha256": "ed9e4157d8e5797ff4985173d346288caaecd16ea20b975f0d4ce98e35af0aa3", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 37.59, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/entity/StringEntity.java", + "type": "file", + "name": "StringEntity.java", + "base_name": "StringEntity", + "extension": ".java", + "size": 3332, + "date": "2010-11-13", + "sha1": "2f38369ca2e14d71a8e89db4821776cecd582c53", + "md5": "c7f582753f6d8ad5843408c4d69c5a9c", + "sha256": "0df98c4e0f2895ca4b314db65578b84922a0fcad4e713917b13f4bd6fac4509a", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 43.1, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/impl", + "type": "directory", + "name": "impl", + "base_name": "impl", + "extension": "", + "size": 0, + "date": null, + "sha1": null, + "md5": null, + "sha256": null, + "mime_type": null, + "file_type": null, + "programming_language": null, + "is_binary": false, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 36, + "dirs_count": 2, + "size_count": 191657, + "scan_errors": [] + }, + { + "path": "org/apache/http/impl/AbstractHttpClientConnection.java", + "type": "file", + "name": "AbstractHttpClientConnection.java", + "base_name": "AbstractHttpClientConnection", + "extension": ".java", + "size": 11857, + "date": "2010-11-13", + "sha1": "60c9506d84e43a54cb35b0131fcef2d561b65a34", + "md5": "411320ea288acd8e7d18f514b53dcbc8", + "sha256": "fd339b1b7bb4bcb00b43f9c7ebc73c0f233a2072f6dbaf129a6eb8a68aa17e90", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 13.43, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/impl/AbstractHttpServerConnection.java", + "type": "file", + "name": "AbstractHttpServerConnection.java", + "base_name": "AbstractHttpServerConnection", + "extension": ".java", + "size": 11539, + "date": "2010-11-13", + "sha1": "12a96894adb6367732995927f14edda5a261b9cb", + "md5": "fe9bdff58866febe1ed7466727064d82", + "sha256": "cb8bd21eb150495500359f2319678c7c7e449f95084a8d316167883711107815", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 13.75, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/impl/DefaultConnectionReuseStrategy.java", + "type": "file", + "name": "DefaultConnectionReuseStrategy.java", + "base_name": "DefaultConnectionReuseStrategy", + "extension": ".java", + "size": 7609, + "date": "2010-11-13", + "sha1": "b235c292e889109c039399a435fb007f5a0fc5af", + "md5": "a0ba73070ea2e87860438882c306ce44", + "sha256": "8a0e09f936ee1e3d0001620474ef87020acaafdc0ee6f57f7258908acd379690", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 16.78, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/impl/DefaultHttpClientConnection.java", + "type": "file", + "name": "DefaultHttpClientConnection.java", + "base_name": "DefaultHttpClientConnection", + "extension": ".java", + "size": 3207, + "date": "2010-11-13", + "sha1": "b0fe5863c1e98b158fbd36242f68fa2c6a6341e2", + "md5": "cebb2519085d30fda4d075521231adcf", + "sha256": "b1a03e5dc39f60d137bc6405f0e470a6dc4afffacb91a023fadee4ecc847dd8a", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 44.25, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/impl/DefaultHttpRequestFactory.java", + "type": "file", + "name": "DefaultHttpRequestFactory.java", + "base_name": "DefaultHttpRequestFactory", + "extension": ".java", + "size": 3736, + "date": "2010-11-13", + "sha1": "4fef9ad94732afc71f87f012dfbb438f58b23047", + "md5": "5491d8d8e29a8d9560a5946d582c4089", + "sha256": "efbda5252580c63f7961e01c0a1191d534bda5ed397396a4343c94da81df38b3", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 39.37, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/impl/DefaultHttpResponseFactory.java", + "type": "file", + "name": "DefaultHttpResponseFactory.java", + "base_name": "DefaultHttpResponseFactory", + "extension": ".java", + "size": 4109, + "date": "2010-11-13", + "sha1": "769a10254111b78447ed43676e302f3bbd1a96f2", + "md5": "91f53d26b9ee9ba6239c059e1de4c8a4", + "sha256": "6549ac24f24fd1101fe3fe555217fafcdde22029a4d023085d9ede9530120881", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 35.05, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/impl/DefaultHttpServerConnection.java", + "type": "file", + "name": "DefaultHttpServerConnection.java", + "base_name": "DefaultHttpServerConnection", + "extension": ".java", + "size": 3182, + "date": "2010-11-13", + "sha1": "efeed4107cad605354ce5e6d18d4185dd502eb1c", + "md5": "176fa078aa733d9e87df010d4f851725", + "sha256": "6315cbaf09f47fd666c7305f5813e3097c7b9ac62e26727a350f08858fbeda2b", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 44.25, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/impl/EnglishReasonPhraseCatalog.java", + "type": "file", + "name": "EnglishReasonPhraseCatalog.java", + "base_name": "EnglishReasonPhraseCatalog", + "extension": ".java", + "size": 8164, + "date": "2010-11-13", + "sha1": "2101d57a0960b69fb2d67a916de7a99185ccd8b7", + "md5": "5d17911dc3b2359566df758a66ba6142", + "sha256": "125791049bb84bf58756e2115cd32ac8cfcafe45bb49adf486dda6d72eac6d0d", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 18.66, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/impl/HttpConnectionMetricsImpl.java", + "type": "file", + "name": "HttpConnectionMetricsImpl.java", + "base_name": "HttpConnectionMetricsImpl", + "extension": ".java", + "size": 4785, + "date": "2010-11-13", + "sha1": "bbd3be16c20910d708f6272f5a082fc45b400b8f", + "md5": "18a4c2ebde700091e1c2de8f285b8ee6", + "sha256": "bb23c2ed91cdbf0df7720be5cff437d83f07e361910dbf8bcf1b80b68eaedadc", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 33.56, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/impl/NoConnectionReuseStrategy.java", + "type": "file", + "name": "NoConnectionReuseStrategy.java", + "base_name": "NoConnectionReuseStrategy", + "extension": ".java", + "size": 1946, + "date": "2010-11-13", + "sha1": "2e88be3e8bd03bd318b54e70f12bd6d3e8cc8771", + "md5": "9d25fc4cb9e1e5fb61b18b3cf22e7c46", + "sha256": "91aa58c3469e9c207510c9b18a9390f002e18fa6888cd3bb5b1190cbb3bd7289", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 66.37, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/impl/package.html", + "type": "file", + "name": "package.html", + "base_name": "package", + "extension": ".html", + "size": 1322, + "date": "2010-11-13", + "sha1": "9083591a4633127045b16597b3d84a003bd8b01c", + "md5": "086cc6ac8fadd17585924886f863d8a7", + "sha256": "0dc0c227baf5cbacd3c8d6647bdc1d14c3bfd0da51b314a3f1ffdb9c48ac8ab9", + "mime_type": "text/html", + "file_type": "HTML document, ASCII text", + "programming_language": "HTML", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 6, + "end_line": 27, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 90.36, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 14, + "end_line": 14 + }, + { + "url": "http://www.apache.org/", + "start_line": 27, + "end_line": 27 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/impl/SocketHttpClientConnection.java", + "type": "file", + "name": "SocketHttpClientConnection.java", + "base_name": "SocketHttpClientConnection", + "extension": ".java", + "size": 8710, + "date": "2010-11-13", + "sha1": "1112ab430be5d25afcf611678425d6e033f11233", + "md5": "d2586a6127ab86143db2d3c6400ba66a", + "sha256": "85ddaa12b1036d3fc08542f3d9c9e1f5002793e0e70d8e28cf037feec89bace7", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 17.06, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/impl/SocketHttpServerConnection.java", + "type": "file", + "name": "SocketHttpServerConnection.java", + "base_name": "SocketHttpServerConnection", + "extension": ".java", + "size": 9375, + "date": "2010-11-13", + "sha1": "63da5106c1072a70e8fe170edf5bcfbfc9784a0b", + "md5": "3de0fad0b8f239929a8d4c706d2aa143", + "sha256": "79351941f73641aed3a6b92286845ed9670d7de28a9979bb0a616ee55f95e965", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 16.18, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/impl/entity", + "type": "directory", + "name": "entity", + "base_name": "entity", + "extension": "", + "size": 0, + "date": null, + "sha1": null, + "md5": null, + "sha256": null, + "mime_type": null, + "file_type": null, + "programming_language": null, + "is_binary": false, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 5, + "dirs_count": 0, + "size_count": 21120, + "scan_errors": [] + }, + { + "path": "org/apache/http/impl/entity/EntityDeserializer.java", + "type": "file", + "name": "EntityDeserializer.java", + "base_name": "EntityDeserializer", + "extension": ".java", + "size": 5590, + "date": "2010-11-13", + "sha1": "12e8954a96ecf13892b7b8c6727479f9a5173c5b", + "md5": "33459bcd52ebad71667a596c56509849", + "sha256": "1df8c3a40c50a7e5bb5ab17f53b8acb21f313811a5362585845ad8e590d491bf", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 24.96, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/impl/entity/EntitySerializer.java", + "type": "file", + "name": "EntitySerializer.java", + "base_name": "EntitySerializer", + "extension": ".java", + "size": 4797, + "date": "2010-11-13", + "sha1": "c4635ad33e925d343710055a86b7338e30356edc", + "md5": "5bb76c5fe2804ac1b9b2738d5c09a680", + "sha256": "0f38fbfc2cd314295e953a2dc21eb7d6c0dc94190df1585d780286b4e9582ffd", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 27.88, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/impl/entity/LaxContentLengthStrategy.java", + "type": "file", + "name": "LaxContentLengthStrategy.java", + "base_name": "LaxContentLengthStrategy", + "extension": ".java", + "size": 5640, + "date": "2010-11-13", + "sha1": "5371bdee192f768887308da504f50793752d58b3", + "md5": "501dffb2af310563df21ef66f0948373", + "sha256": "e5a61377efc414f6e1be01d8a2c7799e56be3e1f6f2fe6a0be8216ee2f100099", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 26.83, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/impl/entity/package.html", + "type": "file", + "name": "package.html", + "base_name": "package", + "extension": ".html", + "size": 1428, + "date": "2010-11-13", + "sha1": "260b6466229a20b6758971d4ce808578f023ec55", + "md5": "c8342209f92a1c672e303cfae470495d", + "sha256": "27570e118d8d0d806aacfb3f2a02af28f00b1bade620f98fb03cd5996b8b8f21", + "mime_type": "text/html", + "file_type": "HTML document, ASCII text", + "programming_language": "HTML", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 6, + "end_line": 27, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 83.33, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 14, + "end_line": 14 + }, + { + "url": "http://www.apache.org/", + "start_line": 27, + "end_line": 27 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/impl/entity/StrictContentLengthStrategy.java", + "type": "file", + "name": "StrictContentLengthStrategy.java", + "base_name": "StrictContentLengthStrategy", + "extension": ".java", + "size": 3665, + "date": "2010-11-13", + "sha1": "03329a1d64525f4bee1b2e1f6aa6289388672e01", + "md5": "c7dbcb512c9aa38b09996da40afd73d8", + "sha256": "645d792f910516795e6c6472966484651fd127484cde7fa546a067a31da6a335", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 40.11, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/impl/io", + "type": "directory", + "name": "io", + "base_name": "io", + "extension": "", + "size": 0, + "date": null, + "sha1": null, + "md5": null, + "sha256": null, + "mime_type": null, + "file_type": null, + "programming_language": null, + "is_binary": false, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 18, + "dirs_count": 0, + "size_count": 90996, + "scan_errors": [] + }, + { + "path": "org/apache/http/impl/io/AbstractMessageParser.java", + "type": "file", + "name": "AbstractMessageParser.java", + "base_name": "AbstractMessageParser", + "extension": ".java", + "size": 10918, + "date": "2010-11-13", + "sha1": "bcce8bd96a89c8613e0b76151b62bdd94f6646cf", + "md5": "32fd104303cd6a7c7f1209b7cac4b8f4", + "sha256": "44b09128fe6ff5a6487c02aff0be592782e034fdabb3096c03bfbcee79ee2692", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 12.83, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/impl/io/AbstractMessageWriter.java", + "type": "file", + "name": "AbstractMessageWriter.java", + "base_name": "AbstractMessageWriter", + "extension": ".java", + "size": 3720, + "date": "2010-11-13", + "sha1": "6f3cddc463dcb271dd50a8f89acc6875e18c78d8", + "md5": "2221d69bfc1e87faedc516e669c918b7", + "sha256": "dc9e25d003c2218db0e855a9ddd4616ab1e3219108f09912c48475a45e05ef40", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 36.59, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/impl/io/AbstractSessionInputBuffer.java", + "type": "file", + "name": "AbstractSessionInputBuffer.java", + "base_name": "AbstractSessionInputBuffer", + "extension": ".java", + "size": 12532, + "date": "2010-11-13", + "sha1": "280d25c38fcd782d5712f50812ac7048ee00e460", + "md5": "9dc43ca7d2ee33d618527332bbeb745b", + "sha256": "fbbc984818b04736b574c7b7c41f9c977e3b29de4aea2e1a545cda05dcd0fe8a", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 11.1, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/impl/io/AbstractSessionOutputBuffer.java", + "type": "file", + "name": "AbstractSessionOutputBuffer.java", + "base_name": "AbstractSessionOutputBuffer", + "extension": ".java", + "size": 7877, + "date": "2010-11-13", + "sha1": "155392d94dbf53e4049eaaf30bdf5ec193dba293", + "md5": "ec56d965e6187c324a79287426c48a50", + "sha256": "c072a70ccb3d602dbda20f7a4eca44bbce10e0051fdc9d013917b793a783ecec", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 17.94, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/impl/io/ChunkedInputStream.java", + "type": "file", + "name": "ChunkedInputStream.java", + "base_name": "ChunkedInputStream", + "extension": ".java", + "size": 9912, + "date": "2010-11-13", + "sha1": "91043294ca1b4fb0ed29d0922306e8b81f575c42", + "md5": "ba2dde5aa97a4d679cfb0d3b52518abb", + "sha256": "0e02da42df74a94ef0da912961f281a860675caf04d9f83ab70dbedee4cf00d9", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 13.38, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/impl/io/ChunkedOutputStream.java", + "type": "file", + "name": "ChunkedOutputStream.java", + "base_name": "ChunkedOutputStream", + "extension": ".java", + "size": 6307, + "date": "2010-11-13", + "sha1": "66c8fe3947e0be3318383470912e99f7607ee97b", + "md5": "cce443a4dcd5dcdcf1c1211c3ad19b26", + "sha256": "645357ff47229298125f4027c1177db707842faa5c60f9a1985b6608911997f7", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 21.52, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/impl/io/ContentLengthInputStream.java", + "type": "file", + "name": "ContentLengthInputStream.java", + "base_name": "ContentLengthInputStream", + "extension": ".java", + "size": 7030, + "date": "2010-11-13", + "sha1": "0b09d7e84096c5a55272fec7dc535b974ad74499", + "md5": "ae143ddebed739724dce2331c1d2b470", + "sha256": "cf235ad44a169cb9b40a18ad9e3e203fb8e5697676bc57e6835a828029a29360", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 17.26, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/impl/io/ContentLengthOutputStream.java", + "type": "file", + "name": "ContentLengthOutputStream.java", + "base_name": "ContentLengthOutputStream", + "extension": ".java", + "size": 4284, + "date": "2010-11-13", + "sha1": "1f37392e84a4484632e54df1c3b298d2090ddffd", + "md5": "62e03d8bb63c167b80025c10b52d7849", + "sha256": "3b613eb6a005542703f75ce06a7a780413381726cd384f8d18bfb44e7f152e54", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 29.47, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/impl/io/HttpRequestParser.java", + "type": "file", + "name": "HttpRequestParser.java", + "base_name": "HttpRequestParser", + "extension": ".java", + "size": 3636, + "date": "2010-11-13", + "sha1": "778c9b6c2006b609af7ca049cb97be3bb9aa1045", + "md5": "112aa27859aba3b356f2dd678b27409f", + "sha256": "2dd797b2a47c2ca998c3599bce364d9e3ac63b5e4c46b6b7492d43fd9d9f1a8c", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 37.5, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/impl/io/HttpRequestWriter.java", + "type": "file", + "name": "HttpRequestWriter.java", + "base_name": "HttpRequestWriter", + "extension": ".java", + "size": 2137, + "date": "2010-11-13", + "sha1": "4aa8cc0f3d6d6f8e2276aecb5155b889ad14e08b", + "md5": "dafae3b63648cf115bcf14ccfd6c886b", + "sha256": "f08077f013924642aaf4142f34799102f8606a08c331c78a02e4b0c376a090c0", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 61.73, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/impl/io/HttpResponseParser.java", + "type": "file", + "name": "HttpResponseParser.java", + "base_name": "HttpResponseParser", + "extension": ".java", + "size": 3712, + "date": "2010-11-13", + "sha1": "63eb075d35ff008367c00356ba4204c6bcab33c1", + "md5": "d5c4887050b3d16fd8dbb8d9a19fb6a9", + "sha256": "68afb93dc6e5a049d76d8cc45b9f10c478757388a7ad3b1163c5d18aad7e68f3", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 36.5, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/impl/io/HttpResponseWriter.java", + "type": "file", + "name": "HttpResponseWriter.java", + "base_name": "HttpResponseWriter", + "extension": ".java", + "size": 2142, + "date": "2010-11-13", + "sha1": "01b458af1e0e94a1bb43fa235ae65a74aab35521", + "md5": "cc16f6fa8fb45c91e8d552dc59732310", + "sha256": "44c9188ec37f89bb236f81ad666ae35ae8722f95a3eda20b37757c8400c0dfcf", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 61.73, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/impl/io/HttpTransportMetricsImpl.java", + "type": "file", + "name": "HttpTransportMetricsImpl.java", + "base_name": "HttpTransportMetricsImpl", + "extension": ".java", + "size": 1883, + "date": "2010-11-13", + "sha1": "964bc9544d21664e30a4e4f3a1e65be06774e3ed", + "md5": "7de62456a756faa3377ea82dfc2585f3", + "sha256": "11613c88aaf4bec726b63204d7e4d148ea7cf3ae222d48f0fc44028726977d7f", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 71.77, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/impl/io/IdentityInputStream.java", + "type": "file", + "name": "IdentityInputStream.java", + "base_name": "IdentityInputStream", + "extension": ".java", + "size": 2977, + "date": "2010-11-13", + "sha1": "6aad7307fa4218755f9bc6b4526d5b53458b3408", + "md5": "4d7a0936234ded44732ee7a791e2e9fd", + "sha256": "31e7772e1b64c72144b10f6d1bd82186b8e88efccc8d23b8a65c8a974d8d0232", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 41.55, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/impl/io/IdentityOutputStream.java", + "type": "file", + "name": "IdentityOutputStream.java", + "base_name": "IdentityOutputStream", + "extension": ".java", + "size": 3129, + "date": "2010-11-13", + "sha1": "9371bad68c344a7b956232d967cb1e6ea8d4b14b", + "md5": "29c7ffdd3ee6b33090b7a78a89355f17", + "sha256": "839c8403418fe23528458a0b93a25f132b3a0ed8c3379b2564ac2e0ee774f4d2", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 39.68, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/impl/io/package.html", + "type": "file", + "name": "package.html", + "base_name": "package", + "extension": ".html", + "size": 1575, + "date": "2010-11-13", + "sha1": "2773d92f35d6b1cbd88d221537cdd7e3480b44d4", + "md5": "d7f739a638f8d618fa86e448dfb6fab8", + "sha256": "b87368cd67f0eebb8c3389296fa7cfa24d6dc7811d28d7c4738252442e7c115b", + "mime_type": "text/html", + "file_type": "HTML document, ASCII text", + "programming_language": "HTML", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 6, + "end_line": 27, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 74.26, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 14, + "end_line": 14 + }, + { + "url": "http://www.apache.org/", + "start_line": 27, + "end_line": 27 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/impl/io/SocketInputBuffer.java", + "type": "file", + "name": "SocketInputBuffer.java", + "base_name": "SocketInputBuffer", + "extension": ".java", + "size": 4559, + "date": "2010-11-13", + "sha1": "ed5a7f617e2bd32866f075fdde93993d3ea7b8c7", + "md5": "7ad0156ab3453dd645c31b0c09fce666", + "sha256": "bac1089de574289706c37ee67400093cbcba79405c8343626e7716c64b59ded4", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 32.12, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/impl/io/SocketOutputBuffer.java", + "type": "file", + "name": "SocketOutputBuffer.java", + "base_name": "SocketOutputBuffer", + "extension": ".java", + "size": 2666, + "date": "2010-11-13", + "sha1": "4c8bec5f77362b6053748a8b27fc868b578f8419", + "md5": "46911baf8fcf82efdbf2a3bb48fcb4d5", + "sha256": "a509d709f958e8930e8961845bd7472dfa4afabe8c5d963597fe78fb02026d2b", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 48.23, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/io", + "type": "directory", + "name": "io", + "base_name": "io", + "extension": "", + "size": 0, + "date": null, + "sha1": null, + "md5": null, + "sha256": null, + "mime_type": null, + "file_type": null, + "programming_language": null, + "is_binary": false, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 8, + "dirs_count": 0, + "size_count": 20210, + "scan_errors": [] + }, + { + "path": "org/apache/http/io/BufferInfo.java", + "type": "file", + "name": "BufferInfo.java", + "base_name": "BufferInfo", + "extension": ".java", + "size": 1657, + "date": "2010-11-13", + "sha1": "a451af2065ac796e9de471a8ac53034436034cb7", + "md5": "b8763fd788c1db07baa06eeb368310ef", + "sha256": "af62facfbe355811640ec108d26807e9a921d60e5765bcac649aa61ab6ab0b54", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 75.76, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/io/EofSensor.java", + "type": "file", + "name": "EofSensor.java", + "base_name": "EofSensor", + "extension": ".java", + "size": 1308, + "date": "2010-11-13", + "sha1": "bde59919372a2d411f44e64e41dc46765b0255a3", + "md5": "032533537374e9f15b550d92d5080fb9", + "sha256": "239cec87cb66f3e92f7c92cfcfaaf5010b09025d5c511ce2e089aebdcc2a3ad1", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 90.91, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/io/HttpMessageParser.java", + "type": "file", + "name": "HttpMessageParser.java", + "base_name": "HttpMessageParser", + "extension": ".java", + "size": 1802, + "date": "2010-11-13", + "sha1": "a0d773abf026d0cf22da1ea6d4b70d54c81af45d", + "md5": "37a5af5c76f9a3da04f4aaf3d216b7bf", + "sha256": "f041200d426d06451f81ce0e6ae627c6cb5ccb5dd36fd9373a7cc8b6df38279c", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 66.96, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/io/HttpMessageWriter.java", + "type": "file", + "name": "HttpMessageWriter.java", + "base_name": "HttpMessageWriter", + "extension": ".java", + "size": 1805, + "date": "2010-11-13", + "sha1": "acc7b93dd94582725212afc4a3fec8595d15b359", + "md5": "b45ee1c107e2fd7e85cf514d1484dc17", + "sha256": "c10865e702feb320b68286f834f1ee549c70a6449d38aa84e6e6d029d0fc9786", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 66.67, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/io/HttpTransportMetrics.java", + "type": "file", + "name": "HttpTransportMetrics.java", + "base_name": "HttpTransportMetrics", + "extension": ".java", + "size": 1545, + "date": "2010-11-13", + "sha1": "dda133066859bfcdef3cb3969660e376a38b9102", + "md5": "bfd0e891747c99d791fd21bab316ff98", + "sha256": "ba16aa1ffd17afc3d8e959e0f30d6366fa5e6de9ac1a14aedcbaa26b652c355b", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 80.21, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/io/package.html", + "type": "file", + "name": "package.html", + "base_name": "package", + "extension": ".html", + "size": 1393, + "date": "2010-11-13", + "sha1": "8b6848fb2b344845cc90d4bb6efe3a2b1041da04", + "md5": "69b2fbf87ac3d063848dabb2558a00e6", + "sha256": "8baf127027fd109a7447e45726fcda44edc3e9e81c0717396e5c048cb7beab7d", + "mime_type": "text/html", + "file_type": "HTML document, ASCII text", + "programming_language": "HTML", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 6, + "end_line": 27, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 85.23, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 14, + "end_line": 14 + }, + { + "url": "http://www.apache.org/", + "start_line": 27, + "end_line": 27 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/io/SessionInputBuffer.java", + "type": "file", + "name": "SessionInputBuffer.java", + "base_name": "SessionInputBuffer", + "extension": ".java", + "size": 6382, + "date": "2010-11-13", + "sha1": "bbd5dea1214626b80f4ff7d189b53323b0ba4f47", + "md5": "4725bd498f534c9d645cc389c57c63f9", + "sha256": "6ab9d9204ff4ec7cc2eb883d61637486519e024385417f6d28f09b4b2831cd22", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 17.1, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/io/SessionOutputBuffer.java", + "type": "file", + "name": "SessionOutputBuffer.java", + "base_name": "SessionOutputBuffer", + "extension": ".java", + "size": 4318, + "date": "2010-11-13", + "sha1": "943960df12585acaa25424d19a76b824cfac6f53", + "md5": "9bebe9c4e12cc339a4018179889bb408", + "sha256": "bdeb303c6155621582b986dd76cad8cc3e5191f9b607cab439503293f40ef0e0", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 27.68, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/message", + "type": "directory", + "name": "message", + "base_name": "message", + "extension": "", + "size": 0, + "date": null, + "sha1": null, + "md5": null, + "sha256": null, + "mime_type": null, + "file_type": null, + "programming_language": null, + "is_binary": false, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 25, + "dirs_count": 0, + "size_count": 161179, + "scan_errors": [] + }, + { + "path": "org/apache/http/message/AbstractHttpMessage.java", + "type": "file", + "name": "AbstractHttpMessage.java", + "base_name": "AbstractHttpMessage", + "extension": ".java", + "size": 5025, + "date": "2010-11-13", + "sha1": "9a42d7d775119bfd8b7c8e2612003071fb998db9", + "md5": "d28cc78ce578c548cc11a4470102df63", + "sha256": "a046970081199a56bda5da47dbaf2062a2ed789038095e0c04ac476188a2dedc", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 28.3, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/message/BasicHeader.java", + "type": "file", + "name": "BasicHeader.java", + "base_name": "BasicHeader", + "extension": ".java", + "size": 2758, + "date": "2010-11-13", + "sha1": "14cb1671a2beefd0a2cd15cae74f68f6b2f16d0c", + "md5": "730ae711e4b574ed4c6f86af71f37dd5", + "sha256": "bf49a25695873a27916507927eb6207bc6e157f690694e9956cd97007bb3d9ee", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 48.54, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/message/BasicHeaderElement.java", + "type": "file", + "name": "BasicHeaderElement.java", + "base_name": "BasicHeaderElement", + "extension": ".java", + "size": 5118, + "date": "2010-11-13", + "sha1": "a2fb9cb773ca7123f9a216c07985036e23354c60", + "md5": "519ecf6d73a71ad96675bf0c4180628b", + "sha256": "10a4a1ae058d83a35779aeecbc1b446b41392da3e31d426d88a831ac4984694a", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 27.78, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/message/BasicHeaderElementIterator.java", + "type": "file", + "name": "BasicHeaderElementIterator.java", + "base_name": "BasicHeaderElementIterator", + "extension": ".java", + "size": 5318, + "date": "2010-11-13", + "sha1": "ea37d89184c7b66bc590efa97d5a011251ded313", + "md5": "de38ccd204f298912fbe91335ebf59b6", + "sha256": "678acd955f3630bee143891e92e967308388c05aedda7ecb75a638cb925595eb", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 30.36, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/message/BasicHeaderIterator.java", + "type": "file", + "name": "BasicHeaderIterator.java", + "base_name": "BasicHeaderIterator", + "extension": ".java", + "size": 5098, + "date": "2010-11-13", + "sha1": "2e5d2a6c8c23c9445f4cf0ad8b19552f0f2ba841", + "md5": "e8d9c5bb3a86365e63caa42f412f66d8", + "sha256": "6e4f2bef011a99d28e147e3e1470f7cc5c04736f7b8e76c13a9e1dc24ae1affa", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 26.55, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/message/BasicHeaderValueFormatter.java", + "type": "file", + "name": "BasicHeaderValueFormatter.java", + "base_name": "BasicHeaderValueFormatter", + "extension": ".java", + "size": 13988, + "date": "2010-11-13", + "sha1": "a5710d3d1ae01960607981c7d0d1b3724770c8f5", + "md5": "cecc867a85ee481819545d6f90bbf4ab", + "sha256": "1994c47ce2ca01f7ac5233de27db3d44acdc55886a9bf9c26794d766e55d0f96", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 11.22, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/message/BasicHeaderValueParser.java", + "type": "file", + "name": "BasicHeaderValueParser.java", + "base_name": "BasicHeaderValueParser", + "extension": ".java", + "size": 13140, + "date": "2010-11-13", + "sha1": "73b5947c03c8f0c36bac961b4bf8e24a5d244016", + "md5": "5f09fa89a7c15deee0b494612f294b24", + "sha256": "6c9d52aeae1f2925891e995e6b960f58cbe9e8357295867fce3d0d92db8781d9", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 12.39, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/message/BasicHttpEntityEnclosingRequest.java", + "type": "file", + "name": "BasicHttpEntityEnclosingRequest.java", + "base_name": "BasicHttpEntityEnclosingRequest", + "extension": ".java", + "size": 2449, + "date": "2010-11-13", + "sha1": "2661e29083919cc00b79bdb4bf8ffeef92541bd3", + "md5": "bb2e54f11e5f24e72ff3b082116547a9", + "sha256": "3202e673da8530d085e73ec6f9649118308be544e2a2228e49364c7c54e44ef3", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 55.76, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/message/BasicHttpRequest.java", + "type": "file", + "name": "BasicHttpRequest.java", + "base_name": "BasicHttpRequest", + "extension": ".java", + "size": 4709, + "date": "2010-11-13", + "sha1": "e2a49cab5e94ff54165ac5a69cb56b614cd0a80d", + "md5": "e01bb5c458a30b4eb5e87459428a3391", + "sha256": "61901d7802c9e6668011f1ef587ce8e9dc4be4293349a47709ae8a6f00b2c051", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 28.41, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/message/BasicHttpResponse.java", + "type": "file", + "name": "BasicHttpResponse.java", + "base_name": "BasicHttpResponse", + "extension": ".java", + "size": 7039, + "date": "2010-11-13", + "sha1": "0e0c69290347151e1f21f20f0bfc144de5864d14", + "md5": "229e2dcbcad9fa5b171fcb39663768be", + "sha256": "ec41a4c9dd0d2e5dc0b29cba8bcc3ff09cda55e95290c7afc24bf1c02e34a0f8", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 21.07, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/message/BasicLineFormatter.java", + "type": "file", + "name": "BasicLineFormatter.java", + "base_name": "BasicLineFormatter", + "extension": ".java", + "size": 11342, + "date": "2010-11-13", + "sha1": "8afa64fea967817fb1537b676a63b411dcd31295", + "md5": "190becf2abe9ca893d29d3498e86dcad", + "sha256": "4dfe11315633be6c1a3b9ac375dfd6c15a78df2c248214cd06152e067036b046", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 13.85, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/message/BasicLineParser.java", + "type": "file", + "name": "BasicLineParser.java", + "base_name": "BasicLineParser", + "extension": ".java", + "size": 16579, + "date": "2010-11-13", + "sha1": "f76e18fc4371ed0dd4570886cc1e8cb415f518e5", + "md5": "c7f41e8a5b8dba5d742bdb9bbb091314", + "sha256": "3c706891b57c4fe02d93db8db9372c56061fbf6789cf6695a7f73f6b79594cf4", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 9.59, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/message/BasicListHeaderIterator.java", + "type": "file", + "name": "BasicListHeaderIterator.java", + "base_name": "BasicListHeaderIterator", + "extension": ".java", + "size": 5503, + "date": "2010-11-13", + "sha1": "5b6015f6caa0b22fabbff1119846b708b1e7d4e3", + "md5": "7c4c4a7390a47d7fd44f5eb05363f965", + "sha256": "8bcc36dd024a3c81a7c7e18d5b5e9354eea8828ea83fe688cc4e841b10869c58", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 24.31, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/message/BasicNameValuePair.java", + "type": "file", + "name": "BasicNameValuePair.java", + "base_name": "BasicNameValuePair", + "extension": ".java", + "size": 3408, + "date": "2010-11-13", + "sha1": "d524a85abd584cda752dfb8fd12594adf1c9ef06", + "md5": "4745fc159f2f7779791b0856708a9149", + "sha256": "53a8d518947f9bc30fda99d17f4e297d7de6089601f2be6add5fc927ff8fe3ff", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 39.89, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/message/BasicRequestLine.java", + "type": "file", + "name": "BasicRequestLine.java", + "base_name": "BasicRequestLine", + "extension": ".java", + "size": 2854, + "date": "2010-11-13", + "sha1": "202e265c0fba335068e4af1d50a06e9294a40698", + "md5": "843cb6faf02b661f37c070faef61c56d", + "sha256": "499e922c6e19e6c1c212ad91482eb6909c6df633a2bc8aff01a06df4c7d05b35", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 50, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/message/BasicStatusLine.java", + "type": "file", + "name": "BasicStatusLine.java", + "base_name": "BasicStatusLine", + "extension": ".java", + "size": 3532, + "date": "2010-11-13", + "sha1": "5a5893ea5dc10959b978e928e0f14d49ac57f6d2", + "md5": "925455e7aa2712ec710639eaff52d979", + "sha256": "fa0cdeea5593fac415b64969f570908ca0ca188688c7d2d2ea4610b15bc70b21", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 42.25, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/message/BasicTokenIterator.java", + "type": "file", + "name": "BasicTokenIterator.java", + "base_name": "BasicTokenIterator", + "extension": ".java", + "size": 14664, + "date": "2010-11-13", + "sha1": "6482ffea3c6484bbb71a6690dd53a55b2bf578ef", + "md5": "2e730da8b8383f8a031c82ee621ab504", + "sha256": "2893fecc5242f4fb64aaea246c27dcc6d76d4c8e04798abe4d999556e88109ef", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 9.39, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/message/BufferedHeader.java", + "type": "file", + "name": "BufferedHeader.java", + "base_name": "BufferedHeader", + "extension": ".java", + "size": 3883, + "date": "2010-11-13", + "sha1": "9f34be4657c037f393ab1e97483cdcdd9e0595f6", + "md5": "4805914bf83a91271425949e63eae2a6", + "sha256": "dc9909adf83d701d378f8c575314a1ca64c7f7ae057863092f38b81069f42202", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 35.97, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/message/HeaderGroup.java", + "type": "file", + "name": "HeaderGroup.java", + "base_name": "HeaderGroup", + "extension": ".java", + "size": 9011, + "date": "2010-11-13", + "sha1": "dc2da1cbdc3d57fd190b9aea755d4de5efe3b1c7", + "md5": "8d1bef5a11b52d7ddc1891ff4627e455", + "sha256": "13c930e0c47cf54855ca8d8aef41d5f3ee20c6bc39f6e6ad65296253e4bdf303", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 14.49, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/message/HeaderValueFormatter.java", + "type": "file", + "name": "HeaderValueFormatter.java", + "base_name": "HeaderValueFormatter", + "extension": ".java", + "size": 5209, + "date": "2010-11-13", + "sha1": "04a0ca72a8cdba1652da3ebea664208f181bc29d", + "md5": "3aed38ad6a7ac4d3ff9e054e97895a7d", + "sha256": "4bebb7d1dda14cedd3648d9e89ad1d62df79cda54e220265496c6668f2d083fa", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 24.75, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/message/HeaderValueParser.java", + "type": "file", + "name": "HeaderValueParser.java", + "base_name": "HeaderValueParser", + "extension": ".java", + "size": 5168, + "date": "2010-11-13", + "sha1": "f38659f0b25e537cd16485fce1154c3d0459c1e3", + "md5": "017243009eb58a5c6f5da720bd277ead", + "sha256": "d43303a845a44817ce6b4713a11132a68008b14f13a32e7e705a6c4b2b2e6074", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 25.55, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/message/LineFormatter.java", + "type": "file", + "name": "LineFormatter.java", + "base_name": "LineFormatter", + "extension": ".java", + "size": 5335, + "date": "2010-11-13", + "sha1": "c3cf87e17dd359d38088d8460f35cda7a8138257", + "md5": "a7f0e98ee58d7892a9153d970e09ad6b", + "sha256": "532ccfe6541ba8a5d1b385f033db37a1497f171d1a2448ce035f878b05c3c5bd", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 23.11, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/message/LineParser.java", + "type": "file", + "name": "LineParser.java", + "base_name": "LineParser", + "extension": ".java", + "size": 5363, + "date": "2010-11-13", + "sha1": "db4f1946169f89317a6bfd7e44cceb4f84491cb0", + "md5": "ddff469560010c1bb7e0272b4b794b91", + "sha256": "10d4c06250b2f7358514df0e697092859dc775a76891d8b5d912fbf8695ab206", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 24.12, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/message/package.html", + "type": "file", + "name": "package.html", + "base_name": "package", + "extension": ".html", + "size": 1546, + "date": "2010-11-13", + "sha1": "2b0f5e66f409b5f9206672efea2e8cc1ee1a0f4f", + "md5": "7ba0c4a30071678d62497a708750ce56", + "sha256": "96635bfcda2f7f1d3cf880965eea48cad5ad1e8dd14279160f73a98b0f4e3e64", + "mime_type": "text/html", + "file_type": "HTML document, ASCII text", + "programming_language": "HTML", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 6, + "end_line": 27, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 78.12, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 14, + "end_line": 14 + }, + { + "url": "http://www.apache.org/", + "start_line": 27, + "end_line": 27 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/message/ParserCursor.java", + "type": "file", + "name": "ParserCursor.java", + "base_name": "ParserCursor", + "extension": ".java", + "size": 3140, + "date": "2010-11-13", + "sha1": "63e7107771baa81115c9e88a8ebc5b0d98117f4b", + "md5": "9065de4d95363847a7995d3fe15b41b6", + "sha256": "dc2b1b73794cbeb57160cc9d1601a862a783ad882ca7815af1c070397ea3e9a1", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 44.25, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/params", + "type": "directory", + "name": "params", + "base_name": "params", + "extension": "", + "size": 0, + "date": null, + "sha1": null, + "md5": null, + "sha256": null, + "mime_type": null, + "file_type": null, + "programming_language": null, + "is_binary": false, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 13, + "dirs_count": 0, + "size_count": 54224, + "scan_errors": [] + }, + { + "path": "org/apache/http/params/AbstractHttpParams.java", + "type": "file", + "name": "AbstractHttpParams.java", + "base_name": "AbstractHttpParams", + "extension": ".java", + "size": 3451, + "date": "2010-11-13", + "sha1": "0401305548fb392a2de0f99627cef7fee68cf6cb", + "md5": "45d0c242d18883764ec0e818b334644f", + "sha256": "cbf2d0c536f162cc0e2a73f920601f3a1dd7ebc067c9bc37c89d237075ac6ec2", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 41.67, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/params/BasicHttpParams.java", + "type": "file", + "name": "BasicHttpParams.java", + "base_name": "BasicHttpParams", + "extension": ".java", + "size": 5093, + "date": "2010-11-13", + "sha1": "6c8c7474d6497cb9099e78cbf00b664b63d81c1d", + "md5": "25b46f8fef19f7841cbbbbc72aedf58a", + "sha256": "2c00d90d9fe96d1f1d7c97ad06d4158c09fd802841ea9aea647bf90dd4a490ae", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 26.79, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/params/CoreConnectionPNames.java", + "type": "file", + "name": "CoreConnectionPNames.java", + "base_name": "CoreConnectionPNames", + "extension": ".java", + "size": 6052, + "date": "2010-11-13", + "sha1": "4fcf871dd397743bacc65231444ceb30270b90a8", + "md5": "36cdb8ceec2dc09fe318ba49ec22d104", + "sha256": "fd63c3e365fbd73b6adf379a98e5f987e3a87acb6106bc6e667dcbb4e5242800", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 19.97, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/params/CoreProtocolPNames.java", + "type": "file", + "name": "CoreProtocolPNames.java", + "base_name": "CoreProtocolPNames", + "extension": ".java", + "size": 4315, + "date": "2010-11-13", + "sha1": "004b8802e57c03ab1b5329524b6e89e7898eb7e7", + "md5": "18ae868f3effc07b483851451101f1d1", + "sha256": "8233c020c99b5b15bfc06f6ef97a2c325ace82f935002045c4099d65af87e762", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 29.59, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/params/DefaultedHttpParams.java", + "type": "file", + "name": "DefaultedHttpParams.java", + "base_name": "DefaultedHttpParams", + "extension": ".java", + "size": 3317, + "date": "2010-11-13", + "sha1": "22df83abee8830c832d4af4892b08bb6ae570fc5", + "md5": "22db53da6aed60455fd453a9f2094538", + "sha256": "9407cdb0030602c84d4502db4cac36b7e58dbf88804b9ea71d8c63bfd6cc9149", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 38.46, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/params/HttpAbstractParamBean.java", + "type": "file", + "name": "HttpAbstractParamBean.java", + "base_name": "HttpAbstractParamBean", + "extension": ".java", + "size": 1538, + "date": "2010-11-13", + "sha1": "cbeac10e6fa8cc1ab09bdbee3e9b0a34b0eda3a1", + "md5": "5f48f2896ae7d7e1d6b382ce87542e3e", + "sha256": "6c78da7bd2e58a6341d9327d59f0d110de29ca7944c875f31818338c8e7d4144", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 81.08, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/params/HttpConnectionParamBean.java", + "type": "file", + "name": "HttpConnectionParamBean.java", + "base_name": "HttpConnectionParamBean", + "extension": ".java", + "size": 2374, + "date": "2010-11-13", + "sha1": "82bf253bcd11121d5174b1cafa7fcbc1f83e5681", + "md5": "e35f79084be7512e9e464d83dba72abb", + "sha256": "efbb66d76226c9103d0230406fe879f65b384911561b678261d9021edab39b97", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 60.73, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/params/HttpConnectionParams.java", + "type": "file", + "name": "HttpConnectionParams.java", + "base_name": "HttpConnectionParams", + "extension": ".java", + "size": 8435, + "date": "2010-11-13", + "sha1": "7dbff412260f193b78ee012d4cb60faf27650c33", + "md5": "1edfec17ea306a124a40538d682843d7", + "sha256": "43dc7643875fe47beccb8584803d14a29bf7c6092c9dd90a2c57f258faf3efb2", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 17.56, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/params/HttpParams.java", + "type": "file", + "name": "HttpParams.java", + "base_name": "HttpParams", + "extension": ".java", + "size": 6551, + "date": "2010-11-13", + "sha1": "b120d3eb0d015196a05639f57fa255477ecc4e6f", + "md5": "fb00ea455101bb155d1036827b484563", + "sha256": "d18dfb7ec3ee04818b3733be46172f7cfb0c2bb94362665d0d2984c9d51c8c63", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 18.82, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/params/HttpProtocolParamBean.java", + "type": "file", + "name": "HttpProtocolParamBean.java", + "base_name": "HttpProtocolParamBean", + "extension": ".java", + "size": 2300, + "date": "2010-11-13", + "sha1": "1eb1027b36e512b3d26a9c7eae61cdcb88ceac0d", + "md5": "5bd716969bb1d6788028a8e263124786", + "sha256": "823a4db74e1dd7c6082577662859d2378bd9071b8c6f1501b8601302962e7377", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 60.73, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/params/HttpProtocolParams.java", + "type": "file", + "name": "HttpProtocolParams.java", + "base_name": "HttpProtocolParams", + "extension": ".java", + "size": 7012, + "date": "2010-11-13", + "sha1": "388905a2839b997ceae198b0929fa716d36f27d4", + "md5": "17119c9df7dfa326ad9b462a6b1e9b4e", + "sha256": "3e0e6490a048051a8ad40f253a6fd57e92f995d8112e0137f50c9d84108c0bc6", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 20.72, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/params/package.html", + "type": "file", + "name": "package.html", + "base_name": "package", + "extension": ".html", + "size": 1351, + "date": "2010-11-13", + "sha1": "d9d41dc12a6ba536473f59b602648d028fc4d354", + "md5": "286689793a4e57978e42efbb6f76632c", + "sha256": "191cbd4e0fb162cae7ffc28bd0d0bcc371df34ecf05138bfbd4689190ff868ca", + "mime_type": "text/html", + "file_type": "HTML document, ASCII text", + "programming_language": "HTML", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 6, + "end_line": 27, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 88.24, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 14, + "end_line": 14 + }, + { + "url": "http://www.apache.org/", + "start_line": 27, + "end_line": 27 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/params/SyncBasicHttpParams.java", + "type": "file", + "name": "SyncBasicHttpParams.java", + "base_name": "SyncBasicHttpParams", + "extension": ".java", + "size": 2435, + "date": "2010-11-13", + "sha1": "abd359da40b7f4a818cddcdb84d4dbef5d89f6c8", + "md5": "2ccfe245e111374cf873923d4e2d9954", + "sha256": "641f1fa83e3bc01525ecf0e0dc05040d1c6eec5ea0f7e47463fa2f15daa3fa13", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 56.39, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/protocol", + "type": "directory", + "name": "protocol", + "base_name": "protocol", + "extension": "", + "size": 0, + "date": null, + "sha1": null, + "md5": null, + "sha256": null, + "mime_type": null, + "file_type": null, + "programming_language": null, + "is_binary": false, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 30, + "dirs_count": 0, + "size_count": 117337, + "scan_errors": [] + }, + { + "path": "org/apache/http/protocol/BasicHttpContext.java", + "type": "file", + "name": "BasicHttpContext.java", + "base_name": "BasicHttpContext", + "extension": ".java", + "size": 2763, + "date": "2010-11-13", + "sha1": "c4624809af7d770dd989d0eb639dada0fda7f769", + "md5": "bf801cbaed9b8caa9683982b532dfd5f", + "sha256": "929e4a95e36c0c5d204a7bde80cc3281a5c4767339d407d644fd3c9b64555af5", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 47.77, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/protocol/BasicHttpProcessor.java", + "type": "file", + "name": "BasicHttpProcessor.java", + "base_name": "BasicHttpProcessor", + "extension": ".java", + "size": 8321, + "date": "2010-11-13", + "sha1": "0c19c07eb2071fe7e620461d28f3b71fbdbdaacb", + "md5": "eca4d1d7a9d341f8b748881423fddeba", + "sha256": "3bd4fa8860f4a20930ea39d9950a1464ef4421cb758ecb62422966b03277a61d", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 19.71, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/protocol/DefaultedHttpContext.java", + "type": "file", + "name": "DefaultedHttpContext.java", + "base_name": "DefaultedHttpContext", + "extension": ".java", + "size": 2506, + "date": "2010-11-13", + "sha1": "515dc3d534b188cfa81d040576f88d87fadeb0a7", + "md5": "9f58dbda2e5bfb06dfcb9574cbd0c8ac", + "sha256": "ea57f0cedc41ad08ddfdfbd241652644ebb49dfd496d78c82d76ee522dd034de", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 50.68, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/protocol/ExecutionContext.java", + "type": "file", + "name": "ExecutionContext.java", + "base_name": "ExecutionContext", + "extension": ".java", + "size": 2626, + "date": "2010-11-13", + "sha1": "6511c78611616b08e74f1629e882d868e72f9543", + "md5": "eccb1f228f8247c76f344cfbcb110ade", + "sha256": "12fb56b68fc221bdc9bc5e8f62d5bf522a6dff5f6cb99a3f031a9313d054cf78", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 47.02, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/protocol/HTTP.java", + "type": "file", + "name": "HTTP.java", + "base_name": "HTTP", + "extension": ".java", + "size": 3631, + "date": "2010-11-13", + "sha1": "ef0615a0ab8fc87942ca79705524791bad5625f5", + "md5": "b0d4367ccdc6645a903aabf643ce3ef3", + "sha256": "fef037ff4122ba1325e14bc383eec00534dfda519a31ca0fb2682b490dbdbc3e", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 32.4, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/protocol/HttpContext.java", + "type": "file", + "name": "HttpContext.java", + "base_name": "HttpContext", + "extension": ".java", + "size": 2682, + "date": "2010-11-13", + "sha1": "12b772e88ff602bc87a8f9ed275c1b77858ce1a0", + "md5": "07a189f9c863a985f21c1697a1467ecf", + "sha256": "be9e5480412f49c366161c33d1f48eacaa375f0fea0cc5f33e38f1b96fca689d", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 43.6, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/protocol/HttpDateGenerator.java", + "type": "file", + "name": "HttpDateGenerator.java", + "base_name": "HttpDateGenerator", + "extension": ".java", + "size": 2403, + "date": "2010-11-13", + "sha1": "a45cca3585a4fbb49a5857946926e8913a2ac24f", + "md5": "2f2fe54dac19e80d8735cdba103555b7", + "sha256": "be3380be989330c99239978eeed2964773bad231368faa005b6f8c2f77767a49", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 51.55, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/protocol/HttpExpectationVerifier.java", + "type": "file", + "name": "HttpExpectationVerifier.java", + "base_name": "HttpExpectationVerifier", + "extension": ".java", + "size": 3263, + "date": "2010-11-13", + "sha1": "6616a01ccdf1b6d3868b086296181ff47416574a", + "md5": "ac0fbb1ba886ab017d9e4d4e4ce55f6e", + "sha256": "7fcb43a27f74d9340f4ed3503cc275ea35a1216ed83cfb8dd76913ea9420ba25", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 36.5, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/protocol/HttpProcessor.java", + "type": "file", + "name": "HttpProcessor.java", + "base_name": "HttpProcessor", + "extension": ".java", + "size": 2320, + "date": "2010-11-13", + "sha1": "4170b9a6ca01df2ca720d5d5a7147fd326aaed0c", + "md5": "9a7b708bf3a8cd2c3dfe4dfdc90d74a5", + "sha256": "40f6fda3d3cc5360a392108edf012681b8bc8b9d3728397a1d620deb05ad6424", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 51.19, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/protocol/HttpRequestExecutor.java", + "type": "file", + "name": "HttpRequestExecutor.java", + "base_name": "HttpRequestExecutor", + "extension": ".java", + "size": 13334, + "date": "2010-11-13", + "sha1": "0ac2362c432520beabb6a4f0f0adb71eea3efb48", + "md5": "92a7a28f72cf09d1ce00ce84626c5585", + "sha256": "e456d7981602be43c863080f370e60c9389c2a275b1c31b5e5b8ce17cb43e0be", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 11.19, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/protocol/HttpRequestHandler.java", + "type": "file", + "name": "HttpRequestHandler.java", + "base_name": "HttpRequestHandler", + "extension": ".java", + "size": 2394, + "date": "2010-11-13", + "sha1": "54402e85c90ae80c183640cdb675f61e2a508d7d", + "md5": "ad81d2b4cfa9b8c8f6912774bd587cae", + "sha256": "7652c1b5205a1e37300a6f22700b4effb5e4da08d2f51d6a91e1a4daa32e507d", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 49.5, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/protocol/HttpRequestHandlerRegistry.java", + "type": "file", + "name": "HttpRequestHandlerRegistry.java", + "base_name": "HttpRequestHandlerRegistry", + "extension": ".java", + "size": 3397, + "date": "2010-11-13", + "sha1": "788980988e1cefac802e1fb84b84530e13cb9d32", + "md5": "23c2945f1f7a417e7b4ae498c7b055da", + "sha256": "05d069883fb4ef822bee2e36b8d4f0cc87e482c14b33416d0a8a6d6bd00a56f3", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 40.11, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/protocol/HttpRequestHandlerResolver.java", + "type": "file", + "name": "HttpRequestHandlerResolver.java", + "base_name": "HttpRequestHandlerResolver", + "extension": ".java", + "size": 1797, + "date": "2010-11-13", + "sha1": "e7a15d8c899727ffd0b878699000ea70128d4b9c", + "md5": "c710d53e1335490655007b987509c219", + "sha256": "1472b8fd1cbfe20116c9effa195c9e0902173c58582a903611245cf9ec4b8062", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 67.26, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/protocol/HttpRequestInterceptorList.java", + "type": "file", + "name": "HttpRequestInterceptorList.java", + "base_name": "HttpRequestInterceptorList", + "extension": ".java", + "size": 3289, + "date": "2010-11-13", + "sha1": "189594259d89575a67db918788e1a76cef75d1a6", + "md5": "6916f484f19f11d644d57ba5b156e629", + "sha256": "783b0ea7a89d2c0a956b871fd6d14d2826c39b7cd61d5f111fd1d5a62362eb7c", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 39.79, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/protocol/HttpResponseInterceptorList.java", + "type": "file", + "name": "HttpResponseInterceptorList.java", + "base_name": "HttpResponseInterceptorList", + "extension": ".java", + "size": 3313, + "date": "2010-11-13", + "sha1": "1e90c2b40bcd8adfecf16dd4cc5b67e6c7d7ee66", + "md5": "85866cde67995e5f566d5000ed0c876f", + "sha256": "74a530eb0140c8e4a8a9369b14151819fd5ae8c39ce8d1839251e2c7cfbab89a", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 39.79, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/protocol/HttpService.java", + "type": "file", + "name": "HttpService.java", + "base_name": "HttpService", + "extension": ".java", + "size": 15062, + "date": "2010-11-13", + "sha1": "67ede2152d32557bf806a59bdf1386259099e7eb", + "md5": "d03c1371d10e82a702afec5ba70ef33c", + "sha256": "d99cf77c4011fc9c0f35cee1200fc136af07f5dd0ce9903949274eb3724e88df", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 11.01, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/protocol/ImmutableHttpProcessor.java", + "type": "file", + "name": "ImmutableHttpProcessor.java", + "base_name": "ImmutableHttpProcessor", + "extension": ".java", + "size": 4669, + "date": "2010-11-13", + "sha1": "1a2aa84cd3030c635537cf3d808c22904e5d14e5", + "md5": "76f47a026f439d78ac05056eea598590", + "sha256": "5011ba129908f0d9a1b477fa2fa26f64936a087e03ca27479a4929e4237b7870", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 36.23, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/protocol/package.html", + "type": "file", + "name": "package.html", + "base_name": "package", + "extension": ".html", + "size": 1440, + "date": "2010-11-13", + "sha1": "31dc05a3967b44dac9831ce7005296fc39b4c098", + "md5": "7506482099eaed667079c0019492b015", + "sha256": "88ed7f779110eba2b3a4f5091b786db359c99f65d1b459af423d1d43c3e1b9f9", + "mime_type": "text/html", + "file_type": "HTML document, ASCII text", + "programming_language": "HTML", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 6, + "end_line": 27, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 82.87, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 14, + "end_line": 14 + }, + { + "url": "http://www.apache.org/", + "start_line": 27, + "end_line": 27 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/protocol/RequestConnControl.java", + "type": "file", + "name": "RequestConnControl.java", + "base_name": "RequestConnControl", + "extension": ".java", + "size": 2423, + "date": "2010-11-13", + "sha1": "9aedfb9e2cc05e9517762a751b10c89b9524b121", + "md5": "36d3a9b23c610f9a11403f8ee7440ef1", + "sha256": "b38094b7131e5ff8c9d83fb020127c2ab70b57c6713c3a8226def641f5b9513d", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 54.35, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/protocol/RequestContent.java", + "type": "file", + "name": "RequestContent.java", + "base_name": "RequestContent", + "extension": ".java", + "size": 4098, + "date": "2010-11-13", + "sha1": "a36a8fed96333c8515accb18b903832f57ce788b", + "md5": "2c99d89bd5a262537a2aaa7b15984e52", + "sha256": "3bc87cfed9b90db3fe9419c141f22b8c08f94a5d9f8f2e040bf076ed9f9c2cab", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 35.71, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/protocol/RequestDate.java", + "type": "file", + "name": "RequestDate.java", + "base_name": "RequestDate", + "extension": ".java", + "size": 2347, + "date": "2010-11-13", + "sha1": "452da3305c92d468017d0ed99b3c804da6d41b66", + "md5": "b4e11480cf88b8ee4d4118ded08c8199", + "sha256": "9b51021beb68c2b672295f6e6e1f419bf203a5a8ebbc69ba8aa279d91c5bf591", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 57.03, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/protocol/RequestExpectContinue.java", + "type": "file", + "name": "RequestExpectContinue.java", + "base_name": "RequestExpectContinue", + "extension": ".java", + "size": 3037, + "date": "2010-11-13", + "sha1": "6fde1da5af235ca29fe54107d5765a6d65450a43", + "md5": "a0e7dfe22376088f5b47e12613a26cd4", + "sha256": "bfeafff347a4dbec03f6b6d239337409f755c1de779eed3c4a395fa169721f9b", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 45.45, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/protocol/RequestTargetHost.java", + "type": "file", + "name": "RequestTargetHost.java", + "base_name": "RequestTargetHost", + "extension": ".java", + "size": 3816, + "date": "2010-11-13", + "sha1": "ee23fd878b23fa63ed4a0ec3eddb32cfedba5340", + "md5": "1e97c4ea55997453a1d951e1f4fb489b", + "sha256": "dab26fc11f0d0d3e21de7496a5ab89250afde1bf077aebc92c383e2c5b3dc4c8", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 39.27, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/protocol/RequestUserAgent.java", + "type": "file", + "name": "RequestUserAgent.java", + "base_name": "RequestUserAgent", + "extension": ".java", + "size": 2418, + "date": "2010-11-13", + "sha1": "0ba2f64e37fcefbafd4f7a0f531e75e037bf59f4", + "md5": "1c497fb213cc8a4f7be7e2fcf1d41109", + "sha256": "56a3bc2f2fdb2edc5000a75df14304b733df683c320ed82374f01d3d6275a9d0", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 54.95, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/protocol/ResponseConnControl.java", + "type": "file", + "name": "ResponseConnControl.java", + "base_name": "ResponseConnControl", + "extension": ".java", + "size": 3979, + "date": "2010-11-13", + "sha1": "7c73e05a6a06d46c02cf2dc19aaee81d554c2af2", + "md5": "a2a8023cb1133bf33137f930beb15a76", + "sha256": "f3369ade9292d79108d80423006037d1de553a5d08d2078a064a449f90d8d950", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 34.88, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/protocol/ResponseContent.java", + "type": "file", + "name": "ResponseContent.java", + "base_name": "ResponseContent", + "extension": ".java", + "size": 4006, + "date": "2010-11-13", + "sha1": "407855877268538c9ef0ba58d2687e6faf069fc7", + "md5": "187c8442012eb7e15a5928e970137dff", + "sha256": "3b09c204fb4feb817bd6357d138dcdfef69d4e0cb23d2b627573f16ff9b55971", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 35.55, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/protocol/ResponseDate.java", + "type": "file", + "name": "ResponseDate.java", + "base_name": "ResponseDate", + "extension": ".java", + "size": 2380, + "date": "2010-11-13", + "sha1": "eb6e0cb2d8e53fa55e1cc3a4b6b9875fda25ffb7", + "md5": "ba22691876535cbc8d5fad76df72b0ca", + "sha256": "dc29840d9139ad90fe5c7f8409fcc3e40bbff5dfdaa56986e4fe284c8612a07d", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 55.76, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/protocol/ResponseServer.java", + "type": "file", + "name": "ResponseServer.java", + "base_name": "ResponseServer", + "extension": ".java", + "size": 2450, + "date": "2010-11-13", + "sha1": "3c1b6ec6a9034204e5d52097aebec14692c69e36", + "md5": "578c5b50a8184fde5f8315d236a38abe", + "sha256": "2c49c45f72d137d7a453a82c58cc209483671b7a8b6095f6b3767cb7c3db4801", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 55.15, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/protocol/SyncBasicHttpContext.java", + "type": "file", + "name": "SyncBasicHttpContext.java", + "base_name": "SyncBasicHttpContext", + "extension": ".java", + "size": 1818, + "date": "2010-11-13", + "sha1": "904b96563dd0e8e3de062ee1978b7b72eb9833f6", + "md5": "22161b04b37382d1f6e3fd23dc7dfe2c", + "sha256": "b4fdc2294fc04ddfd95eddf7a02225e8fbd92efa35b0b1a8264052fdd4c102e5", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 70.75, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/protocol/UriPatternMatcher.java", + "type": "file", + "name": "UriPatternMatcher.java", + "base_name": "UriPatternMatcher", + "extension": ".java", + "size": 5355, + "date": "2010-11-13", + "sha1": "a96a7d37174a005f5ff4c61c09cb0e58e505c515", + "md5": "72a23e7f182467ea34dd140f41014fc1", + "sha256": "0551e322a05eae3a5cb45bbf39cd1d60722801e819056ad05adba5656ac01165", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 26.18, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/util", + "type": "directory", + "name": "util", + "base_name": "util", + "extension": "", + "size": 0, + "date": null, + "sha1": null, + "md5": null, + "sha256": null, + "mime_type": null, + "file_type": null, + "programming_language": null, + "is_binary": false, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 8, + "dirs_count": 0, + "size_count": 59712, + "scan_errors": [] + }, + { + "path": "org/apache/http/util/ByteArrayBuffer.java", + "type": "file", + "name": "ByteArrayBuffer.java", + "base_name": "ByteArrayBuffer", + "extension": ".java", + "size": 11784, + "date": "2010-11-13", + "sha1": "1f43327077a86f45f27b9b8f81f534ac2c6247fc", + "md5": "aa3a3f1e828d2a2753df1eafa61cbd42", + "sha256": "6e0128327f1ace03787d8b618456adde82463c8f6810ea5902501736e7f3a2fc", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 10.1, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/util/CharArrayBuffer.java", + "type": "file", + "name": "CharArrayBuffer.java", + "base_name": "CharArrayBuffer", + "extension": ".java", + "size": 16429, + "date": "2010-11-13", + "sha1": "b8a396d8e1b5eaebdfff7582615d0abc29ad10cc", + "md5": "a62069598c3b4aae737721120dec2994", + "sha256": "9d2dd7cd79b0579faf3bd740b21cb9c868a4fe34695361372b99864b9ea9528a", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 7.51, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/util/EncodingUtils.java", + "type": "file", + "name": "EncodingUtils.java", + "base_name": "EncodingUtils", + "extension": ".java", + "size": 5872, + "date": "2010-11-13", + "sha1": "ebcb4d1a312503192ed1d40c1750eccf9b0496bc", + "md5": "4eca38f820b4dfbf57e7fa762647048f", + "sha256": "d14ede17be75a7754d4901298d92c809f4a8d591d1232252c5019eb2f72a7335", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 21.93, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/util/EntityUtils.java", + "type": "file", + "name": "EntityUtils.java", + "base_name": "EntityUtils", + "extension": ".java", + "size": 7969, + "date": "2010-11-13", + "sha1": "5f32e1f2fb8848b00854498e26fa52b83fd03cff", + "md5": "c9ecc24914bcf6d8bce8c4a835bc3923", + "sha256": "9a049e8dba1d2d7ce78274bc6f06002b50e7681f9816c73446a5cbb1e2eef13f", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 17.18, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/util/ExceptionUtils.java", + "type": "file", + "name": "ExceptionUtils.java", + "base_name": "ExceptionUtils", + "extension": ".java", + "size": 2805, + "date": "2010-11-13", + "sha1": "2c4bc02be0d5e4ef35c6c2e0e06fa57f5f195113", + "md5": "f73305960f5fb82bef9b5e366c166db4", + "sha256": "dc63d8ec55ac4a2fc9f1ee6123a38992ce64f7d031eb23e052bdfff25d28957a", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 46.15, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/util/LangUtils.java", + "type": "file", + "name": "LangUtils.java", + "base_name": "LangUtils", + "extension": ".java", + "size": 2684, + "date": "2010-11-13", + "sha1": "ecfd92682e5e564c2193cb1fbf460f101716714e", + "md5": "38386ac7520ad8af989f0b6565f64654", + "sha256": "022b32fb3b265d15b8d5fe9cbf6c3f0dcf7faf66fbe0b2030de5bac260a9fd42", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 47.62, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/util/package.html", + "type": "file", + "name": "package.html", + "base_name": "package", + "extension": ".html", + "size": 1415, + "date": "2010-11-13", + "sha1": "6e7e6142aa8c0380a56c3b1d3298b7de49c2d3e4", + "md5": "529503c9893d7342db403ffeee349d00", + "sha256": "146eb50b3c8c9ddad34517f56ef96d08d3873d02c06569ba051d16c690172479", + "mime_type": "text/html", + "file_type": "HTML document, ASCII text", + "programming_language": "HTML", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 6, + "end_line": 27, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 83.8, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 14, + "end_line": 14 + }, + { + "url": "http://www.apache.org/", + "start_line": 27, + "end_line": 27 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/apache/http/util/VersionInfo.java", + "type": "file", + "name": "VersionInfo.java", + "base_name": "VersionInfo", + "extension": ".java", + "size": 10754, + "date": "2010-11-13", + "sha1": "d9f180dd61eabf70a1b9cfed4fa74d6312ad16d0", + "md5": "5d3313860a0cfb620f697c4ba4054744", + "sha256": "29c288cbb90783359e367ab681d40b685f31189d11e3bf06dbe4179323cd94fc", + "mime_type": "text/x-java", + "file_type": "Java source, ASCII text", + "programming_language": "Java", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 24, + "matched_rule": { + "identifier": "apache-2.0_25_notice.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 150, + "matched_length": 150, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n * ====================================================================\n *\n * This software consists of voluntary contributions made by many\n * individuals on behalf of the Apache Software Foundation. For more\n * information on the Apache Software Foundation, please see\n * ." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 13.56, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 11, + "end_line": 11 + }, + { + "url": "http://www.apache.org/", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + } + ] + } + } + } +} \ No newline at end of file diff --git a/test/business/summarizerTest.js b/test/business/summarizerTest.js new file mode 100644 index 000000000..da4f67abe --- /dev/null +++ b/test/business/summarizerTest.js @@ -0,0 +1,21 @@ +// (c) Copyright 2023, SAP SE and ClearlyDefined contributors. Licensed under the MIT license. +// SPDX-License-Identifier: MIT + +const { expect } = require('chai') +const SummaryService = require('../../business/summarizer') +const EntityCoordinates = require('../../lib/entityCoordinates') + +describe('Summary Service', () => { + it('should handle sourcearchive components', () => { + const coordSpec = 'sourcearchive/mavencentral/org.apache.httpcomponents/httpcore/4.1' + const coords = EntityCoordinates.fromString(coordSpec) + const raw = require(`./evidence/${coordSpec.replace(/\//g, '-')}.json`) + + const summaryService = SummaryService({}) + const summaries = summaryService.summarizeAll(coords, raw) + const scancodeSummary = summaries['scancode']['30.3.0'] + expect(scancodeSummary.licensed.declared).to.equal('Apache-2.0') + const licenseeSummary = summaries['licensee']['9.14.0'] + expect(licenseeSummary.licensed.declared).to.equal('Apache-2.0') + }) +}) diff --git a/test/fixtures/scancode/30.1.0/maven-flywaydb-file-license.json b/test/fixtures/scancode/30.1.0/maven-flywaydb-file-license.json new file mode 100644 index 000000000..dde707b5e --- /dev/null +++ b/test/fixtures/scancode/30.1.0/maven-flywaydb-file-license.json @@ -0,0 +1,1531 @@ +{ + "_metadata": { + "type": "scancode", + "url": "cd:/maven/mavencentral/org.flywaydb/flyway-maven-plugin/5.0.6", + "fetchedAt": "2023-07-04T22:13:03.522Z", + "links": { + "self": { + "href": "urn:maven:mavencentral:org.flywaydb:flyway-maven-plugin:revision:5.0.6:tool:scancode:30.3.0", + "type": "resource" + }, + "siblings": { + "href": "urn:maven:mavencentral:org.flywaydb:flyway-maven-plugin:revision:5.0.6:tool:scancode", + "type": "collection" + } + }, + "schemaVersion": "30.3.0", + "toolVersion": "30.1.0", + "contentType": "application/json", + "releaseDate": "2018-01-16T13:54:17.000Z", + "processedAt": "2023-07-04T22:13:13.842Z" + }, + "content": { + "headers": [ + { + "tool_name": "scancode-toolkit", + "tool_version": "30.1.0", + "options": { + "input": [ + "/tempdir/cd-Tq1gTt" + ], + "--classify": true, + "--copyright": true, + "--email": true, + "--generated": true, + "--info": true, + "--is-license-text": true, + "--json-pp": "/tempdir/cd-LxElVP", + "--license": true, + "--license-clarity-score": true, + "--license-text": true, + "--license-text-diagnostics": true, + "--package": true, + "--processes": "2", + "--strip-root": true, + "--summary": true, + "--summary-key-files": true, + "--timeout": "1000.0", + "--url": true + }, + "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", + "start_timestamp": "2023-07-04T221304.102545", + "end_timestamp": "2023-07-04T221313.153887", + "output_format_version": "1.0.0", + "duration": 9.051357507705688, + "message": null, + "errors": [], + "extra_data": { + "spdx_license_list_version": "3.14", + "OUTDATED": "WARNING: Outdated ScanCode Toolkit version! You are using an outdated version of ScanCode Toolkit: 30.1.0 released on: 2021-09-24. A new version is available with important improvements including bug and security fixes, updated license, copyright and package detection, and improved scanning accuracy. Please download and install the latest version of ScanCode. Visit https://github.com/nexB/scancode-toolkit/releases for details.", + "files_count": 17 + } + } + ], + "summary": { + "license_expressions": [ + { + "value": "apache-2.0", + "count": 3 + } + ], + "copyrights": [ + { + "value": null, + "count": 14 + }, + { + "value": "Copyright Boxfuse GmbH", + "count": 2 + }, + { + "value": "Copyright (c) Axel Fontaine", + "count": 1 + } + ], + "holders": [ + { + "value": null, + "count": 14 + }, + { + "value": "Boxfuse GmbH", + "count": 2 + }, + { + "value": "Axel Fontaine", + "count": 1 + } + ], + "authors": [ + { + "value": null, + "count": 17 + } + ], + "programming_language": [], + "packages": [ + { + "type": "maven", + "namespace": "org.flywaydb", + "name": "flyway-maven-plugin", + "version": "5.0.6", + "qualifiers": {}, + "subpath": null, + "primary_language": "Java", + "description": "flyway-maven-plugin", + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:maven/org.apache.maven/maven-plugin-api", + "requirement": null, + "scope": "compile", + "is_runtime": false, + "is_optional": true, + "is_resolved": null + }, + { + "purl": "pkg:maven/org.apache.maven/maven-artifact", + "requirement": null, + "scope": "compile", + "is_runtime": false, + "is_optional": true, + "is_resolved": null + }, + { + "purl": "pkg:maven/org.apache.maven/maven-model", + "requirement": null, + "scope": "compile", + "is_runtime": false, + "is_optional": true, + "is_resolved": null + }, + { + "purl": "pkg:maven/org.apache.maven/maven-core", + "requirement": null, + "scope": "compile", + "is_runtime": false, + "is_optional": true, + "is_resolved": null + }, + { + "purl": "pkg:maven/org.sonatype.plexus/plexus-sec-dispatcher@1.4", + "requirement": "1.4", + "scope": "compile", + "is_runtime": false, + "is_optional": true, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.5.15", + "requirement": "1.5.15", + "scope": "compile", + "is_runtime": false, + "is_optional": true, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.flywaydb/flyway-core@5.0.6", + "requirement": "5.0.6", + "scope": "compile", + "is_runtime": false, + "is_optional": true, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.plugin-tools/maven-plugin-annotations@3.5", + "requirement": "3.5", + "scope": "provided", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [ + "pkg:maven/org.flywaydb/flyway-maven-plugin@5.0.6?classifier=sources" + ], + "extra_data": {}, + "purl": "pkg:maven/org.flywaydb/flyway-maven-plugin@5.0.6", + "repository_homepage_url": "https://repo1.maven.org/maven2/org/flywaydb/flyway-maven-plugin/5.0.6/", + "repository_download_url": "https://repo1.maven.org/maven2/org/flywaydb/flyway-maven-plugin/5.0.6/flyway-maven-plugin-5.0.6.jar", + "api_data_url": "https://repo1.maven.org/maven2/org/flywaydb/flyway-maven-plugin/5.0.6/flyway-maven-plugin-5.0.6.pom", + "files": [ + { + "path": "META-INF/maven/org.flywaydb/flyway-maven-plugin/pom.xml", + "type": "file" + } + ] + } + ] + }, + "license_clarity_score": { + "score": 4, + "declared": false, + "discovered": 0.18, + "consistency": false, + "spdx": false, + "license_texts": false + }, + "summary_of_key_files": { + "license_expressions": [], + "copyrights": [], + "holders": [], + "authors": [], + "programming_language": [] + }, + "files": [ + { + "path": "META-INF", + "type": "directory", + "name": "META-INF", + "base_name": "META-INF", + "extension": "", + "size": 0, + "date": null, + "sha1": null, + "md5": null, + "sha256": null, + "mime_type": null, + "file_type": null, + "programming_language": null, + "is_binary": false, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": true, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 7, + "dirs_count": 3, + "size_count": 409851, + "scan_errors": [] + }, + { + "path": "META-INF/LICENSE.txt", + "type": "file", + "name": "LICENSE.txt", + "base_name": "LICENSE", + "extension": ".txt", + "size": 561, + "date": "2018-01-16", + "sha1": "956959d6b1a80c27d1d697e0a1e79623417715f8", + "md5": "c93c35e4edef93889ed8421f50be4772", + "sha256": "58c006eea3e0086865cecfdda4747cbbe77f624400ac7422e8b31338a4357aee", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": null, + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 13, + "matched_rule": { + "identifier": "apache-2.0_7.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 85, + "matched_length": 85, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 94.44, + "copyrights": [ + { + "value": "Copyright 2010-2018 Boxfuse GmbH", + "start_line": 1, + "end_line": 1 + } + ], + "holders": [ + { + "value": "Boxfuse GmbH", + "start_line": 1, + "end_line": 1 + } + ], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 7, + "end_line": 7 + } + ], + "is_legal": true, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": true, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "META-INF/MANIFEST.MF", + "type": "file", + "name": "MANIFEST.MF", + "base_name": "MANIFEST", + "extension": ".MF", + "size": 130, + "date": "2018-01-16", + "sha1": "014a1b38bac03c69d00ba12d14fecdc62d04eb33", + "md5": "ce66702162ad3f3e2f842c74133f4b11", + "sha256": "05e10ea0400e4e77f9f4de009a0b4db1fc53809d38d0bba3a51b50b4d1f12f98", + "mime_type": "text/plain", + "file_type": "ASCII text, with CRLF line terminators", + "programming_language": null, + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [], + "is_legal": false, + "is_manifest": true, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "META-INF/README.txt", + "type": "file", + "name": "README.txt", + "base_name": "README", + "extension": ".txt", + "size": 966, + "date": "2018-01-16", + "sha1": "4034f0e2154272a7bcfcd31d4dae54ef220b2700", + "md5": "ab11671f03862534cb69b10a24e0a200", + "sha256": "69ba88f3d1d4f2cf8dbc0f6d07f5035359633905e39c03fb08df9be6f7a640c8", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": null, + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 90.53, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 16, + "end_line": 30, + "matched_rule": { + "identifier": "apache-2.0_943.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "3-seq", + "rule_length": 95, + "matched_length": 86, + "match_coverage": 90.53, + "rule_relevance": 100 + }, + "matched_text": "License\n-------\n[Copyright] ([C]) [2010]-[2015] [Axel] [Fontaine]\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 60.99, + "copyrights": [ + { + "value": "Copyright (c) 2010-2015 Axel Fontaine", + "start_line": 18, + "end_line": 18 + } + ], + "holders": [ + { + "value": "Axel Fontaine", + "start_line": 18, + "end_line": 18 + } + ], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "https://flywaydb.org/", + "start_line": 8, + "end_line": 8 + }, + { + "url": "https://flywaydb.org/documentation/contribute/", + "start_line": 13, + "end_line": 13 + }, + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 24, + "end_line": 24 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": true, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "META-INF/maven", + "type": "directory", + "name": "maven", + "base_name": "maven", + "extension": "", + "size": 0, + "date": null, + "sha1": null, + "md5": null, + "sha256": null, + "mime_type": null, + "file_type": null, + "programming_language": null, + "is_binary": false, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 4, + "dirs_count": 2, + "size_count": 408194, + "scan_errors": [] + }, + { + "path": "META-INF/maven/plugin.xml", + "type": "file", + "name": "plugin.xml", + "base_name": "plugin", + "extension": ".xml", + "size": 214274, + "date": "2018-01-16", + "sha1": "0afea464bbac5394d2c60918b97669d2551af565", + "md5": "3f62393cd5ebbd9c3d98e3d76c1a4f2d", + "sha256": "d157b16f3c7103ff149051c868276741edda7246a4508c10873adb928c5575b4", + "mime_type": "text/xml", + "file_type": "XML 1.0 document, ASCII text, with CRLF line terminators", + "programming_language": null, + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [ + { + "url": "https://flywaydb.org/assets/balsamiq/command-validate.png"", + "start_line": 3020, + "end_line": 3020 + } + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": true, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "META-INF/maven/org.flywaydb", + "type": "directory", + "name": "org.flywaydb", + "base_name": "org.flywaydb", + "extension": "", + "size": 0, + "date": null, + "sha1": null, + "md5": null, + "sha256": null, + "mime_type": null, + "file_type": null, + "programming_language": null, + "is_binary": false, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 3, + "dirs_count": 1, + "size_count": 193920, + "scan_errors": [] + }, + { + "path": "META-INF/maven/org.flywaydb/flyway-maven-plugin", + "type": "directory", + "name": "flyway-maven-plugin", + "base_name": "flyway-maven-plugin", + "extension": "", + "size": 0, + "date": null, + "sha1": null, + "md5": null, + "sha256": null, + "mime_type": null, + "file_type": null, + "programming_language": null, + "is_binary": false, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 3, + "dirs_count": 0, + "size_count": 193920, + "scan_errors": [] + }, + { + "path": "META-INF/maven/org.flywaydb/flyway-maven-plugin/plugin-help.xml", + "type": "file", + "name": "plugin-help.xml", + "base_name": "plugin-help", + "extension": ".xml", + "size": 189337, + "date": "2018-01-16", + "sha1": "cec2e4a47287ed732ca4d5e45bb09f2ac8498fd4", + "md5": "53a8c99944651d4b4ceb9b30edd3628a", + "sha256": "e877805314232ae2248feb9a055c1933362ceb3ff6cf3c0178865e3fa97c54c2", + "mime_type": "text/xml", + "file_type": "XML 1.0 document, ASCII text, with very long lines, with CRLF line terminators", + "programming_language": null, + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": true, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "META-INF/maven/org.flywaydb/flyway-maven-plugin/pom.properties", + "type": "file", + "name": "pom.properties", + "base_name": "pom", + "extension": ".properties", + "size": 121, + "date": "2018-01-16", + "sha1": "4a1543c702fec3326ab57e5f977f3879fc465b88", + "md5": "3a88c83d1467da863f050c02328058c2", + "sha256": "58b5ad3c4f05242add1cffef5599f8822c5bd7a5fc6b4832c458157c6e9810cf", + "mime_type": "text/plain", + "file_type": "ASCII text, with CRLF line terminators", + "programming_language": null, + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": true, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "META-INF/maven/org.flywaydb/flyway-maven-plugin/pom.xml", + "type": "file", + "name": "pom.xml", + "base_name": "pom", + "extension": ".xml", + "size": 4462, + "date": "2018-01-16", + "sha1": "1517b47c76963ce133d9eff50f992da3b182c3ec", + "md5": "9f941445bc7e47c02b5482f51f4d68a9", + "sha256": "94873b1e54a6d6c4a671133397ac5e13745c20f2760619159785d36346f158b2", + "mime_type": "text/plain", + "file_type": "exported SGML document, ASCII text", + "programming_language": null, + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 5, + "end_line": 15, + "matched_rule": { + "identifier": "apache-2.0_7.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": true, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 85, + "matched_length": 85, + "match_coverage": 100, + "rule_relevance": 100 + }, + "matched_text": "Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License." + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 22.91, + "copyrights": [ + { + "value": "Copyright 2010-2018 Boxfuse GmbH", + "start_line": 3, + "end_line": 3 + } + ], + "holders": [ + { + "value": "Boxfuse GmbH", + "start_line": 3, + "end_line": 3 + } + ], + "authors": [], + "packages": [ + { + "type": "maven", + "namespace": "org.flywaydb", + "name": "flyway-maven-plugin", + "version": "5.0.6", + "qualifiers": {}, + "subpath": null, + "primary_language": "Java", + "description": "flyway-maven-plugin", + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:maven/org.apache.maven/maven-plugin-api", + "requirement": null, + "scope": "compile", + "is_runtime": false, + "is_optional": true, + "is_resolved": null + }, + { + "purl": "pkg:maven/org.apache.maven/maven-artifact", + "requirement": null, + "scope": "compile", + "is_runtime": false, + "is_optional": true, + "is_resolved": null + }, + { + "purl": "pkg:maven/org.apache.maven/maven-model", + "requirement": null, + "scope": "compile", + "is_runtime": false, + "is_optional": true, + "is_resolved": null + }, + { + "purl": "pkg:maven/org.apache.maven/maven-core", + "requirement": null, + "scope": "compile", + "is_runtime": false, + "is_optional": true, + "is_resolved": null + }, + { + "purl": "pkg:maven/org.sonatype.plexus/plexus-sec-dispatcher@1.4", + "requirement": "1.4", + "scope": "compile", + "is_runtime": false, + "is_optional": true, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.5.15", + "requirement": "1.5.15", + "scope": "compile", + "is_runtime": false, + "is_optional": true, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.flywaydb/flyway-core@5.0.6", + "requirement": "5.0.6", + "scope": "compile", + "is_runtime": false, + "is_optional": true, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.plugin-tools/maven-plugin-annotations@3.5", + "requirement": "3.5", + "scope": "provided", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [ + "pkg:maven/org.flywaydb/flyway-maven-plugin@5.0.6?classifier=sources" + ], + "extra_data": {}, + "purl": "pkg:maven/org.flywaydb/flyway-maven-plugin@5.0.6", + "repository_homepage_url": "https://repo1.maven.org/maven2/org/flywaydb/flyway-maven-plugin/5.0.6/", + "repository_download_url": "https://repo1.maven.org/maven2/org/flywaydb/flyway-maven-plugin/5.0.6/flyway-maven-plugin-5.0.6.jar", + "api_data_url": "https://repo1.maven.org/maven2/org/flywaydb/flyway-maven-plugin/5.0.6/flyway-maven-plugin-5.0.6.pom", + "files": [ + { + "path": "META-INF/maven/org.flywaydb/flyway-maven-plugin/pom.xml", + "type": "file" + } + ] + } + ], + "emails": [], + "urls": [ + { + "url": "http://www.apache.org/licenses/LICENSE-2.0", + "start_line": 9, + "end_line": 9 + }, + { + "url": "http://maven.apache.org/xsd/maven-4.0.0.xsd", + "start_line": 18, + "end_line": 18 + } + ], + "is_legal": false, + "is_manifest": true, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org", + "type": "directory", + "name": "org", + "base_name": "org", + "extension": "", + "size": 0, + "date": null, + "sha1": null, + "md5": null, + "sha256": null, + "mime_type": null, + "file_type": null, + "programming_language": null, + "is_binary": false, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": true, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 10, + "dirs_count": 2, + "size_count": 26084, + "scan_errors": [] + }, + { + "path": "org/flywaydb", + "type": "directory", + "name": "flywaydb", + "base_name": "flywaydb", + "extension": "", + "size": 0, + "date": null, + "sha1": null, + "md5": null, + "sha256": null, + "mime_type": null, + "file_type": null, + "programming_language": null, + "is_binary": false, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 10, + "dirs_count": 1, + "size_count": 26084, + "scan_errors": [] + }, + { + "path": "org/flywaydb/maven", + "type": "directory", + "name": "maven", + "base_name": "maven", + "extension": "", + "size": 0, + "date": null, + "sha1": null, + "md5": null, + "sha256": null, + "mime_type": null, + "file_type": null, + "programming_language": null, + "is_binary": false, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 10, + "dirs_count": 0, + "size_count": 26084, + "scan_errors": [] + }, + { + "path": "org/flywaydb/maven/AbstractFlywayMojo.class", + "type": "file", + "name": "AbstractFlywayMojo.class", + "base_name": "AbstractFlywayMojo", + "extension": ".class", + "size": 14975, + "date": "2018-01-16", + "sha1": "432fa9a32599feb1bbd79d4e13a04288b5636ab9", + "md5": "ad3b70b1b1ff24368f6a99d6f961b7db", + "sha256": "bee3b48287e02bd9e5c084e1e99ed6bbcc917a3107cbd67f8ef537237c10e41f", + "mime_type": "application/x-java-applet", + "file_type": "compiled Java class data, version 52.0 (Java 1.8)", + "programming_language": null, + "is_binary": true, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/flywaydb/maven/BaselineMojo.class", + "type": "file", + "name": "BaselineMojo.class", + "base_name": "BaselineMojo", + "extension": ".class", + "size": 902, + "date": "2018-01-16", + "sha1": "70a37ad1d12a1e32f37cd2f92f553e7cfe64c0ef", + "md5": "99beb61057f431dda74998243a1793b1", + "sha256": "3e35e8b2f74aa8d747a7a3d1d00f7989cacbb41e1492f7192359feafaf2d55f8", + "mime_type": "application/x-java-applet", + "file_type": "compiled Java class data, version 52.0 (Java 1.8)", + "programming_language": null, + "is_binary": true, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/flywaydb/maven/CleanMojo.class", + "type": "file", + "name": "CleanMojo.class", + "base_name": "CleanMojo", + "extension": ".class", + "size": 875, + "date": "2018-01-16", + "sha1": "c8a9c63a2cea1218b2f42e5bcab2e15bd427cf90", + "md5": "ecb2b2a8dc9a0c3017ceaec075775ca6", + "sha256": "2590c35bd89f9c8507d354708c81f883857e6ac50279818767c58c2da6225518", + "mime_type": "application/x-java-applet", + "file_type": "compiled Java class data, version 52.0 (Java 1.8)", + "programming_language": null, + "is_binary": true, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/flywaydb/maven/InfoMojo.class", + "type": "file", + "name": "InfoMojo.class", + "base_name": "InfoMojo", + "extension": ".class", + "size": 2065, + "date": "2018-01-16", + "sha1": "413ec5c8c4ad0b6c21fda34209b87c1cb270e6f5", + "md5": "738708f965414773749591182043cb84", + "sha256": "eaba7c97c45e4d63e294aa93af73319674ca50c4413fd7bbc2144ad0dd411f48", + "mime_type": "application/x-java-applet", + "file_type": "compiled Java class data, version 52.0 (Java 1.8)", + "programming_language": null, + "is_binary": true, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/flywaydb/maven/MavenLog.class", + "type": "file", + "name": "MavenLog.class", + "base_name": "MavenLog", + "extension": ".class", + "size": 1207, + "date": "2018-01-16", + "sha1": "2f26fd94295eec04bb07d6c0c8c9b402b10f987b", + "md5": "50d690921ffb946bac57b34236b37bc7", + "sha256": "bd5cb7a9f1acde6350c87553bc6a57dd7fb1b51041510cdc36fce91b07d06c8b", + "mime_type": "application/x-java-applet", + "file_type": "compiled Java class data, version 52.0 (Java 1.8)", + "programming_language": null, + "is_binary": true, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/flywaydb/maven/MavenLogCreator.class", + "type": "file", + "name": "MavenLogCreator.class", + "base_name": "MavenLogCreator", + "extension": ".class", + "size": 1005, + "date": "2018-01-16", + "sha1": "43693f60bf91624917472e9a9e566a897c5e607f", + "md5": "ef3f793e9227dffe03228a806a45eac8", + "sha256": "3be612a6d68be345306dd52ee0276cdf897007725292a5e23e794b54accef6f8", + "mime_type": "application/x-java-applet", + "file_type": "compiled Java class data, version 52.0 (Java 1.8)", + "programming_language": null, + "is_binary": true, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/flywaydb/maven/MigrateMojo.class", + "type": "file", + "name": "MigrateMojo.class", + "base_name": "MigrateMojo", + "extension": ".class", + "size": 1710, + "date": "2018-01-16", + "sha1": "d0887c74f9179f153c8128e554847aab61d3d2ad", + "md5": "0f03fbd2a956bd554757bca88120d2c0", + "sha256": "bc7ed4fa4b11b0d05fc3eca60091ba699145f0dd8c48db28ed34cf6a399e009e", + "mime_type": "application/x-java-applet", + "file_type": "compiled Java class data, version 52.0 (Java 1.8)", + "programming_language": null, + "is_binary": true, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/flywaydb/maven/RepairMojo.class", + "type": "file", + "name": "RepairMojo.class", + "base_name": "RepairMojo", + "extension": ".class", + "size": 894, + "date": "2018-01-16", + "sha1": "fe2ae1973625208bd45a09de94e20061924fd947", + "md5": "169de6972eb3c94468dabeb5f37cf582", + "sha256": "9bc5126c9385481f1aebecee8b22396b5bc75de7b9a6a9a65b96733e4d9e6258", + "mime_type": "application/x-java-applet", + "file_type": "compiled Java class data, version 52.0 (Java 1.8)", + "programming_language": null, + "is_binary": true, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/flywaydb/maven/UndoMojo.class", + "type": "file", + "name": "UndoMojo.class", + "base_name": "UndoMojo", + "extension": ".class", + "size": 1549, + "date": "2018-01-16", + "sha1": "3ad1dc637e89a9cc3f916cb3b4f547ab51046740", + "md5": "919ab55b96176980a9d8e3fa0c5f8c18", + "sha256": "dd1b195f3792ce5c86c603e316b0a97ae69148f11c44a7129779a199d90e5996", + "mime_type": "application/x-java-applet", + "file_type": "compiled Java class data, version 52.0 (Java 1.8)", + "programming_language": null, + "is_binary": true, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "org/flywaydb/maven/ValidateMojo.class", + "type": "file", + "name": "ValidateMojo.class", + "base_name": "ValidateMojo", + "extension": ".class", + "size": 902, + "date": "2018-01-16", + "sha1": "57e56a93b57ec5e07ba05b041b763aa03428e4ca", + "md5": "67b61ad8d3bbdceb75d7b65ec9e3c1b0", + "sha256": "c611cc9d38af2c198fe7e7689f63448efa616a66c601fb4e7c2a958a33091f14", + "mime_type": "application/x-java-applet", + "file_type": "compiled Java class data, version 52.0 (Java 1.8)", + "programming_language": null, + "is_binary": true, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "packages": [], + "emails": [], + "urls": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "is_generated": false, + "is_license_text": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + } + ] + } +} \ No newline at end of file diff --git a/test/lib/util.js b/test/lib/util.js index 81df7b63e..011b4c598 100644 --- a/test/lib/util.js +++ b/test/lib/util.js @@ -5,6 +5,7 @@ const expect = chai.expect const sinon = require('sinon') const utils = require('../../lib/utils') const { DateTime } = require('luxon') +const EntityCoordinates = require('../../lib/entityCoordinates') describe('Utils latest version', () => { it('should get the latest version', () => { @@ -301,8 +302,9 @@ describe('Utils isLicenseFile', () => { 'package/COPYING.md', 'package/COPYING.HTML' ] + const coordinate = EntityCoordinates.fromString('npm/npm/-/name/version') for (const input of inputs) { - expect(utils.isLicenseFile(input, { type: 'npm' }), `input: ${input}`).to.be.true + expect(utils.isLicenseFile(input, coordinate), `input: ${input}`).to.be.true } }) @@ -319,8 +321,28 @@ describe('Utils isLicenseFile', () => { 'meta-inf/COPYING.md', 'meta-inf/COPYING.HTML' ] + const coordinate = EntityCoordinates.fromString('maven/mavencentral/group/artifact/version') for (const input of inputs) { - expect(utils.isLicenseFile(input, { type: 'maven' }), `input: ${input}`).to.be.true + expect(utils.isLicenseFile(input, coordinate), `input: ${input}`).to.be.true + } + }) + + it('should detect package level license files for sourcearchive', () => { + const inputs = [ + 'meta-inf/LICENSE', + 'meta-inf/license', + 'meta-inf/License.txt', + 'meta-inf/LICENSE.md', + 'meta-inf/LICENSE.HTML', + 'meta-inf/COPYING', + 'meta-inf/copying', + 'meta-inf/Copying.txt', + 'meta-inf/COPYING.md', + 'meta-inf/COPYING.HTML' + ] + const coordinate = EntityCoordinates.fromString('sourcearchive/mavencentral/group/artifact/version') + for (const input of inputs) { + expect(utils.isLicenseFile(input, coordinate), `input: ${input}`).to.be.true } }) @@ -337,8 +359,9 @@ describe('Utils isLicenseFile', () => { 'redis-3.1/COPYING.md', 'redis-3.1/COPYING.HTML' ] + const coordinate = EntityCoordinates.fromString('pypi/pypi/-/redis/3.1') for (const input of inputs) { - expect(utils.isLicenseFile(input, { type: 'pypi', name: 'redis', revision: '3.1' }), `input: ${input}`).to.be.true + expect(utils.isLicenseFile(input, coordinate), `input: ${input}`).to.be.true } }) @@ -355,8 +378,9 @@ describe('Utils isLicenseFile', () => { 'package/COPYING.md', 'package/COPYING.HTML', ] + const coordinate = EntityCoordinates.fromString('nuget/nuget/-/redis/3.1') for (const input of inputs) { - expect(utils.isLicenseFile(input, { type: 'nuget' }), `input: ${input}`).to.be.false + expect(utils.isLicenseFile(input, coordinate), `input: ${input}`).to.be.false } }) @@ -373,8 +397,9 @@ describe('Utils isLicenseFile', () => { '.package/COPYING.md', 'package2/COPYING.HTML' ] + const coordinate = EntityCoordinates.fromString('npm/npm/-/name/version') for (const input of inputs) { - expect(utils.isLicenseFile(input, { type: 'npm' }), `input: ${input}`).to.be.false + expect(utils.isLicenseFile(input, coordinate), `input: ${input}`).to.be.false } }) @@ -391,8 +416,9 @@ describe('Utils isLicenseFile', () => { '.package/COPYING.md', 'package2/COPYING.HTML' ] + const coordinate = EntityCoordinates.fromString('maven/mavencentral/group/artifact/version') for (const input of inputs) { - expect(utils.isLicenseFile(input, { type: 'maven' }), `input: ${input}`).to.be.false + expect(utils.isLicenseFile(input, coordinate), `input: ${input}`).to.be.false } }) @@ -409,9 +435,9 @@ describe('Utils isLicenseFile', () => { 'other-3.1/COPYING', 'package/COPYING' ] + const coordinate = EntityCoordinates.fromString('pypi/pypi/-/redis/3.1') for (const input of inputs) { - expect(utils.isLicenseFile(input, { type: 'pypi', name: 'redis', revision: '3.1' }), `input: ${input}`).to.be - .false + expect(utils.isLicenseFile(input, coordinate), `input: ${input}`).to.be.false } }) diff --git a/test/providers/summary/scancode.js b/test/providers/summary/scancode.js index 359d2b0e3..74f2b4af2 100644 --- a/test/providers/summary/scancode.js +++ b/test/providers/summary/scancode.js @@ -74,6 +74,13 @@ describe('ScancodeSummarizer basic compatability', () => { ) }) + it('should detect license from maven license file in version 30.1.0 of ScanCode', () => { + const coordinates = { type: 'maven', provider: 'mavencentral' } + const harvestData = getHarvestData('30.1.0', 'maven-flywaydb-file-license') + const result = summarizer.summarize(coordinates, harvestData) + assert.equal(result.licensed.declared, 'Apache-2.0') + }) + it('throws an error on an invalid scancode version', () => { const version = '0.0.0' const coordinates = { type: 'npm', provider: 'npmjs' } diff --git a/test/summary/clearlydefinedTests.js b/test/summary/clearlydefinedTests.js index 1bf1a50fb..31c99f81e 100644 --- a/test/summary/clearlydefinedTests.js +++ b/test/summary/clearlydefinedTests.js @@ -87,6 +87,49 @@ describe('ClearlyDescribedSummarizer add files', () => { }) }) +describe('ClearlyDescribedSummarizer addCondaData', () => { + const condaTestCoordinates = EntityCoordinates.fromString('conda/conda-forge/-/test/1.0') + it('declares license from registryData', () => { + let result = {} + summarizer.addCondaData(result, { declaredLicenses: 'MIT' }, condaTestCoordinates) + assert.strictEqual(get(result, 'licensed.declared'), 'MIT') + }) + + it('declares dual license from registryData with SPDX expression', () => { + let result = {} + let data = setup([{ path: 'LICENSE-MIT', license: 'MIT' }, { path: 'LICENSE-APACHE', license: 'Apache-2.0' }]) + data.declaredLicenses = 'MIT OR Apache-2.0' + summarizer.addCondaData(result, data, condaTestCoordinates) + assert.strictEqual(get(result, 'licensed.declared'), 'MIT OR Apache-2.0') + }) + + it('normalizes to spdx only', () => { + let result = {} + summarizer.addCondaData(result, { declaredLicenses: 'Garbage' }, condaTestCoordinates) + assert.strictEqual(get(result, 'licensed.declared'), 'NOASSERTION') + }) + + it('describes projectWebsite from registryData', () => { + let result = {} + summarizer.addCondaData(result, { + registryData: { + channelData: { home: 'https://github.com/owner/repo' } + } + }, condaTestCoordinates) + assert.strictEqual(result.described.projectWebsite, 'https://github.com/owner/repo') + }) + + it('describes releaseDate from registryData', () => { + let result = {} + summarizer.addCondaData( + result, + { releaseDate: 'Wed, 14 Jun 2017 07:00:00 GMT' }, + condaTestCoordinates + ) + assert.strictEqual(result.described.releaseDate, '2017-06-14') + }) +}) + describe('ClearlyDescribedSummarizer addCrateData', () => { const crateTestCoordinates = EntityCoordinates.fromString('crate/cratesio/-/test/1.0') it('declares license from registryData', () => { From 15214613046df38e18465ff6c284f64f0b04a8ae Mon Sep 17 00:00:00 2001 From: Basit Ayantunde Date: Mon, 8 Jan 2024 14:09:23 +0000 Subject: [PATCH 02/55] updated to new conda coordinates --- routes/originConda.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/routes/originConda.js b/routes/originConda.js index dfa0e7c90..c05517b5e 100644 --- a/routes/originConda.js +++ b/routes/originConda.js @@ -29,7 +29,7 @@ router.get( Object.entries(repoData['packages']) .forEach(([, packageData]) => { if (packageData.name == name) { - revisions.push(`${packageData.version}_${subdir}`) + revisions.push(`${subdir}--${packageData.version}-${packageData.build}`) } }) } @@ -37,7 +37,7 @@ router.get( Object.entries(repoData['packages.conda']) .forEach(([, packageData]) => { if (packageData.name == name) { - revisions.push(`${packageData.version}_${subdir}`) + revisions.push(`${subdir}--${packageData.version}-${packageData.build}`) } }) } From c497617515c621347852d186bdfb88a843557b97 Mon Sep 17 00:00:00 2001 From: Basit Ayantunde Date: Fri, 12 Jan 2024 15:40:52 +0000 Subject: [PATCH 03/55] integrate changes from crawler --- business/statsService.js | 2 +- lib/licenseMatcher.js | 6 +++--- providers/summary/clearlydefined.js | 2 +- routes/originConda.js | 8 ++++---- schemas/curation-1.0.json | 2 +- schemas/curations-1.0.json | 2 +- schemas/definition-1.0.json | 2 +- 7 files changed, 12 insertions(+), 12 deletions(-) diff --git a/business/statsService.js b/business/statsService.js index 507fc16c9..0276d1dc8 100644 --- a/business/statsService.js +++ b/business/statsService.js @@ -36,7 +36,7 @@ class StatsService { return { total: () => this._getType('total'), conda: () => this._getType('conda'), - condasource: () => this._getType('condasource'), + condasrc: () => this._getType('condasrc'), crate: () => this._getType('crate'), gem: () => this._getType('gem'), git: () => this._getType('git'), diff --git a/lib/licenseMatcher.js b/lib/licenseMatcher.js index e43f542d3..582576852 100644 --- a/lib/licenseMatcher.js +++ b/lib/licenseMatcher.js @@ -112,9 +112,9 @@ class HarvestLicenseMatchPolicy { case 'maven': return new BaseHarvestLicenseMatchStrategy('maven', ['manifest.summary.licenses']) case 'conda': - return new BaseHarvestLicenseMatchStrategy('conda', ['registryData.license']) - case 'condasource': - return new BaseHarvestLicenseMatchStrategy('condasource', ['registryData.license']) + return new BaseHarvestLicenseMatchStrategy('conda', ['declaredLicenses']) + case 'condasrc': + return new BaseHarvestLicenseMatchStrategy('condasrc', ['declaredLicenses']) case 'crate': return new BaseHarvestLicenseMatchStrategy('crate', ['registryData.license']) case 'pod': diff --git a/providers/summary/clearlydefined.js b/providers/summary/clearlydefined.js index cafcb01ea..f42acaa6f 100644 --- a/providers/summary/clearlydefined.js +++ b/providers/summary/clearlydefined.js @@ -53,7 +53,7 @@ class ClearlyDescribedSummarizer { case 'conda': this.addCondaData(result, data, coordinates) break - case 'condasource': + case 'condasrc': this.addCondaSrcData(result, data, coordinates) break case 'crate': diff --git a/routes/originConda.js b/routes/originConda.js index c05517b5e..51a4bdd0d 100644 --- a/routes/originConda.js +++ b/routes/originConda.js @@ -12,9 +12,9 @@ const condaChannels = { } router.get( - '/:name/:channel/revisions', + '/:channel/:name/revisions', asyncMiddleware(async (request, response) => { - const { name, channel } = request.params + const { channel, name } = request.params if (!condaChannels[channel]) { return response.status(404).send([]) } @@ -29,7 +29,7 @@ router.get( Object.entries(repoData['packages']) .forEach(([, packageData]) => { if (packageData.name == name) { - revisions.push(`${subdir}--${packageData.version}-${packageData.build}`) + revisions.push(`${subdir}:${packageData.version}-${packageData.build}`) } }) } @@ -37,7 +37,7 @@ router.get( Object.entries(repoData['packages.conda']) .forEach(([, packageData]) => { if (packageData.name == name) { - revisions.push(`${subdir}--${packageData.version}-${packageData.build}`) + revisions.push(`${subdir}:${packageData.version}-${packageData.build}`) } }) } diff --git a/schemas/curation-1.0.json b/schemas/curation-1.0.json index 4de658485..eeda81552 100644 --- a/schemas/curation-1.0.json +++ b/schemas/curation-1.0.json @@ -25,7 +25,7 @@ "enum": [ "npm", "conda", - "condasource", + "condasrc", "crate", "git", "maven", diff --git a/schemas/curations-1.0.json b/schemas/curations-1.0.json index df0788cd3..fec1f048c 100644 --- a/schemas/curations-1.0.json +++ b/schemas/curations-1.0.json @@ -27,7 +27,7 @@ "enum": [ "npm", "conda", - "condasource", + "condasrc", "crate", "git", "go", diff --git a/schemas/definition-1.0.json b/schemas/definition-1.0.json index e6b7b0814..45e8258d7 100644 --- a/schemas/definition-1.0.json +++ b/schemas/definition-1.0.json @@ -33,7 +33,7 @@ "enum": [ "npm", "conda", - "condasource", + "condasrc", "crate", "git", "maven", From dd87cfd15ec208550f18347f6426e3648ba8222e Mon Sep 17 00:00:00 2001 From: Basit Ayantunde Date: Wed, 31 Jan 2024 11:27:09 +0000 Subject: [PATCH 04/55] updated service --- providers/summary/clearlydefined.js | 2 +- routes/originConda.js | 27 +++++++++++++++++++-------- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/providers/summary/clearlydefined.js b/providers/summary/clearlydefined.js index f42acaa6f..7f2f47606 100644 --- a/providers/summary/clearlydefined.js +++ b/providers/summary/clearlydefined.js @@ -205,7 +205,7 @@ class ClearlyDescribedSummarizer { addCondaData(result, data, coordinates) { setIfValue(result, 'described.releaseDate', extractDate(get(data, 'releaseDate'))) - setIfValue(result, 'described.urls.download', get(data, 'downloadUrl')) + setIfValue(result, 'described.urls.download', get(data, 'registryData.downloadUrl')) setIfValue(result, 'described.urls.registry', new URL(`${condaChannels[coordinates.provider]}`).href) setIfValue(result, 'described.projectWebsite', get(data, 'registryData.channelData.home')) setIfValue(result, 'licensed.declared', SPDX.normalize(data.declaredLicenses)) diff --git a/routes/originConda.js b/routes/originConda.js index 51a4bdd0d..19dd68c51 100644 --- a/routes/originConda.js +++ b/routes/originConda.js @@ -5,11 +5,24 @@ const asyncMiddleware = require('../middleware/asyncMiddleware') const router = require('express').Router() const requestPromise = require('request-promise-native') const { uniq } = require('lodash') +const { Cache } = require('memory-cache') const condaChannels = { 'anaconda-main': 'https://repo.anaconda.com/pkgs/main', 'anaconda-r': 'https://repo.anaconda.com/pkgs/r', 'conda-forge': 'https://conda.anaconda.org/conda-forge' } +const condaCache = new Cache(); + +async function fetchCondaChannelData(channel) { + const key = `${channel}-channelData` + let channelData = condaCache.get(key) + if (!channelData) { + const url = `${condaChannels[channel]}/channeldata.json` + channelData = await requestPromise({ url, method: 'GET', json: true }) + condaCache.put(key, channelData, 8 * 60 * 60 * 1000) // 8 hours + } + return channelData +} router.get( '/:channel/:name/revisions', @@ -18,8 +31,7 @@ router.get( if (!condaChannels[channel]) { return response.status(404).send([]) } - const url = `${condaChannels[channel]}/channeldata.json` - const channelData = await requestPromise({ url, method: 'GET', json: true }) + let channelData = await fetchCondaChannelData(channel) if (channelData.packages[name]) { let revisions = [] for (let subdir of channelData.packages[name].subdirs) { @@ -28,7 +40,7 @@ router.get( if (repoData['packages']) { Object.entries(repoData['packages']) .forEach(([, packageData]) => { - if (packageData.name == name) { + if (packageData.name === name) { revisions.push(`${subdir}:${packageData.version}-${packageData.build}`) } }) @@ -36,7 +48,7 @@ router.get( if (repoData['packages.conda']) { Object.entries(repoData['packages.conda']) .forEach(([, packageData]) => { - if (packageData.name == name) { + if (packageData.name === name) { revisions.push(`${subdir}:${packageData.version}-${packageData.build}`) } }) @@ -50,14 +62,13 @@ router.get( ) router.get( - '/:name/:channel', + '/:channel/:name', asyncMiddleware(async (request, response) => { - const { name, channel } = request.params + const { channel, name } = request.params if (!condaChannels[channel]) { return response.status(404).send([]) } - const url = `${condaChannels[channel]}/channeldata.json` - const channelData = await requestPromise({ url, method: 'GET', json: true }) + let channelData = await fetchCondaChannelData(channel) let matches = Object.entries(channelData.packages).filter(([packageName,]) => packageName.includes(name)).map( ([packageName,]) => { return { id: packageName } } ) From b1a85e8d73fe5afd5eaa2e813503b17dd58542d5 Mon Sep 17 00:00:00 2001 From: Basit Ayantunde Date: Thu, 1 Feb 2024 10:44:14 +0000 Subject: [PATCH 05/55] added conda repodata caching --- routes/originConda.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/routes/originConda.js b/routes/originConda.js index 19dd68c51..4d6fdf140 100644 --- a/routes/originConda.js +++ b/routes/originConda.js @@ -24,6 +24,17 @@ async function fetchCondaChannelData(channel) { return channelData } +async function fetchCondaRepoData(channel, subdir) { + const key = `${channel}-${subdir}-repoData` + let channelData = condaCache.get(key) + if (!channelData) { + const url = `${condaChannels[channel]}/${subdir}/repodata.json` + channelData = await requestPromise({ url, method: 'GET', json: true }) + condaCache.put(key, channelData, 8 * 60 * 60 * 1000) // 8 hours + } + return channelData +} + router.get( '/:channel/:name/revisions', asyncMiddleware(async (request, response) => { @@ -35,8 +46,7 @@ router.get( if (channelData.packages[name]) { let revisions = [] for (let subdir of channelData.packages[name].subdirs) { - const repoUrl = `${condaChannels[channel]}/${subdir}/repodata.json` - const repoData = await requestPromise({ url: repoUrl, method: 'GET', json: true }) + const repoData = await fetchCondaRepoData(channel, subdir) if (repoData['packages']) { Object.entries(repoData['packages']) .forEach(([, packageData]) => { From ddb8a760acec178ae151a176b4eb71a217b5eaa7 Mon Sep 17 00:00:00 2001 From: Basit Ayantunde Date: Thu, 8 Feb 2024 15:18:57 +0000 Subject: [PATCH 06/55] update --- routes/originConda.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routes/originConda.js b/routes/originConda.js index 4d6fdf140..05664bc82 100644 --- a/routes/originConda.js +++ b/routes/originConda.js @@ -11,7 +11,7 @@ const condaChannels = { 'anaconda-r': 'https://repo.anaconda.com/pkgs/r', 'conda-forge': 'https://conda.anaconda.org/conda-forge' } -const condaCache = new Cache(); +const condaCache = new Cache() async function fetchCondaChannelData(channel) { const key = `${channel}-channelData` From f47143de6a6f7c9136fe3ff91b2e2dd12dee4a5e Mon Sep 17 00:00:00 2001 From: Basit Ayantunde Date: Fri, 9 Feb 2024 13:56:38 +0000 Subject: [PATCH 07/55] [conda] refactoring and added info to schema and docs --- docs/determining-declared-license.md | 15 +++++++++++++++ routes/originConda.js | 10 +++++----- schemas/coordinates-1.0.json | 5 +++++ schemas/swagger.yaml | 6 ++++++ 4 files changed, 31 insertions(+), 5 deletions(-) diff --git a/docs/determining-declared-license.md b/docs/determining-declared-license.md index 731d5de65..c589beb42 100644 --- a/docs/determining-declared-license.md +++ b/docs/determining-declared-license.md @@ -109,3 +109,18 @@ * source: https://cocoapods.org/ * The service then sets the declared license based on the registry information * The ClearlyDefined summarizer pulls registry information from 'https://raw.githubusercontent.com/CocoaPods/Specs/master + +### anaconda-main +* source: https://repo.anaconda.com/ +* The crawler gets registry information from https://repo.anaconda.com/pkgs/main +* The ClearlyDefined summarizer sets the declared license to the license(s) in the registry information + +### anaconda-r +* source: https://repo.anaconda.com/ +* The crawler gets registry information from https://repo.anaconda.com/pkgs/r +* The ClearlyDefined summarizer sets the declared license to the license(s) in the registry information + +### conda-forge +* source: https://conda.anaconda.org +* The crawler gets registry information from https://conda.anaconda.org/conda-forge +* The ClearlyDefined summarizer sets the declared license to the license(s) in the registry information diff --git a/routes/originConda.js b/routes/originConda.js index 4d6fdf140..f9fc034eb 100644 --- a/routes/originConda.js +++ b/routes/originConda.js @@ -26,13 +26,13 @@ async function fetchCondaChannelData(channel) { async function fetchCondaRepoData(channel, subdir) { const key = `${channel}-${subdir}-repoData` - let channelData = condaCache.get(key) - if (!channelData) { + let repoData = condaCache.get(key) + if (!repoData) { const url = `${condaChannels[channel]}/${subdir}/repodata.json` - channelData = await requestPromise({ url, method: 'GET', json: true }) - condaCache.put(key, channelData, 8 * 60 * 60 * 1000) // 8 hours + repoData = await requestPromise({ url, method: 'GET', json: true }) + condaCache.put(key, repoData, 8 * 60 * 60 * 1000) // 8 hours } - return channelData + return repoData } router.get( diff --git a/schemas/coordinates-1.0.json b/schemas/coordinates-1.0.json index 023ca4012..ffb996b85 100644 --- a/schemas/coordinates-1.0.json +++ b/schemas/coordinates-1.0.json @@ -13,6 +13,8 @@ "type": { "enum": [ "npm", + "conda", + "condasrc", "crate", "git", "maven", @@ -32,8 +34,11 @@ }, "provider": { "enum": [ + "anaconda-main", + "anaconda-r", "npmjs", "cocoapods", + "conda-forge", "cratesio", "github", "gitlab", diff --git a/schemas/swagger.yaml b/schemas/swagger.yaml index 441ac4566..4772f66c3 100644 --- a/schemas/swagger.yaml +++ b/schemas/swagger.yaml @@ -423,6 +423,7 @@ components: example: - git/github/microsoft/redie/194269b5b7010ad6f8dc4ef608c88128615031ca - npm/npmjs/-/redie/0.3.0 + - conda/conda-forge/linux-64/21cmfast/3.1.1-py36 noticeFile: type: object @@ -531,6 +532,8 @@ components: type: string enum: - composer + - conda + - condasrc - crate - deb - debsrc @@ -551,7 +554,10 @@ components: schema: type: string enum: + - anaconda-main + - anaconda-r - cocoapods + - conda-forge - cratesio - debian - github From 356fff26d4a93dcb63e16ce6192aac25d5df3824 Mon Sep 17 00:00:00 2001 From: Basit Ayantunde Date: Mon, 12 Feb 2024 14:20:01 +0000 Subject: [PATCH 08/55] [conda] fixed docs and schema --- docs/determining-declared-license.md | 14 ++------------ schemas/swagger.yaml | 2 +- 2 files changed, 3 insertions(+), 13 deletions(-) diff --git a/docs/determining-declared-license.md b/docs/determining-declared-license.md index c589beb42..ded8128c5 100644 --- a/docs/determining-declared-license.md +++ b/docs/determining-declared-license.md @@ -110,17 +110,7 @@ * The service then sets the declared license based on the registry information * The ClearlyDefined summarizer pulls registry information from 'https://raw.githubusercontent.com/CocoaPods/Specs/master -### anaconda-main -* source: https://repo.anaconda.com/ -* The crawler gets registry information from https://repo.anaconda.com/pkgs/main -* The ClearlyDefined summarizer sets the declared license to the license(s) in the registry information - -### anaconda-r -* source: https://repo.anaconda.com/ -* The crawler gets registry information from https://repo.anaconda.com/pkgs/r -* The ClearlyDefined summarizer sets the declared license to the license(s) in the registry information - -### conda-forge -* source: https://conda.anaconda.org +### conda +* source: conda-forge anaconda-main, or anaconda-r (https://conda.anaconda.org) * The crawler gets registry information from https://conda.anaconda.org/conda-forge * The ClearlyDefined summarizer sets the declared license to the license(s) in the registry information diff --git a/schemas/swagger.yaml b/schemas/swagger.yaml index 4772f66c3..a0d031c28 100644 --- a/schemas/swagger.yaml +++ b/schemas/swagger.yaml @@ -574,7 +574,7 @@ components: name: namespace in: path required: true - description: many component systems have namespaces. GitHub orgs, NPM namespace, Maven group id, ... This segment must be supplied. If your component does not have a namespace, use '-' (ASCII hyphen). + description: many component systems have namespaces. GitHub orgs, NPM namespace, Maven group id, Conda Subdir/Architecture ... This segment must be supplied. If your component does not have a namespace, use '-' (ASCII hyphen). schema: type: string name: From 153f0e5ab94ddffef0243422396cc09494eeec43 Mon Sep 17 00:00:00 2001 From: Basit Ayantunde Date: Wed, 14 Feb 2024 10:40:38 +0000 Subject: [PATCH 09/55] [conda] added optional namespaces/subdir to package revision search --- routes/originConda.js | 53 +++++++++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 25 deletions(-) diff --git a/routes/originConda.js b/routes/originConda.js index 44e6a0961..4bd5b08eb 100644 --- a/routes/originConda.js +++ b/routes/originConda.js @@ -36,38 +36,41 @@ async function fetchCondaRepoData(channel, subdir) { } router.get( - '/:channel/:name/revisions', + '/:channel/:subdir/:name/revisions', asyncMiddleware(async (request, response) => { - const { channel, name } = request.params + const { channel, subdir, name } = request.params if (!condaChannels[channel]) { return response.status(404).send([]) } let channelData = await fetchCondaChannelData(channel) - if (channelData.packages[name]) { - let revisions = [] - for (let subdir of channelData.packages[name].subdirs) { - const repoData = await fetchCondaRepoData(channel, subdir) - if (repoData['packages']) { - Object.entries(repoData['packages']) - .forEach(([, packageData]) => { - if (packageData.name === name) { - revisions.push(`${subdir}:${packageData.version}-${packageData.build}`) - } - }) - } - if (repoData['packages.conda']) { - Object.entries(repoData['packages.conda']) - .forEach(([, packageData]) => { - if (packageData.name === name) { - revisions.push(`${subdir}:${packageData.version}-${packageData.build}`) - } - }) - } + if (!channelData.packages[name]) { + return response.status(404).send(`Package ${name} not found in Conda channel ${channel}`) + } + if (subdir !== '-' && !channelData.subdirs.find(x => x == subdir)) { + return response.status(404).send(`Subdir ${subdir} is non-existent in Conda channel ${channel}`) + } + let revisions = [] + let subdirs = subdir === '-' ? channelData.packages[name].subdirs : [subdir] + for (let subdir of subdirs) { + const repoData = await fetchCondaRepoData(channel, subdir) + if (repoData['packages']) { + Object.entries(repoData['packages']) + .forEach(([, packageData]) => { + if (packageData.name === name) { + revisions.push(`${subdir}:${packageData.version}-${packageData.build}`) + } + }) + } + if (repoData['packages.conda']) { + Object.entries(repoData['packages.conda']) + .forEach(([, packageData]) => { + if (packageData.name === name) { + revisions.push(`${subdir}:${packageData.version}-${packageData.build}`) + } + }) } - return response.status(200).send(uniq(revisions)) - } else { - return response.status(404).send([]) } + return response.status(200).send(uniq(revisions)) }) ) From 88d7486d8a7cf7a72ab4bc176803dd5ba7e78848 Mon Sep 17 00:00:00 2001 From: Basit Ayantunde Date: Thu, 15 Feb 2024 09:28:55 +0000 Subject: [PATCH 10/55] [conda] fixed error message for unrecognized channel --- routes/originConda.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routes/originConda.js b/routes/originConda.js index 4bd5b08eb..99ed4f4ab 100644 --- a/routes/originConda.js +++ b/routes/originConda.js @@ -40,7 +40,7 @@ router.get( asyncMiddleware(async (request, response) => { const { channel, subdir, name } = request.params if (!condaChannels[channel]) { - return response.status(404).send([]) + return response.status(404).send(`Unrecognized Conda channel ${channel}`) } let channelData = await fetchCondaChannelData(channel) if (!channelData.packages[name]) { From 24c49e2660326489bb40f70918c2d131dfce4f65 Mon Sep 17 00:00:00 2001 From: Basit Ayantunde Date: Fri, 1 Mar 2024 23:29:44 +0000 Subject: [PATCH 11/55] Update schemas/definition-1.0.json Co-authored-by: lisahoong --- schemas/definition-1.0.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/schemas/definition-1.0.json b/schemas/definition-1.0.json index 45e8258d7..e6b7b0814 100644 --- a/schemas/definition-1.0.json +++ b/schemas/definition-1.0.json @@ -33,7 +33,7 @@ "enum": [ "npm", "conda", - "condasrc", + "condasource", "crate", "git", "maven", From 3b8b4176f52d77fe12dc7a0756e532b1170b255c Mon Sep 17 00:00:00 2001 From: Basit Ayantunde Date: Sat, 2 Mar 2024 00:11:17 +0000 Subject: [PATCH 12/55] Update definition-1.0.json --- schemas/definition-1.0.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/schemas/definition-1.0.json b/schemas/definition-1.0.json index e6b7b0814..4383b13df 100644 --- a/schemas/definition-1.0.json +++ b/schemas/definition-1.0.json @@ -33,7 +33,7 @@ "enum": [ "npm", "conda", - "condasource", + "condasrc", "crate", "git", "maven", @@ -476,4 +476,4 @@ } } } -} \ No newline at end of file +} From 7620f0881b3fa9fda9a0c5249e69ee688dd5be4c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Mar 2024 20:28:50 +0000 Subject: [PATCH 13/55] Bump docker/build-push-action from 5.1.0 to 5.2.0 Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5.1.0 to 5.2.0. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/v5.1.0...v5.2.0) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/build-and-deploy-dev.yml | 2 +- .github/workflows/build_and_deploy_prod.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-deploy-dev.yml b/.github/workflows/build-and-deploy-dev.yml index ba08dd167..75d54b563 100644 --- a/.github/workflows/build-and-deploy-dev.yml +++ b/.github/workflows/build-and-deploy-dev.yml @@ -49,7 +49,7 @@ jobs: env: DOCKER_TAGS: | ${{ env.DOCKER_IMAGE_NAME }}:${{ env.DEPLOY_DOCKER_TAG }} - uses: docker/build-push-action@v5.1.0 + uses: docker/build-push-action@v5.2.0 with: context: . push: true diff --git a/.github/workflows/build_and_deploy_prod.yml b/.github/workflows/build_and_deploy_prod.yml index 8c2e066cf..7b528f337 100644 --- a/.github/workflows/build_and_deploy_prod.yml +++ b/.github/workflows/build_and_deploy_prod.yml @@ -62,7 +62,7 @@ jobs: env: DOCKER_TAGS: | ${{ env.DOCKER_IMAGE_NAME }}:${{ steps.package.outputs.version }} - uses: docker/build-push-action@v5.1.0 + uses: docker/build-push-action@v5.2.0 with: context: . push: true From 5e28e63aa5908bfaf1803b37a494eba95710d09d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Mar 2024 20:28:54 +0000 Subject: [PATCH 14/55] Bump azure/login from 1.6.1 to 2.0.0 Bumps [azure/login](https://github.com/azure/login) from 1.6.1 to 2.0.0. - [Release notes](https://github.com/azure/login/releases) - [Commits](https://github.com/azure/login/compare/v1.6.1...v2.0.0) --- updated-dependencies: - dependency-name: azure/login dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/build-and-deploy-dev.yml | 2 +- .github/workflows/build_and_deploy_prod.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-deploy-dev.yml b/.github/workflows/build-and-deploy-dev.yml index ba08dd167..8717e564f 100644 --- a/.github/workflows/build-and-deploy-dev.yml +++ b/.github/workflows/build-and-deploy-dev.yml @@ -60,7 +60,7 @@ jobs: type=${{ env.APPLICATION_TYPE }} - name: Login for Azure cli commands - uses: azure/login@v1.6.1 + uses: azure/login@v2.0.0 with: creds: ${{ secrets.AZURE_CREDENTIALS }} diff --git a/.github/workflows/build_and_deploy_prod.yml b/.github/workflows/build_and_deploy_prod.yml index 8c2e066cf..8d4b6382f 100644 --- a/.github/workflows/build_and_deploy_prod.yml +++ b/.github/workflows/build_and_deploy_prod.yml @@ -73,7 +73,7 @@ jobs: type=${{ env.APPLICATION_TYPE }} - name: Login for Azure cli commands - uses: azure/login@v1.6.1 + uses: azure/login@v2.0.0 with: creds: ${{ secrets.AZURE_CREDENTIALS_PROD }} From 21e354bfd1dc29301c42a897cfb4508d12bd0502 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Spie=C3=9F?= Date: Thu, 14 Mar 2024 18:12:27 +0100 Subject: [PATCH 15/55] Revert "remove docker secrets from deploy action" --- .github/workflows/build-and-deploy-dev.yml | 34 ++++++++++++++-------- 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/.github/workflows/build-and-deploy-dev.yml b/.github/workflows/build-and-deploy-dev.yml index ba08dd167..c004556f4 100644 --- a/.github/workflows/build-and-deploy-dev.yml +++ b/.github/workflows/build-and-deploy-dev.yml @@ -71,20 +71,30 @@ jobs: app-settings-json: | [ { - "name": "DOCKER_CUSTOM_IMAGE_NAME", - "value": "${{ env.DOCKER_IMAGE_NAME }}:${{ env.DEPLOY_DOCKER_TAG }}", - "slotSetting": false + "name": "DOCKER_CUSTOM_IMAGE_NAME", + "value": "${{ env.DOCKER_IMAGE_NAME }}:${{ env.DEPLOY_DOCKER_TAG }}", + "slotSetting": false }, { - "name": "DOCKER_REGISTRY_SERVER_URL", - "value": "https://ghcr.io", - "slotSetting": false - }, - { - "name": "BUILD_SHA", - "value": "${{ github.sha }}", - "slotSetting": false - } + "name": "DOCKER_REGISTRY_SERVER_URL", + "value": "https://ghcr.io", + "slotSetting": false + }, + { + "name": "DOCKER_REGISTRY_SERVER_USERNAME", + "value": "${{ secrets.REGISTRY_USERNAME }}", + "slotSetting": false + }, + { + "name": "DOCKER_REGISTRY_SERVER_PASSWORD", + "value": "${{ secrets.REGISTRY_PASSWORD }}", + "slotSetting": false + }, + { + "name": "BUILD_SHA", + "value": "${{ github.sha }}", + "slotSetting": false + } ] - name: Deploy to Azure WebApp From bb48015efc602c4c6b3353431d2befd861eaf158 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Spie=C3=9F?= Date: Thu, 14 Mar 2024 18:20:32 +0100 Subject: [PATCH 16/55] Update secrets names --- .github/workflows/build-and-deploy-dev.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-deploy-dev.yml b/.github/workflows/build-and-deploy-dev.yml index c004556f4..966a470d6 100644 --- a/.github/workflows/build-and-deploy-dev.yml +++ b/.github/workflows/build-and-deploy-dev.yml @@ -82,12 +82,12 @@ jobs: }, { "name": "DOCKER_REGISTRY_SERVER_USERNAME", - "value": "${{ secrets.REGISTRY_USERNAME }}", + "value": "${{ secrets.DOCKER_REGISTRY_SERVER_USERNAME }}", "slotSetting": false }, { "name": "DOCKER_REGISTRY_SERVER_PASSWORD", - "value": "${{ secrets.REGISTRY_PASSWORD }}", + "value": "${{ secrets.DOCKER_REGISTRY_SERVER_USERNAME }}", "slotSetting": false }, { From e230e7a0e131b56af74aac0a4fc61d38e81f34a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Spie=C3=9F?= Date: Thu, 14 Mar 2024 18:21:28 +0100 Subject: [PATCH 17/55] Fix copy & paste error --- .github/workflows/build-and-deploy-dev.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-and-deploy-dev.yml b/.github/workflows/build-and-deploy-dev.yml index 966a470d6..58b05b46c 100644 --- a/.github/workflows/build-and-deploy-dev.yml +++ b/.github/workflows/build-and-deploy-dev.yml @@ -87,7 +87,7 @@ jobs: }, { "name": "DOCKER_REGISTRY_SERVER_PASSWORD", - "value": "${{ secrets.DOCKER_REGISTRY_SERVER_USERNAME }}", + "value": "${{ secrets.DOCKER_REGISTRY_SERVER_PASSWORD }}", "slotSetting": false }, { From 4d194dcc75dff9304387bce84401150fe59e715f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Spie=C3=9F?= Date: Thu, 14 Mar 2024 18:23:17 +0100 Subject: [PATCH 18/55] Remove double space --- .github/workflows/build-and-deploy-dev.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-and-deploy-dev.yml b/.github/workflows/build-and-deploy-dev.yml index 58b05b46c..d144c00ca 100644 --- a/.github/workflows/build-and-deploy-dev.yml +++ b/.github/workflows/build-and-deploy-dev.yml @@ -82,7 +82,7 @@ jobs: }, { "name": "DOCKER_REGISTRY_SERVER_USERNAME", - "value": "${{ secrets.DOCKER_REGISTRY_SERVER_USERNAME }}", + "value": "${{ secrets.DOCKER_REGISTRY_SERVER_USERNAME }}", "slotSetting": false }, { From 575b09e9c41ff9895a4fec9e23552388ba10b732 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Spie=C3=9F?= Date: Fri, 15 Mar 2024 12:15:10 +0100 Subject: [PATCH 19/55] Revert "Revert "remove docker secrets from deploy action"" --- .github/workflows/build-and-deploy-dev.yml | 34 ++++++++-------------- 1 file changed, 12 insertions(+), 22 deletions(-) diff --git a/.github/workflows/build-and-deploy-dev.yml b/.github/workflows/build-and-deploy-dev.yml index d144c00ca..ba08dd167 100644 --- a/.github/workflows/build-and-deploy-dev.yml +++ b/.github/workflows/build-and-deploy-dev.yml @@ -71,30 +71,20 @@ jobs: app-settings-json: | [ { - "name": "DOCKER_CUSTOM_IMAGE_NAME", - "value": "${{ env.DOCKER_IMAGE_NAME }}:${{ env.DEPLOY_DOCKER_TAG }}", - "slotSetting": false + "name": "DOCKER_CUSTOM_IMAGE_NAME", + "value": "${{ env.DOCKER_IMAGE_NAME }}:${{ env.DEPLOY_DOCKER_TAG }}", + "slotSetting": false }, { - "name": "DOCKER_REGISTRY_SERVER_URL", - "value": "https://ghcr.io", - "slotSetting": false - }, - { - "name": "DOCKER_REGISTRY_SERVER_USERNAME", - "value": "${{ secrets.DOCKER_REGISTRY_SERVER_USERNAME }}", - "slotSetting": false - }, - { - "name": "DOCKER_REGISTRY_SERVER_PASSWORD", - "value": "${{ secrets.DOCKER_REGISTRY_SERVER_PASSWORD }}", - "slotSetting": false - }, - { - "name": "BUILD_SHA", - "value": "${{ github.sha }}", - "slotSetting": false - } + "name": "DOCKER_REGISTRY_SERVER_URL", + "value": "https://ghcr.io", + "slotSetting": false + }, + { + "name": "BUILD_SHA", + "value": "${{ github.sha }}", + "slotSetting": false + } ] - name: Deploy to Azure WebApp From 5de41d036991ce2871e28549ff999b1ac3691b13 Mon Sep 17 00:00:00 2001 From: Basit Ayantunde Date: Tue, 19 Mar 2024 13:26:52 +0000 Subject: [PATCH 20/55] [conda] fixed XSS vulnerabilities --- routes/originConda.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/routes/originConda.js b/routes/originConda.js index 99ed4f4ab..d978a6c4c 100644 --- a/routes/originConda.js +++ b/routes/originConda.js @@ -38,7 +38,10 @@ async function fetchCondaRepoData(channel, subdir) { router.get( '/:channel/:subdir/:name/revisions', asyncMiddleware(async (request, response) => { - const { channel, subdir, name } = request.params + let { channel, subdir, name } = request.params + channel = encodeURIComponent(channel) + subdir = encodeURIComponent(subdir) + name = encodeURIComponent(channel) if (!condaChannels[channel]) { return response.status(404).send(`Unrecognized Conda channel ${channel}`) } @@ -77,7 +80,9 @@ router.get( router.get( '/:channel/:name', asyncMiddleware(async (request, response) => { - const { channel, name } = request.params + let { channel, name } = request.params + channel = encodeURIComponent(channel) + name = encodeURIComponent(name) if (!condaChannels[channel]) { return response.status(404).send([]) } From 02e7ac90dcb744db976e51c3325160bbc4058a35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Spie=C3=9F?= Date: Wed, 14 Feb 2024 11:53:04 +0000 Subject: [PATCH 21/55] Update linting and formatting setup --- .eslintrc.json | 19 - .prettierignore | 5 + .prettierrc | 4 - .prettierrc.json | 7 + .vscode/extensions.json | 3 + .vscode/settings.json | 1 + eslint.config.js | 22 ++ package-lock.json | 848 +++++++++++++++++++++------------------- package.json | 13 +- 9 files changed, 501 insertions(+), 421 deletions(-) delete mode 100644 .eslintrc.json create mode 100644 .prettierignore delete mode 100644 .prettierrc create mode 100644 .prettierrc.json create mode 100644 .vscode/extensions.json create mode 100644 eslint.config.js diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 5518eacca..000000000 --- a/.eslintrc.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "env": { - "browser": false, - "es6": true, - "node": true, - "mocha": true - }, - "extends": "eslint:recommended", - "parserOptions": { - "ecmaVersion": 2020, - "sourceType": "module" - }, - "rules": { - "indent": ["error", 2, { "SwitchCase": 1 }], - "quotes": ["error", "single"], - "semi": ["error", "never"], - "no-console": 0 - } -} diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 000000000..57d87ce42 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,5 @@ +.github/workflows/* +.vscode/launch.json +schemas/*.json +test/**/*.json +test/**/*.yaml diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index bf3b19903..000000000 --- a/.prettierrc +++ /dev/null @@ -1,4 +0,0 @@ -printWidth: 120 -singleQuote: true -semi: false -trailingComma: "none" \ No newline at end of file diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 000000000..449ecaa31 --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,7 @@ +{ + "arrowParens": "avoid", + "printWidth": 120, + "singleQuote": true, + "semi": false, + "trailingComma": "none" +} diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 000000000..d7df89c9c --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["esbenp.prettier-vscode", "dbaeumer.vscode-eslint"] +} diff --git a/.vscode/settings.json b/.vscode/settings.json index 95c693898..153370352 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,4 +1,5 @@ { + "editor.defaultFormatter": "esbenp.preter-vscode", "editor.formatOnSave": true, "editor.tabSize": 2 } diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 000000000..c22296ebf --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,22 @@ +const js = require('@eslint/js') +const globals = require('globals') +const eslintConfigPrettier = require('eslint-config-prettier') + +module.exports = [ + js.configs.recommended, + { + languageOptions: { + globals: { + ...globals.node, + ...globals.mocha + }, + parserOptions: { + sourceType: 'module' + } + }, + rules: { + 'no-console': 'off' + } + }, + eslintConfigPrettier +] diff --git a/package-lock.json b/package-lock.json index 52ed5c4ab..6f77db540 100644 --- a/package-lock.json +++ b/package-lock.json @@ -71,17 +71,28 @@ "chai": "^4.1.2", "chai-as-promised": "^7.1.1", "deep-equal-in-any-order": "^1.0.10", - "eslint": "^7.5", + "eslint": "8.56.0", + "eslint-config-prettier": "9.1.0", "mocha": "^8.2.1", "mongodb-memory-server": "^8.11.2", "node-mocks-http": "^1.6.7", "nodemon": "^2.0.3", "nyc": "^15.0.0", + "prettier": "3.2.5", "proxyquire": "^2.0.1", "sinon": "^5.0.0", "typescript": "5.0.4" } }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/@aws-crypto/ie11-detection": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz", @@ -1611,46 +1622,63 @@ "spdx-satisfies": "github:clearlydefined/spdx-satisfies.js#parse-override" } }, - "node_modules/@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dev": true, "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" + "eslint-visitor-keys": "^3.3.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "node_modules/@eslint/eslintrc/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "url": "https://opencollective.com/eslint" } }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, "node_modules/@eslint/eslintrc/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "dependencies": { "ms": "2.1.2" @@ -1665,9 +1693,9 @@ } }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", - "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -1679,6 +1707,30 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/@eslint/eslintrc/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -1709,6 +1761,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@eslint/js": { + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", + "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, "node_modules/@gitbeaker/core": { "version": "29.2.4", "resolved": "https://registry.npmjs.org/@gitbeaker/core/-/core-29.2.4.tgz", @@ -1946,23 +2007,23 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" }, "engines": { "node": ">=10.10.0" } }, "node_modules/@humanwhocodes/config-array/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "dependencies": { "ms": "2.1.2" @@ -1976,16 +2037,41 @@ } } }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/@humanwhocodes/config-array/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", + "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", "dev": true }, "node_modules/@istanbuljs/load-nyc-config": { @@ -2070,6 +2156,41 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/@octokit/rest": { "version": "14.0.9", "resolved": "http://registry.npmjs.org/@octokit/rest/-/rest-14.0.9.tgz", @@ -2312,6 +2433,12 @@ "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", "dev": true }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, "node_modules/@yarnpkg/lockfile": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", @@ -2344,9 +2471,9 @@ } }, "node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -2413,9 +2540,9 @@ } }, "node_modules/ajv": { - "version": "6.12.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", - "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -2642,15 +2769,6 @@ "node": ">=0.10.0" } }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/async": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/async/-/async-3.1.0.tgz", @@ -4165,18 +4283,6 @@ "once": "^1.4.0" } }, - "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "dependencies": { - "ansi-colors": "^4.1.1" - }, - "engines": { - "node": ">=8.6" - } - }, "node_modules/err-code": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", @@ -4222,106 +4328,98 @@ } }, "node_modules/eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", + "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.56.0", + "@humanwhocodes/config-array": "^0.11.13", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", - "debug": "^4.0.1", + "debug": "^4.3.2", "doctrine": "^3.0.0", - "enquirer": "^2.3.5", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" }, "bin": { "eslint": "bin/eslint.js" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "node_modules/eslint-config-prettier": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "bin": { + "eslint-config-prettier": "bin/cli.js" }, - "engines": { - "node": ">=8.0.0" + "peerDependencies": { + "eslint": ">=7.0.0" } }, - "node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "dependencies": { - "eslint-visitor-keys": "^1.1.0" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" }, "engines": { - "node": ">=6" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "engines": { - "node": ">=10" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint/node_modules/ansi-styles": { @@ -4339,6 +4437,12 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, "node_modules/eslint/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -4402,10 +4506,38 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/eslint/node_modules/globals": { - "version": "13.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", - "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -4417,25 +4549,79 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/eslint/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "node_modules/eslint/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "node_modules/eslint/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "dependencies": { - "lru-cache": "^6.0.0" + "yocto-queue": "^0.1.0" }, - "bin": { - "semver": "bin/semver.js" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/eslint/node_modules/strip-ansi": { @@ -4450,18 +4636,6 @@ "node": ">=8" } }, - "node_modules/eslint/node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/eslint/node_modules/type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", @@ -4475,26 +4649,20 @@ } }, "node_modules/espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, "dependencies": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" }, "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/esprima": { @@ -4510,9 +4678,9 @@ } }, "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, "dependencies": { "estraverse": "^5.1.0" @@ -4521,15 +4689,6 @@ "node": ">=0.10" } }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", @@ -4542,7 +4701,7 @@ "node": ">=4.0" } }, - "node_modules/esrecurse/node_modules/estraverse": { + "node_modules/estraverse": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", @@ -4551,15 +4710,6 @@ "node": ">=4.0" } }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -4957,7 +5107,7 @@ "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, "node_modules/fast-xml-parser": { @@ -4977,6 +5127,15 @@ "url": "https://paypal.me/naturalintelligence" } }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, "node_modules/fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", @@ -5485,6 +5644,12 @@ "node": ">=0.4.0" } }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, "node_modules/growl": { "version": "1.10.5", "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", @@ -5890,9 +6055,9 @@ } }, "node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", "dev": true, "engines": { "node": ">= 4" @@ -6111,9 +6276,9 @@ } }, "node_modules/is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "dependencies": { "is-extglob": "^2.1.1" @@ -6185,9 +6350,9 @@ "dev": true }, "node_modules/is-path-inside": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", - "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, "engines": { "node": ">=8" @@ -6686,12 +6851,6 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", - "dev": true - }, "node_modules/log-symbols": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", @@ -8138,17 +8297,17 @@ } }, "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "type-check": "^0.4.0" }, "engines": { "node": ">= 0.8.0" @@ -8528,6 +8687,21 @@ "node": ">=4" } }, + "node_modules/prettier": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, "node_modules/process-nextick-args": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", @@ -8545,15 +8719,6 @@ "node": ">=8" } }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/promise-retry": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", @@ -8656,6 +8821,26 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/quick-lru": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", @@ -8857,18 +9042,6 @@ "node": ">=0.10.0" } }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, "node_modules/registry-auth-token": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.1.1.tgz", @@ -9059,15 +9232,6 @@ "node": ">=0.10.0" } }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", @@ -9128,6 +9292,16 @@ "node": "*" } }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, "node_modules/rimraf": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", @@ -9139,6 +9313,29 @@ "rimraf": "bin.js" } }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, "node_modules/safe-buffer": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", @@ -9420,65 +9617,6 @@ "node": ">=6" } }, - "node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/slice-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/smart-buffer": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", @@ -10082,85 +10220,6 @@ "node": ">= v0.10.32" } }, - "node_modules/table": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", - "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", - "dev": true, - "dependencies": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/table/node_modules/ajv": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", - "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/table/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/table/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/table/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/table/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/table/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/tar-stream": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", @@ -10800,12 +10859,6 @@ "uuid": "bin/uuid" } }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, "node_modules/validator": { "version": "9.4.1", "resolved": "http://registry.npmjs.org/validator/-/validator-9.4.1.tgz", @@ -10994,15 +11047,6 @@ "node": ">=0.1.90" } }, - "node_modules/word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", @@ -11330,6 +11374,18 @@ "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } } } } diff --git a/package.json b/package.json index c5c78f5ea..29a064cfd 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,14 @@ "version": "1.1.0", "description": "Service side of clearlydefined.io.", "scripts": { - "test": "nyc mocha --exit \"test/**/*.js\" && eslint .", + "test": "npm run mocha && npm run lint", + "mocha": "nyc mocha --exit \"test/**/*.js\"", + "lint": "npm run prettier:check && npm run eslint", + "lint:fix": "npm run prettier:write && npm run eslint:fix", + "eslint": "eslint .", + "eslint:fix": "eslint . --fix", + "prettier:check": "prettier . --check", + "prettier:write": "prettier . --write", "dev": "nodemon ./bin/www", "start": "node ./bin/www", "postinstall": "patch-package" @@ -75,12 +82,14 @@ "chai": "^4.1.2", "chai-as-promised": "^7.1.1", "deep-equal-in-any-order": "^1.0.10", - "eslint": "^7.5", + "eslint": "8.56.0", + "eslint-config-prettier": "9.1.0", "mocha": "^8.2.1", "mongodb-memory-server": "^8.11.2", "node-mocks-http": "^1.6.7", "nodemon": "^2.0.3", "nyc": "^15.0.0", + "prettier": "3.2.5", "proxyquire": "^2.0.1", "sinon": "^5.0.0", "typescript": "5.0.4" From 45c99e860df8ae585e8ef8b1ef54a32ae5752eb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Spie=C3=9F?= Date: Wed, 14 Feb 2024 12:06:33 +0000 Subject: [PATCH 22/55] Fix all existing formatting and lint issues --- CODE_OF_CONDUCT.md | 20 +- CONTRIBUTING.md | 2 +- README.md | 4 +- app.js | 74 +-- bin/config.js | 5 +- business/definitionService.js | 11 +- business/noticeService.js | 74 +-- business/statsService.js | 2 +- business/suggestionService.js | 21 +- docs/architecture/go_components.md | 47 +- docs/calculating-definition-scores.md | 83 ++-- docs/determining-declared-license.md | 161 ++++--- docs/rampup.md | 96 ++-- lib/coordinatesMapper.js | 3 +- lib/curation.js | 10 +- lib/github.js | 2 +- lib/gitlab.js | 2 +- lib/gradleCoordinatesMapper.js | 34 +- lib/licenseMatcher.js | 19 +- lib/mockInsights.js | 6 +- lib/utils.js | 35 +- middleware/github.js | 7 +- providers/curation/github.js | 224 ++++++--- providers/curation/memoryStore.js | 4 +- providers/curation/mongoCurationStore.js | 10 +- providers/harvest/azureQueueConfig.js | 2 +- providers/harvest/process.js | 4 +- providers/queueing/azureStorageQueue.js | 10 +- providers/stores/abstractFileStore.js | 50 +- .../stores/abstractMongoDefinitionStore.js | 16 +- providers/stores/fileHarvestStore.js | 5 +- providers/stores/mongo.js | 6 +- providers/stores/mongoConfig.js | 24 +- .../stores/trimmedMongoDefinitionStore.js | 2 +- providers/summary/clearlydefined.js | 49 +- providers/summary/reuse.js | 3 +- providers/summary/scancode.js | 4 +- routes/auth.js | 2 +- routes/curations.js | 8 +- routes/definitions-1.0.0.js | 6 +- routes/definitions.js | 19 +- routes/harvest.js | 7 +- routes/index.js | 2 +- routes/originConda.js | 32 +- routes/originGitLab.js | 29 +- routes/originGo.js | 2 +- routes/originGradlePlugin.js | 2 +- routes/webhook.js | 7 +- test/app.js | 2 +- test/business/definitionServiceTest.js | 19 +- test/business/noticeServiceTest.js | 9 +- test/business/suggestionServiceTest.js | 8 +- test/lib/coordinatesMapper.js | 5 +- test/lib/curation.js | 4 +- test/lib/entityCoordinates.js | 3 +- test/lib/gradleCoordinatesMapper.js | 23 +- test/lib/licenseMatcher.js | 436 +++++++++--------- test/lib/spdx.js | 16 +- test/lib/util.js | 47 +- test/providers/caching/redis.js | 4 +- test/providers/curation/github.js | 107 +++-- test/providers/curation/githubPRs.js | 29 +- test/providers/harvest/processTest.js | 4 +- test/providers/search/memoryTest.js | 4 +- test/providers/store/abstractFileStore.js | 4 +- .../store/dispatchDefinitionStore.js | 2 +- test/providers/store/mongoDefinition.js | 74 +-- .../store/mongoDefinitionPagination.js | 129 +++--- .../store/pagedDefinitionPagination.js | 7 +- .../store/trimmedDefinitionPagination.js | 5 +- .../store/trimmedMongoDefinitionStore.js | 103 +++-- test/providers/summary/scancode.js | 32 +- test/routes/definitions-1.0.0.js | 1 - test/routes/definitions.js | 4 +- test/routes/harvest.js | 2 +- test/summary/clearlyDefined.js | 11 +- test/summary/clearlydefinedTests.js | 100 ++-- test/summary/licensee.js | 10 +- test/summary/reuse.js | 59 ++- 79 files changed, 1409 insertions(+), 1101 deletions(-) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index da960baa5..c4b57fbac 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -8,19 +8,19 @@ In the interest of fostering an open and welcoming environment, we as contributo Examples of behavior that contributes to creating a positive environment include: -* Using welcoming and inclusive language -* Being respectful of differing viewpoints and experiences -* Gracefully accepting constructive criticism -* Focusing on what is best for the community -* Showing empathy towards other community members +- Using welcoming and inclusive language +- Being respectful of differing viewpoints and experiences +- Gracefully accepting constructive criticism +- Focusing on what is best for the community +- Showing empathy towards other community members Examples of unacceptable behavior by participants include: -* The use of sexualized language or imagery and unwelcome sexual attention or advances -* Trolling, insulting/derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or electronic address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in a professional setting +- The use of sexualized language or imagery and unwelcome sexual attention or advances +- Trolling, insulting/derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information, such as a physical or electronic address, without explicit permission +- Other conduct which could reasonably be considered inappropriate in a professional setting ## Our Responsibilities diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b9887a88a..c9bea7536 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -5,7 +5,7 @@ The ClearlyDefined project welcomes your suggestions and contributions! Before o ## Contribution Licensing -Most of our code is distributed under the terms of the [MIT license](LICENSE), and when you contribute code that you wrote to our repositories, +Most of our code is distributed under the terms of the [MIT license](LICENSE), and when you contribute code that you wrote to our repositories, you agree that you are contributing under those same terms. In addition, by submitting your contributions you are indicating that you have the right to submit those contributions under those terms. diff --git a/README.md b/README.md index 3807d5ea4..ae3689ba6 100644 --- a/README.md +++ b/README.md @@ -39,8 +39,8 @@ TBD Configuration properties can be found at: -* [service/full.env.json](https://github.com/clearlydefined/service/blob/master/full.env.json) -* [service/bin/config.js](https://github.com/clearlydefined/service/blob/master/bin/config.js) +- [service/full.env.json](https://github.com/clearlydefined/service/blob/master/full.env.json) +- [service/bin/config.js](https://github.com/clearlydefined/service/blob/master/bin/config.js) # Contributing diff --git a/app.js b/app.js index e0419b053..ff838c1d5 100644 --- a/app.js +++ b/app.js @@ -126,31 +126,27 @@ function createApp(config) { app.set('trust-proxy', true) // If Redis is configured for caching, connect to it - const client = config.caching.caching_redis_service ? - redis.createClient( - 6380, - config.caching.caching_redis_service, - { + const client = config.caching.caching_redis_service + ? redis.createClient(6380, config.caching.caching_redis_service, { auth_pass: config.caching.caching_redis_api_key, tls: { servername: config.caching_redis_service } - } - ) : - undefined + }) + : undefined // rate-limit the remaining routes - const apiLimiter = config.caching.caching_redis_service ? - rateLimit({ - store: new rateLimitRedisStore({ - client: client, - prefix: 'api' - }), - windowMs: config.limits.windowSeconds * 1000, - max: config.limits.max - }) : - rateLimit({ - windowMs: config.limits.windowSeconds * 1000, - max: config.limits.max - }) + const apiLimiter = config.caching.caching_redis_service + ? rateLimit({ + store: new rateLimitRedisStore({ + client: client, + prefix: 'api' + }), + windowMs: config.limits.windowSeconds * 1000, + max: config.limits.max + }) + : rateLimit({ + windowMs: config.limits.windowSeconds * 1000, + max: config.limits.max + }) app.use(apiLimiter) @@ -160,20 +156,19 @@ function createApp(config) { // * POST /definitions // * POST /curations // * POST /notices - const batchApiLimiter = config.caching.caching_redis_service ? - rateLimit({ - store: new rateLimitRedisStore({ - client: client, - prefix: 'batch-api' - }), - windowMs: config.limits.batchWindowSeconds * 1000, - max: config.limits.batchMax - }) : - rateLimit({ - windowMs: config.limits.batchWindowSeconds * 1000, - max: config.limits.batchMax - }) - + const batchApiLimiter = config.caching.caching_redis_service + ? rateLimit({ + store: new rateLimitRedisStore({ + client: client, + prefix: 'batch-api' + }), + windowMs: config.limits.batchWindowSeconds * 1000, + max: config.limits.batchMax + }) + : rateLimit({ + windowMs: config.limits.batchWindowSeconds * 1000, + max: config.limits.batchMax + }) app.post('/definitions', batchApiLimiter) app.post('/curations', batchApiLimiter) @@ -209,7 +204,14 @@ function createApp(config) { // catch 404 and forward to error handler const requestHandler = (req, res, next) => { - logger.info('Error when handling a request', { rawUrl: req._parsedUrl._raw, baseUrl: req.baseUrl, originalUrl: req.originalUrl, params: req.params, route: req.route, url: req.url }) + logger.info('Error when handling a request', { + rawUrl: req._parsedUrl._raw, + baseUrl: req.baseUrl, + originalUrl: req.originalUrl, + params: req.params, + route: req.route, + url: req.url + }) const err = new Error('Not Found') err.status = 404 next(err) diff --git a/bin/config.js b/bin/config.js index 39cb366c7..6b8e1c732 100644 --- a/bin/config.js +++ b/bin/config.js @@ -67,7 +67,6 @@ module.exports = { service: loadFactory(config.get('CACHING_PROVIDER') || 'memory', 'caching'), caching_redis_service: config.get('CACHING_REDIS_SERVICE'), caching_redis_api_key: config.get('CACHING_REDIS_API_KEY') - }, endpoints: { service: config.get('SERVICE_ENDPOINT') || 'http://localhost:4000', @@ -77,7 +76,7 @@ module.exports = { windowSeconds: parseInt(config.get('RATE_LIMIT_WINDOW')) || 1, max: parseInt(config.get('RATE_LIMIT_MAX')) || 0, batchWindowSeconds: parseInt(config.get('BATCH_RATE_LIMIT_WINDOW')) || 1, - batchMax: parseInt(config.get('BATCH_RATE_LIMIT_MAX')) || 0, + batchMax: parseInt(config.get('BATCH_RATE_LIMIT_MAX')) || 0 }, webhook: { githubSecret: config.get('WEBHOOK_GITHUB_SECRET') || 'secret', @@ -92,5 +91,5 @@ module.exports = { crawlerId: config.get('APPINSIGHTS_CRAWLER_APPLICATIONID'), crawlerKey: config.get('APPINSIGHTS_CRAWLER_APIKEY') }, - buildsha : config.get('BUILD_SHA') + buildsha: config.get('BUILD_SHA') } diff --git a/business/definitionService.js b/business/definitionService.js index d2db8bb01..7991162f5 100644 --- a/business/definitionService.js +++ b/business/definitionService.js @@ -162,7 +162,10 @@ class DefinitionService { */ async listAll(coordinatesList) { //Take the array of coordinates, strip out the revision and only return uniques - const searchCoordinates = uniqWith(coordinatesList.map(coordinates => coordinates.asRevisionless()), isEqual) + const searchCoordinates = uniqWith( + coordinatesList.map(coordinates => coordinates.asRevisionless()), + isEqual + ) const promises = searchCoordinates.map( throat(10, async coordinates => { try { @@ -386,7 +389,7 @@ class DefinitionService { if (!definition.files) return 0 const coreFiles = definition.files.filter(DefinitionService._isInCoreFacet) if (!coreFiles.length) return 0 - const completeFiles = coreFiles.filter(file => file.license && (file.attributions && file.attributions.length)) + const completeFiles = coreFiles.filter(file => file.license && file.attributions && file.attributions.length) return Math.round((completeFiles.length / coreFiles.length) * weights.discovered) } @@ -579,9 +582,7 @@ class DefinitionService { } _getCacheKey(coordinates) { - return `def_${EntityCoordinates.fromObject(coordinates) - .toString() - .toLowerCase()}` + return `def_${EntityCoordinates.fromObject(coordinates).toString().toLowerCase()}` } } diff --git a/business/noticeService.js b/business/noticeService.js index 90e1038d3..2bcdabf8a 100644 --- a/business/noticeService.js +++ b/business/noticeService.js @@ -20,7 +20,10 @@ class NoticeService { async generate(coordinates, output, options) { options = options || {} - this.logger.info('1:notice_generate:get_definitions:start', { ts: new Date().toISOString(), cnt: coordinates.length }) + this.logger.info('1:notice_generate:get_definitions:start', { + ts: new Date().toISOString(), + cnt: coordinates.length + }) const definitions = await this.definitionService.getAll(coordinates) this.logger.info('1:notice_generate:get_definitions:end', { ts: new Date().toISOString(), cnt: coordinates.length }) this.logger.info('2:notice_generate:get_blobs:start', { ts: new Date().toISOString(), cnt: coordinates.length }) @@ -50,25 +53,27 @@ class NoticeService { const noDefinition = [] const noLicense = [] const noCopyright = [] - const packages = (await Promise.all( - Object.keys(definitions).map(async id => { - const definition = definitions[id] - if (!get(definition, 'described.tools[0]')) { - noDefinition.push(id) - return - } - if (!isDeclaredLicense(get(definition, 'licensed.declared'))) noLicense.push(id) - if (!get(definition, 'licensed.facets.core.attribution.parties[0]')) noCopyright.push(id) - return { - name: [definition.coordinates.namespace, definition.coordinates.name].filter(x => x).join('/'), - version: get(definition, 'coordinates.revision'), - license: get(definition, 'licensed.declared'), - copyrights: get(definition, 'licensed.facets.core.attribution.parties'), - website: get(definition, 'described.projectWebsite') || '', - text: await this._getPackageText(definition) - } - }) - )).filter(x => x && isDeclaredLicense(x.license)) + const packages = ( + await Promise.all( + Object.keys(definitions).map(async id => { + const definition = definitions[id] + if (!get(definition, 'described.tools[0]')) { + noDefinition.push(id) + return + } + if (!isDeclaredLicense(get(definition, 'licensed.declared'))) noLicense.push(id) + if (!get(definition, 'licensed.facets.core.attribution.parties[0]')) noCopyright.push(id) + return { + name: [definition.coordinates.namespace, definition.coordinates.name].filter(x => x).join('/'), + version: get(definition, 'coordinates.revision'), + license: get(definition, 'licensed.declared'), + copyrights: get(definition, 'licensed.facets.core.attribution.parties'), + website: get(definition, 'described.projectWebsite') || '', + text: await this._getPackageText(definition) + } + }) + ) + ).filter(x => x && isDeclaredLicense(x.license)) return { packages, noDefinition, noLicense, noCopyright } } @@ -91,21 +96,28 @@ class NoticeService { async _getPackageText(definition) { if (!definition.files) return '' - this.logger.info('2:1:notice_generate:get_single_package_files:start', { ts: new Date().toISOString(), coordinates: definition.coordinates.toString() }) + this.logger.info('2:1:notice_generate:get_single_package_files:start', { + ts: new Date().toISOString(), + coordinates: definition.coordinates.toString() + }) const texts = await Promise.all( definition.files - .filter(file => - file.token - && file.natures - && file.natures.includes('license') - && file.path - && ( - file.path.indexOf('/') === -1 - || (definition.coordinates.type === 'npm' && file.path.startsWith('package/')) - )) + .filter( + file => + file.token && + file.natures && + file.natures.includes('license') && + file.path && + (file.path.indexOf('/') === -1 || + (definition.coordinates.type === 'npm' && file.path.startsWith('package/'))) + ) .map(file => this.attachmentStore.get(file.token)) ) - this.logger.info('2:1:notice_generate:get_single_package_files:end', { ts: new Date().toISOString(), cnt: texts.length, coordinates: definition.coordinates.toString() }) + this.logger.info('2:1:notice_generate:get_single_package_files:end', { + ts: new Date().toISOString(), + cnt: texts.length, + coordinates: definition.coordinates.toString() + }) return texts.join('\n\n') } } diff --git a/business/statsService.js b/business/statsService.js index 0276d1dc8..84bcf22c6 100644 --- a/business/statsService.js +++ b/business/statsService.js @@ -47,7 +47,7 @@ class StatsService { composer: () => this._getType('composer'), pypi: () => this._getType('pypi'), deb: () => this._getType('deb'), - debsrc: () => this._getType('debsrc'), + debsrc: () => this._getType('debsrc') } } diff --git a/business/suggestionService.js b/business/suggestionService.js index 3c85a1862..759114e93 100644 --- a/business/suggestionService.js +++ b/business/suggestionService.js @@ -22,8 +22,11 @@ class SuggestionService { let hasSuggested = false const suggestion = { coordinates } if (Array.isArray(definitions.related) && definitions.related.length > 0) { - hasSuggested = this._collectSuggestionsForField(definitions, suggestion, 'licensed.declared', (definition, field) => - isDeclaredLicense(get(definition, field)) + hasSuggested = this._collectSuggestionsForField( + definitions, + suggestion, + 'licensed.declared', + (definition, field) => isDeclaredLicense(get(definition, field)) ) hasSuggested |= this._collectSuggestionsForField(definitions, suggestion, 'described.sourceLocation') } @@ -31,13 +34,15 @@ class SuggestionService { if (!isDeclaredLicense(get(definitions.original, 'licensed.declared'))) { let discoveredExpressions = get(definitions.original, 'licensed.facets.core.discovered.expressions') if (Array.isArray(discoveredExpressions)) { - let appendDeclared = discoveredExpressions - .filter(isDeclaredLicense) - .map(value => { return { value, version: get(definitions.original, 'coordinates.revision') } }) + let appendDeclared = discoveredExpressions.filter(isDeclaredLicense).map(value => { + return { value, version: get(definitions.original, 'coordinates.revision') } + }) let suggestedSoFar = get(suggestion, 'licensed.declared') || [] - hasSuggested |= setIfValue(suggestion, 'licensed.declared', appendDeclared - .concat(suggestedSoFar) - .filter((v, i, a) => a.indexOf(v) === i)) + hasSuggested |= setIfValue( + suggestion, + 'licensed.declared', + appendDeclared.concat(suggestedSoFar).filter((v, i, a) => a.indexOf(v) === i) + ) } } diff --git a/docs/architecture/go_components.md b/docs/architecture/go_components.md index 7994cb00c..0491a01bf 100644 --- a/docs/architecture/go_components.md +++ b/docs/architecture/go_components.md @@ -4,10 +4,10 @@ This drafts an architecture document for adding support for Go components to Cle ## TLDR; -* Add a new "go" type to ClearlyDefined -* Only support go modules as components (which were added in Go 1.11). [According to the Go documentation](https://blog.golang.org/using-go-modules), modules are a dependency management system that makes dependency version information explicit and easier to manage. There were other, more complicated ways of managing go dependencies prior to this, but we should only focus on modules in our first iteration. We can revisit other ways of managing go dependencies later if necessary. -* Use 'golang' as the provider for the component. -* Use URL encoding for slashes in go import paths and package names +- Add a new "go" type to ClearlyDefined +- Only support go modules as components (which were added in Go 1.11). [According to the Go documentation](https://blog.golang.org/using-go-modules), modules are a dependency management system that makes dependency version information explicit and easier to manage. There were other, more complicated ways of managing go dependencies prior to this, but we should only focus on modules in our first iteration. We can revisit other ways of managing go dependencies later if necessary. +- Use 'golang' as the provider for the component. +- Use URL encoding for slashes in go import paths and package names ## Prior work @@ -15,8 +15,8 @@ This drafts an architecture document for adding support for Go components to Cle I have also completed a few prior drafts of this architecture: -* [Go Architecture Draft 1](https://github.com/clearlydefined/service/pull/862) -* [Go Architecture Draft 2](https://github.com/clearlydefined/service/pull/864) +- [Go Architecture Draft 1](https://github.com/clearlydefined/service/pull/862) +- [Go Architecture Draft 2](https://github.com/clearlydefined/service/pull/864) ### No central Go repository @@ -71,11 +71,12 @@ curl -X GET https://clearlydefined.io/definitions/maven/mavencentral/com.apollog In this case, the coordinates are maven/mavencentral/com.apollographql.apollo3/apollo-runtime-jvm/3.0.0-dev14 Let's break this down: -* **maven** is the **type** -* **mavencentral** is the **provider** -* **com.apollographql.apollo3** is the **namespace** -* **apollo-runtime-jvm** is the **name** -* **3.0.0-dev14** is the **revision** + +- **maven** is the **type** +- **mavencentral** is the **provider** +- **com.apollographql.apollo3** is the **namespace** +- **apollo-runtime-jvm** is the **name** +- **3.0.0-dev14** is the **revision** When we run this API call: @@ -85,7 +86,7 @@ curl -X GET https://clearlydefined.io/definitions/maven/mavencentral/com.apollog It harvests the component from [here](https://repo1.maven.org/maven2/com/apollographql/apollo3/apollo-runtime-jvm/3.0.0-dev14/). -Notice something in the url - the namespace is "com/apollographql/apollo3" - there are a lot of slashes in there. +Notice something in the url - the namespace is "com/apollographql/apollo3" - there are a lot of slashes in there. The way we translate this namespace into coordinates is to replace the slashes in the namespace with periods. @@ -97,20 +98,20 @@ A Go component's coordinates will also need to consist of a type, provider, name Go's support of vanity package names makes this a little different than other components. While there are a few different approaches we could take, we should map the coordinates to what go developers know the package as. -* **type** should be go -* **provider** should be 'golang' -* **namespace** should be anything that appears before the package name in the import path (it should be "-" if nothing appears before the package name) -* **name** should be the name of the package -* **revision** should be the component revision (note - go components seem to have multiple ways of specifying revisions - sometimes version numbers, sometimes commit hashes) +- **type** should be go +- **provider** should be 'golang' +- **namespace** should be anything that appears before the package name in the import path (it should be "-" if nothing appears before the package name) +- **name** should be the name of the package +- **revision** should be the component revision (note - go components seem to have multiple ways of specifying revisions - sometimes version numbers, sometimes commit hashes) A challenge with go components is that import paths and package names can contain slashes and periods - which makes translating them into valid coordinates more difficult. In previous drafts, I considered replacing slashes with periods like with Maven components, but periods are also valid characters in Go import paths. Any character that can appear in a url can be used in an import path and package name. I considered using a different character to replace slashes in components...but this has the potential to become very confusing and inconsistent. In order to be as straightforward and consistent as possible, we need to use [URL encoding](https://www.tutorialspoint.com/html/html_url_encoding.htm) for slashes in go components (and potentially in other components as well). -### Examples +### Examples -* `collectd.org v0.5.0` maps to `go/golang/-/collectd.org/v0.5.0` -* `go.starlark.net v0.0.0-20210406145628-7a1108eaa012` maps to `go/golang/-/go.starlark.net/v0.0.0-20210406145628-7a1108eaa012` -* `cloud.google.com/go v0.56.0` maps to `go/golang/cloud.google.com/go/v0.56.0` -* `golang.org/x/net v0.0.0-20210226172049-e18ecbb05110` maps to `go/golang/golang.org%2fx/net/v0.0.0-20210226172049-e18ecbb05110` -* `github.com/Azure/azure-event-hubs-go/v3 v3.2.0` maps to `go/golang/github.com%2fAzure%2fazure-event-hubs-go/v3/v3.2.0` \ No newline at end of file +- `collectd.org v0.5.0` maps to `go/golang/-/collectd.org/v0.5.0` +- `go.starlark.net v0.0.0-20210406145628-7a1108eaa012` maps to `go/golang/-/go.starlark.net/v0.0.0-20210406145628-7a1108eaa012` +- `cloud.google.com/go v0.56.0` maps to `go/golang/cloud.google.com/go/v0.56.0` +- `golang.org/x/net v0.0.0-20210226172049-e18ecbb05110` maps to `go/golang/golang.org%2fx/net/v0.0.0-20210226172049-e18ecbb05110` +- `github.com/Azure/azure-event-hubs-go/v3 v3.2.0` maps to `go/golang/github.com%2fAzure%2fazure-event-hubs-go/v3/v3.2.0` diff --git a/docs/calculating-definition-scores.md b/docs/calculating-definition-scores.md index 3edd12ecd..1e245e0de 100644 --- a/docs/calculating-definition-scores.md +++ b/docs/calculating-definition-scores.md @@ -1,15 +1,16 @@ # How ClearlyDefined Scores are calculated If you look at a component on ClearlyDefined such as [this one](https://clearlydefined.io/definitions/maven/mavencentral/org.opendaylight.controller/sal-common-util/4.0.6), you will see two types of scores: -* Described -* Licensed + +- Described +- Licensed ## Described The Described Score is based on two factors: -* Whether the definition has a release date -* Whether the definition has a source location URL +- Whether the definition has a release date +- Whether the definition has a source location URL See below for more details @@ -17,17 +18,17 @@ See below for more details The license score is based on several factors: -* whether the definition has a declared license -* whether the definition has discovered licenses -* whether the declared and discovered licenses are consistent -* whether the declared license can be parsed as an SPDX expression -* whether all there is text available for all referenced licenses +- whether the definition has a declared license +- whether the definition has discovered licenses +- whether the declared and discovered licenses are consistent +- whether the declared license can be parsed as an SPDX expression +- whether all there is text available for all referenced licenses This document explores how these scores are calculated. ## Where it starts -Computing ClearlyDefined scores starts in +Computing ClearlyDefined scores starts in **service/business/definitionService.js** @@ -39,16 +40,18 @@ Computing ClearlyDefined scores starts in } } ``` -* this function returns a "Licensed Score" and "Declared Score" + +- this function returns a "Licensed Score" and "Declared Score" ## Calculating the Licensed Score There are several parts that go into computing the Licensed Score -* declared score -* discovered score -* consistency score -* spdx score -* texts score + +- declared score +- discovered score +- consistency score +- spdx score +- texts score ```javascript _computeLicensedScore(definition) { @@ -60,9 +63,9 @@ There are several parts that go into computing the Licensed Score const total = declared + discovered + consistency + spdx + texts return { total, declared, discovered, consistency, spdx, texts } } -```` +``` -* it then adds the scores together and returns the total along with the various scores +- it then adds the scores together and returns the total along with the various scores ### Declared Score @@ -107,12 +110,13 @@ const weights = { declared: 30, discovered: 25, consistency: 15, spdx: 15, texts return Math.round((completeFiles.length / coreFiles.length) * weights.discovered) } ``` -* checks for files in the definition -* if there are no files, returns 0 -* filters out files in the core facet -* if there are no files in the core facet, returns 0 -* filters out files that have a licenses and attributions -* divides files in the core facet / files that have licenses and attributions, then multiplies that number by the weight for the discovered score + +- checks for files in the definition +- if there are no files, returns 0 +- filters out files in the core facet +- if there are no files in the core facet, returns 0 +- filters out files that have a licenses and attributions +- divides files in the core facet / files that have licenses and attributions, then multiplies that number by the weight for the discovered score ```javascript const weights = { declared: 30, discovered: 25, consistency: 15, spdx: 15, texts: 15, date: 30, source: 70 } @@ -130,10 +134,11 @@ const weights = { declared: 30, discovered: 25, consistency: 15, spdx: 15, texts return discovered.every(expression => SPDX.satisfies(expression, declared)) ? weights.consistency : 0 } ``` -* searches for declared and discovered licenses -* if there are no declared or discovered licenses, return 0 -* otherwise, it checks whether every discovered license is compatible with the declared license(s) -* if so, it returns the weight for consistency + +- searches for declared and discovered licenses +- if there are no declared or discovered licenses, return 0 +- otherwise, it checks whether every discovered license is compatible with the declared license(s) +- if so, it returns the weight for consistency ```javascript const weights = { declared: 30, discovered: 25, consistency: 15, spdx: 15, texts: 15, date: 30, source: 70 } @@ -151,8 +156,9 @@ const weights = { declared: 30, discovered: 25, consistency: 15, spdx: 15, texts } } ``` -* checks whether the declared license can be parsed -* if so, returns weight for spdx + +- checks whether the declared license can be parsed +- if so, returns weight for spdx ```javascript const weights = { declared: 30, discovered: 25, consistency: 15, spdx: 15, texts: 15, date: 30, source: 70 } @@ -174,8 +180,8 @@ const weights = { declared: 30, discovered: 25, consistency: 15, spdx: 15, texts } ``` -* checks for definition files -* collects license texts +- checks for definition files +- collects license texts ```javascript // Get the full set of license texts captured in the definition @@ -188,7 +194,7 @@ const weights = { declared: 30, discovered: 25, consistency: 15, spdx: 15, texts } ``` -* collects referenced licenses +- collects referenced licenses ```javascript // get all the licenses that have been referenced anywhere in the definition (declared and core) @@ -202,8 +208,8 @@ const weights = { declared: 30, discovered: 25, consistency: 15, spdx: 15, texts } ``` -* checks that all referenced licenses have texts -* if they do, returns texts weight +- checks that all referenced licenses have texts +- if they do, returns texts weight ```javascript const weights = { declared: 30, discovered: 25, consistency: 15, spdx: 15, texts: 15, date: 30, source: 70 } @@ -221,12 +227,9 @@ const weights = { declared: 30, discovered: 25, consistency: 15, spdx: 15, texts } ``` -* checks whether the definition has a release date. If so, applies the date weight. -* Also checks whether the definition has a source location url. If so, applies the source weight: +- checks whether the definition has a release date. If so, applies the date weight. +- Also checks whether the definition has a source location url. If so, applies the source weight: ```javascript const weights = { declared: 30, discovered: 25, consistency: 15, spdx: 15, texts: 15, date: 30, source: 70 } ``` - - - diff --git a/docs/determining-declared-license.md b/docs/determining-declared-license.md index ded8128c5..28f7b6fbe 100644 --- a/docs/determining-declared-license.md +++ b/docs/determining-declared-license.md @@ -1,116 +1,131 @@ # How ClearlyDefined determines the declared license ## Crawler -* OSS components are harvested by the [ClearlyDefined Crawler](https://github.com/clearlydefined/crawler) -* The Crawler uses 4 tools for harvest - ClearlyDefined itself, [Scancode](https://scancode-toolkit.readthedocs.io/en/latest/getting-started/home.html), [Licensee](https://github.com/licensee/licensee), and [Reuse](https://reuse.software/) -* See below for how it handles different types of components -* The Crawler then sends the harvest data to the ClearlyDefined Service + +- OSS components are harvested by the [ClearlyDefined Crawler](https://github.com/clearlydefined/crawler) +- The Crawler uses 4 tools for harvest - ClearlyDefined itself, [Scancode](https://scancode-toolkit.readthedocs.io/en/latest/getting-started/home.html), [Licensee](https://github.com/licensee/licensee), and [Reuse](https://reuse.software/) +- See below for how it handles different types of components +- The Crawler then sends the harvest data to the ClearlyDefined Service ## Service -* The harvests are processed into definitions by the [ClearlyDefined Service](https://github.com/clearlydefined/service/tree/9e0a677a74c36c6ea276c4548b520b7c91db05ce) -* The service summarizes the data using the ClearlyDefined summarizer, Scancode summarizer, Licensee summarizer, and Reuse summarizer -* The ClearlyDefined summarizer does different things based on the component type, see below for how it handles different types of components -* The Scancode summarizer pulls any declared license information detected by Scancode (for more information, see the [code here](https://github.com/clearlydefined/service/blob/2d1e52caf5c07c3b6ef2565b5b77f1b677c82033/providers/summary/scancode.js)) -* The Licensee summarizer pulls any declared license information detected by Licensee (for more information, see the [code here](https://github.com/clearlydefined/service/blob/master/providers/summary/licensee.js)) -* The Reuse summarizer pulls any declared license information detected by Reuse (for more information, see the [code here](https://github.com/clearlydefined/service/blob/master/providers/summary/reuse.js)) -* Then the ClearlyDefined service aggregates the information from the four tools - when there is conflicting information, the order of precedence is 'clearlydefined', 'reuse', 'licensee', 'scancode', 'cdsource' + +- The harvests are processed into definitions by the [ClearlyDefined Service](https://github.com/clearlydefined/service/tree/9e0a677a74c36c6ea276c4548b520b7c91db05ce) +- The service summarizes the data using the ClearlyDefined summarizer, Scancode summarizer, Licensee summarizer, and Reuse summarizer +- The ClearlyDefined summarizer does different things based on the component type, see below for how it handles different types of components +- The Scancode summarizer pulls any declared license information detected by Scancode (for more information, see the [code here](https://github.com/clearlydefined/service/blob/2d1e52caf5c07c3b6ef2565b5b77f1b677c82033/providers/summary/scancode.js)) +- The Licensee summarizer pulls any declared license information detected by Licensee (for more information, see the [code here](https://github.com/clearlydefined/service/blob/master/providers/summary/licensee.js)) +- The Reuse summarizer pulls any declared license information detected by Reuse (for more information, see the [code here](https://github.com/clearlydefined/service/blob/master/providers/summary/reuse.js)) +- Then the ClearlyDefined service aggregates the information from the four tools - when there is conflicting information, the order of precedence is 'clearlydefined', 'reuse', 'licensee', 'scancode', 'cdsource' ## Curations -* If the declared license is changed through [the human curation process](https://github.com/clearlydefined/clearlydefined/blob/master/docs/curation-guidelines.md), the declared license in the curation will take precedence. + +- If the declared license is changed through [the human curation process](https://github.com/clearlydefined/clearlydefined/blob/master/docs/curation-guidelines.md), the declared license in the curation will take precedence. ## Harvesting and Determining Declared License (by the ClearlyDefined Summarizer) ### npm -* source: https://www.npmjs.com -* The crawler pulls registry data for the component from https://registry.npmjs.com -* In the service, the ClearlyDefined summarizer parses license(s) from the registry data and sets them as the declared license + +- source: https://www.npmjs.com +- The crawler pulls registry data for the component from https://registry.npmjs.com +- In the service, the ClearlyDefined summarizer parses license(s) from the registry data and sets them as the declared license ### gem -* source: https://rubygems.org -* The crawler pulls registry data for the component from https://rubygems.org -* The ClearlyDefined summarizer determines the declared license based on the license in the registry data + +- source: https://rubygems.org +- The crawler pulls registry data for the component from https://rubygems.org +- The ClearlyDefined summarizer determines the declared license based on the license in the registry data ### pypi -* source: https://pypi.org -* First, the crawler pulls registry information from https://pypi.org [Code](https://github.com/clearlydefined/crawler/blob/f461b2358fbde130bcc5d183de01a4212c4cd66d/providers/fetch/pypiFetch.js#L42) -* It then extracts the declared license from the registry data [Code](https://github.com/clearlydefined/crawler/blob/f461b2358fbde130bcc5d183de01a4212c4cd66d/providers/fetch/pypiFetch.js#L71) -* The service uses the declared license set by the crawler + +- source: https://pypi.org +- First, the crawler pulls registry information from https://pypi.org [Code](https://github.com/clearlydefined/crawler/blob/f461b2358fbde130bcc5d183de01a4212c4cd66d/providers/fetch/pypiFetch.js#L42) +- It then extracts the declared license from the registry data [Code](https://github.com/clearlydefined/crawler/blob/f461b2358fbde130bcc5d183de01a4212c4cd66d/providers/fetch/pypiFetch.js#L71) +- The service uses the declared license set by the crawler ### maven -* sources https://mvnrepository.com/repos/central, https://maven.google.com/ and https://plugins.gradle.org/m2/ -**maven central** +- sources https://mvnrepository.com/repos/central, https://maven.google.com/ and https://plugins.gradle.org/m2/ -* The crawler downloads the maven artifact from maven.org -* The crawler then extracts all pom files from the artifact -* And then merges the poms (including all the licenses defined in the poms) -* The ClearlyDefined summarizer parses the merged poms and sets the declared license(s) based on that data +--maven central-- -**google maven** +- The crawler downloads the maven artifact from maven.org +- The crawler then extracts all pom files from the artifact +- And then merges the poms (including all the licenses defined in the poms) +- The ClearlyDefined summarizer parses the merged poms and sets the declared license(s) based on that data -* The crawler gets pom files for the component from https://dl.google.com/android/maven2/ -* It then merges the poms (including all the licenses defined in the poms) -* The ClearlyDefined summarizer parses the merged poms and sets the declared license(s) based on that data +--google maven-- -**gradle plugin** +- The crawler gets pom files for the component from https://dl.google.com/android/maven2/ +- It then merges the poms (including all the licenses defined in the poms) +- The ClearlyDefined summarizer parses the merged poms and sets the declared license(s) based on that data -* The crawler gets pom files for the component from https://plugins.gradle.org/m2/ -* It then merges the poms (including all the licenses defined in the poms) -* The ClearlyDefined summarizer parses the merged poms and sets the declared license(s) based on that data +--gradle plugin-- + +- The crawler gets pom files for the component from https://plugins.gradle.org/m2/ +- It then merges the poms (including all the licenses defined in the poms) +- The ClearlyDefined summarizer parses the merged poms and sets the declared license(s) based on that data ### nuget -* source: https://www.nuget.org/ -* The crawler gets registry information for the component from https://api.nuget.org -* If the registry information has a licenseExpression field, the ClearlyDefined summarizer sets the declared license to that license expression -* If the registry information has a licenseUrl field, the ClearlyDefined summarizer extracts the license from that license url and sets the declared license to the extracted license -* If the ClearlyDefined summarizer cannot extract the license from the license URL, it sets the declared license to NOASSERTION -**Checking for the packageEntries field** +- source: https://www.nuget.org/ +- The crawler gets registry information for the component from https://api.nuget.org +- If the registry information has a licenseExpression field, the ClearlyDefined summarizer sets the declared license to that license expression +- If the registry information has a licenseUrl field, the ClearlyDefined summarizer extracts the license from that license url and sets the declared license to the extracted license +- If the ClearlyDefined summarizer cannot extract the license from the license URL, it sets the declared license to NOASSERTION + +--Checking for the packageEntries field-- -* The ClearlyDefined summarizer then checks whether the registry information has a packageEntries field -* If it does not, it leaves the declared license as it is -* If it does have a packageEntries field, the ClearlyDefined summarizer creates a new definition with the files field set to those packageEntries +- The ClearlyDefined summarizer then checks whether the registry information has a packageEntries field +- If it does not, it leaves the declared license as it is +- If it does have a packageEntries field, the ClearlyDefined summarizer creates a new definition with the files field set to those packageEntries -**Merging definitions** +--Merging definitions-- -* It then merges the definitions and, in the process, merges the declared licenses -* If the original definition (prior to the merge) has a declared license of 'OTHER', it sets the declared license (on the merged definition) to the license on the new definition -* Otherwise, it combines the original definition license and the new definition license with AND +- It then merges the definitions and, in the process, merges the declared licenses +- If the original definition (prior to the merge) has a declared license of 'OTHER', it sets the declared license (on the merged definition) to the license on the new definition +- Otherwise, it combines the original definition license and the new definition license with AND ### git -* sources: https://github.com and https://gitlab.com -* The crawler clones the repo for the component from either https://gitlab.com or https://github.com -* TODO - how is the declared license decided? + +- sources: https://github.com and https://gitlab.com +- The crawler clones the repo for the component from either https://gitlab.com or https://github.com +- TODO - how is the declared license decided? ### crate -* source: https://crates.io/ -* The crawler gets registry information from https://crates.io/api/v1/crates/ -* The ClearlyDefined summarizer sets the declared license to the license(s) in the registry information + +- source: https://crates.io/ +- The crawler gets registry information from https://crates.io/api/v1/crates/ +- The ClearlyDefined summarizer sets the declared license to the license(s) in the registry information ### deb -* source: http://ftp.debian.org/ -* First, the crawler downloads a package file map from http://ftp.debian.org/debian/indices/package-file.map.bz2 and caches it (if there is not one already cached) for 8 hours [Code](https://github.com/clearlydefined/crawler/blob/f461b2358fbde130bcc5d183de01a4212c4cd66d/providers/fetch/debianFetch.js#L87) -* It then pulls the registry information for the particular component from that package map file [Code](https://github.com/clearlydefined/crawler/blob/f461b2358fbde130bcc5d183de01a4212c4cd66d/providers/fetch/debianFetch.js#L114) -* It then finds the relevant copyright URL from the registry information [Code](https://github.com/clearlydefined/crawler/blob/f461b2358fbde130bcc5d183de01a4212c4cd66d/providers/fetch/debianFetch.js#L295) [Example](https://metadata.ftp-master.debian.org/changelogs/main/0/0ad-data/0ad-data_0.0.17-1_copyright) -* It then pulls information from the copyright URL [Code](https://github.com/clearlydefined/crawler/blob/f461b2358fbde130bcc5d183de01a4212c4cd66d/providers/fetch/debianFetch.js#L306) -* And parses that information [Code](https://github.com/clearlydefined/crawler/blob/f461b2358fbde130bcc5d183de01a4212c4cd66d/providers/fetch/debianFetch.js#L320) to determine the declared license(s) -* The ClearlyDefined summarizer then parses the declared licenses and, if there is more than one, joins them with 'AND' + +- source: http://ftp.debian.org/ +- First, the crawler downloads a package file map from http://ftp.debian.org/debian/indices/package-file.map.bz2 and caches it (if there is not one already cached) for 8 hours [Code](https://github.com/clearlydefined/crawler/blob/f461b2358fbde130bcc5d183de01a4212c4cd66d/providers/fetch/debianFetch.js#L87) +- It then pulls the registry information for the particular component from that package map file [Code](https://github.com/clearlydefined/crawler/blob/f461b2358fbde130bcc5d183de01a4212c4cd66d/providers/fetch/debianFetch.js#L114) +- It then finds the relevant copyright URL from the registry information [Code](https://github.com/clearlydefined/crawler/blob/f461b2358fbde130bcc5d183de01a4212c4cd66d/providers/fetch/debianFetch.js#L295) [Example](https://metadata.ftp-master.debian.org/changelogs/main/0/0ad-data/0ad-data_0.0.17-1_copyright) +- It then pulls information from the copyright URL [Code](https://github.com/clearlydefined/crawler/blob/f461b2358fbde130bcc5d183de01a4212c4cd66d/providers/fetch/debianFetch.js#L306) +- And parses that information [Code](https://github.com/clearlydefined/crawler/blob/f461b2358fbde130bcc5d183de01a4212c4cd66d/providers/fetch/debianFetch.js#L320) to determine the declared license(s) +- The ClearlyDefined summarizer then parses the declared licenses and, if there is more than one, joins them with 'AND' ### debsrc -* source: http://ftp.debian.org/ -* Appears to be the same as `deb` + +- source: http://ftp.debian.org/ +- Appears to be the same as `deb` ### composer -* source: https://packagist.org/ -* The crawler pulls registry information from https://repo.packagist.org/ -* The ClearlyDefined summarizer then sets the declared license based on the registry information + +- source: https://packagist.org/ +- The crawler pulls registry information from https://repo.packagist.org/ +- The ClearlyDefined summarizer then sets the declared license based on the registry information ### pod -* source: https://cocoapods.org/ -* The service then sets the declared license based on the registry information -* The ClearlyDefined summarizer pulls registry information from 'https://raw.githubusercontent.com/CocoaPods/Specs/master + +- source: https://cocoapods.org/ +- The service then sets the declared license based on the registry information +- The ClearlyDefined summarizer pulls registry information from 'https://raw.githubusercontent.com/CocoaPods/Specs/master ### conda -* source: conda-forge anaconda-main, or anaconda-r (https://conda.anaconda.org) -* The crawler gets registry information from https://conda.anaconda.org/conda-forge -* The ClearlyDefined summarizer sets the declared license to the license(s) in the registry information + +- source: conda-forge anaconda-main, or anaconda-r (https://conda.anaconda.org) +- The crawler gets registry information from https://conda.anaconda.org/conda-forge +- The ClearlyDefined summarizer sets the declared license to the license(s) in the registry information diff --git a/docs/rampup.md b/docs/rampup.md index 5b51a4e49..17f0ef05c 100644 --- a/docs/rampup.md +++ b/docs/rampup.md @@ -3,46 +3,51 @@ These are suggested steps / tips to get familiar with the codebase: 0. Clone repo, two branches: master, and prod. Correspond to dev and prod environment. -0. `npm install`, `npm test` to run tests -0. Take a look at the [README](/README.md) -0. take a look at the [package.json](/package.json) scripts section. - * Test for tests, dev/start to run -0. Try making a change (update a package), run tests again -0. If tests are good, open a PR - * Will run the clearlydefined.service pipeline in azdo - * https://dev.azure.com/clearlydefined/ClearlyDefined/_build - * The pipeline is defined in azure-pipelines.yaml -0. Can merge after approval and checks pass - * Upon merge, pipeline will kick off: service-master: graphical definition - * Runs npm test, build/push docker image to ACR - * Release will kick off: service-dev: deploys and restarts azure app service: clearlydefined-api-dev - * Note: need to address azdo release warning, needed arguments in release definition +1. `npm install`, `npm test` to run tests +2. Take a look at the [README](/README.md) +3. take a look at the [package.json](/package.json) scripts section. + - Test for tests, dev/start to run +4. Try making a change (update a package), run tests again +5. If tests are good, open a PR + - Will run the clearlydefined.service pipeline in azdo + - https://dev.azure.com/clearlydefined/ClearlyDefined/_build + - The pipeline is defined in azure-pipelines.yaml +6. Can merge after approval and checks pass + - Upon merge, pipeline will kick off: service-master: graphical definition + - Runs npm test, build/push docker image to ACR + - Release will kick off: service-dev: deploys and restarts azure app service: clearlydefined-api-dev + - Note: need to address azdo release warning, needed arguments in release definition ## Local dev + ### Minimal + 0. See quick start in [README](/README.md#quick-start), also [minimal.env.json](/minimal.env.json) -0. Can use [curated-data-dev](https://github.com/clearlydefined/curated-data-dev) as curation repo, file store location can be local directory - * Minimal env is not close to real service environment (no queues, blobs, etc) +1. Can use [curated-data-dev](https://github.com/clearlydefined/curated-data-dev) as curation repo, file store location can be local directory + - Minimal env is not close to real service environment (no queues, blobs, etc) ### Dev-like + Better to use a copy of the real dev environment, can change queue names to be your own, same with blob storage. -* (Haven’t used storage emulator yet because not using Windows.) + +- (Haven’t used storage emulator yet because not using Windows.) + 0. Rather than using [minimal.env.json](/minimal.env.json), use [full.env.json](/full.env.json) as your env file in your parent directory -0. Add your name to: - * "HARVEST_AZBLOB_CONTAINER_NAME": "develop-jlm-local", -0. Comment/remove: - * "APPINSIGHTS_INSTRUMENTATIONKEY" -0. Maybe remove: - * "CURATION_QUEUE_PROVIDER" - So we don’t pull any curations off queue -0. Add in the same values you would have were you using [minimal.env.json](/minimal.env.json) (you can learn more about those values [here](https://docs.clearlydefined.io/contributing-code)). These include: - * "FILE_STORE_LOCATION" - * "CURATION_GITHUB_REPO" - * "CURATION_GITHUB_TOKEN" - * "CRAWLER_GITHUB_TOKEN" - * "SCANCODE_HOME" -0. Any other environmental variable values you might need can be found in the Clearly Defined subscription in Azure Portal under App Services -> clearlydefined-api-dev -> Settings -> Configuration -0. Consider all the vars and what you need for testing what you will test. +1. Add your name to: + - "HARVEST_AZBLOB_CONTAINER_NAME": "develop-jlm-local", +2. Comment/remove: + - "APPINSIGHTS_INSTRUMENTATIONKEY" +3. Maybe remove: + - "CURATION_QUEUE_PROVIDER" + So we don’t pull any curations off queue +4. Add in the same values you would have were you using [minimal.env.json](/minimal.env.json) (you can learn more about those values [here](https://docs.clearlydefined.io/contributing-code)). These include: + - "FILE_STORE_LOCATION" + - "CURATION_GITHUB_REPO" + - "CURATION_GITHUB_TOKEN" + - "CRAWLER_GITHUB_TOKEN" + - "SCANCODE_HOME" +5. Any other environmental variable values you might need can be found in the Clearly Defined subscription in Azure Portal under App Services -> clearlydefined-api-dev -> Settings -> Configuration +6. Consider all the vars and what you need for testing what you will test. ## Dependency Security Management @@ -50,25 +55,29 @@ This project uses two tools to monitor (and fix) vulnerabilities in this project ### Dependabot -* [Dependabot](https://docs.github.com/en/free-pro-team@latest/github/managing-security-vulnerabilities/about-dependabot-security-updates) is a GitHub Security Feature. It tracks vulnerabilities in several languages including JavaScript. -* When Dependabot detects any vulnerabilities in the [GitHub Advisory Database](https://docs.github.com/en/free-pro-team@latest/github/managing-security-vulnerabilities/browsing-security-vulnerabilities-in-the-github-advisory-database), it sends a notification and may also open a pull request to fix the vulnerability. -* Only project maintainers can see Dependabot alerts +- [Dependabot](https://docs.github.com/en/free-pro-team@latest/github/managing-security-vulnerabilities/about-dependabot-security-updates) is a GitHub Security Feature. It tracks vulnerabilities in several languages including JavaScript. +- When Dependabot detects any vulnerabilities in the [GitHub Advisory Database](https://docs.github.com/en/free-pro-team@latest/github/managing-security-vulnerabilities/browsing-security-vulnerabilities-in-the-github-advisory-database), it sends a notification and may also open a pull request to fix the vulnerability. +- Only project maintainers can see Dependabot alerts ### Snyk -* [Synk Open Source](https://solutions.snyk.io/snyk-academy/open-source) is similar to Dependabot, though not GitHub specific. It also tracks vulnerabilities in dependencies. -* When Synk detects a vulnerability in the [Synk Intel Vulnerability Database](https://snyk.io/product/vulnerability-database/), it also opens a pull request with a fix for the vulnerability. -* Everyone can see pull requests opened by Snyk, but only members of the Clearly Defined organization on Snyk can see details of the vulnerability. -* If you do not have access to the Clearly Defined Snyk organization, reach out to @nellshamrell + +- [Synk Open Source](https://solutions.snyk.io/snyk-academy/open-source) is similar to Dependabot, though not GitHub specific. It also tracks vulnerabilities in dependencies. +- When Synk detects a vulnerability in the [Synk Intel Vulnerability Database](https://snyk.io/product/vulnerability-database/), it also opens a pull request with a fix for the vulnerability. +- Everyone can see pull requests opened by Snyk, but only members of the Clearly Defined organization on Snyk can see details of the vulnerability. +- If you do not have access to the Clearly Defined Snyk organization, reach out to @nellshamrell ### Why both? We are using both Dependabot and Snyk partly for experimental purposes but also because they use different vulnerability databases. One may detect a vulnerability that the other does not. At some point we may settle on one, but currently lose nothing by having both. ## Misc info + ### Invalid curations? + Providers/curation/github.js: github PR’s check service to see if it is valid ### Queues + Harvest queue: crawler puts messages on queue when it is done with any tools Curations queue: logic app puts messages on queue when it is called by github webhook @@ -78,14 +87,17 @@ Providers/curation/process.js, code for pulling from curation queue GitHub webhook is set to put message on queue for any change in PR status, this allows service to take different actions on ‘opened’ vs ‘merged’ etc. ### Database + What do we put in mongo / Cosmos DB? ( I see config for curations and definitions) -* Curations: looks like pr info, coordinates. Guess: used for curation info in relation to a coordinate (in UI) -* Definitions: mapping between attachments and definitions, finding the attachment blobs in azure storage + +- Curations: looks like pr info, coordinates. Guess: used for curation info in relation to a coordinate (in UI) +- Definitions: mapping between attachments and definitions, finding the attachment blobs in azure storage ### Definitions + business/definitionservice.js: code to compute definition, recomputed after harvest or curation Website uses apis that are not listed in swagger ### Logging -Appinsights: clearlydefined-api-prod: 346 exceptions in last 24 hours, should look into them +Appinsights: clearlydefined-api-prod: 346 exceptions in last 24 hours, should look into them diff --git a/lib/coordinatesMapper.js b/lib/coordinatesMapper.js index 3d4464d65..3fb79e3b7 100644 --- a/lib/coordinatesMapper.js +++ b/lib/coordinatesMapper.js @@ -11,7 +11,6 @@ const defaultMappers = { } class CoordinatesMapper { - constructor(mappers = defaultMappers, cache = defaultcache) { this.mappers = mappers this.cache = cache @@ -28,4 +27,4 @@ class CoordinatesMapper { } } -module.exports = (mappers, cache) => new CoordinatesMapper(mappers, cache) \ No newline at end of file +module.exports = (mappers, cache) => new CoordinatesMapper(mappers, cache) diff --git a/lib/curation.js b/lib/curation.js index 7fd83c92c..262ff9715 100644 --- a/lib/curation.js +++ b/lib/curation.js @@ -55,10 +55,12 @@ class Curation { Object.keys(revisions) .filter(revision => revisions[revision].licensed) - .forEach(revision => sourceLicenseList.push({ - source: `${revision} licensed.declared`, - license: revisions[revision].licensed.declared - })) + .forEach(revision => + sourceLicenseList.push({ + source: `${revision} licensed.declared`, + license: revisions[revision].licensed.declared + }) + ) Object.keys(revisions) .filter(revision => revisions[revision].files) diff --git a/lib/github.js b/lib/github.js index d649424e9..e4efdb8ee 100644 --- a/lib/github.js +++ b/lib/github.js @@ -4,7 +4,7 @@ const GitHubApi = require('@octokit/rest') module.exports = { - getClient: function(options) { + getClient: function (options) { const github = new GitHubApi({ headers: { 'user-agent': 'clearlydefined.io' } }) github.authenticate({ type: 'token', token: options.token }) return github diff --git a/lib/gitlab.js b/lib/gitlab.js index 08f56dbbf..399e702ec 100644 --- a/lib/gitlab.js +++ b/lib/gitlab.js @@ -8,4 +8,4 @@ module.exports = { }) return gitlab } -} \ No newline at end of file +} diff --git a/lib/gradleCoordinatesMapper.js b/lib/gradleCoordinatesMapper.js index e6f85139f..a8a8166b4 100644 --- a/lib/gradleCoordinatesMapper.js +++ b/lib/gradleCoordinatesMapper.js @@ -10,7 +10,6 @@ const EntityCoordinates = require('./entityCoordinates') const repoBaseUrl = 'https://plugins.gradle.org/m2' class GradleCoordinatesMapper { - async map(coordinates) { if (!this._shouldResolve(coordinates)) return null const resolved = await this._resolve(coordinates) @@ -22,37 +21,38 @@ class GradleCoordinatesMapper { } async _resolve(coordinates) { - const markerCoordinates = coordinates.revision ? - coordinates : - { ...coordinates, revision: await this._getLatestVersion(coordinates) } + const markerCoordinates = coordinates.revision + ? coordinates + : { ...coordinates, revision: await this._getLatestVersion(coordinates) } if (!markerCoordinates.revision) return const mappedGav = await this._getImplementation(markerCoordinates) - return mappedGav && { - namespace: get(mappedGav, 'groupId.0'), - name: get(mappedGav, 'artifactId.0'), - revision: coordinates.revision ? get(mappedGav, 'version.0') : undefined - } + return ( + mappedGav && { + namespace: get(mappedGav, 'groupId.0'), + name: get(mappedGav, 'artifactId.0'), + revision: coordinates.revision ? get(mappedGav, 'version.0') : undefined + } + ) } async _getLatestVersion({ name }) { const answer = await this.getMavenMetadata(name) - const meta = answer && await parseXml(answer) + const meta = answer && (await parseXml(answer)) return get(meta, 'metadata.versioning.0.release.0') } async _getImplementation(markerCoordinates) { - const answer = await this._request(this._buildPomUrl((markerCoordinates))) - const pluginMarker = answer && await parseXml(answer) + const answer = await this._request(this._buildPomUrl(markerCoordinates)) + const pluginMarker = answer && (await parseXml(answer)) return get(pluginMarker, 'project.dependencies.0.dependency.0') } async _request(url) { - return this._handleRequest(url) - .catch(error => { - if (error.statusCode === 404) return null - throw error - }) + return this._handleRequest(url).catch(error => { + if (error.statusCode === 404) return null + throw error + }) } _buildPomUrl(coordinates) { diff --git a/lib/licenseMatcher.js b/lib/licenseMatcher.js index 582576852..787774e2f 100644 --- a/lib/licenseMatcher.js +++ b/lib/licenseMatcher.js @@ -14,7 +14,8 @@ class LicenseMatcher { * @return { isMatching: Boolean, match: [] | undefined, mismatch: [] | undefined } */ process(source, target) { - const compareResults = this._policies.map(policy => policy.compare(source, target)) + const compareResults = this._policies + .map(policy => policy.compare(source, target)) .reduce((acc, cur) => ({ match: acc.match.concat(cur.match), mismatch: acc.mismatch.concat(cur.mismatch) })) const allInconclusive = compareResults.mismatch.length === 0 && compareResults.match.length === 0 if (compareResults.mismatch.length || allInconclusive) { @@ -53,12 +54,13 @@ class DefinitionLicenseMatchPolicy { } _addFileToMap(fileMap, files, propName) { - files && files.forEach(f => { - if (!f.path) return - const current = fileMap.get(f.path) || {} - current[propName] = f - fileMap.set(f.path, current) - }) + files && + files.forEach(f => { + if (!f.path) return + const current = fileMap.get(f.path) || {} + current[propName] = f + fileMap.set(f.path, current) + }) } _getLicenseFile(definition) { @@ -100,7 +102,6 @@ class DefinitionLicenseMatchPolicy { } class HarvestLicenseMatchPolicy { - compare(source, target) { const type = source.definition.coordinates.type const strategy = this._getStrategy(type) @@ -216,4 +217,4 @@ module.exports = { LicenseMatcher, DefinitionLicenseMatchPolicy, HarvestLicenseMatchPolicy -} \ No newline at end of file +} diff --git a/lib/mockInsights.js b/lib/mockInsights.js index d3c7ef420..68e8c06ad 100644 --- a/lib/mockInsights.js +++ b/lib/mockInsights.js @@ -13,11 +13,7 @@ class MockInsights { if (appInsights.defaultClient instanceof MockInsights) return if (!key || key === 'mock') appInsights.defaultClient = new MockInsights() else { - appInsights - .setup(key) - .setAutoCollectPerformance(false) - .setAutoCollectDependencies(true) - .start() + appInsights.setup(key).setAutoCollectPerformance(false).setAutoCollectDependencies(true).start() if (echo) appInsights.defaultClient = new MockInsights(appInsights.defaultClient) } } diff --git a/lib/utils.js b/lib/utils.js index 4c95404d0..1a6ba5c72 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -11,7 +11,6 @@ const extend = require('extend') const SPDX = require('@clearlydefined/spdx') const coordinatesMapper = require('./coordinatesMapper')() - async function toResultCoordinatesFromRequest(request) { const coordinates = await toNormalizedEntityCoordinates(request.params) return new ResultCoordinates( @@ -137,7 +136,7 @@ function extractDate(dateAndTime) { } function compareDates(dateA, dateB) { - if (!dateA || !dateB) return dateA ? 1 : (dateB ? -1 : 0) + if (!dateA || !dateB) return dateA ? 1 : dateB ? -1 : 0 return DateTime.fromISO(dateA).toJSDate() - DateTime.fromISO(dateB).toJSDate() } @@ -207,11 +206,31 @@ function _mergeFile(base, proposed, override) { if (!base) return proposed const result = _mergeExcept(base, proposed, ['license', 'attributions', 'facets', 'hashes', 'natures']) const overrideStrategy = override ? proposed => proposed : (proposed, mergeStrategy) => mergeStrategy(proposed) - setIfValue(result, 'license', overrideStrategy(proposed.license, p => SPDX.merge(p, base.license, 'AND'))) - setIfValue(result, 'attributions', overrideStrategy(proposed.attributions, p => _mergeArray(base.attributions, p))) - setIfValue(result, 'facets', overrideStrategy(proposed.facets, p => _mergeArray(base.facets, p))) - setIfValue(result, 'hashes', overrideStrategy(proposed.hashes, p => _mergeObject(base.hashes, p))) - setIfValue(result, 'natures', overrideStrategy(proposed.natures, p => _mergeArray(base.natures, p))) + setIfValue( + result, + 'license', + overrideStrategy(proposed.license, p => SPDX.merge(p, base.license, 'AND')) + ) + setIfValue( + result, + 'attributions', + overrideStrategy(proposed.attributions, p => _mergeArray(base.attributions, p)) + ) + setIfValue( + result, + 'facets', + overrideStrategy(proposed.facets, p => _mergeArray(base.facets, p)) + ) + setIfValue( + result, + 'hashes', + overrideStrategy(proposed.hashes, p => _mergeObject(base.hashes, p)) + ) + setIfValue( + result, + 'natures', + overrideStrategy(proposed.natures, p => _mergeArray(base.natures, p)) + ) return result } @@ -284,7 +303,7 @@ function buildSourceUrl(spec) { } function deCodeSlashes(namespace) { - return `${namespace.replace(/%2f/ig, '/')}` + return `${namespace.replace(/%2f/gi, '/')}` } // migrate the format of the source location to the current norm diff --git a/middleware/github.js b/middleware/github.js index 9493c358e..bbfa79490 100644 --- a/middleware/github.js +++ b/middleware/github.js @@ -108,7 +108,7 @@ async function getTeams(client, org) { if (err.code === 404) { console.error( 'GitHub returned a 404 when trying to read team data. ' + - 'You probably need to re-configure your CURATION_GITHUB_TOKEN token with the `read:org` scope. (This only affects local development.)' + 'You probably need to re-configure your CURATION_GITHUB_TOKEN token with the `read:org` scope. (This only affects local development.)' ) } else if (err.code === 401 && err.message === 'Bad credentials') { // the token was bad. trickle up the problem so the user can fix @@ -123,10 +123,7 @@ async function getTeams(client, org) { } async function getCacheKey(prefix, token) { - const hashedToken = await crypto - .createHash('sha256') - .update(token) - .digest('hex') + const hashedToken = await crypto.createHash('sha256').update(token).digest('hex') return `${prefix}.${hashedToken}` } diff --git a/providers/curation/github.js b/providers/curation/github.js index 8a7ff6390..29ef971be 100644 --- a/providers/curation/github.js +++ b/providers/curation/github.js @@ -1,7 +1,21 @@ // Copyright (c) Microsoft Corporation and others. Licensed under the MIT license. // SPDX-License-Identifier: MIT -const { concat, get, forIn, merge, isEqual, uniq, pick, flatten, flatMap, first, union, unset, uniqWith } = require('lodash') +const { + concat, + get, + forIn, + merge, + isEqual, + uniq, + pick, + flatten, + flatMap, + first, + union, + unset, + uniqWith +} = require('lodash') const { DateTime } = require('luxon') const geit = require('geit') const yaml = require('js-yaml') @@ -114,9 +128,7 @@ class GitHubCurationService { // Should also delete revision less coordinate curation cache toBeCleaned = uniqWith(toBeCleaned.concat(toBeCleaned.map(c => c.asRevisionless())), isEqual) await Promise.all( - toBeCleaned.map( - throat(10, async coordinates => this.cache.delete(this._getCacheKey(coordinates))) - ) + toBeCleaned.map(throat(10, async coordinates => this.cache.delete(this._getCacheKey(coordinates)))) ) if (data.merged_at) await this._prMerged(curations) } @@ -173,27 +185,29 @@ class GitHubCurationService { const harvest = await this.harvestStore.getAll(coordinates) const matches = [] - await Promise.all(otherCoordinatesList.map(async (otherCoordinates) => { - const otherDefinition = await this.definitionService.getStored(otherCoordinates) - const otherHarvest = await this.harvestStore.getAll(otherCoordinates) - const result = this.licenseMatcher.process( - { definition, harvest }, - { definition: otherDefinition, harvest: otherHarvest } - ) + await Promise.all( + otherCoordinatesList.map(async otherCoordinates => { + const otherDefinition = await this.definitionService.getStored(otherCoordinates) + const otherHarvest = await this.harvestStore.getAll(otherCoordinates) + const result = this.licenseMatcher.process( + { definition, harvest }, + { definition: otherDefinition, harvest: otherHarvest } + ) - if (result.isMatching) { - matches.push({ - version: otherCoordinates.revision, - matchingProperties: result.match.map(reason => { - if (reason.file) { - return { file: reason.file } - } else { - return { propPath: reason.propPath, value: reason.value } - } + if (result.isMatching) { + matches.push({ + version: otherCoordinates.revision, + matchingProperties: result.match.map(reason => { + if (reason.file) { + return { file: reason.file } + } else { + return { propPath: reason.propPath, value: reason.value } + } + }) }) - }) - } - })) + } + }) + ) return matches } @@ -221,13 +235,20 @@ class GitHubCurationService { const coordinatesList = await this.definitionService.list(revisionlessCoords) const filteredCoordinatesList = coordinatesList .map(stringCoords => EntityCoordinates.fromString(stringCoords)) - .filter(coords => coordinates.name === coords.name && coordinates.revision !== coords.revision && coords.revision !== 'undefined') + .filter( + coords => + coordinates.name === coords.name && + coordinates.revision !== coords.revision && + coords.revision !== 'undefined' + ) const matchingRevisionsAndReasons = await this._startMatching(coordinates, filteredCoordinatesList) const curations = await this.list(revisionlessCoords) const existingRevisions = this._getRevisionsFromCurations(curations) - const uncuratedMatchingRevisions = matchingRevisionsAndReasons.filter(versionAndReason => existingRevisions.indexOf(versionAndReason.version) == -1) + const uncuratedMatchingRevisions = matchingRevisionsAndReasons.filter( + versionAndReason => existingRevisions.indexOf(versionAndReason.version) == -1 + ) return uncuratedMatchingRevisions } @@ -242,12 +263,15 @@ class GitHubCurationService { filtered.push(revisionAndReason) } else { if (existingDeclaredLicense !== get(curation, 'licensed.declared')) { - this.logger.info('GitHubCurationService._filterRevisionWithDeclaredLicense.ExistingLicenseNotEqualToCuratedLicense', { - coordinates: coordinates.toString(), - revisionAndReason, - curation, - existingLicense: existingDeclaredLicense - }) + this.logger.info( + 'GitHubCurationService._filterRevisionWithDeclaredLicense.ExistingLicenseNotEqualToCuratedLicense', + { + coordinates: coordinates.toString(), + revisionAndReason, + curation, + existingLicense: existingDeclaredLicense + } + ) } } } @@ -339,7 +363,9 @@ class GitHubCurationService { const curationAndContributions = await this.list(revisionLessCoordinates) if (!this._canBeAutoCurated(definition, curationAndContributions)) { - this.logger.info('GitHubCurationService.autoCurate.notApplicable', { coordinates: definition.coordinates.toString() }) + this.logger.info('GitHubCurationService.autoCurate.notApplicable', { + coordinates: definition.coordinates.toString() + }) return } @@ -374,7 +400,10 @@ class GitHubCurationService { } const otherHarvest = await this.harvestStore.getAll(otherCoordinates) - const result = this.licenseMatcher.process({ definition, harvest }, { definition: otherDefinition, harvest: otherHarvest }) + const result = this.licenseMatcher.process( + { definition, harvest }, + { definition: otherDefinition, harvest: otherHarvest } + ) if (result.isMatching) { const info = await this._getUserInfo(this.github) const resolution = `Auto-generated curation. Newly harvested version ${definition.coordinates.revision} matches existing version ${otherCoordinates.revision}. ${this._generateMatchingDescription(result.match)}` @@ -383,24 +412,29 @@ class GitHubCurationService { type: 'auto', summary: definition.coordinates.toString(), details: `Add ${declaredLicense} license`, - resolution, + resolution }, - patches: [{ - coordinates: revisionLessCoordinates, - revisions: { - [definition.coordinates.revision]: curation + patches: [ + { + coordinates: revisionLessCoordinates, + revisions: { + [definition.coordinates.revision]: curation + } } - }] + ] } const contribution = await this._addOrUpdate(null, this.github, info, patch) this.logger.info('GitHubCurationService.autoCurate.match', { - ...logProps, pr: contribution.data.number, match: result.match + ...logProps, + pr: contribution.data.number, + match: result.match }) return } else { this.logger.info('GitHubCurationService.autoCurate.mismatch', { - ...logProps, mismatch: result.mismatch + ...logProps, + mismatch: result.mismatch }) } } @@ -413,7 +447,8 @@ class GitHubCurationService { _canBeAutoCurated(definition, curationAndContributions) { const tools = get(definition, 'described.tools') || [] const hasClearlyDefinedInTools = tools.some(tool => tool.startsWith('clearlydefined')) - const hasCurations = curationAndContributions.curations && Object.keys(curationAndContributions.curations).length !== 0 + const hasCurations = + curationAndContributions.curations && Object.keys(curationAndContributions.curations).length !== 0 return hasClearlyDefinedInTools && !this._hasExistingCurations(definition, curationAndContributions) && hasCurations } @@ -450,7 +485,11 @@ class GitHubCurationService { } this.logger.info('eligible component for multiversion curation', { coordinates: curatedCoordinates.toString() }) let matchingRevisionAndReason = await this._calculateMatchingRevisionAndReason(curatedCoordinates) - matchingRevisionAndReason = await this._filterRevisionWithDeclaredLicense(curatedCoordinates, get(curationRevisions, [revision]), matchingRevisionAndReason) + matchingRevisionAndReason = await this._filterRevisionWithDeclaredLicense( + curatedCoordinates, + get(curationRevisions, [revision]), + matchingRevisionAndReason + ) if (matchingRevisionAndReason.length === 0) { return } @@ -462,9 +501,14 @@ class GitHubCurationService { type: 'auto', summary: curatedCoordinates.toString(), details: `Add ${get(curationRevisions, [revision, 'licensed', 'declared'])} license`, - resolution: `Automatically added versions based on ${pr.html_url}\n ${this._formatMultiversionCuratedRevisions(matchingRevisionAndReason)}`, + resolution: `Automatically added versions based on ${pr.html_url}\n ${this._formatMultiversionCuratedRevisions(matchingRevisionAndReason)}` } - return this._addCurationWithMatchingRevisions(curatedCoordinates, curationRevisions[revision], info, matchingRevisionAndReason) + return this._addCurationWithMatchingRevisions( + curatedCoordinates, + curationRevisions[revision], + info, + matchingRevisionAndReason + ) } catch (err) { this.logger.error('GitHubCurationService.addByMergedCuration.addFailed', { error: err, pr: pr.html_url }) } @@ -539,8 +583,10 @@ ${this._formatDefinitions(patch.patches)}` _formatDefinitions(definitions) { return definitions.map( def => - `- [${def.coordinates.name} ${Object.keys(def.revisions)[0] - }](https://clearlydefined.io/definitions/${EntityCoordinates.fromObject(def.coordinates)}/${Object.keys(def.revisions)[0] + `- [${def.coordinates.name} ${ + Object.keys(def.revisions)[0] + }](https://clearlydefined.io/definitions/${EntityCoordinates.fromObject(def.coordinates)}/${ + Object.keys(def.revisions)[0] })` ) } @@ -555,7 +601,7 @@ ${this._formatDefinitions(patch.patches)}` } return 0 }) - .forEach(version => output += `- ${version}\n`) + .forEach(version => (output += `- ${version}\n`)) const allMatchingProps = union(...multiversionSearchResults.map(m => m.matchingProperties)) output += this._generateMatchingDescription(allMatchingProps) @@ -581,9 +627,14 @@ ${this._formatDefinitions(patch.patches)}` } if (Object.keys(matchingMetadata).length > 0) { - const metadataText = Object.keys(matchingMetadata).length == 1 - ? Object.keys(matchingMetadata).map(metadataProp => `${metadataProp}: ${JSON.stringify(matchingMetadata[metadataProp])}`) - : Object.keys(matchingMetadata).map(metadataProp => `\n- ${metadataProp}: ${JSON.stringify(matchingMetadata[metadataProp])}`) + const metadataText = + Object.keys(matchingMetadata).length == 1 + ? Object.keys(matchingMetadata).map( + metadataProp => `${metadataProp}: ${JSON.stringify(matchingMetadata[metadataProp])}` + ) + : Object.keys(matchingMetadata).map( + metadataProp => `\n- ${metadataProp}: ${JSON.stringify(matchingMetadata[metadataProp])}` + ) output += `\nMatching metadata: ${metadataText}` } return output @@ -601,7 +652,10 @@ ${this._formatDefinitions(patch.patches)}` * @returns {Object} The requested curation and corresponding revision identifier (e.g., commit sha) if relevant */ async get(coordinates, curation = null) { - if (!coordinates.revision) throw new Error(`Coordinates ${coordinates.toString()} appear to be malformed. Are they missing a namespace or revision?`) + if (!coordinates.revision) + throw new Error( + `Coordinates ${coordinates.toString()} appear to be malformed. Are they missing a namespace or revision?` + ) if (curation && typeof curation !== 'number' && typeof curation !== 'string') return curation const all = await this._getCurations(coordinates, curation) if (!all || !all.revisions) return null @@ -624,17 +678,29 @@ ${this._formatDefinitions(patch.patches)}` */ async _getCurations(coordinates, pr = null) { const path = this._getCurationPath(coordinates) - this.logger.info('7:compute:curation_source:start', { ts: new Date().toISOString(), coordinates: coordinates.toString() }) + this.logger.info('7:compute:curation_source:start', { + ts: new Date().toISOString(), + coordinates: coordinates.toString() + }) const tree = await this._getCurationTree(pr) - this.logger.info('7:compute:curation_source:end', { ts: new Date().toISOString(), coordinates: coordinates.toString() }) + this.logger.info('7:compute:curation_source:end', { + ts: new Date().toISOString(), + coordinates: coordinates.toString() + }) const treePath = flatMap(deCodeSlashes(path).split('/'), (current, i, original) => original.length - 1 != i ? [current, 'children'] : current ) const blob = get(tree, treePath) if (!blob) return null - this.logger.info('8:compute:curation_blob:start', { ts: new Date().toISOString(), coordinates: coordinates.toString() }) + this.logger.info('8:compute:curation_blob:start', { + ts: new Date().toISOString(), + coordinates: coordinates.toString() + }) const data = await this.smartGit.blob(blob.object) - this.logger.info('8:compute:curation_blob:end', { ts: new Date().toISOString(), coordinates: coordinates.toString() }) + this.logger.info('8:compute:curation_blob:end', { + ts: new Date().toISOString(), + coordinates: coordinates.toString() + }) const content = yaml.safeLoad(data.toString()) // Stash the sha of the content as a NON-enumerable prop so it does not get merged into the patch Object.defineProperty(content, '_origin', { value: { sha: blob.object }, enumerable: false }) @@ -824,9 +890,7 @@ ${this._formatDefinitions(patch.patches)}` } _getCacheKey(coordinates) { - return `cur_${EntityCoordinates.fromObject(coordinates) - .toString() - .toLowerCase()}` + return `cur_${EntityCoordinates.fromObject(coordinates).toString().toLowerCase()}` } async _addCurationWithMatchingRevisions(coordinates, curation, info, matchingRevisionAndReason) { @@ -835,14 +899,18 @@ ${this._formatDefinitions(patch.patches)}` return } const newRevisions = {} - matchingRevisionAndReason.forEach(versionAndReason => { newRevisions[versionAndReason.version] = { 'licensed': { 'declared': license } } }) + matchingRevisionAndReason.forEach(versionAndReason => { + newRevisions[versionAndReason.version] = { licensed: { declared: license } } + }) const userInfo = await this._getUserInfo(this.github) const patch = { contributionInfo: info, - patches: [{ - coordinates: coordinates.asRevisionless(), - revisions: newRevisions - }] + patches: [ + { + coordinates: coordinates.asRevisionless(), + revisions: newRevisions + } + ] } return this._addOrUpdate(null, this.github, userInfo, patch) } @@ -856,12 +924,19 @@ ${this._formatDefinitions(patch.patches)}` for (const coordinates of uniqueCoordinatesList) { const result = { coordinates: coordinates.toString() } try { - this.logger.info('GitHubCurationService.reprocessMergedCurations.reprocessMergedCurationStart', { coordinate: coordinates.toString() }) + this.logger.info('GitHubCurationService.reprocessMergedCurations.reprocessMergedCurationStart', { + coordinate: coordinates.toString() + }) result.contributions = await this._reprocessMergedCuration(coordinates) - this.logger.info('GitHubCurationService.reprocessMergedCurations.reprocessMergedCurationSuccess', { coordinate: coordinates.toString() }) + this.logger.info('GitHubCurationService.reprocessMergedCurations.reprocessMergedCurationSuccess', { + coordinate: coordinates.toString() + }) } catch (err) { result.error = err.message - this.logger.info('GitHubCurationService.reprocessMergedCurations.reprocessMergedCurationFailed', { err, coordinate: coordinates.toString() }) + this.logger.info('GitHubCurationService.reprocessMergedCurations.reprocessMergedCurationFailed', { + err, + coordinate: coordinates.toString() + }) } results.push(result) } @@ -878,7 +953,11 @@ ${this._formatDefinitions(patch.patches)}` const curatedCoordinates = EntityCoordinates.fromString(curatedCoordinatesStr) let matchingRevisionAndReason = await this._calculateMatchingRevisionAndReason(curatedCoordinates) matchingRevisionAndReason = matchingRevisionAndReason.filter(r => !processedRevisions.has(r.version)) - matchingRevisionAndReason = await this._filterRevisionWithDeclaredLicense(curatedCoordinates, curation, matchingRevisionAndReason) + matchingRevisionAndReason = await this._filterRevisionWithDeclaredLicense( + curatedCoordinates, + curation, + matchingRevisionAndReason + ) if (matchingRevisionAndReason.length === 0) { contributions.push({ coordinates: curatedCoordinates.toString() }) continue @@ -891,9 +970,14 @@ ${this._formatDefinitions(patch.patches)}` type: 'auto', summary: `Reprocess merged curation for ${EntityCoordinates.fromObject(curatedCoordinates).toString()}`, details: `Curated ${get(curation, ['licensed.declared'])} license`, - resolution: `Automatically added versions based on merged curation:\n ${this._formatMultiversionCuratedRevisions(matchingRevisionAndReason)}`, + resolution: `Automatically added versions based on merged curation:\n ${this._formatMultiversionCuratedRevisions(matchingRevisionAndReason)}` } - const contribution = await this._addCurationWithMatchingRevisions(curatedCoordinates, curation, info, matchingRevisionAndReason) + const contribution = await this._addCurationWithMatchingRevisions( + curatedCoordinates, + curation, + info, + matchingRevisionAndReason + ) matchingRevisionAndReason.forEach(r => processedRevisions.add(r.version)) contributions.push({ coordinates: curatedCoordinates.toString(), diff --git a/providers/curation/memoryStore.js b/providers/curation/memoryStore.js index a57eaffcd..4739f509a 100644 --- a/providers/curation/memoryStore.js +++ b/providers/curation/memoryStore.js @@ -57,9 +57,7 @@ class MemoryStore { _getCurationId(coordinates) { if (!coordinates) return '' - return EntityCoordinates.fromObject(coordinates) - .toString() - .toLowerCase() + return EntityCoordinates.fromObject(coordinates).toString().toLowerCase() } } diff --git a/providers/curation/mongoCurationStore.js b/providers/curation/mongoCurationStore.js index 0f3ea049b..8e5c8a1d5 100644 --- a/providers/curation/mongoCurationStore.js +++ b/providers/curation/mongoCurationStore.js @@ -106,9 +106,7 @@ class MongoCurationStore { _getCurationId(coordinates) { if (!coordinates) return '' - return EntityCoordinates.fromObject(coordinates) - .toString() - .toLowerCase() + return EntityCoordinates.fromObject(coordinates).toString().toLowerCase() } _buildContributionQuery(coordinates) { @@ -132,11 +130,7 @@ class MongoCurationStore { } _lowercaseCoordinates(input) { - return EntityCoordinates.fromString( - EntityCoordinates.fromObject(input) - .toString() - .toLowerCase() - ) + return EntityCoordinates.fromString(EntityCoordinates.fromObject(input).toString().toLowerCase()) } } diff --git a/providers/harvest/azureQueueConfig.js b/providers/harvest/azureQueueConfig.js index 3e11593de..eb713ad44 100644 --- a/providers/harvest/azureQueueConfig.js +++ b/providers/harvest/azureQueueConfig.js @@ -10,7 +10,7 @@ function azure(options) { queueName: config.get('HARVEST_QUEUE_NAME') || 'harvests', dequeueOptions: { numOfMessages: 32, - visibilityTimeout: 10 * 60, // 10 min. The default value is 30 seconds. + visibilityTimeout: 10 * 60 // 10 min. The default value is 30 seconds. } } return new AzureStorageQueue(realOptions) diff --git a/providers/harvest/process.js b/providers/harvest/process.js index 01514a6b6..54f21cf96 100644 --- a/providers/harvest/process.js +++ b/providers/harvest/process.js @@ -10,9 +10,7 @@ async function work(once) { try { const messages = await queue.dequeueMultiple() if (messages && messages.length > 0) isQueueEmpty = false - await Promise.all( - messages.map(message => processMessage(message)) - ) + await Promise.all(messages.map(message => processMessage(message))) } catch (error) { logger.error(error) } finally { diff --git a/providers/queueing/azureStorageQueue.js b/providers/queueing/azureStorageQueue.js index 44deb7d1d..7f1523f76 100644 --- a/providers/queueing/azureStorageQueue.js +++ b/providers/queueing/azureStorageQueue.js @@ -47,11 +47,17 @@ class AzureStorageQueue { /** Similar to dequeue() but returns multiple messages to improve performance */ async dequeueMultiple() { - const messages = await promisify(this.queueService.getMessages).bind(this.queueService)(this.options.queueName, this.options.dequeueOptions) + const messages = await promisify(this.queueService.getMessages).bind(this.queueService)( + this.options.queueName, + this.options.dequeueOptions + ) if (!messages || messages.length === 0) return [] for (const i in messages) { if (messages[i].dequeueCount <= 5) { - messages[i] = { original: messages[i], data: JSON.parse(Buffer.from(messages[i].messageText, 'base64').toString('utf8')) } + messages[i] = { + original: messages[i], + data: JSON.parse(Buffer.from(messages[i].messageText, 'base64').toString('utf8')) + } } else { await this.delete({ original: messages[i] }) } diff --git a/providers/stores/abstractFileStore.js b/providers/stores/abstractFileStore.js index 8c02fad3a..d616e3c25 100644 --- a/providers/stores/abstractFileStore.js +++ b/providers/stores/abstractFileStore.js @@ -13,7 +13,7 @@ class AbstractFileStore { this.options = options } - async initialize() { } + async initialize() {} /** * Visit all of the files associated with the given coordinates. @@ -24,13 +24,15 @@ class AbstractFileStore { async list(coordinates, visitor) { try { const paths = await recursive(this._toStoragePathFromCoordinates(coordinates), ['.DS_Store']) - return (await Promise.all( - paths.map(async path => { - if (!this._isValidPath(path)) return null - const data = await promisify(fs.readFile)(path) - return data ? visitor(JSON.parse(data)) : null - }) - )).filter(x => x) + return ( + await Promise.all( + paths.map(async path => { + if (!this._isValidPath(path)) return null + const data = await promisify(fs.readFile)(path) + return data ? visitor(JSON.parse(data)) : null + }) + ) + ).filter(x => x) } catch (error) { // If there is just no entry, that's fine, there is no content. if (error.code === 'ENOENT') return [] @@ -63,21 +65,23 @@ class AbstractFileStore { */ async find(query) { const paths = await recursive(this.options.location, ['.DS_Store']) - return (await Promise.all( - paths.map(async path => { - try { - if (!this._isValidPath(path)) return null - const data = await promisify(fs.readFile)(path) - if (!data) return null - const definition = JSON.parse(data) - return definition - } catch (error) { - // If there is just no entry, that's fine, there is no content. - if (error.code === 'ENOENT') return null - throw error - } - }) - )).filter(definition => { + return ( + await Promise.all( + paths.map(async path => { + try { + if (!this._isValidPath(path)) return null + const data = await promisify(fs.readFile)(path) + if (!data) return null + const definition = JSON.parse(data) + return definition + } catch (error) { + // If there is just no entry, that's fine, there is no content. + if (error.code === 'ENOENT') return null + throw error + } + }) + ) + ).filter(definition => { if (!definition) return false if (query.type && definition.coordinates.type !== query.type) return false if (query.provider && definition.coordinates.provider !== query.provider) return false diff --git a/providers/stores/abstractMongoDefinitionStore.js b/providers/stores/abstractMongoDefinitionStore.js index 47d1c4f3d..a9d3e27cf 100644 --- a/providers/stores/abstractMongoDefinitionStore.js +++ b/providers/stores/abstractMongoDefinitionStore.js @@ -23,10 +23,10 @@ const sortOptions = { } const valueTransformers = { - 'licensed.score.total': (value) => value && parseInt(value), - 'described.score.total': (value) => value && parseInt(value), - 'scores.effective': (value) => value && parseInt(value), - 'scores.tool': (value) => value && parseInt(value) + 'licensed.score.total': value => value && parseInt(value), + 'described.score.total': value => value && parseInt(value), + 'scores.effective': value => value && parseInt(value), + 'scores.tool': value => value && parseInt(value) } const SEPARATOR = '&' @@ -38,7 +38,7 @@ class AbstractMongoDefinitionStore { } initialize() { - return promiseRetry(async (retry) => { + return promiseRetry(async retry => { try { this.client = await MongoClient.connect(this.options.connectionString, { useNewUrlParser: true }) this.db = this.client.db(this.options.dbName) @@ -173,7 +173,7 @@ class AbstractMongoDefinitionStore { const sort = sortOptions[parameters.sort] || [] const clause = {} const sortDirection = parameters.sortDesc ? -1 : 1 - sort.forEach((item) => (clause[item] = sortDirection)) + sort.forEach(item => (clause[item] = sortDirection)) //Always sort on coordinatesKey(_id or partitionKey) for continuation token const coordinateKey = this.getCoordinatesKey() clause[coordinateKey] = sortDirection @@ -194,7 +194,7 @@ class AbstractMongoDefinitionStore { _buildQueryExpressions(continuationToken, sort) { const lastValues = base64.decode(continuationToken) - const sortValues = lastValues.split(SEPARATOR).map((value) => (value.length ? value : null)) + const sortValues = lastValues.split(SEPARATOR).map(value => (value.length ? value : null)) const queryExpressions = [] const sortConditions = Object.entries(sort) @@ -240,7 +240,7 @@ class AbstractMongoDefinitionStore { if (data.length !== pageSize) return '' const lastItem = data[data.length - 1] const lastValues = Object.keys(sortClause) - .map((key) => get(lastItem, key)) + .map(key => get(lastItem, key)) .join(SEPARATOR) return base64.encode(lastValues) } diff --git a/providers/stores/fileHarvestStore.js b/providers/stores/fileHarvestStore.js index 45170c54e..f4917302e 100644 --- a/providers/stores/fileHarvestStore.js +++ b/providers/stores/fileHarvestStore.js @@ -61,9 +61,8 @@ class FileHarvestStore extends AbstractFileStore { const contents = await Promise.all( files.map(file => { return new Promise((resolve, reject) => - fs.readFile( - file, - (error, data) => (error ? reject(error) : resolve({ name: file, content: JSON.parse(data) })) + fs.readFile(file, (error, data) => + error ? reject(error) : resolve({ name: file, content: JSON.parse(data) }) ) ) }) diff --git a/providers/stores/mongo.js b/providers/stores/mongo.js index fa611ea36..5c6ca290e 100644 --- a/providers/stores/mongo.js +++ b/providers/stores/mongo.js @@ -5,7 +5,6 @@ const { clone, get, range } = require('lodash') const AbstractMongoDefinitionStore = require('./abstractMongoDefinitionStore') class MongoStore extends AbstractMongoDefinitionStore { - /** * List all of the matching components for the given coordinates. * Accepts partial coordinates. @@ -88,15 +87,14 @@ class MongoStore extends AbstractMongoDefinitionStore { await this.collection.deleteMany({ '_mongo.partitionKey': this.getId(coordinates) }) return null } - + getCoordinatesKey() { return '_mongo.partitionKey' } - + buildQuery(parameters) { const filter = super.buildQuery(parameters) return { ...filter, '_mongo.page': 1 } // only get page 1 of each definition } - } module.exports = options => new MongoStore(options) diff --git a/providers/stores/mongoConfig.js b/providers/stores/mongoConfig.js index 0ac1bcc29..f3db88a80 100644 --- a/providers/stores/mongoConfig.js +++ b/providers/stores/mongoConfig.js @@ -10,21 +10,27 @@ const dbOptions = { } function definitionPaged(options) { - return mongo(options || { - ...dbOptions, - collectionName: config.get('DEFINITION_MONGO_COLLECTION_NAME') || 'definitions-paged' - }) + return mongo( + options || { + ...dbOptions, + collectionName: config.get('DEFINITION_MONGO_COLLECTION_NAME') || 'definitions-paged' + } + ) } function definitionTrimmed(options) { const oldConfig = config.get('TRIMMED_DEFINITION_MONGO_COLLECTION_NAME') if (oldConfig) { - console.warn('The TRIMMED_DEFINITION_MONGO_COLLECTION_NAME environment variable is deprecated. Use DEFINITION_MONGO_TRIMMED_COLLECTION_NAME instead.') + console.warn( + 'The TRIMMED_DEFINITION_MONGO_COLLECTION_NAME environment variable is deprecated. Use DEFINITION_MONGO_TRIMMED_COLLECTION_NAME instead.' + ) } - return TrimmedMongoDefinitionStore(options || { - ...dbOptions, - collectionName: config.get('DEFINITION_MONGO_TRIMMED_COLLECTION_NAME') || oldConfig || 'definitions-trimmed' - }) + return TrimmedMongoDefinitionStore( + options || { + ...dbOptions, + collectionName: config.get('DEFINITION_MONGO_TRIMMED_COLLECTION_NAME') || oldConfig || 'definitions-trimmed' + } + ) } module.exports = { definitionPaged, definitionTrimmed } diff --git a/providers/stores/trimmedMongoDefinitionStore.js b/providers/stores/trimmedMongoDefinitionStore.js index 8320d8d5e..404f0e196 100644 --- a/providers/stores/trimmedMongoDefinitionStore.js +++ b/providers/stores/trimmedMongoDefinitionStore.js @@ -19,7 +19,7 @@ class TrimmedMongoDefinitionStore extends AbstractMongoDefinitionStore { async find(query, continuationToken = '', pageSize) { const result = await super.find(query, continuationToken, pageSize) - result.data.forEach((def) => delete def._id) + result.data.forEach(def => delete def._id) return result } diff --git a/providers/summary/clearlydefined.js b/providers/summary/clearlydefined.js index 7f2f47606..0908d7fc9 100644 --- a/providers/summary/clearlydefined.js +++ b/providers/summary/clearlydefined.js @@ -178,17 +178,9 @@ class ClearlyDescribedSummarizer { const urls = this.getMavenUrls(coordinates) setIfValue(result, 'described.releaseDate', extractDate(data.releaseDate)) - setIfValue( - result, - 'described.urls.registry', - urls.registry - ) + setIfValue(result, 'described.urls.registry', urls.registry) setIfValue(result, 'described.urls.version', `${get(result, 'described.urls.registry')}/${coordinates.revision}`) - setIfValue( - result, - 'described.urls.download', - urls.download - ) + setIfValue(result, 'described.urls.download', urls.download) const projectSummaryLicenses = get(data, 'manifest.summary.licenses') || get(data, 'manifest.summary.project.licenses') // the project layer was removed in 1.2.0 if (!projectSummaryLicenses) return @@ -219,7 +211,6 @@ class ClearlyDescribedSummarizer { setIfValue(result, 'licensed.declared', SPDX.normalize(data.declaredLicenses)) } - addCrateData(result, data, coordinates) { setIfValue(result, 'described.releaseDate', extractDate(get(data, 'registryData.created_at'))) setIfValue(result, 'described.projectWebsite', get(data, 'manifest.homepage')) @@ -235,7 +226,6 @@ class ClearlyDescribedSummarizer { } addSourceArchiveData(result, data, coordinates) { - setIfValue(result, 'described.releaseDate', extractDate(data.releaseDate)) const namespaceAsFolders = coordinates.namespace ? coordinates.namespace.replace(/\./g, '/') : coordinates.namespace setIfValue( @@ -304,14 +294,16 @@ class ClearlyDescribedSummarizer { setIfValue( result, 'described.urls.registry', - `https://npmjs.com/package/${coordinates.namespace ? coordinates.namespace + '/' + coordinates.name : coordinates.name + `https://npmjs.com/package/${ + coordinates.namespace ? coordinates.namespace + '/' + coordinates.name : coordinates.name }` ) setIfValue(result, 'described.urls.version', `${get(result, 'described.urls.registry')}/v/${coordinates.revision}`) setIfValue( result, 'described.urls.download', - `https://registry.npmjs.com/${coordinates.namespace ? coordinates.namespace + '/' + coordinates.name : coordinates.name + `https://registry.npmjs.com/${ + coordinates.namespace ? coordinates.namespace + '/' + coordinates.name : coordinates.name }/-/${coordinates.name}-${coordinates.revision}.tgz` ) const manifest = get(data, 'registryData.manifest') @@ -436,16 +428,8 @@ class ClearlyDescribedSummarizer { setIfValue(result, 'described.releaseDate', extractDate(data.releaseDate)) setIfValue(result, 'described.urls.registry', urls.registry) - setIfValue( - result, - 'described.urls.version', - urls.version - ) - setIfValue( - result, - 'described.urls.download', - urls.download - ) + setIfValue(result, 'described.urls.version', urls.version) + setIfValue(result, 'described.urls.download', urls.download) } addDebData(result, data, coordinates) { @@ -490,10 +474,7 @@ class ClearlyDescribedSummarizer { const registryPath = registryData[0].Path if (registryPath) { // Example: ./pool/main/0/0ad/0ad_0.0.17-1.debian.tar.xz -> http://ftp.debian.org/debian/pool/main/0/0ad - const pathName = registryPath - .split('/') - .slice(1, 5) - .join('/') + const pathName = registryPath.split('/').slice(1, 5).join('/') return 'http://ftp.debian.org/debian/' + pathName } return null @@ -511,17 +492,9 @@ class ClearlyDescribedSummarizer { setIfValue(result, 'described.releaseDate', extractDate(data.releaseDate)) setIfValue(result, 'described.releaseDate', extractDate(data.releaseDate)) - setIfValue( - result, - 'described.urls.registry', - urls.registry - ) + setIfValue(result, 'described.urls.registry', urls.registry) setIfValue(result, 'described.urls.version', urls.version) - setIfValue( - result, - 'described.urls.download', - urls.download - ) + setIfValue(result, 'described.urls.download', urls.download) const licenses = get(data, 'registryData.licenses') || [] // Based on the https://pkg.go.dev/license-policy and github.com/google/licensecheck, // ',' means use AND logic. diff --git a/providers/summary/reuse.js b/providers/summary/reuse.js index fb2c2dc67..fdadce353 100644 --- a/providers/summary/reuse.js +++ b/providers/summary/reuse.js @@ -66,11 +66,10 @@ class FsfeReuseSummarizer { _addLicenseDeclaration(harvested, result) { if (!harvested.reuse.licenses) return const declaredLicenses = harvested.reuse.licenses - .map(license => isDeclaredLicense(SPDX.normalize(license.spdxId)) ? license.spdxId : null) + .map(license => (isDeclaredLicense(SPDX.normalize(license.spdxId)) ? license.spdxId : null)) .filter(x => x) setIfValue(result, 'licensed.declared', uniq(declaredLicenses).join(' AND ')) } - } module.exports = options => new FsfeReuseSummarizer(options) diff --git a/providers/summary/scancode.js b/providers/summary/scancode.js index a51e49e63..eeeec51ab 100644 --- a/providers/summary/scancode.js +++ b/providers/summary/scancode.js @@ -70,7 +70,7 @@ class ScanCodeSummarizer { // Some Maven packages have this value as an object rather than a string // Example: for maven/mavencentral/redis.clients/jedis/4.1.1 // declared_license would be { "name": "MIT", "url": "http://github.com/redis/jedis/raw/master/LICENSE.txt", "comments": null, "distribution": "repo" }' - // Some pypi packages have this value as an object with a license field + // Some pypi packages have this value as an object with a license field // Example: for pypi/pypi/abseil/absl-py/0.9.0 // declared_license would be { "license": "Apache 2.0", "classifiers": ["License :: OSI Approved :: Apache Software License"] } if (typeof declared_license != 'string' && declared_license != undefined) { @@ -210,7 +210,7 @@ class ScanCodeSummarizer { } _normalizeLicenseExpression(licenseExpression) { - const parsed = SPDX.parse(licenseExpression, (key) => SPDX.normalizeSingle(scancodeMap.get(key) || key)) + const parsed = SPDX.parse(licenseExpression, key => SPDX.normalizeSingle(scancodeMap.get(key) || key)) const result = SPDX.stringify(parsed) if (result === 'NOASSERTION') this.logger.info(`ScanCode NOASSERTION from ${licenseExpression}`) return result diff --git a/routes/auth.js b/routes/auth.js index dff033d81..222318519 100644 --- a/routes/auth.js +++ b/routes/auth.js @@ -99,7 +99,7 @@ async function getUserDetails(token, org) { if (error.code === 404) console.error( 'GitHub returned a 404 when trying to read team data. ' + - 'You probably need to re-configure your CURATION_GITHUB_TOKEN token with the `read:org` scope. (This only affects local development.)' + 'You probably need to re-configure your CURATION_GITHUB_TOKEN token with the `read:org` scope. (This only affects local development.)' ) else if (error.code === 401 && error.message === 'Bad credentials') // the token was bad. trickle up the problem so the user can fix diff --git a/routes/curations.js b/routes/curations.js index c2002c73b..8b5c187fe 100644 --- a/routes/curations.js +++ b/routes/curations.js @@ -85,9 +85,11 @@ async function updateCurations(request, response) { return response.status(400).send(errorData) } - const normalizedPatches = await Promise.all(request.body.patches.map(async entry => { - return { ...entry, coordinates: await utils.toNormalizedEntityCoordinates(entry.coordinates) } - })) + const normalizedPatches = await Promise.all( + request.body.patches.map(async entry => { + return { ...entry, coordinates: await utils.toNormalizedEntityCoordinates(entry.coordinates) } + }) + ) const normalizedBody = { ...request.body, patches: normalizedPatches } const result = await curationService.addOrUpdate(userGithub, serviceGithub, info, normalizedBody) response.status(200).send({ diff --git a/routes/definitions-1.0.0.js b/routes/definitions-1.0.0.js index 34237f3a1..d5d5a8c03 100644 --- a/routes/definitions-1.0.0.js +++ b/routes/definitions-1.0.0.js @@ -11,9 +11,7 @@ const validator = require('../schemas/validator') router.get('/', asyncMiddleware(getDefinition)) async function getDefinition(req, resp) { - const { - coordinates, pr, expand - } = req.query + const { coordinates, pr, expand } = req.query const force = req.query.force === true || req.query.force === 'true' let coordinatesEntity = EntityCoordinates.fromString(coordinates) const isValid = validator.validate('definitions-get-dto', { @@ -46,4 +44,4 @@ function setup(definition, testFlag = false) { return router } -module.exports = setup \ No newline at end of file +module.exports = setup diff --git a/routes/definitions.js b/routes/definitions.js index 9b5bf404a..8f9fb37b6 100644 --- a/routes/definitions.js +++ b/routes/definitions.js @@ -44,15 +44,13 @@ async function getDefinition(request, response) { // Join the rest of the string as the namespace const nameSpace = splitString.join('/') - coordinates = utils.toEntityCoordinatesFromArgs( - { - 'type': request.params.type, - 'provider': request.params.provider, - 'namespace': nameSpace, - 'name': name, - 'revision': revision - } - ) + coordinates = utils.toEntityCoordinatesFromArgs({ + type: request.params.type, + provider: request.params.provider, + namespace: nameSpace, + name: name, + revision: revision + }) } else { coordinates = await utils.toEntityCoordinatesFromRequest(request) } @@ -122,7 +120,8 @@ async function listDefinitions(request, response) { try { // Tempoarily adding this verbose logging to find perf issues log.info('POSTing to /definitions', { - ts: new Date().toISOString(), requestParams: request.params, + ts: new Date().toISOString(), + requestParams: request.params, normalizedCoordinates, coordinateCount: coordinatesList.length, force, diff --git a/routes/harvest.js b/routes/harvest.js index f5dcfbd43..ac7993721 100644 --- a/routes/harvest.js +++ b/routes/harvest.js @@ -88,13 +88,14 @@ async function queue(request, response) { } async function normalizeCoordinates(requests) { - const normalizedBody = await Promise.all(requests - .map(async (entry) => { + const normalizedBody = await Promise.all( + requests.map(async entry => { const coordinates = EntityCoordinates.fromString(entry?.coordinates) if (!coordinates) return null const mapped = await utils.toNormalizedEntityCoordinates(coordinates) return { ...entry, coordinates: mapped.toString() } - })) + }) + ) return normalizedBody.filter(entry => entry && entry.coordinates) } diff --git a/routes/index.js b/routes/index.js index c8103207e..1953468c8 100644 --- a/routes/index.js +++ b/routes/index.js @@ -3,7 +3,7 @@ const express = require('express') const router = express.Router() -router.get('/', function(req, res) { +router.get('/', function (req, res) { const msg = `{ "status": "OK", "sha": "${sha}" }` res.status(200).send(msg) }) diff --git a/routes/originConda.js b/routes/originConda.js index d978a6c4c..843b3e6b2 100644 --- a/routes/originConda.js +++ b/routes/originConda.js @@ -57,20 +57,18 @@ router.get( for (let subdir of subdirs) { const repoData = await fetchCondaRepoData(channel, subdir) if (repoData['packages']) { - Object.entries(repoData['packages']) - .forEach(([, packageData]) => { - if (packageData.name === name) { - revisions.push(`${subdir}:${packageData.version}-${packageData.build}`) - } - }) + Object.entries(repoData['packages']).forEach(([, packageData]) => { + if (packageData.name === name) { + revisions.push(`${subdir}:${packageData.version}-${packageData.build}`) + } + }) } if (repoData['packages.conda']) { - Object.entries(repoData['packages.conda']) - .forEach(([, packageData]) => { - if (packageData.name === name) { - revisions.push(`${subdir}:${packageData.version}-${packageData.build}`) - } - }) + Object.entries(repoData['packages.conda']).forEach(([, packageData]) => { + if (packageData.name === name) { + revisions.push(`${subdir}:${packageData.version}-${packageData.build}`) + } + }) } } return response.status(200).send(uniq(revisions)) @@ -87,9 +85,11 @@ router.get( return response.status(404).send([]) } let channelData = await fetchCondaChannelData(channel) - let matches = Object.entries(channelData.packages).filter(([packageName,]) => packageName.includes(name)).map( - ([packageName,]) => { return { id: packageName } } - ) + let matches = Object.entries(channelData.packages) + .filter(([packageName]) => packageName.includes(name)) + .map(([packageName]) => { + return { id: packageName } + }) return response.status(200).send(matches) }) ) @@ -98,4 +98,4 @@ function setup() { return router } -module.exports = setup \ No newline at end of file +module.exports = setup diff --git a/routes/originGitLab.js b/routes/originGitLab.js index e5145f42f..455a2d26c 100644 --- a/routes/originGitLab.js +++ b/routes/originGitLab.js @@ -15,7 +15,6 @@ router.get( '/:namespace/:project/:revisions', asyncMiddleware(async (request, response) => { try { - const { namespace, project } = request.params const project_info = await gitlab.Projects.search(project) @@ -24,10 +23,10 @@ router.get( const tags = await gitlab.Tags.all(project_match.id) const unsorted = tags.map(tag => { - return ({ + return { tag: tag.name, sha: tag.commit.id - }) + } }) const result = unsorted.filter(x => x).sort((a, b) => (a.tag < b.tag ? 1 : a.tag > b.tag ? -1 : 0)) @@ -82,7 +81,7 @@ function setup() { function getExactProjectMatch(namespace, project, projects) { let exact_match - projects.filter((item) => { + projects.filter(item => { if (item.path_with_namespace == `${namespace}/${project}`) { exact_match = item } @@ -95,9 +94,9 @@ async function projectsByProjectName(namespace, project) { const projects = await gitlab.Projects.search(project) let project_names = projects.map(project => { - return ({ + return { id: project.path_with_namespace - }) + } }) return project_names @@ -109,9 +108,7 @@ async function getUserProjects(username) { const user_projects = await gitlab.Users.projects(user_response[0].id) const user_project_names = user_projects.map(project => { - return ( - project.name - ) + return project.name }) return user_project_names @@ -121,10 +118,10 @@ async function getUsers(userName) { const users = await gitlab.Users.search(userName) let user_names = users.map(user => { - return ({ + return { id: user.id, username: user.username - }) + } }) return user_names @@ -137,9 +134,7 @@ async function getGroupProjects(groupName) { const group_projects = await gitlab.Groups.projects(group_response[0]) let group_project_names = group_projects.map(project => { - return ( - project.name - ) + return project.name }) return group_project_names @@ -154,12 +149,10 @@ async function getGroups(groupName) { const groups = await gitlab.Groups.search(groupName) let group_names = groups.map(group => { - return ( - group.id - ) + return group.id }) return group_names } -module.exports = setup \ No newline at end of file +module.exports = setup diff --git a/routes/originGo.js b/routes/originGo.js index 17d3c250c..a136a72f6 100644 --- a/routes/originGo.js +++ b/routes/originGo.js @@ -42,4 +42,4 @@ function setup() { return router } -module.exports = setup \ No newline at end of file +module.exports = setup diff --git a/routes/originGradlePlugin.js b/routes/originGradlePlugin.js index c59d09bcc..e3ede2b25 100644 --- a/routes/originGradlePlugin.js +++ b/routes/originGradlePlugin.js @@ -17,7 +17,7 @@ router.get( asyncMiddleware(async (request, response) => { const { pluginId } = request.params const answer = await gradleHelper.getMavenMetadata(pluginId) - const meta = answer && await parseXml(answer) + const meta = answer && (await parseXml(answer)) const result = get(meta, 'metadata.versioning.0.versions.0.version') || [] result.reverse() return response.status(200).send(uniq(result)) diff --git a/routes/webhook.js b/routes/webhook.js index daed72592..5b0bffdc9 100644 --- a/routes/webhook.js +++ b/routes/webhook.js @@ -74,12 +74,7 @@ function validateGitHubSignature(request, response) { if (!isGithubEvent || !signature) return info(request, response, 400, 'Missing signature or event type on GitHub webhook') - const computedSignature = - 'sha1=' + - crypto - .createHmac('sha1', githubSecret) - .update(request.body) - .digest('hex') + const computedSignature = 'sha1=' + crypto.createHmac('sha1', githubSecret).update(request.body).digest('hex') if (!test && !crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(computedSignature))) return info(request, response, 400, 'X-Hub-Signature does not match blob signature') return true diff --git a/test/app.js b/test/app.js index 9de648522..92e7ff536 100644 --- a/test/app.js +++ b/test/app.js @@ -13,7 +13,7 @@ const config = proxyquire('../bin/config', { }) describe('Application', () => { - it('should initialize', (done) => { + it('should initialize', done => { const app = Application(config) init(app, error => { if (error) { diff --git a/test/business/definitionServiceTest.js b/test/business/definitionServiceTest.js index b350b86ca..ab15c7371 100644 --- a/test/business/definitionServiceTest.js +++ b/test/business/definitionServiceTest.js @@ -15,7 +15,6 @@ const chai = require('chai') chai.use(deepEqualInAnyOrder) const expect = chai.expect - describe('Definition Service', () => { it('invalidates single coordinate', async () => { const { service, coordinates } = setup() @@ -333,43 +332,43 @@ describe('Aggregation service', () => { tools: [['clearlydefined', 'licensee', 'scancode']], // Ideally this would be declared without any parentheses, but currently // the SPDX normalization adds them. - expected: 'MPL-2.0 OR (MIT OR Apache-2.0)', + expected: 'MPL-2.0 OR (MIT OR Apache-2.0)' }, { name: 'quote', version: '0.6.4', tools: [['clearlydefined', 'fossology', 'licensee', 'scancode']], - expected: 'MIT OR Apache-2.0', + expected: 'MIT OR Apache-2.0' }, { name: 'quote', version: '1.0.9', tools: [['clearlydefined', 'licensee', 'scancode']], - expected: 'MIT OR Apache-2.0', + expected: 'MIT OR Apache-2.0' }, { name: 'rand', version: '0.8.2', tools: [['clearlydefined', 'licensee', 'scancode']], - expected: 'MIT OR Apache-2.0', + expected: 'MIT OR Apache-2.0' }, { name: 'regex', version: '1.5.3', tools: [['clearlydefined', 'licensee', 'scancode']], - expected: 'MIT OR Apache-2.0', + expected: 'MIT OR Apache-2.0' }, { name: 'serde', version: '1.0.123', tools: [['clearlydefined', 'licensee', 'scancode']], - expected: 'MIT OR Apache-2.0', + expected: 'MIT OR Apache-2.0' }, { name: 'mpmc', version: '0.1.6', tools: [['clearlydefined', 'licensee', 'scancode']], - expected: 'BSD-2-Clause-Views', + expected: 'BSD-2-Clause-Views' } ] @@ -434,7 +433,9 @@ function setup(definition, coordinateSpec, curation) { const curator = { get: () => Promise.resolve(curation), apply: (_coordinates, _curationSpec, definition) => Promise.resolve(Curation.apply(definition, curation)), - autoCurate: () => { return } + autoCurate: () => { + return + } } const harvestStore = { getAll: () => Promise.resolve(null) } const harvestService = { harvest: () => sinon.stub() } diff --git a/test/business/noticeServiceTest.js b/test/business/noticeServiceTest.js index 7b4e0f276..b2fb3f866 100644 --- a/test/business/noticeServiceTest.js +++ b/test/business/noticeServiceTest.js @@ -59,7 +59,6 @@ describe('Notice Service', () => { licensed: { declared: 'MIT' }, files: [{ path: 'LICENSE', token: 'abcd', natures: ['license'] }], described: { tools: ['clearlydefined/1.0.0'] } - }, 'npm/npmjs/-/tested/2.0.0': { coordinates: { name: 'tested', revision: '2.0.0' }, @@ -69,16 +68,18 @@ describe('Notice Service', () => { { path: 'LICENSE', token: 'ijkl', natures: ['license'] } ], described: { tools: ['clearlydefined/1.0.0'] } - }, + } }, { abcd: '%%%This is the attachment%%%', efgh: '%%%This should not be included!%%%', - ijkl: '%%%This should be included!%%%', + ijkl: '%%%This should be included!%%%' } ) const notice = await service.generate(coordinates) - expect(notice.content).to.eq('** tested; version 2.0.0 -- \n\n%%%This should be included!%%%\n\n------\n\n** tested; version 1.0.0 -- \n\n%%%This is the attachment%%%') + expect(notice.content).to.eq( + '** tested; version 2.0.0 -- \n\n%%%This should be included!%%%\n\n------\n\n** tested; version 1.0.0 -- \n\n%%%This is the attachment%%%' + ) }) it('renders with custom template', async () => { diff --git a/test/business/suggestionServiceTest.js b/test/business/suggestionServiceTest.js index e133327d6..2b269c0c9 100644 --- a/test/business/suggestionServiceTest.js +++ b/test/business/suggestionServiceTest.js @@ -103,16 +103,14 @@ describe('Suggestion Service', () => { }) }) - it('will include \'discovered\' licenses for declared license suggestions', async () => { + it("will include 'discovered' licenses for declared license suggestions", async () => { const t2 = EntityCoordinates.fromString('gem/rubygems/-/autobuild/1.6.2.b8') const sample_definition = require('./evidence/issue-453-sample-1.json') const service = setup(sample_definition, []) const suggestions = await service.get(t2) expect(suggestions).to.not.be.null const declared = get(suggestions, 'licensed.declared') - expect(declared).to.equalInAnyOrder([ - { value: 'GPL-2.0', version: '1.6.2.b8' } - ]) + expect(declared).to.equalInAnyOrder([{ value: 'GPL-2.0', version: '1.6.2.b8' }]) }) }) @@ -140,7 +138,7 @@ function createDefinition(coordinates, releaseDate, license, files) { } function setup(definition, others) { - const definitionService = { find: () => { } } + const definitionService = { find: () => {} } sinon.stub(definitionService, 'find').resolves({ data: [...others, definition] }) return SuggestionService(definitionService) } diff --git a/test/lib/coordinatesMapper.js b/test/lib/coordinatesMapper.js index 9802cca1e..8b9a756d7 100644 --- a/test/lib/coordinatesMapper.js +++ b/test/lib/coordinatesMapper.js @@ -13,13 +13,12 @@ function pypiCoordinates(name) { function fakeCache(cache) { return { get: key => cache[key], - set: (key, value) => cache[key] = value, + set: (key, value) => (cache[key] = value), size: () => Object.keys(cache).length } } describe('CoordinatesMapper', () => { - it('return coordinate when no mapper', async () => { const coordinates = pypiCoordinates('0_core_client') const mapped = await coordinatesMapper({}).map(coordinates) @@ -59,4 +58,4 @@ describe('CoordinatesMapper', () => { const mapped = await coordinatesMapper().map() expect(mapped).to.be.undefined }) -}) \ No newline at end of file +}) diff --git a/test/lib/curation.js b/test/lib/curation.js index b08fcc3d3..dc75ecfd4 100644 --- a/test/lib/curation.js +++ b/test/lib/curation.js @@ -100,7 +100,9 @@ describe('Curations', () => { const content = getFixture('curation-invalid.11.yaml') const curation = new Curation(content) expect(curation.isValid).to.be.false - expect(curation.errors[0].error).to.equal('/foo in 4.17.4 files with value "mit and apache-2.0" is not SPDX compliant') + expect(curation.errors[0].error).to.equal( + '/foo in 4.17.4 files with value "mit and apache-2.0" is not SPDX compliant' + ) }) it('should identify valid curations', () => { diff --git a/test/lib/entityCoordinates.js b/test/lib/entityCoordinates.js index d0bde38f3..fa0b7614f 100644 --- a/test/lib/entityCoordinates.js +++ b/test/lib/entityCoordinates.js @@ -27,5 +27,4 @@ describe('EntityCoordinates', () => { const coordinates = new EntityCoordinates('pypi', 'pypi', '-', 'NAME', 'REVISION') expect(coordinates.name).to.be.eq('name') }) - -}) \ No newline at end of file +}) diff --git a/test/lib/gradleCoordinatesMapper.js b/test/lib/gradleCoordinatesMapper.js index fceef55ed..ccd5ed194 100644 --- a/test/lib/gradleCoordinatesMapper.js +++ b/test/lib/gradleCoordinatesMapper.js @@ -1,7 +1,6 @@ // (c) Copyright 2021, SAP SE and ClearlyDefined contributors. Licensed under the MIT license. // SPDX-License-Identifier: MIT - const { expect } = require('chai') const sinon = require('sinon') const fs = require('fs') @@ -9,7 +8,6 @@ const EntityCoordinates = require('../../lib/entityCoordinates') const GradleCoordinatesMapper = require('../../lib/gradleCoordinatesMapper') describe('GradleCoordinatesMapper', () => { - let coordinatesMapper beforeEach(() => { coordinatesMapper = new GradleCoordinatesMapper() @@ -23,11 +21,15 @@ describe('GradleCoordinatesMapper', () => { }) it('spec without namespace', async () => { - const stub = sinon.stub(coordinatesMapper, '_handleRequest').resolves(fs.readFileSync('test/fixtures/maven/pom.xml')) + const stub = sinon + .stub(coordinatesMapper, '_handleRequest') + .resolves(fs.readFileSync('test/fixtures/maven/pom.xml')) const specWithoutNameSpace = 'maven/gradleplugin/-/org.springframework.boot/1.4.2.RELEASE' const mapped = await coordinatesMapper.map(EntityCoordinates.fromString(specWithoutNameSpace)) - stub.calledOn('https://plugins.gradle.org/m2/org/springframework/boot/org.springframework.boot.gradle.plugin/1.4.2.RELEASE/org.springframework.boot.gradle.plugin-1.4.2.RELEASE.pom') + stub.calledOn( + 'https://plugins.gradle.org/m2/org/springframework/boot/org.springframework.boot.gradle.plugin/1.4.2.RELEASE/org.springframework.boot.gradle.plugin-1.4.2.RELEASE.pom' + ) expect(mapped.namespace).to.be.eq('org.springframework.boot') expect(mapped.name).to.be.eq('spring-boot-gradle-plugin') expect(mapped.revision).to.be.eq('1.4.2.RELEASE') @@ -40,10 +42,13 @@ describe('GradleCoordinatesMapper', () => { }) it('spec without revision', async () => { - sinon.stub(coordinatesMapper, '_handleRequest') + sinon + .stub(coordinatesMapper, '_handleRequest') .withArgs('https://plugins.gradle.org/m2/pluginId/pluginId.gradle.plugin/maven-metadata.xml') .resolves(fs.readFileSync('test/fixtures/maven/maven-metadata.xml')) - .withArgs('https://plugins.gradle.org/m2/pluginId/pluginId.gradle.plugin/4.5.10/pluginId.gradle.plugin-4.5.10.pom') + .withArgs( + 'https://plugins.gradle.org/m2/pluginId/pluginId.gradle.plugin/4.5.10/pluginId.gradle.plugin-4.5.10.pom' + ) .resolves(fs.readFileSync('test/fixtures/maven/pom.xml')) const mapped = await coordinatesMapper.map(EntityCoordinates.fromString('maven/gradleplugin/-/pluginId')) expect(mapped.revision).not.to.be.ok @@ -52,7 +57,9 @@ describe('GradleCoordinatesMapper', () => { }) it('_getLatestVersion', async () => { - const stub = sinon.stub(coordinatesMapper, '_handleRequest').resolves(fs.readFileSync('test/fixtures/maven/maven-metadata.xml')) + const stub = sinon + .stub(coordinatesMapper, '_handleRequest') + .resolves(fs.readFileSync('test/fixtures/maven/maven-metadata.xml')) const latest = await coordinatesMapper._getLatestVersion({ name: 'pluginId' }) stub.calledOn('https://plugins.gradle.org/m2/pluginId/pluginId.gradle.plugin/maven-metadata.xml') expect(latest).to.be.equal('4.5.10') @@ -65,4 +72,4 @@ describe('GradleCoordinatesMapper', () => { stub.calledOn('https://plugins.gradle.org/m2/pluginId/pluginId.gradle.plugin/maven-metadata.xml') expect(retrieved).to.be.equal(metadata) }) -}) \ No newline at end of file +}) diff --git a/test/lib/licenseMatcher.js b/test/lib/licenseMatcher.js index 58a64d45b..8a3312943 100644 --- a/test/lib/licenseMatcher.js +++ b/test/lib/licenseMatcher.js @@ -1,6 +1,4 @@ -const { - LicenseMatcher, DefinitionLicenseMatchPolicy, HarvestLicenseMatchPolicy -} = require('../../lib/licenseMatcher') +const { LicenseMatcher, DefinitionLicenseMatchPolicy, HarvestLicenseMatchPolicy } = require('../../lib/licenseMatcher') const EntityCoordinates = require('../../lib/entityCoordinates') const { expect } = require('chai') @@ -10,10 +8,10 @@ describe('licenseMatcher.js', () => { const mismatch = { propPath: 'path.to.license.prop', source: 'license1', target: 'license2' } const matcher = new LicenseMatcher([ { - compare: () => ({ match: [{}], mismatch: [mismatch] }), + compare: () => ({ match: [{}], mismatch: [mismatch] }) }, { - compare: () => ({ match: [{}], mismatch: [] }), + compare: () => ({ match: [{}], mismatch: [] }) } ]) const result = matcher.process({}, {}) @@ -24,10 +22,10 @@ describe('licenseMatcher.js', () => { it('Should return NOT match if all policy returns empty mismatch and empty match', () => { const matcher = new LicenseMatcher([ { - compare: () => ({ match: [], mismatch: [] }), + compare: () => ({ match: [], mismatch: [] }) }, { - compare: () => ({ match: [], mismatch: [] }), + compare: () => ({ match: [], mismatch: [] }) } ]) const result = matcher.process({}, {}) @@ -40,10 +38,10 @@ describe('licenseMatcher.js', () => { const secondMatch = { policy: '2', propPath: 'path.to.license.prop2', value: 'license2' } const matcher = new LicenseMatcher([ { - compare: () => ({ match: [firstMatch], mismatch: [] }), + compare: () => ({ match: [firstMatch], mismatch: [] }) }, { - compare: () => ({ match: [secondMatch], mismatch: [] }), + compare: () => ({ match: [secondMatch], mismatch: [] }) } ]) const result = matcher.process({}, {}) @@ -57,21 +55,25 @@ describe('licenseMatcher.js', () => { it('Should return match array includes the same hashes.sha1', () => { const coordinates = { type: 'npm' } const sourceDefinition = { - 'files': [{ - 'path': 'package/LICENSE', - 'hashes': { - 'sha1': 'dbf8c7e394791d3de9a9fff305d8ee7b59196f26', + files: [ + { + path: 'package/LICENSE', + hashes: { + sha1: 'dbf8c7e394791d3de9a9fff305d8ee7b59196f26' + } } - }] + ] } const targetDefinition = { - 'files': [{ - 'path': 'package/LICENSE', - 'hashes': { - 'sha1': 'dbf8c7e394791d3de9a9fff305d8ee7b59196f26', + files: [ + { + path: 'package/LICENSE', + hashes: { + sha1: 'dbf8c7e394791d3de9a9fff305d8ee7b59196f26' + } } - }] + ] } const result = definitionLicenseMatchPolicy.compare( @@ -90,21 +92,25 @@ describe('licenseMatcher.js', () => { it('Should return match array includes the same hashes.sha256', () => { const coordinates = { type: 'pypi', name: 'foo', revision: '1.0.0' } const sourceDefinition = { - 'files': [{ - 'path': 'foo-1.0.0/LICENSE', - 'hashes': { - 'sha256': 'd9fccda7d1daaec4c1a84d46b48d808e56ee8979c1b62ccc1492b7c27ab7010d', + files: [ + { + path: 'foo-1.0.0/LICENSE', + hashes: { + sha256: 'd9fccda7d1daaec4c1a84d46b48d808e56ee8979c1b62ccc1492b7c27ab7010d' + } } - }] + ] } const targetDefinition = { - 'files': [{ - 'path': 'foo-1.0.0/LICENSE', - 'hashes': { - 'sha256': 'd9fccda7d1daaec4c1a84d46b48d808e56ee8979c1b62ccc1492b7c27ab7010d', + files: [ + { + path: 'foo-1.0.0/LICENSE', + hashes: { + sha256: 'd9fccda7d1daaec4c1a84d46b48d808e56ee8979c1b62ccc1492b7c27ab7010d' + } } - }] + ] } const result = definitionLicenseMatchPolicy.compare( @@ -123,17 +129,21 @@ describe('licenseMatcher.js', () => { it('Should return match array includes the same token', () => { const coordinates = { type: 'maven' } const sourceDefinition = { - 'files': [{ - 'path': 'meta-inf/LICENSE', - 'token': 'd9fccda7d1daaec4c1a84d46b48d808e56ee8979c1b62ccc1492b7c27ab7010d' - }] + files: [ + { + path: 'meta-inf/LICENSE', + token: 'd9fccda7d1daaec4c1a84d46b48d808e56ee8979c1b62ccc1492b7c27ab7010d' + } + ] } const targetDefinition = { - 'files': [{ - 'path': 'meta-inf/LICENSE', - 'token': 'd9fccda7d1daaec4c1a84d46b48d808e56ee8979c1b62ccc1492b7c27ab7010d' - }] + files: [ + { + path: 'meta-inf/LICENSE', + token: 'd9fccda7d1daaec4c1a84d46b48d808e56ee8979c1b62ccc1492b7c27ab7010d' + } + ] } const result = definitionLicenseMatchPolicy.compare( @@ -151,17 +161,21 @@ describe('licenseMatcher.js', () => { it('Should return empty match and mismatch array when no license files found', () => { const sourceDefinition = { - 'path': 'NOT-A-License-File', - 'files': [{ - 'token': 'd9fccda7d1daaec4c1a84d46b48d808e56ee8979c1b62ccc1492b7c27ab7010d' - }] + path: 'NOT-A-License-File', + files: [ + { + token: 'd9fccda7d1daaec4c1a84d46b48d808e56ee8979c1b62ccc1492b7c27ab7010d' + } + ] } const targetDefinition = { - 'path': 'NOT-A-License-File', - 'files': [{ - 'token': 'd9fccda7d1daaec4c1a84d46b48d808e56ee8979c1b62ccc1492b7c27ab7010d' - }] + path: 'NOT-A-License-File', + files: [ + { + token: 'd9fccda7d1daaec4c1a84d46b48d808e56ee8979c1b62ccc1492b7c27ab7010d' + } + ] } const result = definitionLicenseMatchPolicy.compare( @@ -174,21 +188,25 @@ describe('licenseMatcher.js', () => { it('Should return mismatch array when file license hashes.sha1 are different', () => { const sourceDefinition = { - 'files': [{ - 'path': 'license.md', - 'hashes': { - 'sha1': 'dbf8c7e394791d3de9a9fff305d8ee7b59196f26', + files: [ + { + path: 'license.md', + hashes: { + sha1: 'dbf8c7e394791d3de9a9fff305d8ee7b59196f26' + } } - }] + ] } const targetDefinition = { - 'files': [{ - 'path': 'license.md', - 'hashes': { - 'sha1': 'dbf8c7e394791d3de9a9fff305d8ee7b59196f26-Diff', + files: [ + { + path: 'license.md', + hashes: { + sha1: 'dbf8c7e394791d3de9a9fff305d8ee7b59196f26-Diff' + } } - }] + ] } const result = definitionLicenseMatchPolicy.compare( @@ -208,24 +226,29 @@ describe('licenseMatcher.js', () => { it('Should return match array when all license file matched', () => { const coordinates = { type: 'maven' } const sourceDefinition = { - 'files': [{ - 'path': 'meta-inf/LICENSE', - 'token': 'd9fccda7d1daaec4c1a84d46b48d808e56ee8979c1b62ccc1492b7c27ab7010d' - }, - { - 'path': 'LICENSE', - 'token': 'd9fccda7d1daaec4c1a84d46b48d808e56ee8979c1b62ccc1492b7c27ab7010d' - }] + files: [ + { + path: 'meta-inf/LICENSE', + token: 'd9fccda7d1daaec4c1a84d46b48d808e56ee8979c1b62ccc1492b7c27ab7010d' + }, + { + path: 'LICENSE', + token: 'd9fccda7d1daaec4c1a84d46b48d808e56ee8979c1b62ccc1492b7c27ab7010d' + } + ] } const targetDefinition = { - 'files': [{ - 'path': 'LICENSE', - 'token': 'd9fccda7d1daaec4c1a84d46b48d808e56ee8979c1b62ccc1492b7c27ab7010d' - }, { - 'path': 'meta-inf/LICENSE', - 'token': 'd9fccda7d1daaec4c1a84d46b48d808e56ee8979c1b62ccc1492b7c27ab7010d' - }] + files: [ + { + path: 'LICENSE', + token: 'd9fccda7d1daaec4c1a84d46b48d808e56ee8979c1b62ccc1492b7c27ab7010d' + }, + { + path: 'meta-inf/LICENSE', + token: 'd9fccda7d1daaec4c1a84d46b48d808e56ee8979c1b62ccc1492b7c27ab7010d' + } + ] } const result = definitionLicenseMatchPolicy.compare( @@ -233,17 +256,22 @@ describe('licenseMatcher.js', () => { { definition: { ...targetDefinition, coordinates } } ) - expect(result.match).to.have.lengthOf(2).and.have.deep.members([{ - policy: definitionLicenseMatchPolicy.name, - file: 'meta-inf/LICENSE', - propPath: 'token', - value: 'd9fccda7d1daaec4c1a84d46b48d808e56ee8979c1b62ccc1492b7c27ab7010d', - }, { - policy: definitionLicenseMatchPolicy.name, - file: 'LICENSE', - propPath: 'token', - value: 'd9fccda7d1daaec4c1a84d46b48d808e56ee8979c1b62ccc1492b7c27ab7010d' - }]) + expect(result.match) + .to.have.lengthOf(2) + .and.have.deep.members([ + { + policy: definitionLicenseMatchPolicy.name, + file: 'meta-inf/LICENSE', + propPath: 'token', + value: 'd9fccda7d1daaec4c1a84d46b48d808e56ee8979c1b62ccc1492b7c27ab7010d' + }, + { + policy: definitionLicenseMatchPolicy.name, + file: 'LICENSE', + propPath: 'token', + value: 'd9fccda7d1daaec4c1a84d46b48d808e56ee8979c1b62ccc1492b7c27ab7010d' + } + ]) expect(result.mismatch).to.have.lengthOf(0) }) }) @@ -255,14 +283,10 @@ describe('licenseMatcher.js', () => { describe('Match maven package', () => { const sourceLicenses = [ { - 'license': [ + license: [ { - 'name': [ - 'The Apache License, Version 2.0' - ], - 'url': [ - 'http://www.apache.org/licenses/LICENSE-2.0.txt' - ] + name: ['The Apache License, Version 2.0'], + url: ['http://www.apache.org/licenses/LICENSE-2.0.txt'] } ] } @@ -270,14 +294,16 @@ describe('licenseMatcher.js', () => { function generateMavenDefinitionAndHarvest(revision, licenses) { return { definition: { - coordinates: EntityCoordinates.fromString(`maven/mavencentral/io.opentelemetry/opentelemetry-sdk-common/${revision}`) + coordinates: EntityCoordinates.fromString( + `maven/mavencentral/io.opentelemetry/opentelemetry-sdk-common/${revision}` + ) }, harvest: { - 'clearlydefined': { + clearlydefined: { '1.5.0': { - 'manifest': { - 'summary': { - 'licenses': licenses + manifest: { + summary: { + licenses: licenses } } }, @@ -302,14 +328,10 @@ describe('licenseMatcher.js', () => { it('Should return mismatch array includes harvest manifest.summary.licenses when they are NOT deep equal', () => { const targetLicenses = [ { - 'license': [ + license: [ { - 'name': [ - 'MIT' - ], - 'url': [ - 'https://opensource.org/licenses/MIT' - ] + name: ['MIT'], + url: ['https://opensource.org/licenses/MIT'] } ] } @@ -344,10 +366,10 @@ describe('licenseMatcher.js', () => { coordinates: EntityCoordinates.fromString(`crate/cratesio/-/libc/${revision}`) }, harvest: { - 'clearlydefined': { + clearlydefined: { '1.2.0': { - 'registryData': { - 'license': license + registryData: { + license: license } } } @@ -401,11 +423,11 @@ describe('licenseMatcher.js', () => { coordinates: EntityCoordinates.fromString(`nuget/nuget/-/Microsoft.Identity.Web.MicrosoftGraph/${revision}`) }, harvest: { - 'clearlydefined': { + clearlydefined: { '1.4.2': { - 'manifest': { - 'licenseUrl': licenseUrl, - 'licenseExpression': license + manifest: { + licenseUrl: licenseUrl, + licenseExpression: license } } } @@ -417,15 +439,20 @@ describe('licenseMatcher.js', () => { const source = generateNugetDefinitionAndHarvest('1.4.0', sourceLicense, sourceLicenseUrl) const target = generateNugetDefinitionAndHarvest('1.4.6', sourceLicense, sourceLicenseUrl) const result = harvestLicenseMatchPolicy.compare(source, target) - expect(result.match).to.have.lengthOf(2).and.have.deep.members([{ - policy: 'harvest', - propPath: 'manifest.licenseExpression', - value: sourceLicense - }, { - policy: 'harvest', - propPath: 'manifest.licenseUrl', - value: sourceLicenseUrl - }]) + expect(result.match) + .to.have.lengthOf(2) + .and.have.deep.members([ + { + policy: 'harvest', + propPath: 'manifest.licenseExpression', + value: sourceLicense + }, + { + policy: 'harvest', + propPath: 'manifest.licenseUrl', + value: sourceLicenseUrl + } + ]) expect(result.mismatch).to.have.lengthOf(0) }) @@ -434,12 +461,16 @@ describe('licenseMatcher.js', () => { const source = generateNugetDefinitionAndHarvest('1.4.0', sourceLicense) const target = generateNugetDefinitionAndHarvest('1.4.6', targetLicense) const result = harvestLicenseMatchPolicy.compare(source, target) - expect(result.mismatch).to.have.lengthOf(1).and.have.deep.members([{ - policy: 'harvest', - propPath: 'manifest.licenseExpression', - source: sourceLicense, - target: targetLicense - }]) + expect(result.mismatch) + .to.have.lengthOf(1) + .and.have.deep.members([ + { + policy: 'harvest', + propPath: 'manifest.licenseExpression', + source: sourceLicense, + target: targetLicense + } + ]) }) it('Should return mismatch array includes harvest manifest.licenseUrl when they are NOT deep equal', () => { @@ -447,12 +478,16 @@ describe('licenseMatcher.js', () => { const source = generateNugetDefinitionAndHarvest('1.4.0', undefined, sourceLicenseUrl) const target = generateNugetDefinitionAndHarvest('1.4.6', undefined, targetLicenseUrl) const result = harvestLicenseMatchPolicy.compare(source, target) - expect(result.mismatch).to.have.lengthOf(1).and.have.deep.members([{ - policy: 'harvest', - propPath: 'manifest.licenseUrl', - source: sourceLicenseUrl, - target: targetLicenseUrl - }]) + expect(result.mismatch) + .to.have.lengthOf(1) + .and.have.deep.members([ + { + policy: 'harvest', + propPath: 'manifest.licenseUrl', + source: sourceLicenseUrl, + target: targetLicenseUrl + } + ]) }) it('Should return empty match and mismatch array when harvest manifest.licenseExpression and manifest.licenseUrl are both undefined/null', () => { @@ -490,11 +525,11 @@ describe('licenseMatcher.js', () => { coordinates: EntityCoordinates.fromString(`npm/npmjs/-/mongoose/${revision}`) }, harvest: { - 'clearlydefined': { + clearlydefined: { '1.1.2': { - 'registryData': { - 'manifest': { - 'license': license + registryData: { + manifest: { + license: license } } } @@ -539,20 +574,18 @@ describe('licenseMatcher.js', () => { }) describe('Match composer package', () => { - const sourceLicenses = [ - 'GPL-2.0+' - ] + const sourceLicenses = ['GPL-2.0+'] function generateComposerDefinitionAndHarvest(revision, licenses) { return { definition: { coordinates: EntityCoordinates.fromString(`composer/packagist/codeinwp/themeisle-sdk/$${revision}`) }, harvest: { - 'clearlydefined': { + clearlydefined: { '1.2.0': { - 'registryData': { - 'manifest': { - 'license': licenses + registryData: { + manifest: { + license: licenses } } } @@ -574,9 +607,7 @@ describe('licenseMatcher.js', () => { }) it('Should return mismatch array includes harvest registryData.manifest.license when they are NOT deep equal', () => { - const targetLicenses = [ - 'GPL-2.0' - ] + const targetLicenses = ['GPL-2.0'] const source = generateComposerDefinitionAndHarvest('3.2.9', sourceLicenses) const target = generateComposerDefinitionAndHarvest('3.1.9', targetLicenses) const result = harvestLicenseMatchPolicy.compare(source, target) @@ -599,19 +630,17 @@ describe('licenseMatcher.js', () => { }) describe('Match gem package', () => { - const sourceLicenses = [ - 'Ruby' - ] + const sourceLicenses = ['Ruby'] function generateGemDefinitionAndHarvest(revision, licenses) { return { definition: { coordinates: EntityCoordinates.fromString(`gem/rubygems/-/reline/${revision}`) }, harvest: { - 'clearlydefined': { + clearlydefined: { '1.3.3': { - 'registryData': { - 'licenses': licenses + registryData: { + licenses: licenses } } } @@ -632,9 +661,7 @@ describe('licenseMatcher.js', () => { }) it('Should return mismatch array includes harvest registryData.licenses when they are NOT deep equal', () => { - const targetLicenses = [ - 'Ruby License' - ] + const targetLicenses = ['Ruby License'] const source = generateGemDefinitionAndHarvest('0.2.1', sourceLicenses) const target = generateGemDefinitionAndHarvest('0.1.1', targetLicenses) const result = harvestLicenseMatchPolicy.compare(source, target) @@ -665,14 +692,14 @@ describe('licenseMatcher.js', () => { coordinates: EntityCoordinates.fromString(`pypi/pypi/-/distributed/${revision}`) }, harvest: { - 'clearlydefined': { + clearlydefined: { '1.3.1': { - 'registryData': { - 'info': { - 'license': licenseInfo + registryData: { + info: { + license: licenseInfo } }, - 'declaredLicense': declaredLicense + declaredLicense: declaredLicense } } } @@ -683,15 +710,20 @@ describe('licenseMatcher.js', () => { const source = generatePypiDefinitionAndHarvest('2021.1.0', sourceLicenseInfo, sourceDeclaredLicense) const target = generatePypiDefinitionAndHarvest('1.25.3', sourceLicenseInfo, sourceDeclaredLicense) const result = harvestLicenseMatchPolicy.compare(source, target) - expect(result.match).to.have.lengthOf(2).and.have.deep.members([{ - policy: 'harvest', - propPath: 'registryData.info.license', - value: sourceLicenseInfo - }, { - policy: 'harvest', - propPath: 'declaredLicense', - value: sourceDeclaredLicense - }]) + expect(result.match) + .to.have.lengthOf(2) + .and.have.deep.members([ + { + policy: 'harvest', + propPath: 'registryData.info.license', + value: sourceLicenseInfo + }, + { + policy: 'harvest', + propPath: 'declaredLicense', + value: sourceDeclaredLicense + } + ]) expect(result.mismatch).to.have.lengthOf(0) }) @@ -700,12 +732,16 @@ describe('licenseMatcher.js', () => { const source = generatePypiDefinitionAndHarvest('2021.1.0', undefined, sourceDeclaredLicense) const target = generatePypiDefinitionAndHarvest('1.25.3', undefined, targetDeclaredLicense) const result = harvestLicenseMatchPolicy.compare(source, target) - expect(result.mismatch).to.have.lengthOf(1).and.have.deep.members([{ - policy: 'harvest', - propPath: 'declaredLicense', - source: sourceDeclaredLicense, - target: targetDeclaredLicense - }]) + expect(result.mismatch) + .to.have.lengthOf(1) + .and.have.deep.members([ + { + policy: 'harvest', + propPath: 'declaredLicense', + source: sourceDeclaredLicense, + target: targetDeclaredLicense + } + ]) }) it('Should return mismatch array includes harvest registryData.info.license when they are NOT deep equal', () => { @@ -713,12 +749,16 @@ describe('licenseMatcher.js', () => { const source = generatePypiDefinitionAndHarvest('2021.1.0', sourceLicenseInfo) const target = generatePypiDefinitionAndHarvest('1.25.3', targetLicenseInfo) const result = harvestLicenseMatchPolicy.compare(source, target) - expect(result.mismatch).to.have.lengthOf(1).and.have.deep.members([{ - policy: 'harvest', - propPath: 'registryData.info.license', - source: sourceLicenseInfo, - target: targetLicenseInfo - }]) + expect(result.mismatch) + .to.have.lengthOf(1) + .and.have.deep.members([ + { + policy: 'harvest', + propPath: 'registryData.info.license', + source: sourceLicenseInfo, + target: targetLicenseInfo + } + ]) }) it('Should return empty match and mismatch array when harvest declaredLicense and registryData.info.license are both undefined/null', () => { @@ -731,23 +771,16 @@ describe('licenseMatcher.js', () => { }) describe('Match deb package', () => { - const sourceLicenses = [ - 'AGPL-3', - 'MIT', - 'BSD-3-clause', - '(GPL-3 OR AGPL-3)', - 'PSF-2', - 'GPL-3' - ] + const sourceLicenses = ['AGPL-3', 'MIT', 'BSD-3-clause', '(GPL-3 OR AGPL-3)', 'PSF-2', 'GPL-3'] function generateDebDefinitionAndHarvest(revision, licenses) { return { definition: { coordinates: EntityCoordinates.fromString(`deb/debian/-/kopano-contacts/${revision}`) }, harvest: { - 'clearlydefined': { + clearlydefined: { '1.2.1': { - 'declaredLicenses': licenses + declaredLicenses: licenses } } } @@ -767,13 +800,7 @@ describe('licenseMatcher.js', () => { }) it('Should return mismatch array includes harvest declaredLicense when they are NOT deep equal', () => { - const targetLicenses = [ - 'MIT', - 'BSD-3-clause', - '(GPL-3 OR AGPL-3)', - 'PSF-2', - 'GPL-3' - ] + const targetLicenses = ['MIT', 'BSD-3-clause', '(GPL-3 OR AGPL-3)', 'PSF-2', 'GPL-3'] const source = generateDebDefinitionAndHarvest('8.7.0-4_s390x', sourceLicenses) const target = generateDebDefinitionAndHarvest('8.7.0-3_amd64', targetLicenses) const result = harvestLicenseMatchPolicy.compare(source, target) @@ -796,22 +823,16 @@ describe('licenseMatcher.js', () => { }) describe('Match debsrc package', () => { - const sourceLicenses = [ - 'GPL-3.0+', - 'MIT', - 'GPL-2.0+', - 'AGPL-3.0', - 'BSD-3-clause' - ] + const sourceLicenses = ['GPL-3.0+', 'MIT', 'GPL-2.0+', 'AGPL-3.0', 'BSD-3-clause'] function generateDebDefinitionAndHarvest(revision, licenses) { return { definition: { coordinates: EntityCoordinates.fromString(`debsrc/debian/-/lava/${revision}`) }, harvest: { - 'clearlydefined': { + clearlydefined: { '1.3.1': { - 'declaredLicenses': licenses + declaredLicenses: licenses } } } @@ -831,12 +852,7 @@ describe('licenseMatcher.js', () => { }) it('Should return mismatch array includes harvest declaredLicense when they are NOT deep equal', () => { - const targetLicenses = [ - 'MIT', - 'GPL-2.0+', - 'AGPL-3.0', - 'BSD-3-clause' - ] + const targetLicenses = ['MIT', 'GPL-2.0+', 'AGPL-3.0', 'BSD-3-clause'] const source = generateDebDefinitionAndHarvest('2019.10-1', sourceLicenses) const target = generateDebDefinitionAndHarvest('2019.10-2', targetLicenses) const result = harvestLicenseMatchPolicy.compare(source, target) @@ -858,4 +874,4 @@ describe('licenseMatcher.js', () => { }) }) }) -}) \ No newline at end of file +}) diff --git a/test/lib/spdx.js b/test/lib/spdx.js index ee6038102..8b54d8f48 100644 --- a/test/lib/spdx.js +++ b/test/lib/spdx.js @@ -176,8 +176,20 @@ describe('SPDX utility functions', () => { ['MIT', [['MIT']]], ['MIT AND GPL-3.0', [['GPL-3.0', 'MIT']]], ['MIT OR GPL-3.0', [['MIT'], ['GPL-3.0']]], - ['MIT AND (GPL-3.0 OR BSD-3-Clause)', [['GPL-3.0', 'MIT'], ['BSD-3-Clause', 'MIT']]], - ['(MIT OR GPL-3.0) AND ISC', [['ISC', 'MIT'], ['GPL-3.0', 'ISC']]] + [ + 'MIT AND (GPL-3.0 OR BSD-3-Clause)', + [ + ['GPL-3.0', 'MIT'], + ['BSD-3-Clause', 'MIT'] + ] + ], + [ + '(MIT OR GPL-3.0) AND ISC', + [ + ['ISC', 'MIT'], + ['GPL-3.0', 'ISC'] + ] + ] ] data.forEach(input => { const results = SPDX.expand(input[0]) diff --git a/test/lib/util.js b/test/lib/util.js index 011b4c598..808b05784 100644 --- a/test/lib/util.js +++ b/test/lib/util.js @@ -10,7 +10,7 @@ const EntityCoordinates = require('../../lib/entityCoordinates') describe('Utils latest version', () => { it('should get the latest version', () => { const inputs = { - '1': ['1'], // https://github.com/clearlydefined/crawler/issues/124 + 1: ['1'], // https://github.com/clearlydefined/crawler/issues/124 '1.1.0': ['1', '1.0.1', '1.1.0'], // special handling for version = '1' '1.2.0': ['1', '1.2.0'], '2.0.0': ['2.0.0'], @@ -165,7 +165,10 @@ describe('Utils mergeDefinitions', () => { it('does not mess with existing entries', () => { const base = { described: { releaseDate: '2018-6-3' }, - files: [{ path: '1.txt', license: 'MIT' }, { path: '2.txt', license: 'GPL' }] + files: [ + { path: '1.txt', license: 'MIT' }, + { path: '2.txt', license: 'GPL' } + ] } const newDefinition = { described: { issueTracker: 'http://bugs' }, files: [{ path: '1.txt', token: '13' }] } utils.mergeDefinitions(base, newDefinition) @@ -269,8 +272,16 @@ describe('Copyright simplification', () => { describe('Utils isLicenseFile', () => { it('should detect root level license files', () => { const inputs = [ - 'LICENSE', 'license', 'License.txt', 'LICENSE.md', 'LICENSE.HTML', - 'COPYING', 'copying', 'copying.txt', 'COPYING.md', 'copying.html' + 'LICENSE', + 'license', + 'License.txt', + 'LICENSE.md', + 'LICENSE.HTML', + 'COPYING', + 'copying', + 'copying.txt', + 'COPYING.md', + 'copying.html' ] for (const input of inputs) { @@ -279,10 +290,7 @@ describe('Utils isLicenseFile', () => { }) it('should not detect nested license files without coordinates', () => { - const inputs = [ - 'package/LICENSE', 'licenses/license', - 'package/COPYING', 'licenses/copying' - ] + const inputs = ['package/LICENSE', 'licenses/license', 'package/COPYING', 'licenses/copying'] for (const input of inputs) { expect(utils.isLicenseFile(input), `input: ${input}`).to.be.false @@ -376,7 +384,7 @@ describe('Utils isLicenseFile', () => { 'package/copying', 'package/Copying.txt', 'package/COPYING.md', - 'package/COPYING.HTML', + 'package/COPYING.HTML' ] const coordinate = EntityCoordinates.fromString('nuget/nuget/-/redis/3.1') for (const input of inputs) { @@ -482,7 +490,7 @@ describe('Utils compareDates', () => { }) it('reverse sort non null dates', () => { - const sorted = ['2010-01-01', '1990-01-01', '2000-01-01'].sort((x, y) => (-utils.compareDates(x, y))) + const sorted = ['2010-01-01', '1990-01-01', '2000-01-01'].sort((x, y) => -utils.compareDates(x, y)) expect(sorted).to.deep.eq(['2010-01-01', '2000-01-01', '1990-01-01']) }) @@ -492,7 +500,7 @@ describe('Utils compareDates', () => { }) it('reverse sort null and non null: null last', () => { - const sorted = [null, '1990-01-01', null].sort((x, y) => (-utils.compareDates(x, y))) + const sorted = [null, '1990-01-01', null].sort((x, y) => -utils.compareDates(x, y)) expect(sorted).to.deep.eq(['1990-01-01', null, null]) }) }) @@ -509,7 +517,7 @@ describe('Utils toEntityCoordinatesFromRequest', () => { } before(function () { - sinon.replace(utils, 'toNormalizedEntityCoordinates', (entry) => Promise.resolve(entry)) + sinon.replace(utils, 'toNormalizedEntityCoordinates', entry => Promise.resolve(entry)) }) after(function () { @@ -570,7 +578,7 @@ describe('Utils parseNamespaceNameRevision', () => { revision: 'foo', extra1: 'bar', extra2: 'bah', - extra3: 'v3.1.0', + extra3: 'v3.1.0' } } @@ -592,7 +600,7 @@ describe('Utils getLicenseLocations', () => { } before(function () { - sinon.replace(utils, 'toNormalizedEntityCoordinates', (entry) => Promise.resolve(entry)) + sinon.replace(utils, 'toNormalizedEntityCoordinates', entry => Promise.resolve(entry)) }) after(function () { @@ -700,7 +708,9 @@ describe('Utils buildSourceUrl', () => { const coordinates = utils.toEntityCoordinatesFromArgs(args) const result = utils.buildSourceUrl(coordinates) - expect(result).to.eq('https://search.maven.org/remotecontent?filepath=clearlydefined/service/1.2.3/service-1.2.3-sources.jar') + expect(result).to.eq( + 'https://search.maven.org/remotecontent?filepath=clearlydefined/service/1.2.3/service-1.2.3-sources.jar' + ) }) it('returns the correct mavencentral source url with dots in the namespace', () => { @@ -715,8 +725,9 @@ describe('Utils buildSourceUrl', () => { const coordinates = utils.toEntityCoordinatesFromArgs(args) const result = utils.buildSourceUrl(coordinates) - expect(result).to.eq('https://search.maven.org/remotecontent?filepath=clearlydefined/foo/service/1.2.3/service-1.2.3-sources.jar') - + expect(result).to.eq( + 'https://search.maven.org/remotecontent?filepath=clearlydefined/foo/service/1.2.3/service-1.2.3-sources.jar' + ) }) it('returns the correct mavengoogle source url', () => { @@ -781,4 +792,4 @@ describe('Utils buildSourceUrl', () => { expect(result).to.eq('https://pypi.org/project/zuul/3.3.0/') }) -}) \ No newline at end of file +}) diff --git a/test/providers/caching/redis.js b/test/providers/caching/redis.js index 7ff44b65c..ab23c1e63 100644 --- a/test/providers/caching/redis.js +++ b/test/providers/caching/redis.js @@ -9,7 +9,7 @@ const redisCache = require('../../../providers/caching/redis') describe('get a tool result', () => { const store = {} - beforeEach(function() { + beforeEach(function () { sandbox.stub(redis, 'createClient').callsFake(() => { return { get: (key, callback) => callback(null, store[key]), @@ -25,7 +25,7 @@ describe('get a tool result', () => { }) }) - afterEach(function() { + afterEach(function () { sandbox.restore() }) diff --git a/test/providers/curation/github.js b/test/providers/curation/github.js index 113a60d91..8defc11b3 100644 --- a/test/providers/curation/github.js +++ b/test/providers/curation/github.js @@ -55,8 +55,9 @@ describe('Github Curation Service', () => { }) const curations = await service.getContributedCurations(42, 'testBranch') - service.logger = { // intercept and verify invalid contribution - error: (description) => { + service.logger = { + // intercept and verify invalid contribution + error: description => { expect(description).to.be.eq('Invalid curations: curations/sdfdsf/npmjs/test.yaml') } } @@ -65,7 +66,9 @@ describe('Github Curation Service', () => { expect(service._postCommitStatus.getCall(0).args[2]).to.be.eq('pending') expect(service._postCommitStatus.getCall(1).args[2]).to.be.eq('error') expect(service._postErrorsComment.calledOnce).to.be.true - expect(service._postErrorsComment.getCall(0).args[1]).to.be.eq('We discovered some errors in this curation when validating it:\n\nThis is an error\n') + expect(service._postErrorsComment.getCall(0).args[1]).to.be.eq( + 'We discovered some errors in this curation when validating it:\n\nThis is an error\n' + ) }) it('merges simple changes', async () => { @@ -259,7 +262,9 @@ describe('Github Curation Service', () => { const { service, harvestStore } = setup() sinon .stub(service, 'listAll') - .callsFake(() => [EntityCoordinates.fromObject({ type: 'npm', provider: 'npmjs', name: 'test', revision: '1.0' })]) + .callsFake(() => [ + EntityCoordinates.fromObject({ type: 'npm', provider: 'npmjs', name: 'test', revision: '1.0' }) + ]) sinon.stub(service, 'list').callsFake(() => [ 'npm/npmjs/-/test/1.0', // curated revision 'npm/npmjs/-/test/1.1', // license match on file @@ -282,12 +287,17 @@ describe('Github Curation Service', () => { const expectedResults = [ { version: '1.1', matchingProperties: [{ file: 'LICENSE.txt' }] }, { - version: '1.2', matchingProperties: [{ - propPath: 'registryData.manifest.license', - value: ['LICENSE METADATA'] - }] - }] - const expectedDescription = '- 1.1\n- 1.2\n\nMatching license file(s): LICENSE.txt\nMatching metadata: registryData.manifest.license: ["LICENSE METADATA"]' + version: '1.2', + matchingProperties: [ + { + propPath: 'registryData.manifest.license', + value: ['LICENSE METADATA'] + } + ] + } + ] + const expectedDescription = + '- 1.1\n- 1.2\n\nMatching license file(s): LICENSE.txt\nMatching metadata: registryData.manifest.license: ["LICENSE METADATA"]' const description = gitHubService._formatMultiversionCuratedRevisions(expectedResults) expect(description).to.be.deep.equal(expectedDescription) @@ -302,14 +312,14 @@ describe('Github Curation Service', () => { '(http://localhost:3000/curations/143)' ) - assert(startMatchingSpy.calledWith( - EntityCoordinates.fromObject(definitionCoordinates), - [ + assert( + startMatchingSpy.calledWith(EntityCoordinates.fromObject(definitionCoordinates), [ EntityCoordinates.fromString('npm/npmjs/-/test/1.1'), EntityCoordinates.fromString('npm/npmjs/-/test/1.2'), EntityCoordinates.fromString('npm/npmjs/-/test/1.3'), - EntityCoordinates.fromString('npm/npmjs/-/test/1.4'), - ])) + EntityCoordinates.fromString('npm/npmjs/-/test/1.4') + ]) + ) assert(calculateMatchingRevisionAndReasonSpy.calledWith(curatedCoordinates)) assert(formatRevisionsSpy.calledWith(expectedResults)) }) @@ -341,7 +351,7 @@ describe('Github Curation Service', () => { gitHubService = createService(service, licenseMatcher, harvestStore, {}, store) // TODO: Should not stub private functions and private properties sinon.stub(gitHubService, 'github').value({ - users: { get: sinon.stub() }, + users: { get: sinon.stub() } }) sinon.stub(gitHubService, '_addOrUpdate').resolves({ data: { number: 1 } @@ -389,10 +399,7 @@ describe('Github Curation Service', () => { beforeEach(() => { const definitionService = { - list: sinon.stub().resolves([ - 'npm/npmjs/-/express/5.0.0', - 'npm/npmjs/-/express/4.0.0' - ]), + list: sinon.stub().resolves(['npm/npmjs/-/express/5.0.0', 'npm/npmjs/-/express/4.0.0']), getStored: sinon.stub().resolves({ coordinates: EntityCoordinates.fromString('npm/npmjs/-/express/5.0.0') }) @@ -431,30 +438,40 @@ describe('Github Curation Service', () => { } matcherResult = { isMatching: true, - match: [{ - file: 'LICENSE.txt' - }, { - propPath: 'registryData.manifest.license', - value: 'LICENSE METADATA' - }] + match: [ + { + file: 'LICENSE.txt' + }, + { + propPath: 'registryData.manifest.license', + value: 'LICENSE METADATA' + } + ] } const coordinatesList = [EntityCoordinates.fromString('npm/npmjs/-/express')] const result = await gitHubService.reprocessMergedCurations(coordinatesList) expect(result).to.have.lengthOf(1) - expect(result).to.be.deep.includes.members([{ - coordinates: 'npm/npmjs/-/express', - contributions: [{ - coordinates: 'npm/npmjs/-/express/5.0.0', - contribution: 'www.curation.pr.com' - }] - }]) + expect(result).to.be.deep.includes.members([ + { + coordinates: 'npm/npmjs/-/express', + contributions: [ + { + coordinates: 'npm/npmjs/-/express/5.0.0', + contribution: 'www.curation.pr.com' + } + ] + } + ]) }) }) describe('verify _getBranchName', () => { before(function () { - sinon.replace(DateTime, 'now', sinon.stub().callsFake() - .returns(DateTime.fromFormat('211203_140949.712', 'yyMMdd_HHmmss.SSS'))) + sinon.replace( + DateTime, + 'now', + sinon.stub().callsFake().returns(DateTime.fromFormat('211203_140949.712', 'yyMMdd_HHmmss.SSS')) + ) }) after(function () { @@ -494,15 +511,24 @@ const complexCuration = { '1.0': { described: { releaseDate: '2018-10-19', projectWebsite: 'http://foo.com' }, licensed: { declared: 'Apache-2.0' }, - files: [{ path: '1.txt', license: 'MIT' }, { path: '2.txt', license: 'GPL' }] + files: [ + { path: '1.txt', license: 'MIT' }, + { path: '2.txt', license: 'GPL' } + ] } } } -function createService(definitionService = null, licenseMatcher = null, harvestStore = null, endpoints = { website: 'http://localhost:3000' }, store = CurationStore({})) { +function createService( + definitionService = null, + licenseMatcher = null, + harvestStore = null, + endpoints = { website: 'http://localhost:3000' }, + store = CurationStore({}) +) { const mockCache = { get: sinon.stub().resolves(undefined), - set: sinon.stub(), + set: sinon.stub() } require('../../../providers/logging/logger')({ error: sinon.stub(), @@ -555,7 +581,10 @@ const simpleHarvested = { const complexHarvested = { coordinates: definitionCoordinates, described: { releaseDate: '2018-08-09' }, - files: [{ path: '2.txt', token: '2 token' }, { path: '1.txt', token: '1 token' }] + files: [ + { path: '2.txt', token: '2 token' }, + { path: '1.txt', token: '1 token' } + ] } const complexHarvestedWithLicenses = { diff --git a/test/providers/curation/githubPRs.js b/test/providers/curation/githubPRs.js index abc549fed..d331374cc 100644 --- a/test/providers/curation/githubPRs.js +++ b/test/providers/curation/githubPRs.js @@ -21,7 +21,10 @@ function complexCuration(name = 'foo') { revisions: { '1.0': { described: { releaseDate: '2018-10-19', projectWebsite: `http://${name}.com` }, - files: [{ path: `${name}.1.txt`, license: 'MIT' }, { path: `${name}.2.txt`, license: 'GPL' }] + files: [ + { path: `${name}.1.txt`, license: 'MIT' }, + { path: `${name}.2.txt`, license: 'GPL' } + ] } } } @@ -71,8 +74,10 @@ describe('Curation service pr events', () => { expect(data).to.be.deep.equalInAnyOrder([complexCuration()]) const cacheDeleteSpy = service.cache.delete expect(cacheDeleteSpy.calledTwice).to.be.true - expect([cacheDeleteSpy.args[0][0], cacheDeleteSpy.args[1][0]]) - .to.equalInAnyOrder(['cur_npm/npmjs/-/foo/1.0', 'cur_npm/npmjs/-/foo']) + expect([cacheDeleteSpy.args[0][0], cacheDeleteSpy.args[1][0]]).to.equalInAnyOrder([ + 'cur_npm/npmjs/-/foo/1.0', + 'cur_npm/npmjs/-/foo' + ]) }).timeout(8000) // First time loading proxyquire('../../../providers/curation/github') is very slow. it('handles update', async () => { @@ -85,8 +90,10 @@ describe('Curation service pr events', () => { expect(data).to.be.deep.equalInAnyOrder([complexCuration()]) const cacheDeleteSpy = service.cache.delete expect(cacheDeleteSpy.calledTwice).to.be.true - expect([cacheDeleteSpy.args[0][0], cacheDeleteSpy.args[1][0]]) - .to.equalInAnyOrder(['cur_npm/npmjs/-/foo/1.0', 'cur_npm/npmjs/-/foo']) + expect([cacheDeleteSpy.args[0][0], cacheDeleteSpy.args[1][0]]).to.equalInAnyOrder([ + 'cur_npm/npmjs/-/foo/1.0', + 'cur_npm/npmjs/-/foo' + ]) }) it('handles merge', async () => { @@ -110,8 +117,10 @@ describe('Curation service pr events', () => { const cacheDeleteSpy = service.cache.delete expect(cacheDeleteSpy.calledTwice).to.be.true - expect([cacheDeleteSpy.args[0][0], cacheDeleteSpy.args[1][0]]) - .to.equalInAnyOrder(['cur_npm/npmjs/-/foo/1.0', 'cur_npm/npmjs/-/foo']) + expect([cacheDeleteSpy.args[0][0], cacheDeleteSpy.args[1][0]]).to.equalInAnyOrder([ + 'cur_npm/npmjs/-/foo/1.0', + 'cur_npm/npmjs/-/foo' + ]) const computeSpy = service.definitionService.computeAndStore expect(computeSpy.calledOnce).to.be.true @@ -126,8 +135,10 @@ describe('Curation service pr events', () => { expect(updateSpy.args[0][0].number).to.be.equal(12) const cacheDeleteSpy = service.cache.delete expect(cacheDeleteSpy.calledTwice).to.be.true - expect([cacheDeleteSpy.args[0][0], cacheDeleteSpy.args[1][0]]) - .to.equalInAnyOrder(['cur_npm/npmjs/-/foo/1.0', 'cur_npm/npmjs/-/foo']) + expect([cacheDeleteSpy.args[0][0], cacheDeleteSpy.args[1][0]]).to.equalInAnyOrder([ + 'cur_npm/npmjs/-/foo/1.0', + 'cur_npm/npmjs/-/foo' + ]) }) it('handles list', async () => { diff --git a/test/providers/harvest/processTest.js b/test/providers/harvest/processTest.js index aa08fe4b0..8c9f1953b 100644 --- a/test/providers/harvest/processTest.js +++ b/test/providers/harvest/processTest.js @@ -29,7 +29,9 @@ describe('Harvest queue processing', () => { it('handles new message from non-clearlydefined tool', async () => { const { queue, definitionService, logger } = setup({ - _metadata: { links: { self: { href: 'urn:pypi:pypi:-:backports.ssl_match_hostname:revision:3.2a3:tool:scancode:3.2.2' } } } + _metadata: { + links: { self: { href: 'urn:pypi:pypi:-:backports.ssl_match_hostname:revision:3.2a3:tool:scancode:3.2.2' } } + } }) await process(queue, definitionService, logger, true) diff --git a/test/providers/search/memoryTest.js b/test/providers/search/memoryTest.js index a2e02caa6..325390108 100644 --- a/test/providers/search/memoryTest.js +++ b/test/providers/search/memoryTest.js @@ -20,7 +20,7 @@ describe('memory search tests', () => { } let memorySearch - before(() =>{ + before(() => { const definitions = Object.values(searches) .map(EntityCoordinates.fromString) .map(coordinates => ({ coordinates })) @@ -35,4 +35,4 @@ describe('memory search tests', () => { expect(result[0]).to.be.equal(value) }) }) -}) \ No newline at end of file +}) diff --git a/test/providers/store/abstractFileStore.js b/test/providers/store/abstractFileStore.js index 577f80c63..3a6987572 100644 --- a/test/providers/store/abstractFileStore.js +++ b/test/providers/store/abstractFileStore.js @@ -16,7 +16,7 @@ describe('AbstractFileStore lists entries ', () => { '/foo/npm/npmjs/-/test/revision/2.0/tool/testtool2/3.0.json': {} } - beforeEach(function() { + beforeEach(function () { const recursiveStub = async path => { path = path.replace(/\\/g, '/') if (path.includes('error')) throw new Error('test error') @@ -39,7 +39,7 @@ describe('AbstractFileStore lists entries ', () => { }) }) - afterEach(function() { + afterEach(function () { sandbox.restore() }) diff --git a/test/providers/store/dispatchDefinitionStore.js b/test/providers/store/dispatchDefinitionStore.js index ba128b2fe..ec98373a3 100644 --- a/test/providers/store/dispatchDefinitionStore.js +++ b/test/providers/store/dispatchDefinitionStore.js @@ -12,7 +12,7 @@ describe('Dispatch Definition store', () => { store1 = createStore() store2 = createStore() logger = { error: sinon.stub() } - dispatchDefinitionStore = DispatchDefinitionStore({ + dispatchDefinitionStore = DispatchDefinitionStore({ stores: [store1, store2], logger }) diff --git a/test/providers/store/mongoDefinition.js b/test/providers/store/mongoDefinition.js index a64ecb161..b37f7ed70 100644 --- a/test/providers/store/mongoDefinition.js +++ b/test/providers/store/mongoDefinition.js @@ -132,16 +132,19 @@ describe('Mongo Definition store', () => { it('builds a mongo query with continuationToken', () => { const store = createStore() const parameters = { namespace: '@owner', name: 'package' } - const sort = {'_mongo.partitionKey': 1} + const sort = { '_mongo.partitionKey': 1 } const continuationToken = 'bnBtL25wbWpzLy0vdmVycm9yLzEuMTAuMA' const expected = { - '$and': [{ - '_mongo.page': 1, - 'coordinates.name': 'package', - 'coordinates.namespace': '@owner' - }, { - '_mongo.partitionKey': { '$gt': 'npm/npmjs/-/verror/1.10.0' } - }] + $and: [ + { + '_mongo.page': 1, + 'coordinates.name': 'package', + 'coordinates.namespace': '@owner' + }, + { + '_mongo.partitionKey': { $gt: 'npm/npmjs/-/verror/1.10.0' } + } + ] } expect(store._buildQueryWithPaging(parameters, continuationToken, sort)).to.deep.equal(expected) @@ -153,11 +156,23 @@ describe('Mongo Definition store', () => { [{}, { '_mongo.partitionKey': 1 }], [{ sort: 'type' }, { 'coordinates.type': 1, '_mongo.partitionKey': 1 }], [{ sort: 'provider' }, { 'coordinates.provider': 1, '_mongo.partitionKey': 1 }], - [{ sort: 'name', sortDesc: true }, { 'coordinates.name': -1, 'coordinates.revision': -1, '_mongo.partitionKey': -1 }], - [{ sort: 'namespace' }, { 'coordinates.namespace': 1, 'coordinates.name': 1, 'coordinates.revision': 1, '_mongo.partitionKey': 1 }], - [{ sort: 'license', sortDesc: true }, { 'licensed.declared': -1, '_mongo.partitionKey': -1 }], + [ + { sort: 'name', sortDesc: true }, + { 'coordinates.name': -1, 'coordinates.revision': -1, '_mongo.partitionKey': -1 } + ], + [ + { sort: 'namespace' }, + { 'coordinates.namespace': 1, 'coordinates.name': 1, 'coordinates.revision': 1, '_mongo.partitionKey': 1 } + ], + [ + { sort: 'license', sortDesc: true }, + { 'licensed.declared': -1, '_mongo.partitionKey': -1 } + ], [{ sort: 'releaseDate' }, { 'described.releaseDate': 1, '_mongo.partitionKey': 1 }], - [{ sort: 'licensedScore', sortDesc: false }, { 'licensed.score.total': 1, '_mongo.partitionKey': 1 }], + [ + { sort: 'licensedScore', sortDesc: false }, + { 'licensed.score.total': 1, '_mongo.partitionKey': 1 } + ], [{ sort: 'describedScore' }, { 'described.score.total': 1, '_mongo.partitionKey': 1 }], [{ sort: 'effectiveScore' }, { 'scores.effective': 1, '_mongo.partitionKey': 1 }], [{ sort: 'toolScore' }, { 'scores.tool': 1, '_mongo.partitionKey': 1 }], @@ -172,14 +187,18 @@ describe('Mongo Definition store', () => { it('gets a continuationToken', () => { const store = createStore() - const sortClause = {'_mongo.partitionKey': 1} - const token = store._getContinuationToken(5, [ - { _mongo: { partitionKey: 'npm/npmjs/-/a/1.0.0' } }, - { _mongo: { partitionKey: 'npm/npmjs/-/b/1.0.0' } }, - { _mongo: { partitionKey: 'npm/npmjs/-/c/1.0.0' } }, - { _mongo: { partitionKey: 'npm/npmjs/-/d/1.0.0' } }, - { _mongo: { partitionKey: 'npm/npmjs/-/e/1.0.0' } } - ], sortClause) + const sortClause = { '_mongo.partitionKey': 1 } + const token = store._getContinuationToken( + 5, + [ + { _mongo: { partitionKey: 'npm/npmjs/-/a/1.0.0' } }, + { _mongo: { partitionKey: 'npm/npmjs/-/b/1.0.0' } }, + { _mongo: { partitionKey: 'npm/npmjs/-/c/1.0.0' } }, + { _mongo: { partitionKey: 'npm/npmjs/-/d/1.0.0' } }, + { _mongo: { partitionKey: 'npm/npmjs/-/e/1.0.0' } } + ], + sortClause + ) expect(token).to.eq('bnBtL25wbWpzLy0vZS8xLjAuMA==') }) @@ -192,16 +211,17 @@ describe('Mongo Definition store', () => { ]) expect(token).to.eq('') }) - + it('should call find with right arguments', async () => { const store = createStore() - store.collection.find = sinon.fake.returns({ toArray: () => Promise.resolve([])}) + store.collection.find = sinon.fake.returns({ toArray: () => Promise.resolve([]) }) await store.find({ type: 'npm' }) - const filter = { 'coordinates.type': 'npm','_mongo.page': 1 } + const filter = { 'coordinates.type': 'npm', '_mongo.page': 1 } const opts = { - 'projection': { '_id': 0, 'files': 0 }, - 'sort': { '_mongo.partitionKey': 1 }, - 'limit': 100 } + projection: { _id: 0, files: 0 }, + sort: { '_mongo.partitionKey': 1 }, + limit: 100 + } const findArgs = store.collection.find.firstCall.args expect(findArgs[0]).to.be.deep.equal(filter) expect(findArgs[1]).to.be.deep.equal(opts) @@ -238,7 +258,7 @@ function createStore(data) { insertMany: sinon.stub(), deleteMany: sinon.stub() } - const opts = { logger: { debug: () => {} }} + const opts = { logger: { debug: () => {} } } const store = Store(opts) store.collection = collectionStub return store diff --git a/test/providers/store/mongoDefinitionPagination.js b/test/providers/store/mongoDefinitionPagination.js index 5b28b1318..a3fb570b7 100644 --- a/test/providers/store/mongoDefinitionPagination.js +++ b/test/providers/store/mongoDefinitionPagination.js @@ -15,13 +15,12 @@ const dbOptions = { } } -const shouldPaginateSearchCorrectly = function() { - - describe('Mongo Definition Store: search pagination', function() { +const shouldPaginateSearchCorrectly = function () { + describe('Mongo Definition Store: search pagination', function () { const mongoServer = new MongoMemoryServer() let mongoStore - - before('setup database', async function() { + + before('setup database', async function () { await mongoServer.start() const uri = await mongoServer.getUri() const options = { @@ -32,16 +31,16 @@ const shouldPaginateSearchCorrectly = function() { mongoStore = await this.createStore(options, defs) }) - after('cleanup database', async function() { + after('cleanup database', async function () { await mongoStore.collection.drop() await mongoStore.close() await mongoServer.stop() }) - it('should fetch records without sort continuously', async function() { + it('should fetch records without sort continuously', async function () { const expected = [ - 'git/github/microsoft/redie/194269b5b7010ad6f8dc4ef608c88128615031ca', - 'maven/mavencentral/com.azure/azure-storage-blob/12.20.0', + 'git/github/microsoft/redie/194269b5b7010ad6f8dc4ef608c88128615031ca', + 'maven/mavencentral/com.azure/azure-storage-blob/12.20.0', 'maven/mavencentral/io.jenetics/jenetics/7.1.1', 'maven/mavencentral/io.quarkiverse.cxf/quarkus-cxf/1.5.4', 'maven/mavencentral/org.apache.httpcomponents/httpcore/4.0-alpha5' @@ -52,8 +51,8 @@ const shouldPaginateSearchCorrectly = function() { const coordinates = verifyUniqueCoordinates(defs) verifyExpectedCoordinates(coordinates, expected) }) - - it('should sort ascending on releaseDate and find 1 page of records', async function() { + + it('should sort ascending on releaseDate and find 1 page of records', async function () { const expected = ['maven/mavencentral/org.apache.httpcomponents/httpcore/4.0-alpha5'] const query = { sort: 'releaseDate', @@ -64,15 +63,16 @@ const shouldPaginateSearchCorrectly = function() { const coordinates = verifyUniqueCoordinates(defs) verifyExpectedCoordinates(coordinates, expected) }) - - it('should sort ascending on releaseDate and handle null and non null values in continuation', async function() { + + it('should sort ascending on releaseDate and handle null and non null values in continuation', async function () { const expected = [ - 'maven/mavencentral/org.apache.httpcomponents/httpcore/4.0-alpha5', - 'maven/mavencentral/org.flywaydb/flyway-maven-plugin/5.0.7', - 'npm/npmjs/@sinclair/typebox/0.24.45', + 'maven/mavencentral/org.apache.httpcomponents/httpcore/4.0-alpha5', + 'maven/mavencentral/org.flywaydb/flyway-maven-plugin/5.0.7', + 'npm/npmjs/@sinclair/typebox/0.24.45', 'maven/mavencentral/org.apache.httpcomponents/httpcore/4.0-beta2', - 'pypi/pypi/-/backports.ssl_match_hostname/3.5.0.1'] - + 'pypi/pypi/-/backports.ssl_match_hostname/3.5.0.1' + ] + const query = { sort: 'releaseDate', sortDesc: false @@ -80,13 +80,13 @@ const shouldPaginateSearchCorrectly = function() { const defs = await fetchAll(mongoStore, query) expect(defs[0].described.releaseDate).not.to.be.ok expect(defs[3].described.releaseDate).to.be.ok - + expect(defs.length).to.be.equal(12) const coordinates = verifyUniqueCoordinates(defs) verifyExpectedCoordinates(coordinates, expected) }) - - it('should sort descending on releaseDate and handle null and non null values in continuation', async function() { + + it('should sort descending on releaseDate and handle null and non null values in continuation', async function () { const query = { sort: 'releaseDate', sortDesc: true @@ -95,15 +95,16 @@ const shouldPaginateSearchCorrectly = function() { expect(defs.length).to.be.equal(12) verifyUniqueCoordinates(defs) }) - - it('should sort ascending on license and handle null and non null values in continuation ', async function() { + + it('should sort ascending on license and handle null and non null values in continuation ', async function () { const expected = [ - 'npm/npmjs/@sinclair/typebox/0.24.45', - 'maven/mavencentral/io.jenetics/jenetics/7.1.1', - 'maven/mavencentral/io.quarkiverse.cxf/quarkus-cxf/1.5.4', - 'maven/mavencentral/org.apache.httpcomponents/httpcore/4.0-alpha5', - 'maven/mavencentral/org.apache.httpcomponents/httpcore/4.0-beta2'] - + 'npm/npmjs/@sinclair/typebox/0.24.45', + 'maven/mavencentral/io.jenetics/jenetics/7.1.1', + 'maven/mavencentral/io.quarkiverse.cxf/quarkus-cxf/1.5.4', + 'maven/mavencentral/org.apache.httpcomponents/httpcore/4.0-alpha5', + 'maven/mavencentral/org.apache.httpcomponents/httpcore/4.0-beta2' + ] + const query = { sort: 'license', sortDesc: false @@ -115,8 +116,8 @@ const shouldPaginateSearchCorrectly = function() { const coordinates = verifyUniqueCoordinates(defs) verifyExpectedCoordinates(coordinates, expected) }) - - it('should sort descending on license and handle null and non null values in continuation ', async function() { + + it('should sort descending on license and handle null and non null values in continuation ', async function () { const query = { sort: 'license', sortDesc: true @@ -125,14 +126,15 @@ const shouldPaginateSearchCorrectly = function() { expect(defs.length).to.be.equal(12) verifyUniqueCoordinates(defs) }) - - it('should filter and sort ascending on multiple keys and handle null and non null namespace in continuation', async function() { + + it('should filter and sort ascending on multiple keys and handle null and non null namespace in continuation', async function () { const expected = [ - 'npm/npmjs/-/angular/1.6.9', - 'npm/npmjs/-/redie/0.3.0', - 'maven/mavencentral/com.azure/azure-storage-blob/12.20.0', - 'git/github/microsoft/redie/194269b5b7010ad6f8dc4ef608c88128615031ca'] - + 'npm/npmjs/-/angular/1.6.9', + 'npm/npmjs/-/redie/0.3.0', + 'maven/mavencentral/com.azure/azure-storage-blob/12.20.0', + 'git/github/microsoft/redie/194269b5b7010ad6f8dc4ef608c88128615031ca' + ] + const query = { license: 'MIT', sort: 'namespace', @@ -145,14 +147,15 @@ const shouldPaginateSearchCorrectly = function() { const coordinates = verifyUniqueCoordinates(defs) verifyExpectedCoordinates(coordinates, expected) }) - - it('should filter and sort descending on multiple keys in continuation', async function() { + + it('should filter and sort descending on multiple keys in continuation', async function () { const expected = [ 'git/github/microsoft/redie/194269b5b7010ad6f8dc4ef608c88128615031ca', - 'maven/mavencentral/com.azure/azure-storage-blob/12.20.0', - 'npm/npmjs/-/redie/0.3.0', - 'npm/npmjs/-/angular/1.6.9'] - + 'maven/mavencentral/com.azure/azure-storage-blob/12.20.0', + 'npm/npmjs/-/redie/0.3.0', + 'npm/npmjs/-/angular/1.6.9' + ] + const query = { license: 'MIT', sort: 'namespace', @@ -163,14 +166,15 @@ const shouldPaginateSearchCorrectly = function() { const coordinates = verifyUniqueCoordinates(defs) verifyExpectedCoordinates(coordinates, expected) }) - - it('should filter and sort on numerical scores and fetch continuously', async function() { + + it('should filter and sort on numerical scores and fetch continuously', async function () { const expected = [ - 'maven/mavencentral/com.azure/azure-storage-blob/12.20.0', - 'npm/npmjs/-/angular/1.6.9', - 'git/github/microsoft/redie/194269b5b7010ad6f8dc4ef608c88128615031ca', - 'npm/npmjs/-/redie/0.3.0'] - + 'maven/mavencentral/com.azure/azure-storage-blob/12.20.0', + 'npm/npmjs/-/angular/1.6.9', + 'git/github/microsoft/redie/194269b5b7010ad6f8dc4ef608c88128615031ca', + 'npm/npmjs/-/redie/0.3.0' + ] + const query = { license: 'MIT', sort: 'toolScore', @@ -185,15 +189,15 @@ const shouldPaginateSearchCorrectly = function() { const coordinates = verifyUniqueCoordinates(defs) verifyExpectedCoordinates(coordinates, expected) }) - - it('should filter and sort descending on numerical scores and fetch continuously', async function() { + + it('should filter and sort descending on numerical scores and fetch continuously', async function () { const expected = [ 'npm/npmjs/-/redie/0.3.0', - 'git/github/microsoft/redie/194269b5b7010ad6f8dc4ef608c88128615031ca', - 'npm/npmjs/-/angular/1.6.9', + 'git/github/microsoft/redie/194269b5b7010ad6f8dc4ef608c88128615031ca', + 'npm/npmjs/-/angular/1.6.9', 'maven/mavencentral/com.azure/azure-storage-blob/12.20.0' ] - + const query = { license: 'MIT', sort: 'toolScore', @@ -204,7 +208,6 @@ const shouldPaginateSearchCorrectly = function() { const coordinates = verifyUniqueCoordinates(defs) verifyExpectedCoordinates(coordinates, expected) }) - }) } @@ -233,7 +236,7 @@ async function fetchAll(mongoStore, query, pageSize) { //Default pageSize set to 1 to verify null value handling async function fetchUpToNTimes(mongoStore, query, nTimes, pageSize = 1) { const allData = [] - const fetchOperation = async (params) => { + const fetchOperation = async params => { const { continuationToken, ...query } = params const result = await mongoStore.find(query, continuationToken, pageSize) allData.push(...result.data) @@ -265,16 +268,18 @@ class ContinousFetch { } async fetchUpToNtimes(params, nTime) { - let dispatchCounter = 0, fetchedCounter = 0 + let dispatchCounter = 0, + fetchedCounter = 0 let retrieved = {} while (dispatchCounter < nTime) { retrieved = await this._delayedFetch({ ...params, - continuationToken: retrieved.continuationToken }) + continuationToken: retrieved.continuationToken + }) fetchedCounter += retrieved.count - dispatchCounter ++ + dispatchCounter++ if (!retrieved.continuationToken) break } @@ -282,4 +287,4 @@ class ContinousFetch { } } -module.exports = shouldPaginateSearchCorrectly \ No newline at end of file +module.exports = shouldPaginateSearchCorrectly diff --git a/test/providers/store/pagedDefinitionPagination.js b/test/providers/store/pagedDefinitionPagination.js index f0c409d79..a446923b3 100644 --- a/test/providers/store/pagedDefinitionPagination.js +++ b/test/providers/store/pagedDefinitionPagination.js @@ -5,12 +5,11 @@ const Store = require('../../../providers/stores/mongo') const shouldPaginateSearchCorrectly = require('./mongoDefinitionPagination') const dbOptions = { - collectionName: 'definitions-paged', + collectionName: 'definitions-paged' } -describe('Mongo Definition Store: Paged', function() { - - before('setup store factory', async function() { +describe('Mongo Definition Store: Paged', function () { + before('setup store factory', async function () { this.createStore = createStore }) diff --git a/test/providers/store/trimmedDefinitionPagination.js b/test/providers/store/trimmedDefinitionPagination.js index 95af5d9cf..9de88d87f 100644 --- a/test/providers/store/trimmedDefinitionPagination.js +++ b/test/providers/store/trimmedDefinitionPagination.js @@ -8,9 +8,8 @@ const dbOptions = { collectionName: 'definitions-trimmed' } -describe('Mongo Definition Store: Trimmed', function() { - - before('setup store factory', async function() { +describe('Mongo Definition Store: Trimmed', function () { + before('setup store factory', async function () { this.createStore = createStore }) diff --git a/test/providers/store/trimmedMongoDefinitionStore.js b/test/providers/store/trimmedMongoDefinitionStore.js index 0bef101b2..700fbd604 100644 --- a/test/providers/store/trimmedMongoDefinitionStore.js +++ b/test/providers/store/trimmedMongoDefinitionStore.js @@ -15,8 +15,8 @@ const dbOptions = { dbName: 'clearlydefined', collectionName: 'definitions-trimmed', logger: { - debug: () => {}, - }, + debug: () => {} + } } describe('Trimmed Mongo Definition store', () => { @@ -28,7 +28,7 @@ describe('Trimmed Mongo Definition store', () => { const uri = await mongoServer.getUri() const options = { ...dbOptions, - connectionString: uri, + connectionString: uri } mongoStore = TrimmedMongoDefinitionStore(options) await mongoStore.initialize() @@ -97,7 +97,7 @@ describe('Trimmed Mongo Definition store', () => { expect(defs.data.length).to.be.eq(0) }) }) - + describe('find', () => { it('should call find with right arguments', async () => { mongoStore.collection.find = sinon.fake.returns({ toArray: () => Promise.resolve([]) }) @@ -107,13 +107,13 @@ describe('Trimmed Mongo Definition store', () => { const opts = { projection: undefined, sort: { _id: 1 }, - limit: 100, + limit: 100 } const findArgs = mongoStore.collection.find.firstCall.args expect(findArgs[0]).to.be.deep.equal(filter) expect(findArgs[1]).to.be.deep.equal(opts) }) - + it('should find one page of records', async () => { const expected = [ 'git/github/microsoft/redie/194269b5b7010ad6f8dc4ef608c88128615031ca', @@ -136,7 +136,7 @@ describe('Trimmed Mongo Definition store', () => { expect(defs1.continuationToken).to.be.ok const defs2 = await mongoStore.find(query, defs1.continuationToken, 7) expect(defs2.continuationToken).to.be.not.ok - const allDefs = [ ...defs1.data, ...defs2.data] + const allDefs = [...defs1.data, ...defs2.data] const coordinates = verifyUniqueCoordinates(allDefs) expect(coordinates.length).to.be.equal(12) }) @@ -171,34 +171,49 @@ describe('Trimmed Mongo Definition store', () => { it('builds a mongo query with continuationToken', () => { const parameters = { namespace: '@owner', name: 'package' } - const sort = {'_id': 1} + const sort = { _id: 1 } const continuationToken = 'bnBtL25wbWpzLy0vdmVycm9yLzEuMTAuMA' const expected = { - '$and': [{ - 'coordinates.name': 'package', - 'coordinates.namespace': '@owner' - }, { - '_id': { '$gt': 'npm/npmjs/-/verror/1.10.0' } - }] + $and: [ + { + 'coordinates.name': 'package', + 'coordinates.namespace': '@owner' + }, + { + _id: { $gt: 'npm/npmjs/-/verror/1.10.0' } + } + ] } - + expect(mongoStore._buildQueryWithPaging(parameters, continuationToken, sort)).to.deep.equal(expected) }) it('builds a mongo sort', () => { const data = new Map([ - [{}, { '_id': 1 }], - [{ sort: 'type' }, { 'coordinates.type': 1, '_id': 1 }], - [{ sort: 'provider' }, { 'coordinates.provider': 1, '_id': 1 }], - [{ sort: 'name', sortDesc: true }, { 'coordinates.name': -1, 'coordinates.revision': -1, '_id': -1 }], - [{ sort: 'namespace' }, { 'coordinates.namespace': 1, 'coordinates.name': 1, 'coordinates.revision': 1, '_id': 1 }], - [{ sort: 'license', sortDesc: true }, { 'licensed.declared': -1, '_id': -1 }], - [{ sort: 'releaseDate' }, { 'described.releaseDate': 1, '_id': 1 }], - [{ sort: 'licensedScore', sortDesc: false }, { 'licensed.score.total': 1, '_id': 1 }], - [{ sort: 'describedScore' }, { 'described.score.total': 1, '_id': 1 }], - [{ sort: 'effectiveScore' }, { 'scores.effective': 1, '_id': 1 }], - [{ sort: 'toolScore' }, { 'scores.tool': 1, '_id': 1 }], - [{ sort: 'revision' }, { 'coordinates.revision': 1, '_id': 1 }] + [{}, { _id: 1 }], + [{ sort: 'type' }, { 'coordinates.type': 1, _id: 1 }], + [{ sort: 'provider' }, { 'coordinates.provider': 1, _id: 1 }], + [ + { sort: 'name', sortDesc: true }, + { 'coordinates.name': -1, 'coordinates.revision': -1, _id: -1 } + ], + [ + { sort: 'namespace' }, + { 'coordinates.namespace': 1, 'coordinates.name': 1, 'coordinates.revision': 1, _id: 1 } + ], + [ + { sort: 'license', sortDesc: true }, + { 'licensed.declared': -1, _id: -1 } + ], + [{ sort: 'releaseDate' }, { 'described.releaseDate': 1, _id: 1 }], + [ + { sort: 'licensedScore', sortDesc: false }, + { 'licensed.score.total': 1, _id: 1 } + ], + [{ sort: 'describedScore' }, { 'described.score.total': 1, _id: 1 }], + [{ sort: 'effectiveScore' }, { 'scores.effective': 1, _id: 1 }], + [{ sort: 'toolScore' }, { 'scores.tool': 1, _id: 1 }], + [{ sort: 'revision' }, { 'coordinates.revision': 1, _id: 1 }] ]) data.forEach((expected, input) => { const result = mongoStore._buildSort(input) @@ -242,14 +257,18 @@ describe('Trimmed Mongo Definition store', () => { }) it('gets a continuationToken', () => { - const sortClause = {'_id': 1} - const token = mongoStore._getContinuationToken(5, [ - { _id: 'npm/npmjs/-/a/1.0.0' }, - { _id: 'npm/npmjs/-/b/1.0.0' }, - { _id: 'npm/npmjs/-/c/1.0.0' }, - { _id: 'npm/npmjs/-/d/1.0.0' }, - { _id: 'npm/npmjs/-/e/1.0.0' } - ], sortClause) + const sortClause = { _id: 1 } + const token = mongoStore._getContinuationToken( + 5, + [ + { _id: 'npm/npmjs/-/a/1.0.0' }, + { _id: 'npm/npmjs/-/b/1.0.0' }, + { _id: 'npm/npmjs/-/c/1.0.0' }, + { _id: 'npm/npmjs/-/d/1.0.0' }, + { _id: 'npm/npmjs/-/e/1.0.0' } + ], + sortClause + ) expect(token).to.eq('bnBtL25wbWpzLy0vZS8xLjAuMA==') }) @@ -266,18 +285,18 @@ describe('Trimmed Mongo Definition store', () => { describe('trimmed vs. paged definition', () => { let pagedMongoStore - + beforeEach('setup database', async () => { const uri = await mongoServer.getUri() const options = { ...dbOptions, connectionString: uri, - collectionName: 'definitions-paged', + collectionName: 'definitions-paged' } pagedMongoStore = PagedMongoDefinitionStore(options) await pagedMongoStore.initialize() }) - + afterEach('cleanup database', async () => { await pagedMongoStore.close() }) @@ -298,7 +317,7 @@ describe('Trimmed Mongo Definition store', () => { async function setupStore(mongoStore) { const fileName = path.join(__dirname, '../../fixtures/store/definitions-paged-no-files') const content = await fsPromise.readFile(fileName) - const defDump = JSON.parse(content.toString()).map((def) => { + const defDump = JSON.parse(content.toString()).map(def => { delete def._mongo return def }) @@ -311,7 +330,7 @@ function verifyExpectedCoordinates(allCoordinates, expected) { } function verifyUniqueCoordinates(defs) { - const allCoordinates = defs.map((e) => EntityCoordinates.fromObject(e.coordinates).toString()) + const allCoordinates = defs.map(e => EntityCoordinates.fromObject(e.coordinates).toString()) const uniqTokens = uniq(allCoordinates) expect(uniqTokens.length).to.be.equal(allCoordinates.length) return allCoordinates @@ -319,7 +338,7 @@ function verifyUniqueCoordinates(defs) { function createDefinition(coordinates) { coordinates = EntityCoordinates.fromString(coordinates) - return { + return { coordinates, described: {}, licensed: {}, @@ -327,4 +346,4 @@ function createDefinition(coordinates) { _meta: {}, files: [{ path: '1' }, { path: '2' }] } -} \ No newline at end of file +} diff --git a/test/providers/summary/scancode.js b/test/providers/summary/scancode.js index e1adceaa1..055b7ce6f 100644 --- a/test/providers/summary/scancode.js +++ b/test/providers/summary/scancode.js @@ -20,9 +20,9 @@ describe('ScancodeSummarizer basic compatability', () => { const result = summarizer.summarize(coordinates, harvestData) assert.equal(result.licensed.declared, 'ISC', `Declared license mismatch for version ${version}`) assert.equal(result.described.releaseDate, '2017-05-19', `releaseDate mismatch for version ${version}`) - assert.deepEqual(uniq(flatten(result.files.map((x) => x.attributions))).filter((x) => x).length, 1) - assert.deepEqual(result.files.find((x) => x.path === 'package/LICENSE').natures, ['license']) - assert.equal(flatten(result.files.map((x) => x.natures)).filter((x) => x).length, 1) + assert.deepEqual(uniq(flatten(result.files.map(x => x.attributions))).filter(x => x).length, 1) + assert.deepEqual(result.files.find(x => x.path === 'package/LICENSE').natures, ['license']) + assert.equal(flatten(result.files.map(x => x.natures)).filter(x => x).length, 1) } }) @@ -46,9 +46,9 @@ describe('ScancodeSummarizer basic compatability', () => { `Declared license mismatch for version ${version}` ) assert.equal(result.described.releaseDate, '2018-03-31', `releaseDate mismatch for version ${version}`) - assert.deepEqual(uniq(flatten(result.files.map((x) => x.attributions))).filter((x) => x).length, 33) - assert.deepEqual(result.files.find((x) => x.path === 'package/LICENSE').natures, ['license']) - assert.equal(flatten(result.files.map((x) => x.natures)).filter((x) => x).length, 1) + assert.deepEqual(uniq(flatten(result.files.map(x => x.attributions))).filter(x => x).length, 33) + assert.deepEqual(result.files.find(x => x.path === 'package/LICENSE').natures, ['license']) + assert.equal(flatten(result.files.map(x => x.natures)).filter(x => x).length, 1) } }) @@ -134,9 +134,9 @@ describe('ScancodeSummarizer basic compatability', () => { undefinedOverrides.indexOf(version) > -1 ? undefined : 'MIT', `Declared license mismatch for version ${version}` ) - assert.equal(result.files.find((x) => x.path === 'MIT-LICENSE.md').license, 'MIT') + assert.equal(result.files.find(x => x.path === 'MIT-LICENSE.md').license, 'MIT') assert.equal(result.described.releaseDate, '2018-08-09', `releaseDate mismatch for version ${version}`) - assert.deepEqual(uniq(flatten(result.files.map((x) => x.attributions))).filter((x) => x).length, 3) + assert.deepEqual(uniq(flatten(result.files.map(x => x.attributions))).filter(x => x).length, 3) } }) @@ -148,9 +148,9 @@ describe('ScancodeSummarizer basic compatability', () => { const result = summarizer.summarize(coordinates, harvestData) assert.equal(result.licensed.declared, 'ISC', `Declared license mismatch for version ${version}`) assert.equal(result.described.releaseDate, '2017-02-24', `releaseDate mismatch for version ${version}`) - assert.deepEqual(uniq(flatten(result.files.map((x) => x.attributions))).filter((x) => x).length, 1) - assert.deepEqual(result.files.find((x) => x.path === 'LICENSE').natures, ['license']) - assert.equal(flatten(result.files.map((x) => x.natures)).filter((x) => x).length, 1) + assert.deepEqual(uniq(flatten(result.files.map(x => x.attributions))).filter(x => x).length, 1) + assert.deepEqual(result.files.find(x => x.path === 'LICENSE').natures, ['license']) + assert.equal(flatten(result.files.map(x => x.natures)).filter(x => x).length, 1) } }) @@ -162,9 +162,9 @@ describe('ScancodeSummarizer basic compatability', () => { const result = summarizer.summarize(coordinates, harvestData) assert.equal(result.licensed.declared, 'MIT', `Declared license mismatch for version ${version}`) assert.equal(result.described.releaseDate, '2018-11-15', `releaseDate mismatch for version ${version}`) - assert.deepEqual(uniq(flatten(result.files.map((x) => x.attributions))).filter((x) => x).length, 1) - assert.deepEqual(result.files.find((x) => x.path === 'redis-3.0.1/LICENSE').natures, ['license']) - assert.equal(flatten(result.files.map((x) => x.natures)).filter((x) => x).length, 1) + assert.deepEqual(uniq(flatten(result.files.map(x => x.attributions))).filter(x => x).length, 1) + assert.deepEqual(result.files.find(x => x.path === 'redis-3.0.1/LICENSE').natures, ['license']) + assert.equal(flatten(result.files.map(x => x.natures)).filter(x => x).length, 1) } }) }) @@ -234,9 +234,9 @@ describe('ScancodeSummarizer fixtures', () => { assert.deepEqual(result.described, { releaseDate: '2019-01-31' }) assert.deepEqual(result.licensed, { declared: 'NOASSERTION' }) assert.deepEqual(result.files.length, 576) - assert.deepEqual(uniq(flatten(result.files.map((x) => x.attributions))).filter((x) => x).length, 21) + assert.deepEqual(uniq(flatten(result.files.map(x => x.attributions))).filter(x => x).length, 21) assert.deepEqual( - result.files.filter((x) => x.natures), + result.files.filter(x => x.natures), [ { path: 'LICENSE', diff --git a/test/routes/definitions-1.0.0.js b/test/routes/definitions-1.0.0.js index f339845e0..936199db5 100644 --- a/test/routes/definitions-1.0.0.js +++ b/test/routes/definitions-1.0.0.js @@ -58,4 +58,3 @@ function createDefinitionService() { get: sinon.stub() } } - diff --git a/test/routes/definitions.js b/test/routes/definitions.js index 79b9cbd22..de7a17daf 100644 --- a/test/routes/definitions.js +++ b/test/routes/definitions.js @@ -38,7 +38,7 @@ function createGetRequest() { type: 'crate', provider: 'cratesio', namespace: '-', - revision: '1.0.14', + revision: '1.0.14' } }) } @@ -52,7 +52,7 @@ function createGetForceComputeRequest() { type: 'crate', provider: 'cratesio', namespace: '-', - revision: '1.0.14', + revision: '1.0.14' }, query: { force: true diff --git a/test/routes/harvest.js b/test/routes/harvest.js index dbdfc97f3..87f05724b 100644 --- a/test/routes/harvest.js +++ b/test/routes/harvest.js @@ -98,4 +98,4 @@ function createGetRequest(entries) { url: '/', params: entries }) -} \ No newline at end of file +} diff --git a/test/summary/clearlyDefined.js b/test/summary/clearlyDefined.js index 3b0c99e60..e8ff76acb 100644 --- a/test/summary/clearlyDefined.js +++ b/test/summary/clearlyDefined.js @@ -446,7 +446,12 @@ describe('ClearlyDefined PHP composer summarizer', () => { }) it('handles with all the data and a disjunctive license array', () => { - const { coordinates, harvested } = setupComposer('2018-03-06T11:38:10.284Z', 'v1.0.0', ['MIT', 'Apache-2.0'], 'http://homepage') + const { coordinates, harvested } = setupComposer( + '2018-03-06T11:38:10.284Z', + 'v1.0.0', + ['MIT', 'Apache-2.0'], + 'http://homepage' + ) const summary = Summarizer().summarize(coordinates, harvested) validate(summary) @@ -574,7 +579,9 @@ describe('ClearlyDefined Debian summarizer', () => { expect(summary.described.urls.version).to.eq(registryUrl) expect(summary.described.urls.download).to.eq('http://ftp.debian.org/debian/pool/main/0/0ad/0ad_0.0.17-1_i386.deb') expect(summary.described.sourceLocation.url).to.eq(registryUrl) - expect(summary.licensed.declared).to.eq('GPL-2.0+ AND (CPL-1.0 OR MIT) AND (BSD-3-Clause OR GPL-3.0 AND LGPL-2.1+) AND NOASSERTION') + expect(summary.licensed.declared).to.eq( + 'GPL-2.0+ AND (CPL-1.0 OR MIT) AND (BSD-3-Clause OR GPL-3.0 AND LGPL-2.1+) AND NOASSERTION' + ) }) it('handles no data', () => { diff --git a/test/summary/clearlydefinedTests.js b/test/summary/clearlydefinedTests.js index 31c99f81e..7ead8081b 100644 --- a/test/summary/clearlydefinedTests.js +++ b/test/summary/clearlydefinedTests.js @@ -64,7 +64,12 @@ describe('ClearlyDescribedSummarizer add files', () => { it('adds tokens for multiple files', () => { const result = { files: [{ path: 'foo' }, { path: 'bar' }] } - const files = { attachments: [{ path: 'foo', token: 'abcd' }, { path: 'bar', token: 'dcba' }] } + const files = { + attachments: [ + { path: 'foo', token: 'abcd' }, + { path: 'bar', token: 'dcba' } + ] + } summarizer.addAttachedFiles(result, files) assert.strictEqual(result.files.length, 2) assert.strictEqual(result.files[0].path, 'foo') @@ -75,7 +80,12 @@ describe('ClearlyDescribedSummarizer add files', () => { it('adds license nature for attachments named license', () => { const result = { files: [{ path: 'foo' }, { path: 'LICENSE' }] } - const files = { attachments: [{ path: 'foo', token: 'abcd' }, { path: 'LICENSE', token: 'dcba' }] } + const files = { + attachments: [ + { path: 'foo', token: 'abcd' }, + { path: 'LICENSE', token: 'dcba' } + ] + } summarizer.addAttachedFiles(result, files) assert.strictEqual(result.files.length, 2) assert.strictEqual(result.files[0].path, 'foo') @@ -97,7 +107,10 @@ describe('ClearlyDescribedSummarizer addCondaData', () => { it('declares dual license from registryData with SPDX expression', () => { let result = {} - let data = setup([{ path: 'LICENSE-MIT', license: 'MIT' }, { path: 'LICENSE-APACHE', license: 'Apache-2.0' }]) + let data = setup([ + { path: 'LICENSE-MIT', license: 'MIT' }, + { path: 'LICENSE-APACHE', license: 'Apache-2.0' } + ]) data.declaredLicenses = 'MIT OR Apache-2.0' summarizer.addCondaData(result, data, condaTestCoordinates) assert.strictEqual(get(result, 'licensed.declared'), 'MIT OR Apache-2.0') @@ -111,21 +124,21 @@ describe('ClearlyDescribedSummarizer addCondaData', () => { it('describes projectWebsite from registryData', () => { let result = {} - summarizer.addCondaData(result, { - registryData: { - channelData: { home: 'https://github.com/owner/repo' } - } - }, condaTestCoordinates) + summarizer.addCondaData( + result, + { + registryData: { + channelData: { home: 'https://github.com/owner/repo' } + } + }, + condaTestCoordinates + ) assert.strictEqual(result.described.projectWebsite, 'https://github.com/owner/repo') }) it('describes releaseDate from registryData', () => { let result = {} - summarizer.addCondaData( - result, - { releaseDate: 'Wed, 14 Jun 2017 07:00:00 GMT' }, - condaTestCoordinates - ) + summarizer.addCondaData(result, { releaseDate: 'Wed, 14 Jun 2017 07:00:00 GMT' }, condaTestCoordinates) assert.strictEqual(result.described.releaseDate, '2017-06-14') }) }) @@ -140,7 +153,10 @@ describe('ClearlyDescribedSummarizer addCrateData', () => { it('declares dual license from registryData with SPDX expression', () => { let result = {} - let data = setup([{ path: 'LICENSE-MIT', license: 'MIT' }, { path: 'LICENSE-APACHE', license: 'Apache-2.0' }]) + let data = setup([ + { path: 'LICENSE-MIT', license: 'MIT' }, + { path: 'LICENSE-APACHE', license: 'Apache-2.0' } + ]) data.registryData = { license: 'MIT OR Apache-2.0' } summarizer.addCrateData(result, data, crateTestCoordinates) assert.strictEqual(get(result, 'licensed.declared'), 'MIT OR Apache-2.0') @@ -148,7 +164,10 @@ describe('ClearlyDescribedSummarizer addCrateData', () => { it('declares dual license from registryData with slash-separated licenses', () => { let result = {} - let data = setup([{ path: 'LICENSE-MIT', license: 'MIT' }, { path: 'LICENSE-APACHE', license: 'Apache-2.0' }]) + let data = setup([ + { path: 'LICENSE-MIT', license: 'MIT' }, + { path: 'LICENSE-APACHE', license: 'Apache-2.0' } + ]) data.registryData = { license: 'MIT/Apache-2.0' } summarizer.addCrateData(result, data, crateTestCoordinates) assert.strictEqual(get(result, 'licensed.declared'), 'MIT OR Apache-2.0') @@ -318,8 +337,7 @@ describe('ClearlyDescribedSummarizer addNpmData', () => { ...expectedResult, licensed: { declared: data[license] } }) - } - else assert.deepEqual(result, expectedResult) + } else assert.deepEqual(result, expectedResult) } for (let license of Object.keys(data)) { @@ -330,8 +348,7 @@ describe('ClearlyDescribedSummarizer addNpmData', () => { ...expectedResult, licensed: { declared: data[license] } }) - } - else assert.deepEqual(result, expectedResult) + } else assert.deepEqual(result, expectedResult) } const licenseArray = ['MIT'] @@ -345,7 +362,11 @@ describe('ClearlyDescribedSummarizer addNpmData', () => { assert.deepEqual(result2, { ...expectedResult, licensed: { declared: 'MIT AND Apache-2.0' } }) let result3 = {} - summarizer.addNpmData(result3, { registryData: { manifest: { license: { type: licenseArray2 } } } }, npmTestCoordinates) + summarizer.addNpmData( + result3, + { registryData: { manifest: { license: { type: licenseArray2 } } } }, + npmTestCoordinates + ) assert.deepEqual(result3, { ...expectedResult, licensed: { declared: 'MIT AND Apache-2.0' } }) let result4 = {} @@ -451,7 +472,7 @@ describe('ClearlyDescribedSummarizer addNpmData', () => { }) }) - it('should not set issueTracker if it is not http', () => { }) + it('should not set issueTracker if it is not http', () => {}) it('should return if no registry data', () => { let result = {} @@ -527,7 +548,7 @@ describe('ClearlyDescribedSummarizer addMavenData', () => { const expectedUrls = { download: 'https://repo1.maven.org/maven2/io/clearlydefined/test/1.0/test-1.0.jar', registry: 'https://repo1.maven.org/maven2/io/clearlydefined/test', - version: 'https://repo1.maven.org/maven2/io/clearlydefined/test/1.0', + version: 'https://repo1.maven.org/maven2/io/clearlydefined/test/1.0' } const expectedResult = { described: { urls: expectedUrls } } it('should set declared license from manifest licenseUrl', () => { @@ -590,7 +611,7 @@ describe('ClearlyDescribedSummarizer addMavenData', () => { const expectedUrls = { download: 'https://maven.google.com/web/index.html#io.clearlydefined:test:1.0', registry: 'https://maven.google.com/web/index.html#io.clearlydefined:test:1.0', - version: 'https://maven.google.com/web/index.html#io.clearlydefined:test:1.0/1.0', + version: 'https://maven.google.com/web/index.html#io.clearlydefined:test:1.0/1.0' } const expectedResult = { described: { urls: expectedUrls } } it('should set declared license from manifest licenseUrl', () => { @@ -652,13 +673,13 @@ describe('ClearlyDescribedSummarizer addSourceArchiveData', () => { const expectedUrls = { download: 'https://repo1.maven.org/maven2/io/clearlydefined/test/1.0/test-1.0.jar', registry: 'https://repo1.maven.org/maven2/io/clearlydefined/test', - version: 'https://repo1.maven.org/maven2/io/clearlydefined/test/1.0', + version: 'https://repo1.maven.org/maven2/io/clearlydefined/test/1.0' } const expectedResult = { described: { urls: expectedUrls } } it('should set the correct urls', () => { const data = { - 'https://opensource.org/licenses/MIT': 'MIT', + 'https://opensource.org/licenses/MIT': 'MIT' } for (let url of Object.keys(data)) { @@ -670,7 +691,7 @@ describe('ClearlyDescribedSummarizer addSourceArchiveData', () => { ) if (data[url]) assert.deepEqual(result, { - ...expectedResult, + ...expectedResult }) else assert.deepEqual(result, expectedResult) } @@ -707,7 +728,7 @@ describe('ClearlyDescribedSummarizer addGitData', () => { it('should set the correct urls', () => { const data = { - 'https://opensource.org/licenses/MIT': 'MIT', + 'https://opensource.org/licenses/MIT': 'MIT' } for (let url of Object.keys(data)) { @@ -719,7 +740,7 @@ describe('ClearlyDescribedSummarizer addGitData', () => { ) if (data[url]) assert.deepEqual(result, { - ...expectedResult, + ...expectedResult }) else assert.deepEqual(result, expectedResult) } @@ -745,7 +766,7 @@ describe('ClearlyDescribedSummarizer addGitData', () => { it('should set the correct urls', () => { const data = { - 'https://opensource.org/licenses/MIT': 'MIT', + 'https://opensource.org/licenses/MIT': 'MIT' } for (let url of Object.keys(data)) { @@ -757,7 +778,7 @@ describe('ClearlyDescribedSummarizer addGitData', () => { ) if (data[url]) assert.deepEqual(result, { - ...expectedResult, + ...expectedResult }) else assert.deepEqual(result, expectedResult) } @@ -775,7 +796,6 @@ function setup(files, attachments) { return { licensee: { version: '1.2.3', output: { content: { matched_files } } }, attachments } } - describe('ClearlyDescribedSummarizer addGoData', () => { const testCoordinatesGo = EntityCoordinates.fromString('go/golang/rsc.io/quote/v1.3.0') @@ -789,7 +809,7 @@ describe('ClearlyDescribedSummarizer addGoData', () => { it('should set the correct urls', () => { const data = { - 'https://opensource.org/licenses/MIT': 'MIT', + 'https://opensource.org/licenses/MIT': 'MIT' } for (let url of Object.keys(data)) { @@ -801,14 +821,16 @@ describe('ClearlyDescribedSummarizer addGoData', () => { ) if (data[url]) assert.deepEqual(result, { - ...expectedResult, + ...expectedResult }) else assert.deepEqual(result, expectedResult) } }) it('should handle url encoding in the coordinates', () => { - const testEncodedCoordinatesGo = EntityCoordinates.fromString('go/golang/golang.org%2fx/net/v0.0.0-20210226172049-e18ecbb05110') + const testEncodedCoordinatesGo = EntityCoordinates.fromString( + 'go/golang/golang.org%2fx/net/v0.0.0-20210226172049-e18ecbb05110' + ) const expectedDecodedUrls = { download: 'https://proxy.golang.org/golang.org/x/net/@v/v0.0.0-20210226172049-e18ecbb05110.zip', @@ -819,7 +841,7 @@ describe('ClearlyDescribedSummarizer addGoData', () => { const expectedDecodedResult = { described: { urls: expectedDecodedUrls } } const testData = { - 'https://opensource.org/licenses/MIT': 'MIT', + 'https://opensource.org/licenses/MIT': 'MIT' } for (let url of Object.keys(testData)) { @@ -831,7 +853,7 @@ describe('ClearlyDescribedSummarizer addGoData', () => { ) if (testData[url]) assert.deepEqual(result, { - ...expectedDecodedResult, + ...expectedDecodedResult }) else assert.deepEqual(result, expectedDecodedResult) } @@ -845,7 +867,11 @@ describe('ClearlyDescribedSummarizer addGoData', () => { it('gets license from data', () => { let result = {} - summarizer.addGoData(result, { registryData: { licenses: ['Apache-2.0', 'BSD-2-Clause, BSD-3-Clause, HPND'] } }, testCoordinatesGo) + summarizer.addGoData( + result, + { registryData: { licenses: ['Apache-2.0', 'BSD-2-Clause, BSD-3-Clause, HPND'] } }, + testCoordinatesGo + ) assert.strictEqual(result.licensed.declared, 'Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND HPND') }) }) diff --git a/test/summary/licensee.js b/test/summary/licensee.js index 3ed015ca1..055431a66 100644 --- a/test/summary/licensee.js +++ b/test/summary/licensee.js @@ -30,7 +30,10 @@ describe('LicenseeSummarizer', () => { }) it('should AND together matched declared licenses', () => { - const data = setup([{ path: 'LICENSE-MIT', license: 'MIT' }, { path: 'LICENSE-APACHE', license: 'Apache-2.0' }]) + const data = setup([ + { path: 'LICENSE-MIT', license: 'MIT' }, + { path: 'LICENSE-APACHE', license: 'Apache-2.0' } + ]) const result = summarizer.summarize(null, data) assert.deepEqual(result, { files: [ @@ -42,7 +45,10 @@ describe('LicenseeSummarizer', () => { }) it('should filter NOASSERTION for matched declared licenses', () => { - const data = setup([{ path: 'LICENSE-MIT', license: 'MIT' }, { path: 'LICENSE', license: 'NOASSERTION' }]) + const data = setup([ + { path: 'LICENSE-MIT', license: 'MIT' }, + { path: 'LICENSE', license: 'NOASSERTION' } + ]) const result = summarizer.summarize(null, data) assert.deepEqual(result, { files: [{ path: 'LICENSE-MIT', license: 'MIT', natures: ['license'] }], diff --git a/test/summary/reuse.js b/test/summary/reuse.js index 09aa7f125..1bc600f18 100644 --- a/test/summary/reuse.js +++ b/test/summary/reuse.js @@ -5,11 +5,22 @@ const assert = require('assert') const summarizer = require('../../providers/summary/reuse')() describe('FsfeReuseSummarizer', () => { - it('should include populate all available attributes', () => { const files = [ - { fileName: 'README.md', licenseConcluded: 'MIT', licenseInfoFile: 'NOASSERTION', fileCopyrightText: 'Somebody', checksumSha1: '42' }, - { fileName: 'SECURITY.md', licenseConcluded: 'NOASSERTION', licenseInfoFile: 'Apache-2.0', fileCopyrightText: 'Somebody else', checksumSha1: '23' } + { + fileName: 'README.md', + licenseConcluded: 'MIT', + licenseInfoFile: 'NOASSERTION', + fileCopyrightText: 'Somebody', + checksumSha1: '42' + }, + { + fileName: 'SECURITY.md', + licenseConcluded: 'NOASSERTION', + licenseInfoFile: 'Apache-2.0', + fileCopyrightText: 'Somebody else', + checksumSha1: '23' + } ] const licenses = ['MIT', 'Apache-2.0'] const data = setup(files, licenses) @@ -19,7 +30,7 @@ describe('FsfeReuseSummarizer', () => { { path: 'README.md', license: 'MIT', hashes: { sha1: '42' }, attributions: ['Somebody'] }, { path: 'SECURITY.md', license: 'Apache-2.0', hashes: { sha1: '23' }, attributions: ['Somebody else'] }, { path: 'LICENSES/MIT.txt', license: 'MIT', natures: ['license'] }, - { path: 'LICENSES/Apache-2.0.txt', license: 'Apache-2.0', natures: ['license'] }, + { path: 'LICENSES/Apache-2.0.txt', license: 'Apache-2.0', natures: ['license'] } ], licensed: { declared: 'MIT AND Apache-2.0' } }) @@ -28,7 +39,13 @@ describe('FsfeReuseSummarizer', () => { it('should ignore missing or irrelevant attributes', () => { const files = [ { fileName: 'README.md', licenseConcluded: 'MIT', fileCopyrightText: 'Somebody', checksumSha1: '42' }, - { fileName: 'SECURITY.md', licenseConcluded: 'NOASSERTION', licenseInfoFile: 'Apache-2.0', fileCopyrightText: 'NONE', checksumSha1: '23' } + { + fileName: 'SECURITY.md', + licenseConcluded: 'NOASSERTION', + licenseInfoFile: 'Apache-2.0', + fileCopyrightText: 'NONE', + checksumSha1: '23' + } ] const licenses = ['MIT', 'Apache-2.0'] const data = setup(files, licenses) @@ -38,7 +55,7 @@ describe('FsfeReuseSummarizer', () => { { path: 'README.md', license: 'MIT', hashes: { sha1: '42' }, attributions: ['Somebody'] }, { path: 'SECURITY.md', license: 'Apache-2.0', hashes: { sha1: '23' } }, { path: 'LICENSES/MIT.txt', license: 'MIT', natures: ['license'] }, - { path: 'LICENSES/Apache-2.0.txt', license: 'Apache-2.0', natures: ['license'] }, + { path: 'LICENSES/Apache-2.0.txt', license: 'Apache-2.0', natures: ['license'] } ], licensed: { declared: 'MIT AND Apache-2.0' } }) @@ -46,7 +63,13 @@ describe('FsfeReuseSummarizer', () => { it('should ignore missing license information', () => { const files = [ - { fileName: 'README.md', licenseConcluded: 'MIT', licenseInfoFile: 'NOASSERTION', fileCopyrightText: 'Somebody', checksumSha1: '42' }, + { + fileName: 'README.md', + licenseConcluded: 'MIT', + licenseInfoFile: 'NOASSERTION', + fileCopyrightText: 'Somebody', + checksumSha1: '42' + }, { fileName: 'SECURITY.md', licenseConcluded: 'NOASSERTION', fileCopyrightText: 'NONE', checksumSha1: '23' } ] const licenses = ['MIT'] @@ -81,18 +104,24 @@ describe('FsfeReuseSummarizer', () => { function setup(files, licenses) { const matchedFiles = files.map(file => { return { - 'FileName': file.fileName, - 'LicenseConcluded': file.licenseConcluded, - 'LicenseInfoInFile': file.licenseInfoFile, - 'FileCopyrightText': file.fileCopyrightText, - 'FileChecksumSHA1': file.checksumSha1 + FileName: file.fileName, + LicenseConcluded: file.licenseConcluded, + LicenseInfoInFile: file.licenseInfoFile, + FileCopyrightText: file.fileCopyrightText, + FileChecksumSHA1: file.checksumSha1 } }) const matchedLicenses = licenses.map(license => { return { - 'filePath': ('LICENSES/' + license + '.txt'), - 'spdxId': license + filePath: 'LICENSES/' + license + '.txt', + spdxId: license } }) - return { reuse: { metadata: { 'DocumentName': 'ospo-reuse', 'CreatorTool': 'reuse-0.13.0' }, files: matchedFiles, licenses: matchedLicenses } } + return { + reuse: { + metadata: { DocumentName: 'ospo-reuse', CreatorTool: 'reuse-0.13.0' }, + files: matchedFiles, + licenses: matchedLicenses + } + } } From e1ada50b1d33af134ff5a6c36e02bf4dedc61263 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Spie=C3=9F?= Date: Thu, 15 Feb 2024 18:29:32 +0100 Subject: [PATCH 23/55] Update .vscode/settings.json --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 153370352..2102d8b75 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,5 +1,5 @@ { - "editor.defaultFormatter": "esbenp.preter-vscode", + "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.formatOnSave": true, "editor.tabSize": 2 } From 74d0641e604efebe98c0f1a2e2c10bdc1b8b6d06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Spie=C3=9F?= Date: Mon, 25 Mar 2024 13:38:09 +0000 Subject: [PATCH 24/55] Remove hard-coded secret --- bin/config.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/config.js b/bin/config.js index 6b8e1c732..05374bf7d 100644 --- a/bin/config.js +++ b/bin/config.js @@ -79,8 +79,8 @@ module.exports = { batchMax: parseInt(config.get('BATCH_RATE_LIMIT_MAX')) || 0 }, webhook: { - githubSecret: config.get('WEBHOOK_GITHUB_SECRET') || 'secret', - crawlerSecret: config.get('WEBHOOK_CRAWLER_SECRET') || 'secret' + githubSecret: config.get('WEBHOOK_GITHUB_SECRET') || (() => { throw new Error('WEBHOOK_GITHUB_SECRET is required'); })(), + crawlerSecret: config.get('WEBHOOK_CRAWLER_SECRET') || (() => { throw new Error('WEBHOOK_CRAWLER_SECRET is required'); })() }, search: { service: loadFactory(config.get('SEARCH_PROVIDER') || 'memory', 'search') From 67005df3134f053d3583657993e467639e833fe5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Spie=C3=9F?= Date: Mon, 25 Mar 2024 13:39:47 +0000 Subject: [PATCH 25/55] Ensure parameter is string --- lib/entityCoordinates.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/entityCoordinates.js b/lib/entityCoordinates.js index 2fb925404..9834e3728 100644 --- a/lib/entityCoordinates.js +++ b/lib/entityCoordinates.js @@ -24,7 +24,8 @@ class EntityCoordinates { } static fromString(path) { - if (!path) return null + if (!path || typeof path !== 'string') return null + path = path.startsWith('/') ? path.slice(1) : path const [type, provider, namespace, name, revision] = path.split('/') return new EntityCoordinates(type, provider, namespace, name, revision) From c6f71d36ceaab15ac1b167bd6d423f7b20f11737 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Spie=C3=9F?= Date: Mon, 25 Mar 2024 13:47:34 +0000 Subject: [PATCH 26/55] Encode coordinates before returning response --- routes/definitions-1.0.0.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routes/definitions-1.0.0.js b/routes/definitions-1.0.0.js index d5d5a8c03..7ce749dc3 100644 --- a/routes/definitions-1.0.0.js +++ b/routes/definitions-1.0.0.js @@ -26,7 +26,7 @@ async function getDefinition(req, resp) { try { coordinatesEntity = await utils.toNormalizedEntityCoordinates(coordinatesEntity) } catch (err) { - return resp.status(404).send(`The ${coordinates} is not public.`) + return resp.status(404).send(`The ${(encodeURIComponent(coordinates))} is not public.`) } const result = await definitionService.get(coordinatesEntity, pr, force, expand) From 158960549e83d47473eebf21aabe329ed86a0e2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Spie=C3=9F?= Date: Mon, 25 Mar 2024 16:28:29 +0000 Subject: [PATCH 27/55] Add default secrets for tests --- test/app.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/test/app.js b/test/app.js index 92e7ff536..1dcff89c1 100644 --- a/test/app.js +++ b/test/app.js @@ -8,7 +8,14 @@ const init = require('express-init') const Application = require('../app') const config = proxyquire('../bin/config', { ['painless-config']: { - get: () => null + get: name => { + return ( + { + WEBHOOK_GITHUB_SECRET: 'secret', + WEBHOOK_CRAWLER_SECRET: 'secret' + }[name] || null + ) + } } }) From eb539f0a892ca1d48e0705e3fd6b255f545b062c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Spie=C3=9F?= Date: Mon, 25 Mar 2024 18:54:05 +0000 Subject: [PATCH 28/55] Fix new lint issues --- bin/config.js | 12 ++++++++++-- lib/entityCoordinates.js | 2 +- routes/definitions-1.0.0.js | 2 +- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/bin/config.js b/bin/config.js index 05374bf7d..09a236f53 100644 --- a/bin/config.js +++ b/bin/config.js @@ -79,8 +79,16 @@ module.exports = { batchMax: parseInt(config.get('BATCH_RATE_LIMIT_MAX')) || 0 }, webhook: { - githubSecret: config.get('WEBHOOK_GITHUB_SECRET') || (() => { throw new Error('WEBHOOK_GITHUB_SECRET is required'); })(), - crawlerSecret: config.get('WEBHOOK_CRAWLER_SECRET') || (() => { throw new Error('WEBHOOK_CRAWLER_SECRET is required'); })() + githubSecret: + config.get('WEBHOOK_GITHUB_SECRET') || + (() => { + throw new Error('WEBHOOK_GITHUB_SECRET is required') + })(), + crawlerSecret: + config.get('WEBHOOK_CRAWLER_SECRET') || + (() => { + throw new Error('WEBHOOK_CRAWLER_SECRET is required') + })() }, search: { service: loadFactory(config.get('SEARCH_PROVIDER') || 'memory', 'search') diff --git a/lib/entityCoordinates.js b/lib/entityCoordinates.js index 9834e3728..9cac0653d 100644 --- a/lib/entityCoordinates.js +++ b/lib/entityCoordinates.js @@ -25,7 +25,7 @@ class EntityCoordinates { static fromString(path) { if (!path || typeof path !== 'string') return null - + path = path.startsWith('/') ? path.slice(1) : path const [type, provider, namespace, name, revision] = path.split('/') return new EntityCoordinates(type, provider, namespace, name, revision) diff --git a/routes/definitions-1.0.0.js b/routes/definitions-1.0.0.js index 7ce749dc3..8e4ac414b 100644 --- a/routes/definitions-1.0.0.js +++ b/routes/definitions-1.0.0.js @@ -26,7 +26,7 @@ async function getDefinition(req, resp) { try { coordinatesEntity = await utils.toNormalizedEntityCoordinates(coordinatesEntity) } catch (err) { - return resp.status(404).send(`The ${(encodeURIComponent(coordinates))} is not public.`) + return resp.status(404).send(`The ${encodeURIComponent(coordinates)} is not public.`) } const result = await definitionService.get(coordinatesEntity, pr, force, expand) From 3b9f973786077099ef68f849707e4b2eb896776b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Spie=C3=9F?= Date: Wed, 3 Apr 2024 15:38:05 +0000 Subject: [PATCH 29/55] Add now-required env vars to docs and minimal.env.json --- docs/rampup.md | 2 ++ minimal.env.json | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/docs/rampup.md b/docs/rampup.md index 17f0ef05c..7535e8f71 100644 --- a/docs/rampup.md +++ b/docs/rampup.md @@ -45,6 +45,8 @@ Better to use a copy of the real dev environment, can change queue names to be y - "CURATION_GITHUB_REPO" - "CURATION_GITHUB_TOKEN" - "CRAWLER_GITHUB_TOKEN" + - "WEBHOOK_GITHUB_SECRET" + - "WEBHOOK_CRAWLER_SECRET" - "SCANCODE_HOME" 5. Any other environmental variable values you might need can be found in the Clearly Defined subscription in Azure Portal under App Services -> clearlydefined-api-dev -> Settings -> Configuration 6. Consider all the vars and what you need for testing what you will test. diff --git a/minimal.env.json b/minimal.env.json index 8f7daa935..9f6916c91 100644 --- a/minimal.env.json +++ b/minimal.env.json @@ -2,6 +2,10 @@ "========== Service Harvest settings ==========": "", "FILE_STORE_LOCATION": "< path to cloned harvested-data repo, other local store location, or omit for default >", + "========== Service Webhooks settings ==========": "", + "WEBHOOK_CRAWLER_SECRET": "", + "WEBHOOK_GITHUB_SECRET": "", + "========== Service Curation settings ==========": "", "CURATION_GITHUB_REPO": "sample-curated-data", "CURATION_GITHUB_TOKEN": "" From d35e241ccf793d8d02564e7ad9918d770bff90a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Spie=C3=9F?= Date: Thu, 4 Apr 2024 14:12:07 +0200 Subject: [PATCH 30/55] Add groups to dependabot.yml --- .github/dependabot.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index caaf4fc1a..c7de71f41 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -4,8 +4,15 @@ updates: directory: '/' schedule: interval: weekly + groups: + dev-dependencies: + dependency-type: 'development' - package-ecosystem: 'github-actions' directory: '/' schedule: interval: 'weekly' + groups: + actions: + patterns: + - 'actions/*' From 5676ff101a9d4abb62cbec2463dee30056e78173 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Spie=C3=9F?= Date: Thu, 4 Apr 2024 14:34:23 +0200 Subject: [PATCH 31/55] Update github-actions patterns --- .github/dependabot.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index c7de71f41..5d42f4f8c 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -13,6 +13,10 @@ updates: schedule: interval: 'weekly' groups: - actions: + github-actions: patterns: - 'actions/*' + - 'github/*' + azure-actions: + patterns: + - 'azure/*' From c33d08f10a8ffbfbf46ab26e5a5c9d0e0a894228 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Spie=C3=9F?= Date: Thu, 4 Apr 2024 14:35:41 +0200 Subject: [PATCH 32/55] Add Docker Actions group --- .github/dependabot.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 5d42f4f8c..340535fcf 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -13,10 +13,13 @@ updates: schedule: interval: 'weekly' groups: + azure-actions: + patterns: + - 'azure/*' + docker-actions: + patterns: + - 'docker/*' github-actions: patterns: - 'actions/*' - 'github/*' - azure-actions: - patterns: - - 'azure/*' From 82141499d431ffd665002a75c0b981d2a25463e3 Mon Sep 17 00:00:00 2001 From: "E. Lynette Rayle" Date: Thu, 4 Apr 2024 20:36:35 -0400 Subject: [PATCH 33/55] 1.2.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6f77db540..0f1e50272 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "service", - "version": "1.1.0", + "version": "1.2.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "service", - "version": "1.1.0", + "version": "1.2.0", "hasInstallScript": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 29a064cfd..392a343b2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "service", - "version": "1.1.0", + "version": "1.2.0", "description": "Service side of clearlydefined.io.", "scripts": { "test": "npm run mocha && npm run lint", From 707e73b301b2154d0adbba73d40f962856dedc1e Mon Sep 17 00:00:00 2001 From: lumaxis <406937+lumaxis@users.noreply.github.com> Date: Sun, 7 Apr 2024 05:46:54 +0000 Subject: [PATCH 34/55] Update ScanCode license mapping --- lib/scancodeMap.js | 2108 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 2016 insertions(+), 92 deletions(-) diff --git a/lib/scancodeMap.js b/lib/scancodeMap.js index a1805572d..c3d3d4a34 100644 --- a/lib/scancodeMap.js +++ b/lib/scancodeMap.js @@ -1,396 +1,2320 @@ // Copyright (c) Microsoft Corporation and others. Licensed under the MIT license. // SPDX-License-Identifier: MIT -// This is a map from scancode key to spdx identifier -// see licenses in https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/ +// *** THIS FILE IS AUTO-GENERATED by service/.github/workflows/transform-scancode-licensedb.js *** +// *** DO NOT EDIT MANUALLY *** +// +// This is a mapping from scancode key to SPDX identifier based on https://scancode-licensedb.aboutcode.org/index.json +// See licenses in https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/ module.exports = new Map([ - ['abstyles', 'Abstyles'], ['389-exception', '389-exception'], + ['3com-microcode', 'LicenseRef-scancode-3com-microcode'], + ['3dslicer-1.0', 'LicenseRef-scancode-3dslicer-1.0'], + ['4suite-1.1', 'LicenseRef-scancode-4suite-1.1'], + ['996-icu-1.0', 'LicenseRef-scancode-996-icu-1.0'], + ['aardvark-py-2014', 'LicenseRef-scancode-aardvark-py-2014'], + ['abrms', 'LicenseRef-scancode-abrms'], + ['abstyles', 'Abstyles'], + ['ac3filter', 'LicenseRef-scancode-ac3filter'], + ['accellera-systemc', 'LicenseRef-scancode-accellera-systemc'], + ['acdl-1.0', 'CDL-1.0'], ['ace-tao', 'DOC'], + ['acm-sla', 'LicenseRef-scancode-acm-sla'], + ['acroname-bdk', 'LicenseRef-scancode-acroname-bdk'], + ['activestate-community', 'LicenseRef-scancode-activestate-community'], + ['activestate-community-2012', 'LicenseRef-scancode-activestate-community-2012'], + ['activestate-komodo-edit', 'LicenseRef-scancode-activestate-komodo-edit'], + ['actuate-birt-ihub-ftype-sla', 'LicenseRef-scancode-actuate-birt-ihub-ftype-sla'], + ['ada-linking-exception', 'GNAT-exception'], + ['adacore-doc', 'AdaCore-doc'], ['adapt-1.0', 'APL-1.0'], + ['adaptec-downloadable', 'LicenseRef-scancode-adaptec-downloadable'], + ['adaptec-eula', 'LicenseRef-scancode-adaptec-eula'], + ['adcolony-tos-2022', 'LicenseRef-scancode-adcolony-tos-2022'], + ['addthis-mobile-sdk-1.0', 'LicenseRef-scancode-addthis-mobile-sdk-1.0'], + ['adi-bsd', 'LicenseRef-scancode-adi-bsd'], + ['adobe-acrobat-reader-eula', 'LicenseRef-scancode-adobe-acrobat-reader-eula'], + ['adobe-air-sdk', 'LicenseRef-scancode-adobe-air-sdk'], + ['adobe-air-sdk-2014', 'LicenseRef-scancode-adobe-air-sdk-2014'], + ['adobe-color-profile-bundling', 'LicenseRef-scancode-adobe-color-profile-bundling'], + ['adobe-color-profile-license', 'LicenseRef-scancode-adobe-color-profile-license'], + ['adobe-dng-sdk', 'LicenseRef-scancode-adobe-dng-sdk'], + ['adobe-dng-spec-patent', 'LicenseRef-scancode-adobe-dng-spec-patent'], + ['adobe-eula', 'LicenseRef-scancode-adobe-eula'], + ['adobe-flash-player-eula-21.0', 'LicenseRef-scancode-adobe-flash-player-eula-21.0'], + ['adobe-flex-4-sdk', 'LicenseRef-scancode-adobe-flex-4-sdk'], + ['adobe-flex-sdk', 'LicenseRef-scancode-adobe-flex-sdk'], + ['adobe-general-tou', 'LicenseRef-scancode-adobe-general-tou'], ['adobe-glyph', 'Adobe-Glyph'], + ['adobe-indesign-sdk', 'LicenseRef-scancode-adobe-indesign-sdk'], + ['adobe-postscript', 'LicenseRef-scancode-adobe-postscript'], ['adobe-scl', 'Adobe-2006'], + ['adobe-utopia', 'Adobe-Utopia'], + ['adrian', 'LicenseRef-scancode-adrian'], ['adsl', 'ADSL'], - ['afl-1.2', 'AFL-1.2'], + ['aes-128-3.0', 'LicenseRef-scancode-aes-128-3.0'], ['afl-1.1', 'AFL-1.1'], + ['afl-1.2', 'AFL-1.2'], ['afl-2.0', 'AFL-2.0'], - ['afpl-8.0', 'Aladdin'], ['afl-2.1', 'AFL-2.1'], + ['afl-3.0', 'AFL-3.0'], ['afmparse', 'Afmparse'], + ['afpl-8.0', 'Aladdin'], + ['afpl-9.0', 'LicenseRef-scancode-afpl-9.0'], + ['agentxpp', 'LicenseRef-scancode-agentxpp'], + ['agere-bsd', 'LicenseRef-scancode-agere-bsd'], + ['agere-sla', 'LicenseRef-scancode-agere-sla'], + ['ago-private-1.0', 'LicenseRef-scancode-ago-private-1.0'], ['agpl-1.0', 'AGPL-1.0-only'], - ['afl-3.0', 'AFL-3.0'], - ['agpl-3.0-plus', 'AGPL-3.0-or-later'], ['agpl-1.0-plus', 'AGPL-1.0-or-later'], + ['agpl-2.0', 'LicenseRef-scancode-agpl-2.0'], ['agpl-3.0', 'AGPL-3.0-only'], + ['agpl-3.0-bacula', 'null'], + ['agpl-3.0-linking-exception', 'null'], + ['agpl-3.0-openssl', 'null'], + ['agpl-3.0-plus', 'AGPL-3.0-or-later'], + ['agpl-generic-additional-terms', 'LicenseRef-scancode-agpl-generic-additional-terms'], + ['agtpl', 'LicenseRef-scancode-agtpl'], + ['aladdin-md5', 'null'], + ['alasir', 'LicenseRef-scancode-alasir'], + ['aldor-public-2.0', 'LicenseRef-scancode-aldor-public-2.0'], + ['alexisisaac-freeware', 'LicenseRef-scancode-alexisisaac-freeware'], + ['alfresco-exception-0.5', 'LicenseRef-scancode-alfresco-exception-0.5'], ['allegro-4', 'Giftware'], + ['allen-institute-software-2018', 'LicenseRef-scancode-allen-institute-software-2018'], + ['alliance-open-media-patent-1.0', 'LicenseRef-scancode-alliance-open-media-patent-1.0'], + ['altermime', 'LicenseRef-scancode-altermime'], + ['altova-eula', 'LicenseRef-scancode-altova-eula'], + ['amazon-redshift-jdbc', 'LicenseRef-scancode-amazon-redshift-jdbc'], + ['amazon-sl', 'LicenseRef-.amazon.com.-AmznSL-1.0'], + ['amd-aspf-2023', 'LicenseRef-scancode-amd-aspf-2023'], + ['amd-historical', 'LicenseRef-scancode-amd-historical'], + ['amd-linux-firmware', 'LicenseRef-scancode-amd-linux-firmware'], + ['amd-linux-firmware-export', 'LicenseRef-scancode-amd-linux-firmware-export'], ['amdplpa', 'AMDPLPA'], ['aml', 'AML'], + ['amlogic-linux-firmware', 'LicenseRef-scancode-amlogic-linux-firmware'], ['ampas', 'AMPAS'], + ['ams-fonts', 'LicenseRef-scancode-ams-fonts'], + ['android-sdk-2009', 'LicenseRef-scancode-android-sdk-2009'], + ['android-sdk-2012', 'LicenseRef-scancode-android-sdk-2012'], + ['android-sdk-2021', 'LicenseRef-scancode-android-sdk-2021'], + ['android-sdk-license', 'LicenseRef-scancode-android-sdk-license'], + ['android-sdk-preview-2015', 'LicenseRef-scancode-android-sdk-preview-2015'], + ['anepokis-1.0', 'LicenseRef-scancode-anepokis-1.0'], + ['anti-capitalist-1.4', 'LicenseRef-scancode-anti-capitalist-1.4'], ['antlr-pd', 'ANTLR-PD'], - ['apache-1.1', 'Apache-1.1'], + ['antlr-pd-fallback', 'ANTLR-PD-fallback'], + ['anu-license', 'LicenseRef-scancode-anu-license'], + ['aop-pd', 'null'], ['apache-1.0', 'Apache-1.0'], + ['apache-1.1', 'Apache-1.1'], ['apache-2.0', 'Apache-2.0'], + ['apache-2.0-linking-exception', 'null'], + ['apache-2.0-runtime-library-exception', 'null'], + ['apache-due-credit', 'null'], + ['apache-exception-llvm', 'null'], + ['apache-patent-exception', 'LicenseRef-scancode-apache-patent-exception'], + ['apache-patent-provision-exception', 'null'], ['apafml', 'APAFML'], - ['apsl-1.2', 'APSL-1.2'], + ['apl-1.1', 'LicenseRef-scancode-apl-1.1'], + ['app-s2p', 'App-s2p'], + ['appfire-eula', 'LicenseRef-scancode-appfire-eula'], + ['apple-academic-lisa-os-3.1', 'LicenseRef-scancode-apple-academic-lisa-os-3.1'], + ['apple-attribution', 'LicenseRef-scancode-apple-attribution'], + ['apple-attribution-1997', 'LicenseRef-scancode-apple-attribution-1997'], + ['apple-excl', 'LicenseRef-scancode-apple-excl'], + ['apple-mfi-license', 'LicenseRef-scancode-apple-mfi-license'], + ['apple-ml-ferret-2023', 'LicenseRef-scancode-apple-ml-ferret-2023'], + ['apple-mpeg-4', 'LicenseRef-scancode-apple-mpeg-4'], + ['apple-runtime-library-exception', 'Swift-exception'], + ['apple-sscl', 'LicenseRef-scancode-apple-sscl'], + ['appsflyer-framework', 'LicenseRef-scancode-appsflyer-framework'], ['apsl-1.0', 'APSL-1.0'], - ['apsl-2.0', 'APSL-2.0'], ['apsl-1.1', 'APSL-1.1'], + ['apsl-1.2', 'APSL-1.2'], + ['apsl-2.0', 'APSL-2.0'], + ['aptana-1.0', 'LicenseRef-scancode-aptana-1.0'], + ['aptana-exception-3.0', 'LicenseRef-scancode-aptana-exception-3.0'], + ['arachni-psl-1.0', 'LicenseRef-scancode-arachni-psl-1.0'], + ['aravindan-premkumar', 'LicenseRef-scancode-aravindan-premkumar'], + ['argouml', 'LicenseRef-scancode-argouml'], + ['arm-cortex-mx', 'LicenseRef-scancode-arm-cortex-mx'], + ['arm-llvm-sga', 'LicenseRef-scancode-arm-llvm-sga'], + ['arphic-public', 'Arphic-1999'], + ['array-input-method-pl', 'LicenseRef-scancode-array-input-method-pl'], + ['artistic-1.0', 'Artistic-1.0'], ['artistic-1.0-cl8', 'Artistic-1.0-cl8'], ['artistic-2.0', 'Artistic-2.0'], - ['artistic-1.0', 'Artistic-1.0'], ['artistic-clarified', 'ClArtistic'], + ['artistic-dist-1.0', 'LicenseRef-scancode-artistic-1988-1.0'], ['artistic-perl-1.0', 'Artistic-1.0-Perl'], + ['asal-1.0', 'LicenseRef-scancode-asal-1.0'], + ['ascender-eula', 'LicenseRef-scancode-ascender-eula'], + ['ascender-web-fonts', 'LicenseRef-scancode-ascender-web-fonts'], + ['aslp', 'LicenseRef-scancode-aslp'], + ['aslr', 'LicenseRef-scancode-aslr'], + ['asmus', 'LicenseRef-scancode-asmus'], + ['asn1', 'LicenseRef-scancode-asn1'], + ['asterisk-exception', 'Asterisk-exception'], + ['aswf-digital-assets-1.0', 'ASWF-Digital-Assets-1.0'], + ['aswf-digital-assets-1.1', 'ASWF-Digital-Assets-1.1'], + ['ati-eula', 'LicenseRef-scancode-ati-eula'], + ['atkinson-hyperlegible-font', 'LicenseRef-scancode-atkinson-hyperlegible-font'], + ['atlassian-marketplace-tou', 'LicenseRef-scancode-atlassian-marketplace-tou'], + ['atmel-firmware', 'LicenseRef-scancode-atmel-firmware'], + ['atmel-linux-firmware', 'LicenseRef-scancode-atmel-linux-firmware'], + ['atmel-microcontroller', 'LicenseRef-scancode-atmel-microcontroller'], + ['atmosphere-0.4', 'LicenseRef-scancode-atmosphere-0.4'], ['attribution', 'AAL'], + ['authorizenet-sdk', 'LicenseRef-scancode-authorizenet-sdk'], ['autoconf-exception-2.0', 'Autoconf-exception-2.0'], ['autoconf-exception-3.0', 'Autoconf-exception-3.0'], + ['autoconf-macro-exception', 'Autoconf-exception-macro'], + ['autoconf-simple-exception', 'Autoconf-exception-generic-3.0'], + ['autoconf-simple-exception-2.0', 'Autoconf-exception-generic'], + ['autodesk-3d-sft-3.0', 'LicenseRef-scancode-autodesk-3d-sft-3.0'], + ['autoit-eula', 'LicenseRef-scancode-autoit-eula'], + ['autoopts-exception-2.0', 'LicenseRef-scancode-autoopts-exception-2.0'], + ['avisynth-c-interface-exception', 'LicenseRef-scancode-avisynth-c-exception'], + ['avisynth-linking-exception', 'LicenseRef-scancode-avisynth-linking-exception'], + ['avsystem-5-clause', 'LicenseRef-scancode-avsystem-5-clause'], + ['bacula-exception', 'LicenseRef-scancode-bacula-exception'], + ['baekmuk-fonts', 'Baekmuk'], ['bahyph', 'Bahyph'], + ['bakoma-fonts-1995', 'LicenseRef-scancode-bakoma-fonts-1995'], + ['bapl-1.0', 'LicenseRef-scancode-bapl-1.0'], ['barr-tex', 'Barr'], + ['bash-exception-gpl', 'LicenseRef-scancode-bash-exception-gpl-2.0'], + ['bcrypt-solar-designer', 'bcrypt-Solar-Designer'], + ['bea-2.1', 'LicenseRef-scancode-bea-2.1'], + ['beal-screamer', 'LicenseRef-scancode-beal-screamer'], ['beerware', 'Beerware'], + ['beri-hw-sw-1.0', 'LicenseRef-scancode-beri-hw-sw-1.0'], + ['bigcode-open-rail-m-v1', 'LicenseRef-scancode-bigcode-open-rail-m-v1'], + ['bigdigits', 'LicenseRef-scancode-bigdigits'], + ['bigelow-holmes', 'Lucida-Bitmap-Fonts'], + ['bigscience-open-rail-m', 'LicenseRef-scancode-bigscience-open-rail-m'], + ['bigscience-rail-1.0', 'LicenseRef-scancode-bigscience-rail-1.0'], + ['binary-linux-firmware', 'LicenseRef-scancode-binary-linux-firmware'], + ['binary-linux-firmware-patent', 'LicenseRef-scancode-binary-linux-firmware-patent'], + ['biopython', 'LicenseRef-scancode-biopython'], + ['biosl-4.0', 'LicenseRef-scancode-biosl-4.0'], + ['bison-exception-2.0', 'Bison-exception-1.24'], ['bison-exception-2.2', 'Bison-exception-2.2'], + ['bitstream', 'Bitstream-Vera'], ['bittorrent-1.0', 'BitTorrent-1.0'], ['bittorrent-1.1', 'BitTorrent-1.1'], + ['bittorrent-1.2', 'LicenseRef-scancode-bittorrent-1.2'], + ['bittorrent-eula', 'LicenseRef-scancode-bittorrent-eula'], + ['bitwarden-1.0', 'LicenseRef-scancode-bitwarden-1.0'], + ['bitzi-pd', 'LicenseRef-scancode-bitzi-pd'], + ['blas-2017', 'LicenseRef-scancode-blas-2017'], + ['blender-2010', 'LicenseRef-scancode-blender-2010'], + ['blessing', 'blessing'], + ['blitz-artistic', 'LicenseRef-scancode-blitz-artistic'], + ['bloomberg-blpapi', 'LicenseRef-scancode-bloomberg-blpapi'], + ['blueoak-1.0.0', 'BlueOak-1.0.0'], + ['bohl-0.2', 'LicenseRef-scancode-bohl-0.2'], ['boost-1.0', 'BSL-1.0'], + ['boost-original', 'LicenseRef-scancode-boost-original'], ['bootloader-exception', 'Bootloader-exception'], ['borceux', 'Borceux'], + ['boutell-libgd-2021', 'LicenseRef-scancode-boutell-libgd-2021'], + ['bpel4ws-spec', 'LicenseRef-scancode-bpel4ws-spec'], + ['bpmn-io', 'LicenseRef-scancode-bpmn-io'], + ['brad-martinez-vb-32', 'LicenseRef-scancode-brad-martinez-vb-32'], + ['brankas-open-license-1.0', 'LicenseRef-scancode-brankas-open-license-1.0'], + ['brent-corkum', 'LicenseRef-scancode-brent-corkum'], + ['brian-clapper', 'LicenseRef-scancode-brian-clapper'], + ['brian-gladman', 'Brian-Gladman-2-Clause'], + ['brian-gladman-3-clause', 'LicenseRef-scancode-brian-gladman-3-clause'], + ['brian-gladman-dual', 'Brian-Gladman-3-Clause'], + ['broadcom-cfe', 'LicenseRef-scancode-broadcom-cfe'], + ['broadcom-commercial', 'LicenseRef-scancode-broadcom-commercial'], + ['broadcom-confidential', 'LicenseRef-scancode-broadcom-confidential'], + ['broadcom-dual', 'null'], + ['broadcom-linking-exception-2.0', 'LicenseRef-scancode-bcm-linking-exception-2.0'], + ['broadcom-linking-unmodified', 'LicenseRef-scancode-broadcom-linking-unmodified'], + ['broadcom-linux-firmware', 'LicenseRef-scancode-broadcom-linux-firmware'], + ['broadcom-linux-timer', 'LicenseRef-scancode-broadcom-linux-timer'], + ['broadcom-opus-patent', 'LicenseRef-scancode-broadcom-opus-patent'], + ['broadcom-proprietary', 'LicenseRef-scancode-broadcom-proprietary'], + ['broadcom-raspberry-pi', 'LicenseRef-scancode-broadcom-raspberry-pi'], + ['broadcom-standard-terms', 'LicenseRef-scancode-broadcom-standard-terms'], + ['broadcom-unmodified-exception', 'LicenseRef-scancode-broadcom-unmodified-exception'], + ['broadcom-unpublished-source', 'null'], + ['broadcom-wiced', 'LicenseRef-scancode-broadcom-wiced'], + ['broadleaf-fair-use', 'LicenseRef-scancode-broadleaf-fair-use'], + ['brocade-firmware', 'LicenseRef-scancode-brocade-firmware'], + ['bruno-podetti', 'LicenseRef-scancode-bruno-podetti'], ['bsd-1-clause', 'BSD-1-Clause'], - ['bsd-2-clause-freebsd', 'BSD-2-Clause-FreeBSD'], - ['bsd-2-clause-netbsd', 'BSD-2-Clause-NetBSD'], + ['bsd-1-clause-build', 'LicenseRef-scancode-bsd-1-clause-build'], + ['bsd-1988', 'LicenseRef-scancode-bsd-1988'], + ['bsd-2-clause-freebsd', 'null'], + ['bsd-2-clause-netbsd', 'null'], + ['bsd-2-clause-plus-advertizing', 'LicenseRef-scancode-bsd-2-clause-plus-advertizing'], + ['bsd-2-clause-views', 'BSD-2-Clause-Views'], + ['bsd-3-clause-devine', 'LicenseRef-scancode-bsd-3-clause-devine'], + ['bsd-3-clause-fda', 'LicenseRef-scancode-bsd-3-clause-fda'], + ['bsd-3-clause-hp', 'BSD-3-Clause-HP'], + ['bsd-3-clause-jtag', 'LicenseRef-scancode-bsd-3-clause-jtag'], + ['bsd-3-clause-no-change', 'LicenseRef-scancode-bsd-3-clause-no-change'], + ['bsd-3-clause-no-military', 'BSD-3-Clause-No-Military-License'], ['bsd-3-clause-no-nuclear-warranty', 'BSD-3-Clause-No-Nuclear-Warranty'], + ['bsd-3-clause-no-trademark', 'LicenseRef-scancode-bsd-3-clause-no-trademark'], + ['bsd-3-clause-open-mpi', 'BSD-3-Clause-Open-MPI'], + ['bsd-3-clause-sun', 'BSD-3-Clause-Sun'], + ['bsd-4-clause-shortened', 'BSD-4-Clause-Shortened'], ['bsd-ack', 'BSD-3-Clause-Attribution'], + ['bsd-ack-carrot2', 'LicenseRef-scancode-bsd-ack-carrot2'], + ['bsd-advertising-acknowledgement', 'BSD-Advertising-Acknowledgement'], + ['bsd-artwork', 'LicenseRef-scancode-bsd-artwork'], + ['bsd-atmel', 'LicenseRef-scancode-bsd-atmel'], + ['bsd-axis', 'null'], + ['bsd-axis-nomod', 'LicenseRef-scancode-bsd-axis-nomod'], + ['bsd-credit', 'LicenseRef-scancode-bsd-credit'], + ['bsd-dpt', 'LicenseRef-scancode-bsd-dpt'], + ['bsd-export', 'LicenseRef-scancode-bsd-export'], + ['bsd-inferno-nettverk', 'BSD-Inferno-Nettverk'], + ['bsd-innosys', 'LicenseRef-scancode-bsd-innosys'], + ['bsd-intel', 'null'], + ['bsd-mylex', 'LicenseRef-scancode-bsd-mylex'], ['bsd-new', 'BSD-3-Clause'], + ['bsd-new-derivative', 'LicenseRef-scancode-bsd-new-derivative'], + ['bsd-new-far-manager', 'null'], + ['bsd-new-nomod', 'LicenseRef-scancode-bsd-new-nomod'], + ['bsd-new-tcpdump', 'LicenseRef-scancode-bsd-new-tcpdump'], + ['bsd-no-disclaimer', 'LicenseRef-scancode-bsd-no-disclaimer'], + ['bsd-no-disclaimer-unmodified', 'LicenseRef-scancode-bsd-no-disclaimer-unmodified'], + ['bsd-no-mod', 'LicenseRef-scancode-bsd-no-mod'], ['bsd-original', 'BSD-4-Clause'], + ['bsd-original-muscle', 'LicenseRef-scancode-bsd-original-muscle'], ['bsd-original-uc', 'BSD-4-Clause-UC'], - ['bsd-protection', 'BSD-Protection'], + ['bsd-original-uc-1986', 'BSD-4.3RENO'], + ['bsd-original-uc-1990', 'null'], + ['bsd-original-voices', 'LicenseRef-scancode-bsd-original-voices'], + ['bsd-plus-mod-notice', 'LicenseRef-scancode-bsd-plus-mod-notice'], ['bsd-plus-patent', 'BSD-2-Clause-Patent'], + ['bsd-protection', 'BSD-Protection'], ['bsd-simplified', 'BSD-2-Clause'], + ['bsd-simplified-darwin', 'BSD-2-Clause-Darwin'], + ['bsd-simplified-intel', 'LicenseRef-scancode-bsd-simplified-intel'], + ['bsd-simplified-source', 'LicenseRef-scancode-bsd-simplified-source'], ['bsd-source-code', 'BSD-Source-Code'], + ['bsd-systemics', 'BSD-Systemics'], + ['bsd-systemics-w3works', 'BSD-Systemics-W3Works'], + ['bsd-top', 'BSD-Source-beginning-file'], + ['bsd-top-gpl-addition', 'LicenseRef-scancode-bsd-top-gpl-addition'], + ['bsd-unchanged', 'LicenseRef-scancode-bsd-unchanged'], + ['bsd-unmodified', 'LicenseRef-scancode-bsd-unmodified'], + ['bsd-x11', 'LicenseRef-scancode-bsd-x11'], ['bsd-zero', '0BSD'], + ['bsl-1.0', 'LicenseRef-scancode-bsl-1.0'], + ['bsl-1.1', 'BUSL-1.1'], + ['bsla', 'BSD-4.3TAHOE'], + ['bsla-no-advert', 'LicenseRef-scancode-bsla-no-advert'], + ['bugsense-sdk', 'LicenseRef-scancode-bugsense-sdk'], + ['bytemark', 'LicenseRef-scancode-bytemark'], + ['bzip2-libbzip-1.0.5', 'null'], ['bzip2-libbzip-2010', 'bzip2-1.0.6'], - ['caldera', 'Caldera'], + ['c-fsl-1.1', 'LicenseRef-scancode-c-fsl-1.1'], + ['c-uda-1.0', 'C-UDA-1.0'], ['ca-tosl-1.1', 'CATOSL-1.1'], - ['bzip2-libbzip-1.0.5', 'bzip2-1.0.5'], + ['cadence-linux-firmware', 'LicenseRef-scancode-cadence-linux-firmware'], + ['cal-1.0', 'CAL-1.0'], + ['cal-1.0-combined-work-exception', 'CAL-1.0-Combined-Work-Exception'], + ['caldera', 'Caldera'], + ['caldera-no-preamble', 'Caldera-no-preamble'], + ['can-ogl-2.0-en', 'OGL-Canada-2.0'], + ['can-ogl-alberta-2.1', 'LicenseRef-scancode-can-ogl-alberta-2.1'], + ['can-ogl-british-columbia-2.0', 'LicenseRef-scancode-can-ogl-british-columbia-2.0'], + ['can-ogl-nova-scotia-1.0', 'LicenseRef-scancode-can-ogl-nova-scotia-1.0'], + ['can-ogl-ontario-1.0', 'LicenseRef-scancode-can-ogl-ontario-1.0'], + ['can-ogl-toronto-1.0', 'LicenseRef-scancode-can-ogl-toronto-1.0'], + ['canonical-ha-cla-any-e-v1.2', 'LicenseRef-scancode-canonical-ha-cla-any-e-v1.2'], + ['canonical-ha-cla-any-i-v1.2', 'LicenseRef-scancode-canonical-ha-cla-any-i-v1.2'], + ['capec-tou', 'LicenseRef-scancode-capec-tou'], + ['careware', 'LicenseRef-scancode-careware'], + ['carnegie-mellon', 'LicenseRef-scancode-carnegie-mellon'], + ['carnegie-mellon-contributors', 'CMU-Mach'], + ['catharon-osl', 'LicenseRef-scancode-catharon-osl'], + ['cavium-linux-firmware', 'LicenseRef-scancode-cavium-linux-firmware'], + ['cavium-malloc', 'LicenseRef-scancode-cavium-malloc'], + ['cavium-targeted-hardware', 'LicenseRef-scancode-cavium-targeted-hardware'], ['cc-by-1.0', 'CC-BY-1.0'], + ['cc-by-2.0', 'CC-BY-2.0'], + ['cc-by-2.0-uk', 'LicenseRef-scancode-cc-by-2.0-uk'], ['cc-by-2.5', 'CC-BY-2.5'], - ['cc-by-4.0', 'CC-BY-4.0'], + ['cc-by-2.5-au', 'CC-BY-2.5-AU'], ['cc-by-3.0', 'CC-BY-3.0'], - ['cc-by-2.0', 'CC-BY-2.0'], + ['cc-by-3.0-at', 'CC-BY-3.0-AT'], + ['cc-by-3.0-au', 'CC-BY-3.0-AU'], + ['cc-by-3.0-de', 'CC-BY-3.0-DE'], + ['cc-by-3.0-igo', 'CC-BY-3.0-IGO'], + ['cc-by-3.0-nl', 'CC-BY-3.0-NL'], + ['cc-by-3.0-us', 'CC-BY-3.0-US'], + ['cc-by-4.0', 'CC-BY-4.0'], ['cc-by-nc-1.0', 'CC-BY-NC-1.0'], - ['cc-by-nc-3.0', 'CC-BY-NC-3.0'], + ['cc-by-nc-2.0', 'CC-BY-NC-2.0'], ['cc-by-nc-2.5', 'CC-BY-NC-2.5'], + ['cc-by-nc-3.0', 'CC-BY-NC-3.0'], + ['cc-by-nc-3.0-de', 'CC-BY-NC-3.0-DE'], ['cc-by-nc-4.0', 'CC-BY-NC-4.0'], ['cc-by-nc-nd-1.0', 'CC-BY-NC-ND-1.0'], - ['cc-by-nc-2.0', 'CC-BY-NC-2.0'], ['cc-by-nc-nd-2.0', 'CC-BY-NC-ND-2.0'], - ['cc-by-nc-nd-3.0', 'CC-BY-NC-ND-3.0'], + ['cc-by-nc-nd-2.0-at', 'LicenseRef-scancode-cc-by-nc-nd-2.0-at'], + ['cc-by-nc-nd-2.0-au', 'LicenseRef-scancode-cc-by-nc-nd-2.0-au'], ['cc-by-nc-nd-2.5', 'CC-BY-NC-ND-2.5'], + ['cc-by-nc-nd-3.0', 'CC-BY-NC-ND-3.0'], + ['cc-by-nc-nd-3.0-de', 'CC-BY-NC-ND-3.0-DE'], + ['cc-by-nc-nd-3.0-igo', 'CC-BY-NC-ND-3.0-IGO'], ['cc-by-nc-nd-4.0', 'CC-BY-NC-ND-4.0'], - ['cc-by-nc-sa-3.0', 'CC-BY-NC-SA-3.0'], + ['cc-by-nc-sa-1.0', 'CC-BY-NC-SA-1.0'], + ['cc-by-nc-sa-2.0', 'CC-BY-NC-SA-2.0'], + ['cc-by-nc-sa-2.0-de', 'CC-BY-NC-SA-2.0-DE'], + ['cc-by-nc-sa-2.0-fr', 'CC-BY-NC-SA-2.0-FR'], + ['cc-by-nc-sa-2.0-uk', 'CC-BY-NC-SA-2.0-UK'], ['cc-by-nc-sa-2.5', 'CC-BY-NC-SA-2.5'], + ['cc-by-nc-sa-3.0', 'CC-BY-NC-SA-3.0'], + ['cc-by-nc-sa-3.0-de', 'CC-BY-NC-SA-3.0-DE'], + ['cc-by-nc-sa-3.0-igo', 'CC-BY-NC-SA-3.0-IGO'], + ['cc-by-nc-sa-3.0-us', 'LicenseRef-scancode-cc-by-nc-sa-3.0-us'], ['cc-by-nc-sa-4.0', 'CC-BY-NC-SA-4.0'], ['cc-by-nd-1.0', 'CC-BY-ND-1.0'], - ['cc-by-nd-3.0', 'CC-BY-ND-3.0'], - ['cc-by-nc-sa-1.0', 'CC-BY-NC-SA-1.0'], - ['cc-by-nc-sa-2.0', 'CC-BY-NC-SA-2.0'], ['cc-by-nd-2.0', 'CC-BY-ND-2.0'], ['cc-by-nd-2.5', 'CC-BY-ND-2.5'], + ['cc-by-nd-3.0', 'CC-BY-ND-3.0'], + ['cc-by-nd-3.0-de', 'CC-BY-ND-3.0-DE'], ['cc-by-nd-4.0', 'CC-BY-ND-4.0'], ['cc-by-sa-1.0', 'CC-BY-SA-1.0'], ['cc-by-sa-2.0', 'CC-BY-SA-2.0'], + ['cc-by-sa-2.0-uk', 'CC-BY-SA-2.0-UK'], + ['cc-by-sa-2.1-jp', 'CC-BY-SA-2.1-JP'], ['cc-by-sa-2.5', 'CC-BY-SA-2.5'], ['cc-by-sa-3.0', 'CC-BY-SA-3.0'], + ['cc-by-sa-3.0-at', 'CC-BY-SA-3.0-AT'], + ['cc-by-sa-3.0-de', 'CC-BY-SA-3.0-DE'], + ['cc-by-sa-3.0-igo', 'CC-BY-SA-3.0-IGO'], ['cc-by-sa-4.0', 'CC-BY-SA-4.0'], + ['cc-devnations-2.0', 'LicenseRef-scancode-cc-devnations-2.0'], + ['cc-gpl-2.0-pt', 'LicenseRef-scancode-cc-gpl-2.0-pt'], + ['cc-lgpl-2.1-pt', 'LicenseRef-scancode-cc-lgpl-2.1-pt'], + ['cc-nc-1.0', 'LicenseRef-scancode-cc-nc-1.0'], + ['cc-nc-sampling-plus-1.0', 'LicenseRef-scancode-cc-nc-sampling-plus-1.0'], + ['cc-nd-1.0', 'LicenseRef-scancode-cc-nd-1.0'], + ['cc-pd', 'CC-PDDC'], + ['cc-pdm-1.0', 'LicenseRef-scancode-cc-pdm-1.0'], + ['cc-sa-1.0', 'LicenseRef-scancode-cc-sa-1.0'], + ['cc-sampling-1.0', 'LicenseRef-scancode-cc-sampling-1.0'], + ['cc-sampling-plus-1.0', 'LicenseRef-scancode-cc-sampling-plus-1.0'], ['cc0-1.0', 'CC0-1.0'], + ['cclrc', 'LicenseRef-scancode-cclrc'], + ['ccrc-1.0', 'null'], ['cddl-1.0', 'CDDL-1.0'], - ['cdla-sharing-1.0', 'CDLA-Sharing-1.0'], - ['cdla-permissive-1.0', 'CDLA-Permissive-1.0'], ['cddl-1.1', 'CDDL-1.1'], + ['cdla-permissive-1.0', 'CDLA-Permissive-1.0'], + ['cdla-permissive-2.0', 'CDLA-Permissive-2.0'], + ['cdla-sharing-1.0', 'CDLA-Sharing-1.0'], ['cecill-1.0', 'CECILL-1.0'], - ['cecill-b', 'CECILL-B'], - ['cecill-2.0', 'CECILL-2.0'], + ['cecill-1.0-en', 'LicenseRef-scancode-cecill-1.0-en'], ['cecill-1.1', 'CECILL-1.1'], + ['cecill-2.0', 'CECILL-2.0'], + ['cecill-2.0-fr', 'LicenseRef-scancode-cecill-2.0-fr'], ['cecill-2.1', 'CECILL-2.1'], + ['cecill-2.1-fr', 'LicenseRef-scancode-cecill-2.1-fr'], + ['cecill-b', 'CECILL-B'], + ['cecill-b-en', 'LicenseRef-scancode-cecill-b-en'], ['cecill-c', 'CECILL-C'], - ['classworlds', 'Plexus'], - ['clisp-exception-2.0', 'CLISP-exception-2.0'], - ['clear-bsd', 'BSD-3-Clause-Clear'], + ['cecill-c-en', 'LicenseRef-scancode-cecill-c-en'], + ['cern-attribution-1995', 'LicenseRef-scancode-cern-attribution-1995'], + ['cern-ohl-1.1', 'CERN-OHL-1.1'], + ['cern-ohl-1.2', 'CERN-OHL-1.2'], + ['cern-ohl-p-2.0', 'CERN-OHL-P-2.0'], + ['cern-ohl-s-2.0', 'CERN-OHL-S-2.0'], + ['cern-ohl-w-2.0', 'CERN-OHL-W-2.0'], + ['cfitsio', 'CFITSIO'], + ['cgic', 'LicenseRef-scancode-cgic'], + ['chartdirector-6.0', 'LicenseRef-scancode-chartdirector-6.0'], + ['check-cvs', 'check-cvs'], + ['checkmk', 'checkmk'], + ['chelsio-linux-firmware', 'LicenseRef-scancode-chelsio-linux-firmware'], + ['chicken-dl-0.2', 'LicenseRef-scancode-chicken-dl-0.2'], + ['chris-maunder', 'LicenseRef-scancode-chris-maunder'], + ['chris-stoy', 'LicenseRef-scancode-chris-stoy'], + ['christopher-velazquez', 'LicenseRef-scancode-christopher-velazquez'], + ['cisco-avch264-patent', 'LicenseRef-scancode-cisco-avch264-patent'], + ['civicrm-exception-to-agpl-3.0', 'LicenseRef-scancode-civicrm-exception-to-agpl-3.0'], + ['classic-vb', 'LicenseRef-scancode-classic-vb'], ['classpath-exception-2.0', 'Classpath-exception-2.0'], - ['cnri-jython', 'CNRI-Jython'], + ['classworlds', 'null'], + ['clause-6-exception-lgpl-2.1', 'LicenseRef-scancode-clause-6-exception-lgpl-2.1'], + ['clear-bsd', 'BSD-3-Clause-Clear'], + ['clear-bsd-1-clause', 'LicenseRef-scancode-clear-bsd-1-clause'], + ['click-license', 'LicenseRef-scancode-click-license'], + ['clips-2017', 'Clips'], + ['clisp-exception-2.0', 'CLISP-exception-2.0'], + ['clojure-exception-to-gpl-3.0', 'LicenseRef-scancode-clojure-exception-to-gpl-3.0'], + ['cloudera-express', 'LicenseRef-scancode-cloudera-express'], + ['cmigemo', 'LicenseRef-scancode-cmigemo'], + ['cmr-no', 'null'], + ['cmu-computing-services', 'BSD-Attribution-HPND-disclaimer'], + ['cmu-flite', 'LicenseRef-scancode-cmu-flite'], + ['cmu-mit', 'LicenseRef-scancode-cmu-mit'], + ['cmu-nara-nagoya', 'LicenseRef-scancode-cmu-nara-nagoya'], + ['cmu-simple', 'LicenseRef-scancode-cmu-simple'], + ['cmu-template', 'LicenseRef-scancode-cmu-template'], ['cmu-uc', 'MIT-CMU'], + ['cncf-corporate-cla-1.0', 'LicenseRef-scancode-cncf-corporate-cla-1.0'], + ['cncf-individual-cla-1.0', 'LicenseRef-scancode-cncf-individual-cla-1.0'], + ['cnri-jython', 'CNRI-Jython'], ['cnri-python-1.6', 'CNRI-Python'], ['cnri-python-1.6.1', 'CNRI-Python-GPL-Compatible'], - ['copyleft-next-0.3.1', 'copyleft-next-0.3.1'], + ['cockroach', 'LicenseRef-scancode-cockroach'], + ['cockroachdb-use-grant-for-bsl-1.1', 'LicenseRef-scancode-cockroachdb-use-grant-bsl-1.1'], + ['code-credit-license-1.0-0', 'LicenseRef-scancode-code-credit-license-1.0.0'], + ['code-credit-license-1.0.1', 'LicenseRef-scancode-code-credit-license-1.0.1'], + ['code-credit-license-1.1.0', 'LicenseRef-scancode-code-credit-license-1.1.0'], + ['codeguru-permissions', 'LicenseRef-scancode-codeguru-permissions'], + ['codelite-exception-to-gpl', 'LicenseRef-scancode-codelite-exception-to-gpl'], + ['codesourcery-2004', 'LicenseRef-scancode-codesourcery-2004'], + ['codexia', 'LicenseRef-scancode-codexia'], + ['cognitive-web-osl-1.1', 'LicenseRef-scancode-cognitive-web-osl-1.1'], + ['coil-1.0', 'COIL-1.0'], + ['colt', 'LicenseRef-scancode-colt'], + ['com-oreilly-servlet', 'LicenseRef-scancode-com-oreilly-servlet'], + ['commercial-license', 'LicenseRef-scancode-commercial-license'], + ['commercial-option', 'null'], + ['commonj-timer', 'LicenseRef-scancode-commonj-timer'], + ['commons-clause', 'LicenseRef-scancode-commons-clause'], + ['compass', 'LicenseRef-scancode-compass'], + ['componentace-jcraft', 'LicenseRef-scancode-componentace-jcraft'], + ['compuphase-linking-exception', 'LicenseRef-scancode-compuphase-linking-exception'], + ['concursive-pl-1.0', 'LicenseRef-scancode-concursive-pl-1.0'], ['condor-1.1', 'Condor-1.1'], + ['confluent-community-1.0', 'LicenseRef-scancode-confluent-community-1.0'], + ['cooperative-non-violent-4.0', 'LicenseRef-scancode-cooperative-non-violent-4.0'], + ['cooperative-non-violent-6.0', 'LicenseRef-scancode-cooperative-non-violent-6.0'], + ['cooperative-non-violent-7.0', 'LicenseRef-scancode-cooperative-non-violent-7.0'], + ['copyheart', 'LicenseRef-scancode-copyheart'], + ['copyleft-next-0.3.0', 'copyleft-next-0.3.0'], + ['copyleft-next-0.3.1', 'copyleft-next-0.3.1'], + ['cornell-lossless-jpeg', 'Cornell-Lossless-JPEG'], + ['corporate-accountability-1.1', 'LicenseRef-scancode-corporate-accountability-1.1'], + ['corporate-accountability-commercial-1.1', 'LicenseRef-scancode-accountability-commercial-1.1'], + ['cosl', 'LicenseRef-scancode-cosl'], + ['cosli', 'LicenseRef-scancode-cosli'], + ['couchbase-community', 'LicenseRef-scancode-couchbase-community'], + ['couchbase-enterprise', 'LicenseRef-scancode-couchbase-enterprise'], ['cpal-1.0', 'CPAL-1.0'], + ['cpl-0.5', 'LicenseRef-scancode-cpl-0.5'], ['cpl-1.0', 'CPL-1.0'], + ['cpm-2022', 'LicenseRef-scancode-cpm-2022'], + ['cpol-1.0', 'LicenseRef-scancode-cpol-1.0'], ['cpol-1.02', 'CPOL-1.02'], - ['crystal-stacker', 'CrystalStacker'], + ['cpp-core-guidelines', 'LicenseRef-scancode-cpp-core-guidelines'], + ['crapl-0.1', 'LicenseRef-scancode-crapl-0.1'], + ['crashlytics-agreement-2018', 'LicenseRef-scancode-crashlytics-agreement-2018'], + ['crcalc', 'LicenseRef-scancode-crcalc'], + ['cronyx', 'Cronyx'], ['crossword', 'Crossword'], + ['crunchbase-data-2019-12-17', 'LicenseRef-scancode-crunchbase-data-2019-12-17'], + ['crypto-keys-redistribution', 'LicenseRef-scancode-crypto-keys-redistribution'], + ['cryptopp', 'LicenseRef-scancode-cryptopp'], + ['crystal-stacker', 'CrystalStacker'], + ['csl-1.0', 'Community-Spec-1.0'], + ['csla', 'LicenseRef-scancode-csla'], + ['csprng', 'LicenseRef-scancode-csprng'], + ['ctl-linux-firmware', 'LicenseRef-scancode-ctl-linux-firmware'], ['cua-opl-1.0', 'CUA-OPL-1.0'], ['cube', 'Cube'], + ['cubiware-software-1.0', 'LicenseRef-scancode-cubiware-software-1.0'], + ['cups', 'LicenseRef-scancode-cups'], + ['cups-apple-os-exception', 'LicenseRef-scancode-cups-apple-os-exception'], ['curl', 'curl'], + ['cve-tou', 'LicenseRef-scancode-cve-tou'], + ['cvwl', 'LicenseRef-scancode-cvwl'], + ['cwe-tou', 'LicenseRef-scancode-cwe-tou'], + ['cximage', 'LicenseRef-scancode-cximage'], + ['cygwin-exception-2.0', 'LicenseRef-scancode-cygwin-exception-2.0'], + ['cygwin-exception-3.0', 'LicenseRef-scancode-cygwin-exception-3.0'], + ['cygwin-exception-lgpl-3.0-plus', 'LicenseRef-scancode-cygwin-exception-lgpl-3.0-plus'], + ['cypress-linux-firmware', 'LicenseRef-scancode-cypress-linux-firmware'], ['d-fsl-1.0-de', 'D-FSL-1.0'], + ['d-fsl-1.0-en', 'LicenseRef-scancode-d-fsl-1.0-en'], + ['d-zlib', 'LicenseRef-scancode-d-zlib'], + ['damail', 'LicenseRef-scancode-damail'], + ['dante-treglia', 'LicenseRef-scancode-dante-treglia'], + ['datamekanix-license', 'LicenseRef-scancode-datamekanix-license'], + ['day-spec', 'LicenseRef-scancode-day-spec'], + ['dbad', 'LicenseRef-scancode-dbad'], + ['dbad-1.1', 'LicenseRef-scancode-dbad-1.1'], + ['dbcl-1.0', 'LicenseRef-scancode-dbcl-1.0'], + ['dbmx-foss-exception-1.0.9', 'LicenseRef-scancode-dbmx-foss-exception-1.0.9'], + ['dbmx-linking-exception-1.0', 'LicenseRef-scancode-dbmx-linking-exception-1.0'], + ['dco-1.1', 'LicenseRef-scancode-dco-1.1'], + ['dec-3-clause', 'DEC-3-Clause'], + ['defensive-patent-1.1', 'LicenseRef-scancode-defensive-patent-1.1'], + ['dejavu-font', 'LicenseRef-scancode-dejavu-font'], + ['delorie-historical', 'LicenseRef-scancode-delorie-historical'], + ['dennis-ferguson', 'LicenseRef-scancode-dennis-ferguson'], + ['devblocks-1.0', 'LicenseRef-scancode-devblocks-1.0'], + ['dgraph-cla', 'LicenseRef-scancode-dgraph-cla'], + ['dhb-lbnl-bsd-2007', 'LicenseRef-scancode-dhb-lbnl-bsd-2007'], + ['dhb-limited-bsd-2015', 'LicenseRef-scancode-dhb-limited-bsd-2015'], + ['dhtmlab-public', 'LicenseRef-scancode-dhtmlab-public'], ['diffmark', 'diffmark'], + ['digia-qt-commercial', 'LicenseRef-scancode-digia-qt-commercial'], + ['digia-qt-exception-lgpl-2.1', 'null'], + ['digia-qt-preview', 'LicenseRef-scancode-digia-qt-preview'], ['digirule-foss-exception', 'DigiRule-FOSS-exception'], + ['divx-open-1.0', 'LicenseRef-scancode-divx-open-1.0'], + ['divx-open-2.1', 'LicenseRef-scancode-divx-open-2.1'], + ['dl-de-by-1-0-de', 'LicenseRef-scancode-dl-de-by-1-0-de'], + ['dl-de-by-1-0-en', 'LicenseRef-scancode-dl-de-by-1-0-en'], + ['dl-de-by-2-0-de', 'DL-DE-BY-2.0'], + ['dl-de-by-2-0-en', 'LicenseRef-scancode-dl-de-by-2-0-en'], + ['dl-de-by-nc-1-0-de', 'LicenseRef-scancode-dl-de-by-nc-1-0-de'], + ['dl-de-by-nc-1-0-en', 'LicenseRef-scancode-dl-de-by-nc-1-0-en'], + ['dl-de-zero-2.0', 'DL-DE-ZERO-2.0'], + ['dmalloc', 'LicenseRef-scancode-dmalloc'], + ['dmtf-2017', 'LicenseRef-scancode-dmtf-2017'], + ['do-no-harm-0.1', 'LicenseRef-scancode-do-no-harm-0.1'], + ['docbook', 'LicenseRef-scancode-docbook'], + ['dom4j', 'Plexus'], + ['dos32a-extender', 'LicenseRef-scancode-dos32a-extender'], ['dotseqn', 'Dotseqn'], + ['doug-lea', 'null'], + ['douglas-young', 'LicenseRef-scancode-douglas-young'], + ['dpl-1.1', 'LicenseRef-scancode-dpl-1.1'], + ['dr-john-maddock', 'null'], + ['drl-1.0', 'DRL-1.0'], + ['drl-1.1', 'DRL-1.1'], + ['dropbear', 'LicenseRef-scancode-dropbear'], + ['dropbear-2016', 'LicenseRef-scancode-dropbear-2016'], ['dsdp', 'DSDP'], + ['dtree', 'LicenseRef-scancode-dtree'], + ['dual-bsd-gpl', 'null'], + ['dual-commercial-gpl', 'LicenseRef-scancode-dual-commercial-gpl'], + ['duende-sla-2022', 'LicenseRef-scancode-duende-sla-2022'], + ['dune-exception', 'LicenseRef-scancode-dune-exception'], ['dvipdfm', 'dvipdfm'], + ['dwtfnmfpl-3.0', 'LicenseRef-scancode-dwtfnmfpl-3.0'], + ['dynamic-drive-tou', 'LicenseRef-scancode-dynamic-drive-tou'], + ['dynarch-developer', 'LicenseRef-scancode-dynarch-developer'], + ['dynarch-linkware', 'LicenseRef-scancode-dynarch-linkware'], + ['ecfonts-1.0', 'LicenseRef-scancode-ecfonts-1.0'], ['ecl-1.0', 'ECL-1.0'], - ['ecos-exception-2.0', 'eCos-exception-2.0'], ['ecl-2.0', 'ECL-2.0'], + ['eclipse-sua-2001', 'LicenseRef-scancode-eclipse-sua-2001'], + ['eclipse-sua-2002', 'LicenseRef-scancode-eclipse-sua-2002'], + ['eclipse-sua-2003', 'LicenseRef-scancode-eclipse-sua-2003'], + ['eclipse-sua-2004', 'LicenseRef-scancode-eclipse-sua-2004'], + ['eclipse-sua-2005', 'LicenseRef-scancode-eclipse-sua-2005'], + ['eclipse-sua-2010', 'LicenseRef-scancode-eclipse-sua-2010'], + ['eclipse-sua-2011', 'LicenseRef-scancode-eclipse-sua-2011'], + ['eclipse-sua-2014', 'LicenseRef-scancode-eclipse-sua-2014'], + ['eclipse-sua-2014-11', 'LicenseRef-scancode-eclipse-sua-2014-11'], + ['eclipse-sua-2017', 'LicenseRef-scancode-eclipse-sua-2017'], + ['ecma-documentation', 'LicenseRef-scancode-ecma-documentation'], + ['ecma-no-patent', 'LicenseRef-scancode-ecma-no-patent'], + ['ecma-patent-coc-0', 'LicenseRef-scancode-ecma-patent-coc-0'], + ['ecma-patent-coc-1', 'LicenseRef-scancode-ecma-patent-coc-1'], + ['ecma-patent-coc-2', 'LicenseRef-scancode-ecma-patent-coc-2'], + ['ecos', 'eCos-2.0'], + ['ecos-exception-2.0', 'eCos-exception-2.0'], + ['ecosrh-1.0', 'LicenseRef-scancode-ecosrh-1.0'], ['ecosrh-1.1', 'RHeCos-1.1'], + ['edrdg-2000', 'LicenseRef-scancode-edrdg-2000'], + ['efl-1.0', 'EFL-1.0'], ['efl-2.0', 'EFL-2.0'], + ['efsl-1.0', 'LicenseRef-scancode-efsl-1.0'], + ['egenix-1.0.0', 'LicenseRef-scancode-egenix-1.0.0'], ['egenix-1.1.0', 'eGenix'], - ['efl-1.0', 'EFL-1.0'], - ['enna', 'MIT-enna'], + ['egrappler', 'LicenseRef-scancode-egrappler'], + ['ej-technologies-eula', 'LicenseRef-scancode-ej-technologies-eula'], + ['ekiga-exception-2.0-plus', 'LicenseRef-scancode-ekiga-exception-2.0-plus'], + ['ekioh', 'null'], + ['elastic-license-2018', 'LicenseRef-scancode-elastic-license-2018'], + ['elastic-license-v2', 'Elastic-2.0'], + ['elib-gpl', 'LicenseRef-scancode-elib-gpl'], + ['ellis-lab', 'LicenseRef-scancode-ellis-lab'], + ['embedthis-evaluation', 'LicenseRef-scancode-embedthis-evaluation'], + ['embedthis-extension', 'LicenseRef-scancode-embedthis-extension'], + ['embedthis-tou-2022', 'LicenseRef-scancode-embedthis-tou-2022'], + ['emit', 'LicenseRef-scancode-emit'], + ['emx-library', 'LicenseRef-scancode-emx-library'], + ['energyplus', 'LicenseRef-scancode-energyplus-2023'], + ['energyplus-bsd', 'LicenseRef-scancode-energyplus-bsd'], + ['enhydra-1.1', 'LicenseRef-scancode-enhydra-1.1'], ['enlightenment', 'MIT-advertising'], + ['enna', 'MIT-enna'], ['entessa-1.0', 'Entessa'], - ['epl-2.0', 'EPL-2.0'], + ['epaperpress', 'LicenseRef-scancode-epaperpress'], + ['epics', 'EPICS'], ['epl-1.0', 'EPL-1.0'], - ['eu-datagrid', 'EUDatagrid'], + ['epl-2.0', 'EPL-2.0'], + ['epo-osl-2005.1', 'LicenseRef-scancode-epo-osl-2005.1'], + ['eric-glass', 'LicenseRef-scancode-eric-glass'], ['erlangpl-1.1', 'ErlPL-1.1'], - ['eupl-1.1', 'EUPL-1.1'], + ['errbot-exception', 'LicenseRef-scancode-errbot-exception'], + ['esri', 'LicenseRef-scancode-esri'], + ['esri-devkit', 'LicenseRef-scancode-esri-devkit'], + ['etalab-2.0', 'etalab-2.0'], + ['etalab-2.0-en', 'LicenseRef-scancode-etalab-2.0-en'], + ['etalab-2.0-fr', 'null'], + ['eu-datagrid', 'EUDatagrid'], ['eupl-1.0', 'EUPL-1.0'], + ['eupl-1.1', 'EUPL-1.1'], ['eupl-1.2', 'EUPL-1.2'], ['eurosym', 'Eurosym'], + ['examdiff', 'LicenseRef-scancode-examdiff'], + ['excelsior-jet-runtime', 'LicenseRef-scancode-excelsior-jet-runtime'], + ['fabien-tassin', 'LicenseRef-scancode-fabien-tassin'], + ['fabric-agreement-2017', 'LicenseRef-scancode-fabric-agreement-2017'], + ['facebook-nuclide', 'LicenseRef-scancode-facebook-nuclide'], + ['facebook-patent-rights-2', 'LicenseRef-scancode-facebook-patent-rights-2'], + ['facebook-software-license', 'LicenseRef-scancode-facebook-software-license'], ['fair', 'Fair'], + ['fair-source-0.9', 'LicenseRef-scancode-fair-source-0.9'], + ['fancyzoom', 'LicenseRef-scancode-fancyzoom'], + ['far-manager-exception', 'LicenseRef-scancode-far-manager-exception'], + ['fastbuild-2012-2020', 'LicenseRef-scancode-fastbuild-2012-2020'], ['fastcgi-devkit', 'OML'], + ['fatfs', 'LicenseRef-scancode-fatfs'], ['fawkes-runtime-exception', 'Fawkes-Runtime-exception'], + ['fbm', 'FBM'], + ['ferguson-twofish', 'Ferguson-Twofish'], + ['fftpack-2004', 'LicenseRef-scancode-fftpack-2004'], + ['filament-group-mit', 'LicenseRef-scancode-filament-group-mit'], + ['first-works-appreciative-1.2', 'LicenseRef-scancode-first-works-appreciative-1.2'], + ['flex-2.5', 'BSD-3-Clause-flex'], + ['flex2sdk', 'LicenseRef-scancode-flex2sdk'], + ['flora-1.1', 'LicenseRef-scancode-flora-1.1'], + ['flowplayer-gpl-3.0', 'LicenseRef-scancode-flowplayer-gpl-3.0'], ['fltk-exception-lgpl-2.0', 'FLTK-exception'], + ['font-alias', 'LicenseRef-scancode-font-alias'], ['font-exception-gpl', 'Font-exception-2.0'], + ['foobar2000', 'LicenseRef-scancode-foobar2000'], + ['fpdf', 'LicenseRef-scancode-fpdf'], + ['fpl', 'LicenseRef-scancode-fpl'], + ['fplot', 'LicenseRef-scancode-fplot'], ['frameworx-1.0', 'Frameworx-1.0'], + ['fraunhofer-fdk-aac-codec', 'FDK-AAC'], + ['fraunhofer-iso-14496-10', 'LicenseRef-scancode-fraunhofer-iso-14496-10'], + ['free-art-1.3', 'LicenseRef-scancode-free-art-1.3'], + ['free-fork', 'LicenseRef-scancode-free-fork'], + ['free-surfer-1.0', 'LicenseRef-scancode-free-surfer-1.0'], + ['free-unknown', 'LicenseRef-scancode-free-unknown'], + ['freebsd-boot', 'LicenseRef-scancode-freebsd-boot'], + ['freebsd-doc', 'FreeBSD-DOC'], + ['freebsd-first', 'LicenseRef-scancode-freebsd-first'], ['freeimage-1.0', 'FreeImage'], + ['freemarker', 'LicenseRef-scancode-freemarker'], + ['freertos-exception-2.0', 'freertos-exception-2.0'], + ['freetts', 'MIT-Festival'], ['freetype', 'FTL'], + ['freetype-patent', 'LicenseRef-scancode-freetype-patent'], + ['froala-owdl-1.0', 'LicenseRef-scancode-froala-owdl-1.0'], + ['frontier-1.0', 'LicenseRef-scancode-frontier-1.0'], ['fsf-ap', 'FSFAP'], - ['freertos-exception-2.0', 'freertos-exception-2.0'], ['fsf-free', 'FSFUL'], + ['fsf-notice', 'LicenseRef-scancode-fsf-notice'], ['fsf-unlimited', 'FSFULLR'], - ['gcc-linking-exception-2.0', 'GCC-exception-2.0'], + ['fsf-unlimited-no-warranty', 'FSFULLRWD'], + ['fsfap-no-warranty-disclaimer', 'FSFAP-no-warranty-disclaimer'], + ['fsl-1.0-apache-2.0', 'LicenseRef-scancode-fsl-1.0-apache-2.0'], + ['fsl-1.0-mit', 'LicenseRef-scancode-fsl-1.0-mit'], + ['ftdi', 'LicenseRef-scancode-ftdi'], + ['ftpbean', 'LicenseRef-scancode-ftpbean'], + ['fujion-exception-to-apache-2.0', 'LicenseRef-scancode-fujion-exception-to-apache-2.0'], + ['furuseth', 'Furuseth'], + ['fwlw', 'fwlw'], + ['g10-permissive', 'LicenseRef-scancode-g10-permissive'], + ['gareth-mccaughan', 'LicenseRef-scancode-gareth-mccaughan'], + ['gary-s-brown', 'LicenseRef-scancode-gary-s-brown'], + ['gatling-highcharts', 'LicenseRef-scancode-gatling-highcharts'], + ['gcc-compiler-exception-2.0', 'LicenseRef-scancode-gcc-compiler-exception-2.0'], + ['gcc-exception-2.0-note', 'GCC-exception-2.0-note'], + ['gcc-exception-3.0', 'LicenseRef-scancode-gcc-exception-3.0'], ['gcc-exception-3.1', 'GCC-exception-3.1'], + ['gcc-linking-exception-2.0', 'GCC-exception-2.0'], + ['gcel-2022', 'LicenseRef-scancode-gcel-2022'], + ['gco-v3.0', 'LicenseRef-scancode-gco-v3.0'], + ['gcr-docs', 'GCR-docs'], + ['gdcl', 'LicenseRef-scancode-gdcl'], + ['generic-cla', 'LicenseRef-scancode-generic-cla'], + ['generic-exception', 'LicenseRef-scancode-generic-exception'], + ['generic-export-compliance', 'LicenseRef-scancode-generic-export-compliance'], + ['generic-loop', 'LicenseRef-scancode-generic-loop'], + ['generic-tos', 'LicenseRef-scancode-generic-tos'], + ['generic-trademark', 'LicenseRef-scancode-generic-trademark'], + ['genivia-gsoap', 'LicenseRef-scancode-genivia-gsoap'], + ['genode-agpl-3.0-exception', 'LicenseRef-scancode-genode-agpl-3.0-exception'], + ['geoff-kuenning-1993', 'LicenseRef-scancode-geoff-kuenning-1993'], + ['geoserver-exception-2.0-plus', 'LicenseRef-scancode-geoserver-exception-2.0-plus'], ['gfdl-1.1', 'GFDL-1.1-only'], + ['gfdl-1.1-invariants-only', 'GFDL-1.1-invariants-only'], + ['gfdl-1.1-invariants-or-later', 'GFDL-1.1-invariants-or-later'], + ['gfdl-1.1-no-invariants-only', 'GFDL-1.1-no-invariants-only'], + ['gfdl-1.1-no-invariants-or-later', 'GFDL-1.1-no-invariants-or-later'], ['gfdl-1.1-plus', 'GFDL-1.1-or-later'], - ['gfdl-1.3-plus', 'GFDL-1.3-or-later'], ['gfdl-1.2', 'GFDL-1.2-only'], + ['gfdl-1.2-invariants-only', 'GFDL-1.2-invariants-only'], + ['gfdl-1.2-invariants-or-later', 'GFDL-1.2-invariants-or-later'], + ['gfdl-1.2-no-invariants-only', 'GFDL-1.2-no-invariants-only'], + ['gfdl-1.2-no-invariants-or-later', 'GFDL-1.2-no-invariants-or-later'], ['gfdl-1.2-plus', 'GFDL-1.2-or-later'], ['gfdl-1.3', 'GFDL-1.3-only'], + ['gfdl-1.3-invariants-only', 'GFDL-1.3-invariants-only'], + ['gfdl-1.3-invariants-or-later', 'GFDL-1.3-invariants-or-later'], + ['gfdl-1.3-no-invariants-only', 'GFDL-1.3-no-invariants-only'], + ['gfdl-1.3-no-invariants-or-later', 'GFDL-1.3-no-invariants-or-later'], + ['gfdl-1.3-plus', 'GFDL-1.3-or-later'], + ['ghostpdl-permissive', 'LicenseRef-scancode-ghostpdl-permissive'], + ['ghostscript-1988', 'LicenseRef-scancode-ghostscript-1988'], + ['github-codeql-terms-2020', 'LicenseRef-scancode-github-codeql-terms-2020'], + ['gitlab-ee', 'LicenseRef-scancode-gitlab-ee'], + ['gitpod-self-hosted-free-2020', 'LicenseRef-scancode-gitpod-self-hosted-free-2020'], + ['gl2ps', 'GL2PS'], + ['gladman-older-rijndael-code-use', 'LicenseRef-scancode-gladman-older-rijndael-code'], ['glide', 'Glide'], ['glulxe', 'Glulxe'], - ['gl2ps', 'GL2PS'], + ['glut', 'LicenseRef-scancode-glut'], + ['glwtpl', 'GLWTPL'], + ['gmsh-exception', 'Gmsh-exception'], + ['gnome-examples-exception', 'GNOME-examples-exception'], + ['gnu-emacs-gpl-1988', 'LicenseRef-scancode-gnu-emacs-gpl-1988'], ['gnu-javamail-exception', 'gnu-javamail-exception'], ['gnuplot', 'gnuplot'], + ['goahead', 'LicenseRef-scancode-goahead'], + ['good-boy', 'LicenseRef-scancode-good-boy'], + ['google-analytics-tos', 'LicenseRef-scancode-google-analytics-tos'], + ['google-analytics-tos-2015', 'LicenseRef-scancode-google-analytics-tos-2015'], + ['google-analytics-tos-2016', 'LicenseRef-scancode-google-analytics-tos-2016'], + ['google-analytics-tos-2019', 'LicenseRef-scancode-google-analytics-tos-2019'], + ['google-apis-tos-2021', 'LicenseRef-scancode-google-apis-tos-2021'], + ['google-cla', 'LicenseRef-scancode-google-cla'], + ['google-corporate-cla', 'LicenseRef-scancode-google-corporate-cla'], + ['google-maps-tos-2018-02-07', 'LicenseRef-scancode-google-maps-tos-2018-02-07'], + ['google-maps-tos-2018-05-01', 'LicenseRef-scancode-google-maps-tos-2018-05-01'], + ['google-maps-tos-2018-06-07', 'LicenseRef-scancode-google-maps-tos-2018-06-07'], + ['google-maps-tos-2018-07-09', 'LicenseRef-scancode-google-maps-tos-2018-07-09'], + ['google-maps-tos-2018-07-19', 'LicenseRef-scancode-google-maps-tos-2018-07-19'], + ['google-maps-tos-2018-10-01', 'LicenseRef-scancode-google-maps-tos-2018-10-01'], + ['google-maps-tos-2018-10-31', 'LicenseRef-scancode-google-maps-tos-2018-10-31'], + ['google-maps-tos-2019-05-02', 'LicenseRef-scancode-google-maps-tos-2019-05-02'], + ['google-maps-tos-2019-11-21', 'LicenseRef-scancode-google-maps-tos-2019-11-21'], + ['google-maps-tos-2020-04-02', 'LicenseRef-scancode-google-maps-tos-2020-04-02'], + ['google-maps-tos-2020-04-27', 'LicenseRef-scancode-google-maps-tos-2020-04-27'], + ['google-maps-tos-2020-05-06', 'LicenseRef-scancode-google-maps-tos-2020-05-06'], + ['google-ml-kit-tos-2022', 'LicenseRef-scancode-google-ml-kit-tos-2022'], + ['google-patent-license', 'LicenseRef-scancode-google-patent-license'], + ['google-patent-license-fuchsia', 'LicenseRef-scancode-google-patent-license-fuchsia'], + ['google-patent-license-fuschia', 'null'], + ['google-patent-license-golang', 'LicenseRef-scancode-google-patent-license-golang'], + ['google-patent-license-webm', 'LicenseRef-scancode-google-patent-license-webm'], + ['google-patent-license-webrtc', 'LicenseRef-scancode-google-patent-license-webrtc'], + ['google-playcore-sdk-tos-2020', 'LicenseRef-scancode-google-playcore-sdk-tos-2020'], + ['google-tos-2013', 'LicenseRef-scancode-google-tos-2013'], + ['google-tos-2014', 'LicenseRef-scancode-google-tos-2014'], + ['google-tos-2017', 'LicenseRef-scancode-google-tos-2017'], + ['google-tos-2019', 'LicenseRef-scancode-google-tos-2019'], + ['google-tos-2020', 'LicenseRef-scancode-google-tos-2020'], + ['gpl-1.0', 'GPL-1.0-only'], ['gpl-1.0-plus', 'GPL-1.0-or-later'], + ['gpl-2.0', 'GPL-2.0-only'], + ['gpl-2.0-adaptec', 'LicenseRef-scancode-gpl-2.0-adaptec'], ['gpl-2.0-autoconf', 'GPL-2.0-with-autoconf-exception'], - ['gpl-1.0', 'GPL-1.0-only'], + ['gpl-2.0-autoopts', 'null'], + ['gpl-2.0-bison', 'null'], + ['gpl-2.0-bison-2.2', 'null'], + ['gpl-2.0-broadcom-linking', 'null'], ['gpl-2.0-classpath', 'GPL-2.0-with-classpath-exception'], - ['gpl-2.0-gcc', 'GPL-2.0-with-GCC-exception'], + ['gpl-2.0-cygwin', 'null'], + ['gpl-2.0-djvu', 'LicenseRef-scancode-gpl-2.0-djvu'], ['gpl-2.0-font', 'GPL-2.0-with-font-exception'], + ['gpl-2.0-freertos', 'null'], + ['gpl-2.0-gcc', 'GPL-2.0-with-GCC-exception'], + ['gpl-2.0-gcc-compiler-exception', 'null'], + ['gpl-2.0-glibc', 'null'], + ['gpl-2.0-guile', 'null'], + ['gpl-2.0-ice', 'null'], + ['gpl-2.0-independent-module-linking', 'null'], + ['gpl-2.0-iolib', 'null'], + ['gpl-2.0-iso-cpp', 'null'], + ['gpl-2.0-javascript', 'null'], + ['gpl-2.0-kernel', 'null'], + ['gpl-2.0-koterov', 'LicenseRef-scancode-gpl-2.0-koterov'], + ['gpl-2.0-libgit2', 'null'], + ['gpl-2.0-library', 'null'], + ['gpl-2.0-libtool', 'null'], + ['gpl-2.0-lmbench', 'null'], + ['gpl-2.0-mysql-connector-odbc', 'null'], + ['gpl-2.0-mysql-floss', 'null'], + ['gpl-2.0-openjdk', 'null'], + ['gpl-2.0-openssl', 'null'], + ['gpl-2.0-oracle-mysql-foss', 'null'], + ['gpl-2.0-oracle-openjdk', 'null'], ['gpl-2.0-plus', 'GPL-2.0-or-later'], - ['gpl-2.0', 'GPL-2.0-only'], + ['gpl-2.0-plus-ada', 'null'], + ['gpl-2.0-plus-ekiga', 'null'], + ['gpl-2.0-plus-gcc', 'null'], + ['gpl-2.0-plus-geoserver', 'null'], + ['gpl-2.0-plus-linking', 'null'], + ['gpl-2.0-plus-nant', 'null'], + ['gpl-2.0-plus-openmotif', 'null'], + ['gpl-2.0-plus-openssl', 'null'], + ['gpl-2.0-plus-sane', 'null'], + ['gpl-2.0-plus-subcommander', 'null'], + ['gpl-2.0-plus-syntext', 'null'], + ['gpl-2.0-plus-upx', 'null'], + ['gpl-2.0-proguard', 'null'], + ['gpl-2.0-qt-qca', 'null'], + ['gpl-2.0-redhat', 'null'], + ['gpl-2.0-rrdtool-floss', 'null'], + ['gpl-2.0-uboot', 'null'], + ['gpl-3.0', 'GPL-3.0-only'], + ['gpl-3.0-aptana', 'null'], ['gpl-3.0-autoconf', 'GPL-3.0-with-autoconf-exception'], + ['gpl-3.0-bison', 'null'], + ['gpl-3.0-cygwin', 'null'], + ['gpl-3.0-font', 'null'], ['gpl-3.0-gcc', 'GPL-3.0-with-GCC-exception'], + ['gpl-3.0-interface-exception', 'GPL-3.0-interface-exception'], + ['gpl-3.0-linking-exception', 'GPL-3.0-linking-exception'], + ['gpl-3.0-linking-source-exception', 'GPL-3.0-linking-source-exception'], + ['gpl-3.0-openbd', 'null'], ['gpl-3.0-plus', 'GPL-3.0-or-later'], - ['gpl-3.0', 'GPL-3.0-only'], + ['gpl-3.0-plus-openssl', 'null'], + ['gpl-generic-additional-terms', 'LicenseRef-scancode-gpl-generic-additional-terms'], + ['gplcc-1.0', 'GPL-CC-1.0'], + ['gradle-enterprise-sla-2022-11-08', 'LicenseRef-scancode-gradle-enterprise-sla-2022-11-'], + ['gradle-tou-2022-01-13', 'LicenseRef-scancode-gradle-tou-2022-01-13'], + ['graphics-gems', 'Graphics-Gems'], + ['greg-roelofs', 'LicenseRef-scancode-greg-roelofs'], + ['gregory-pietsch', 'LicenseRef-scancode-gregory-pietsch'], + ['gsoap-1.3a', 'LicenseRef-scancode-gsoap-1.3a'], ['gsoap-1.3b', 'gSOAP-1.3b'], + ['gstreamer-exception-2.0', 'LicenseRef-scancode-gstreamer-exception-2.0'], + ['gstreamer-exception-2005', 'GStreamer-exception-2005'], + ['gstreamer-exception-2008', 'GStreamer-exception-2008'], + ['gtkbook', 'gtkbook'], + ['gtpl-v1', 'LicenseRef-scancode-gtpl-v1'], + ['gtpl-v2', 'LicenseRef-scancode-gtpl-v2'], + ['gtpl-v3', 'LicenseRef-scancode-gtpl-v3'], + ['guile-exception-2.0', 'LicenseRef-scancode-guile-exception-2.0'], + ['gust-font-1.0', 'LicenseRef-scancode-gust-font-1.0'], + ['gust-font-2006-09-30', 'LicenseRef-scancode-gust-font-2006-09-30'], + ['gutenberg-2020', 'LicenseRef-scancode-gutenberg-2020'], + ['h2-1.0', 'LicenseRef-scancode-h2-1.0'], + ['hacking-license', 'LicenseRef-scancode-hacking-license'], + ['hacos-1.2', 'LicenseRef-scancode-hacos-1.2'], + ['happy-bunny', 'LicenseRef-scancode-happy-bunny'], ['haskell-report', 'HaskellReport'], + ['hauppauge-firmware-eula', 'LicenseRef-scancode-hauppauge-firmware-eula'], + ['hauppauge-firmware-oem', 'LicenseRef-scancode-hauppauge-firmware-oem'], + ['hazelcast-community-1.0', 'LicenseRef-scancode-hazelcast-community-1.0'], + ['hdf4', 'LicenseRef-scancode-hdf4'], + ['hdf5', 'LicenseRef-scancode-hdf5'], + ['hdparm', 'hdparm'], + ['helios-eula', 'LicenseRef-scancode-helios-eula'], + ['helix', 'LicenseRef-scancode-helix'], ['henry-spencer-1999', 'Spencer-99'], - ['here-proprietary', 'LicenseRef-Proprietary-HERE'], + ['here-disclaimer', 'LicenseRef-scancode-here-disclaimer'], + ['here-proprietary', 'LicenseRef-scancode-here-proprietary'], + ['hessla', 'LicenseRef-scancode-hessla'], + ['hfoil-1.0', 'LicenseRef-scancode-hfoil-1.0'], + ['hidapi', 'LicenseRef-scancode-hidapi'], + ['hippocratic-1.0', 'LicenseRef-scancode-hippocratic-1.0'], + ['hippocratic-1.1', 'LicenseRef-scancode-hippocratic-1.1'], + ['hippocratic-1.2', 'LicenseRef-scancode-hippocratic-1.2'], + ['hippocratic-2.0', 'LicenseRef-scancode-hippocratic-2.0'], + ['hippocratic-2.1', 'Hippocratic-2.1'], + ['hippocratic-3.0', 'LicenseRef-scancode-Hippocratic-3.0'], ['historical', 'HPND'], - ['i2p-gpl-java-exception', 'i2p-gpl-java-exception'], + ['historical-ntp', 'LicenseRef-scancode-historical-ntp'], + ['historical-sell-variant', 'null'], + ['homebrewed', 'LicenseRef-scancode-homebrewed'], + ['hot-potato', 'LicenseRef-scancode-hot-potato'], + ['houdini-project', 'LicenseRef-scancode-houdini'], + ['hp', 'LicenseRef-scancode-hp'], + ['hp-1986', 'HP-1986'], + ['hp-enterprise-eula', 'LicenseRef-scancode-hp-enterprise-eula'], + ['hp-netperf', 'LicenseRef-scancode-hp-netperf'], + ['hp-proliant-essentials', 'LicenseRef-scancode-hp-proliant-essentials'], + ['hp-snmp-pp', 'LicenseRef-scancode-hp-snmp-pp'], + ['hp-software-eula', 'LicenseRef-scancode-hp-software-eula'], + ['hp-ux-java', 'LicenseRef-scancode-hp-ux-java'], + ['hp-ux-jre', 'LicenseRef-scancode-hp-ux-jre'], + ['hpnd-doc', 'HPND-doc'], + ['hpnd-doc-sell', 'HPND-doc-sell'], + ['hpnd-export-us', 'HPND-export-US'], + ['hpnd-fenneberg-livingston', 'HPND-Fenneberg-Livingston'], + ['hpnd-inria-imag', 'HPND-INRIA-IMAG'], + ['hpnd-mit-disclaimer', 'HPND-MIT-disclaimer'], + ['hpnd-pbmplus', 'HPND-Pbmplus'], + ['hpnd-sell-mit-disclaimer-xserver', 'HPND-sell-MIT-disclaimer-xserver'], + ['hpnd-sell-regexpr', 'HPND-sell-regexpr'], + ['hpnd-sell-variant-mit-disclaimer', 'HPND-sell-variant-MIT-disclaimer'], + ['hpnd-uc', 'HPND-UC'], ['hs-regexp', 'Spencer-94'], + ['hs-regexp-orig', 'null'], + ['html5', 'LicenseRef-scancode-html5'], + ['httpget', 'LicenseRef-scancode-httpget'], + ['huggingface-tos-20220915', 'LicenseRef-scancode-huggingface-tos-20220915'], + ['hugo', 'LicenseRef-scancode-hugo'], + ['hxd', 'LicenseRef-scancode-hxd'], + ['i2p-gpl-java-exception', 'i2p-gpl-java-exception'], + ['ian-kaplan', 'LicenseRef-scancode-ian-kaplan'], + ['ian-piumarta', 'LicenseRef-scancode-ian-piumarta'], + ['ibm-as-is', 'LicenseRef-scancode-ibm-as-is'], + ['ibm-data-server-2011', 'LicenseRef-scancode-ibm-data-server-2011'], + ['ibm-developerworks-community-download', 'LicenseRef-scancode-ibm-developerworks-community'], + ['ibm-dhcp', 'LicenseRef-scancode-ibm-dhcp'], + ['ibm-employee-written', 'LicenseRef-scancode-ibm-employee-written'], + ['ibm-glextrusion', 'LicenseRef-scancode-ibm-glextrusion'], + ['ibm-icu', 'LicenseRef-scancode-ibm-icu'], + ['ibm-java-portlet-spec-2.0', 'LicenseRef-scancode-ibm-java-portlet-spec-2.0'], + ['ibm-jre', 'LicenseRef-scancode-ibm-jre'], + ['ibm-nwsc', 'LicenseRef-scancode-ibm-nwsc'], ['ibm-pibs', 'IBM-pibs'], + ['ibm-sample', 'LicenseRef-scancode-ibm-sample'], ['ibmpl-1.0', 'IPL-1.0'], + ['ibpp', 'LicenseRef-scancode-ibpp'], + ['ic-1.0', 'LicenseRef-scancode-ic-1.0'], + ['ic-shared-1.0', 'LicenseRef-scancode-ic-shared-1.0'], + ['icann-public', 'LicenseRef-scancode-icann-public'], + ['ice-exception-2.0', 'LicenseRef-scancode-ice-exception-2.0'], + ['icot-free', 'LicenseRef-scancode-icot-free'], + ['idt-notice', 'LicenseRef-scancode-idt-notice'], + ['iec-code-components-eula', 'IEC-Code-Components-EULA'], + ['ietf', 'LicenseRef-scancode-ietf'], + ['ietf-trust', 'LicenseRef-scancode-ietf-trust'], ['ijg', 'IJG'], + ['ijg-short', 'IJG-short'], + ['ilmid', 'LicenseRef-scancode-ilmid'], ['imagemagick', 'ImageMagick'], - ['indiana-extreme-1.2', 'xpp'], + ['imagen', 'LicenseRef-scancode-imagen'], ['imlib2', 'Imlib2'], + ['independent-module-linking-exception', 'LicenseRef-scancode-indie-module-linking-exception'], + ['indiana-extreme', 'LicenseRef-scancode-indiana-extreme'], + ['indiana-extreme-1.2', 'xpp'], + ['infineon-free', 'LicenseRef-scancode-infineon-free'], ['info-zip', 'Info-ZIP'], + ['info-zip-1997-10', 'LicenseRef-scancode-info-zip-1997-10'], + ['info-zip-2001-01', 'LicenseRef-scancode-info-zip-2001-01'], + ['info-zip-2002-02', 'LicenseRef-scancode-info-zip-2002-02'], + ['info-zip-2003-05', 'LicenseRef-scancode-info-zip-2003-05'], + ['info-zip-2004-05', 'LicenseRef-scancode-info-zip-2004-05'], + ['info-zip-2005-02', 'LicenseRef-scancode-info-zip-2005-02'], + ['info-zip-2007-03', 'LicenseRef-scancode-info-zip-2007-03'], + ['info-zip-2009-01', 'LicenseRef-scancode-info-zip-2009-01'], + ['infonode-1.1', 'LicenseRef-scancode-infonode-1.1'], + ['initial-developer-public', 'LicenseRef-scancode-initial-developer-public'], + ['inner-net-2.0', 'Inner-Net-2.0'], + ['inno-setup', 'LicenseRef-scancode-inno-setup'], + ['inria-linking-exception', 'QPL-1.0-INRIA-2004-exception'], + ['installsite', 'LicenseRef-scancode-installsite'], + ['intel', 'LicenseRef-scancode-intel'], ['intel-acpi', 'Intel-ACPI'], + ['intel-bcl', 'LicenseRef-scancode-intel-bcl'], + ['intel-bsd', 'BSD-3-Clause-acpica'], + ['intel-bsd-2-clause', 'LicenseRef-scancode-intel-bsd-2-clause'], ['intel-bsd-export-control', 'Intel'], + ['intel-code-samples', 'LicenseRef-scancode-intel-code-samples'], + ['intel-confidential', 'LicenseRef-scancode-intel-confidential'], + ['intel-firmware', 'LicenseRef-scancode-intel-firmware'], + ['intel-master-eula-sw-dev-2016', 'LicenseRef-scancode-intel-master-eula-sw-dev-2016'], + ['intel-material', 'LicenseRef-scancode-intel-material'], + ['intel-mcu-2018', 'LicenseRef-scancode-intel-mcu-2018'], + ['intel-microcode', 'LicenseRef-scancode-intel-microcode'], + ['intel-osl-1989', 'LicenseRef-scancode-intel-osl-1989'], + ['intel-osl-1993', 'LicenseRef-scancode-intel-osl-1993'], + ['intel-royalty-free', 'LicenseRef-scancode-intel-royalty-free'], + ['intel-sample-source-code-2015', 'LicenseRef-scancode-intel-sample-source-code-2015'], + ['intel-scl', 'LicenseRef-scancode-intel-scl'], ['interbase-1.0', 'Interbase-1.0'], + ['iolib-exception-2.0', 'GNU-compiler-exception'], + ['iozone', 'LicenseRef-scancode-iozone'], ['ipa-font', 'IPA'], + ['ipca', 'LicenseRef-scancode-ipca'], + ['iptc-2006', 'LicenseRef-scancode-iptc-2006'], + ['irfanview-eula', 'LicenseRef-scancode-irfanview-eula'], ['isc', 'ISC'], + ['iso-14496-10', 'LicenseRef-scancode-iso-14496-10'], + ['iso-8879', 'LicenseRef-scancode-iso-8879'], + ['iso-recorder', 'LicenseRef-scancode-iso-recorder'], + ['isotope-cla', 'LicenseRef-scancode-isotope-cla'], + ['issl-2018', 'LicenseRef-scancode-issl-2018'], + ['issl-2022', 'LicenseRef-scancode-issl-2022'], + ['itc-eula', 'LicenseRef-scancode-itc-eula'], + ['itu', 'LicenseRef-scancode-itu'], + ['itu-t', 'LicenseRef-scancode-itu-t'], + ['itu-t-gpl', 'LicenseRef-scancode-itu-t-gpl'], + ['itunes', 'LicenseRef-scancode-itunes'], + ['ja-sig', 'LicenseRef-scancode-ja-sig'], + ['jahia-1.3.1', 'LicenseRef-scancode-jahia-1.3.1'], + ['jam', 'Jam'], + ['jam-stapl', 'LicenseRef-scancode-jam-stapl'], + ['jamon', 'LicenseRef-scancode-jamon'], + ['jason-mayes', 'LicenseRef-scancode-jason-mayes'], + ['jasper-1.0', 'LicenseRef-scancode-jasper-1.0'], ['jasper-2.0', 'JasPer-2.0'], + ['java-app-stub', 'LicenseRef-scancode-java-app-stub'], + ['java-research-1.5', 'LicenseRef-scancode-java-research-1.5'], + ['java-research-1.6', 'LicenseRef-scancode-java-research-1.6'], + ['javascript-exception-2.0', 'LicenseRef-scancode-javascript-exception-2.0'], + ['jboss-eula', 'LicenseRef-scancode-jboss-eula'], + ['jdbm-1.00', 'LicenseRef-scancode-jdbm-1.00'], + ['jdom', 'LicenseRef-scancode-jdom'], + ['jelurida-public-1.1', 'LicenseRef-scancode-jelurida-public-1.1'], + ['jetbrains-purchase-terms', 'LicenseRef-scancode-jetbrains-purchase-terms'], + ['jetbrains-toolbox-open-source-3', 'LicenseRef-scancode-jetbrains-toolbox-oss-3'], + ['jetty', 'LicenseRef-scancode-jetty'], + ['jetty-ccla-1.1', 'LicenseRef-scancode-jetty-ccla-1.1'], + ['jgraph', 'LicenseRef-scancode-jgraph'], + ['jgraph-general', 'LicenseRef-scancode-jgraph-general'], + ['jide-sla', 'LicenseRef-scancode-jide-sla'], + ['jj2000', 'LicenseRef-scancode-jj2000'], + ['jmagnetic', 'LicenseRef-scancode-jmagnetic'], + ['josl-1.0', 'LicenseRef-scancode-josl-1.0'], + ['jpegxr', 'LicenseRef-scancode-jpegxr'], + ['jpl-image', 'JPL-image'], + ['jpnic-idnkit', 'JPNIC'], + ['jpnic-mdnkit', 'LicenseRef-scancode-jpnic-mdnkit'], + ['jprs-oscl-1.1', 'LicenseRef-scancode-jprs-oscl-1.1'], + ['jpython-1.1', 'LicenseRef-scancode-jpython-1.1'], + ['jquery-pd', 'LicenseRef-scancode-jquery-pd'], + ['jrunner', 'LicenseRef-scancode-jrunner'], + ['jscheme', 'LicenseRef-scancode-jscheme'], + ['jsel-2.0', 'LicenseRef-scancode-jsel-2.0'], + ['jsfromhell', 'LicenseRef-scancode-jsfromhell'], ['json', 'JSON'], + ['json-js-pd', 'LicenseRef-scancode-json-js-pd'], + ['json-pd', 'LicenseRef-scancode-json-pd'], + ['jsr-107-jcache-spec', 'LicenseRef-scancode-jsr-107-jcache-spec'], + ['jsr-107-jcache-spec-2013', 'LicenseRef-scancode-jsr-107-jcache-spec-2013'], + ['jython', 'LicenseRef-scancode-jython'], + ['kalle-kaukonen', 'LicenseRef-scancode-kalle-kaukonen'], + ['karl-peterson', 'LicenseRef-scancode-karl-peterson'], + ['kastrup', 'Kastrup'], + ['katharos-0.1.0', 'LicenseRef-scancode-katharos-0.1.0'], + ['katharos-0.2.0', 'LicenseRef-scancode-katharos-0.2.0'], + ['kazlib', 'Kazlib'], + ['kde-accepted-gpl', 'LicenseRef-scancode-kde-accepted-gpl'], + ['kde-accepted-lgpl', 'LicenseRef-scancode-kde-accepted-lgpl'], + ['keith-rule', 'LicenseRef-scancode-keith-rule'], + ['kerberos', 'LicenseRef-scancode-kerberos'], + ['kevan-stannard', 'LicenseRef-scancode-kevan-stannard'], + ['kevlin-henney', 'HPND-Kevlin-Henney'], + ['keypirinha', 'LicenseRef-scancode-keypirinha'], + ['kfgqpc-uthmanic-script-hafs', 'LicenseRef-scancode-kfgqpc-uthmanic-script-hafs'], + ['kfqf-accepted-gpl', 'LicenseRef-scancode-kfqf-accepted-gpl'], + ['khronos', 'LicenseRef-scancode-khronos'], + ['kicad-libraries-exception', 'KiCad-libraries-exception'], + ['knuth-ctan', 'Knuth-CTAN'], + ['ko-man-page', 'LicenseRef-scancode-ko-man-page'], + ['kreative-relay-fonts-free-use-1.2f', 'LicenseRef-scancode-kreative-relay-fonts-free-1.2f'], + ['kumar-robotics', 'LicenseRef-scancode-kumar-robotics'], + ['lal-1.2', 'LAL-1.2'], + ['lal-1.3', 'LAL-1.3'], + ['lance-norskog-license', 'LicenseRef-scancode-lance-norskog-license'], + ['larabie', 'LicenseRef-scancode-larabie'], ['latex2e', 'Latex2e'], + ['latex2e-translated-notice', 'Latex2e-translated-notice'], + ['lattice-osl-2017', 'LicenseRef-scancode-lattice-osl-2017'], + ['lavantech', 'LicenseRef-scancode-lavantech'], ['lbnl-bsd', 'BSD-3-Clause-LBNL'], - ['lgpl-2.0-plus', 'LGPL-2.0-or-later'], + ['lcs-telegraphics', 'LicenseRef-scancode-lcs-telegraphics'], + ['ldap-sdk-free-use', 'LicenseRef-scancode-ldap-sdk-free-use'], + ['ldpc-1994', 'LicenseRef-scancode-ldpc-1994'], + ['ldpc-1997', 'LicenseRef-scancode-ldpc-1997'], + ['ldpc-1999', 'LicenseRef-scancode-ldpc-1999'], + ['ldpgpl-1', 'LicenseRef-scancode-ldpgpl-1'], + ['ldpgpl-1a', 'LicenseRef-scancode-ldpgpl-1a'], + ['ldpl-2.0', 'LicenseRef-scancode-ldpl-2.0'], + ['ldpm-1998', 'LicenseRef-scancode-ldpm-1998'], + ['leap-motion-sdk-2019', 'LicenseRef-scancode-leap-motion-sdk-2019'], ['leptonica', 'Leptonica'], ['lgpl-2.0', 'LGPL-2.0-only'], - ['lgpl-2.1-plus', 'LGPL-2.1-or-later'], + ['lgpl-2.0-fltk', 'null'], + ['lgpl-2.0-plus', 'LGPL-2.0-or-later'], + ['lgpl-2.0-plus-gcc', 'null'], ['lgpl-2.1', 'LGPL-2.1-only'], + ['lgpl-2.1-digia-qt', 'null'], + ['lgpl-2.1-nokia-qt', 'null'], + ['lgpl-2.1-nokia-qt-1.0', 'null'], + ['lgpl-2.1-nokia-qt-1.1', 'null'], + ['lgpl-2.1-plus', 'LGPL-2.1-or-later'], + ['lgpl-2.1-plus-linking', 'null'], + ['lgpl-2.1-plus-unlimited-linking', 'null'], + ['lgpl-2.1-qt-company', 'null'], + ['lgpl-2.1-qt-company-2017', 'null'], + ['lgpl-2.1-rxtx', 'null'], + ['lgpl-2.1-spell-checker', 'null'], + ['lgpl-3-plus-linking', 'null'], ['lgpl-3.0', 'LGPL-3.0-only'], + ['lgpl-3.0-cygwin', 'null'], + ['lgpl-3.0-linking-exception', 'LGPL-3.0-linking-exception'], ['lgpl-3.0-plus', 'LGPL-3.0-or-later'], + ['lgpl-3.0-plus-openssl', 'null'], + ['lgpl-3.0-zeromq', 'null'], ['lgpllr', 'LGPLLR'], - ['libtool-exception-2.0', 'Libtool-exception'], + ['lha', 'LicenseRef-scancode-lha'], + ['libcap', 'null'], + ['liberation-font-exception', 'LicenseRef-scancode-liberation-font-exception'], + ['libgd-2018', 'GD'], + ['libgeotiff', 'LicenseRef-scancode-libgeotiff'], + ['libmib', 'LicenseRef-scancode-libmib'], + ['libmng-2007', 'LicenseRef-scancode-libmng-2007'], + ['libpbm', 'xlock'], ['libpng', 'Libpng'], - ['linux-syscall-exception-gpl', 'Linux-syscall-note'], + ['libpng-v2', 'libpng-2.0'], + ['libpri-openh323-exception', 'libpri-OpenH323-exception'], + ['librato-exception', 'LicenseRef-scancode-librato-exception'], + ['libselinux-pd', 'LicenseRef-scancode-libselinux-pd'], + ['libsrv-1.0.2', 'LicenseRef-scancode-libsrv-1.0.2'], + ['libtool-exception', 'null'], + ['libtool-exception-2.0', 'Libtool-exception'], + ['libtool-exception-lgpl', 'LicenseRef-scancode-libtool-exception-lgpl'], + ['libutil-david-nugent', 'libutil-David-Nugent'], + ['libwebsockets-exception', 'LicenseRef-scancode-libwebsockets-exception'], + ['libzip', 'null'], + ['license-file-reference', 'null'], + ['liferay-dxp-eula-2.0.0-2023-06', 'LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06'], + ['liferay-ee', 'LicenseRef-scancode-liferay-ee'], + ['liferay-marketplace-tos', 'LicenseRef-scancode-liferay-marketplace-tos'], + ['lil-1', 'LicenseRef-scancode-lil-1'], + ['liliq-p-1.1', 'LiLiQ-P-1.1'], + ['liliq-r-1.1', 'LiLiQ-R-1.1'], + ['liliq-rplus-1.1', 'LiLiQ-Rplus-1.1'], + ['lilo', 'LicenseRef-scancode-lilo'], + ['linking-exception-2.0-plus', 'LicenseRef-scancode-linking-exception-2.0-plus'], + ['linking-exception-2.1-plus', 'LicenseRef-scancode-linking-exception-2.1-plus'], + ['linking-exception-agpl-3.0', 'LicenseRef-scancode-linking-exception-agpl-3.0'], + ['linking-exception-lgpl-2.0-plus', 'LicenseRef-scancode-linking-exception-lgpl-2.0plus'], + ['linking-exception-lgpl-3.0', 'null'], + ['linotype-eula', 'LicenseRef-scancode-linotype-eula'], + ['linum', 'null'], + ['linux-device-drivers', 'LicenseRef-scancode-linux-device-drivers'], + ['linux-man-pages-1-para', 'Linux-man-pages-1-para'], + ['linux-man-pages-2-para', 'Linux-man-pages-copyleft-2-para'], + ['linux-man-pages-copyleft-var', 'Linux-man-pages-copyleft-var'], ['linux-openib', 'Linux-OpenIB'], + ['linux-syscall-exception-gpl', 'Linux-syscall-note'], + ['linuxbios', 'LicenseRef-scancode-linuxbios'], + ['linuxhowtos', 'LicenseRef-scancode-linuxhowtos'], + ['llama-2-license-2023', 'LicenseRef-scancode-llama-2-license-2023'], + ['llama-license-2023', 'LicenseRef-scancode-llama-license-2023'], + ['llgpl', 'LLGPL'], + ['llnl', 'LicenseRef-scancode-llnl'], ['llvm-exception', 'LLVM-exception'], - ['lppl-1.1', 'LPPL-1.1'], + ['lmbench-exception-2.0', 'LicenseRef-scancode-lmbench-exception-2.0'], + ['logica-1.0', 'LicenseRef-scancode-logica-1.0'], + ['lontium-linux-firmware', 'LicenseRef-scancode-lontium-linux-firmware'], + ['loop', 'LOOP'], + ['losla', 'LicenseRef-scancode-losla'], ['lppl-1.0', 'LPPL-1.0'], + ['lppl-1.1', 'LPPL-1.1'], ['lppl-1.2', 'LPPL-1.2'], - ['lppl-1.3c', 'LPPL-1.3c'], ['lppl-1.3a', 'LPPL-1.3a'], + ['lppl-1.3c', 'LPPL-1.3c'], + ['lsi-proprietary-eula', 'LicenseRef-scancode-lsi-proprietary-eula'], ['lucent-pl-1.0', 'LPL-1.0'], ['lucent-pl-1.02', 'LPL-1.02'], + ['lucre', 'LicenseRef-scancode-lucre'], + ['lumisoft-mail-server', 'LicenseRef-scancode-lumisoft-mail-server'], + ['luxi', 'LicenseRef-scancode-luxi'], + ['lyubinskiy-dropdown', 'LicenseRef-scancode-lyubinskiy-dropdown'], + ['lyubinskiy-popup-window', 'LicenseRef-scancode-lyubinskiy-popup-window'], ['lzma-cpl-exception', 'LZMA-exception'], + ['lzma-sdk-2006', 'LicenseRef-scancode-lzma-sdk-2006'], + ['lzma-sdk-2006-exception', 'LicenseRef-scancode-lzma-sdk-2006-exception'], + ['lzma-sdk-2008', 'LicenseRef-scancode-lzma-sdk-2008'], + ['lzma-sdk-9.11-to-9.20', 'LZMA-SDK-9.11-to-9.20'], + ['lzma-sdk-9.22', 'LZMA-SDK-9.22'], + ['lzma-sdk-original', 'LicenseRef-scancode-lzma-sdk-original'], + ['lzma-sdk-pd', 'LicenseRef-scancode-lzma-sdk-pd'], + ['m-plus', 'mplus'], + ['madwifi-dual', 'null'], + ['magaz', 'magaz'], + ['magpie-exception-1.0', 'LicenseRef-scancode-magpie-exception-1.0'], + ['mailprio', 'mailprio'], + ['make-human-exception', 'LicenseRef-scancode-make-human-exception'], ['makeindex', 'MakeIndex'], + ['mame', 'LicenseRef-scancode-mame'], + ['manfred-klein-fonts-tos', 'LicenseRef-scancode-manfred-klein-fonts-tos'], + ['mapbox-tos-2021', 'LicenseRef-scancode-mapbox-tos-2021'], + ['markus-kuhn-license', 'HPND-Markus-Kuhn'], + ['markus-mummert-permissive', 'LicenseRef-scancode-markus-mummert-permissive'], + ['martin-birgmeier', 'Martin-Birgmeier'], + ['marvell-firmware', 'LicenseRef-scancode-marvell-firmware'], + ['marvell-firmware-2019', 'LicenseRef-scancode-marvell-firmware-2019'], + ['matt-gallagher-attribution', 'LicenseRef-scancode-matt-gallagher-attribution'], + ['matthew-kwan', 'LicenseRef-scancode-matthew-kwan'], + ['matthew-welch-font-license', 'LicenseRef-scancode-matthew-welch-font-license'], + ['mattkruse', 'LicenseRef-scancode-mattkruse'], + ['maxmind-geolite2-eula-2019', 'LicenseRef-scancode-maxmind-geolite2-eula-2019'], + ['maxmind-odl', 'LicenseRef-scancode-maxmind-odl'], + ['mcafee-tou', 'LicenseRef-scancode-mcafee-tou'], + ['mcphee-slideshow', 'McPhee-slideshow'], + ['mcrae-pl-4-r53', 'LicenseRef-scancode-mcrae-pl-4-r53'], + ['mediainfo-lib', 'LicenseRef-scancode-mediainfo-lib'], + ['mediatek-firmware', 'LicenseRef-scancode-mediatek-firmware'], + ['mediatek-no-warranty', 'LicenseRef-scancode-mediatek-no-warranty'], + ['mediatek-proprietary-2008', 'LicenseRef-scancode-mediatek-proprietary-2008'], + ['melange', 'LicenseRef-scancode-melange'], + ['mentalis', 'null'], + ['merit-network-derivative', 'LicenseRef-scancode-merit-network-derivative'], + ['metageek-inssider-eula', 'LicenseRef-scancode-metageek-inssider-eula'], + ['metamail', 'metamail'], + ['metrolink-1.0', 'LicenseRef-scancode-metrolink-1.0'], + ['mgopen-font-license', 'LicenseRef-scancode-mgopen-font-license'], + ['michael-barr', 'LicenseRef-scancode-michael-barr'], + ['michigan-disclaimer', 'LicenseRef-scancode-michigan-disclaimer'], + ['microchip-linux-firmware', 'LicenseRef-scancode-microchip-linux-firmware'], + ['microchip-products-2018', 'LicenseRef-scancode-microchip-products-2018'], + ['microsoft-enterprise-library-eula', 'LicenseRef-scancode-ms-enterprise-library-eula'], + ['microsoft-windows-rally-devkit', 'LicenseRef-scancode-microsoft-windows-rally-devkit'], ['mif-exception', 'mif-exception'], - ['mit-ack', 'MIT-feh'], - ['mit-0', 'MIT-0'], + ['mike95', 'LicenseRef-scancode-mike95'], + ['minecraft-mod', 'LicenseRef-scancode-minecraft-mod'], + ['mini-xml', 'null'], + ['mini-xml-exception-lgpl-2.0', 'LicenseRef-scancode-mini-xml-exception-lgpl-2.0'], + ['minpack', 'Minpack'], ['mir-os', 'MirOS'], + ['mit', 'MIT'], + ['mit-0', 'MIT-0'], + ['mit-1995', 'LicenseRef-scancode-mit-1995'], + ['mit-ack', 'MIT-feh'], + ['mit-addition', 'MIT-Wu'], ['mit-export-control', 'Xerox'], + ['mit-kyle-restrictions', 'LicenseRef-scancode-mit-kyle-restrictions'], + ['mit-license-1998', 'LicenseRef-scancode-mit-license-1998'], + ['mit-modern', 'MIT-Modern-Variant'], + ['mit-nagy', 'LicenseRef-scancode-mit-nagy'], + ['mit-no-advert-export-control', 'LicenseRef-scancode-mit-no-advert-export-control'], ['mit-no-false-attribs', 'MITNFA'], - ['mit', 'MIT'], + ['mit-no-trademarks', 'LicenseRef-scancode-mit-no-trademarks'], + ['mit-old-style', 'LicenseRef-scancode-mit-old-style'], + ['mit-old-style-no-advert', 'NTP'], + ['mit-old-style-sparse', 'LicenseRef-scancode-mit-old-style-sparse'], + ['mit-readme', 'LicenseRef-scancode-mit-readme'], + ['mit-specification-disclaimer', 'LicenseRef-scancode-mit-specification-disclaimer'], + ['mit-synopsys', 'LicenseRef-scancode-mit-synopsys'], + ['mit-taylor-variant', 'LicenseRef-scancode-mit-taylor-variant'], + ['mit-testregex', 'MIT-testregex'], + ['mit-veillard-variant', 'ISC-Veillard'], + ['mit-with-modification-obligations', 'HPND-export-US-modify'], + ['mit-xfig', 'Xfig'], + ['mmixware', 'MMIXware'], + ['mod-dav-1.0', 'LicenseRef-scancode-mod-dav-1.0'], + ['monetdb-1.1', 'LicenseRef-scancode-monetdb-1.1'], + ['mongodb-sspl-1.0', 'SSPL-1.0'], + ['monkeysaudio', 'LicenseRef-scancode-monkeysaudio'], + ['morbig-ieee-std-usage', 'LicenseRef-scancode-morbig-ieee-std-usage'], + ['motorola', 'LicenseRef-scancode-motorola'], ['motosoto-0.9.1', 'Motosoto'], + ['moxa-linux-firmware', 'LicenseRef-scancode-moxa-linux-firmware'], + ['mozilla-gc', 'Boehm-GC'], + ['mozilla-ospl-1.0', 'LicenseRef-scancode-mozilla-ospl-1.0'], + ['mpeg-7', 'LicenseRef-scancode-mpeg-7'], + ['mpeg-iso', 'LicenseRef-scancode-mpeg-iso'], + ['mpeg-ssg', 'MPEG-SSG'], + ['mpi-permissive', 'mpi-permissive'], ['mpich', 'mpich2'], ['mpl-1.0', 'MPL-1.0'], - ['mpl-2.0-no-copyleft-exception', 'MPL-2.0-no-copyleft-exception'], ['mpl-1.1', 'MPL-1.1'], ['mpl-2.0', 'MPL-2.0'], + ['mpl-2.0-no-copyleft-exception', 'MPL-2.0-no-copyleft-exception'], + ['ms-api-code-pack-net', 'LicenseRef-scancode-ms-api-code-pack-net'], + ['ms-asp-net-ajax-supplemental-terms', 'LicenseRef-scancode-ms-asp-net-ajax-supp-terms'], + ['ms-asp-net-mvc3', 'LicenseRef-scancode-ms-asp-net-mvc3'], + ['ms-asp-net-mvc4', 'LicenseRef-scancode-ms-asp-net-mvc4'], + ['ms-asp-net-mvc4-extensions', 'LicenseRef-scancode-ms-asp-net-mvc4-extensions'], + ['ms-asp-net-software', 'LicenseRef-scancode-ms-asp-net-software'], + ['ms-asp-net-tools-pre-release', 'LicenseRef-scancode-ms-asp-net-tools-pre-release'], + ['ms-asp-net-web-optimization-framework', 'LicenseRef-scancode-ms-asp-net-web-optimization'], + ['ms-asp-net-web-pages-2', 'LicenseRef-scancode-ms-asp-net-web-pages-2'], + ['ms-asp-net-web-pages-templates', 'LicenseRef-scancode-ms-asp-net-web-pages-templates'], + ['ms-azure-data-studio', 'LicenseRef-scancode-ms-azure-data-studio'], + ['ms-azure-spatialanchors-2.9.0', 'LicenseRef-scancode-ms-azure-spatialanchors-2.9.0'], + ['ms-capicom', 'LicenseRef-scancode-ms-capicom'], + ['ms-cl', 'LicenseRef-scancode-ms-cl'], + ['ms-cla', 'LicenseRef-scancode-ms-cla'], + ['ms-control-spy-2.0', 'LicenseRef-scancode-ms-control-spy-2.0'], + ['ms-data-tier-af-2022', 'LicenseRef-scancode-ms-data-tier-af-2022'], + ['ms-developer-services-agreement', 'LicenseRef-scancode-ms-dev-services-agreement'], + ['ms-developer-services-agreement-2018-06', 'LicenseRef-scancode-ms-dev-services-2018-06'], + ['ms-device-emulator-3.0', 'LicenseRef-scancode-ms-device-emulator-3.0'], + ['ms-direct3d-d3d120n7-1.1.0', 'LicenseRef-scancode-ms-direct3d-d3d120n7-1.1.0'], + ['ms-directx-sdk-eula', 'LicenseRef-scancode-ms-directx-sdk-eula'], + ['ms-directx-sdk-eula-2020', 'LicenseRef-scancode-ms-directx-sdk-eula-2020'], + ['ms-dxsdk-d3dx-9.29.952.3', 'LicenseRef-scancode-ms-dxsdk-d3dx-9.29.952.3'], + ['ms-edge-devtools-2022', 'LicenseRef-scancode-ms-edge-devtools-2022'], + ['ms-edge-webview2', 'LicenseRef-scancode-ms-edge-webview2'], + ['ms-edge-webview2-fixed', 'LicenseRef-scancode-ms-edge-webview2-fixed'], + ['ms-entity-framework-4.1', 'LicenseRef-scancode-ms-entity-framework-4.1'], + ['ms-entity-framework-5', 'LicenseRef-scancode-ms-entity-framework-5'], + ['ms-eula-win-script-host', 'LicenseRef-scancode-ms-eula-win-script-host'], + ['ms-exchange-server-2010-sp2-sdk', 'LicenseRef-scancode-ms-exchange-srv-2010-sp2-sdk'], + ['ms-iis-container-images-eula-2020', 'LicenseRef-scancode-ms-iis-container-eula-2020'], + ['ms-ilmerge', 'LicenseRef-scancode-ms-ilmerge'], + ['ms-invisible-eula-1.0', 'LicenseRef-scancode-ms-invisible-eula-1.0'], + ['ms-jdbc-driver-40-sql-server', 'LicenseRef-scancode-ms-jdbc-driver-40-sql-server'], + ['ms-jdbc-driver-41-sql-server', 'LicenseRef-scancode-ms-jdbc-driver-41-sql-server'], + ['ms-jdbc-driver-60-sql-server', 'LicenseRef-scancode-ms-jdbc-driver-60-sql-server'], + ['ms-kinext-win-sdk', 'LicenseRef-scancode-ms-kinext-win-sdk'], + ['ms-limited-community', 'LicenseRef-scancode-ms-limited-community'], + ['ms-limited-public', 'null'], + ['ms-lpl', 'MS-LPL'], + ['ms-msn-webgrease', 'LicenseRef-scancode-ms-msn-webgrease'], + ['ms-net-framework-4-supplemental-terms', 'LicenseRef-scancode-ms-net-framework-4-supp-terms'], + ['ms-net-framework-deployment', 'LicenseRef-scancode-ms-net-framework-deployment'], + ['ms-net-library', 'LicenseRef-scancode-ms-net-library'], + ['ms-net-library-2016-05', 'LicenseRef-scancode-ms-net-library-2016-05'], + ['ms-net-library-2018-11', 'LicenseRef-scancode-ms-net-library-2018-11'], + ['ms-net-library-2019-06', 'LicenseRef-scancode-ms-net-library-2019-06'], + ['ms-net-library-2020-09', 'LicenseRef-scancode-ms-net-library-2020-09'], + ['ms-nt-resource-kit', 'LicenseRef-scancode-ms-nt-resource-kit'], + ['ms-nuget', 'LicenseRef-scancode-ms-nuget'], + ['ms-nuget-package-manager', 'LicenseRef-scancode-ms-nuget-package-manager'], + ['ms-office-extensible-file', 'LicenseRef-scancode-ms-office-extensible-file'], + ['ms-office-system-programs-eula', 'LicenseRef-scancode-ms-office-system-programs-eula'], + ['ms-opus-patent-2012', 'LicenseRef-scancode-ms-opus-patent-2012'], + ['ms-patent-promise', 'LicenseRef-scancode-ms-patent-promise'], + ['ms-patent-promise-mono', 'LicenseRef-scancode-ms-patent-promise-mono'], + ['ms-permissive-1.1', 'null'], ['ms-pl', 'MS-PL'], + ['ms-platform-sdk', 'LicenseRef-scancode-ms-platform-sdk'], + ['ms-pre-release-sla-2023', 'LicenseRef-scancode-ms-pre-release-sla-2023'], + ['ms-programsynthesis-7.22.0', 'LicenseRef-scancode-ms-programsynthesis-7.22.0'], + ['ms-python-vscode-pylance-2021', 'LicenseRef-scancode-ms-python-vscode-pylance-2021'], + ['ms-reactive-extensions-eula', 'LicenseRef-scancode-ms-reactive-extensions-eula'], + ['ms-refl', 'null'], + ['ms-remote-ndis-usb-kit', 'LicenseRef-scancode-ms-remote-ndis-usb-kit'], + ['ms-research-shared-source', 'LicenseRef-scancode-ms-research-shared-source'], ['ms-rl', 'MS-RL'], + ['ms-rsl', 'LicenseRef-scancode-ms-rsl'], + ['ms-silverlight-3', 'LicenseRef-scancode-ms-silverlight-3'], + ['ms-specification', 'LicenseRef-scancode-ms-specification'], + ['ms-sql-server-compact-4.0', 'LicenseRef-scancode-ms-sql-server-compact-4.0'], + ['ms-sql-server-data-tools', 'LicenseRef-scancode-ms-sql-server-data-tools'], + ['ms-sspl', 'LicenseRef-scancode-ms-sspl'], + ['ms-sysinternals-sla', 'LicenseRef-scancode-ms-sysinternals-sla'], + ['ms-testplatform-17.0.0', 'LicenseRef-scancode-ms-testplatform-17.0.0'], + ['ms-ttf-eula', 'LicenseRef-scancode-ms-ttf-eula'], + ['ms-typescript-msbuild-4.1.4', 'LicenseRef-scancode-ms-typescript-msbuild-4.1.4'], + ['ms-visual-2008-runtime', 'LicenseRef-scancode-ms-visual-2008-runtime'], + ['ms-visual-2010-runtime', 'LicenseRef-scancode-ms-visual-2010-runtime'], + ['ms-visual-2015-sdk', 'LicenseRef-scancode-ms-visual-2015-sdk'], + ['ms-visual-cpp-2015-runtime', 'LicenseRef-scancode-ms-visual-cpp-2015-runtime'], + ['ms-visual-studio-2017', 'LicenseRef-scancode-ms-visual-studio-2017'], + ['ms-visual-studio-2017-tools', 'LicenseRef-scancode-ms-visual-studio-2017-tools'], + ['ms-visual-studio-code', 'LicenseRef-scancode-ms-visual-studio-code'], + ['ms-visual-studio-code-2018', 'LicenseRef-scancode-ms-visual-studio-code-2018'], + ['ms-visual-studio-code-2022', 'LicenseRef-scancode-ms-visual-studio-code-2022'], + ['ms-vs-addons-ext-17.2.0', 'LicenseRef-scancode-ms-vs-addons-ext-17.2.0'], + ['ms-web-developer-tools-1.0', 'LicenseRef-scancode-ms-web-developer-tools-1.0'], + ['ms-windows-container-base-image-eula-2020', 'LicenseRef-scancode-ms-win-container-eula-2020'], + ['ms-windows-driver-kit', 'LicenseRef-scancode-ms-windows-driver-kit'], + ['ms-windows-identity-foundation', 'LicenseRef-scancode-ms-windows-identity-foundation'], + ['ms-windows-os-2018', 'LicenseRef-scancode-ms-windows-os-2018'], + ['ms-windows-sdk-server-2008-net-3.5', 'LicenseRef-scancode-ms-win-sdk-server-2008-net-3.5'], + ['ms-windows-sdk-win10', 'LicenseRef-scancode-ms-windows-sdk-win10'], + ['ms-windows-sdk-win10-net-6', 'LicenseRef-scancode-ms-windows-sdk-win10-net-6'], + ['ms-windows-sdk-win7-net-4', 'LicenseRef-scancode-ms-windows-sdk-win7-net-4'], + ['ms-windows-server-2003-ddk', 'LicenseRef-scancode-ms-windows-server-2003-ddk'], + ['ms-windows-server-2003-sdk', 'LicenseRef-scancode-ms-windows-server-2003-sdk'], + ['ms-ws-routing-spec', 'LicenseRef-scancode-ms-ws-routing-spec'], + ['ms-xamarin-uitest3.2.0', 'LicenseRef-scancode-ms-xamarin-uitest3.2.0'], + ['ms-xml-core-4.0', 'LicenseRef-scancode-ms-xml-core-4.0'], + ['msdn-magazine-sample-code-2007', 'LicenseRef-scancode-msdn-magazine-sample-code-2007'], + ['msj-sample-code', 'LicenseRef-scancode-msj-sample-code'], + ['msntp', 'LicenseRef-scancode-msntp'], + ['msppl', 'LicenseRef-scancode-msppl'], ['mtll', 'MTLL'], - ['mup', 'Mup'], + ['mtx-licensing-statement', 'LicenseRef-scancode-mtx-licensing-statement'], + ['mulanpsl-1.0', 'MulanPSL-1.0'], + ['mulanpsl-1.0-en', 'LicenseRef-scancode-mulanpsl-1.0-en'], + ['mulanpsl-2.0', 'MulanPSL-2.0'], + ['mulanpsl-2.0-en', 'LicenseRef-scancode-mulanpsl-2.0-en'], + ['mulanpubl-1.0', 'LicenseRef-scancode-mulanpubl-1.0'], + ['mulanpubl-2.0', 'LicenseRef-scancode-mulanpubl-2.0'], + ['mule-source-1.1.3', 'LicenseRef-scancode-mule-source-1.1.3'], + ['mule-source-1.1.4', 'LicenseRef-scancode-mule-source-1.1.4'], + ['mulle-kybernetik', 'LicenseRef-scancode-mulle-kybernetik'], ['multics', 'Multics'], + ['mup', 'Mup'], + ['musl-exception', 'LicenseRef-scancode-musl-exception'], + ['mut-license', 'LicenseRef-scancode-mut-license'], + ['mvt-1.1', 'LicenseRef-scancode-mvt-1.1'], + ['mx4j', 'LicenseRef-scancode-mx4j'], + ['mysql-connector-odbc-exception-2.0', 'LicenseRef-scancode-mysql-con-odbc-exception-2.0'], + ['mysql-floss-exception-2.0', 'LicenseRef-scancode-mysql-floss-exception-2.0'], + ['mysql-linking-exception-2018', 'LicenseRef-scancode-mysql-linking-exception-2018'], + ['n8n-ee-2022', 'LicenseRef-scancode-n8n-ee-2022'], + ['naist-2003', 'NAIST-2003'], + ['nant-exception-2.0-plus', 'LicenseRef-scancode-nant-exception-2.0-plus'], ['nasa-1.3', 'NASA-1.3'], + ['naughter', 'LicenseRef-scancode-naughter'], ['naumen', 'Naumen'], ['nbpl-1.0', 'NBPL-1.0'], + ['ncbi', 'LicenseRef-scancode-ncbi'], + ['ncgl-uk-2.0', 'NCGL-UK-2.0'], + ['ncsa-httpd-1995', 'LicenseRef-scancode-ncsa-httpd-1995'], + ['nero-eula', 'LicenseRef-scancode-nero-eula'], ['net-snmp', 'Net-SNMP'], + ['netapp-sdk-aug2020', 'LicenseRef-scancode-netapp-sdk-aug2020'], + ['netcat', 'LicenseRef-scancode-netcat'], ['netcdf', 'NetCDF'], + ['netcomponents', 'LicenseRef-scancode-netcomponents'], + ['netdata-ncul1', 'LicenseRef-scancode-netdata-ncul1'], + ['netron', 'LicenseRef-scancode-netron'], + ['netronome-firmware', 'LicenseRef-scancode-netronome-firmware'], + ['network-time-protocol', 'null'], + ['new-relic', 'LicenseRef-scancode-new-relic'], + ['newlib-historical', 'LicenseRef-scancode-newlib-historical'], + ['newran', 'LicenseRef-scancode-newran'], ['newsletr', 'Newsletr'], + ['newton-king-cla', 'LicenseRef-scancode-newton-king-cla'], + ['nexb-eula-saas-1.1.0', 'LicenseRef-scancode-nexb-eula-saas-1.1.0'], + ['nexb-ssla-1.1.0', 'LicenseRef-scancode-nexb-ssla-1.1.0'], ['ngpl', 'NGPL'], + ['nice', 'LicenseRef-scancode-nice'], + ['nicta-exception', 'LicenseRef-scancode-nicta-exception'], + ['nicta-psl', 'NICTA-1.0'], + ['niels-ferguson', 'LicenseRef-scancode-niels-ferguson'], + ['nilsson-historical', 'LicenseRef-scancode-nilsson-historical'], + ['nist-pd', 'NIST-PD'], + ['nist-pd-fallback', 'NIST-PD-fallback'], + ['nist-software', 'NIST-Software'], + ['nist-srd', 'LicenseRef-scancode-nist-srd'], ['nlod-1.0', 'NLOD-1.0'], + ['nlod-2.0', 'NLOD-2.0'], ['nlpl', 'NLPL'], + ['no-license', 'LicenseRef-scancode-no-license'], + ['node-js', 'LicenseRef-scancode-node-js'], + ['nokia-qt-exception-1.1', 'null'], ['nokos-1.0a', 'Nokia'], + ['non-violent-4.0', 'LicenseRef-scancode-non-violent-4.0'], + ['non-violent-7.0', 'LicenseRef-scancode-non-violent-7.0'], + ['nonexclusive', 'LicenseRef-scancode-nonexclusive'], + ['nortel-dasa', 'LicenseRef-scancode-nortel-dasa'], + ['northwoods-sla-2021', 'LicenseRef-scancode-northwoods-sla-2021'], ['nosl-1.0', 'NOSL'], + ['nosl-3.0', 'NPOSL-3.0'], + ['notre-dame', 'LicenseRef-scancode-notre-dame'], ['noweb', 'Noweb'], ['npl-1.0', 'NPL-1.0'], ['npl-1.1', 'NPL-1.1'], + ['npsl-exception-0.92', 'LicenseRef-scancode-npsl-exception-0.92'], + ['npsl-exception-0.93', 'LicenseRef-scancode-npsl-exception-0.93'], + ['npsl-exception-0.94', 'LicenseRef-scancode-npsl-exception-0.94'], + ['npsl-exception-0.95', 'LicenseRef-scancode-npsl-exception-0.95'], ['nrl', 'NRL'], - ['nosl-3.0', 'NPOSL-3.0'], - ['ntpl', 'NTP'], + ['nrl-permission', 'CMU-Mach-nodoc'], + ['ntlm', 'LicenseRef-scancode-ntlm'], + ['ntp-0', 'NTP-0'], + ['ntpl', 'null'], + ['ntpl-origin', 'LicenseRef-scancode-ntpl-origin'], + ['nucleusicons-eula', 'LicenseRef-scancode-nucleusicons-eula'], + ['numerical-recipes-notice', 'LicenseRef-scancode-numerical-recipes-notice'], + ['nunit-v2', 'null'], + ['nvidia', 'LicenseRef-scancode-nvidia'], + ['nvidia-2002', 'AML-glslang'], + ['nvidia-apex-sdk-eula-2011', 'LicenseRef-scancode-nvidia-apex-sdk-eula-2011'], + ['nvidia-cuda-supplement-2020', 'LicenseRef-scancode-nvidia-cuda-supplement-2020'], + ['nvidia-gov', 'LicenseRef-scancode-nvidia-gov'], + ['nvidia-isaac-eula-2019.1', 'LicenseRef-scancode-nvidia-isaac-eula-2019.1'], + ['nvidia-ngx-eula-2019', 'LicenseRef-scancode-nvidia-ngx-eula-2019'], + ['nvidia-sdk-eula-v0.11', 'LicenseRef-scancode-nvidia-sdk-eula-v0.11'], + ['nvidia-video-codec-agreement', 'LicenseRef-scancode-nvidia-video-codec-agreement'], + ['nwhm', 'LicenseRef-scancode-nwhm'], + ['nxp-firmware-patent', 'LicenseRef-scancode-nxp-firmware-patent'], + ['nxp-linux-firmware', 'LicenseRef-scancode-nxp-linux-firmware'], + ['nxp-mc-firmware', 'LicenseRef-scancode-nxp-mc-firmware'], + ['nxp-microcontroller-proprietary', 'LicenseRef-scancode-nxp-microctl-proprietary'], + ['nxp-warranty-disclaimer', 'LicenseRef-scancode-nxp-warranty-disclaimer'], + ['nysl-0.9982', 'LicenseRef-scancode-nysl-0.9982'], + ['nysl-0.9982-jp', 'LicenseRef-scancode-nysl-0.9982-jp'], + ['o-uda-1.0', 'O-UDA-1.0'], + ['o-young-jong', 'LicenseRef-scancode-o-young-jong'], + ['oasis-ipr-2013', 'LicenseRef-scancode-oasis-ipr-2013'], + ['oasis-ipr-policy-2014', 'LicenseRef-scancode-oasis-ipr-policy-2014'], + ['oasis-ws-security-spec', 'LicenseRef-scancode-oasis-ws-security-spec'], + ['object-form-exception-to-mit', 'fmt-exception'], ['ocaml-lgpl-linking-exception', 'OCaml-LGPL-linking-exception'], + ['ocb-non-military-2013', 'LicenseRef-scancode-ocb-non-military-2013'], + ['ocb-open-source-2013', 'LicenseRef-scancode-ocb-open-source-2013'], + ['ocb-patent-openssl-2013', 'LicenseRef-scancode-ocb-patent-openssl-2013'], + ['occt-exception-1.0', 'OCCT-exception-1.0'], ['occt-pl', 'OCCT-PL'], + ['oclc-1.0', 'LicenseRef-scancode-oclc-1.0'], ['oclc-2.0', 'OCLC-2.0'], + ['ocsl-1.0', 'LicenseRef-scancode-ocsl-1.0'], + ['oculus-sdk', 'LicenseRef-scancode-oculus-sdk'], + ['oculus-sdk-2020', 'LicenseRef-scancode-oculus-sdk-2020'], + ['oculus-sdk-3.5', 'LicenseRef-scancode-oculus-sdk-3.5'], + ['odb-cpl', 'LicenseRef-scancode-odb-cpl'], + ['odb-fpl', 'LicenseRef-scancode-odb-fpl'], + ['odb-ncuel', 'LicenseRef-scancode-odb-ncuel'], ['odbl-1.0', 'ODbL-1.0'], - ['occt-exception-1.0', 'OCCT-exception-1.0'], + ['odc-1.0', 'null'], ['odc-by-1.0', 'ODC-By-1.0'], - ['ofl-1.1', 'OFL-1.1'], + ['odl', 'LicenseRef-scancode-odl'], + ['odmg', 'LicenseRef-scancode-odmg'], + ['offis', 'OFFIS'], ['ofl-1.0', 'OFL-1.0'], - ['ogl-uk-2.0', 'OGL-UK-2.0'], + ['ofl-1.0-no-rfn', 'OFL-1.0-no-RFN'], + ['ofl-1.0-rfn', 'OFL-1.0-RFN'], + ['ofl-1.1', 'OFL-1.1'], + ['ofl-1.1-no-rfn', 'OFL-1.1-no-RFN'], + ['ofl-1.1-rfn', 'OFL-1.1-RFN'], + ['ofrak-community-1.0', 'LicenseRef-scancode-ofrak-community-1.0'], + ['ogc', 'LicenseRef-scancode-ogc'], + ['ogc-1.0', 'OGC-1.0'], + ['ogc-2006', 'null'], + ['ogc-document-2020', 'LicenseRef-scancode-ogc-document-2020'], + ['ogdl-taiwan-1.0', 'OGDL-Taiwan-1.0'], + ['ogl-1.0a', 'LicenseRef-scancode-ogl-1.0a'], + ['ogl-canada-2.0-fr', 'LicenseRef-scancode-ogl-canada-2.0-fr'], ['ogl-uk-1.0', 'OGL-UK-1.0'], + ['ogl-uk-2.0', 'OGL-UK-2.0'], ['ogl-uk-3.0', 'OGL-UK-3.0'], - ['opengroup', 'OGTSL'], + ['ogl-wpd-3.0', 'LicenseRef-scancode-ogl-wpd-3.0'], + ['ohdl-1.0', 'LicenseRef-scancode-ohdl-1.0'], + ['okl', 'LicenseRef-scancode-okl'], + ['olf-ccla-1.0', 'LicenseRef-scancode-olf-ccla-1.0'], + ['olfl-1.3', 'OLFL-1.3'], + ['oll-1.0', 'LicenseRef-scancode-oll-1.0'], + ['on2-patent', 'LicenseRef-scancode-on2-patent'], + ['ooura-2001', 'LicenseRef-scancode-ooura-2001'], + ['open-diameter', 'LicenseRef-scancode-open-diameter'], ['open-public', 'OPL-1.0'], + ['open-weights-permissive-1.0.0', 'LicenseRef-scancode-open-weights-permissive-1.0.0'], + ['openai-tou-20230314', 'LicenseRef-scancode-openai-tou-20230314'], + ['openbd-exception-3.0', 'LicenseRef-scancode-openbd-exception-3.0'], + ['opencarp-1.0', 'LicenseRef-scancode-opencarp-1.0'], + ['opengroup', 'OGTSL'], + ['opengroup-pl', 'LicenseRef-scancode-opengroup-pl'], + ['openi-pl-1.0', 'LicenseRef-scancode-openi-pl-1.0'], ['openjdk-assembly-exception-1.0', 'OpenJDK-assembly-exception-1.0'], + ['openjdk-classpath-exception-2.0', 'LicenseRef-scancode-openjdk-classpath-exception2.0'], + ['openjdk-exception', 'LicenseRef-scancode-openjdk-exception'], + ['openldap-1.1', 'OLDAP-1.1'], ['openldap-1.2', 'OLDAP-1.2'], - ['openldap-1.4', 'OLDAP-1.4'], ['openldap-1.3', 'OLDAP-1.3'], - ['openldap-1.1', 'OLDAP-1.1'], + ['openldap-1.4', 'OLDAP-1.4'], ['openldap-2.0', 'OLDAP-2.0'], ['openldap-2.0.1', 'OLDAP-2.0.1'], ['openldap-2.1', 'OLDAP-2.1'], - ['openldap-2.2.2', 'OLDAP-2.2.2'], ['openldap-2.2', 'OLDAP-2.2'], - ['openldap-2.3', 'OLDAP-2.3'], ['openldap-2.2.1', 'OLDAP-2.2.1'], + ['openldap-2.2.2', 'OLDAP-2.2.2'], + ['openldap-2.3', 'OLDAP-2.3'], ['openldap-2.4', 'OLDAP-2.4'], ['openldap-2.5', 'OLDAP-2.5'], - ['openldap-2.7', 'OLDAP-2.7'], ['openldap-2.6', 'OLDAP-2.6'], + ['openldap-2.7', 'OLDAP-2.7'], ['openldap-2.8', 'OLDAP-2.8'], + ['openmap', 'LicenseRef-scancode-openmap'], + ['openmarket-fastcgi', 'LicenseRef-scancode-openmarket-fastcgi'], + ['openmotif-exception-2.0-plus', 'LicenseRef-scancode-openmotif-exception-2.0-plus'], + ['openmrs-exception-to-mpl-2.0', 'LicenseRef-scancode-openmrs-exception-to-mpl-2.0'], + ['opennetcf-shared-source', 'LicenseRef-scancode-opennetcf-shared-source'], + ['openorb-1.0', 'LicenseRef-scancode-openorb-1.0'], + ['openpbs-2.3', 'OpenPBS-2.3'], + ['openpub', 'OPUBL-1.0'], + ['opensaml-1.0', 'LicenseRef-scancode-opensaml-1.0'], + ['opensc-openssl-openpace-exception-gpl', 'LicenseRef-scancode-openpace-exception-gpl'], + ['openssh', 'SSH-OpenSSH'], + ['openssl', 'OpenSSL-standalone'], + ['openssl-exception-agpl-3.0', 'LicenseRef-scancode-openssl-exception-agpl-3.0'], + ['openssl-exception-agpl-3.0-monit', 'LicenseRef-scancode-openssl-exception-agpl3.0monit'], + ['openssl-exception-agpl-3.0-plus', 'LicenseRef-scancode-openssl-exception-agpl3.0plus'], + ['openssl-exception-gpl-2.0', 'x11vnc-openssl-exception'], + ['openssl-exception-gpl-2.0-plus', 'LicenseRef-scancode-openssl-exception-gpl-2.0-plus'], + ['openssl-exception-gpl-3.0-plus', 'cryptsetup-OpenSSL-exception'], + ['openssl-exception-lgpl', 'LicenseRef-scancode-openssl-exception-lgpl'], + ['openssl-exception-lgpl-2.0-plus', 'LicenseRef-scancode-openssl-exception-lgpl2.0plus'], + ['openssl-exception-lgpl-3.0-plus', 'LicenseRef-scancode-openssl-exception-lgpl3.0plus'], + ['openssl-exception-mongodb-sspl', 'LicenseRef-scancode-openssl-exception-mongodb-sspl'], + ['openssl-nokia-psk-contribution', 'LicenseRef-scancode-openssl-nokia-psk-contribution'], ['openssl-ssleay', 'OpenSSL'], + ['openvision', 'OpenVision'], + ['openvpn-as-eula', 'LicenseRef-scancode-openvpn-as-eula'], ['openvpn-openssl-exception', 'openvpn-openssl-exception'], + ['openwall-md5-permissive', 'LicenseRef-scancode-openwall-md5-permissive'], + ['opera-eula-2018', 'LicenseRef-scancode-opera-eula-2018'], + ['opera-eula-eea-2018', 'LicenseRef-scancode-opera-eula-eea-2018'], + ['opera-widget-1.0', 'LicenseRef-scancode-opera-widget-1.0'], + ['opl-1.0', 'LicenseRef-scancode-opl-1.0'], + ['opl-uk-3.0', 'OPL-UK-3.0'], + ['opml-1.0', 'LicenseRef-scancode-opml-1.0'], + ['opnl-1.0', 'LicenseRef-scancode-opnl-1.0'], + ['opnl-2.0', 'LicenseRef-scancode-opnl-2.0'], + ['oracle-bcl-javaee', 'LicenseRef-scancode-oracle-bcl-javaee'], + ['oracle-bcl-javase-javafx-2012', 'LicenseRef-scancode-oracle-bcl-javase-javafx-2012'], + ['oracle-bcl-javase-javafx-2013', 'LicenseRef-scancode-oracle-bcl-javase-javafx-2013'], + ['oracle-bcl-javase-platform-javafx-2013', 'LicenseRef-scancode-oracle-bcl-java-platform-2013'], + ['oracle-bcl-javase-platform-javafx-2017', 'LicenseRef-scancode-oracle-bcl-java-platform-2017'], + ['oracle-bcl-jsse-1.0.3', 'LicenseRef-scancode-oracle-bcl-jsse-1.0.3'], ['oracle-bsd-no-nuclear', 'BSD-3-Clause-No-Nuclear-License-2014'], + ['oracle-code-samples-bsd', 'LicenseRef-scancode-oracle-code-samples-bsd'], + ['oracle-commercial-database-11g2', 'LicenseRef-scancode-oracle-commercial-db-11g2'], + ['oracle-devtools-vsnet-dev', 'LicenseRef-scancode-oracle-devtools-vsnet-dev'], + ['oracle-entitlement-05-15', 'LicenseRef-scancode-oracle-entitlement-05-15'], + ['oracle-free-2018', 'LicenseRef-scancode-oracle-free-2018'], + ['oracle-gftc-2023-06-12', 'LicenseRef-scancode-oracle-gftc-2023-06-12'], + ['oracle-java-ee-sdk-2010', 'LicenseRef-scancode-oracle-java-ee-sdk-2010'], + ['oracle-master-agreement', 'LicenseRef-scancode-oracle-master-agreement'], + ['oracle-mysql-foss-exception-2.0', 'LicenseRef-scancode-oracle-mysql-foss-exception2.0'], + ['oracle-nftc-2021', 'LicenseRef-scancode-oracle-nftc-2021'], + ['oracle-openjdk-classpath-exception-2.0', 'LicenseRef-scancode-oracle-openjdk-exception-2.0'], + ['oracle-otn-javase-2019', 'LicenseRef-scancode-oracle-otn-javase-2019'], + ['oracle-sql-developer', 'LicenseRef-scancode-oracle-sql-developer'], + ['oracle-web-sites-tou', 'LicenseRef-scancode-oracle-web-sites-tou'], + ['oreilly-notice', 'LicenseRef-scancode-oreilly-notice'], ['oset-pl-2.1', 'OSET-PL-2.1'], + ['osetpl-2.1', 'null'], + ['osf-1990', 'HP-1989'], + ['osgi-spec-2.0', 'LicenseRef-scancode-osgi-spec-2.0'], ['osl-1.0', 'OSL-1.0'], - ['osl-2.0', 'OSL-2.0'], - ['osl-3.0', 'OSL-3.0'], ['osl-1.1', 'OSL-1.1'], + ['osl-2.0', 'OSL-2.0'], ['osl-2.1', 'OSL-2.1'], + ['osl-3.0', 'OSL-3.0'], + ['ossn-3.0', 'LicenseRef-scancode-ossn-3.0'], + ['oswego-concurrent', 'LicenseRef-scancode-oswego-concurrent'], + ['other-copyleft', 'LicenseRef-scancode-other-copyleft'], + ['other-permissive', 'LicenseRef-scancode-other-permissive'], + ['otn-dev-dist', 'LicenseRef-scancode-otn-dev-dist'], + ['otn-dev-dist-2009', 'LicenseRef-scancode-otn-dev-dist-2009'], + ['otn-dev-dist-2014', 'LicenseRef-scancode-otn-dev-dist-2014'], + ['otn-dev-dist-2016', 'LicenseRef-scancode-otn-dev-dist-2016'], + ['otn-early-adopter-2018', 'LicenseRef-scancode-otn-early-adopter-2018'], + ['otn-early-adopter-development', 'LicenseRef-scancode-otn-early-adopter-development'], + ['otn-standard-2014-09', 'LicenseRef-scancode-otn-standard-2014-09'], + ['owal-1.0', 'LicenseRef-scancode-owal-1.0'], + ['owf-cla-1.0-copyright', 'LicenseRef-scancode-owf-cla-1.0-copyright'], + ['owf-cla-1.0-copyright-patent', 'LicenseRef-scancode-owf-cla-1.0-copyright-patent'], + ['owfa-1-0-patent-only', 'LicenseRef-scancode-owfa-1.0-patent-only'], + ['owfa-1.0', 'LicenseRef-scancode-owfa-1.0'], + ['owl-0.9.4', 'LicenseRef-scancode-owl-0.9.4'], + ['owtchart', 'LicenseRef-scancode-owtchart'], + ['oxygen-xml-webhelp-eula', 'LicenseRef-scancode-oxygen-xml-webhelp-eula'], + ['ozplb-1.0', 'LicenseRef-scancode-ozplb-1.0'], + ['ozplb-1.1', 'LicenseRef-scancode-ozplb-1.1'], + ['padl', 'PADL'], + ['paint-net', 'LicenseRef-scancode-paint-net'], + ['paolo-messina-2000', 'LicenseRef-scancode-paolo-messina-2000'], + ['paraview-1.2', 'LicenseRef-scancode-paraview-1.2'], + ['parity-6.0.0', 'Parity-6.0.0'], + ['parity-7.0.0', 'Parity-7.0.0'], + ['passive-aggressive', 'LicenseRef-scancode-passive-aggressive'], + ['patent-disclaimer', 'LicenseRef-scancode-patent-disclaimer'], + ['paul-hsieh-derivative', 'LicenseRef-scancode-paul-hsieh-derivative'], + ['paul-hsieh-exposition', 'LicenseRef-scancode-paul-hsieh-exposition'], + ['paul-mackerras', 'Mackerras-3-Clause-acknowledgment'], + ['paul-mackerras-binary', 'LicenseRef-scancode-paul-mackerras-binary'], + ['paul-mackerras-new', 'Mackerras-3-Clause'], + ['paul-mackerras-simplified', 'LicenseRef-scancode-paul-mackerras-simplified'], + ['paulo-soares', 'LicenseRef-scancode-paulo-soares'], + ['paypal-sdk-2013-2016', 'LicenseRef-scancode-paypal-sdk-2013-2016'], + ['pbl-1.0', 'LicenseRef-scancode-pbl-1.0'], + ['pcre', 'LicenseRef-scancode-pcre'], + ['pd-mit', 'LicenseRef-scancode-pd-mit'], + ['pd-programming', 'LicenseRef-scancode-pd-programming'], ['pddl-1.0', 'PDDL-1.0'], - ['php-3.01', 'PHP-3.01'], + ['pdf-creator-pilot', 'LicenseRef-scancode-pdf-creator-pilot'], + ['pdl-1.0', 'LicenseRef-scancode-pdl-1.0'], + ['perl-1.0', 'LicenseRef-scancode-perl-1.0'], + ['peter-deutsch-document', 'LPD-document'], + ['pfe-proprietary-notice', 'LicenseRef-scancode-pfe-proprietary-notice'], + ['pftijah-1.1', 'LicenseRef-scancode-pftijah-1.1'], + ['pftus-1.1', 'LicenseRef-scancode-pftus-1.1'], + ['phaser-academic', 'LicenseRef-scancode-phaser-academic'], + ['phaser-ccp4', 'LicenseRef-scancode-phaser-ccp4'], + ['phaser-phenix', 'LicenseRef-scancode-phaser-phenix'], + ['phil-bunce', 'LicenseRef-scancode-phil-bunce'], + ['philippe-de-muyter', 'LicenseRef-scancode-philippe-de-muyter'], + ['philips-proprietary-notice-2000', 'LicenseRef-scancode-philips-proprietary-notice2000'], + ['phorum-2.0', 'LicenseRef-scancode-phorum-2.0'], + ['php-2.0.2', 'LicenseRef-scancode-php-2.0.2'], ['php-3.0', 'PHP-3.0'], + ['php-3.01', 'PHP-3.01'], + ['pine', 'LicenseRef-scancode-pine'], + ['pivotal-tou', 'LicenseRef-scancode-pivotal-tou'], + ['pixabay-content', 'LicenseRef-scancode-pixabay-content'], + ['pixar', 'Pixar'], + ['planet-source-code', 'LicenseRef-scancode-planet-source-code'], + ['plural-20211124', 'LicenseRef-scancode-plural-20211124'], + ['pml-2020', 'LicenseRef-scancode-pml-2020'], + ['pngsuite', 'LicenseRef-scancode-pngsuite'], + ['pnmstitch', 'pnmstitch'], + ['politepix-pl-1.0', 'LicenseRef-scancode-politepix-pl-1.0'], + ['polyform-defensive-1.0.0', 'null'], + ['polyform-free-trial-1.0.0', 'LicenseRef-scancode-polyform-free-trial-1.0.0'], + ['polyform-internal-use-1.0.0', 'LicenseRef-scancode-polyform-internal-use-1.0.0'], + ['polyform-noncommercial-1.0.0', 'PolyForm-Noncommercial-1.0.0'], + ['polyform-perimeter-1.0.0', 'LicenseRef-scancode-polyform-perimeter-1.0.0'], + ['polyform-shield-1.0.0', 'LicenseRef-scancode-polyform-shield-1.0.0'], + ['polyform-small-business-1.0.0', 'PolyForm-Small-Business-1.0.0'], + ['polyform-strict-1.0.0', 'LicenseRef-scancode-polyform-strict-1.0.0'], ['postgresql', 'PostgreSQL'], + ['powervr-tools-software-eula', 'LicenseRef-scancode-powervr-tools-software-eula'], + ['ppp', 'LicenseRef-scancode-ppp'], + ['proconx-modbus-rev4', 'LicenseRef-scancode-proconx-modbus-rev4'], + ['proguard-exception-2.0', 'LicenseRef-scancode-proguard-exception-2.0'], + ['proprietary', 'null'], + ['proprietary-license', 'LicenseRef-scancode-proprietary-license'], + ['prosperity-1.0.1', 'LicenseRef-scancode-prosperity-1.0.1'], + ['prosperity-2.0', 'LicenseRef-scancode-prosperity-2.0'], + ['prosperity-3.0', 'LicenseRef-scancode-prosperity-3.0'], + ['protobuf', 'LicenseRef-scancode-protobuf'], ['ps-or-pdf-font-exception-20170817', 'PS-or-PDF-font-exception-20170817'], + ['psf-2.0', 'PSF-2.0'], + ['psf-3.7.2', 'LicenseRef-scancode-psf-3.7.2'], ['psfrag', 'psfrag'], ['psutils', 'psutils'], + ['psytec-freesoft', 'LicenseRef-scancode-psytec-freesoft'], + ['public-domain', 'LicenseRef-scancode-public-domain'], + ['public-domain-disclaimer', 'LicenseRef-scancode-public-domain-disclaimer'], + ['punycode', 'LicenseRef-scancode-punycode'], + ['purdue-bsd', 'lsof'], + ['pybench', 'LicenseRef-scancode-pybench'], + ['pycrypto', 'LicenseRef-scancode-pycrypto'], + ['pygres-2.2', 'LicenseRef-scancode-pygres-2.2'], ['python', 'Python-2.0'], - ['qpl-1.0', 'QPL-1.0'], + ['python-2.0.1', 'Python-2.0.1'], + ['python-cwi', 'LicenseRef-scancode-python-cwi'], + ['python-ldap', 'python-ldap'], + ['qaplug', 'LicenseRef-scancode-qaplug'], + ['qca-linux-firmware', 'LicenseRef-scancode-qca-linux-firmware'], + ['qca-technology', 'LicenseRef-scancode-qca-technology'], + ['qcad-exception-gpl', 'LicenseRef-scancode-qcad-exception-gpl'], ['qhull', 'Qhull'], + ['qlogic-firmware', 'LicenseRef-scancode-qlogic-firmware'], + ['qlogic-microcode', 'LicenseRef-scancode-qlogic-microcode'], + ['qpl-1.0', 'QPL-1.0'], + ['qpl-1.0-inria-2004', 'QPL-1.0-INRIA-2004'], + ['qpopper', 'LicenseRef-scancode-qpopper'], + ['qskinny-exception-lgpl-2.1', 'LicenseRef-scancode-qskinny-exception-lgpl-2.1'], + ['qt-commercial-1.1', 'LicenseRef-scancode-qt-commercial-1.1'], + ['qt-commercial-agreement-4.4.1', 'LicenseRef-scancode-qt-commercial-agreement-4.4.1'], + ['qt-company-exception-2017-lgpl-2.1', 'null'], + ['qt-company-exception-lgpl-2.1', 'LicenseRef-scancode-qt-company-exception-lgpl-2.1'], ['qt-gpl-exception-1.0', 'Qt-GPL-exception-1.0'], + ['qt-kde-linking-exception', 'LicenseRef-scancode-qt-kde-linking-exception'], ['qt-lgpl-exception-1.1', 'Qt-LGPL-exception-1.1'], + ['qt-qca-exception-2.0', 'LicenseRef-scancode-qt-qca-exception-2.0'], + ['qti-linux-firmware', 'LicenseRef-scancode-qti-linux-firmware'], + ['qualcomm-iso', 'LicenseRef-scancode-qualcomm-iso'], + ['qualcomm-turing', 'LicenseRef-scancode-qualcomm-turing'], + ['quickfix-1.0', 'LicenseRef-scancode-quickfix-1.0'], + ['quicktime', 'LicenseRef-scancode-quicktime'], + ['quin-street', 'LicenseRef-scancode-quin-street'], + ['quirksmode', 'LicenseRef-scancode-quirksmode'], + ['qwt-1.0', 'null'], ['qwt-exception-1.0', 'Qwt-exception-1.0'], + ['rackspace', 'LicenseRef-scancode-rackspace'], + ['radvd', 'radvd'], + ['ralf-corsepius', 'null'], + ['ralink-firmware', 'LicenseRef-scancode-ralink-firmware'], + ['rar-winrar-eula', 'LicenseRef-scancode-rar-winrar-eula'], + ['rcsl-2.0', 'LicenseRef-scancode-rcsl-2.0'], + ['rcsl-3.0', 'LicenseRef-scancode-rcsl-3.0'], ['rdisc', 'Rdisc'], - ['ricoh-1.0', 'RSCPL'], + ['reading-godiva-2010', 'LicenseRef-scancode-reading-godiva-2010'], + ['realm-platform-extension-2017', 'LicenseRef-scancode-realm-platform-extension-2017'], + ['red-hat-attribution', 'LicenseRef-scancode-red-hat-attribution'], + ['red-hat-bsd-simplified', 'LicenseRef-scancode-red-hat-bsd-simplified'], + ['red-hat-logos', 'LicenseRef-scancode-red-hat-logos'], + ['red-hat-trademarks', 'LicenseRef-scancode-red-hat-trademarks'], + ['redis-source-available-1.0', 'LicenseRef-scancode-redis-source-available-1.0'], ['regexp', 'Spencer-86'], + ['reportbug', 'LicenseRef-scancode-reportbug'], + ['repoze', 'BSD-3-Clause-Modification'], + ['research-disclaimer', 'LicenseRef-scancode-research-disclaimer'], + ['responsible-ai-source-1.0', 'LicenseRef-scancode-responsible-ai-source-1.0'], + ['responsible-ai-source-1.1', 'LicenseRef-scancode-responsible-ai-source-1.1'], + ['rh-eula', 'LicenseRef-scancode-rh-eula'], + ['rh-eula-lgpl', 'LicenseRef-scancode-rh-eula-lgpl'], + ['ricebsd', 'LicenseRef-scancode-ricebsd'], + ['richard-black', 'LicenseRef-scancode-richard-black'], + ['ricoh-1.0', 'RSCPL'], + ['riverbank-sip', 'LicenseRef-scancode-riverbank-sip'], + ['robert-hubley', 'LicenseRef-scancode-robert-hubley'], + ['rockchip-proprietary-2022', 'LicenseRef-scancode-rockchip-proprietary-2022'], + ['rogue-wave', 'LicenseRef-scancode-rogue-wave'], ['rpl-1.1', 'RPL-1.1'], ['rpl-1.5', 'RPL-1.5'], ['rpsl-1.0', 'RPSL-1.0'], + ['rrdtool-floss-exception-2.0', 'LicenseRef-scancode-rrdtool-floss-exception-2.0'], + ['rsa-1990', 'LicenseRef-scancode-rsa-1990'], + ['rsa-cryptoki', 'LicenseRef-scancode-rsa-cryptoki'], + ['rsa-demo', 'LicenseRef-scancode-rsa-demo'], + ['rsa-md2', 'LicenseRef-scancode-rsa-md2'], + ['rsa-md4', 'LicenseRef-scancode-rsa-md4'], ['rsa-md5', 'RSA-MD'], + ['rsa-proprietary', 'LicenseRef-scancode-rsa-proprietary'], + ['rsalv2', 'LicenseRef-scancode-rsalv2'], + ['rtools-util', 'LicenseRef-scancode-rtools-util'], ['ruby', 'Ruby'], + ['rubyencoder-commercial', 'LicenseRef-scancode-rubyencoder-commercial'], + ['rubyencoder-loader', 'LicenseRef-scancode-rubyencoder-loader'], + ['rute', 'LicenseRef-scancode-rute'], + ['rxtx-exception-lgpl-2.1', 'LicenseRef-scancode-rxtx-exception-lgpl-2.1'], + ['ryszard-szopa', 'LicenseRef-scancode-ryszard-szopa'], + ['saas-mit', 'LicenseRef-scancode-saas-mit'], + ['saf', 'LicenseRef-scancode-saf'], + ['safecopy-eula', 'LicenseRef-scancode-safecopy-eula'], + ['san-francisco-font', 'LicenseRef-scancode-san-francisco-font'], + ['sandeep', 'LicenseRef-scancode-sandeep'], + ['sane-exception-2.0-plus', 'SANE-exception'], + ['sash', 'LicenseRef-scancode-sash'], + ['sata', 'LicenseRef-scancode-sata'], ['sax-pd', 'SAX-PD'], + ['sax-pd-2.0', 'SAX-PD-2.0'], + ['saxix-mit', 'LicenseRef-scancode-saxix-mit'], ['saxpath', 'Saxpath'], + ['sbia-b', 'LicenseRef-scancode-sbia-b'], + ['scancode-acknowledgment', 'LicenseRef-scancode-scancode-acknowledgment'], + ['scanlogd-license', 'LicenseRef-scancode-scanlogd-license'], + ['scansoft-1.2', 'LicenseRef-scancode-scansoft-1.2'], ['scea-1.0', 'SCEA'], - ['sendmail-8.23', 'Sendmail-8.23'], + ['schemereport', 'SchemeReport'], + ['scilab-en-2005', 'LicenseRef-scancode-scilab-en'], + ['scilab-fr', 'LicenseRef-scancode-scilab-fr'], + ['scintilla', 'LicenseRef-scancode-scintilla'], + ['scola-en', 'LicenseRef-scancode-scola-en'], + ['scola-fr', 'LicenseRef-scancode-scola-fr'], + ['scribbles', 'LicenseRef-scancode-scribbles'], + ['script-asylum', 'LicenseRef-scancode-script-asylum'], + ['script-nikhilk', 'LicenseRef-scancode-script-nikhilk'], + ['scrub', 'LicenseRef-scancode-scrub'], + ['scsl-3.0', 'LicenseRef-scancode-scsl-3.0'], + ['secret-labs-2011', 'LicenseRef-scancode-secret-labs-2011'], + ['see-license', 'null'], + ['selinux-nsa-declaration-1.0', 'libselinux-1.0'], + ['semgrep-registry', 'LicenseRef-scancode-semgrep-registry'], + ['sencha-app-floss-exception', 'LicenseRef-scancode-sencha-app-floss-exception'], + ['sencha-commercial', 'LicenseRef-scancode-sencha-commercial'], + ['sencha-commercial-3.17', 'LicenseRef-scancode-sencha-commercial-3.17'], + ['sencha-commercial-3.9', 'LicenseRef-scancode-sencha-commercial-3.9'], + ['sencha-dev-floss-exception', 'LicenseRef-scancode-sencha-dev-floss-exception'], ['sendmail', 'Sendmail'], + ['sendmail-8.23', 'Sendmail-8.23'], + ['service-comp-arch', 'LicenseRef-scancode-service-comp-arch'], ['sfl-license', 'iMatix'], + ['sgi-cid-1.0', 'LicenseRef-scancode-sgi-cid-1.0'], ['sgi-freeb-1.1', 'SGI-B-1.1'], ['sgi-freeb-2.0', 'SGI-B-2.0'], ['sgi-fslb-1.0', 'SGI-B-1.0'], + ['sgi-glx-1.0', 'LicenseRef-scancode-sgi-glx-1.0'], + ['sglib', 'LicenseRef-scancode-sglib'], + ['sgp4', 'SGP4'], + ['sh-cla-1.1', 'LicenseRef-scancode-sh-cla-1.1'], + ['shavlik-eula', 'LicenseRef-scancode-shavlik-eula'], + ['shital-shah', 'LicenseRef-scancode-shital-shah'], + ['shl-0.5', 'SHL-0.5'], + ['shl-0.51', 'SHL-0.51'], + ['shl-2.0', 'SHL-2.0'], + ['shl-2.1', 'SHL-2.1'], + ['signal-gpl-3.0-exception', 'LicenseRef-scancode-signal-gpl-3.0-exception'], + ['silicon-image-2007', 'LicenseRef-scancode-silicon-image-2007'], + ['simpl-1.1', 'LicenseRef-scancode-simpl-1.1'], ['simpl-2.0', 'SimPL-2.0'], + ['six-labors-split-1.0', 'LicenseRef-scancode-six-labors-split-1.0'], + ['skip-2014', 'LicenseRef-scancode-skip-2014'], + ['sl', 'SL'], ['sleepycat', 'Sleepycat'], - ['snia', 'SNIA'], + ['slf4j-2005', 'null'], + ['slf4j-2008', 'null'], + ['slint-commercial-2.0', 'LicenseRef-scancode-slint-commercial-2.0'], + ['slint-royalty-free-1.0', 'LicenseRef-scancode-slint-royalty-free-1.0'], + ['slysoft-eula', 'LicenseRef-scancode-slysoft-eula'], + ['smail-gpl', 'LicenseRef-scancode-smail-gpl'], + ['smartlabs-freeware', 'LicenseRef-scancode-smartlabs-freeware'], ['smppl', 'SMPPL'], + ['smsc-non-commercial-2012', 'LicenseRef-scancode-smsc-non-commercial-2012'], + ['snapeda-design-exception-1.0', 'LicenseRef-scancode-snapeda-design-exception-1.0'], + ['snia', 'SNIA'], + ['snmp4j-smi', 'LicenseRef-scancode-snmp4j-smi'], + ['snprintf', 'snprintf'], + ['softerra-ldap-browser-eula', 'LicenseRef-scancode-softerra-ldap-browser-eula'], + ['softfloat', 'LicenseRef-scancode-softfloat'], + ['softfloat-2.0', 'LicenseRef-scancode-softfloat-2.0'], + ['softfloat-2c', 'LicenseRef-scancode-softfloat-2c'], + ['softsurfer', 'softSurfer'], + ['solace-software-eula-2020', 'LicenseRef-scancode-solace-software-eula-2020'], + ['soundex', 'Soundex'], + ['sourcegraph-enterprise-2018', 'LicenseRef-scancode-sourcegraph-enterprise-2018'], + ['spark-jive', 'LicenseRef-scancode-spark-jive'], + ['sparky', 'LicenseRef-scancode-sparky'], + ['speechworks-1.1', 'LicenseRef-scancode-speechworks-1.1'], + ['spell-checker-exception-lgpl-2.1-plus', 'LicenseRef-scancode-spell-exception-lgpl-2.1-plus'], ['spl-1.0', 'SPL-1.0'], + ['splunk-3pp-eula', 'LicenseRef-scancode-splunk-3pp-eula'], + ['splunk-mint-tos-2018', 'LicenseRef-scancode-splunk-mint-tos-2018'], + ['splunk-sla', 'LicenseRef-scancode-splunk-sla'], + ['square-cla', 'LicenseRef-scancode-square-cla'], + ['squeak', 'LicenseRef-scancode-squeak'], + ['srgb', 'LicenseRef-scancode-srgb'], + ['ssh-keyscan', 'ssh-keyscan'], + ['ssleay', 'LicenseRef-scancode-ssleay'], + ['ssleay-windows', 'SSLeay-standalone'], + ['st-bsd-restricted', 'LicenseRef-scancode-st-bsd-restricted'], + ['st-mcd-2.0', 'LicenseRef-scancode-st-mcd-2.0'], + ['stable-diffusion-2022-08-22', 'LicenseRef-scancode-stable-diffusion-2022-08-22'], ['standard-ml-nj', 'SMLNJ'], + ['stanford-mrouted', 'LicenseRef-scancode-stanford-mrouted'], + ['stanford-pvrg', 'LicenseRef-scancode-stanford-pvrg'], + ['statewizard', 'LicenseRef-scancode-statewizard'], + ['stax', 'LicenseRef-scancode-stax'], + ['stlport-2000', 'LicenseRef-scancode-stlport-2000'], + ['stlport-4.5', 'LicenseRef-scancode-stlport-4.5'], + ['stmicroelectronics-centrallabs', 'LicenseRef-scancode-stmicroelectronics-centrallabs'], + ['stmicroelectronics-linux-firmware', 'LicenseRef-scancode-stmicro-linux-firmware'], + ['stream-benchmark', 'LicenseRef-scancode-stream-benchmark'], + ['strongswan-exception', 'LicenseRef-scancode-strongswan-exception'], + ['stu-nicholls', 'LicenseRef-scancode-stu-nicholls'], + ['stunnel-exception', 'stunnel-exception'], + ['subcommander-exception-2.0-plus', 'LicenseRef-scancode-subcommander-exception-2.0plus'], ['sugarcrm-1.1.3', 'SugarCRM-1.1.3'], + ['sun-bcl-11-06', 'LicenseRef-scancode-sun-bcl-11-06'], + ['sun-bcl-11-07', 'LicenseRef-scancode-sun-bcl-11-07'], + ['sun-bcl-11-08', 'LicenseRef-scancode-sun-bcl-11-08'], + ['sun-bcl-j2re-1.2.x', 'LicenseRef-scancode-sun-bcl-j2re-1.2.x'], + ['sun-bcl-j2re-1.4.2', 'LicenseRef-scancode-sun-bcl-j2re-1.4.2'], + ['sun-bcl-j2re-1.4.x', 'LicenseRef-scancode-sun-bcl-j2re-1.4.x'], + ['sun-bcl-j2re-5.0', 'LicenseRef-scancode-sun-bcl-j2re-5.0'], + ['sun-bcl-java-servlet-imp-2.1.1', 'LicenseRef-scancode-sun-bcl-java-servlet-imp-2.1.1'], + ['sun-bcl-javahelp', 'LicenseRef-scancode-sun-bcl-javahelp'], + ['sun-bcl-jimi-sdk', 'LicenseRef-scancode-sun-bcl-jimi-sdk'], + ['sun-bcl-jre6', 'LicenseRef-scancode-sun-bcl-jre6'], + ['sun-bcl-jsmq', 'LicenseRef-scancode-sun-bcl-jsmq'], + ['sun-bcl-opendmk', 'LicenseRef-scancode-sun-bcl-opendmk'], + ['sun-bcl-openjdk', 'LicenseRef-scancode-sun-bcl-openjdk'], + ['sun-bcl-sdk-1.3', 'LicenseRef-scancode-sun-bcl-sdk-1.3'], + ['sun-bcl-sdk-1.4.2', 'LicenseRef-scancode-sun-bcl-sdk-1.4.2'], + ['sun-bcl-sdk-5.0', 'LicenseRef-scancode-sun-bcl-sdk-5.0'], + ['sun-bcl-sdk-6.0', 'LicenseRef-scancode-sun-bcl-sdk-6.0'], + ['sun-bcl-web-start', 'LicenseRef-scancode-sun-bcl-web-start'], + ['sun-bsd-extra', 'LicenseRef-scancode-sun-bsd-extra'], ['sun-bsd-no-nuclear', 'BSD-3-Clause-No-Nuclear-License'], + ['sun-cc-pp-1.0', 'LicenseRef-scancode-sun-cc-pp-1.0'], + ['sun-communications-api', 'LicenseRef-scancode-sun-communications-api'], + ['sun-ejb-spec-2.1', 'LicenseRef-scancode-sun-ejb-spec-2.1'], + ['sun-ejb-spec-3.0', 'LicenseRef-scancode-sun-ejb-spec-3.0'], + ['sun-entitlement-03-15', 'LicenseRef-scancode-sun-entitlement-03-15'], + ['sun-entitlement-jaf', 'LicenseRef-scancode-sun-entitlement-jaf'], + ['sun-glassfish', 'LicenseRef-scancode-sun-glassfish'], + ['sun-iiop', 'LicenseRef-scancode-sun-iiop'], + ['sun-java-transaction-api', 'LicenseRef-scancode-sun-java-transaction-api'], + ['sun-java-web-services-dev-pack-1.6', 'LicenseRef-scancode-sun-java-web-services-dev-1.6'], + ['sun-javamail', 'LicenseRef-scancode-sun-javamail'], + ['sun-jsr-spec-04-2006', 'LicenseRef-scancode-sun-jsr-spec-04-2006'], + ['sun-jta-spec-1.0.1', 'LicenseRef-scancode-sun-jta-spec-1.0.1'], + ['sun-jta-spec-1.0.1b', 'LicenseRef-scancode-sun-jta-spec-1.0.1b'], + ['sun-no-high-risk-activities', 'LicenseRef-scancode-sun-no-high-risk-activities'], + ['sun-ppp', 'Sun-PPP'], + ['sun-project-x', 'LicenseRef-scancode-sun-project-x'], + ['sun-prop-non-commercial', 'LicenseRef-scancode-sun-prop-non-commercial'], + ['sun-proprietary-jdk', 'null'], + ['sun-rpc', 'LicenseRef-scancode-sun-rpc'], + ['sun-sdk-spec-1.1', 'LicenseRef-scancode-sun-sdk-spec-1.1'], + ['sun-sissl-1.0', 'LicenseRef-scancode-sun-sissl-1.0'], ['sun-sissl-1.1', 'SISSL'], ['sun-sissl-1.2', 'SISSL-1.2'], - ['sybase', 'Watcom-1.0'], + ['sun-source', 'LicenseRef-scancode-sun-source'], + ['sun-ssscfr-1.1', 'LicenseRef-scancode-sun-ssscfr-1.1'], + ['sunpro', 'SunPro'], + ['sunsoft', 'LicenseRef-scancode-sunsoft'], + ['supervisor', 'LicenseRef-scancode-supervisor'], + ['sustainable-use-1.0', 'LicenseRef-scancode-sustainable-use-1.0'], + ['svndiff', 'LicenseRef-scancode-svndiff'], + ['swi-exception', 'SWI-exception'], + ['swig', 'LicenseRef-scancode-swig'], ['swl', 'SWL'], + ['swrule', 'swrule'], + ['sybase', 'Watcom-1.0'], + ['symlinks', 'Symlinks'], + ['symphonysoft', 'LicenseRef-scancode-symphonysoft'], + ['synopsys-attribution', 'LicenseRef-scancode-synopsys-attribution'], + ['synopsys-mit', 'LicenseRef-scancode-synopsys-mit'], + ['syntext-serna-exception-1.0', 'LicenseRef-scancode-syntext-serna-exception-1.0'], + ['synthesis-toolkit', 'LicenseRef-scancode-synthesis-toolkit'], + ['t-engine-public', 'LicenseRef-scancode-t-engine-public'], + ['t-license-1.0', 'LicenseRef-scancode-t-license-1.0'], + ['t-license-2.0', 'LicenseRef-scancode-t-license-2.0'], + ['t-license-2.1', 'LicenseRef-scancode-t-license-2.1'], + ['t-license-2.2', 'LicenseRef-scancode-t-license-2.2'], + ['t-license-amp-t-kernel', 'LicenseRef-scancode-t-license-amp-t-kernel'], + ['t-license-amp-tkse', 'LicenseRef-scancode-t-license-amp-tkse'], + ['t-license-smp-t-kernel', 'LicenseRef-scancode-t-license-smp-t-kernel'], + ['t-license-smp-tkse', 'LicenseRef-scancode-t-license-smp-tkse'], + ['t-license-tkse', 'LicenseRef-scancode-t-license-tkse'], + ['takao-abe', 'LicenseRef-scancode-takao-abe'], + ['takuya-ooura', 'LicenseRef-scancode-takuya-ooura'], + ['taligent-jdk', 'LicenseRef-scancode-taligent-jdk'], + ['tanuki-community-sla-1.0', 'LicenseRef-scancode-tanuki-community-sla-1.0'], + ['tanuki-community-sla-1.1', 'LicenseRef-scancode-tanuki-community-sla-1.1'], + ['tanuki-community-sla-1.2', 'LicenseRef-scancode-tanuki-community-sla-1.2'], + ['tanuki-community-sla-1.3', 'LicenseRef-scancode-tanuki-community-sla-1.3'], + ['tanuki-development', 'LicenseRef-scancode-tanuki-development'], + ['tanuki-maintenance', 'LicenseRef-scancode-tanuki-maintenance'], + ['tapr-ohl-1.0', 'TAPR-OHL-1.0'], + ['tatu-ylonen', 'SSH-short'], + ['tcg-spec-license-v1', 'LicenseRef-scancode-tcg-spec-license-v1'], ['tcl', 'TCL'], ['tcp-wrappers', 'TCP-wrappers'], + ['teamdev-services', 'LicenseRef-scancode-teamdev-services'], + ['tekhvc', 'LicenseRef-scancode-tekhvc'], + ['telerik-eula', 'LicenseRef-scancode-telerik-eula'], + ['tenable-nessus', 'LicenseRef-scancode-tenable-nessus'], + ['term-readkey', 'TermReadKey'], + ['tested-software', 'LicenseRef-scancode-tested-software'], + ['tex-exception', 'Texinfo-exception'], + ['tex-live', 'LicenseRef-scancode-tex-live'], + ['tfl', 'LicenseRef-scancode-tfl'], + ['tgc-spec-license-v2', 'LicenseRef-scancode-tcg-spec-license-v2'], + ['tgppl-1.0', 'TGPPL-1.0'], + ['the-stack-tos-2023-07', 'LicenseRef-scancode-the-stack-tos-2023-07'], + ['things-i-made-public-license', 'LicenseRef-scancode-things-i-made-public-license'], + ['thomas-bandt', 'LicenseRef-scancode-thomas-bandt'], + ['thor-pl', 'TPL-1.0'], + ['ti-broadband-apps', 'LicenseRef-scancode-ti-broadband-apps'], + ['ti-linux-firmware', 'LicenseRef-scancode-ti-linux-firmware'], + ['ti-restricted', 'LicenseRef-scancode-ti-restricted'], + ['tidy', 'HTMLTIDY'], + ['tiger-crypto', 'LicenseRef-scancode-tiger-crypto'], + ['tigra-calendar-3.2', 'LicenseRef-scancode-tigra-calendar-3.2'], + ['tigra-calendar-4.0', 'LicenseRef-scancode-tigra-calendar-4.0'], + ['tim-janik-2003', 'LicenseRef-scancode-tim-janik-2003'], + ['timestamp-picker', 'LicenseRef-scancode-timestamp-picker'], + ['tizen-sdk', 'LicenseRef-scancode-tizen-sdk'], ['tmate', 'TMate'], + ['toppers-educational', 'LicenseRef-scancode-toppers-educational'], + ['toppers-license', 'LicenseRef-scancode-toppers-license'], ['torque-1.1', 'TORQUE-1.1'], ['tosl', 'TOSL'], + ['tpdl', 'TPDL'], + ['tpl-1.0', 'LicenseRef-scancode-tpl-1.0'], + ['tpl-2.0', 'LicenseRef-scancode-tpl-2.0'], + ['trademark-notice', 'null'], + ['trca-odl-1.0', 'LicenseRef-scancode-trca-odl-1.0'], + ['treeview-developer', 'LicenseRef-scancode-treeview-developer'], + ['treeview-distributor', 'LicenseRef-scancode-treeview-distributor'], + ['triptracker', 'LicenseRef-scancode-triptracker'], + ['trolltech-gpl-exception-1.0', 'LicenseRef-scancode-trolltech-gpl-exception-1.0'], + ['trolltech-gpl-exception-1.1', 'LicenseRef-scancode-trolltech-gpl-exception-1.1'], + ['trolltech-gpl-exception-1.2', 'LicenseRef-scancode-trolltech-gpl-exception-1.2'], + ['truecrypt-3.1', 'LicenseRef-scancode-truecrypt-3.1'], + ['trustonic-proprietary-2013', 'LicenseRef-scancode-trustonic-proprietary-2013'], + ['tsl-2018', 'LicenseRef-scancode-tsl-2018'], + ['tsl-2020', 'LicenseRef-scancode-tsl-2020'], + ['tso-license', 'LicenseRef-scancode-tso-license'], + ['ttcl', 'LicenseRef-scancode-ttcl'], + ['ttf2pt1', 'null'], + ['ttwl', 'TTWL'], + ['ttyp0', 'TTYP0'], + ['tu-berlin', 'TU-Berlin-1.0'], ['tu-berlin-2.0', 'TU-Berlin-2.0'], + ['tumbolia', 'LicenseRef-scancode-tumbolia'], + ['twisted-snmp', 'LicenseRef-scancode-twisted-snmp'], + ['txl-10.5', 'LicenseRef-scancode-txl-10.5'], ['u-boot-exception-2.0', 'u-boot-exception-2.0'], - ['tu-berlin', 'TU-Berlin-1.0'], + ['ubc', 'LicenseRef-scancode-ubc'], + ['ubdl', 'UBDL-exception'], + ['ubuntu-font-1.0', 'LicenseRef-scancode-ubuntu-font-1.0'], + ['ucar', 'UCAR'], + ['ucl-1.0', 'UCL-1.0'], + ['ugui', 'LicenseRef-scancode-ugui'], + ['ulem', 'ulem'], + ['umich-merit', 'UMich-Merit'], + ['unbuntu-font-1.0', 'null'], + ['unicode', 'LicenseRef-scancode-unicode'], + ['unicode-data-software', 'null'], + ['unicode-dfs-2015', 'Unicode-DFS-2015'], ['unicode-dfs-2016', 'Unicode-DFS-2016'], + ['unicode-icu-58', 'LicenseRef-scancode-unicode-icu-58'], + ['unicode-mappings', 'LicenseRef-scancode-unicode-mappings'], ['unicode-tou', 'Unicode-TOU'], - ['unicode-dfs-2015', 'Unicode-DFS-2015'], + ['unicode-v3', 'Unicode-3.0'], + ['universal-foss-exception-1.0', 'Universal-FOSS-exception-1.0'], + ['unixcrypt', 'UnixCrypt'], + ['unknown', 'LicenseRef-scancode-unknown'], + ['unknown-license-reference', 'LicenseRef-scancode-unknown-license-reference'], + ['unknown-spdx', 'LicenseRef-scancode-unknown-spdx'], ['unlicense', 'Unlicense'], + ['unlimited-binary-linking', 'LicenseRef-scancode-unlimited-binary-linking'], + ['unlimited-binary-use-exception', 'LicenseRef-scancode-unlimited-binary-use-exception'], + ['unlimited-linking-exception-gpl', 'LicenseRef-scancode-unlimited-link-exception-gpl'], + ['unlimited-linking-exception-lgpl', 'LicenseRef-scancode-unlimited-link-exception-lgpl'], + ['unpbook', 'LicenseRef-scancode-unpbook'], + ['unpublished-source', 'LicenseRef-scancode-unpublished-source'], + ['unrar', 'LicenseRef-scancode-unrar'], + ['unrar-v3', 'LicenseRef-scancode-unrar-v3'], + ['unsplash', 'LicenseRef-scancode-unsplash'], + ['uofu-rfpl', 'LicenseRef-scancode-uofu-rfpl'], ['uoi-ncsa', 'NCSA'], ['upl-1.0', 'UPL-1.0'], + ['upx-exception-2.0-plus', 'LicenseRef-scancode-upx-exception-2.0-plus'], + ['urt-rle', 'URT-RLE'], + ['us-govt-geotranform', 'LicenseRef-scancode-us-govt-geotranform'], + ['us-govt-public-domain', 'LicenseRef-scancode-us-govt-public-domain'], + ['us-govt-unlimited-rights', 'LicenseRef-scancode-us-govt-unlimited-rights'], + ['usrobotics-permissive', 'LicenseRef-scancode-usrobotics-permissive'], + ['utopia', 'LicenseRef-scancode-utopia'], + ['vaadin-cvdl-4.0', 'LicenseRef-scancode-vaadin-cvdl-4.0'], + ['vbaccelerator', 'LicenseRef-scancode-vbaccelerator'], + ['vcalendar', 'LicenseRef-scancode-vcalendar'], + ['vcvrack-exception-to-gpl-3.0', 'LicenseRef-scancode-vcvrack-exception-to-gpl-3.0'], + ['verbatim-manual', 'Linux-man-pages-copyleft'], + ['verisign', 'LicenseRef-scancode-verisign'], + ['vhfpl-1.1', 'LicenseRef-scancode-vhfpl-1.1'], + ['vic-metcalfe-pd', 'LicenseRef-scancode-vic-metcalfe-pd'], + ['vicomsoft-software', 'LicenseRef-scancode-vicomsoft-software'], + ['viewflow-agpl-3.0-exception', 'LicenseRef-scancode-viewflow-agpl-3.0-exception'], ['vim', 'Vim'], - ['vsl-1.0', 'VSL-1.0'], + ['vince', 'LicenseRef-scancode-vince'], + ['visual-idiot', 'LicenseRef-scancode-visual-idiot'], + ['visual-numerics', 'LicenseRef-scancode-visual-numerics'], + ['vita-nuova-liberal', 'LicenseRef-scancode-vita-nuova-liberal'], + ['vitesse-prop', 'LicenseRef-scancode-vitesse-prop'], + ['vixie-cron', 'LicenseRef-scancode-vixie-cron'], + ['vnc-viewer-ios', 'LicenseRef-scancode-vnc-viewer-ios'], + ['volatility-vsl-v1.0', 'LicenseRef-scancode-volatility-vsl-v1.0'], ['vostrom', 'VOSTROM'], + ['vpl-1.1', 'LicenseRef-scancode-vpl-1.1'], + ['vpl-1.2', 'LicenseRef-scancode-vpl-1.2'], + ['vs10x-code-map', 'LicenseRef-scancode-vs10x-code-map'], + ['vsftpd-openssl-exception', 'vsftpd-openssl-exception'], + ['vsl-1.0', 'VSL-1.0'], + ['vuforia-2013-07-29', 'LicenseRef-scancode-vuforia-2013-07-29'], + ['vvvvvv-scl-1.0', 'LicenseRef-scancode-vvvvvv-scl-1.0'], ['w3c', 'W3C'], + ['w3c-03-bsd-license', 'LicenseRef-scancode-w3c-03-bsd-license'], + ['w3c-community-cla', 'LicenseRef-scancode-w3c-community-cla'], + ['w3c-docs-19990405', 'LicenseRef-scancode-w3c-docs-19990405'], + ['w3c-docs-20021231', 'LicenseRef-scancode-w3c-docs-20021231'], + ['w3c-documentation', 'LicenseRef-scancode-w3c-documentation'], ['w3c-software-19980720', 'W3C-19980720'], + ['w3c-software-20021231', 'null'], + ['w3c-software-2023', 'LicenseRef-scancode-w3c-software-2023'], ['w3c-software-doc-20150513', 'W3C-20150513'], + ['w3c-test-suite', 'LicenseRef-scancode-w3c-test-suite'], + ['w3m', 'w3m'], + ['warranty-disclaimer', 'LicenseRef-scancode-warranty-disclaimer'], + ['waterfall-feed-parser', 'LicenseRef-scancode-waterfall-feed-parser'], + ['westhawk', 'LicenseRef-scancode-westhawk'], + ['whistle', 'LicenseRef-scancode-whistle'], + ['whitecat', 'LicenseRef-scancode-whitecat'], + ['wide-license', 'LicenseRef-scancode-wide-license'], + ['widget-workshop', 'Widget-Workshop'], + ['wifi-alliance', 'LicenseRef-scancode-wifi-alliance'], + ['william-alexander', 'LicenseRef-scancode-william-alexander'], + ['wince-50-shared-source', 'LicenseRef-scancode-wince-50-shared-source'], + ['windriver-commercial', 'LicenseRef-scancode-windriver-commercial'], + ['wingo', 'LicenseRef-scancode-wingo'], + ['wink', 'LicenseRef-scancode-wink'], + ['winzip-eula', 'LicenseRef-scancode-winzip-eula'], + ['winzip-self-extractor', 'LicenseRef-scancode-winzip-self-extractor'], + ['wol', 'LicenseRef-scancode-wol'], + ['woodruff-2002', 'LicenseRef-scancode-woodruff-2002'], + ['wordnet', 'LicenseRef-scancode-wordnet'], + ['wrox', 'LicenseRef-scancode-wrox'], + ['wrox-download', 'LicenseRef-scancode-wrox-download'], + ['ws-addressing-spec', 'LicenseRef-scancode-ws-addressing-spec'], + ['ws-policy-specification', 'LicenseRef-scancode-ws-policy-specification'], + ['ws-trust-specification', 'LicenseRef-scancode-ws-trust-specification'], ['wsuipa', 'Wsuipa'], + ['wtfnmfpl-1.0', 'LicenseRef-scancode-wtfnmfpl-1.0'], + ['wtfpl-1.0', 'LicenseRef-scancode-wtfpl-1.0'], ['wtfpl-2.0', 'WTFPL'], - ['wxwindows-exception-3.1', 'WxWindows-exception-3.1'], + ['wthpl-1.0', 'LicenseRef-scancode-wthpl-1.0'], + ['wxwidgets', 'LicenseRef-scancode-wxwidgets'], ['wxwindows', 'wxWindows'], + ['wxwindows-exception-3.1', 'WxWindows-exception-3.1'], + ['wxwindows-r-3.0', 'LicenseRef-scancode-wxwindows-r-3.0'], + ['wxwindows-u-3.0', 'LicenseRef-scancode-wxwindows-u-3.0'], ['x11', 'ICU'], - ['x11-xconsortium', 'X11'], + ['x11-acer', 'LicenseRef-scancode-x11-acer'], + ['x11-adobe', 'Adobe-Display-PostScript'], + ['x11-adobe-dec', 'LicenseRef-scancode-x11-adobe-dec'], + ['x11-bitstream', 'Bitstream-Charter'], + ['x11-dec1', 'LicenseRef-scancode-x11-dec1'], + ['x11-dec2', 'HPND-DEC'], + ['x11-doc', 'LicenseRef-scancode-x11-doc'], + ['x11-dsc', 'LicenseRef-scancode-x11-dsc'], + ['x11-fsf', 'X11-distribute-modifications-variant'], + ['x11-hanson', 'LicenseRef-scancode-x11-hanson'], + ['x11-ibm', 'LicenseRef-scancode-x11-ibm'], + ['x11-keith-packard', 'HPND-sell-variant'], + ['x11-lucent', 'dtoa'], + ['x11-lucent-variant', 'LicenseRef-scancode-x11-lucent-variant'], + ['x11-oar', 'LicenseRef-scancode-x11-oar'], + ['x11-opengl', 'SGI-OpenGL'], + ['x11-opengroup', 'MIT-open-group'], + ['x11-quarterdeck', 'LicenseRef-scancode-x11-quarterdeck'], + ['x11-r75', 'null'], + ['x11-realmode', 'LicenseRef-scancode-x11-realmode'], + ['x11-sg', 'LicenseRef-scancode-x11-sg'], + ['x11-stanford', 'LicenseRef-scancode-x11-stanford'], + ['x11-tektronix', 'LicenseRef-scancode-x11-tektronix'], ['x11-tiff', 'libtiff'], + ['x11-x11r5', 'LicenseRef-scancode-x11-x11r5'], + ['x11-xconsortium', 'X11'], + ['x11-xconsortium-veillard', 'LicenseRef-scancode-x11-xconsortium-veillard'], + ['x11-xconsortium_veillard', 'null'], + ['x11r5-authors', 'null'], + ['xceed-community-2021', 'LicenseRef-scancode-xceed-community-2021'], + ['xdebug-1.03', 'Xdebug-1.03'], + ['xenomai-gpl-exception', 'LicenseRef-scancode-xenomai-gpl-exception'], + ['xfree86-1.0', 'LicenseRef-scancode-xfree86-1.0'], ['xfree86-1.1', 'XFree86-1.1'], + ['xilinx-2016', 'LicenseRef-scancode-xilinx-2016'], ['xinetd', 'xinetd'], - ['xskat', 'XSkat'], + ['xiph-patent', 'LicenseRef-scancode-xiph-patent'], + ['xkeyboard-config-zinoviev', 'xkeyboard-config-Zinoviev'], + ['xming', 'LicenseRef-scancode-xming'], + ['xmldb-1.0', 'LicenseRef-scancode-xmldb-1.0'], ['xnet', 'Xnet'], + ['xskat', 'XSkat'], + ['xxd', 'LicenseRef-scancode-xxd'], + ['yahoo-browserplus-eula', 'LicenseRef-scancode-yahoo-browserplus-eula'], + ['yahoo-messenger-eula', 'LicenseRef-scancode-yahoo-messenger-eula'], + ['yale-cas', 'LicenseRef-scancode-yale-cas'], + ['yensdesign', 'LicenseRef-scancode-yensdesign'], + ['yolo-1.0', 'LicenseRef-scancode-yolo-1.0'], + ['yolo-2.0', 'LicenseRef-scancode-yolo-2.0'], ['ypl-1.0', 'YPL-1.0'], - ['zed', 'Zed'], ['ypl-1.1', 'YPL-1.1'], + ['zapatec-calendar', 'LicenseRef-scancode-zapatec-calendar'], + ['zed', 'Zed'], + ['zeeff', 'Zeeff'], ['zend-2.0', 'Zend-2.0'], + ['zendesk-appdev-api-2022', 'LicenseRef-scancode-zendesk-appdev-api-2022'], + ['zeromq-exception-lgpl-3.0', 'LicenseRef-scancode-zeromq-exception-lgpl-3.0'], + ['zeusbench', 'LicenseRef-scancode-zeusbench'], + ['zhorn-stickies', 'LicenseRef-scancode-zhorn-stickies'], ['zimbra-1.3', 'Zimbra-1.3'], ['zimbra-1.4', 'Zimbra-1.4'], - ['zlib-acknowledgement', 'zlib-acknowledgement'], + ['zipeg', 'LicenseRef-scancode-zipeg'], + ['ziplist5-geocode-duplication-addendum', 'LicenseRef-scancode-ziplist5-geocode-dup-addendum'], + ['ziplist5-geocode-end-user-enterprise', 'LicenseRef-scancode-ziplist5-geocode-enterprise'], + ['ziplist5-geocode-end-user-workstation', 'LicenseRef-scancode-ziplist5-geocode-workstation'], ['zlib', 'Zlib'], - ['zpl-2.0', 'ZPL-2.0'], + ['zlib-acknowledgement', 'zlib-acknowledgement'], + ['zpl-1.0', 'LicenseRef-scancode-zpl-1.0'], ['zpl-1.1', 'ZPL-1.1'], + ['zpl-2.0', 'ZPL-2.0'], ['zpl-2.1', 'ZPL-2.1'], - ['google-patent-license-golang', 'OTHER'] + ['zrythm-exception-agpl-3.0', 'LicenseRef-scancode-zrythm-exception-agpl-3.0'], + ['zsh', 'LicenseRef-scancode-zsh'], + ['zuora-software', 'LicenseRef-scancode-zuora-software'], + ['zveno-research', 'LicenseRef-scancode-zveno-research'] ]) From a9ac72de645bad1f444342dcc00d6a9b01138fbc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Apr 2024 20:22:40 +0000 Subject: [PATCH 35/55] Bump peter-evans/create-pull-request from 6.0.1 to 6.0.4 Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 6.0.1 to 6.0.4. - [Release notes](https://github.com/peter-evans/create-pull-request/releases) - [Commits](https://github.com/peter-evans/create-pull-request/compare/v6.0.1...v6.0.4) --- updated-dependencies: - dependency-name: peter-evans/create-pull-request dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/update-scancode-licensedb.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update-scancode-licensedb.yml b/.github/workflows/update-scancode-licensedb.yml index cbd230b8e..b7f8bc2db 100644 --- a/.github/workflows/update-scancode-licensedb.yml +++ b/.github/workflows/update-scancode-licensedb.yml @@ -30,7 +30,7 @@ jobs: node ./scripts/transform-scancode-licensedb.js - name: Create Pull Request - uses: peter-evans/create-pull-request@v6.0.1 + uses: peter-evans/create-pull-request@v6.0.4 with: add-paths: lib/scancodeMap.js commit-message: Update ScanCode license mapping From bcc752164bb7de9d3fd921e5db38f44df6470782 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Spie=C3=9F?= Date: Tue, 26 Mar 2024 15:13:49 +0000 Subject: [PATCH 36/55] Update SPDX visitor function for readability --- providers/summary/scancode.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/providers/summary/scancode.js b/providers/summary/scancode.js index eeeec51ab..520643df9 100644 --- a/providers/summary/scancode.js +++ b/providers/summary/scancode.js @@ -210,9 +210,18 @@ class ScanCodeSummarizer { } _normalizeLicenseExpression(licenseExpression) { - const parsed = SPDX.parse(licenseExpression, key => SPDX.normalizeSingle(scancodeMap.get(key) || key)) + const licenseVisitor = rawLicenseExpression => { + const mappedLicenseExpression = scancodeMap.get(rawLicenseExpression) + const licenseExpression = mappedLicenseExpression ? mappedLicenseExpression : rawLicenseExpression + + return SPDX.normalizeSingle(licenseExpression) + } + + const parsed = SPDX.parse(licenseExpression, licenseVisitor) const result = SPDX.stringify(parsed) + if (result === 'NOASSERTION') this.logger.info(`ScanCode NOASSERTION from ${licenseExpression}`) + return result } } From 2a949385894a53b3da1873c00e7419022e02898d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Spie=C3=9F?= Date: Tue, 23 Apr 2024 11:49:59 +0000 Subject: [PATCH 37/55] Add test to ensure LicenseRef- is not yet used --- test/summary/scancode.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/test/summary/scancode.js b/test/summary/scancode.js index a3e228c4e..c69d8b46d 100644 --- a/test/summary/scancode.js +++ b/test/summary/scancode.js @@ -186,7 +186,15 @@ describe('ScanCode summarizer', () => { [buildRule('mit OR apache-2.0', ['mit', 'apache-2.0']), 'MIT OR Apache-2.0'], [buildRule('mit AND apache-2.0', ['mit', 'apache-2.0']), 'MIT AND Apache-2.0'], [buildRule('mit OR junk', ['mit', 'junk']), 'MIT OR NOASSERTION'], - [buildRule('junk OR mit', ['mit', 'junk']), 'NOASSERTION OR MIT'] + [buildRule('junk OR mit', ['mit', 'junk']), 'NOASSERTION OR MIT'], + [ + buildRule('mit AND apache-2.0 AND agpl-generic-additional-terms', [ + 'mit', + 'apache-2.0', + 'agpl-generic-additional-terms' + ]), + 'MIT AND Apache-2.0 AND NOASSERTION' + ] ]) examples.forEach((expected, input) => { const result = Summarizer()._createExpressionFromLicense(input) From fdf3c5034be8990cd1ba512cff5a66c8c9fb13a5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 24 Apr 2024 10:21:22 +0000 Subject: [PATCH 38/55] Bump the azure-actions group with 2 updates Bumps the azure-actions group with 2 updates: [azure/login](https://github.com/azure/login) and [azure/webapps-deploy](https://github.com/azure/webapps-deploy). Updates `azure/login` from 2.0.0 to 2.1.0 - [Release notes](https://github.com/azure/login/releases) - [Commits](https://github.com/azure/login/compare/v2.0.0...v2.1.0) Updates `azure/webapps-deploy` from 3.0.0 to 3.0.1 - [Release notes](https://github.com/azure/webapps-deploy/releases) - [Commits](https://github.com/azure/webapps-deploy/compare/v3.0.0...v3.0.1) --- updated-dependencies: - dependency-name: azure/login dependency-type: direct:production update-type: version-update:semver-minor dependency-group: azure-actions - dependency-name: azure/webapps-deploy dependency-type: direct:production update-type: version-update:semver-patch dependency-group: azure-actions ... Signed-off-by: dependabot[bot] --- .github/workflows/build-and-deploy-dev.yml | 4 ++-- .github/workflows/build_and_deploy_prod.yml | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build-and-deploy-dev.yml b/.github/workflows/build-and-deploy-dev.yml index f80d171b6..4b8cc9c3f 100644 --- a/.github/workflows/build-and-deploy-dev.yml +++ b/.github/workflows/build-and-deploy-dev.yml @@ -60,7 +60,7 @@ jobs: type=${{ env.APPLICATION_TYPE }} - name: Login for Azure cli commands - uses: azure/login@v2.0.0 + uses: azure/login@v2.1.0 with: creds: ${{ secrets.AZURE_CREDENTIALS }} @@ -88,7 +88,7 @@ jobs: ] - name: Deploy to Azure WebApp - uses: azure/webapps-deploy@v3.0.0 + uses: azure/webapps-deploy@v3.0.1 with: app-name: ${{ env.AZURE_WEBAPP_NAME }} publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE_DEV }} diff --git a/.github/workflows/build_and_deploy_prod.yml b/.github/workflows/build_and_deploy_prod.yml index c4469dff3..5dd1ff05f 100644 --- a/.github/workflows/build_and_deploy_prod.yml +++ b/.github/workflows/build_and_deploy_prod.yml @@ -73,7 +73,7 @@ jobs: type=${{ env.APPLICATION_TYPE }} - name: Login for Azure cli commands - uses: azure/login@v2.0.0 + uses: azure/login@v2.1.0 with: creds: ${{ secrets.AZURE_CREDENTIALS_PROD }} @@ -106,7 +106,7 @@ jobs: ] - name: Deploy to Azure WebApp - uses: azure/webapps-deploy@v3.0.0 + uses: azure/webapps-deploy@v3.0.1 with: app-name: ${{ env.AZURE_WEBAPP_NAME }} publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE_PROD }} @@ -141,7 +141,7 @@ jobs: ] - name: Deploy to Azure EU WebApp - uses: azure/webapps-deploy@v3.0.0 + uses: azure/webapps-deploy@v3.0.1 with: app-name: ${{ env.AZURE_EU_WEBAPP_NAME }} publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE_PROD_EU }} From 45d8ec541bed812514db90826e35d7d57c4e98e0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 24 Apr 2024 10:21:42 +0000 Subject: [PATCH 39/55] Bump the docker-actions group with 2 updates Bumps the docker-actions group with 2 updates: [docker/login-action](https://github.com/docker/login-action) and [docker/build-push-action](https://github.com/docker/build-push-action). Updates `docker/login-action` from 3.0.0 to 3.1.0 - [Release notes](https://github.com/docker/login-action/releases) - [Commits](https://github.com/docker/login-action/compare/v3.0.0...v3.1.0) Updates `docker/build-push-action` from 5.2.0 to 5.3.0 - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/v5.2.0...v5.3.0) --- updated-dependencies: - dependency-name: docker/login-action dependency-type: direct:production update-type: version-update:semver-minor dependency-group: docker-actions - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-minor dependency-group: docker-actions ... Signed-off-by: dependabot[bot] --- .github/workflows/build-and-deploy-dev.yml | 4 ++-- .github/workflows/build_and_deploy_prod.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build-and-deploy-dev.yml b/.github/workflows/build-and-deploy-dev.yml index f80d171b6..b39da0b68 100644 --- a/.github/workflows/build-and-deploy-dev.yml +++ b/.github/workflows/build-and-deploy-dev.yml @@ -39,7 +39,7 @@ jobs: - uses: actions/checkout@v4 - name: Log into ghcr registry - uses: docker/login-action@v3.0.0 + uses: docker/login-action@v3.1.0 with: registry: ghcr.io username: ${{ github.actor }} # user that kicked off the action @@ -49,7 +49,7 @@ jobs: env: DOCKER_TAGS: | ${{ env.DOCKER_IMAGE_NAME }}:${{ env.DEPLOY_DOCKER_TAG }} - uses: docker/build-push-action@v5.2.0 + uses: docker/build-push-action@v5.3.0 with: context: . push: true diff --git a/.github/workflows/build_and_deploy_prod.yml b/.github/workflows/build_and_deploy_prod.yml index c4469dff3..a953389a3 100644 --- a/.github/workflows/build_and_deploy_prod.yml +++ b/.github/workflows/build_and_deploy_prod.yml @@ -52,7 +52,7 @@ jobs: - uses: actions/checkout@v4.1.1 - name: Log into ghcr registry - uses: docker/login-action@v3.0.0 + uses: docker/login-action@v3.1.0 with: registry: ghcr.io username: ${{ github.actor }} # user that kicked off the action @@ -62,7 +62,7 @@ jobs: env: DOCKER_TAGS: | ${{ env.DOCKER_IMAGE_NAME }}:${{ steps.package.outputs.version }} - uses: docker/build-push-action@v5.2.0 + uses: docker/build-push-action@v5.3.0 with: context: . push: true From b2c267c1ffbcd8e9e5a89e029ddffee1365d34bc Mon Sep 17 00:00:00 2001 From: Qing Tomlinson Date: Mon, 22 Apr 2024 12:47:40 -0700 Subject: [PATCH 40/55] Refactor definitionServiceTest Separate aggregator related tests to aggregatorTest.js --- test/business/aggregatorTest.js | 191 +++++++++++++++++++++++++ test/business/definitionServiceTest.js | 176 ----------------------- 2 files changed, 191 insertions(+), 176 deletions(-) create mode 100644 test/business/aggregatorTest.js diff --git a/test/business/aggregatorTest.js b/test/business/aggregatorTest.js new file mode 100644 index 000000000..5de3b0f09 --- /dev/null +++ b/test/business/aggregatorTest.js @@ -0,0 +1,191 @@ +// Copyright (c) Microsoft Corporation and others. Licensed under the MIT license. +// SPDX-License-Identifier: MIT + +const AggregatorService = require('../../business/aggregator') +const SummaryService = require('../../business/summarizer') +const EntityCoordinates = require('../../lib/entityCoordinates') +const { setIfValue } = require('../../lib/utils') +const deepEqualInAnyOrder = require('deep-equal-in-any-order') +const chai = require('chai') +chai.use(deepEqualInAnyOrder) +const expect = chai.expect + +describe('Aggregation service', () => { + it('handles no tool data', async () => { + const { service } = setupAggregator() + const aggregated = service.process({}) + expect(aggregated).to.be.null + }) + + it('handles one tool one version data', async () => { + const summaries = { tool2: { '1.0.0': { files: [buildFile('foo.txt', 'MIT')] } } } + const { service } = setupAggregator() + const aggregated = service.process(summaries) + expect(aggregated.files.length).to.eq(1) + }) + + it('handles one tool multiple version data', async () => { + const summaries = { + tool2: { + '1.0.0': { files: [buildFile('foo.txt', 'MIT'), buildFile('bar.txt', 'MIT')] }, + '2.0.0': { files: [buildFile('foo.txt', 'GPL-2.0')] } + } + } + const { service } = setupAggregator() + const aggregated = service.process(summaries) + expect(aggregated.files.length).to.eq(1) + expect(aggregated.files[0].path).to.eq('foo.txt') + expect(aggregated.files[0].license).to.eq('GPL-2.0') + }) + + it('handles multiple tools and one file data', async () => { + const summaries = { + tool2: { + '1.0.0': { files: [buildFile('foo.txt', 'MIT')] }, + '2.0.0': { files: [buildFile('foo.txt', 'GPL-2.0')] } + }, + tool1: { '3.0.0': { files: [buildFile('foo.txt', 'BSD-3-Clause')] } } + } + const { service } = setupAggregator() + const aggregated = service.process(summaries) + expect(aggregated.files.length).to.eq(1) + expect(aggregated.files[0].license).to.equal('BSD-3-Clause AND GPL-2.0') + }) + + it('handles multiple tools and multiple file data with extras ignored', async () => { + const summaries = { + tool2: { + '1.0.0': { files: [buildFile('foo.txt', 'MIT')] }, + '2.0.0': { files: [buildFile('foo.txt', 'GPL-2.0')] } + }, + tool1: { + '3.0.0': { files: [buildFile('foo.txt', 'BSD-3-Clause')] }, + '2.0.0': { files: [buildFile('bar.txt', 'GPL-2.0')] } + } + } + const { service } = setupAggregator() + const aggregated = service.process(summaries) + expect(aggregated.files.length).to.eq(1) + expect(aggregated.files[0].license).to.equal('BSD-3-Clause AND GPL-2.0') + }) + + it('handles multiple tools and multiple file data with extras included', async () => { + const summaries = { + tool2: { + '1.0.0': { files: [buildFile('foo.txt', 'MIT')] }, + '2.0.0': { files: [buildFile('foo.txt', 'GPL-2.0')] } + }, + tool1: { + '3.0.0': { files: [buildFile('foo.txt', 'BSD-3-Clause'), buildFile('bar.txt', 'GPL-2.0')] }, + '2.0.0': { files: [buildFile('bar.txt', 'GPL-2.0')] } + } + } + const { service } = setupAggregator() + const aggregated = service.process(summaries) + expect(aggregated.files.length).to.eq(2) + expect(aggregated.files[0].path).to.eq('foo.txt') + expect(aggregated.files[0].license).to.equal('BSD-3-Clause AND GPL-2.0') + expect(aggregated.files[1].path).to.eq('bar.txt') + expect(aggregated.files[1].license).to.eq('GPL-2.0') + }) + + it('handles Rust crates with license choices', async () => { + const testcases = [ + { + name: 'slog', + version: '2.7.0', + tools: [['clearlydefined', 'licensee', 'scancode']], + // Ideally this would be declared without any parentheses, but currently + // the SPDX normalization adds them. + expected: 'MPL-2.0 OR (MIT OR Apache-2.0)' + }, + { + name: 'quote', + version: '0.6.4', + tools: [['clearlydefined', 'fossology', 'licensee', 'scancode']], + expected: 'MIT OR Apache-2.0' + }, + { + name: 'quote', + version: '1.0.9', + tools: [['clearlydefined', 'licensee', 'scancode']], + expected: 'MIT OR Apache-2.0' + }, + { + name: 'rand', + version: '0.8.2', + tools: [['clearlydefined', 'licensee', 'scancode']], + expected: 'MIT OR Apache-2.0' + }, + { + name: 'regex', + version: '1.5.3', + tools: [['clearlydefined', 'licensee', 'scancode']], + expected: 'MIT OR Apache-2.0' + }, + { + name: 'serde', + version: '1.0.123', + tools: [['clearlydefined', 'licensee', 'scancode']], + expected: 'MIT OR Apache-2.0' + }, + { + name: 'mpmc', + version: '0.1.6', + tools: [['clearlydefined', 'licensee', 'scancode']], + expected: 'BSD-2-Clause-Views' + } + ] + + const summary_options = {} + const summaryService = SummaryService(summary_options) + + for (const testcase of testcases) { + const coordSpec = `crate/cratesio/-/${testcase.name}/${testcase.version}` + const coords = EntityCoordinates.fromString(coordSpec) + const raw = require(`./evidence/crate-${testcase.name}-${testcase.version}.json`) + const tools = testcase.tools + const summaries = summaryService.summarizeAll(coords, raw) + const { service } = setupAggregatorWithParams(coordSpec, tools) + const aggregated = service.process(summaries, coords) + expect(aggregated.licensed.declared, `${testcase.name}-${testcase.version}`).to.eq(testcase.expected) + } + }) + + it('should handle composer/packagist components', () => { + const tools = [['clearlydefined', 'licensee', 'scancode', 'reuse']] + const coordSpec = 'composer/packagist/mmucklo/krumo/0.7.0' + const coords = EntityCoordinates.fromString(coordSpec) + const raw = require(`./evidence/${coordSpec.replace(/\//g, '-')}.json`) + + const summary_options = {} + const summaryService = SummaryService(summary_options) + const summaries = summaryService.summarizeAll(coords, raw) + const { service } = setupAggregatorWithParams(coordSpec, tools) + const aggregated = service.process(summaries, coords) + expect(aggregated.licensed.declared).to.be.ok + // package manifest: LGPL-2.0-or-later, license: LGPL-2.1-only + expect(aggregated.licensed.declared).to.be.not.equal('NOASSERTION') + }) +}) + +function buildFile(path, license, holders) { + const result = { path } + setIfValue(result, 'license', license) + setIfValue(result, 'attributions', holders ? holders.map(entry => `Copyright ${entry}`) : null) + return result +} + +function setupAggregator() { + const coordinates = EntityCoordinates.fromString('npm/npmjs/-/test/1.0') + const config = { precedence: [['tool1', 'tool2', 'tool3']] } + const service = AggregatorService(config) + return { service, coordinates } +} + +function setupAggregatorWithParams(coordSpec, tool_precedence) { + const coordinates = EntityCoordinates.fromString(coordSpec) + const config = { precedence: tool_precedence } + const service = AggregatorService(config) + return { service, coordinates } +} diff --git a/test/business/definitionServiceTest.js b/test/business/definitionServiceTest.js index ab15c7371..d7d8c57b6 100644 --- a/test/business/definitionServiceTest.js +++ b/test/business/definitionServiceTest.js @@ -4,8 +4,6 @@ const sinon = require('sinon') const validator = require('../../schemas/validator') const DefinitionService = require('../../business/definitionService') -const AggregatorService = require('../../business/aggregator') -const SummaryService = require('../../business/summarizer') const EntityCoordinates = require('../../lib/entityCoordinates') const { setIfValue } = require('../../lib/utils') const Curation = require('../../lib/curation') @@ -245,166 +243,6 @@ describe('Definition Service Facet management', () => { }) }) -describe('Aggregation service', () => { - it('handles no tool data', async () => { - const { service } = setupAggregator() - const aggregated = service.process({}) - expect(aggregated).to.be.null - }) - - it('handles one tool one version data', async () => { - const summaries = { tool2: { '1.0.0': { files: [buildFile('foo.txt', 'MIT')] } } } - const { service } = setupAggregator() - const aggregated = service.process(summaries) - expect(aggregated.files.length).to.eq(1) - }) - - it('handles one tool multiple version data', async () => { - const summaries = { - tool2: { - '1.0.0': { files: [buildFile('foo.txt', 'MIT'), buildFile('bar.txt', 'MIT')] }, - '2.0.0': { files: [buildFile('foo.txt', 'GPL-2.0')] } - } - } - const { service } = setupAggregator() - const aggregated = service.process(summaries) - expect(aggregated.files.length).to.eq(1) - expect(aggregated.files[0].path).to.eq('foo.txt') - expect(aggregated.files[0].license).to.eq('GPL-2.0') - }) - - it('handles multiple tools and one file data', async () => { - const summaries = { - tool2: { - '1.0.0': { files: [buildFile('foo.txt', 'MIT')] }, - '2.0.0': { files: [buildFile('foo.txt', 'GPL-2.0')] } - }, - tool1: { '3.0.0': { files: [buildFile('foo.txt', 'BSD-3-Clause')] } } - } - const { service } = setupAggregator() - const aggregated = service.process(summaries) - expect(aggregated.files.length).to.eq(1) - expect(aggregated.files[0].license).to.equal('BSD-3-Clause AND GPL-2.0') - }) - - it('handles multiple tools and multiple file data with extras ignored', async () => { - const summaries = { - tool2: { - '1.0.0': { files: [buildFile('foo.txt', 'MIT')] }, - '2.0.0': { files: [buildFile('foo.txt', 'GPL-2.0')] } - }, - tool1: { - '3.0.0': { files: [buildFile('foo.txt', 'BSD-3-Clause')] }, - '2.0.0': { files: [buildFile('bar.txt', 'GPL-2.0')] } - } - } - const { service } = setupAggregator() - const aggregated = service.process(summaries) - expect(aggregated.files.length).to.eq(1) - expect(aggregated.files[0].license).to.equal('BSD-3-Clause AND GPL-2.0') - }) - - it('handles multiple tools and multiple file data with extras included', async () => { - const summaries = { - tool2: { - '1.0.0': { files: [buildFile('foo.txt', 'MIT')] }, - '2.0.0': { files: [buildFile('foo.txt', 'GPL-2.0')] } - }, - tool1: { - '3.0.0': { files: [buildFile('foo.txt', 'BSD-3-Clause'), buildFile('bar.txt', 'GPL-2.0')] }, - '2.0.0': { files: [buildFile('bar.txt', 'GPL-2.0')] } - } - } - const { service } = setupAggregator() - const aggregated = service.process(summaries) - expect(aggregated.files.length).to.eq(2) - expect(aggregated.files[0].path).to.eq('foo.txt') - expect(aggregated.files[0].license).to.equal('BSD-3-Clause AND GPL-2.0') - expect(aggregated.files[1].path).to.eq('bar.txt') - expect(aggregated.files[1].license).to.eq('GPL-2.0') - }) - - it('handles Rust crates with license choices', async () => { - const testcases = [ - { - name: 'slog', - version: '2.7.0', - tools: [['clearlydefined', 'licensee', 'scancode']], - // Ideally this would be declared without any parentheses, but currently - // the SPDX normalization adds them. - expected: 'MPL-2.0 OR (MIT OR Apache-2.0)' - }, - { - name: 'quote', - version: '0.6.4', - tools: [['clearlydefined', 'fossology', 'licensee', 'scancode']], - expected: 'MIT OR Apache-2.0' - }, - { - name: 'quote', - version: '1.0.9', - tools: [['clearlydefined', 'licensee', 'scancode']], - expected: 'MIT OR Apache-2.0' - }, - { - name: 'rand', - version: '0.8.2', - tools: [['clearlydefined', 'licensee', 'scancode']], - expected: 'MIT OR Apache-2.0' - }, - { - name: 'regex', - version: '1.5.3', - tools: [['clearlydefined', 'licensee', 'scancode']], - expected: 'MIT OR Apache-2.0' - }, - { - name: 'serde', - version: '1.0.123', - tools: [['clearlydefined', 'licensee', 'scancode']], - expected: 'MIT OR Apache-2.0' - }, - { - name: 'mpmc', - version: '0.1.6', - tools: [['clearlydefined', 'licensee', 'scancode']], - expected: 'BSD-2-Clause-Views' - } - ] - - const summary_options = {} - const summaryService = SummaryService(summary_options) - - for (let i = 0; i < testcases.length; i++) { - let testcase = testcases[i] - const coordSpec = `crate/cratesio/-/${testcase.name}/${testcase.version}` - const coords = EntityCoordinates.fromString(coordSpec) - const raw = require(`./evidence/crate-${testcase.name}-${testcase.version}.json`) - const tools = testcase.tools - const summaries = summaryService.summarizeAll(coords, raw) - const { service } = setupAggregatorWithParams(coordSpec, tools) - const aggregated = service.process(summaries, coords) - expect(aggregated.licensed.declared, `${testcase.name}-${testcase.version}`).to.eq(testcase.expected) - } - }) - - it('should handle composer/packagist components', () => { - const tools = [['clearlydefined', 'licensee', 'scancode', 'reuse']] - const coordSpec = 'composer/packagist/mmucklo/krumo/0.7.0' - const coords = EntityCoordinates.fromString(coordSpec) - const raw = require(`./evidence/${coordSpec.replace(/\//g, '-')}.json`) - - const summary_options = {} - const summaryService = SummaryService(summary_options) - const summaries = summaryService.summarizeAll(coords, raw) - const { service } = setupAggregatorWithParams(coordSpec, tools) - const aggregated = service.process(summaries, coords) - expect(aggregated.licensed.declared).to.be.ok - // package manifest: LGPL-2.0-or-later, license: LGPL-2.1-only - expect(aggregated.licensed.declared).to.be.not.equal('NOASSERTION') - }) -}) - function validate(definition) { // Tack on a dummy coordinates to keep the schema happy. Tool summarizations do not have to include coordinates definition.coordinates = { type: 'npm', provider: 'npmjs', namespace: null, name: 'foo', revision: '1.0' } @@ -447,17 +285,3 @@ function setup(definition, coordinateSpec, curation) { const coordinates = EntityCoordinates.fromString(coordinateSpec || 'npm/npmjs/-/test/1.0') return { coordinates, service } } - -function setupAggregator() { - const coordinates = EntityCoordinates.fromString('npm/npmjs/-/test/1.0') - const config = { precedence: [['tool1', 'tool2', 'tool3']] } - const service = AggregatorService(config) - return { service, coordinates } -} - -function setupAggregatorWithParams(coordSpec, tool_precedence) { - const coordinates = EntityCoordinates.fromString(coordSpec) - const config = { precedence: tool_precedence } - const service = AggregatorService(config) - return { service, coordinates } -} From 6a0967bf9b84fcf165c65a351e54903a618b386c Mon Sep 17 00:00:00 2001 From: Qing Tomlinson Date: Tue, 23 Apr 2024 14:13:26 -0700 Subject: [PATCH 41/55] Add unit tests to check for source location --- test/business/definitionServiceTest.js | 56 ++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/test/business/definitionServiceTest.js b/test/business/definitionServiceTest.js index d7d8c57b6..9a4331834 100644 --- a/test/business/definitionServiceTest.js +++ b/test/business/definitionServiceTest.js @@ -113,6 +113,62 @@ describe('Definition Service', () => { expect(result.length).to.eq(3) expect(result.map(x => x.name)).to.have.members(['test0', 'test1', 'testUpperCase']) }) + + describe('Build source location', () => { + const data = new Map([ + [ + 'pypi/pypi/-/platformdirs/4.2.0', + { + type: 'pypi', + provider: 'pypi', + name: 'platformdirs', + revision: '4.2.0', + url: 'https://pypi.org/project/platformdirs/4.2.0/' + } + ], + [ + 'go/golang/rsc.io/quote/v1.3.0', + { + type: 'go', + provider: 'golang', + namespace: 'rsc.io', + name: 'quote', + revision: 'v1.3.0', + url: 'https://pkg.go.dev/rsc.io/quote@v1.3.0' + } + ], + [ + 'git/github/ratatui-org/ratatui/bcf43688ec4a13825307aef88f3cdcd007b32641', + { + type: 'git', + provider: 'github', + namespace: 'ratatui-org', + name: 'ratatui', + revision: 'bcf43688ec4a13825307aef88f3cdcd007b32641', + url: 'https://github.com/ratatui-org/ratatui/tree/bcf43688ec4a13825307aef88f3cdcd007b32641' + } + ], + [ + 'git/gitlab/cznic/sqlite/282bdb12f8ce48a34b4b768863c4e44c310c4bd8', + { + type: 'git', + provider: 'gitlab', + namespace: 'cznic', + name: 'sqlite', + revision: '282bdb12f8ce48a34b4b768863c4e44c310c4bd8', + url: 'https://gitlab.com/cznic/sqlite/-/tree/282bdb12f8ce48a34b4b768863c4e44c310c4bd8' + } + ] + ]) + + data.forEach((expected, coordinatesString) => { + it(`should have source location for ${coordinatesString} package`, async () => { + const { service, coordinates } = setup(createDefinition(null, null, []), coordinatesString) + const definition = await service.compute(coordinates) + expect(definition.described.sourceLocation).to.be.deep.equal(expected) + }) + }) + }) }) describe('Definition Service Facet management', () => { From 918c67d1e27454365077b1e942008c4218d0e875 Mon Sep 17 00:00:00 2001 From: Qing Tomlinson Date: Tue, 23 Apr 2024 14:27:38 -0700 Subject: [PATCH 42/55] Add source location in definition for sourcearchive package Whether packages contain source files depends on the package type, not the package provider. Change the logic to build source location to reflect this. --- business/definitionService.js | 8 ++++---- test/business/definitionServiceTest.js | 11 +++++++++++ 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/business/definitionService.js b/business/definitionService.js index 7991162f5..f114d2f97 100644 --- a/business/definitionService.js +++ b/business/definitionService.js @@ -561,10 +561,10 @@ class DefinitionService { if (get(definition, 'described.sourceLocation')) return updateSourceLocation(definition.described.sourceLocation) // For source components there may not be an explicit harvested source location (it is self-evident) // Make it explicit in the definition - switch (coordinates.provider) { - case 'golang': - case 'gitlab': - case 'github': + switch (coordinates.type) { + case 'go': + case 'git': + case 'sourcearchive': case 'pypi': { const url = buildSourceUrl(coordinates) if (!url) return diff --git a/test/business/definitionServiceTest.js b/test/business/definitionServiceTest.js index 9a4331834..7facac009 100644 --- a/test/business/definitionServiceTest.js +++ b/test/business/definitionServiceTest.js @@ -158,6 +158,17 @@ describe('Definition Service', () => { revision: '282bdb12f8ce48a34b4b768863c4e44c310c4bd8', url: 'https://gitlab.com/cznic/sqlite/-/tree/282bdb12f8ce48a34b4b768863c4e44c310c4bd8' } + ], + [ + 'sourcearchive/mavencentral/com.azure/azure-storage-blob/12.20.0', + { + type: 'sourcearchive', + provider: 'mavencentral', + namespace: 'com.azure', + name: 'azure-storage-blob', + revision: '12.20.0', + url: 'https://search.maven.org/remotecontent?filepath=com/azure/azure-storage-blob/12.20.0/azure-storage-blob-12.20.0-sources.jar' + } ] ]) From ecb5a7f55751b18a9a8a3d57a29ff1acd526f050 Mon Sep 17 00:00:00 2001 From: "E. Lynette Rayle" Date: Thu, 11 Apr 2024 16:00:00 -0400 Subject: [PATCH 43/55] use shared deploys workflow in operations * use consistent naming for build-and-deploy workflows * make workflow display name easier to scan --- .github/workflows/build-and-deploy-dev.yml | 98 ++----------- .github/workflows/build-and-deploy-prod.yml | 36 +++++ .github/workflows/build_and_deploy_prod.yml | 148 -------------------- 3 files changed, 48 insertions(+), 234 deletions(-) create mode 100644 .github/workflows/build-and-deploy-prod.yml delete mode 100644 .github/workflows/build_and_deploy_prod.yml diff --git a/.github/workflows/build-and-deploy-dev.yml b/.github/workflows/build-and-deploy-dev.yml index c9945b149..faa07470a 100644 --- a/.github/workflows/build-and-deploy-dev.yml +++ b/.github/workflows/build-and-deploy-dev.yml @@ -1,95 +1,21 @@ # This workflow will build a docker image, push it to ghcr.io, and deploy it to an Azure WebApp. -name: Build and Deploy to dev service app +name: Build and Deploy -- DEV -# Update the triggers based on the environment that is being deployed to. -# Triggers for dev deployments: 1) manually triggered, 2) push to branch `master` -# Triggers for prod deployments: 1) manually triggered, 2) release created on: workflow_dispatch: push: branches: [master] -# There are secrets and environment variables that need to be set that control what is pushed to -# ghcr and Azure. -# -# Secrets: -# AZURE_CREDENTIALS: service principal that has access to the Azure WebApp -# AZURE_WEBAPP_PUBLISH_PROFILE_DEV: publish profile for the Azure WebApp NOTE: The name of the secret changes. For dev, it ends in `_DEV`. Production does not have an extension. -# -# Environment Variables: -# APPLICATION_TYPE: type of application that is being deployed; used to add a label to the Docker image (values: api | web | worker) -# AZURE_WEBAPP_NAME: name of the Azure WebApp being deployed -# DEPLOY_ENVIRONMENT: environment that the code is being deployed to; used to add a label to the Docker image (values: dev | prod) -# DEPLOY_DOCKER_TAG: the tag used for deploying a specific Docker image to Azure. For dev, use the `github.sha`. For production, use the SEMVER -# version of the release. Make sure to add this tag to the `DOCKER_TAGS` in the `Build and push Docker image` step. -# DOCKER_IMAGE_NAME: name of the Docker image that is being built and pushed to ghcr.io. - -env: - APPLICATION_TYPE: api - AZURE_WEBAPP_NAME: clearlydefined-api-dev - DEPLOY_ENVIRONMENT: dev - DEPLOY_DOCKER_TAG: ${{ github.sha }} - DOCKER_IMAGE_NAME: ghcr.io/${{ github.repository_owner }}/${{ github.repository }}-dev - jobs: build-and-deploy: - name: Build and Deploy - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Log into ghcr registry - uses: docker/login-action@v3.1.0 - with: - registry: ghcr.io - username: ${{ github.actor }} # user that kicked off the action - password: ${{ secrets.GITHUB_TOKEN }} # token created when the action launched (short lived) - - - name: Build and push Docker image - env: - DOCKER_TAGS: | - ${{ env.DOCKER_IMAGE_NAME }}:${{ env.DEPLOY_DOCKER_TAG }} - uses: docker/build-push-action@v5.3.0 - with: - context: . - push: true - file: Dockerfile - tags: ${{ env.DOCKER_TAGS }} - labels: | - env=${{ env.DEPLOY_ENVIRONMENT }} - type=${{ env.APPLICATION_TYPE }} - - - name: Login for Azure cli commands - uses: azure/login@v2.1.0 - with: - creds: ${{ secrets.AZURE_CREDENTIALS }} - - - name: Set DOCKER configs in Azure web app - uses: azure/appservice-settings@v1.1.1 - with: - app-name: ${{ env.AZURE_WEBAPP_NAME }} - app-settings-json: | - [ - { - "name": "DOCKER_CUSTOM_IMAGE_NAME", - "value": "${{ env.DOCKER_IMAGE_NAME }}:${{ env.DEPLOY_DOCKER_TAG }}", - "slotSetting": false - }, - { - "name": "DOCKER_REGISTRY_SERVER_URL", - "value": "https://ghcr.io", - "slotSetting": false - }, - { - "name": "BUILD_SHA", - "value": "${{ github.sha }}", - "slotSetting": false - } - ] - - - name: Deploy to Azure WebApp - uses: azure/webapps-deploy@v3.0.1 - with: - app-name: ${{ env.AZURE_WEBAPP_NAME }} - publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE_DEV }} - images: '${{ env.DOCKER_IMAGE_NAME }}:${{ env.DEPLOY_DOCKER_TAG }}' + uses: clearlydefined/operations/.github/workflows/app-build-and-deploy.yml + secrets: + AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} + AZURE_WEBAPP_PUBLISH_PROFILE: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE_DEV }} + DEPLOY_TOKEN: ${{ secrets.DEPLOY_TOKEN }} + PRODUCTION_DEPLOYERS: ${{ secrets.PRODUCTION_DEPLOYERS }} + with: + deploy-env: dev + application-type: api + azure-app-base-name: clearlydefined-api + azure-app-name-postfix: -dev diff --git a/.github/workflows/build-and-deploy-prod.yml b/.github/workflows/build-and-deploy-prod.yml new file mode 100644 index 000000000..eff86089c --- /dev/null +++ b/.github/workflows/build-and-deploy-prod.yml @@ -0,0 +1,36 @@ +# This workflow will build a docker image, push it to ghcr.io, and deploy it to an Azure WebApp. +name: Build and Deploy -- PROD + +on: + workflow_dispatch: + release: + types: [published] + +jobs: + determine-trigger: + name: Determine if this was triggered by a release or workflow_dispatch + runs-on: ubuntu-latest + outputs: + is-release: ${{ env.IS_RELEASE }} + steps: + - name: Check if this was triggered by a release + id: release + run: | + echo "IS_RELEASE"=${{ github.event_name == 'release' }} >> $GITHUB_ENV + + build-and-deploy-prod: + uses: clearlydefined/operations/.github/workflows/app-build-and-deploy.yml + needs: determine-trigger + secrets: + AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} + AZURE_WEBAPP_PUBLISH_PROFILE: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE_PROD }} + AZURE_SECONDARY_WEBAPP_PUBLISH_PROFILE: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE_PROD_EU }} + DEPLOY_TOKEN: ${{ secrets.DEPLOY_TOKEN }} + PRODUCTION_DEPLOYERS: ${{ secrets.PRODUCTION_DEPLOYERS }} + with: + deploy-env: prod + application-type: api + azure-app-base-name: clearlydefined-api + azure-app-name-postfix: -prod + secondary-azure-app-name-postfix: -prod-europe + is-release: ${{ needs.determine-trigger.outputs.is-release }} diff --git a/.github/workflows/build_and_deploy_prod.yml b/.github/workflows/build_and_deploy_prod.yml deleted file mode 100644 index 253846f32..000000000 --- a/.github/workflows/build_and_deploy_prod.yml +++ /dev/null @@ -1,148 +0,0 @@ -# This workflow will build a docker image, push it to ghcr.io, and deploy it to an Azure WebApp. -name: Build and Deploy to prod service app - -# Update the triggers based on the environment that is being deployed to. -# Triggers for dev deployments: 1) manually triggered, 2) push to branch `master` -# Triggers for prod deployments: 1) manually triggered, 2) release [published] -on: - workflow_dispatch: - release: - types: [published] - -# There are secrets and environment variables that need to be set that control what is pushed to -# ghcr and Azure. -# -# Secrets: -# AZURE_CREDENTIALS_PROD: service principal that has access to the Azure prod WebApp -# AZURE_WEBAPP_PUBLISH_PROFILE: publish profile for the Azure WebApp -# AZURE_WEBAPP_PUBLISH_PROFILE_EU: publish profile for the Azure WebApp in Europe -# -# Environment Variables: -# APPLICATION_TYPE: type of application that is being deployed; used to add a label to the Docker image (values: api | web | worker) -# AZURE_WEBAPP_NAME: name of the Azure WebApp being deployed -# AZURE_EU_WEBAPP_NAME: name of the Azure WebApp being deployed -# DEPLOY_ENVIRONMENT: environment that the code is being deployed to; used to add a label to the Docker image (values: dev | prod) -# DEPLOY_DOCKER_TAG: _NOT used as a ENV for production. To be able to always have the version, get it from package.json._ -# DOCKER_IMAGE_NAME: name of the Docker image that is being built and pushed to ghcr.io. - -env: - APPLICATION_TYPE: api - AZURE_WEBAPP_NAME: clearlydefined-api-prod - AZURE_EU_WEBAPP_NAME: clearlydefined-api-prod-europe - DEPLOY_ENVIRONMENT: prod - # DEPLOY_DOCKER_TAG: ${{ github.event.release.tag_name }} - DOCKER_IMAGE_NAME: ghcr.io/${{ github.repository_owner }}/${{ github.repository }} - -jobs: - build-and-deploy: - name: Build and Deploy - runs-on: ubuntu-latest - steps: - - name: Get version - id: package - run: | - echo "::set-output name=version::$(curl --silent "https://api.github.com/repos/clearlydefined/service/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')" - shell: bash - - - name: Use version - run: | - echo "Version is ${{ steps.package.outputs.version }}" - shell: bash - - - uses: actions/checkout@v4.1.1 - - - name: Log into ghcr registry - uses: docker/login-action@v3.1.0 - with: - registry: ghcr.io - username: ${{ github.actor }} # user that kicked off the action - password: ${{ secrets.GITHUB_TOKEN }} # token created when the action launched (short lived) - - - name: Build and push Docker image - env: - DOCKER_TAGS: | - ${{ env.DOCKER_IMAGE_NAME }}:${{ steps.package.outputs.version }} - uses: docker/build-push-action@v5.3.0 - with: - context: . - push: true - file: Dockerfile - tags: ${{ env.DOCKER_TAGS }} - labels: | - env=${{ env.DEPLOY_ENVIRONMENT }} - type=${{ env.APPLICATION_TYPE }} - - - name: Login for Azure cli commands - uses: azure/login@v2.1.0 - with: - creds: ${{ secrets.AZURE_CREDENTIALS_PROD }} - - - name: Set DOCKER configs in Azure web app - uses: azure/appservice-settings@v1.1.1 - with: - app-name: ${{ env.AZURE_WEBAPP_NAME }} - app-settings-json: | - [ - { - "name": "DOCKER_CUSTOM_IMAGE_NAME", - "value": "${{ env.DOCKER_IMAGE_NAME }}:${{ steps.package.outputs.version }}", - "slotSetting": false - }, - { - "name": "DOCKER_REGISTRY_SERVER_URL", - "value": "https://ghcr.io", - "slotSetting": false - }, - { - "name": "APP_VERSION", - "value": "${{ steps.package.outputs.version }}", - "slotSetting": false - }, - { - "name": "BUILD_SHA", - "value": "${{ github.sha }}", - "slotSetting": false - } - ] - - - name: Deploy to Azure WebApp - uses: azure/webapps-deploy@v3.0.1 - with: - app-name: ${{ env.AZURE_WEBAPP_NAME }} - publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE_PROD }} - images: '${{ env.DOCKER_IMAGE_NAME }}:${{ steps.package.outputs.version }}' - - - name: Set DOCKER configs in Azure EU web app - uses: azure/appservice-settings@v1.1.1 - with: - app-name: ${{ env.AZURE_EU_WEBAPP_NAME }} - app-settings-json: | - [ - { - "name": "DOCKER_CUSTOM_IMAGE_NAME", - "value": "${{ env.DOCKER_IMAGE_NAME }}:${{ steps.package.outputs.version }}", - "slotSetting": false - }, - { - "name": "DOCKER_REGISTRY_SERVER_URL", - "value": "https://ghcr.io", - "slotSetting": false - }, - { - "name": "APP_VERSION", - "value": "${{ steps.package.outputs.version }}", - "slotSetting": false - }, - { - "name": "BUILD_SHA", - "value": "${{ github.sha }}", - "slotSetting": false - } - ] - - - name: Deploy to Azure EU WebApp - uses: azure/webapps-deploy@v3.0.1 - with: - app-name: ${{ env.AZURE_EU_WEBAPP_NAME }} - publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE_PROD_EU }} - images: '${{ env.DOCKER_IMAGE_NAME }}:${{ steps.package.outputs.version }}' From c716317f8102777d0743e7cc3e2b2f4896aa2ee2 Mon Sep 17 00:00:00 2001 From: "E. Lynette Rayle" Date: Mon, 15 Apr 2024 17:09:15 -0400 Subject: [PATCH 44/55] add application version of the deployed app to the health check endpoint --- app.js | 2 +- bin/config.js | 1 + routes/index.js | 6 ++++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app.js b/app.js index ff838c1d5..abadfcf6a 100644 --- a/app.js +++ b/app.js @@ -176,7 +176,7 @@ function createApp(config) { app.use(require('./middleware/querystring')) - app.use('/', require('./routes/index')(config.buildsha)) + app.use('/', require('./routes/index')(config.buildsha, config.appversion)) app.use('/origins/github', require('./routes/originGitHub')()) app.use('/origins/crate', require('./routes/originCrate')()) app.use('/origins/conda', require('./routes/originConda')()) diff --git a/bin/config.js b/bin/config.js index 09a236f53..be078f873 100644 --- a/bin/config.js +++ b/bin/config.js @@ -99,5 +99,6 @@ module.exports = { crawlerId: config.get('APPINSIGHTS_CRAWLER_APPLICATIONID'), crawlerKey: config.get('APPINSIGHTS_CRAWLER_APIKEY') }, + appversion: config.get('APP_VERSION'), buildsha: config.get('BUILD_SHA') } diff --git a/routes/index.js b/routes/index.js index 1953468c8..4033816f1 100644 --- a/routes/index.js +++ b/routes/index.js @@ -4,14 +4,16 @@ const express = require('express') const router = express.Router() router.get('/', function (req, res) { - const msg = `{ "status": "OK", "sha": "${sha}" }` + const msg = `{ "status": "OK", "version": "${version}", "sha": "${sha}"` res.status(200).send(msg) }) module.exports = router +let version let sha -function setup(buildsha) { +function setup(buildsha, appversion) { + version = appversion sha = buildsha return router } From e14ba56b86db50739fbe0199dd10e97af5d3b981 Mon Sep 17 00:00:00 2001 From: "E. Lynette Rayle" Date: Fri, 26 Apr 2024 20:26:31 -0400 Subject: [PATCH 45/55] use camel case for appVersion --- app.js | 2 +- bin/config.js | 2 +- routes/index.js | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app.js b/app.js index abadfcf6a..846a54618 100644 --- a/app.js +++ b/app.js @@ -176,7 +176,7 @@ function createApp(config) { app.use(require('./middleware/querystring')) - app.use('/', require('./routes/index')(config.buildsha, config.appversion)) + app.use('/', require('./routes/index')(config.buildsha, config.appVersion)) app.use('/origins/github', require('./routes/originGitHub')()) app.use('/origins/crate', require('./routes/originCrate')()) app.use('/origins/conda', require('./routes/originConda')()) diff --git a/bin/config.js b/bin/config.js index be078f873..eea97035a 100644 --- a/bin/config.js +++ b/bin/config.js @@ -99,6 +99,6 @@ module.exports = { crawlerId: config.get('APPINSIGHTS_CRAWLER_APPLICATIONID'), crawlerKey: config.get('APPINSIGHTS_CRAWLER_APIKEY') }, - appversion: config.get('APP_VERSION'), + appVersion: config.get('APP_VERSION'), buildsha: config.get('BUILD_SHA') } diff --git a/routes/index.js b/routes/index.js index 4033816f1..72c7e6253 100644 --- a/routes/index.js +++ b/routes/index.js @@ -12,8 +12,8 @@ module.exports = router let version let sha -function setup(buildsha, appversion) { - version = appversion +function setup(buildsha, appVersion) { + version = appVersion sha = buildsha return router } From f04cf712e1cd32dd5cc11b914052f1294a11ef10 Mon Sep 17 00:00:00 2001 From: "E. Lynette Rayle" Date: Fri, 26 Apr 2024 20:47:14 -0400 Subject: [PATCH 46/55] pin shared workflow for deploy to v1.0.0 --- .github/workflows/build-and-deploy-dev.yml | 2 +- .github/workflows/build-and-deploy-prod.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-deploy-dev.yml b/.github/workflows/build-and-deploy-dev.yml index faa07470a..5a9b83a1c 100644 --- a/.github/workflows/build-and-deploy-dev.yml +++ b/.github/workflows/build-and-deploy-dev.yml @@ -8,7 +8,7 @@ on: jobs: build-and-deploy: - uses: clearlydefined/operations/.github/workflows/app-build-and-deploy.yml + uses: clearlydefined/operations/.github/workflows/app-build-and-deploy.yml@v1.0.0 secrets: AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} AZURE_WEBAPP_PUBLISH_PROFILE: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE_DEV }} diff --git a/.github/workflows/build-and-deploy-prod.yml b/.github/workflows/build-and-deploy-prod.yml index eff86089c..189a84562 100644 --- a/.github/workflows/build-and-deploy-prod.yml +++ b/.github/workflows/build-and-deploy-prod.yml @@ -19,7 +19,7 @@ jobs: echo "IS_RELEASE"=${{ github.event_name == 'release' }} >> $GITHUB_ENV build-and-deploy-prod: - uses: clearlydefined/operations/.github/workflows/app-build-and-deploy.yml + uses: clearlydefined/operations/.github/workflows/app-build-and-deploy.yml@v1.0.0 needs: determine-trigger secrets: AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} From b1da6d70e7098f79dfbe62db4b9bf4b0ccca9a2a Mon Sep 17 00:00:00 2001 From: Qing Tomlinson Date: Mon, 29 Apr 2024 12:04:22 -0700 Subject: [PATCH 47/55] Update aggregatorTest.js --- test/business/aggregatorTest.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/business/aggregatorTest.js b/test/business/aggregatorTest.js index 5de3b0f09..49dbdfbb5 100644 --- a/test/business/aggregatorTest.js +++ b/test/business/aggregatorTest.js @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft Corporation and others. Licensed under the MIT license. +// (c) Copyright 2024, SAP SE and ClearlyDefined contributors. Licensed under the MIT license. // SPDX-License-Identifier: MIT const AggregatorService = require('../../business/aggregator') From 247b0763150ff3c9a24f8c3d794eaa1c248440c0 Mon Sep 17 00:00:00 2001 From: Basit Ayantunde Date: Tue, 7 May 2024 11:14:42 +0100 Subject: [PATCH 48/55] [conda] fixed service component bug --- routes/originConda.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/routes/originConda.js b/routes/originConda.js index 843b3e6b2..a3ef9c3d4 100644 --- a/routes/originConda.js +++ b/routes/originConda.js @@ -41,7 +41,7 @@ router.get( let { channel, subdir, name } = request.params channel = encodeURIComponent(channel) subdir = encodeURIComponent(subdir) - name = encodeURIComponent(channel) + name = encodeURIComponent(name) if (!condaChannels[channel]) { return response.status(404).send(`Unrecognized Conda channel ${channel}`) } @@ -50,7 +50,7 @@ router.get( return response.status(404).send(`Package ${name} not found in Conda channel ${channel}`) } if (subdir !== '-' && !channelData.subdirs.find(x => x == subdir)) { - return response.status(404).send(`Subdir ${subdir} is non-existent in Conda channel ${channel}`) + return response.status(404).send(`Subdir ${subdir} is non-existent in Conda channel ${channel}, subdirs: ${channelData.subdirs}`) } let revisions = [] let subdirs = subdir === '-' ? channelData.packages[name].subdirs : [subdir] @@ -82,7 +82,7 @@ router.get( channel = encodeURIComponent(channel) name = encodeURIComponent(name) if (!condaChannels[channel]) { - return response.status(404).send([]) + return response.status(404).send(`Unrecognized Conda channel ${channel}`) } let channelData = await fetchCondaChannelData(channel) let matches = Object.entries(channelData.packages) From 2a936ebb42c17f7bc32d8d377a2761f171201a58 Mon Sep 17 00:00:00 2001 From: Basit Ayantunde Date: Tue, 7 May 2024 11:28:44 +0100 Subject: [PATCH 49/55] [conda] fixed service component bug --- routes/originConda.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/routes/originConda.js b/routes/originConda.js index a3ef9c3d4..874a19f90 100644 --- a/routes/originConda.js +++ b/routes/originConda.js @@ -50,7 +50,9 @@ router.get( return response.status(404).send(`Package ${name} not found in Conda channel ${channel}`) } if (subdir !== '-' && !channelData.subdirs.find(x => x == subdir)) { - return response.status(404).send(`Subdir ${subdir} is non-existent in Conda channel ${channel}, subdirs: ${channelData.subdirs}`) + return response + .status(404) + .send(`Subdir ${subdir} is non-existent in Conda channel ${channel}, subdirs: ${channelData.subdirs}`) } let revisions = [] let subdirs = subdir === '-' ? channelData.packages[name].subdirs : [subdir] From e35340b7ce7cb6d6cf63f6cf8675ebeb5a1b2ea7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Spie=C3=9F?= Date: Tue, 7 May 2024 13:59:38 +0000 Subject: [PATCH 50/55] Add a simple test for conda revisions route --- routes/originConda.js | 119 +++++++++++++++++++++-------------------- test/routes/origins.js | 33 ++++++++++++ 2 files changed, 94 insertions(+), 58 deletions(-) create mode 100644 test/routes/origins.js diff --git a/routes/originConda.js b/routes/originConda.js index 874a19f90..b13479e63 100644 --- a/routes/originConda.js +++ b/routes/originConda.js @@ -35,68 +35,71 @@ async function fetchCondaRepoData(channel, subdir) { return repoData } -router.get( - '/:channel/:subdir/:name/revisions', - asyncMiddleware(async (request, response) => { - let { channel, subdir, name } = request.params - channel = encodeURIComponent(channel) - subdir = encodeURIComponent(subdir) - name = encodeURIComponent(name) - if (!condaChannels[channel]) { - return response.status(404).send(`Unrecognized Conda channel ${channel}`) - } - let channelData = await fetchCondaChannelData(channel) - if (!channelData.packages[name]) { - return response.status(404).send(`Package ${name} not found in Conda channel ${channel}`) - } - if (subdir !== '-' && !channelData.subdirs.find(x => x == subdir)) { - return response - .status(404) - .send(`Subdir ${subdir} is non-existent in Conda channel ${channel}, subdirs: ${channelData.subdirs}`) - } - let revisions = [] - let subdirs = subdir === '-' ? channelData.packages[name].subdirs : [subdir] - for (let subdir of subdirs) { - const repoData = await fetchCondaRepoData(channel, subdir) - if (repoData['packages']) { - Object.entries(repoData['packages']).forEach(([, packageData]) => { - if (packageData.name === name) { - revisions.push(`${subdir}:${packageData.version}-${packageData.build}`) - } - }) - } - if (repoData['packages.conda']) { - Object.entries(repoData['packages.conda']).forEach(([, packageData]) => { - if (packageData.name === name) { - revisions.push(`${subdir}:${packageData.version}-${packageData.build}`) - } - }) - } - } - return response.status(200).send(uniq(revisions)) - }) -) +router.get('/:channel/:subdir/:name/revisions', asyncMiddleware(getOriginCondaRevisions())) -router.get( - '/:channel/:name', - asyncMiddleware(async (request, response) => { - let { channel, name } = request.params - channel = encodeURIComponent(channel) - name = encodeURIComponent(name) - if (!condaChannels[channel]) { - return response.status(404).send(`Unrecognized Conda channel ${channel}`) +async function getOriginCondaRevisions(request, response) { + let { channel, subdir, name } = request.params + channel = encodeURIComponent(channel) + subdir = encodeURIComponent(subdir) + name = encodeURIComponent(name) + if (!condaChannels[channel]) { + return response.status(404).send(`Unrecognized Conda channel ${channel}`) + } + let channelData = await fetchCondaChannelData(channel) + if (!channelData.packages[name]) { + return response.status(404).send(`Package ${name} not found in Conda channel ${channel}`) + } + if (subdir !== '-' && !channelData.subdirs.find(x => x == subdir)) { + return response + .status(404) + .send(`Subdir ${subdir} is non-existent in Conda channel ${channel}, subdirs: ${channelData.subdirs}`) + } + let revisions = [] + let subdirs = subdir === '-' ? channelData.packages[name].subdirs : [subdir] + for (let subdir of subdirs) { + const repoData = await fetchCondaRepoData(channel, subdir) + if (repoData['packages']) { + Object.entries(repoData['packages']).forEach(([, packageData]) => { + if (packageData.name === name) { + revisions.push(`${subdir}:${packageData.version}-${packageData.build}`) + } + }) } - let channelData = await fetchCondaChannelData(channel) - let matches = Object.entries(channelData.packages) - .filter(([packageName]) => packageName.includes(name)) - .map(([packageName]) => { - return { id: packageName } + if (repoData['packages.conda']) { + Object.entries(repoData['packages.conda']).forEach(([, packageData]) => { + if (packageData.name === name) { + revisions.push(`${subdir}:${packageData.version}-${packageData.build}`) + } }) - return response.status(200).send(matches) - }) -) + } + } + return response.status(200).send(uniq(revisions)) +} + +router.get('/:channel/:name', asyncMiddleware(getOriginConda)) + +async function getOriginConda(request, response) { + let { channel, name } = request.params + channel = encodeURIComponent(channel) + name = encodeURIComponent(name) + if (!condaChannels[channel]) { + return response.status(404).send(`Unrecognized Conda channel ${channel}`) + } + let channelData = await fetchCondaChannelData(channel) + let matches = Object.entries(channelData.packages) + .filter(([packageName]) => packageName.includes(name)) + .map(([packageName]) => { + return { id: packageName } + }) + return response.status(200).send(matches) +} + +function setup(testFlag = false) { + if (testFlag) { + router._getOriginConda = getOriginConda + router._getOriginCondaRevisions = getOriginCondaRevisions + } -function setup() { return router } diff --git a/test/routes/origins.js b/test/routes/origins.js new file mode 100644 index 000000000..bacc7a8b2 --- /dev/null +++ b/test/routes/origins.js @@ -0,0 +1,33 @@ +// Copyright (c) The Linux Foundation and others. Licensed under the MIT license. +// SPDX-License-Identifier: MIT + +const { expect } = require('chai') +const httpMocks = require('node-mocks-http') +const originCondaRoutes = require('../../routes/originConda') + +describe('Conda origin routes', () => { + it('accepts a good revisions GET request', async () => { + const request = createGetOriginCondaRevisionsRequest() + const response = httpMocks.createResponse() + const router = createRoutes() + await router._getOriginCondaRevisions(request, response) + expect(response.statusCode).to.be.eq(200) + }) +}) + +function createGetOriginCondaRevisionsRequest() { + return httpMocks.createRequest({ + method: 'GET', + url: 'origins/conda/conda-forge/linux-64/tensorflow/revisions', + baseUrl: 'https://dev.clearlydefined.io', + params: { + channel: 'conda-forge', + subdir: 'linux-64', + name: 'tensorflow', + } + }) +} + +function createRoutes() { + return originCondaRoutes(true) +} From 112645cf3ed77e07a2f63f854695dc2b43ff323d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Spie=C3=9F?= Date: Tue, 7 May 2024 15:08:09 +0000 Subject: [PATCH 51/55] Stub out network responses in test --- routes/originConda.js | 7 +++++-- test/routes/origins.js | 41 +++++++++++++++++++++++++++++++++++++---- 2 files changed, 42 insertions(+), 6 deletions(-) diff --git a/routes/originConda.js b/routes/originConda.js index b13479e63..763997b95 100644 --- a/routes/originConda.js +++ b/routes/originConda.js @@ -11,7 +11,6 @@ const condaChannels = { 'anaconda-r': 'https://repo.anaconda.com/pkgs/r', 'conda-forge': 'https://conda.anaconda.org/conda-forge' } -const condaCache = new Cache() async function fetchCondaChannelData(channel) { const key = `${channel}-channelData` @@ -94,7 +93,11 @@ async function getOriginConda(request, response) { return response.status(200).send(matches) } -function setup(testFlag = false) { +let condaCache + +function setup(cache = new Cache(), testFlag = false) { + condaCache = cache + if (testFlag) { router._getOriginConda = getOriginConda router._getOriginCondaRevisions = getOriginCondaRevisions diff --git a/test/routes/origins.js b/test/routes/origins.js index bacc7a8b2..367f6726f 100644 --- a/test/routes/origins.js +++ b/test/routes/origins.js @@ -3,15 +3,36 @@ const { expect } = require('chai') const httpMocks = require('node-mocks-http') +const sinon = require('sinon') const originCondaRoutes = require('../../routes/originConda') describe('Conda origin routes', () => { it('accepts a good revisions GET request', async () => { const request = createGetOriginCondaRevisionsRequest() const response = httpMocks.createResponse() - const router = createRoutes() + const stubCondaCache = createStubCondaCache({ + 'conda-forge-linux-64-repoData': { + packages: [ + { + name: 'tensorflow', + version: '2.15.0', + build: 'cuda120py39hb94c71b_3' + } + ], + subdirs: ['linux-64'] + }, + 'conda-forge-channelData': { + packages: { + tensorflow: {} + }, + subdirs: ['linux-64'] + } + }) + const router = createRoutes(stubCondaCache) await router._getOriginCondaRevisions(request, response) expect(response.statusCode).to.be.eq(200) + expect(response._getData()).to.be.deep.equal(['linux-64:2.15.0-cuda120py39hb94c71b_3']) + expect(stubCondaCache.get.calledTwice).to.be.true }) }) @@ -23,11 +44,23 @@ function createGetOriginCondaRevisionsRequest() { params: { channel: 'conda-forge', subdir: 'linux-64', - name: 'tensorflow', + name: 'tensorflow' } }) } -function createRoutes() { - return originCondaRoutes(true) +function createRoutes(condaCache) { + return originCondaRoutes(condaCache, true) +} + +function createStubCondaCache(cacheData) { + let getStub = sinon.stub() + + for (const [key, value] of Object.entries(cacheData)) { + getStub.withArgs(key).returns(value) + } + + return { + get: getStub + } } From caf45b14f82de4dd85829b1a47ce68b8a13e0f9d Mon Sep 17 00:00:00 2001 From: Qing Tomlinson Date: Tue, 7 May 2024 09:23:43 -0700 Subject: [PATCH 52/55] Fix originConda route --- routes/originConda.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routes/originConda.js b/routes/originConda.js index 763997b95..2764bb4cf 100644 --- a/routes/originConda.js +++ b/routes/originConda.js @@ -34,7 +34,7 @@ async function fetchCondaRepoData(channel, subdir) { return repoData } -router.get('/:channel/:subdir/:name/revisions', asyncMiddleware(getOriginCondaRevisions())) +router.get('/:channel/:subdir/:name/revisions', asyncMiddleware(getOriginCondaRevisions)) async function getOriginCondaRevisions(request, response) { let { channel, subdir, name } = request.params From 890ea85710fd9eac0c9f90c3b7e167ad45b7c1a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Spie=C3=9F?= Date: Mon, 13 May 2024 13:34:30 +0200 Subject: [PATCH 53/55] Rename job to "test" --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5e0ae2971..9f665371c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -12,7 +12,7 @@ permissions: contents: read jobs: - build: + test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 From ca4e3a7e7866cc01aa434d8abd1abcae8ae74ec9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Spie=C3=9F?= Date: Mon, 13 May 2024 13:37:36 +0200 Subject: [PATCH 54/55] Use `npm ci` to install dependencies --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 9f665371c..076689b29 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -23,7 +23,7 @@ jobs: cache: 'npm' - name: Install dependencies - run: npm install + run: npm ci - name: Run tests run: npm test From 8ebe0d94dce2a52d1e7b2a69547dc344f153fee0 Mon Sep 17 00:00:00 2001 From: "E. Lynette Rayle" Date: Wed, 15 May 2024 18:06:32 -0400 Subject: [PATCH 55/55] 1.3.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0f1e50272..2ae2b5c2f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "service", - "version": "1.2.0", + "version": "1.3.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "service", - "version": "1.2.0", + "version": "1.3.0", "hasInstallScript": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 392a343b2..7b40795d4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "service", - "version": "1.2.0", + "version": "1.3.0", "description": "Service side of clearlydefined.io.", "scripts": { "test": "npm run mocha && npm run lint",