diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 28389ccc9e7..7f3f89f6e4f 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -233,8 +233,8 @@ jobs: - template: etc/ci/azure-posix.yml parameters: - job_name: macos12_cpython_latest_from_pip - image_name: macos-12 + job_name: macos14_cpython_latest_from_pip + image_name: macos-14 python_versions: ['3.9', '3.10', '3.11', '3.12'] test_suites: all: venv/bin/pip install --upgrade-strategy eager --force-reinstall --upgrade -e .[testing] && venv/bin/pytest -n 2 -vvs tests/scancode/test_cli.py diff --git a/src/licensedcode/data/licenses/activepieces-enterprise-2023.LICENSE b/src/licensedcode/data/licenses/activepieces-enterprise-2023.LICENSE new file mode 100644 index 00000000000..3d0cab107e5 --- /dev/null +++ b/src/licensedcode/data/licenses/activepieces-enterprise-2023.LICENSE @@ -0,0 +1,47 @@ +--- +key: activepieces-enterprise-2023 +short_name: Activepieces Enterprise License 2023 +name: Activepieces Enterprise License 2023 +category: Commercial +owner: Activepieces +homepage_url: https://github.com/activepieces/activepieces/blob/main/packages/ee/LICENSE +spdx_license_key: LicenseRef-scancode-activepieces-enterprise-2023 +ignorable_urls: + - https://activepieces.com/terms +--- + +The Activepieces Enterprise license (the “Enterprise License”) + +With regard to the Activepieces Software: + +This software and associated documentation files (the "Software") may only be +used in production, if you (and any entity that you represent) have agreed to, +and are in compliance with, the Activepieces Subscription Terms of Service, available +at https://activepieces.com/terms (the “Enterprise Terms”), or other +agreement governing the use of the Software, as agreed by you and Activepieces, +and otherwise have a valid Activepieces Enterprise license for the +correct number of user seats. Subject to the foregoing sentence, you are free to +modify this Software and publish patches to the Software. You agree that Activepieces +and/or its licensors (as applicable) retain all right, title and interest in and +to all such modifications and/or patches, and all such modifications and/or +patches may only be used, copied, modified, displayed, distributed, or otherwise +exploited with a valid Activepieces Enterprise license for the correct +number of user seats. Notwithstanding the foregoing, you may copy and modify +the Software for development and testing purposes, without requiring a +subscription. You agree that Activepieces and/or its licensors (as applicable) retain +all right, title and interest in and to all such modifications. You are not +granted any other rights beyond what is expressly stated herein. Subject to the +foregoing, it is forbidden to copy, merge, publish, distribute, sublicense, +and/or sell the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +For all third party components incorporated into the Activepieces Software, those +components are licensed under the original license provided by the owner of the +applicable component. \ No newline at end of file diff --git a/src/licensedcode/data/licenses/any-osi-perl-modules.LICENSE b/src/licensedcode/data/licenses/any-osi-perl-modules.LICENSE new file mode 100644 index 00000000000..9f73e324f97 --- /dev/null +++ b/src/licensedcode/data/licenses/any-osi-perl-modules.LICENSE @@ -0,0 +1,26 @@ +--- +key: any-osi-perl-modules +short_name: Any OSI Perl Modules +name: Any OSI License - Perl Modules +category: Unstated License +owner: Unspecified +spdx_license_key: any-OSI-perl-modules +other_urls: + - https://metacpan.org/release/JUERD/Exporter-Tidy-0.09/view/Tidy.pm#LICENSE + - https://metacpan.org/pod/Qmail::Deliverable::Client#LICENSE + - https://metacpan.org/pod/Net::MQTT::Simple#LICENSE +ignorable_urls: + - http://www.opensource.org/licenses/alphabetical +--- + +This software may be redistributed under the terms of the GPL, LGPL, +modified BSD, or Artistic license, or any of the other OSI approved +licenses listed at http://www.opensource.org/licenses/alphabetical. +Distribution is allowed under all of these licenses, or any smaller +subset of multiple or just one of these licenses. + +When using a packaged version, please refer to the package metadata to see +under which license terms it was distributed. Alternatively, a distributor +may choose to replace the LICENSE section of the documentation and/or +include a LICENSE file to reflect the license(s) they chose to redistribute +under. \ No newline at end of file diff --git a/src/licensedcode/data/licenses/apache-patent-exception.LICENSE b/src/licensedcode/data/licenses/apache-patent-exception.LICENSE index d6911eb56b3..f56e60e2051 100644 --- a/src/licensedcode/data/licenses/apache-patent-exception.LICENSE +++ b/src/licensedcode/data/licenses/apache-patent-exception.LICENSE @@ -6,9 +6,12 @@ category: Permissive owner: Michael R Sweet homepage_url: https://github.com/michaelrsweet/mxml/blob/c44aa254ccd90b10b260f04cf9e499bbf971c257/NOTICE is_exception: yes -spdx_license_key: LicenseRef-scancode-apache-patent-exception +spdx_license_key: mxml-exception other_spdx_license_keys: - - LicenseRef-scancode-apache-patent-provision-exception + - LicenseRef-scancode-apache-patent-exception +other_urls: + - https://github.com/michaelrsweet/mxml/blob/master/LICENSE + - https://github.com/michaelrsweet/mxml/blob/master/NOTICE --- (Optional) Exceptions to the Apache 2.0 License: diff --git a/src/licensedcode/data/licenses/cc-pdm-1.0.LICENSE b/src/licensedcode/data/licenses/cc-pdm-1.0.LICENSE index f070362dcbd..35abf71e80c 100644 --- a/src/licensedcode/data/licenses/cc-pdm-1.0.LICENSE +++ b/src/licensedcode/data/licenses/cc-pdm-1.0.LICENSE @@ -5,8 +5,13 @@ name: Creative Commons Public Domain Mark 1.0 category: Public Domain owner: Creative Commons homepage_url: https://creativecommons.org/publicdomain/mark/1.0/ -spdx_license_key: LicenseRef-scancode-cc-pdm-1.0 +spdx_license_key: CC-PDM-1.0 +other_spdx_license_keys: + - LicenseRef-scancode-cc-pdm-1.0 faq_url: https://wiki.creativecommons.org/wiki/PDM_FAQ +other_urls: + - https://creativecommons.org/share-your-work/cclicenses/ + - https://creativecommons.org/publicdomain/mark/1.0/ --- Public Domain Mark 1.0 diff --git a/src/licensedcode/data/licenses/cc-sa-1.0.LICENSE b/src/licensedcode/data/licenses/cc-sa-1.0.LICENSE index 3db3c8cdaf9..38e3d5b4de7 100644 --- a/src/licensedcode/data/licenses/cc-sa-1.0.LICENSE +++ b/src/licensedcode/data/licenses/cc-sa-1.0.LICENSE @@ -11,7 +11,9 @@ notes: A deprecated license from Creative Commons that predates the use of the " CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE. -spdx_license_key: LicenseRef-scancode-cc-sa-1.0 +spdx_license_key: CC-SA-1.0 +other_spdx_license_keys: + - LicenseRef-scancode-cc-sa-1.0 text_urls: - http://creativecommons.org/licenses/sa/1.0/legalcode faq_url: https://web.archive.org/web/20140321162027/http://creativecommons.org/licenses/sa/1.0/ diff --git a/src/licensedcode/data/licenses/cgal-linking-exception.LICENSE b/src/licensedcode/data/licenses/cgal-linking-exception.LICENSE new file mode 100644 index 00000000000..174d9e2456f --- /dev/null +++ b/src/licensedcode/data/licenses/cgal-linking-exception.LICENSE @@ -0,0 +1,19 @@ +--- +key: cgal-linking-exception +short_name: CGAL Linking Exception +name: CGAL Linking Exception +category: Copyleft Limited +owner: CGAL Project +is_exception: yes +spdx_license_key: CGAL-linking-exception +other_urls: + - https://github.com/openscad/openscad/blob/openscad-2021.01/COPYING#L3 + - https://github.com/floriankirsch/OpenCSG/blob/opencsg-1-4-2-release/license.txt#L3 +ignorable_urls: + - http://www.cgal.org/ +--- + +As a special exception, you have permission to link this library +with the CGAL library (http://www.cgal.org) and distribute executables, +as long as you follow the requirements of the GNU GPL in regard to +all of the software in the executable aside from CGAL. \ No newline at end of file diff --git a/src/licensedcode/data/licenses/click-license.LICENSE b/src/licensedcode/data/licenses/click-license.LICENSE index f704c3b6014..92b058125ee 100644 --- a/src/licensedcode/data/licenses/click-license.LICENSE +++ b/src/licensedcode/data/licenses/click-license.LICENSE @@ -5,7 +5,9 @@ name: Click License category: Permissive owner: Unspecified homepage_url: https://changelogs.ubuntu.com/changelogs/pool/main/t/t1utils/t1utils_1.39-2/copyright -spdx_license_key: LicenseRef-scancode-click-license +spdx_license_key: MIT-Click +other_spdx_license_keys: + - LicenseRef-scancode-click-license minimum_coverage: 80 --- diff --git a/src/licensedcode/data/licenses/cryptoswift.LICENSE b/src/licensedcode/data/licenses/cryptoswift.LICENSE new file mode 100644 index 00000000000..36343b2006b --- /dev/null +++ b/src/licensedcode/data/licenses/cryptoswift.LICENSE @@ -0,0 +1,33 @@ +--- +key: cryptoswift +short_name: CryptoSwift License +name: CryptoSwift License +category: Permissive +owner: Marcin Krzyzanowski +homepage_url: https://github.com/krzyzanowskim/CryptoSwift/blob/main/LICENSE +spdx_license_key: LicenseRef-scancode-cryptoswift +other_urls: + - https://github.com/krzyzanowskim/CryptoSwift/blob/main/CONTRIBUTING.md +ignorable_copyrights: + - Copyright (c) 2014-3099 Marcin Krzyzanowski +ignorable_holders: + - Marcin Krzyzanowski +ignorable_authors: + - the Marcin Krzyzanowski (http://krzyzanowskim.com/) +ignorable_urls: + - http://krzyzanowskim.com/ +ignorable_emails: + - marcin.krzyzanowski@gmail.com +--- + +Copyright (C) 2014-3099 Marcin Krzyżanowski +This software is provided 'as-is', without any express or implied warranty. + +In no event will the authors be held liable for any damages arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose,including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: + +- The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation is required. +- Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. +- This notice may not be removed or altered from any source or binary distribution. +- Redistributions of any form whatsoever must retain the following acknowledgment: 'This product includes software developed by the "Marcin Krzyzanowski" (http://krzyzanowskim.com/).' \ No newline at end of file diff --git a/src/licensedcode/data/licenses/docbook-stylesheet.LICENSE b/src/licensedcode/data/licenses/docbook-stylesheet.LICENSE new file mode 100644 index 00000000000..8b4452388c3 --- /dev/null +++ b/src/licensedcode/data/licenses/docbook-stylesheet.LICENSE @@ -0,0 +1,18 @@ +--- +key: docbook-stylesheet +short_name: DocBook Stylesheet License +name: DocBook Stylesheet License +spdx_license_key: DocBook-Stylesheet +category: Permissive +owner: OASIS +other_urls: + - http://www.docbook.org/xml/5.0/docbook-5.0.zip +--- + +Permission to use, copy, modify and distribute this stylesheet +and its accompanying documentation for any purpose and +without fee is hereby granted in perpetuity, provided that +the above copyright notice and this paragraph appear in +all copies. The copyright holders make no representation +about the suitability of the schema for any purpose. It +is provided "as is" without expressed or implied warranty. \ No newline at end of file diff --git a/src/licensedcode/data/licenses/generic-xts.LICENSE b/src/licensedcode/data/licenses/generic-xts.LICENSE new file mode 100644 index 00000000000..57cfe178d08 --- /dev/null +++ b/src/licensedcode/data/licenses/generic-xts.LICENSE @@ -0,0 +1,25 @@ +--- +key: generic-xts +short_name: Generic XTS License +name: Generic XTS License +category: Permissive +owner: zulucrypt Project +spdx_license_key: generic-xts +other_urls: + - https://github.com/mhogomchungu/zuluCrypt/blob/master/external_libraries/tcplay/generic_xts.c +--- + +Permission to use, copy, and modify this software with or without fee +is hereby granted, provided that this entire notice is included in +all copies of any software which is or includes a copy or +modification of this software. +You may use this code under the GNU public license if you so wish. Please +contribute changes back to the authors under this freer than GPL license +so that we may further the use of strong encryption without limitations to +all. + +THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR +IMPLIED WARRANTY. IN PARTICULAR, NONE OF THE AUTHORS MAKES ANY +REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE +MERCHANTABILITY OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR +PURPOSE. \ No newline at end of file diff --git a/src/licensedcode/data/licenses/gpl-3.0-389-ds-base-exception.LICENSE b/src/licensedcode/data/licenses/gpl-3.0-389-ds-base-exception.LICENSE new file mode 100644 index 00000000000..efca870a858 --- /dev/null +++ b/src/licensedcode/data/licenses/gpl-3.0-389-ds-base-exception.LICENSE @@ -0,0 +1,22 @@ +--- +key: gpl-3.0-389-ds-base-exception +short_name: GPL-3.0 389 DS Base Exception +name: GPL-3.0 389 DS Base Exception +category: Copyleft Limited +owner: Free Software Foundation (FSF) +is_exception: yes +spdx_license_key: GPL-3.0-389-ds-base-exception +ignorable_urls: + - https://www.openssl.org/source/license.html +--- + +Additional permission under GPLv3 section 7: + +If you modify this Program, or any covered work, by +linking or combining it with OpenSSL, or a modified +version of OpenSSL licensed under the OpenSSL license +(https://www.openssl.org/source/license.html), the licensors of this +Program grant you additional permission to convey the resulting work. +Corresponding Source for a non-source form of such a combination +shall include the source code for the parts that are licensed +under the OpenSSL license as well as that of the covered work. \ No newline at end of file diff --git a/src/licensedcode/data/licenses/guile-exception-2.0.LICENSE b/src/licensedcode/data/licenses/guile-exception-2.0.LICENSE index 5e87d19981d..896cb7a8047 100644 --- a/src/licensedcode/data/licenses/guile-exception-2.0.LICENSE +++ b/src/licensedcode/data/licenses/guile-exception-2.0.LICENSE @@ -5,9 +5,12 @@ name: GUILE exception to GPL 2.0 category: Copyleft Limited owner: Free Software Foundation (FSF) is_exception: yes -spdx_license_key: LicenseRef-scancode-guile-exception-2.0 +spdx_license_key: harbour-exception +other_spdx_license_keys: + - LicenseRef-scancode-guile-exception-2.0 other_urls: - http://www.gnu.org/licenses/gpl-2.0.txt + - https://github.com/harbour/core/blob/master/LICENSE.txt#L44-L66 standard_notice: | This library is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free diff --git a/src/licensedcode/data/licenses/independent-module-linking-exception.LICENSE b/src/licensedcode/data/licenses/independent-module-linking-exception.LICENSE index 9af18dca5f0..0624ce6e83a 100644 --- a/src/licensedcode/data/licenses/independent-module-linking-exception.LICENSE +++ b/src/licensedcode/data/licenses/independent-module-linking-exception.LICENSE @@ -6,9 +6,12 @@ category: Copyleft Limited owner: Unspecified notes: this is typically seen with the LGPL but is not L/GPL specific is_exception: yes -spdx_license_key: LicenseRef-scancode-indie-module-linking-exception +spdx_license_key: Independent-modules-exception other_spdx_license_keys: + - LicenseRef-scancode-indie-module-linking-exception - LicenseRef-scancode-independent-module-linking-exception +other_urls: + - https://gitlab.com/freepascal.org/fpc/source/-/blob/release_3_2_2/rtl/COPYING.FPC --- As a special exception, the copyright holders of this library give you diff --git a/src/licensedcode/data/licenses/inno-setup.LICENSE b/src/licensedcode/data/licenses/inno-setup.LICENSE index 50f941ba54f..15d04cbc780 100644 --- a/src/licensedcode/data/licenses/inno-setup.LICENSE +++ b/src/licensedcode/data/licenses/inno-setup.LICENSE @@ -5,7 +5,9 @@ name: Inno Setup License category: Permissive owner: jrsoftware.org homepage_url: http://www.jrsoftware.org/files/is/license.txt -spdx_license_key: LicenseRef-scancode-inno-setup +spdx_license_key: InnoSetup +other_spdx_license_keys: + - LicenseRef-scancode-inno-setup text_urls: - http://www.jrsoftware.org/files/is/license.txt ignorable_copyrights: diff --git a/src/licensedcode/data/licenses/mips.LICENSE b/src/licensedcode/data/licenses/mips.LICENSE new file mode 100644 index 00000000000..d89bd8077a7 --- /dev/null +++ b/src/licensedcode/data/licenses/mips.LICENSE @@ -0,0 +1,17 @@ +--- +key: mips +short_name: MIPS License +name: MIPS License +category: Permissive +owner: MIPS Computer Systems +notes: | + Added in SPDX license list 3.25 + This was previously the license rule: other-permissive_116.RULE +spdx_license_key: MIPS +other_urls: + - https://sourceware.org/cgit/binutils-gdb/tree/include/coff/sym.h#n11 +--- + +MIPS Computer Systems, Inc. grants reproduction and use +rights to all parties, PROVIDED that this comment is +maintained in the copy. \ No newline at end of file diff --git a/src/licensedcode/data/licenses/omg-bpmn-2.0.LICENSE b/src/licensedcode/data/licenses/omg-bpmn-2.0.LICENSE new file mode 100644 index 00000000000..98a872c4459 --- /dev/null +++ b/src/licensedcode/data/licenses/omg-bpmn-2.0.LICENSE @@ -0,0 +1,91 @@ +--- +key: omg-bpmn-2.0 +short_name: OMG BPMN 2.0 +name: OMG Business Process Model and Notation 2.0 +category: Proprietary Free +owner: OMG +homepage_url: https://www.omg.org/spec/BPMN/2.0 +spdx_license_key: LicenseRef-scancode-omg-bpmn-2.0 +text_urls: + - https://www.omg.org/spec/BPMN/2.0/PDF +other_urls: + - https://issues.apache.org/jira/browse/LEGAL-690 +--- + +USE OF SPECIFICATION - TERMS, CONDITIONS & NOTICES +The material in this document details an Object Management Group specification in accordance with the terms, +conditions and notices set forth below. This document does not represent a commitment to implement any portion of this +specification in any company's products. The information contained in this document is subject to change without notice. + +LICENSES +The companies listed above have granted to the Object Management Group, Inc. (OMG) a nonexclusive, royalty-free, +paid up, worldwide license to copy and distribute this document and to modify this document and distribute copies of the +modified version. Each of the copyright holders listed above has agreed that no person shall be deemed to have infringed +the copyright in the included material of any such copyright holder by reason of having used the specification set forth +herein or having conformed any computer software to the specification. +Subject to all of the terms and conditions below, the owners of the copyright in this specification hereby grant you a fully- +paid up, non-exclusive, nontransferable, perpetual, worldwide license (without the right to sublicense), to use this +specification to create and distribute software and special purpose specifications that are based upon this specification, +and to use, copy, and distribute this specification as provided under the Copyright Act; provided that: (1) both the +copyright notice identified above and this permission notice appear on any copies of this specification; (2) the use of the +specifications is for informational purposes and will not be copied or posted on any network computer or broadcast in any +media and will not be otherwise resold or transferred for commercial purposes; and (3) no modifications are made to this +specification. This limited permission automatically terminates without notice if you breach any of these terms or +conditions. Upon termination, you will destroy immediately any copies of the specifications in your possession or control. + +PATENTS +The attention of adopters is directed to the possibility that compliance with or adoption of OMG specifications may +require use of an invention covered by patent rights. OMG shall not be responsible for identifying patents for which a +license may be required by any OMG specification, or for conducting legal inquiries into the legal validity or scope of +those patents that are brought to its attention. OMG specifications are prospective and advisory only. Prospective users are +responsible for protecting themselves against liability for infringement of patents. + +GENERAL USE RESTRICTIONS +Any unauthorized use of this specification may violate copyright laws, trademark laws, and communications regulations +and statutes. This document contains information which is protected by copyright. All Rights Reserved. No part of this +work covered by copyright herein may be reproduced or used in any form or by any means--graphic, electronic, or +mechanical, including photocopying, recording, taping, or information storage and retrieval systems--without permission +of the copyright owner. + +DISCLAIMER OF WARRANTY +WHILE THIS PUBLICATION IS BELIEVED TO BE ACCURATE, IT IS PROVIDED "AS IS" AND MAY CONTAIN +ERRORS OR MISPRINTS. THE OBJECT MANAGEMENT GROUP AND THE COMPANIES LISTED ABOVE +MAKE NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS PUBLICATION, +INCLUDING BUT NOT LIMITED TO ANY WARRANTY OF TITLE OR OWNERSHIP, IMPLIED WARRANTY OF +MERCHANTABILITY OR WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE OR USE. +IN NO EVENT SHALL THE OBJECT MANAGEMENT GROUP OR ANY OF THE COMPANIES LISTED ABOVE +BE LIABLE FOR ERRORS CONTAINED HEREIN OR FOR DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +CONSEQUENTIAL, RELIANCE OR COVER DAMAGES, INCLUDING LOSS OF PROFITS, REVENUE, DATA OR +USE, INCURRED BY ANY USER OR ANY THIRD PARTY IN CONNECTION WITH THE FURNISHING, +PERFORMANCE, OR USE OF THIS MATERIAL, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. +The entire risk as to the quality and performance of software developed using this specification is borne by you. This +disclaimer of warranty constitutes an essential part of the license granted to you to use this specification. + +RESTRICTED RIGHTS LEGEND +Use, duplication or disclosure by the U.S. Government is subject to the restrictions set forth in subparagraph (c) (1) (ii) of +The Rights in Technical Data and Computer Software Clause at DFARS 252.227-7013 or in subparagraph (c)(1) and (2) +of the Commercial Computer Software - Restricted Rights clauses at 48 C.F.R. 52.227-19 or as specified in 48 C.F.R. 227- +7202-2 of the DoD F.A.R. Supplement and its successors, or as specified in 48 C.F.R. 12.212 of the Federal Acquisition +Regulations and its successors, as applicable. The specification copyright owners are as indicated above and may be +contacted through the Object Management Group, 140 Kendrick Street, Needham, MA 02494, U.S.A. + +TRADEMARKS +MDA®, Model Driven Architecture®, UML®, UML Cube logo®, OMG Logo®, CORBA® and XMI® are registered +trademarks of the Object Management Group, Inc., and Object Management Group™, OMG™ , Unified Modeling +Language™, Model Driven Architecture Logo™, Model Driven Architecture Diagram™, CORBA logos™, XMI +Logo™, CWM™, CWM Logo™, IIOP™ , IMM™ , MOF™ , OMG Interface Definition Language (IDL)™ , and OMG +Systems Modeling Language (OMG SysML)™ are trademarks of the Object Management Group. All other products or +company names mentioned are used for identification purposes only, and may be trademarks of their respective owners. + +COMPLIANCE +The copyright holders listed above acknowledge that the Object Management Group (acting itself or through its +designees) is and shall at all times be the sole entity that may authorize developers, suppliers and sellers of computer +software to use certification marks, trademarks or other special designations to indicate compliance with these materials. +Software developed under the terms of this license may claim compliance or conformance with this specification if and +only if the software compliance is of a nature fully matching the applicable compliance points as stated in the +specification. Software developed only partially matching the applicable compliance points may claim only that the +software was based on this specification, but may not claim compliance or conformance with this specification. In the +event that testing suites are implemented or approved by Object Management Group, Inc., software developed using this +specification may claim compliance or conformance with the specification only if the software satisfactorily completes +the testing suites. \ No newline at end of file diff --git a/src/licensedcode/data/licenses/sendmail-open-source-1.1.LICENSE b/src/licensedcode/data/licenses/sendmail-open-source-1.1.LICENSE new file mode 100644 index 00000000000..1687b44bfd6 --- /dev/null +++ b/src/licensedcode/data/licenses/sendmail-open-source-1.1.LICENSE @@ -0,0 +1,90 @@ +--- +key: sendmail-open-source-1.1 +short_name: Sendmail Open Source License v1.1 +name: Sendmail Open Source License v1.1 +category: Permissive +owner: Sendmail +spdx_license_key: Sendmail-Open-Source-1.1 +other_urls: + - https://github.com/trusteddomainproject/OpenDMARC/blob/master/LICENSE.Sendmail +ignorable_copyrights: + - Copyright (c) 1998-2009 Sendmail, Inc. +ignorable_holders: + - Sendmail, Inc. +--- + +SENDMAIL OPEN SOURCE LICENSE + +The following license terms and conditions apply to this open source +software ("Software"), unless a different license is obtained directly +from Sendmail, Inc. ("Sendmail") located at 6475 Christie Ave, Suite 350, +Emeryville, CA 94608, USA. + +Use, modification and redistribution (including distribution of any +modified or derived work) of the Software in source and binary forms is +permitted only if each of the following conditions of 1-6 are met: + +1. Redistributions of the Software qualify as "freeware" or "open + source software" under one of the following terms: + + (a) Redistributions are made at no charge beyond the reasonable + cost of materials and delivery; or + + (b) Redistributions are accompanied by a copy of the modified + Source Code (on an acceptable machine-readable medium) or by an + irrevocable offer to provide a copy of the modified Source Code + (on an acceptable machine-readable medium) for up to three years + at the cost of materials and delivery. Such redistributions must + allow further use, modification, and redistribution of the Source + Code under substantially the same terms as this license. For + the purposes of redistribution "Source Code" means the complete + human-readable, compilable, linkable, and operational source + code of the redistributed module(s) including all modifications. + +2. Redistributions of the Software Source Code must retain the + copyright notices as they appear in each Source Code file, these + license terms and conditions, and the disclaimer/limitation of + liability set forth in paragraph 6 below. Redistributions of the + Software Source Code must also comply with the copyright notices + and/or license terms and conditions imposed by contributors on + embedded code. The contributors' license terms and conditions + and/or copyright notices are contained in the Source Code + distribution. + +3. Redistributions of the Software in binary form must reproduce the + Copyright Notice described below, these license terms and conditions, + and the disclaimer/limitation of liability set forth in paragraph + 6 below, in the documentation and/or other materials provided with + the binary distribution. For the purposes of binary distribution, + "Copyright Notice" refers to the following language: "Copyright (c) + 1998-2009 Sendmail, Inc. All rights reserved." + +4. Neither the name, trademark or logo of Sendmail, Inc. (including + without limitation its subsidiaries or affiliates) or its contributors + may be used to endorse or promote products, or software or services + derived from this Software without specific prior written permission. + The name "sendmail" is a registered trademark and service mark of + Sendmail, Inc. + +5. We reserve the right to cancel this license if you do not comply with + the terms. This license is governed by California law and both of us + agree that for any dispute arising out of or relating to this Software, + that jurisdiction and venue is proper in San Francisco or Alameda + counties. These license terms and conditions reflect the complete + agreement for the license of the Software (which means this supercedes + prior or contemporaneous agreements or representations). If any term + or condition under this license is found to be invalid, the remaining + terms and conditions still apply. + +6. Disclaimer/Limitation of Liability: THIS SOFTWARE IS PROVIDED BY + SENDMAIL AND ITS CONTRIBUTORS "AS IS" WITHOUT WARRANTY OF ANY KIND + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A + PARTICULAR PURPOSE ARE EXPRESSLY DISCLAIMED. IN NO EVENT SHALL SENDMAIL + OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED + TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, + OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + WITHOUT LIMITATION NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE + USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. \ No newline at end of file diff --git a/src/licensedcode/data/licenses/smail-gpl.LICENSE b/src/licensedcode/data/licenses/smail-gpl.LICENSE index 6e5997ff7f5..9fba8538d78 100644 --- a/src/licensedcode/data/licenses/smail-gpl.LICENSE +++ b/src/licensedcode/data/licenses/smail-gpl.LICENSE @@ -5,9 +5,13 @@ name: SMAIL General Public License category: Copyleft owner: SMAIL Project homepage_url: https://gitweb.gentoo.org/repo/gentoo.git/plain/licenses/SMAIL -spdx_license_key: LicenseRef-scancode-smail-gpl +spdx_license_key: SMAIL-GPL +other_spdx_license_keys: + - LicenseRef-scancode-smail-gpl text_urls: - https://gitweb.gentoo.org/repo/gentoo.git/plain/licenses/SMAIL +other_urls: + - https://sources.debian.org/copyright/license/debianutils/4.11.2/ ignorable_copyrights: - Copyright (c) 1988 Landon Curt Noll & Ronald S. Karr - Copyright (c) 1992 Ronald S. Karr diff --git a/src/licensedcode/data/licenses/socketxx-2003.LICENSE b/src/licensedcode/data/licenses/socketxx-2003.LICENSE new file mode 100644 index 00000000000..e6240a618b8 --- /dev/null +++ b/src/licensedcode/data/licenses/socketxx-2003.LICENSE @@ -0,0 +1,21 @@ +--- +key: socketxx-2003 +short_name: Socketxx License 2003 +name: Socketxx License 2003 +category: Permissive +owner: Herbert Straub +homepage_url: https://github.com/hstraub/socketxx/blob/master/COPYING +spdx_license_key: LicenseRef-scancode-socketxx-2003 +text_urls: + - https://github.com/malaterre/socketxx-1/blob/master/COPYING +standard_notice: | + Copyright Notice: + ----------------- + Portions Copyright (C) 2002-2003 Herbert Straub for all my changes (see + ChangeLog) +--- + +Permission is granted to use at your own risk and distribute this software +in source and binary forms provided the above copyright notice and this +paragraph are preserved on all copies. This software is provided "as is" +with no express or implied warranty. \ No newline at end of file diff --git a/src/licensedcode/data/licenses/stlport-4.5.LICENSE b/src/licensedcode/data/licenses/stlport-4.5.LICENSE index 8607a3c4824..976403506d6 100644 --- a/src/licensedcode/data/licenses/stlport-4.5.LICENSE +++ b/src/licensedcode/data/licenses/stlport-4.5.LICENSE @@ -5,7 +5,11 @@ name: STLport License v4.5 category: Permissive owner: STLport Consulting notes: stlport-4.5 and mozilla-gc are mostly the same -spdx_license_key: LicenseRef-scancode-stlport-4.5 +spdx_license_key: Boehm-GC-without-fee +other_spdx_license_keys: + - LicenseRef-scancode-stlport-4.5 +other_urls: + - https://github.com/MariaDB/server/blob/11.6/libmysqld/lib_sql.cc --- This material is provided "as is", with absolutely no warranty expressed diff --git a/src/licensedcode/data/licenses/teleport-ce-2024.LICENSE b/src/licensedcode/data/licenses/teleport-ce-2024.LICENSE new file mode 100644 index 00000000000..8c4898f7426 --- /dev/null +++ b/src/licensedcode/data/licenses/teleport-ce-2024.LICENSE @@ -0,0 +1,193 @@ +--- +key: teleport-ce-2024 +short_name: Teleport Community Edition License 2024 +name: Teleport Community Edition License 2024 +category: Proprietary Free +owner: Teleport +homepage_url: https://github.com/gravitational/teleport/blob/master/build.assets/LICENSE-community +spdx_license_key: LicenseRef-scancode-teleport-ce-2024 +ignorable_urls: + - https://github.com/gravitational/teleport/blob/master/build.assets/LICENSE-community +--- + +Teleport Community Edition License + +THE TELEPORT COMMUNITY EDITION IS AVAILABLE ONLY TO ORGANIZATIONS THAT HAVE +LESS THAN ONE HUNDRED (100) EMPLOYEES AND LESS THAN TEN MILLION DOLLARS +($10,000,000.00) IN ANNUAL REVENUE. PROVIDED THE ORGANIZATION MEETS THESE +REQUIREMENTS, THE TELEPORT COMMUNITY EDITION IS MADE AVAILABLE UNDER THIS +LICENSE. + +INTRODUCTORY NOTE: THIS LICENSE IS A DERIVATIVE WORK OF THE APACHE LICENSE +VERSION 2.0 (AVAILABLE AT HTTPS://WWW.APACHE.ORG/LICENSES/LICENSE-2.0). IN OTHER +WORDS, THIS LICENSE CONTAINS ADDITIONAL CONDITIONS THAT THE APACHE LICENSE 2.0 +DOES NOT CONTAIN. PLEASE READ THIS LICENSE CAREFULLY, AS IT IS DIFFERENT FROM +OTHER ‘OPEN ACCESS’ LICENSES YOU MAY HAVE ENCOUNTERED PREVIOUSLY. + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "Contribution" shall mean any work of authorship, including the original + version of the Work and any modifications or additions to that Work or + Derivative Works thereof, that is intentionally submitted to Licensor for + inclusion in the Work by the copyright owner or by an individual or Legal + Entity authorized to submit on behalf of the copyright owner. For the purposes + of this definition, "submitted" means any form of electronic, verbal, or + written communication sent to the Licensor or its representatives, including + but not limited to communication on electronic mailing lists, source code + control systems, and issue tracking systems that are managed by, or on behalf of, + the Licensor for the purpose of discussing and improving the Work, but excluding + communication that is conspicuously marked or otherwise designated in + writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity on + behalf of whom a Contribution has been received by Licensor and subsequently + incorporated within the Work. + + "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. + + "Legal Entity" shall mean an organization that has less than one hundred (100) + employees and less than Ten Million U.S. Dollars ($10,000,000.00) in annual revenue. + + "License" shall mean the terms and conditions for use, reproduction, and + distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by the copyright + owner that is granting the License. + + "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. + + "Source" form shall mean the preferred form for making modifications, including + but not limited to software source code, documentation source, and configuration files. + + "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). + + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + + 2. Grant of Copyright License. Subject to the terms and conditions of this License, + each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, + royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the Work and such + Derivative Works in Source or Object form. For clarity, the requirement that the party + exercising this license must be either an individual or a Legal Entity is an express + condition to the grant of the foregoing license. If the conditions of this License are + not met, no grant of license under this Section 2 exists. + + 3. Grant of Patent License. Subject to the terms and conditions of this License, + each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, + royalty-free, irrevocable (except as stated in this section) patent license to make, + have made, use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable by such Contributor + that are necessarily infringed by their Contribution(s) alone or by combination of their + Contribution(s) with the Work to which such Contribution(s) was submitted. + If You institute patent litigation against any entity (including a crossclaim 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. For clarity, the requirement that the party exercising this + license must be either an individual or a Legal Entity is an express condition to the + grant of the foregoing license. If the conditions of this License are not met, + no grant of license under this Section 3 exists. + + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works + thereof in any medium, with or without modifications, and in Source or Object form, + provided that You meet the following conditions: + + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, + patent, trademark, and attribution notices from the Source form of the Work, excluding those notices + that do not pertain to any part of the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its distribution, + then any Derivative Works that You distribute must include a readable copy + of the attribution notices contained within such NOTICE file, excluding those + notices that do not pertain to any part of the Derivative Works, in at least + one of the following places: within a NOTICE text file distributed as part + of the Derivative Works; within the Source form or documentation, if provided + along with the Derivative Works; or, within a display generated by the + Derivative Works, if and wherever such third-party notices normally appear. + The contents of the NOTICE file are for informational purposes only and do + not modify the License. You may add Your own attribution notices within + Derivative Works that You distribute, alongside or as an addendum to the + NOTICE text from the Work, provided that such additional attribution notices + cannot be construed as modifying the License. + + You may add Your own copyright statement to Your modifications and may provide + additional or different license terms and conditions for use, reproduction, + or distribution of Your modifications, or for any such Derivative Works as a whole, + provided Your use, reproduction, and distribution of the Work otherwise complies + with the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution + intentionally submitted for inclusion in the Work by You to the Licensor shall be under + the terms and conditions of this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify the terms of any + separate license agreement you may have executed with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the tradenames, trademarks, + service marks, or product names of the Licensor, except as required for reasonable and + customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, + Licensor provides the Work (and each Contributor provides its Contributions) on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, + including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, + MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for + determining the appropriateness of using or redistributing the Work and assume any risks + associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, whether in tort + (including negligence), contract, or otherwise, unless required by applicable law + (such as deliberate and grossly negligent acts) or agreed to in writing, shall any + Contributor be liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a result of this + License or out of the use or inability to use the Work (including but not limited + to damages for loss of goodwill, work stoppage, computer failure or malfunction, + or any and all other commercial damages or losses), even if such Contributor has + been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing the Work or + Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance + of support, warranty, indemnity, or other liability obligations and/or rights + consistent with this License. However, in accepting such obligations, You may act + only on Your own behalf and on Your sole responsibility, not on behalf of any other + Contributor, and only if You agree to indemnify, defend, and hold each Contributor + harmless for any liability incurred by, or claims asserted against, such Contributor + by reason of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Teleport Community Edition License to your work. + + To apply the Teleport Community Edition License to your work, + attach the following boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include the brackets!) + The text should be enclosed in the appropriate comment syntax for the file format. + We also recommend that a file or class name and description of purpose be included + on the same "printed page" as the copyright notice for easier identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Teleport Community Edition License, Version 1.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://github.com/gravitational/teleport/blob/master/build.assets/LICENSE-community + + Unless required by applicable law or agreed to in writing, software distributed under + the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + ANY KIND, either express or implied. See the License for the specific language + governing permissions and limitations under the License. \ No newline at end of file diff --git a/src/licensedcode/data/licenses/thirdeye.LICENSE b/src/licensedcode/data/licenses/thirdeye.LICENSE new file mode 100644 index 00000000000..1bab43240b2 --- /dev/null +++ b/src/licensedcode/data/licenses/thirdeye.LICENSE @@ -0,0 +1,16 @@ +--- +key: thirdeye +short_name: ThirdEye License +name: ThirdEye License +category: Permissive +owner: Third Eye Software +spdx_license_key: ThirdEye +other_urls: + - https://sourceware.org/cgit/binutils-gdb/tree/include/coff/symconst.h#n11 +--- + +Third Eye Software, Inc. grants reproduction and use rights to +all parties, PROVIDED that this comment is maintained in the copy. + +Third Eye makes no claims about the applicability of this +symbol table to a particular use. \ No newline at end of file diff --git a/src/licensedcode/data/licenses/trustedqsl.LICENSE b/src/licensedcode/data/licenses/trustedqsl.LICENSE new file mode 100644 index 00000000000..0d1ff7f9017 --- /dev/null +++ b/src/licensedcode/data/licenses/trustedqsl.LICENSE @@ -0,0 +1,67 @@ +--- +key: trustedqsl +short_name: TrustedQSL License +name: TrustedQSL License +category: Permissive +owner: TrustedQSL Developers +spdx_license_key: TrustedQSL +other_urls: + - https://sourceforge.net/p/trustedqsl/tqsl/ci/master/tree/LICENSE.txt +ignorable_urls: + - http://www.arrl.org/ +ignorable_emails: + - logbook@arrl.org +--- + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Any redistribution of source code must retain the above copyright +notice, this list of conditions and the disclaimer shown in +Paragraph 5 (below). + +2. Redistribution in binary form must reproduce the above copyright +notice, this list of conditions and the disclaimer shown in +Paragraph 5 (below) in the documentation and/or other materials +provided with the distribution. + +3. Products derived from or including this software may not use +"Logbook of the World" or "LoTW" or any other American Radio Relay +League, Incorporated trademarks or servicemarks in their names +without prior written permission of the ARRL. See Paragraph 6 +(below) for contact information. + +4. Use of this software does not imply endorsement by ARRL of +products derived from or including this software and vendors may not +claim such endorsement. + +5. Disclaimer: This software is provided "as-is" without +representation, guarantee or warranty of any kind, either express or +implied, including but not limited to the implied warranties of +merchantability or of fitness for a particular purpose. The entire +risk as to the quality and performance of the software is solely +with you. Should the software prove defective, you (and not the +American Radio Relay League, its officers, directors, employees or +agents) assume the entire cost of all necessary servicing, repair or +correction. In no event will ARRL be liable to you or to any third +party for any damages, whether direct or indirect, including lost +profits, lost savings, or other incidental or consequential damages +arising out of the use or inability to use such software, regardless +of whether ARRL has been advised of the possibility of such damages. + +6. Contact information: + +American Radio Relay League, Inc. +Attn: Logbook of the World Manager +225 Main St +Newington, CT 06111 +voice: 860-594-0200 +fax: 860-594-0259 +email: logbook@arrl.org +Worldwide Web: www.arrl.org + +This software consists of voluntary contributions made by many +individuals on behalf of the ARRL. More information on the "Logbook +of The World" project and the ARRL is available from the ARRL Web +site at www.arrl.org. \ No newline at end of file diff --git a/src/licensedcode/data/licenses/wwl.LICENSE b/src/licensedcode/data/licenses/wwl.LICENSE new file mode 100644 index 00000000000..0fc0497cd6c --- /dev/null +++ b/src/licensedcode/data/licenses/wwl.LICENSE @@ -0,0 +1,19 @@ +--- +key: wwl +short_name: WWL License +name: WWL License +category: Permissive +owner: Diane Bruce +spdx_license_key: wwl +other_urls: + - http://www.db.net/downloads/wwl+db-1.3.tgz + - https://tracker.debian.org/media/packages/w/wwl/copyright-1.3%2Bdb-2 +ignorable_emails: + - db@FreeBSD.ORG +--- + +db@FreeBSD.ORG wrote this file. As long as you retain this notice you +can do whatever you want with this code, except you may not +license it under any form of the GPL. +A postcard or QSL card showing me you appreciate +this code would be nice. Diane Bruce va3db \ No newline at end of file diff --git a/src/licensedcode/data/rules/click-license_1.RULE b/src/licensedcode/data/rules/click-license_1.RULE new file mode 100644 index 00000000000..49335544899 --- /dev/null +++ b/src/licensedcode/data/rules/click-license_1.RULE @@ -0,0 +1,10 @@ +--- +license_expression: click-license +is_license_notice: yes +--- + +Portions of this software are subject to the license below. The relevant +source files are clearly marked; they refer to this file using the phrase +"the {{Click LICENSE}} file". This license is an MIT license, plus a clause +(taken from the W3C license) requiring prior written permission to use our +names in publicity. \ No newline at end of file diff --git a/src/licensedcode/data/rules/lgpl-2.0-plus_with_independent-module-linking-exception_1.RULE b/src/licensedcode/data/rules/lgpl-2.0-plus_with_independent-module-linking-exception_1.RULE new file mode 100644 index 00000000000..f46324f6b3b --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.0-plus_with_independent-module-linking-exception_1.RULE @@ -0,0 +1,28 @@ +--- +license_expression: lgpl-2.0-plus WITH independent-module-linking-exception +is_license_notice: yes +minimum_coverage: 90 +referenced_filenames: + - COPYING +--- + +The source code of the Free Pascal Runtime Libraries and packages are +distributed under the {{Library GNU General Public License}} +(see the file COPYING) with the following modification: + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent modules, +and to copy and distribute the resulting executable under terms of your choice, +provided that you also meet, for each linked independent module, the terms +and conditions of the license of that module. An independent module is a module +which is not derived from or based on this library. If you modify this +library, you may extend this exception to your version of the library, but you are +not obligated to do so. If you do not wish to do so, delete this exception +statement from your version. + +If you didn't receive a copy of the file COPYING, contact: + Free Software Foundation + 675 Mass Ave + Cambridge, MA 02139 + USA \ No newline at end of file diff --git a/src/licensedcode/data/rules/lgpl-2.0-plus_with_independent-module-linking-exception_2.RULE b/src/licensedcode/data/rules/lgpl-2.0-plus_with_independent-module-linking-exception_2.RULE new file mode 100644 index 00000000000..13e05e6bd40 --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.0-plus_with_independent-module-linking-exception_2.RULE @@ -0,0 +1,26 @@ +--- +license_expression: lgpl-2.0-plus WITH independent-module-linking-exception +is_license_notice: yes +minimum_coverage: 90 +referenced_filenames: + - COPYING +--- + +This is the file COPYING.FPC, it applies to the Free Pascal Run-Time Library +(RTL) and packages (packages) distributed by members of the Free Pascal +Development Team. + +The source code of the Free Pascal Runtime Libraries and packages are +distributed under the {{Library GNU General Public License}} +(see the file COPYING) with the following modification: + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent modules, +and to copy and distribute the resulting executable under terms of your choice, +provided that you also meet, for each linked independent module, the terms +and conditions of the license of that module. An independent module is a module +which is not derived from or based on this library. If you modify this +library, you may extend this exception to your version of the library, but you are +not obligated to do so. If you do not wish to do so, delete this exception +statement from your version. \ No newline at end of file diff --git a/src/licensedcode/data/rules/lgpl-2.1_with_broadcom-linking-exception-2.0_1.RULE b/src/licensedcode/data/rules/lgpl-2.1_with_broadcom-linking-exception-2.0_1.RULE index d198c6d623a..4f72fb54fac 100644 --- a/src/licensedcode/data/rules/lgpl-2.1_with_broadcom-linking-exception-2.0_1.RULE +++ b/src/licensedcode/data/rules/lgpl-2.1_with_broadcom-linking-exception-2.0_1.RULE @@ -3,7 +3,11 @@ license_expression: lgpl-2.1 WITH broadcom-linking-exception-2.0 is_license_notice: yes referenced_filenames: - COPYING -notes: found in the freepascal compiler +notes: | + found in the freepascal compiler + Added in SPDX license list 3.26 + Replaced by license: independent-modules-exception.LICENSE +is_deprecated: yes --- The source code of the Free Pascal Runtime Libraries and packages are diff --git a/src/licensedcode/data/rules/other-permissive_1066.RULE b/src/licensedcode/data/rules/other-permissive_1066.RULE index 1b6aed99984..b69a376b757 100644 --- a/src/licensedcode/data/rules/other-permissive_1066.RULE +++ b/src/licensedcode/data/rules/other-permissive_1066.RULE @@ -1,6 +1,8 @@ --- license_expression: other-permissive is_license_notice: yes +is_deprecated: yes +notes: This is now the socketxx-2003.LICENSE --- // Permission is granted to use at your own risk and distribute this software diff --git a/src/licensedcode/data/rules/other-permissive_116.RULE b/src/licensedcode/data/rules/other-permissive_116.RULE index c73ade8513c..0390772ae58 100644 --- a/src/licensedcode/data/rules/other-permissive_116.RULE +++ b/src/licensedcode/data/rules/other-permissive_116.RULE @@ -1,7 +1,11 @@ --- license_expression: other-permissive is_license_text: yes +is_deprecated: yes relevance: 100 +notes: | + Added in SPDX license list 3.26 + Replaced by license: mips.LICENSE --- grants reproduction and use | diff --git a/src/licensedcode/data/rules/other-permissive_or_gpl-1.0-plus_2.RULE b/src/licensedcode/data/rules/other-permissive_or_gpl-1.0-plus_2.RULE index 1f11977f525..8b24f46830a 100644 --- a/src/licensedcode/data/rules/other-permissive_or_gpl-1.0-plus_2.RULE +++ b/src/licensedcode/data/rules/other-permissive_or_gpl-1.0-plus_2.RULE @@ -1,6 +1,10 @@ --- license_expression: other-permissive OR gpl-1.0-plus is_license_notice: yes +is_deprecated: yes +notes: | + Added in SPDX license list 3.26 + Replaced by license: generic-xts.LICENSE --- * Permission to use, copy, and modify this software with or without fee diff --git a/src/licensedcode/detection.py b/src/licensedcode/detection.py index 7e5bf1dcf8a..03f91150846 100644 --- a/src/licensedcode/detection.py +++ b/src/licensedcode/detection.py @@ -1907,6 +1907,7 @@ def process_detections(detections, licensing=Licensing()): for key in license_keys ): detection.license_expression = license_expression + detection.license_expression_spdx = detection.spdx_license_expression() detection.detection_log.append(DetectionRule.NOT_LICENSE_CLUES.value) detection.identifier = detection.identifier_with_expression diff --git a/src/licensedcode/license_db.py b/src/licensedcode/license_db.py index f460e88f061..091d3aadf20 100644 --- a/src/licensedcode/license_db.py +++ b/src/licensedcode/license_db.py @@ -210,6 +210,7 @@ def scancode_license_data(path): '--path', type=click.Path(exists=False, writable=True, file_okay=False, resolve_path=True, path_type=str), metavar='DIR', + required=True, help='Dump the license data in this directory in the LicenseDB format and exit. ' 'Creates the directory if it does not exist. ', help_group=MISC_GROUP, diff --git a/src/packagedcode/__init__.py b/src/packagedcode/__init__.py index 778d0434922..9cc46d0e09b 100644 --- a/src/packagedcode/__init__.py +++ b/src/packagedcode/__init__.py @@ -73,6 +73,7 @@ cocoapods.PodfileLockHandler, cocoapods.PodfileHandler, + conda.CondaMetaJsonHandler, conda.CondaMetaYamlHandler, conda.CondaYamlHandler, diff --git a/src/packagedcode/conda.py b/src/packagedcode/conda.py index cbe4c1b3534..19e0462f883 100644 --- a/src/packagedcode/conda.py +++ b/src/packagedcode/conda.py @@ -8,6 +8,7 @@ # import io +import json import saneyaml from packageurl import PackageURL @@ -23,7 +24,333 @@ See https://repo.continuum.io/pkgs/free for examples. """ -# TODO: there are likely other package data files for Conda + +class CondaBaseHandler(models.DatafileHandler): + """ + Assemble package data and files present in conda manifests present in the + usual structure of a conda installation. Here the manifests which are + assembled together are: + - Conda metadata JSON (CondaMetaJsonHandler) + - Conda meta.yaml recipe (CondaMetaYamlHandler) + + Example paths for these manifests: + /opt/conda/conda-meta/requests-2.32.3-py312h06a4308_1.json + /opt/conda/pkgs/requests-2.32.3-py312h06a4308_1/info/recipe/meta.yaml + """ + + @classmethod + def assemble(cls, package_data, resource, codebase, package_adder=models.add_to_package): + + if codebase.has_single_resource: + yield from models.DatafileHandler.assemble(package_data, resource, codebase, package_adder) + return + + # We do not have any package data detected here + if not resource.package_data: + return + + # If this is a Conda meta.yaml, try to find the corresponding metadata JSON + # and if present, run assembly on the metadata resource + if CondaMetaYamlHandler.is_datafile(resource.location): + conda_meta_json = cls.find_conda_meta_json_resource(resource, codebase) + if conda_meta_json: + package_data_meta_json, = conda_meta_json.package_data + yield from cls.assemble( + package_data=package_data_meta_json, + resource=conda_meta_json, + codebase=codebase, + package_adder=package_adder, + ) + + # corresponding metadata JSON does not exist, so handle this meta.yaml + else: + yield from cls.assemble_from_meta_yaml_only( + package_data=package_data, + resource=resource, + codebase=codebase, + package_adder=package_adder, + ) + + return + + if not package_data.purl: + yield resource + return + + package = models.Package.from_package_data( + package_data=package_data, + datafile_path=resource.path, + ) + yield from cls.get_and_assmeble_from_meta_yaml( + package=package, + resource=resource, + codebase=codebase, + package_adder=package_adder, + ) + + package.populate_license_fields() + yield package + + cls.assign_package_to_resources( + package=package, + resource=resource, + codebase=codebase, + package_adder=package_adder, + ) + + # we yield this as we do not want this further processed + yield resource + + cls.assign_packages_to_resources_from_metadata_json( + package=package, + package_data=package_data, + resource=resource, + codebase=codebase, + package_adder=package_adder, + ) + + @classmethod + def assign_packages_to_resources_from_metadata_json( + cls, + package, + package_data, + resource, + codebase, + package_adder=models.add_to_package, + ): + """ + Get the file paths present in the `package_data` of a metadata JSON `resource` + and assign them to the `package` created from the manifest. + """ + extracted_package_dir = package_data.extra_data.get('extracted_package_dir') + files = package_data.extra_data.get('files') + + if not extracted_package_dir or not files: + return + + conda_metadata_dir = resource.parent(codebase) + if not conda_metadata_dir: + return + + conda_root_dir = conda_metadata_dir.parent(codebase) + if not conda_root_dir: + return + + root_path_segment, _, package_dir = extracted_package_dir.rpartition("/pkgs/") + if not conda_root_dir.path.endswith(root_path_segment): + return + + package_dir_path = f"{conda_root_dir.path}/pkgs/{package_dir}" + package_dir_resource = codebase.get_resource(path=package_dir_path) + if package_dir_resource: + cls.assign_package_to_resources( + package=package, + resource=package_dir_resource, + codebase=codebase, + package_adder=package_adder, + ) + + conda_package_path = f"{conda_root_dir.path}/pkgs/{package_dir}.conda" + conda_package_resource = codebase.get_resource(path=conda_package_path) + if conda_package_resource: + cls.assign_package_to_resources( + package=package, + resource=conda_package_resource, + codebase=codebase, + package_adder=package_adder, + ) + + for file_path in files: + full_file_path = f"{conda_root_dir.path}/{file_path}" + file_resource = codebase.get_resource(path=full_file_path) + if file_resource: + cls.assign_package_to_resources( + package=package, + resource=file_resource, + codebase=codebase, + package_adder=package_adder, + ) + + @classmethod + def get_and_assmeble_from_meta_yaml(cls, package, resource, codebase, package_adder=models.add_to_package): + """ + For a conda metadata JSON `resource`, try to find the corresponding meta.yaml and + update the `package` from it. Also yield dependencies present in the meta.yaml, + and the `resource` to complete assembling from this manifest. + """ + conda_meta_yaml = cls.find_conda_meta_yaml_resource(resource, codebase) + + if conda_meta_yaml: + conda_meta_yaml_package_data, = conda_meta_yaml.package_data + package.update( + package_data=conda_meta_yaml_package_data, + datafile_path=conda_meta_yaml.path, + ) + cls.assign_package_to_resources( + package=package, + resource=conda_meta_yaml, + codebase=codebase, + package_adder=package_adder, + ) + meta_yaml_package_data = models.PackageData.from_dict(conda_meta_yaml_package_data) + if meta_yaml_package_data.dependencies: + yield from models.Dependency.from_dependent_packages( + dependent_packages=meta_yaml_package_data.dependencies, + datafile_path=conda_meta_yaml.path, + datasource_id=meta_yaml_package_data.datasource_id, + package_uid=package.package_uid, + ) + + yield conda_meta_yaml + + @classmethod + def assemble_from_meta_yaml_only(cls, package_data, resource, codebase, package_adder=models.add_to_package): + """ + Assemble and yeild package, dependencies and the meta YAML `resource` from + it's `package_data`, and also assign resources to the package. + """ + if not package_data.purl: + return + + package = models.Package.from_package_data( + package_data=package_data, + datafile_path=resource.path, + ) + package.populate_license_fields() + yield package + + dependent_packages = package_data.dependencies + if dependent_packages: + yield from models.Dependency.from_dependent_packages( + dependent_packages=dependent_packages, + datafile_path=resource.path, + datasource_id=package_data.datasource_id, + package_uid=package.package_uid, + ) + + CondaMetaYamlHandler.assign_package_to_resources( + package=package, + resource=resource, + codebase=codebase, + package_adder=package_adder, + ) + yield resource + + @classmethod + def check_valid_packages_dir_name(cls, package_dir_resource, resource, codebase): + """ + Return the name of the `package_dir_resource`, if it is valid, i.e. + the package (name, version) data present in `resource` matches the + directory name, and the package directory is present in it's usual + location in a conda installation. + """ + package_dir_parent = package_dir_resource.parent(codebase) + + meta_yaml_package_data, = resource.package_data + name = meta_yaml_package_data.get("name") + version = meta_yaml_package_data.get("version") + if f"{name}-{version}" in package_dir_resource.name and ( + package_dir_parent and "pkgs" in package_dir_parent.name + ): + return package_dir_resource.name + + @classmethod + def find_conda_meta_json_resource(cls, resource, codebase): + """ + Given a resource for a conda meta.yaml resource, find if it has any + corresponding metadata JSON located inside the conda-meta/ directory, + and return the resource if they exist, else return None. + """ + package_dir_resource = CondaMetaYamlHandler.get_conda_root(resource, codebase) + if not package_dir_resource or not resource.package_data: + return + + package_dir_name = cls.check_valid_packages_dir_name( + package_dir_resource=package_dir_resource, + resource=resource, + codebase=codebase, + ) + if not package_dir_name: + return + + root_resource = package_dir_resource.parent(codebase).parent(codebase) + if not root_resource: + return + + root_resource_path = root_resource.path + conda_meta_path = f"{root_resource_path}/conda-meta/{package_dir_name}.json" + conda_meta_resource = codebase.get_resource(path=conda_meta_path) + + if conda_meta_resource and conda_meta_resource.package_data: + return conda_meta_resource + + @classmethod + def find_conda_meta_yaml_resource(cls, resource, codebase): + """ + Given a resource for a metadata JSON located inside the conda-meta/ + directory, find if it has any corresponding conda meta.yaml, and return + the resource if they exist, else return None. + """ + package_dir_name, _json, _ = resource.name.rpartition(".json") + parent_resource = resource.parent(codebase) + if not parent_resource and not parent_resource.name == "conda-meta": + return + + root_resource = parent_resource.parent(codebase) + if not root_resource: + return + + root_resource_path = root_resource.path + package_dir_path = f"{root_resource_path}/pkgs/{package_dir_name}/" + package_dir_resource = codebase.get_resource(path=package_dir_path) + if not package_dir_resource: + return + + meta_yaml_path = f"{package_dir_path}info/recipe/meta.yaml" + meta_yaml_resource = codebase.get_resource(path=meta_yaml_path) + if meta_yaml_resource and meta_yaml_resource.package_data: + return meta_yaml_resource + + +class CondaMetaJsonHandler(CondaBaseHandler): + datasource_id = 'conda_meta_json' + path_patterns = ('*conda-meta/*.json',) + default_package_type = 'conda' + default_primary_language = 'Python' + description = 'Conda metadata JSON in rootfs' + documentation_url = 'https://docs.conda.io/' + + @classmethod + def parse(cls, location, package_only=False): + with io.open(location, encoding='utf-8') as loc: + conda_metadata = json.load(loc) + + name = conda_metadata.get('name') + version = conda_metadata.get('version') + extracted_license_statement = conda_metadata.get('license') + download_url = conda_metadata.get('url') + + extra_data_fields = ['requested_spec', 'channel'] + package_file_fields = ['extracted_package_dir', 'files', 'package_tarball_full_path'] + other_package_fields = ['size', 'md5', 'sha256'] + + extra_data = {} + for metadata_field in extra_data_fields + package_file_fields: + extra_data[metadata_field] = conda_metadata.get(metadata_field) + + package_data = dict( + datasource_id=cls.datasource_id, + type=cls.default_package_type, + name=name, + version=version, + extracted_license_statement=extracted_license_statement, + download_url=download_url, + extra_data=extra_data, + ) + for package_field in other_package_fields: + package_data[package_field] = conda_metadata.get(package_field) + yield models.PackageData.from_data(package_data, package_only) + class CondaYamlHandler(BaseDependencyFileHandler): datasource_id = 'conda_yaml' @@ -56,7 +383,7 @@ def parse(cls, location, package_only=False): yield models.PackageData.from_data(package_data, package_only) -class CondaMetaYamlHandler(models.DatafileHandler): +class CondaMetaYamlHandler(CondaBaseHandler): datasource_id = 'conda_meta_yaml' default_package_type = 'conda' path_patterns = ('*/meta.yaml',) @@ -68,6 +395,9 @@ def get_conda_root(cls, resource, codebase): """ Return a root Resource given a meta.yaml ``resource``. """ + if not resource: + return + # the root is either the parent or further up for yaml stored under # an "info" dir. We support extractcode extraction. # in a source repo it would be in /conda.recipe/meta.yaml @@ -75,6 +405,7 @@ def get_conda_root(cls, resource, codebase): 'info/recipe.tar-extract/recipe/meta.yaml', 'info/recipe/recipe/meta.yaml', 'conda.recipe/meta.yaml', + 'info/recipe/meta.yaml', ) res = resource for pth in paths: diff --git a/src/packagedcode/npm.py b/src/packagedcode/npm.py index 6081f489d17..779ff281668 100644 --- a/src/packagedcode/npm.py +++ b/src/packagedcode/npm.py @@ -444,7 +444,8 @@ def get_workspace_members(cls, workspaces, codebase, workspace_root_path): # Case 3: This is a complex glob pattern, we are doing a full codebase walk # and glob matching each resource else: - for resource in workspace_root_path: + workspace_root = codebase.get_resource(path=workspace_root_path) + for resource in workspace_root.walk(codebase): if NpmPackageJsonHandler.is_datafile(resource.location) and fnmatch.fnmatch( name=resource.location, pat=workspace_path, ): @@ -1155,6 +1156,10 @@ def parse(cls, location, package_only=False): yield models.PackageData.from_data(package_data, package_only) +class UnknownPnpmLockFormat(Exception): + pass + + class BasePnpmLockHandler(BaseNpmHandler): @classmethod @@ -1181,7 +1186,28 @@ def parse(cls, location, package_only=False): } major_v, minor_v = lockfile_version.split(".") - resolved_packages = lock_data.get("packages", []) + resolved_packages = lock_data.get("packages", {}) + dependency_relations = lock_data.get("snapshots", {}) + dependency_relations_by_purl = {} + if dependency_relations: + for purl_fields, relations in dependency_relations.items(): + clean_purl_fields = purl_fields.split("(")[0] + sections = clean_purl_fields.split("/") + namespace = None + if len(sections) == 2: + namespace, name_version = sections + elif len(sections) == 1: + name_version, = sections + name, version = name_version.split("@") + + purl = PackageURL( + type=cls.default_package_type, + name=name, + namespace=namespace, + version=version, + ).to_string() + dependency_relations_by_purl[purl] = relations + dependencies_by_purl = {} for purl_fields, data in resolved_packages.items(): @@ -1189,23 +1215,33 @@ def parse(cls, location, package_only=False): clean_purl_fields = purl_fields.split("(")[0] elif major_v == "5" or is_shrinkwrap: clean_purl_fields = purl_fields.split("_")[0] - else: + elif major_v == "9": clean_purl_fields = purl_fields - raise Exception(lockfile_version, purl_fields) + else: + message = f"Unknown pnpm lockfile format: {lockfile_version}" + raise UnknownPnpmLockFormat(message, purl_fields) sections = clean_purl_fields.split("/") - name_version= None + name_version = None + namespace = None if major_v == "6": if len(sections) == 2: - namespace = None _, name_version = sections elif len(sections) == 3: _, namespace, name_version = sections + elif len(sections) == 1: + name_version, = sections + + name, version = name_version.split("@") + elif major_v == "9": + if len(sections) == 2: + namespace, name_version = sections + elif len(sections) == 1: + name_version, = sections name, version = name_version.split("@") elif major_v == "5" or is_shrinkwrap: if len(sections) == 3: - namespace = None _, name, version = sections elif len(sections) == 4: _, namespace, name, version = sections @@ -1223,7 +1259,21 @@ def parse(cls, location, package_only=False): dependencies = data.get('dependencies') or {} optional_dependencies = data.get('optionalDependencies') or {} - transitive_peer_dependencies = data.get('transitivePeerDependencies') or {} + transitive_peer_dependencies = data.get('transitivePeerDependencies') or [] + + if purl in dependency_relations_by_purl: + dependency_relations = dependency_relations_by_purl.get(purl) + if dependency_relations: + deps = dependency_relations.get('dependencies') + if deps: + dependencies.update(deps) + optional_deps = dependency_relations.get('optionalDependencies') + if optional_deps: + optional_dependencies.update(optional_deps) + transitive_peer_deps = dependency_relations.get('transitivePeerDependencies') + if transitive_peer_deps: + transitive_peer_dependencies.extend(transitive_peer_deps) + peer_dependencies = data.get('peerDependencies') or {} peer_dependencies_meta = data.get('peerDependenciesMeta') or {} diff --git a/tests/packagedcode/data/conda/assembly-conda-scan.json b/tests/packagedcode/data/conda/assembly-conda-scan.json new file mode 100644 index 00000000000..97cecaa7c8f --- /dev/null +++ b/tests/packagedcode/data/conda/assembly-conda-scan.json @@ -0,0 +1,722 @@ +{ + "packages": [ + { + "type": "conda", + "namespace": null, + "name": "requests", + "version": "2.32.3", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": "Requests is an elegant and simple HTTP library for Python, built with \u2665.", + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": "https://requests.readthedocs.io/", + "download_url": "https://repo.anaconda.com/pkgs/main/linux-64/requests-2.32.3-py312h06a4308_1.conda", + "size": 125693, + "sha1": null, + "md5": "8cc2fc3e2198c2efe6cd890a7684a16a", + "sha256": "940b9ae3f0b64e7ee51dfbdcfcffc674a447e5592f8a66d8064cd505fc122b78", + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": "https://github.com/psf/requests", + "copyright": null, + "holder": null, + "declared_license_expression": "apache-2.0", + "declared_license_expression_spdx": "Apache-2.0", + "license_detections": [ + { + "license_expression": "apache-2.0", + "license_expression_spdx": "Apache-2.0", + "matches": [ + { + "license_expression": "apache-2.0", + "license_expression_spdx": "Apache-2.0", + "from_file": "assembly/opt/conda/conda-meta/requests-2.32.3-py312h06a4308_1.json", + "start_line": 1, + "end_line": 1, + "matcher": "1-hash", + "score": 100.0, + "matched_length": 3, + "match_coverage": 100.0, + "rule_relevance": 100, + "rule_identifier": "spdx_license_id_apache-2.0_for_apache-2.0.RULE", + "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/spdx_license_id_apache-2.0_for_apache-2.0.RULE", + "matched_text": "Apache-2.0" + } + ], + "identifier": "apache_2_0-d66ab77d-a5cc-7104-e702-dc7df61fe9e8" + }, + { + "license_expression": "apache-2.0", + "license_expression_spdx": "Apache-2.0", + "matches": [ + { + "license_expression": "apache-2.0", + "license_expression_spdx": "Apache-2.0", + "from_file": "assembly/opt/conda/pkgs/requests-2.32.3-py312h06a4308_1/info/recipe/meta.yaml", + "start_line": 1, + "end_line": 1, + "matcher": "1-hash", + "score": 100.0, + "matched_length": 3, + "match_coverage": 100.0, + "rule_relevance": 100, + "rule_identifier": "spdx_license_id_apache-2.0_for_apache-2.0.RULE", + "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/spdx_license_id_apache-2.0_for_apache-2.0.RULE", + "matched_text": "Apache-2.0" + } + ], + "identifier": "apache_2_0-d66ab77d-a5cc-7104-e702-dc7df61fe9e8" + } + ], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": "Apache-2.0", + "notice_text": null, + "source_packages": [], + "is_private": false, + "is_virtual": false, + "extra_data": { + "requested_spec": "defaults/linux-64::requests==2.32.3=py312h06a4308_1[md5=8cc2fc3e2198c2efe6cd890a7684a16a]", + "channel": "https://repo.anaconda.com/pkgs/main/linux-64", + "extracted_package_dir": "/opt/conda/pkgs/requests-2.32.3-py312h06a4308_1", + "files": [ + "lib/python3.12/site-packages/requests-2.32.3.dist-info/LICENSE", + "lib/python3.12/site-packages/requests-2.32.3.dist-info/METADATA", + "lib/python3.12/site-packages/requests/__init__.py" + ], + "package_tarball_full_path": "opt/conda/pkgs/requests-2.32.3-py312h06a4308_1.conda" + }, + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "package_uid": "pkg:conda/requests@2.32.3?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_paths": [ + "assembly/opt/conda/conda-meta/requests-2.32.3-py312h06a4308_1.json", + "assembly/opt/conda/pkgs/requests-2.32.3-py312h06a4308_1/info/recipe/meta.yaml" + ], + "datasource_ids": [ + "conda_meta_json", + "conda_meta_yaml" + ], + "purl": "pkg:conda/requests@2.32.3" + }, + { + "type": "pypi", + "namespace": null, + "name": "requests", + "version": "2.32.3", + "qualifiers": {}, + "subpath": null, + "primary_language": "Python", + "description": "Python HTTP for Humans.", + "release_date": null, + "parties": [ + { + "type": "person", + "role": "author", + "name": "Kenneth Reitz", + "email": "me@kennethreitz.org", + "url": null + } + ], + "keywords": [ + "Development Status :: 5 - Production/Stable", + "Natural Language :: English", + "Operating System :: OS Independent", + "Programming Language :: Python :: 3" + ], + "homepage_url": "https://requests.readthedocs.io", + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": "https://github.com/psf/requests", + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": "apache-2.0", + "declared_license_expression_spdx": "Apache-2.0", + "license_detections": [ + { + "license_expression": "apache-2.0", + "license_expression_spdx": "Apache-2.0", + "matches": [ + { + "license_expression": "apache-2.0", + "license_expression_spdx": "Apache-2.0", + "from_file": "assembly/opt/conda/lib/python3.12/site-packages/requests-2.32.3.dist-info/METADATA", + "start_line": 1, + "end_line": 1, + "matcher": "1-hash", + "score": 100.0, + "matched_length": 3, + "match_coverage": 100.0, + "rule_relevance": 100, + "rule_identifier": "spdx_license_id_apache-2.0_for_apache-2.0.RULE", + "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/spdx_license_id_apache-2.0_for_apache-2.0.RULE", + "matched_text": "Apache-2.0" + } + ], + "identifier": "apache_2_0-d66ab77d-a5cc-7104-e702-dc7df61fe9e8" + } + ], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": "license: Apache-2.0\n", + "notice_text": null, + "source_packages": [], + "is_private": false, + "is_virtual": false, + "extra_data": { + "Documentation": "https://requests.readthedocs.io" + }, + "repository_homepage_url": "https://pypi.org/project/requests", + "repository_download_url": "https://pypi.org/packages/source/r/requests/requests-2.32.3.tar.gz", + "api_data_url": "https://pypi.org/pypi/requests/2.32.3/json", + "package_uid": "pkg:pypi/requests@2.32.3?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_paths": [ + "assembly/opt/conda/lib/python3.12/site-packages/requests-2.32.3.dist-info/METADATA" + ], + "datasource_ids": [ + "pypi_wheel_metadata" + ], + "purl": "pkg:pypi/requests@2.32.3" + } + ], + "dependencies": [ + { + "purl": "pkg:conda/zlib", + "extracted_requirement": "1.2.13 h5eee18b_1", + "scope": "host", + "is_runtime": false, + "is_optional": true, + "is_pinned": false, + "is_direct": true, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:conda/zlib?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:conda/requests@2.32.3?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "assembly/opt/conda/pkgs/requests-2.32.3-py312h06a4308_1/info/recipe/meta.yaml", + "datasource_id": "conda_meta_yaml" + }, + { + "purl": "pkg:conda/certifi", + "extracted_requirement": ">=2017.4.17", + "scope": "run", + "is_runtime": true, + "is_optional": false, + "is_pinned": false, + "is_direct": true, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:conda/certifi?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:conda/requests@2.32.3?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "assembly/opt/conda/pkgs/requests-2.32.3-py312h06a4308_1/info/recipe/meta.yaml", + "datasource_id": "conda_meta_yaml" + }, + { + "purl": "pkg:conda/chardet", + "extracted_requirement": ">=3.0.2,<6", + "scope": "run_constrained", + "is_runtime": true, + "is_optional": false, + "is_pinned": false, + "is_direct": true, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:conda/chardet?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:conda/requests@2.32.3?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "assembly/opt/conda/pkgs/requests-2.32.3-py312h06a4308_1/info/recipe/meta.yaml", + "datasource_id": "conda_meta_yaml" + }, + { + "purl": "pkg:pypi/charset-normalizer", + "extracted_requirement": "<4,>=2", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_pinned": false, + "is_direct": true, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:pypi/charset-normalizer?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:pypi/requests@2.32.3?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "assembly/opt/conda/lib/python3.12/site-packages/requests-2.32.3.dist-info/METADATA", + "datasource_id": "pypi_wheel_metadata" + } + ], + "files": [ + { + "path": "assembly", + "type": "directory", + "package_data": [], + "for_packages": [], + "scan_errors": [] + }, + { + "path": "assembly/opt", + "type": "directory", + "package_data": [], + "for_packages": [], + "scan_errors": [] + }, + { + "path": "assembly/opt/conda", + "type": "directory", + "package_data": [], + "for_packages": [], + "scan_errors": [] + }, + { + "path": "assembly/opt/conda/conda-meta", + "type": "directory", + "package_data": [], + "for_packages": [], + "scan_errors": [] + }, + { + "path": "assembly/opt/conda/conda-meta/requests-2.32.3-py312h06a4308_1.json", + "type": "file", + "package_data": [ + { + "type": "conda", + "namespace": null, + "name": "requests", + "version": "2.32.3", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://repo.anaconda.com/pkgs/main/linux-64/requests-2.32.3-py312h06a4308_1.conda", + "size": 125693, + "sha1": null, + "md5": "8cc2fc3e2198c2efe6cd890a7684a16a", + "sha256": "940b9ae3f0b64e7ee51dfbdcfcffc674a447e5592f8a66d8064cd505fc122b78", + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": "apache-2.0", + "declared_license_expression_spdx": "Apache-2.0", + "license_detections": [ + { + "license_expression": "apache-2.0", + "license_expression_spdx": "Apache-2.0", + "matches": [ + { + "license_expression": "apache-2.0", + "license_expression_spdx": "Apache-2.0", + "from_file": "assembly/opt/conda/conda-meta/requests-2.32.3-py312h06a4308_1.json", + "start_line": 1, + "end_line": 1, + "matcher": "1-hash", + "score": 100.0, + "matched_length": 3, + "match_coverage": 100.0, + "rule_relevance": 100, + "rule_identifier": "spdx_license_id_apache-2.0_for_apache-2.0.RULE", + "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/spdx_license_id_apache-2.0_for_apache-2.0.RULE", + "matched_text": "Apache-2.0" + } + ], + "identifier": "apache_2_0-d66ab77d-a5cc-7104-e702-dc7df61fe9e8" + } + ], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": "Apache-2.0", + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": { + "requested_spec": "defaults/linux-64::requests==2.32.3=py312h06a4308_1[md5=8cc2fc3e2198c2efe6cd890a7684a16a]", + "channel": "https://repo.anaconda.com/pkgs/main/linux-64", + "extracted_package_dir": "/opt/conda/pkgs/requests-2.32.3-py312h06a4308_1", + "files": [ + "lib/python3.12/site-packages/requests-2.32.3.dist-info/LICENSE", + "lib/python3.12/site-packages/requests-2.32.3.dist-info/METADATA", + "lib/python3.12/site-packages/requests/__init__.py" + ], + "package_tarball_full_path": "opt/conda/pkgs/requests-2.32.3-py312h06a4308_1.conda" + }, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "conda_meta_json", + "purl": "pkg:conda/requests@2.32.3" + } + ], + "for_packages": [ + "pkg:conda/requests@2.32.3?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "assembly/opt/conda/lib", + "type": "directory", + "package_data": [], + "for_packages": [], + "scan_errors": [] + }, + { + "path": "assembly/opt/conda/lib/python3.12", + "type": "directory", + "package_data": [], + "for_packages": [], + "scan_errors": [] + }, + { + "path": "assembly/opt/conda/lib/python3.12/site-packages", + "type": "directory", + "package_data": [], + "for_packages": [], + "scan_errors": [] + }, + { + "path": "assembly/opt/conda/lib/python3.12/site-packages/requests", + "type": "directory", + "package_data": [], + "for_packages": [], + "scan_errors": [] + }, + { + "path": "assembly/opt/conda/lib/python3.12/site-packages/requests-2.32.3.dist-info", + "type": "directory", + "package_data": [], + "for_packages": [], + "scan_errors": [] + }, + { + "path": "assembly/opt/conda/lib/python3.12/site-packages/requests-2.32.3.dist-info/LICENSE", + "type": "file", + "package_data": [], + "for_packages": [ + "pkg:conda/requests@2.32.3?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "assembly/opt/conda/lib/python3.12/site-packages/requests-2.32.3.dist-info/METADATA", + "type": "file", + "package_data": [ + { + "type": "pypi", + "namespace": null, + "name": "requests", + "version": "2.32.3", + "qualifiers": {}, + "subpath": null, + "primary_language": "Python", + "description": "Python HTTP for Humans.", + "release_date": null, + "parties": [ + { + "type": "person", + "role": "author", + "name": "Kenneth Reitz", + "email": "me@kennethreitz.org", + "url": null + } + ], + "keywords": [ + "Development Status :: 5 - Production/Stable", + "Natural Language :: English", + "Operating System :: OS Independent", + "Programming Language :: Python :: 3" + ], + "homepage_url": "https://requests.readthedocs.io", + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": "https://github.com/psf/requests", + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": "apache-2.0", + "declared_license_expression_spdx": "Apache-2.0", + "license_detections": [ + { + "license_expression": "apache-2.0", + "license_expression_spdx": "Apache-2.0", + "matches": [ + { + "license_expression": "apache-2.0", + "license_expression_spdx": "Apache-2.0", + "from_file": "assembly/opt/conda/lib/python3.12/site-packages/requests-2.32.3.dist-info/METADATA", + "start_line": 1, + "end_line": 1, + "matcher": "1-hash", + "score": 100.0, + "matched_length": 3, + "match_coverage": 100.0, + "rule_relevance": 100, + "rule_identifier": "spdx_license_id_apache-2.0_for_apache-2.0.RULE", + "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/spdx_license_id_apache-2.0_for_apache-2.0.RULE", + "matched_text": "Apache-2.0" + } + ], + "identifier": "apache_2_0-d66ab77d-a5cc-7104-e702-dc7df61fe9e8" + } + ], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": "license: Apache-2.0\n", + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": { + "Documentation": "https://requests.readthedocs.io" + }, + "dependencies": [ + { + "purl": "pkg:pypi/charset-normalizer", + "extracted_requirement": "<4,>=2", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_pinned": false, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": "https://pypi.org/project/requests", + "repository_download_url": "https://pypi.org/packages/source/r/requests/requests-2.32.3.tar.gz", + "api_data_url": "https://pypi.org/pypi/requests/2.32.3/json", + "datasource_id": "pypi_wheel_metadata", + "purl": "pkg:pypi/requests@2.32.3" + } + ], + "for_packages": [ + "pkg:conda/requests@2.32.3?uuid=fixed-uid-done-for-testing-5642512d1758", + "pkg:pypi/requests@2.32.3?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "assembly/opt/conda/lib/python3.12/site-packages/requests/__init__.py", + "type": "file", + "package_data": [], + "for_packages": [ + "pkg:conda/requests@2.32.3?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "assembly/opt/conda/pkgs", + "type": "directory", + "package_data": [], + "for_packages": [], + "scan_errors": [] + }, + { + "path": "assembly/opt/conda/pkgs/requests-2.32.3-py312h06a4308_1", + "type": "directory", + "package_data": [], + "for_packages": [ + "pkg:conda/requests@2.32.3?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "assembly/opt/conda/pkgs/requests-2.32.3-py312h06a4308_1/info", + "type": "directory", + "package_data": [], + "for_packages": [ + "pkg:conda/requests@2.32.3?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "assembly/opt/conda/pkgs/requests-2.32.3-py312h06a4308_1/info/recipe", + "type": "directory", + "package_data": [], + "for_packages": [ + "pkg:conda/requests@2.32.3?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "assembly/opt/conda/pkgs/requests-2.32.3-py312h06a4308_1/info/recipe/meta.yaml", + "type": "file", + "package_data": [ + { + "type": "conda", + "namespace": null, + "name": "requests", + "version": "2.32.3", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": "Requests is an elegant and simple HTTP library for Python, built with \u2665.", + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": "https://requests.readthedocs.io/", + "download_url": "https://pypi.io/packages/source/r/requests/requests-2.32.3.tar.gz", + "size": null, + "sha1": null, + "md5": null, + "sha256": "55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760", + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": "https://github.com/psf/requests", + "copyright": null, + "holder": null, + "declared_license_expression": "apache-2.0", + "declared_license_expression_spdx": "Apache-2.0", + "license_detections": [ + { + "license_expression": "apache-2.0", + "license_expression_spdx": "Apache-2.0", + "matches": [ + { + "license_expression": "apache-2.0", + "license_expression_spdx": "Apache-2.0", + "from_file": "assembly/opt/conda/pkgs/requests-2.32.3-py312h06a4308_1/info/recipe/meta.yaml", + "start_line": 1, + "end_line": 1, + "matcher": "1-hash", + "score": 100.0, + "matched_length": 3, + "match_coverage": 100.0, + "rule_relevance": 100, + "rule_identifier": "spdx_license_id_apache-2.0_for_apache-2.0.RULE", + "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/spdx_license_id_apache-2.0_for_apache-2.0.RULE", + "matched_text": "Apache-2.0" + } + ], + "identifier": "apache_2_0-d66ab77d-a5cc-7104-e702-dc7df61fe9e8" + } + ], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": "Apache-2.0", + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": {}, + "dependencies": [ + { + "purl": "pkg:conda/zlib", + "extracted_requirement": "1.2.13 h5eee18b_1", + "scope": "host", + "is_runtime": false, + "is_optional": true, + "is_pinned": false, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:conda/certifi", + "extracted_requirement": ">=2017.4.17", + "scope": "run", + "is_runtime": true, + "is_optional": false, + "is_pinned": false, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:conda/chardet", + "extracted_requirement": ">=3.0.2,<6", + "scope": "run_constrained", + "is_runtime": true, + "is_optional": false, + "is_pinned": false, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "conda_meta_yaml", + "purl": "pkg:conda/requests@2.32.3" + } + ], + "for_packages": [ + "pkg:conda/requests@2.32.3?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "assembly/opt/conda/pkgs/requests-2.32.3-py312h06a4308_1/lib", + "type": "directory", + "package_data": [], + "for_packages": [ + "pkg:conda/requests@2.32.3?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "assembly/opt/conda/pkgs/requests-2.32.3-py312h06a4308_1/lib/python3.12", + "type": "directory", + "package_data": [], + "for_packages": [ + "pkg:conda/requests@2.32.3?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "assembly/opt/conda/pkgs/requests-2.32.3-py312h06a4308_1/lib/python3.12/site-packages", + "type": "directory", + "package_data": [], + "for_packages": [ + "pkg:conda/requests@2.32.3?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "assembly/opt/conda/pkgs/requests-2.32.3-py312h06a4308_1/lib/python3.12/site-packages/requests", + "type": "directory", + "package_data": [], + "for_packages": [ + "pkg:conda/requests@2.32.3?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "assembly/opt/conda/pkgs/requests-2.32.3-py312h06a4308_1/lib/python3.12/site-packages/requests/__init__.py", + "type": "file", + "package_data": [], + "for_packages": [ + "pkg:conda/requests@2.32.3?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + } + ] +} \ No newline at end of file diff --git a/tests/packagedcode/data/conda/assembly/opt/conda/conda-meta/requests-2.32.3-py312h06a4308_1.json b/tests/packagedcode/data/conda/assembly/opt/conda/conda-meta/requests-2.32.3-py312h06a4308_1.json new file mode 100644 index 00000000000..085fad49dd6 --- /dev/null +++ b/tests/packagedcode/data/conda/assembly/opt/conda/conda-meta/requests-2.32.3-py312h06a4308_1.json @@ -0,0 +1,45 @@ +{ + "arch": "x86_64", + "build": "py312h06a4308_1", + "build_number": 1, + "channel": "https://repo.anaconda.com/pkgs/main/linux-64", + "constrains": [ + "pysocks >=1.5.6,!=1.5.7", + "chardet >=3.0.2,<6" + ], + "depends": [ + "certifi >=2017.4.17", + "charset-normalizer >=2,<4", + "idna >=2.5,<4", + "python >=3.12,<3.13.0a0", + "urllib3 >=1.21.1,<3" + ], + "extracted_package_dir": "/opt/conda/pkgs/requests-2.32.3-py312h06a4308_1", + "files": [ + "lib/python3.12/site-packages/requests-2.32.3.dist-info/LICENSE", + "lib/python3.12/site-packages/requests-2.32.3.dist-info/METADATA", + "lib/python3.12/site-packages/requests/__init__.py" + ], + "fn": "requests-2.32.3-py312h06a4308_1.conda", + "license": "Apache-2.0", + "license_family": "Apache", + "link": { + "source": "opt/conda/pkgs/requests-2.32.3-py312h06a4308_1", + "type": 1 + }, + "md5": "8cc2fc3e2198c2efe6cd890a7684a16a", + "name": "requests", + "package_tarball_full_path": "opt/conda/pkgs/requests-2.32.3-py312h06a4308_1.conda", + "paths_data": { + "paths": [], + "paths_version": 1 + }, + "platform": "linux", + "requested_spec": "defaults/linux-64::requests==2.32.3=py312h06a4308_1[md5=8cc2fc3e2198c2efe6cd890a7684a16a]", + "sha256": "940b9ae3f0b64e7ee51dfbdcfcffc674a447e5592f8a66d8064cd505fc122b78", + "size": 125693, + "subdir": "linux-64", + "timestamp": 1730999176000, + "url": "https://repo.anaconda.com/pkgs/main/linux-64/requests-2.32.3-py312h06a4308_1.conda", + "version": "2.32.3" +} \ No newline at end of file diff --git a/tests/packagedcode/data/conda/assembly/opt/conda/lib/python3.12/site-packages/requests-2.32.3.dist-info/LICENSE b/tests/packagedcode/data/conda/assembly/opt/conda/lib/python3.12/site-packages/requests-2.32.3.dist-info/LICENSE new file mode 100644 index 00000000000..2e85972ece4 --- /dev/null +++ b/tests/packagedcode/data/conda/assembly/opt/conda/lib/python3.12/site-packages/requests-2.32.3.dist-info/LICENSE @@ -0,0 +1 @@ +Apache License Version 2.0 \ No newline at end of file diff --git a/tests/packagedcode/data/conda/assembly/opt/conda/lib/python3.12/site-packages/requests-2.32.3.dist-info/METADATA b/tests/packagedcode/data/conda/assembly/opt/conda/lib/python3.12/site-packages/requests-2.32.3.dist-info/METADATA new file mode 100644 index 00000000000..1166fc320a1 --- /dev/null +++ b/tests/packagedcode/data/conda/assembly/opt/conda/lib/python3.12/site-packages/requests-2.32.3.dist-info/METADATA @@ -0,0 +1,18 @@ +Metadata-Version: 2.1 +Name: requests +Version: 2.32.3 +Summary: Python HTTP for Humans. +Home-page: https://requests.readthedocs.io +Author: Kenneth Reitz +Author-email: me@kennethreitz.org +License: Apache-2.0 +Project-URL: Documentation, https://requests.readthedocs.io +Project-URL: Source, https://github.com/psf/requests +Classifier: Development Status :: 5 - Production/Stable +Classifier: Natural Language :: English +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python :: 3 +Requires-Python: >=3.8 +Description-Content-Type: text/markdown +License-File: LICENSE +Requires-Dist: charset-normalizer<4,>=2 diff --git a/tests/packagedcode/data/conda/assembly/opt/conda/lib/python3.12/site-packages/requests/__init__.py b/tests/packagedcode/data/conda/assembly/opt/conda/lib/python3.12/site-packages/requests/__init__.py new file mode 100644 index 00000000000..8b137891791 --- /dev/null +++ b/tests/packagedcode/data/conda/assembly/opt/conda/lib/python3.12/site-packages/requests/__init__.py @@ -0,0 +1 @@ + diff --git a/tests/packagedcode/data/conda/assembly/opt/conda/pkgs/requests-2.32.3-py312h06a4308_1/info/recipe/meta.yaml b/tests/packagedcode/data/conda/assembly/opt/conda/pkgs/requests-2.32.3-py312h06a4308_1/info/recipe/meta.yaml new file mode 100644 index 00000000000..7615c560abe --- /dev/null +++ b/tests/packagedcode/data/conda/assembly/opt/conda/pkgs/requests-2.32.3-py312h06a4308_1/info/recipe/meta.yaml @@ -0,0 +1,57 @@ +# This file created by conda-build 24.1.2 +# meta.yaml template originally from: +# /feedstock/recipe, last modified Thu Nov 7 17:05:12 2024 +# ------------------------------------------------ + +package: + name: requests + version: 2.32.3 +source: + sha256: 55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760 + url: https://pypi.io/packages/source/r/requests/requests-2.32.3.tar.gz +requirements: + host: + - zlib 1.2.13 h5eee18b_1 + run: + - certifi >=2017.4.17 + run_constrained: + - chardet >=3.0.2,<6 +test: + commands: + - pip check + - conda create -v --dry-run -n requests-test numpy + imports: + - requests + requires: + - conda + - pip +about: + description: 'Requests is the only Non-GMO HTTP library for Python, safe for human + + consumption. + + ' + dev_url: https://github.com/psf/requests + doc_url: https://requests.readthedocs.io/ + home: https://requests.readthedocs.io/ + license: Apache-2.0 + license_family: Apache + license_file: LICENSE + summary: "Requests is an elegant and simple HTTP library for Python, built with\ + \ \u2665." +extra: + copy_test_source_files: true + final: true + flow_run_id: a6780417-397a-4b4b-9b26-7ad861f84324 + recipe-maintainers: + - carlodri + - jakirkham + - kalefranz + - mcg1969 + - mingwandroid + - msarahan + - ocefpaf + - pelson + - sigmavirus24 + remote_url: git@github.com:AnacondaRecipes/requests-feedstock.git + sha: 997bb0da1a210a5aeef4073b32f674eaf1f8eaca \ No newline at end of file diff --git a/tests/packagedcode/data/conda/assembly/opt/conda/pkgs/requests-2.32.3-py312h06a4308_1/lib/python3.12/site-packages/requests/__init__.py b/tests/packagedcode/data/conda/assembly/opt/conda/pkgs/requests-2.32.3-py312h06a4308_1/lib/python3.12/site-packages/requests/__init__.py new file mode 100644 index 00000000000..8b137891791 --- /dev/null +++ b/tests/packagedcode/data/conda/assembly/opt/conda/pkgs/requests-2.32.3-py312h06a4308_1/lib/python3.12/site-packages/requests/__init__.py @@ -0,0 +1 @@ + diff --git a/tests/packagedcode/data/conda/conda-meta/tzdata-2024b-h04d1e81_0.json b/tests/packagedcode/data/conda/conda-meta/tzdata-2024b-h04d1e81_0.json new file mode 100644 index 00000000000..bae5927378b --- /dev/null +++ b/tests/packagedcode/data/conda/conda-meta/tzdata-2024b-h04d1e81_0.json @@ -0,0 +1,36 @@ +{ + "build": "h04d1e81_0", + "build_number": 0, + "channel": "https://repo.anaconda.com/pkgs/main/noarch", + "constrains": [], + "depends": [], + "extracted_package_dir": "/opt/conda/pkgs/tzdata-2024b-h04d1e81_0", + "files": [ + "share/zoneinfo/Asia/Kolkata", + "share/zoneinfo/tzdata.zi", + "share/zoneinfo/zone.tab" + ], + "fn": "tzdata-2024b-h04d1e81_0.conda", + "license": "CC-PDDC OR BSD-3-Clause", + "license_family": "BSD", + "link": { + "source": "/opt/conda/pkgs/tzdata-2024b-h04d1e81_0", + "type": 1 + }, + "md5": "9be694715c6a65f9631bb1b242125e9d", + "name": "tzdata", + "noarch": "generic", + "package_tarball_full_path": "/opt/conda/pkgs/tzdata-2024b-h04d1e81_0.conda", + "package_type": "noarch_generic", + "paths_data": { + "paths": [], + "paths_version": 1 + }, + "requested_spec": "defaults/noarch::tzdata==2024b=h04d1e81_0[md5=9be694715c6a65f9631bb1b242125e9d]", + "sha256": "9fdd287b55be4c475789a69d3b94cdb73f756583a6d7306da1706e43eee573da", + "size": 117432, + "subdir": "noarch", + "timestamp": 1728062827000, + "url": "https://repo.anaconda.com/pkgs/main/noarch/tzdata-2024b-h04d1e81_0.conda", + "version": "2024b" +} \ No newline at end of file diff --git a/tests/packagedcode/data/conda/conda-meta/tzdata-expected.json b/tests/packagedcode/data/conda/conda-meta/tzdata-expected.json new file mode 100644 index 00000000000..84141ae2dab --- /dev/null +++ b/tests/packagedcode/data/conda/conda-meta/tzdata-expected.json @@ -0,0 +1,79 @@ +[ + { + "type": "conda", + "namespace": null, + "name": "tzdata", + "version": "2024b", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://repo.anaconda.com/pkgs/main/noarch/tzdata-2024b-h04d1e81_0.conda", + "size": 117432, + "sha1": null, + "md5": "9be694715c6a65f9631bb1b242125e9d", + "sha256": "9fdd287b55be4c475789a69d3b94cdb73f756583a6d7306da1706e43eee573da", + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": "cc-pd OR bsd-new", + "declared_license_expression_spdx": "CC-PDDC OR BSD-3-Clause", + "license_detections": [ + { + "license_expression": "cc-pd OR bsd-new", + "license_expression_spdx": "CC-PDDC OR BSD-3-Clause", + "matches": [ + { + "license_expression": "cc-pd OR bsd-new", + "license_expression_spdx": "CC-PDDC OR BSD-3-Clause", + "from_file": null, + "start_line": 1, + "end_line": 1, + "matcher": "1-spdx-id", + "score": 100.0, + "matched_length": 6, + "match_coverage": 100.0, + "rule_relevance": 100, + "rule_identifier": "spdx-license-identifier-cc_pd_or_bsd_new-7ed06e8faddcea41dbd5ba6b6a1103da7451d4c1", + "rule_url": null, + "matched_text": "CC-PDDC OR BSD-3-Clause" + } + ], + "identifier": "cc_pd_or_bsd_new-59c31305-cd29-a988-bea8-38f97ce1950f" + } + ], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": "CC-PDDC OR BSD-3-Clause", + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": { + "requested_spec": "defaults/noarch::tzdata==2024b=h04d1e81_0[md5=9be694715c6a65f9631bb1b242125e9d]", + "channel": "https://repo.anaconda.com/pkgs/main/noarch", + "extracted_package_dir": "/opt/conda/pkgs/tzdata-2024b-h04d1e81_0", + "files": [ + "share/zoneinfo/Asia/Kolkata", + "share/zoneinfo/tzdata.zi", + "share/zoneinfo/zone.tab" + ], + "package_tarball_full_path": "/opt/conda/pkgs/tzdata-2024b-h04d1e81_0.conda" + }, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "conda_meta_json", + "purl": "pkg:conda/tzdata@2024b" + } +] \ No newline at end of file diff --git a/tests/packagedcode/data/conda/meta-yaml/pippy/meta.yaml-scancode.json b/tests/packagedcode/data/conda/meta-yaml/pippy/meta.yaml-scancode.json index d41b17c4418..d55dac7f9a7 100644 --- a/tests/packagedcode/data/conda/meta-yaml/pippy/meta.yaml-scancode.json +++ b/tests/packagedcode/data/conda/meta-yaml/pippy/meta.yaml-scancode.json @@ -376,7 +376,9 @@ "purl": "pkg:conda/pippy@0.1.0" } ], - "for_packages": [], + "for_packages": [ + "pkg:conda/pippy@0.1.0?uuid=fixed-uid-done-for-testing-5642512d1758" + ], "scan_errors": [] } ] diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/m/mariadb-10.3/stable_copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/m/mariadb-10.3/stable_copyright-detailed.expected.yml index 6f73ed8d2d4..42b3fffe675 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/m/mariadb-10.3/stable_copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/m/mariadb-10.3/stable_copyright-detailed.expected.yml @@ -138,13 +138,13 @@ other_license_expression_spdx: (GPL-2.0-only AND GPL-2.0-only) AND (GPL-2.0-or-l AND GPL-2.0-only) AND (GPL-2.0-only AND GPL-2.0-only) AND (GPL-2.0-only AND GPL-2.0-only) AND (GPL-2.0-only AND GPL-2.0-only) AND (GPL-2.0-only AND GPL-2.0-only) AND (GPL-2.0-only AND GPL-2.0-only) AND (LGPL-2.0-or-later AND LGPL-2.0-only) AND (LGPL-2.0-or-later AND LGPL-2.0-only) - AND LicenseRef-scancode-stlport-4.5 AND LicenseRef-scancode-public-domain AND (GPL-2.0-only - AND GPL-2.0-only) AND ((GPL-2.0-only AND GPL-2.0-only) OR (Artistic-1.0-Perl AND Artistic-1.0-Perl)) - AND LicenseRef-scancode-public-domain AND BSD-3-Clause AND (GPL-2.0-only AND GPL-2.0-only) - AND (GPL-2.0-or-later AND GPL-2.0-or-later) AND (GPL-3.0-or-later AND GPL-3.0-or-later) AND - (LGPL-2.1-or-later AND LGPL-2.1-or-later) AND (GPL-2.0-or-later AND GPL-2.0-or-later) AND - (X11 AND LicenseRef-scancode-public-domain) AND BSD-3-Clause AND (GPL-2.0-only AND GPL-2.0-only) - AND (GPL-2.0-only AND GPL-2.0-only) AND (GPL-2.0-only AND GPL-2.0-only) + AND Boehm-GC-without-fee AND LicenseRef-scancode-public-domain AND (GPL-2.0-only AND GPL-2.0-only) + AND ((GPL-2.0-only AND GPL-2.0-only) OR (Artistic-1.0-Perl AND Artistic-1.0-Perl)) AND LicenseRef-scancode-public-domain + AND BSD-3-Clause AND (GPL-2.0-only AND GPL-2.0-only) AND (GPL-2.0-or-later AND GPL-2.0-or-later) + AND (GPL-3.0-or-later AND GPL-3.0-or-later) AND (LGPL-2.1-or-later AND LGPL-2.1-or-later) + AND (GPL-2.0-or-later AND GPL-2.0-or-later) AND (X11 AND LicenseRef-scancode-public-domain) + AND BSD-3-Clause AND (GPL-2.0-only AND GPL-2.0-only) AND (GPL-2.0-only AND GPL-2.0-only) AND + (GPL-2.0-only AND GPL-2.0-only) license_detections: [] other_license_detections: - license_expression: other-copyleft @@ -304,10 +304,10 @@ other_license_detections: version 2.2 of Bison. identifier: gpl_3_0_plus_with_bison_exception_2_2-637d6c30-89c5-8764-b189-8bb20227ccfc - license_expression: stlport-4.5 - license_expression_spdx: LicenseRef-scancode-stlport-4.5 + license_expression_spdx: Boehm-GC-without-fee matches: - license_expression: stlport-4.5 - license_expression_spdx: LicenseRef-scancode-stlport-4.5 + license_expression_spdx: Boehm-GC-without-fee from_file: start_line: 734 end_line: 741 diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/debianutils/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/debianutils/copyright-detailed.expected.yml index 03e64ded0d4..84f20291d7b 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/debianutils/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/debianutils/copyright-detailed.expected.yml @@ -1,7 +1,7 @@ declared_license: declared_license_expression: (gpl-2.0-plus AND public-domain) AND smail-gpl declared_license_expression_spdx: (GPL-2.0-or-later AND LicenseRef-scancode-public-domain) AND - LicenseRef-scancode-smail-gpl + SMAIL-GPL other_license_expression: other_license_expression_spdx: license_detections: @@ -27,10 +27,10 @@ license_detections: which is in the public domain. identifier: gpl_2_0_plus_and_public_domain-e8510ebe-e9a6-c0d1-ae7e-42280922b32a - license_expression: smail-gpl - license_expression_spdx: LicenseRef-scancode-smail-gpl + license_expression_spdx: SMAIL-GPL matches: - license_expression: smail-gpl - license_expression_spdx: LicenseRef-scancode-smail-gpl + license_expression_spdx: SMAIL-GPL from_file: start_line: 18 end_line: 161 diff --git a/tests/packagedcode/data/npm/pnpm/pnpm-lock/v9/uView-pnpm-lock.yaml-expected b/tests/packagedcode/data/npm/pnpm/pnpm-lock/v9/uView-pnpm-lock.yaml-expected new file mode 100644 index 00000000000..92f17e14479 --- /dev/null +++ b/tests/packagedcode/data/npm/pnpm/pnpm-lock/v9/uView-pnpm-lock.yaml-expected @@ -0,0 +1,2732 @@ +[ + { + "type": "npm", + "namespace": null, + "name": null, + "version": null, + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "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, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": { + "lockfileVersion": "9.0" + }, + "dependencies": [ + { + "purl": "pkg:npm/%40babel/helper-string-parser@7.24.8", + "extracted_requirement": null, + "scope": null, + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "npm", + "namespace": "@babel", + "name": "helper-string-parser", + "version": "7.24.8", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": "a4ef4a86145cb94c869c95b0c848274494d22191e24febcc0f490f783faca3497b9b190c4f5f60de98d8f464e71f249c93f843ceaf9db56ff85609cc922a69b1", + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "pnpm_lock_yaml", + "purl": "pkg:npm/%40babel/helper-string-parser@7.24.8" + }, + "extra_data": { + "engines": { + "node": ">=6.9.0" + } + } + }, + { + "purl": "pkg:npm/%40babel/helper-validator-identifier@7.24.7", + "extracted_requirement": null, + "scope": null, + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "npm", + "namespace": "@babel", + "name": "helper-validator-identifier", + "version": "7.24.7", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": "ad1f8f05c43548c4030f217a5f4c31b46f10c8b0a0501d1e4401a0baa44b7e4080f3b97bc803fb7a1abc48d8fde8e3864cef0e055ef42a1b8561c2241d73a0d3", + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "pnpm_lock_yaml", + "purl": "pkg:npm/%40babel/helper-validator-identifier@7.24.7" + }, + "extra_data": { + "engines": { + "node": ">=6.9.0" + } + } + }, + { + "purl": "pkg:npm/%40babel/parser@7.25.6", + "extracted_requirement": null, + "scope": null, + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "npm", + "namespace": "@babel", + "name": "parser", + "version": "7.25.6", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": "b6b19d7c175b0f497564f99c27cdde37107dadb11ac7800b15317b7cddfce933186de0906f299ee5c3845d085b19729e6f019a07f279db0d66ae494c71b832e9", + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [ + { + "purl": "pkg:npm/%40babel/types", + "extracted_requirement": "7.25.6", + "scope": "dependencies", + "is_runtime": false, + "is_optional": false, + "is_pinned": true, + "is_direct": false, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "pnpm_lock_yaml", + "purl": "pkg:npm/%40babel/parser@7.25.6" + }, + "extra_data": { + "engines": { + "node": ">=6.0.0" + }, + "hasBin": true + } + }, + { + "purl": "pkg:npm/%40babel/types@7.25.6", + "extracted_requirement": null, + "scope": null, + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "npm", + "namespace": "@babel", + "name": "types", + "version": "7.25.6", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": "fe5e36075ab1a46e9175f61fdf8dd4c35be60e378d8677945edce1a2313ba4381fa44ca9991848ea3d64af5ed7095bf80a097d1dd022418db1d06c0a9bbad60b", + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [ + { + "purl": "pkg:npm/%40babel/helper-string-parser", + "extracted_requirement": "7.24.8", + "scope": "dependencies", + "is_runtime": false, + "is_optional": false, + "is_pinned": true, + "is_direct": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:npm/%40babel/helper-validator-identifier", + "extracted_requirement": "7.24.7", + "scope": "dependencies", + "is_runtime": false, + "is_optional": false, + "is_pinned": true, + "is_direct": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:npm/to-fast-properties", + "extracted_requirement": "2.0.0", + "scope": "dependencies", + "is_runtime": false, + "is_optional": false, + "is_pinned": true, + "is_direct": false, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "pnpm_lock_yaml", + "purl": "pkg:npm/%40babel/types@7.25.6" + }, + "extra_data": { + "engines": { + "node": ">=6.9.0" + } + } + }, + { + "purl": "pkg:npm/%40vue/compiler-sfc@2.7.16", + "extracted_requirement": null, + "scope": null, + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "npm", + "namespace": "@vue", + "name": "compiler-sfc", + "version": "2.7.16", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": "296849f64e675ee36dca03d4efeb75ad7e9b6997aa3982c47e8ad43e380d0c19cb89c7c70a88b8f07f3b43c5f22d93ab34db2686ec0aaada434168c415ee8492", + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [ + { + "purl": "pkg:npm/%40babel/parser", + "extracted_requirement": "7.25.6", + "scope": "dependencies", + "is_runtime": false, + "is_optional": false, + "is_pinned": true, + "is_direct": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:npm/postcss", + "extracted_requirement": "8.4.47", + "scope": "dependencies", + "is_runtime": false, + "is_optional": false, + "is_pinned": true, + "is_direct": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:npm/source-map", + "extracted_requirement": "0.6.1", + "scope": "dependencies", + "is_runtime": false, + "is_optional": false, + "is_pinned": true, + "is_direct": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:npm/prettier", + "extracted_requirement": "2.8.8", + "scope": "optionalDependencies", + "is_runtime": false, + "is_optional": true, + "is_pinned": true, + "is_direct": false, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "pnpm_lock_yaml", + "purl": "pkg:npm/%40vue/compiler-sfc@2.7.16" + }, + "extra_data": {} + }, + { + "purl": "pkg:npm/ansi-regex@2.1.1", + "extracted_requirement": null, + "scope": null, + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "npm", + "namespace": null, + "name": "ansi-regex", + "version": "2.1.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": "4c81a74e9768f84dfea42c8096e66fb440f9a79c02a8b75ecc2ca13d9cca3dcc6f169944b788be5bb38e3422a0799153dfecb935965f38e4bf05d71a9e6d4c60", + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "pnpm_lock_yaml", + "purl": "pkg:npm/ansi-regex@2.1.1" + }, + "extra_data": { + "engines": { + "node": ">=0.10.0" + } + } + }, + { + "purl": "pkg:npm/anve-upload-upyun@1.0.8", + "extracted_requirement": null, + "scope": null, + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "npm", + "namespace": null, + "name": "anve-upload-upyun", + "version": "1.0.8", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": "f7fdd37ce64ebd21bdd96588bf1232fa4ce30ff2b4eee3adb0c6e03c41f864cabdf23fd16aba0a452e3cc8299fa242dc9d92cbccd9f29583cf71177a8683746f", + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [ + { + "purl": "pkg:npm/single-line-log", + "extracted_requirement": "1.1.2", + "scope": "dependencies", + "is_runtime": false, + "is_optional": false, + "is_pinned": true, + "is_direct": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:npm/upyun", + "extracted_requirement": "3.4.6", + "scope": "dependencies", + "is_runtime": false, + "is_optional": false, + "is_pinned": true, + "is_direct": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:npm/debug", + "extracted_requirement": null, + "scope": "transitivePeerDependencies", + "is_runtime": false, + "is_optional": false, + "is_pinned": false, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "pnpm_lock_yaml", + "purl": "pkg:npm/anve-upload-upyun@1.0.8" + }, + "extra_data": {} + }, + { + "purl": "pkg:npm/asynckit@0.4.0", + "extracted_requirement": null, + "scope": null, + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "npm", + "namespace": null, + "name": "asynckit", + "version": "0.4.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": "39e8bd387e2d461d18a94dc6c615fbf5d33f9b0560bdb64969235a464f9bb21923d12e5c7c772061a92b7818eb1f06ad5ca6f3f88a087582f1aca8a6d8c8d6d1", + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "pnpm_lock_yaml", + "purl": "pkg:npm/asynckit@0.4.0" + }, + "extra_data": {} + }, + { + "purl": "pkg:npm/axios@0.26.1", + "extracted_requirement": null, + "scope": null, + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "npm", + "namespace": null, + "name": "axios", + "version": "0.26.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": "7cfc1c5f812f9d21ee22708c22d1210069da4845d1063b7387d7ceb6c13a1351baa7bbe5ede7447997b5d501dfd7cfbafbd811e4f6ca57fb0628d683f1868c78", + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [ + { + "purl": "pkg:npm/follow-redirects", + "extracted_requirement": "1.15.9", + "scope": "dependencies", + "is_runtime": false, + "is_optional": false, + "is_pinned": true, + "is_direct": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:npm/debug", + "extracted_requirement": null, + "scope": "transitivePeerDependencies", + "is_runtime": false, + "is_optional": false, + "is_pinned": false, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "pnpm_lock_yaml", + "purl": "pkg:npm/axios@0.26.1" + }, + "extra_data": {} + }, + { + "purl": "pkg:npm/base-64@1.0.0", + "extracted_requirement": null, + "scope": null, + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "npm", + "namespace": null, + "name": "base-64", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": "9300cf205086c743591e8837e9d8feb478b03f840ccec67702031589404a234f95e67e14d2e7d30943219d0d3876269123c117fd070f7ea97bce5859ee3e3382", + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "pnpm_lock_yaml", + "purl": "pkg:npm/base-64@1.0.0" + }, + "extra_data": {} + }, + { + "purl": "pkg:npm/charenc@0.0.2", + "extracted_requirement": null, + "scope": null, + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "npm", + "namespace": null, + "name": "charenc", + "version": "0.0.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": "cab2d0ff255415793383b10342c3e2784ff9dfed1195a593b3ec01aef5b7e9cca2949d9268359f978623eccb4b4d795e57db8429e7db00650fbf6fe2592a2844", + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "pnpm_lock_yaml", + "purl": "pkg:npm/charenc@0.0.2" + }, + "extra_data": {} + }, + { + "purl": "pkg:npm/code-point-at@1.1.0", + "extracted_requirement": null, + "scope": null, + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "npm", + "namespace": null, + "name": "code-point-at", + "version": "1.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": "4690152900394fadf1123ebf82221b504b59c09e1414873766dbc4922694111ca5a9ef316f922fa9c80ebab64b6a1bfddc22ca7f1730e5823e0d9714051c8b5c", + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "pnpm_lock_yaml", + "purl": "pkg:npm/code-point-at@1.1.0" + }, + "extra_data": { + "engines": { + "node": ">=0.10.0" + } + } + }, + { + "purl": "pkg:npm/combined-stream@1.0.8", + "extracted_requirement": null, + "scope": null, + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "npm", + "namespace": null, + "name": "combined-stream", + "version": "1.0.8", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": "1503783117ee25e1dfedc05b04c2455e12920eafb690002b06599106f72f144e410751d9297b5214048385d973f73398c3187c943767be630e7bffb971da0476", + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [ + { + "purl": "pkg:npm/delayed-stream", + "extracted_requirement": "1.0.0", + "scope": "dependencies", + "is_runtime": false, + "is_optional": false, + "is_pinned": true, + "is_direct": false, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "pnpm_lock_yaml", + "purl": "pkg:npm/combined-stream@1.0.8" + }, + "extra_data": { + "engines": { + "node": ">= 0.8" + } + } + }, + { + "purl": "pkg:npm/crypt@0.0.2", + "extracted_requirement": null, + "scope": null, + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "npm", + "namespace": null, + "name": "crypt", + "version": "0.0.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": "982c4196c1c5621f42f8756988469c7a6f051019cc5e053d832e3398d0be497019341ff589d829fdaba5149e058028bb18f1156dfca7834f761aa2f6936ae6a3", + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "pnpm_lock_yaml", + "purl": "pkg:npm/crypt@0.0.2" + }, + "extra_data": {} + }, + { + "purl": "pkg:npm/csstype@3.1.3", + "extracted_requirement": null, + "scope": null, + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "npm", + "namespace": null, + "name": "csstype", + "version": "3.1.3", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": "335b9090c97cad02bfb330f42cd86dab120f2e98a61a6f2c381c14ee52e70a949b4f2637c9e53555cee5e0a4f9cd3e2cff23b11c7e4eeed22eb8b3829cb00347", + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "pnpm_lock_yaml", + "purl": "pkg:npm/csstype@3.1.3" + }, + "extra_data": {} + }, + { + "purl": "pkg:npm/delayed-stream@1.0.0", + "extracted_requirement": null, + "scope": null, + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "npm", + "namespace": null, + "name": "delayed-stream", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": "672483ecd7fdd5a2c1d11c4be0a1ab28705797b11db350c098475ca156b05e72c3ed20e1a4d82db88236680920edaed04b8d63c4f499d7ba7855d1a730793731", + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "pnpm_lock_yaml", + "purl": "pkg:npm/delayed-stream@1.0.0" + }, + "extra_data": { + "engines": { + "node": ">=0.4.0" + } + } + }, + { + "purl": "pkg:npm/follow-redirects@1.15.9", + "extracted_requirement": null, + "scope": null, + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "npm", + "namespace": null, + "name": "follow-redirects", + "version": "1.15.9", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": "81ec381ac5e2ccd81da11caa9b27cc1f20265ec64393a987912c59142cd6f60c256ed396e38083b586af33ecbeef6a83fd5ab6979e7490c179d834fc7ce2c9a9", + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [ + { + "purl": "pkg:npm/debug", + "extracted_requirement": "*", + "scope": "peerDependencies", + "is_runtime": false, + "is_optional": true, + "is_pinned": false, + "is_direct": false, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "pnpm_lock_yaml", + "purl": "pkg:npm/follow-redirects@1.15.9" + }, + "extra_data": { + "engines": { + "node": ">=4.0" + } + } + }, + { + "purl": "pkg:npm/form-data@4.0.0", + "extracted_requirement": null, + "scope": null, + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "npm", + "namespace": null, + "name": "form-data", + "version": "4.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": "1131249521a2e6dd10319ba25e803f43abdc9f170b40fe6f76e812a6e0328ba4951a2d9c94f3e9fb180486e31a1c2fb31a09f7d4a776df95b7e5fec7ca491ac3", + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [ + { + "purl": "pkg:npm/asynckit", + "extracted_requirement": "0.4.0", + "scope": "dependencies", + "is_runtime": false, + "is_optional": false, + "is_pinned": true, + "is_direct": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:npm/combined-stream", + "extracted_requirement": "1.0.8", + "scope": "dependencies", + "is_runtime": false, + "is_optional": false, + "is_pinned": true, + "is_direct": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:npm/mime-types", + "extracted_requirement": "2.1.35", + "scope": "dependencies", + "is_runtime": false, + "is_optional": false, + "is_pinned": true, + "is_direct": false, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "pnpm_lock_yaml", + "purl": "pkg:npm/form-data@4.0.0" + }, + "extra_data": { + "engines": { + "node": ">= 6" + } + } + }, + { + "purl": "pkg:npm/hmacsha1@1.0.0", + "extracted_requirement": null, + "scope": null, + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "npm", + "namespace": null, + "name": "hmacsha1", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": "e053fa274a08f23a9bea02cb97db52c15768b1627f00a48627e1f061fe88c5ee0c51c124b2de2e5b3a5542b34e0a29f47f34d141b5d5f1e3e1794f168a20d807", + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "pnpm_lock_yaml", + "purl": "pkg:npm/hmacsha1@1.0.0" + }, + "extra_data": {} + }, + { + "purl": "pkg:npm/is-buffer@1.1.6", + "extracted_requirement": null, + "scope": null, + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "npm", + "namespace": null, + "name": "is-buffer", + "version": "1.1.6", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": "35c7402f0a579139b966fbdb93ba303944af56f04a0e028fe7f7b07d71339e64057ece194666a739e2814e34558e46b7405a0de9727ef45dd44aa7c7a93694e7", + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "pnpm_lock_yaml", + "purl": "pkg:npm/is-buffer@1.1.6" + }, + "extra_data": {} + }, + { + "purl": "pkg:npm/is-fullwidth-code-point@1.0.0", + "extracted_requirement": null, + "scope": null, + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "npm", + "namespace": null, + "name": "is-fullwidth-code-point", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": "d69a94a918e484f27d9a236af52c0c7ddbe2ea504971de9e171bdf6a2bd085a1f74a08ac7e2bae76f167b5d28e9b1b9e7bfefb97e14f8caad08d6be63e35ab47", + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [ + { + "purl": "pkg:npm/number-is-nan", + "extracted_requirement": "1.0.1", + "scope": "dependencies", + "is_runtime": false, + "is_optional": false, + "is_pinned": true, + "is_direct": false, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "pnpm_lock_yaml", + "purl": "pkg:npm/is-fullwidth-code-point@1.0.0" + }, + "extra_data": { + "engines": { + "node": ">=0.10.0" + } + } + }, + { + "purl": "pkg:npm/is-promise@4.0.0", + "extracted_requirement": null, + "scope": null, + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "npm", + "namespace": null, + "name": "is-promise", + "version": "4.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": "86fa6823a928ae124c9de8f6f3975283a9eed7e7babb1b3bcc6dc16009b96f2a83b2024d5b0c7333acfa8998808104784c9df42660533b0a99530dd69721f701", + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "pnpm_lock_yaml", + "purl": "pkg:npm/is-promise@4.0.0" + }, + "extra_data": {} + }, + { + "purl": "pkg:npm/md5@2.3.0", + "extracted_requirement": null, + "scope": null, + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "npm", + "namespace": null, + "name": "md5", + "version": "2.3.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": "4f51884d898568ab8ef75bf1ca840c1444ecb7e3bbd5550f114df37b918dcc39b439674ff2fd7389368010f52bff790bb18dd27ed833db8d80d527ad4220cbee", + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [ + { + "purl": "pkg:npm/charenc", + "extracted_requirement": "0.0.2", + "scope": "dependencies", + "is_runtime": false, + "is_optional": false, + "is_pinned": true, + "is_direct": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:npm/crypt", + "extracted_requirement": "0.0.2", + "scope": "dependencies", + "is_runtime": false, + "is_optional": false, + "is_pinned": true, + "is_direct": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:npm/is-buffer", + "extracted_requirement": "1.1.6", + "scope": "dependencies", + "is_runtime": false, + "is_optional": false, + "is_pinned": true, + "is_direct": false, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "pnpm_lock_yaml", + "purl": "pkg:npm/md5@2.3.0" + }, + "extra_data": {} + }, + { + "purl": "pkg:npm/mime-db@1.52.0", + "extracted_requirement": null, + "scope": null, + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "npm", + "namespace": null, + "name": "mime-db", + "version": "1.52.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": "b0f538b95edd625bed589c70c311c3d0fba285536213b4f201b439496c43081f66518bce82ba103b061040e28f27c0886c4fb51135653a82b5502da7537818be", + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "pnpm_lock_yaml", + "purl": "pkg:npm/mime-db@1.52.0" + }, + "extra_data": { + "engines": { + "node": ">= 0.6" + } + } + }, + { + "purl": "pkg:npm/mime-types@2.1.35", + "extracted_requirement": null, + "scope": null, + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "npm", + "namespace": null, + "name": "mime-types", + "version": "2.1.35", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": "64363e6cf9b9cd34c5f98a42ac053d9cad148080983d3d10b53d4d65616fe2cfbe4cd91c815693d20ebee11dae238323423cf2b07075cf1b962f9d21cda7978b", + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [ + { + "purl": "pkg:npm/mime-db", + "extracted_requirement": "1.52.0", + "scope": "dependencies", + "is_runtime": false, + "is_optional": false, + "is_pinned": true, + "is_direct": false, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "pnpm_lock_yaml", + "purl": "pkg:npm/mime-types@2.1.35" + }, + "extra_data": { + "engines": { + "node": ">= 0.6" + } + } + }, + { + "purl": "pkg:npm/nanoid@3.3.7", + "extracted_requirement": null, + "scope": null, + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "npm", + "namespace": null, + "name": "nanoid", + "version": "3.3.7", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": "792469a6370f21ab5120c0b553a52780ff1715ccfc31058641db75313050ecd6809af5c37ef3716ef595df1db2e8274451c8824ac0c70d065b858681f10128da", + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "pnpm_lock_yaml", + "purl": "pkg:npm/nanoid@3.3.7" + }, + "extra_data": { + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + }, + "hasBin": true + } + }, + { + "purl": "pkg:npm/number-is-nan@1.0.1", + "extracted_requirement": null, + "scope": null, + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "npm", + "namespace": null, + "name": "number-is-nan", + "version": "1.0.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": "e236ed657340b1f65b0078a2aa32cf0620a5d7a7444b5cc8e07a73cf1c3ad5393e96817eb010c12b1d4808a28ac08a90eccd26167d539a437b7ae4a771680789", + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "pnpm_lock_yaml", + "purl": "pkg:npm/number-is-nan@1.0.1" + }, + "extra_data": { + "engines": { + "node": ">=0.10.0" + } + } + }, + { + "purl": "pkg:npm/picocolors@1.1.0", + "extracted_requirement": null, + "scope": null, + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "npm", + "namespace": null, + "name": "picocolors", + "version": "1.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": "4d0f76981396d25dcb78c7b22d5ea6cf2fe45abf2591dfe1a7799383bc182bbcc986e052b6618c046d0175e0d94bf759c7522e91a5fa064d75cdc967db9a3503", + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "pnpm_lock_yaml", + "purl": "pkg:npm/picocolors@1.1.0" + }, + "extra_data": {} + }, + { + "purl": "pkg:npm/postcss@8.4.47", + "extracted_requirement": null, + "scope": null, + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "npm", + "namespace": null, + "name": "postcss", + "version": "8.4.47", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": "e7aaf10aaec6fd77c1e04917abd1209f9182aae816bc316369f0ce4e121d301b08d798aa3ea479af5e537d2af560f61e108d7d61e6973026d8eaef3c63be862d", + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [ + { + "purl": "pkg:npm/nanoid", + "extracted_requirement": "3.3.7", + "scope": "dependencies", + "is_runtime": false, + "is_optional": false, + "is_pinned": true, + "is_direct": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:npm/picocolors", + "extracted_requirement": "1.1.0", + "scope": "dependencies", + "is_runtime": false, + "is_optional": false, + "is_pinned": true, + "is_direct": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:npm/source-map-js", + "extracted_requirement": "1.2.1", + "scope": "dependencies", + "is_runtime": false, + "is_optional": false, + "is_pinned": true, + "is_direct": false, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "pnpm_lock_yaml", + "purl": "pkg:npm/postcss@8.4.47" + }, + "extra_data": { + "engines": { + "node": "^10 || ^12 || >=14" + } + } + }, + { + "purl": "pkg:npm/prettier@2.8.8", + "extracted_requirement": null, + "scope": null, + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "npm", + "namespace": null, + "name": "prettier", + "version": "2.8.8", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": "b5d37ca901af363c380876d8f975e4d098025e7f50885db56b9e6b05ee4b24053e903c82e16427e3e6b09b65df936950324e5f2aea7d5e0cd366d1a48c174ff5", + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "pnpm_lock_yaml", + "purl": "pkg:npm/prettier@2.8.8" + }, + "extra_data": { + "engines": { + "node": ">=10.13.0" + }, + "hasBin": true + } + }, + { + "purl": "pkg:npm/single-line-log@1.1.2", + "extracted_requirement": null, + "scope": null, + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "npm", + "namespace": null, + "name": "single-line-log", + "version": "1.1.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": "6b0cda6883ed60575ec4bafa4c1a5c65218f07a0f54489cd3bfa8d7ad81a265a0f0c5fc3d06915b4bbc6129f089df98b57b0b22f24397c844ffad54dfc999640", + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [ + { + "purl": "pkg:npm/string-width", + "extracted_requirement": "1.0.2", + "scope": "dependencies", + "is_runtime": false, + "is_optional": false, + "is_pinned": true, + "is_direct": false, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "pnpm_lock_yaml", + "purl": "pkg:npm/single-line-log@1.1.2" + }, + "extra_data": {} + }, + { + "purl": "pkg:npm/source-map-js@1.2.1", + "extracted_requirement": null, + "scope": null, + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "npm", + "namespace": null, + "name": "source-map-js", + "version": "1.2.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": "51758c2a12cec1529bef6f0852d40f5f17d853ebac7726ed52b2bff2e184f0240cbeb84ea70bf30c1c23d108522fb31073bbc8b084811bc550f3e203431a5f40", + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "pnpm_lock_yaml", + "purl": "pkg:npm/source-map-js@1.2.1" + }, + "extra_data": { + "engines": { + "node": ">=0.10.0" + } + } + }, + { + "purl": "pkg:npm/source-map@0.6.1", + "extracted_requirement": null, + "scope": null, + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "npm", + "namespace": null, + "name": "source-map", + "version": "0.6.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": "52381aa6e99695b3219018334fb624739617513e3a17488abbc4865ead1b7303f9773fe1d0f963e9e9c9aa3cf565bab697959aa989eb55bc16396332177178ee", + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "pnpm_lock_yaml", + "purl": "pkg:npm/source-map@0.6.1" + }, + "extra_data": { + "engines": { + "node": ">=0.10.0" + } + } + }, + { + "purl": "pkg:npm/string-width@1.0.2", + "extracted_requirement": null, + "scope": null, + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "npm", + "namespace": null, + "name": "string-width", + "version": "1.0.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": "d17b15a502e75425c725fc84b3cb42d33a53548af93ca2ac42d913dbd230ba99cf4e3b4f990df14ffe32091105f6162457fdccde4cdc513480653e9aea1f35b7", + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [ + { + "purl": "pkg:npm/code-point-at", + "extracted_requirement": "1.1.0", + "scope": "dependencies", + "is_runtime": false, + "is_optional": false, + "is_pinned": true, + "is_direct": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:npm/is-fullwidth-code-point", + "extracted_requirement": "1.0.0", + "scope": "dependencies", + "is_runtime": false, + "is_optional": false, + "is_pinned": true, + "is_direct": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:npm/strip-ansi", + "extracted_requirement": "3.0.1", + "scope": "dependencies", + "is_runtime": false, + "is_optional": false, + "is_pinned": true, + "is_direct": false, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "pnpm_lock_yaml", + "purl": "pkg:npm/string-width@1.0.2" + }, + "extra_data": { + "engines": { + "node": ">=0.10.0" + } + } + }, + { + "purl": "pkg:npm/strip-ansi@3.0.1", + "extracted_requirement": null, + "scope": null, + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "npm", + "namespace": null, + "name": "strip-ansi", + "version": "3.0.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": "561ba64926c1a834cff29d992ca8f8d148c1095e3ebfc6d4484a546f82a34605a4f696ea185e111058fa2846a089d6f67ff33a0330b41261720cd19ac3d382ce", + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [ + { + "purl": "pkg:npm/ansi-regex", + "extracted_requirement": "2.1.1", + "scope": "dependencies", + "is_runtime": false, + "is_optional": false, + "is_pinned": true, + "is_direct": false, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "pnpm_lock_yaml", + "purl": "pkg:npm/strip-ansi@3.0.1" + }, + "extra_data": { + "engines": { + "node": ">=0.10.0" + } + } + }, + { + "purl": "pkg:npm/to-fast-properties@2.0.0", + "extracted_requirement": null, + "scope": null, + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "npm", + "namespace": null, + "name": "to-fast-properties", + "version": "2.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": "fce68a2b4c58aecdc39b1458a8bff20dcf85c455156210e55cc8519afdf3f75e70d87175b67375a26077e788fc55418efe16d1cf20fa637b00eefec64bf71ea2", + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "pnpm_lock_yaml", + "purl": "pkg:npm/to-fast-properties@2.0.0" + }, + "extra_data": { + "engines": { + "node": ">=4" + } + } + }, + { + "purl": "pkg:npm/upyun@3.4.6", + "extracted_requirement": null, + "scope": null, + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "npm", + "namespace": null, + "name": "upyun", + "version": "3.4.6", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": "4e1008ef0a0691513696c3aaf0c1586f439e83c6af39041b6375e65e66aad5a6558f372095c32e23f448981aeaf8a270ee75f7f6234a089298b3ae71880179dd", + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [ + { + "purl": "pkg:npm/axios", + "extracted_requirement": "0.26.1", + "scope": "dependencies", + "is_runtime": false, + "is_optional": false, + "is_pinned": true, + "is_direct": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:npm/base-64", + "extracted_requirement": "1.0.0", + "scope": "dependencies", + "is_runtime": false, + "is_optional": false, + "is_pinned": true, + "is_direct": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:npm/form-data", + "extracted_requirement": "4.0.0", + "scope": "dependencies", + "is_runtime": false, + "is_optional": false, + "is_pinned": true, + "is_direct": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:npm/hmacsha1", + "extracted_requirement": "1.0.0", + "scope": "dependencies", + "is_runtime": false, + "is_optional": false, + "is_pinned": true, + "is_direct": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:npm/is-promise", + "extracted_requirement": "4.0.0", + "scope": "dependencies", + "is_runtime": false, + "is_optional": false, + "is_pinned": true, + "is_direct": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:npm/md5", + "extracted_requirement": "2.3.0", + "scope": "dependencies", + "is_runtime": false, + "is_optional": false, + "is_pinned": true, + "is_direct": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:npm/mime-types", + "extracted_requirement": "2.1.35", + "scope": "dependencies", + "is_runtime": false, + "is_optional": false, + "is_pinned": true, + "is_direct": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:npm/debug", + "extracted_requirement": null, + "scope": "transitivePeerDependencies", + "is_runtime": false, + "is_optional": false, + "is_pinned": false, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "pnpm_lock_yaml", + "purl": "pkg:npm/upyun@3.4.6" + }, + "extra_data": { + "engines": { + "node": ">=8.0.0" + } + } + }, + { + "purl": "pkg:npm/vue-i18n@8.28.2", + "extracted_requirement": null, + "scope": null, + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "npm", + "namespace": null, + "name": "vue-i18n", + "version": "8.28.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": "0b91998ecd6d62502a8f0ca669a08f0e30b21a8d746a3529862c00f76da32adf67eca3e9a91ee83353c2c18ce107f13bfa74f7c1f746de846b7b9ada213d6b28", + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [ + { + "purl": "pkg:npm/vue", + "extracted_requirement": "^2", + "scope": "peerDependencies", + "is_runtime": false, + "is_optional": true, + "is_pinned": true, + "is_direct": false, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "pnpm_lock_yaml", + "purl": "pkg:npm/vue-i18n@8.28.2" + }, + "extra_data": {} + }, + { + "purl": "pkg:npm/vue@2.7.16", + "extracted_requirement": null, + "scope": null, + "is_runtime": true, + "is_optional": false, + "is_pinned": true, + "is_direct": true, + "resolved_package": { + "type": "npm", + "namespace": null, + "name": "vue", + "version": "2.7.16", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": "e200ad157680037cd865d4e9e6ce07976b28ceec92b20cf88f2d449e904735fa4c6bd74ad59086eef8aa04f0b05ed9a073c9c7a94b00bb71b882d9979246374b", + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [ + { + "purl": "pkg:npm/%40vue/compiler-sfc", + "extracted_requirement": "2.7.16", + "scope": "dependencies", + "is_runtime": false, + "is_optional": false, + "is_pinned": true, + "is_direct": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:npm/csstype", + "extracted_requirement": "3.1.3", + "scope": "dependencies", + "is_runtime": false, + "is_optional": false, + "is_pinned": true, + "is_direct": false, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "pnpm_lock_yaml", + "purl": "pkg:npm/vue@2.7.16" + }, + "extra_data": { + "deprecated": "Vue 2 has reached EOL and is no longer actively maintained. See https://v2.vuejs.org/eol/ for more details." + } + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "pnpm_lock_yaml", + "purl": null + } +] \ No newline at end of file diff --git a/tests/packagedcode/data/npm/pnpm/pnpm-lock/v9/uView/package.json b/tests/packagedcode/data/npm/pnpm/pnpm-lock/v9/uView/package.json new file mode 100644 index 00000000000..f083400f2b1 --- /dev/null +++ b/tests/packagedcode/data/npm/pnpm/pnpm-lock/v9/uView/package.json @@ -0,0 +1,21 @@ +{ + "name": "uview1.0", + "version": "1.0.0", + "main": "main.js", + "repository": { + "type": "git", + "url": "git+https://github.com/YanxinNet/uView.git" + }, + "keywords": [], + "author": "", + "license": "ISC", + "bugs": { + "url": "https://github.com/YanxinNet/uView/issues" + }, + "homepage": "https://github.com/YanxinNet/uView#readme", + "dependencies": { + "vue-i18n": "^8.20.0", + "anve-upload-upyun": "^1.0.8" + } + } + \ No newline at end of file diff --git a/tests/packagedcode/data/npm/pnpm/pnpm-lock/v9/uView/pnpm-lock.yaml b/tests/packagedcode/data/npm/pnpm/pnpm-lock/v9/uView/pnpm-lock.yaml new file mode 100644 index 00000000000..01fcbbffeda --- /dev/null +++ b/tests/packagedcode/data/npm/pnpm/pnpm-lock/v9/uView/pnpm-lock.yaml @@ -0,0 +1,312 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + anve-upload-upyun: + specifier: ^1.0.8 + version: 1.0.8 + vue-i18n: + specifier: ^8.20.0 + version: 8.28.2(vue@2.7.16) + +packages: + + '@babel/helper-string-parser@7.24.8': + resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.24.7': + resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.25.6': + resolution: {integrity: sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/types@7.25.6': + resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==} + engines: {node: '>=6.9.0'} + + '@vue/compiler-sfc@2.7.16': + resolution: {integrity: sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==} + + ansi-regex@2.1.1: + resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} + engines: {node: '>=0.10.0'} + + anve-upload-upyun@1.0.8: + resolution: {integrity: sha512-9/3TfOZOvSG92WWIvxIy+kzjD/K07uOtsMbgPEH4ZMq98j/RaroKRS48yCmfokLcnZLLzNnylYPPcRd6hoN0bw==} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + axios@0.26.1: + resolution: {integrity: sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==} + + base-64@1.0.0: + resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==} + + charenc@0.0.2: + resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==} + + code-point-at@1.1.0: + resolution: {integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==} + engines: {node: '>=0.10.0'} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + crypt@0.0.2: + resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==} + + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + follow-redirects@1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + + hmacsha1@1.0.0: + resolution: {integrity: sha512-4FP6J0oI8jqb6gLLl9tSwVdosWJ/AKSGJ+HwYf6Ixe4MUcEkst4uWzpVQrNOCin0fzTRQbXV8ePheU8WiiDYBw==} + + is-buffer@1.1.6: + resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} + + is-fullwidth-code-point@1.0.0: + resolution: {integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==} + engines: {node: '>=0.10.0'} + + is-promise@4.0.0: + resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} + + md5@2.3.0: + resolution: {integrity: sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + number-is-nan@1.0.1: + resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==} + engines: {node: '>=0.10.0'} + + picocolors@1.1.0: + resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} + + postcss@8.4.47: + resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} + engines: {node: ^10 || ^12 || >=14} + + prettier@2.8.8: + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: '>=10.13.0'} + hasBin: true + + single-line-log@1.1.2: + resolution: {integrity: sha512-awzaaIPtYFdexLr6TBpcZSGPB6D1RInNO/qNetgaJloPDF/D0GkVtLvGEp8InfmLV7CyLyQ5fIRP+tVN/JmWQA==} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + string-width@1.0.2: + resolution: {integrity: sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==} + engines: {node: '>=0.10.0'} + + strip-ansi@3.0.1: + resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} + engines: {node: '>=0.10.0'} + + to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + + upyun@3.4.6: + resolution: {integrity: sha512-ThAI7woGkVE2lsOq8MFYb0Oeg8avOQQbY3XmXmaq1aZVjzcglcMuI/RImBrq+KJw7nX39iNKCJKYs65xiAF53Q==} + engines: {node: '>=8.0.0'} + + vue-i18n@8.28.2: + resolution: {integrity: sha512-C5GZjs1tYlAqjwymaaCPDjCyGo10ajUphiwA922jKt9n7KPpqR7oM1PCwYzhB/E7+nT3wfdG3oRre5raIT1rKA==} + peerDependencies: + vue: ^2 + + vue@2.7.16: + resolution: {integrity: sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw==} + deprecated: Vue 2 has reached EOL and is no longer actively maintained. See https://v2.vuejs.org/eol/ for more details. + +snapshots: + + '@babel/helper-string-parser@7.24.8': {} + + '@babel/helper-validator-identifier@7.24.7': {} + + '@babel/parser@7.25.6': + dependencies: + '@babel/types': 7.25.6 + + '@babel/types@7.25.6': + dependencies: + '@babel/helper-string-parser': 7.24.8 + '@babel/helper-validator-identifier': 7.24.7 + to-fast-properties: 2.0.0 + + '@vue/compiler-sfc@2.7.16': + dependencies: + '@babel/parser': 7.25.6 + postcss: 8.4.47 + source-map: 0.6.1 + optionalDependencies: + prettier: 2.8.8 + + ansi-regex@2.1.1: {} + + anve-upload-upyun@1.0.8: + dependencies: + single-line-log: 1.1.2 + upyun: 3.4.6 + transitivePeerDependencies: + - debug + + asynckit@0.4.0: {} + + axios@0.26.1: + dependencies: + follow-redirects: 1.15.9 + transitivePeerDependencies: + - debug + + base-64@1.0.0: {} + + charenc@0.0.2: {} + + code-point-at@1.1.0: {} + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + crypt@0.0.2: {} + + csstype@3.1.3: {} + + delayed-stream@1.0.0: {} + + follow-redirects@1.15.9: {} + + form-data@4.0.0: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + + hmacsha1@1.0.0: {} + + is-buffer@1.1.6: {} + + is-fullwidth-code-point@1.0.0: + dependencies: + number-is-nan: 1.0.1 + + is-promise@4.0.0: {} + + md5@2.3.0: + dependencies: + charenc: 0.0.2 + crypt: 0.0.2 + is-buffer: 1.1.6 + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + nanoid@3.3.7: {} + + number-is-nan@1.0.1: {} + + picocolors@1.1.0: {} + + postcss@8.4.47: + dependencies: + nanoid: 3.3.7 + picocolors: 1.1.0 + source-map-js: 1.2.1 + + prettier@2.8.8: + optional: true + + single-line-log@1.1.2: + dependencies: + string-width: 1.0.2 + + source-map-js@1.2.1: {} + + source-map@0.6.1: {} + + string-width@1.0.2: + dependencies: + code-point-at: 1.1.0 + is-fullwidth-code-point: 1.0.0 + strip-ansi: 3.0.1 + + strip-ansi@3.0.1: + dependencies: + ansi-regex: 2.1.1 + + to-fast-properties@2.0.0: {} + + upyun@3.4.6: + dependencies: + axios: 0.26.1 + base-64: 1.0.0 + form-data: 4.0.0 + hmacsha1: 1.0.0 + is-promise: 4.0.0 + md5: 2.3.0 + mime-types: 2.1.35 + transitivePeerDependencies: + - debug + + vue-i18n@8.28.2(vue@2.7.16): + dependencies: + vue: 2.7.16 + + vue@2.7.16: + dependencies: + '@vue/compiler-sfc': 2.7.16 + csstype: 3.1.3 diff --git a/tests/packagedcode/data/npm/workspace/teleport/check-redirects-expected.json b/tests/packagedcode/data/npm/workspace/teleport/check-redirects-expected.json new file mode 100644 index 00000000000..aeffce08c46 --- /dev/null +++ b/tests/packagedcode/data/npm/workspace/teleport/check-redirects-expected.json @@ -0,0 +1,364 @@ +{ + "packages": [ + { + "type": "npm", + "namespace": null, + "name": "check-redirects", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.npmjs.org/check-redirects/-/check-redirects-1.0.0.tgz", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "is_private": false, + "is_virtual": false, + "extra_data": { + "packageManager": "pnpm@9.8.0" + }, + "repository_homepage_url": "https://www.npmjs.com/package/check-redirects", + "repository_download_url": "https://registry.npmjs.org/check-redirects/-/check-redirects-1.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/check-redirects/1.0.0", + "package_uid": "pkg:npm/check-redirects@1.0.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_paths": [ + "check-redirects/package.json" + ], + "datasource_ids": [ + "npm_package_json" + ], + "purl": "pkg:npm/check-redirects@1.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "check-redirects", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.npmjs.org/check-redirects/-/check-redirects-1.0.0.tgz", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "is_private": false, + "is_virtual": false, + "extra_data": { + "packageManager": "pnpm@9.8.0" + }, + "repository_homepage_url": "https://www.npmjs.com/package/check-redirects", + "repository_download_url": "https://registry.npmjs.org/check-redirects/-/check-redirects-1.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/check-redirects/1.0.0", + "package_uid": "pkg:npm/check-redirects@1.0.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_paths": [ + "check-redirects/package.json" + ], + "datasource_ids": [ + "npm_package_json" + ], + "purl": "pkg:npm/check-redirects@1.0.0" + } + ], + "dependencies": [ + { + "purl": "pkg:npm/yargs", + "extracted_requirement": "^17.7.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_pinned": false, + "is_direct": true, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:npm/yargs?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:npm/check-redirects@1.0.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "check-redirects/package.json", + "datasource_id": "npm_package_json" + }, + { + "purl": "pkg:npm/jest", + "extracted_requirement": "^29.7.0", + "scope": "devDependencies", + "is_runtime": false, + "is_optional": true, + "is_pinned": false, + "is_direct": true, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:npm/jest?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:npm/check-redirects@1.0.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "check-redirects/package.json", + "datasource_id": "npm_package_json" + }, + { + "purl": "pkg:npm/memfs", + "extracted_requirement": "^4.11.1", + "scope": "devDependencies", + "is_runtime": false, + "is_optional": true, + "is_pinned": false, + "is_direct": true, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:npm/memfs?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:npm/check-redirects@1.0.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "check-redirects/package.json", + "datasource_id": "npm_package_json" + }, + { + "purl": "pkg:npm/yargs", + "extracted_requirement": "^17.7.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_pinned": false, + "is_direct": true, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:npm/yargs?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:npm/check-redirects@1.0.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "check-redirects/package.json", + "datasource_id": "npm_package_json" + }, + { + "purl": "pkg:npm/jest", + "extracted_requirement": "^29.7.0", + "scope": "devDependencies", + "is_runtime": false, + "is_optional": true, + "is_pinned": false, + "is_direct": true, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:npm/jest?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:npm/check-redirects@1.0.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "check-redirects/package.json", + "datasource_id": "npm_package_json" + }, + { + "purl": "pkg:npm/memfs", + "extracted_requirement": "^4.11.1", + "scope": "devDependencies", + "is_runtime": false, + "is_optional": true, + "is_pinned": false, + "is_direct": true, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:npm/memfs?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:npm/check-redirects@1.0.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "check-redirects/package.json", + "datasource_id": "npm_package_json" + } + ], + "files": [ + { + "path": "check-redirects", + "type": "directory", + "package_data": [], + "for_packages": [ + "pkg:npm/check-redirects@1.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "check-redirects/check-redirects.js", + "type": "file", + "package_data": [], + "for_packages": [ + "pkg:npm/check-redirects@1.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "check-redirects/package.json", + "type": "file", + "package_data": [ + { + "type": "npm", + "namespace": null, + "name": "check-redirects", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.npmjs.org/check-redirects/-/check-redirects-1.0.0.tgz", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": { + "packageManager": "pnpm@9.8.0" + }, + "dependencies": [ + { + "purl": "pkg:npm/yargs", + "extracted_requirement": "^17.7.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_pinned": false, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:npm/jest", + "extracted_requirement": "^29.7.0", + "scope": "devDependencies", + "is_runtime": false, + "is_optional": true, + "is_pinned": false, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:npm/memfs", + "extracted_requirement": "^4.11.1", + "scope": "devDependencies", + "is_runtime": false, + "is_optional": true, + "is_pinned": false, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": "https://www.npmjs.com/package/check-redirects", + "repository_download_url": "https://registry.npmjs.org/check-redirects/-/check-redirects-1.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/check-redirects/1.0.0", + "datasource_id": "npm_package_json", + "purl": "pkg:npm/check-redirects@1.0.0" + } + ], + "for_packages": [ + "pkg:npm/check-redirects@1.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "check-redirects/pnpm-workspace.yaml", + "type": "file", + "package_data": [ + { + "type": "npm", + "namespace": null, + "name": null, + "version": null, + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "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, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": { + "workspaces": [ + "**" + ] + }, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "pnpm_workspace_yaml", + "purl": null + } + ], + "for_packages": [ + "pkg:npm/check-redirects@1.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + } + ] +} \ No newline at end of file diff --git a/tests/packagedcode/data/npm/workspace/teleport/check-redirects/check-redirects.js b/tests/packagedcode/data/npm/workspace/teleport/check-redirects/check-redirects.js new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/packagedcode/data/npm/workspace/teleport/check-redirects/package.json b/tests/packagedcode/data/npm/workspace/teleport/check-redirects/package.json new file mode 100644 index 00000000000..5b2ded3cd28 --- /dev/null +++ b/tests/packagedcode/data/npm/workspace/teleport/check-redirects/package.json @@ -0,0 +1,18 @@ +{ + "name": "check-redirects", + "version": "1.0.0", + "type": "module", + "scripts": { + "check-redirects": "node index.js", + "test": "NODE_OPTIONS=--experimental-vm-modules jest" + }, + "dependencies": { + "yargs": "^17.7.2" + }, + "devDependencies": { + "jest": "^29.7.0", + "memfs": "^4.11.1" + }, + "packageManager": "pnpm@9.8.0" + } + \ No newline at end of file diff --git a/tests/packagedcode/data/npm/workspace/teleport/check-redirects/pnpm-workspace.yaml b/tests/packagedcode/data/npm/workspace/teleport/check-redirects/pnpm-workspace.yaml new file mode 100644 index 00000000000..5ff223a40e7 --- /dev/null +++ b/tests/packagedcode/data/npm/workspace/teleport/check-redirects/pnpm-workspace.yaml @@ -0,0 +1,3 @@ +# https://github.com/pnpm/pnpm/issues/2412 +packages: + - "**" diff --git a/tests/packagedcode/data/plugin/plugins_list_linux.txt b/tests/packagedcode/data/plugin/plugins_list_linux.txt index 33886e87222..e24512dfd91 100755 --- a/tests/packagedcode/data/plugin/plugins_list_linux.txt +++ b/tests/packagedcode/data/plugin/plugins_list_linux.txt @@ -195,6 +195,13 @@ Package type: conan description: conan recipe path_patterns: '*/conanfile.py' -------------------------------------------- +Package type: conda + datasource_id: conda_meta_json + documentation URL: https://docs.conda.io/ + primary language: Python + description: Conda metadata JSON in rootfs + path_patterns: '*conda-meta/*.json' +-------------------------------------------- Package type: conda datasource_id: conda_meta_yaml documentation URL: https://docs.conda.io/ diff --git a/tests/packagedcode/test_conda.py b/tests/packagedcode/test_conda.py index f6998485f10..c15008bea74 100644 --- a/tests/packagedcode/test_conda.py +++ b/tests/packagedcode/test_conda.py @@ -7,6 +7,7 @@ # See https://aboutcode.org for more information about nexB OSS projects. # +import attr import os from commoncode.resource import Codebase @@ -119,3 +120,53 @@ def test_parse_conda_yaml_does_not_fail_on_test_files_with_port(self): package = conda.CondaYamlHandler.parse(test_file) expected_loc = self.get_test_loc('conda/conda-yaml/test/environment_host_port.yml-expected.json') self.check_packages_data(package, expected_loc, regen=REGEN_TEST_FIXTURES) + + def test_conda_get_conda_meta_json(self): + meta_yaml_path = 'conda/pkgs/requests-2.32.3-py312h06a4308_1/info/recipe/meta.yaml' + conda_meta_json_path = 'conda/conda-meta/requests-2.32.3-py312h06a4308_1.json' + + test_dir = self.get_test_loc('conda/assembly/opt/conda/') + resource_attributes = dict(package_data=attr.ib(default=attr.Factory(list), repr=False),) + codebase = Codebase(location=test_dir, resource_attributes=resource_attributes) + + package_data = [{'name': 'requests', 'version':'2.32.3'}] + meta_yaml_resource = codebase.get_resource(path=meta_yaml_path) + setattr(meta_yaml_resource, 'package_data', package_data) + codebase.save_resource(meta_yaml_resource) + conda_meta_json_resource = codebase.get_resource(path=conda_meta_json_path) + setattr(conda_meta_json_resource, 'package_data', package_data) + codebase.save_resource(conda_meta_json_resource) + + meta_json = conda.CondaBaseHandler.find_conda_meta_json_resource(meta_yaml_resource, codebase) + assert meta_json.path == conda_meta_json_path + + meta_yaml = conda.CondaBaseHandler.find_conda_meta_yaml_resource(conda_meta_json_resource, codebase) + assert meta_yaml.path == meta_yaml_path + + def test_conda_pkgs_meta_yaml_root_dir(self): + meta_yaml_path = 'conda/pkgs/requests-2.32.3-py312h06a4308_1/info/recipe/meta.yaml' + root_path = 'conda/pkgs/requests-2.32.3-py312h06a4308_1' + test_dir = self.get_test_loc('conda/assembly/opt/conda/') + codebase = Codebase(test_dir) + resource = codebase.get_resource(path=meta_yaml_path) + proot = conda.CondaMetaYamlHandler.get_conda_root(resource, codebase) + assert proot.path == root_path + + def test_parse_is_datafile_conda_meta_package_with_files(self): + test_file = self.get_test_loc('conda/conda-meta/tzdata-2024b-h04d1e81_0.json') + assert conda.CondaMetaJsonHandler.is_datafile(test_file) + + def test_parse_conda_meta_package_with_files(self): + test_file = self.get_test_loc('conda/conda-meta/tzdata-2024b-h04d1e81_0.json') + package = conda.CondaMetaJsonHandler.parse(test_file) + expected_loc = self.get_test_loc('conda/conda-meta/tzdata-expected.json') + self.check_packages_data(package, expected_loc, regen=REGEN_TEST_FIXTURES) + + def test_parse_conda_meta_yaml_conda_meta_assemble_from_rootfs(self): + test_location = self.get_test_loc('conda/assembly/') + result_file = self.get_temp_file('results.json') + run_scan_click(['--package', test_location, '--json', result_file]) + expected_file = self.get_test_loc('conda/assembly-conda-scan.json') + check_json_scan( + expected_file, result_file, remove_uuid=True, regen=REGEN_TEST_FIXTURES + ) diff --git a/tests/packagedcode/test_npm.py b/tests/packagedcode/test_npm.py index 2e5d5e4f336..ea4b78ed413 100644 --- a/tests/packagedcode/test_npm.py +++ b/tests/packagedcode/test_npm.py @@ -394,6 +394,12 @@ def test_parse_pnpm_lock_yaml_v6(self): packages = npm.PnpmLockYamlHandler.parse(test_file) self.check_packages_data(packages, expected_loc, regen=REGEN_TEST_FIXTURES) + def test_parse_pnpm_lock_yaml_v9(self): + test_file = self.get_test_loc('npm/pnpm/pnpm-lock/v9/uView/pnpm-lock.yaml') + expected_loc = self.get_test_loc('npm/pnpm/pnpm-lock/v9/uView-pnpm-lock.yaml-expected') + packages = npm.PnpmLockYamlHandler.parse(test_file) + self.check_packages_data(packages, expected_loc, regen=REGEN_TEST_FIXTURES) + def test_parse_pnpm_shrinkwrap_yaml(self): test_file = self.get_test_loc('npm/pnpm/shrinkwrap/v3/vuepack/shrinkwrap.yaml') expected_loc = self.get_test_loc('npm/pnpm/shrinkwrap/v3/vuepack-shrinkwrap.yaml-expected') @@ -415,6 +421,15 @@ def test_pnpm_scan_with_workspace_package_json(self): expected_file, result_file, remove_uuid=True, regen=REGEN_TEST_FIXTURES ) + def test_pnpm_scan_with_patterns_in_workspace(self): + test_folder = self.get_test_loc('npm/workspace/teleport/check-redirects/') + expected_file = self.get_test_loc('npm/workspace/teleport/check-redirects-expected.json') + result_file = self.get_temp_file('results.json') + run_scan_click(['--package', test_folder, '--json', result_file]) + check_json_scan( + expected_file, result_file, remove_uuid=True, regen=REGEN_TEST_FIXTURES + ) + def test_pnpm_scan_with_simple_package_json(self): test_folder = self.get_test_loc('npm/pnpm/pnpm-lock/v6/tabler/') expected_file = self.get_test_loc('npm/pnpm/pnpm-lock/v6/tabler-scan.expected.json')