From 3c1dbe17a8b0769854fb14ab7b023129104ec04a Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Thu, 19 Oct 2006 20:27:28 +0200 Subject: [PATCH 001/709] [svn] Name change, round 4 (rename SVN root folder). --- AUTHORS | 5 +++++ LICENSE | 16 ++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 AUTHORS create mode 100644 LICENSE diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 00000000000..aa4085e3d02 --- /dev/null +++ b/AUTHORS @@ -0,0 +1,5 @@ +Pygments is written and maintained by Georg Brandl . + +Other major contributors are: + - Armin Ronacher + diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000000..76f95fdcb38 --- /dev/null +++ b/LICENSE @@ -0,0 +1,16 @@ +Pygments - Python syntax highlighting package +Copyright (C) 2006 by the respective authors (see AUTHORS) + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA From 943780cfefa06fefe6730012c8b9c22aed328955 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Mon, 30 Oct 2006 11:29:34 +0100 Subject: [PATCH 002/709] [svn] Release preparation. --- AUTHORS | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/AUTHORS b/AUTHORS index aa4085e3d02..66cd81b537c 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,5 +1,6 @@ -Pygments is written and maintained by Georg Brandl . - -Other major contributors are: - - Armin Ronacher - +Pygments is written and maintained by Georg Brandl . + +Other contributors (as mentionend in :copyright:s) are: + - Armin Ronacher + - Lukas Meuser + - Matt Good \ No newline at end of file From 7ddc53a352ba34db9a2630a691261964e1ca0b1a Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 10 Dec 2006 11:31:03 +0100 Subject: [PATCH 003/709] [svn] Change Pygments license to BSD. --- LICENSE | 46 ++++++++++++++++++++++++++++++---------------- 1 file changed, 30 insertions(+), 16 deletions(-) diff --git a/LICENSE b/LICENSE index 76f95fdcb38..687b8482bc1 100644 --- a/LICENSE +++ b/LICENSE @@ -1,16 +1,30 @@ -Pygments - Python syntax highlighting package -Copyright (C) 2006 by the respective authors (see AUTHORS) - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public -License as published by the Free Software Foundation; either -version 2.1 of the License, or (at your option) any later version. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +Copyright (c) 2006 by the respective authors (see AUTHORS file). +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * The names of the contributors may not be used to endorse or + promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. From 6b8c429a70bdeb0e88b7222049517b08fcffae66 Mon Sep 17 00:00:00 2001 From: blackbird Date: Sat, 13 Jan 2007 11:18:42 +0100 Subject: [PATCH 004/709] [svn] added missing authors and removed "===" from changes file --- AUTHORS | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/AUTHORS b/AUTHORS index 66cd81b537c..3e1db5f6205 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,6 +1,12 @@ Pygments is written and maintained by Georg Brandl . Other contributors (as mentionend in :copyright:s) are: - - Armin Ronacher - - Lukas Meuser - - Matt Good \ No newline at end of file + +- Armin Ronacher +- Lukas Meuser +- Matt Good +- Tim Hatch +- Ronny Pfannschmidt +- Dennis Kaarsemaker +- Marek Kubica +- Ben Bangert From ed495753aa87e58786ec543a74d1c48220ee625b Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sat, 24 Mar 2007 20:35:02 +0100 Subject: [PATCH 005/709] [svn] Add changes, authors. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 3e1db5f6205..7ccaa5db5fa 100644 --- a/AUTHORS +++ b/AUTHORS @@ -10,3 +10,4 @@ Other contributors (as mentionend in :copyright:s) are: - Dennis Kaarsemaker - Marek Kubica - Ben Bangert +- Tiberius Teng From fc8129604aec07efefc81cd5c3d178a14fd85a4b Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sat, 24 Mar 2007 20:46:54 +0100 Subject: [PATCH 006/709] [svn] Add Haskell lexer by Adam Blinkinsop. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 7ccaa5db5fa..62140b09209 100644 --- a/AUTHORS +++ b/AUTHORS @@ -11,3 +11,4 @@ Other contributors (as mentionend in :copyright:s) are: - Marek Kubica - Ben Bangert - Tiberius Teng +- Adam Blinkinsop \ No newline at end of file From 41debc174c1287b23faec4b983f9a62a8eecab07 Mon Sep 17 00:00:00 2001 From: blackbird Date: Wed, 25 Apr 2007 16:32:06 +0200 Subject: [PATCH 007/709] [svn] added D lexer by Kirk MyDonald, this closes #241 --- AUTHORS | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index 62140b09209..e34080539ec 100644 --- a/AUTHORS +++ b/AUTHORS @@ -11,4 +11,5 @@ Other contributors (as mentionend in :copyright:s) are: - Marek Kubica - Ben Bangert - Tiberius Teng -- Adam Blinkinsop \ No newline at end of file +- Adam Blinkinsop +- Kirk McDonald From 9f87d713183fb837e5afaace109d6692709a7ed4 Mon Sep 17 00:00:00 2001 From: welterde Date: Sun, 6 May 2007 16:30:34 +0200 Subject: [PATCH 008/709] [svn] added MuPAD lexer --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index e34080539ec..22b04713f4c 100644 --- a/AUTHORS +++ b/AUTHORS @@ -13,3 +13,4 @@ Other contributors (as mentionend in :copyright:s) are: - Tiberius Teng - Adam Blinkinsop - Kirk McDonald +- Christopher Creutzig From 73a17dba82224729e41ffe291bbff7f371622e4f Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 9 Sep 2007 10:32:22 +0200 Subject: [PATCH 009/709] Don't refer to the SVN trunk anymore. Setuptools doesn't support installing from HG repositories yet. --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index 687b8482bc1..6573f9a7f90 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2006 by the respective authors (see AUTHORS file). +opyright (c) 2006 by the respective authors (see AUTHORS file). All rights reserved. Redistribution and use in source and binary forms, with or without From 92acf53526ceb7a648b6cd62826891b075acbc01 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 9 Sep 2007 14:03:23 +0200 Subject: [PATCH 010/709] Something mutilated LICENSE. --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index 6573f9a7f90..687b8482bc1 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -opyright (c) 2006 by the respective authors (see AUTHORS file). +Copyright (c) 2006 by the respective authors (see AUTHORS file). All rights reserved. Redistribution and use in source and binary forms, with or without From d8b844a59ec6f2108749f5710b981f51a2e60e19 Mon Sep 17 00:00:00 2001 From: mitsuhiko Date: Sat, 22 Sep 2007 19:44:31 +0200 Subject: [PATCH 011/709] added assambler lexers contributed by Frits van Bommel --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 22b04713f4c..6fb1b6e43e0 100644 --- a/AUTHORS +++ b/AUTHORS @@ -14,3 +14,4 @@ Other contributors (as mentionend in :copyright:s) are: - Adam Blinkinsop - Kirk McDonald - Christopher Creutzig +- Frits van Bommel From fc20eb08d873326451144f39874ce6ddcd11730a Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 14 Oct 2007 22:34:33 +0200 Subject: [PATCH 012/709] Update AUTHORS. --- AUTHORS | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/AUTHORS b/AUTHORS index 6fb1b6e43e0..97d4bf21194 100644 --- a/AUTHORS +++ b/AUTHORS @@ -15,3 +15,7 @@ Other contributors (as mentionend in :copyright:s) are: - Kirk McDonald - Christopher Creutzig - Frits van Bommel +- Matteo Sasso +- Kumar Appaiah +- Varun Hiremath + From 823e0d36ea3ed65457b370ec0d0dd112b919a612 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 14 Oct 2007 22:38:12 +0200 Subject: [PATCH 013/709] Update AUTHORS again, move copyright info to file top. --- AUTHORS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index 97d4bf21194..cbbb377e551 100644 --- a/AUTHORS +++ b/AUTHORS @@ -18,4 +18,4 @@ Other contributors (as mentionend in :copyright:s) are: - Matteo Sasso - Kumar Appaiah - Varun Hiremath - +- Jeremy Thurgood From c925802c82fd7b10e2a5016dd56f23e28687ce3e Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 14 Oct 2007 22:40:44 +0200 Subject: [PATCH 014/709] A last AUTHORS update. --- AUTHORS | 3 +++ 1 file changed, 3 insertions(+) diff --git a/AUTHORS b/AUTHORS index cbbb377e551..c5bd49c5962 100644 --- a/AUTHORS +++ b/AUTHORS @@ -19,3 +19,6 @@ Other contributors (as mentionend in :copyright:s) are: - Kumar Appaiah - Varun Hiremath - Jeremy Thurgood +- Matthew Harrison + +Many thanks for all your contributions! From cd65f39e8aba99d00a39394f2993f17a2f8160e3 Mon Sep 17 00:00:00 2001 From: sah Date: Sat, 1 Mar 2008 19:01:51 +0100 Subject: [PATCH 015/709] added Tcl lexer --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index c5bd49c5962..dedc4117332 100644 --- a/AUTHORS +++ b/AUTHORS @@ -20,5 +20,6 @@ Other contributors (as mentionend in :copyright:s) are: - Varun Hiremath - Jeremy Thurgood - Matthew Harrison +- Steven Hazel Many thanks for all your contributions! From cf75f25d36bdf661c68563460662acf2b0a70cfb Mon Sep 17 00:00:00 2001 From: mitsuhiko Date: Tue, 29 Apr 2008 22:59:01 +0200 Subject: [PATCH 016/709] added thanks entry for latest commit --- AUTHORS | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/AUTHORS b/AUTHORS index dedc4117332..9c7a5ae2af7 100644 --- a/AUTHORS +++ b/AUTHORS @@ -23,3 +23,8 @@ Other contributors (as mentionend in :copyright:s) are: - Steven Hazel Many thanks for all your contributions! + +Also thanks to the following contributors that helped fixing minor +bugs: + +- Pierre Bourdon From 1b9a8aaef35f6a7e42308e9fd93f18706af2043c Mon Sep 17 00:00:00 2001 From: thatch Date: Sat, 3 Jan 2009 13:24:20 -0600 Subject: [PATCH 017/709] Add Ana Nelson to contributors --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 9c7a5ae2af7..6448ae61811 100644 --- a/AUTHORS +++ b/AUTHORS @@ -21,6 +21,7 @@ Other contributors (as mentionend in :copyright:s) are: - Jeremy Thurgood - Matthew Harrison - Steven Hazel +- Ana Nelson Many thanks for all your contributions! From 5039910a9d29376c8b689a0a43d0ef1fb159b36b Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 4 Jan 2009 15:26:47 +0100 Subject: [PATCH 018/709] Update copyrighting style to standard "team" tags. Update AUTHORS file accordingly. --- AUTHORS | 71 ++++++++++++++++++++++++++++++++++++--------------------- LICENSE | 55 ++++++++++++++++++++------------------------ 2 files changed, 70 insertions(+), 56 deletions(-) diff --git a/AUTHORS b/AUTHORS index 9c7a5ae2af7..5ab88bdb043 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,30 +1,49 @@ -Pygments is written and maintained by Georg Brandl . +Pygments is written and maintained by Georg Brandl . -Other contributors (as mentionend in :copyright:s) are: +Major developers are Tim Hatch and Armin Ronacher +. -- Armin Ronacher -- Lukas Meuser -- Matt Good -- Tim Hatch -- Ronny Pfannschmidt -- Dennis Kaarsemaker -- Marek Kubica -- Ben Bangert -- Tiberius Teng -- Adam Blinkinsop -- Kirk McDonald -- Christopher Creutzig -- Frits van Bommel -- Matteo Sasso -- Kumar Appaiah -- Varun Hiremath -- Jeremy Thurgood -- Matthew Harrison -- Steven Hazel +Other contributors, listed alphabetically, are: -Many thanks for all your contributions! +* Kumar Appaiah -- Debian control lexer +* Ali Afshar -- image formatter +* Andreas Amann -- AppleScript lexer +* Stefan Matthias Aust -- Smalltalk lexer +* Ben Bangert -- Mako lexers +* Max Battcher -- Darcs patch lexer +* Michael Bayer -- Myghty lexers +* Jarrett Billingsley -- MiniD lexer +* Adam Blinkinsop -- Haskell, Redcode lexers +* Frits van Bommel -- assembler lexers +* Pierre Bourdon -- ActionScript 3 lexer +* Christopher Creutzig -- MuPAD lexer +* Pete Curry -- bugfixes +* Nick Efford -- Python 3 lexer +* Artem Egorkine -- terminal256 formatter +* Laurent Gautier -- R/S lexer +* Krzysiek Goj -- Scala lexer +* Matt Good -- Genshi, Cheetah lexers +* Matthew Harrison -- SVG formatter +* Steven Hazel -- Tcl lexer +* Varun Hiremath -- Debian control lexer +* Dennis Kaarsemaker -- sources.list lexer +* Marek Kubica -- Scheme lexer +* Jochen Kupperschmidt -- Markdown processor +* Kirk McDonald -- D lexer +* Lukas Meuser -- BBCode formatter, Lua lexer +* Paulo Moura -- Logtalk lexer +* Ronny Pfannschmidt -- BBCode lexer +* Benjamin Peterson -- Test suite refactoring +* Andre Roberge -- Tango style +* Stou Sandalski -- NumPy, FORTRAN, tcsh and XSLT lexers +* Matteo Sasso -- Common Lisp lexer +* Ken Schutte -- Matlab lexers +* Tassilo Schweyer -- Io, MOOCode lexers +* Kirill Simonov -- YAML lexer +* Tiberius Teng -- default style overhaul +* Jeremy Thurgood -- Erlang, Squid config lexers +* Whitney Young -- ObjectiveC lexer +* Nils Winter -- Smalltalk lexer +* Davy Wybiral -- Clojure lexer -Also thanks to the following contributors that helped fixing minor -bugs: - -- Pierre Bourdon +Many thanks for all contributions! diff --git a/LICENSE b/LICENSE index 687b8482bc1..05652fc1fe0 100644 --- a/LICENSE +++ b/LICENSE @@ -1,30 +1,25 @@ -Copyright (c) 2006 by the respective authors (see AUTHORS file). -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - - * The names of the contributors may not be used to endorse or - promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +Copyright (c) 2006-2009 by the respective authors (see AUTHORS file). +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +* Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. From b35577815e560a0b8291af70c63a9cf9b995c8fe Mon Sep 17 00:00:00 2001 From: Tim Hatch Date: Wed, 4 Feb 2009 22:50:24 -0800 Subject: [PATCH 019/709] Bash lexer fix from #386 --- AUTHORS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index 6005e6ebbb0..0227f3747ba 100644 --- a/AUTHORS +++ b/AUTHORS @@ -15,7 +15,7 @@ Other contributors, listed alphabetically, are: * Jarrett Billingsley -- MiniD lexer * Adam Blinkinsop -- Haskell, Redcode lexers * Frits van Bommel -- assembler lexers -* Pierre Bourdon -- ActionScript 3 lexer +* Pierre Bourdon -- bugfixes * Christopher Creutzig -- MuPAD lexer * Pete Curry -- bugfixes * Nick Efford -- Python 3 lexer From b43188ee005fd66d9e467980ee291de61de63e20 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Fri, 6 Feb 2009 21:46:15 +0100 Subject: [PATCH 020/709] Add Evoque lexers, by Mario Ruggier. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 0227f3747ba..f2bd00180be 100644 --- a/AUTHORS +++ b/AUTHORS @@ -36,6 +36,7 @@ Other contributors, listed alphabetically, are: * Ronny Pfannschmidt -- BBCode lexer * Benjamin Peterson -- Test suite refactoring * Andre Roberge -- Tango style +* Mario Ruggier -- Evoque lexers * Stou Sandalski -- NumPy, FORTRAN, tcsh and XSLT lexers * Matteo Sasso -- Common Lisp lexer * Ken Schutte -- Matlab lexers From ad2739f7e97934c984ff60d750d73e08f3ea0d58 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Fri, 6 Feb 2009 21:51:19 +0100 Subject: [PATCH 021/709] Add Modelica Lexer, by Dietmar Winkler. --- AUTHORS | 2 ++ 1 file changed, 2 insertions(+) diff --git a/AUTHORS b/AUTHORS index f2bd00180be..2c1ad7c4594 100644 --- a/AUTHORS +++ b/AUTHORS @@ -29,6 +29,7 @@ Other contributors, listed alphabetically, are: * Dennis Kaarsemaker -- sources.list lexer * Marek Kubica -- Scheme lexer * Jochen Kupperschmidt -- Markdown processor +* Gerd Kurzbach -- Modelica lexer * Kirk McDonald -- D lexer * Lukas Meuser -- BBCode formatter, Lua lexer * Paulo Moura -- Logtalk lexer @@ -45,6 +46,7 @@ Other contributors, listed alphabetically, are: * Tiberius Teng -- default style overhaul * Jeremy Thurgood -- Erlang, Squid config lexers * Whitney Young -- ObjectiveC lexer +* Dietmar Winkler -- Modelica lexer * Nils Winter -- Smalltalk lexer * Davy Wybiral -- Clojure lexer From 9624c85e635e7a2d12782eff9034d8279ac08925 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Fri, 6 Feb 2009 22:32:26 +0100 Subject: [PATCH 022/709] Add Rebol lexer, by David Oliva. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 2c1ad7c4594..ef0580d90af 100644 --- a/AUTHORS +++ b/AUTHORS @@ -34,6 +34,7 @@ Other contributors, listed alphabetically, are: * Lukas Meuser -- BBCode formatter, Lua lexer * Paulo Moura -- Logtalk lexer * Ana Nelson -- Ragel, ANTLR lexers +* David Oliva -- Rebol lexer * Ronny Pfannschmidt -- BBCode lexer * Benjamin Peterson -- Test suite refactoring * Andre Roberge -- Tango style From 47d470fd1d58bd04a6bb2f38ff9a6fc8ba212e49 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sat, 7 Feb 2009 14:16:17 +0100 Subject: [PATCH 023/709] Add MXML lexer, by Justin Reidy. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index ef0580d90af..336ff2afbb1 100644 --- a/AUTHORS +++ b/AUTHORS @@ -37,6 +37,7 @@ Other contributors, listed alphabetically, are: * David Oliva -- Rebol lexer * Ronny Pfannschmidt -- BBCode lexer * Benjamin Peterson -- Test suite refactoring +* Justin Reidy -- MXML lexer * Andre Roberge -- Tango style * Mario Ruggier -- Evoque lexers * Stou Sandalski -- NumPy, FORTRAN, tcsh and XSLT lexers From e610c66051af789179dcd331373301c85f271446 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Tue, 10 Feb 2009 14:02:43 +0100 Subject: [PATCH 024/709] Add changelog info for 682d87aff762. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 336ff2afbb1..9b033df9b5a 100644 --- a/AUTHORS +++ b/AUTHORS @@ -34,6 +34,7 @@ Other contributors, listed alphabetically, are: * Lukas Meuser -- BBCode formatter, Lua lexer * Paulo Moura -- Logtalk lexer * Ana Nelson -- Ragel, ANTLR lexers +* Jesper Noehr -- HTML formatter "anchorlinenos" * David Oliva -- Rebol lexer * Ronny Pfannschmidt -- BBCode lexer * Benjamin Peterson -- Test suite refactoring From c9a606bc2a333e064aaa2960273bec74ed447fca Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Thu, 5 Mar 2009 10:25:21 +0100 Subject: [PATCH 025/709] Add ABAP lexer, by Joerg Sieker. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 9b033df9b5a..d987bce5537 100644 --- a/AUTHORS +++ b/AUTHORS @@ -45,6 +45,7 @@ Other contributors, listed alphabetically, are: * Matteo Sasso -- Common Lisp lexer * Ken Schutte -- Matlab lexers * Tassilo Schweyer -- Io, MOOCode lexers +* Joerg Sieker -- ABAP lexer * Kirill Simonov -- YAML lexer * Tiberius Teng -- default style overhaul * Jeremy Thurgood -- Erlang, Squid config lexers From c59c9cd3764a78a3250f565683e9391779a64df8 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Tue, 28 Apr 2009 20:52:25 +0200 Subject: [PATCH 026/709] Add attribution and changelog entry for Vala lexer. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index d987bce5537..818508db489 100644 --- a/AUTHORS +++ b/AUTHORS @@ -30,6 +30,7 @@ Other contributors, listed alphabetically, are: * Marek Kubica -- Scheme lexer * Jochen Kupperschmidt -- Markdown processor * Gerd Kurzbach -- Modelica lexer +* Mark Lee -- Vala lexer * Kirk McDonald -- D lexer * Lukas Meuser -- BBCode formatter, Lua lexer * Paulo Moura -- Logtalk lexer From c3f1067d02940792b60afbd01a03c951849a9143 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Mon, 14 Sep 2009 17:50:31 +0200 Subject: [PATCH 027/709] Add author for new BBCode lexer. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 818508db489..fd4983bef9a 100644 --- a/AUTHORS +++ b/AUTHORS @@ -36,6 +36,7 @@ Other contributors, listed alphabetically, are: * Paulo Moura -- Logtalk lexer * Ana Nelson -- Ragel, ANTLR lexers * Jesper Noehr -- HTML formatter "anchorlinenos" +* Jonas Obrist -- BBCode lexer * David Oliva -- Rebol lexer * Ronny Pfannschmidt -- BBCode lexer * Benjamin Peterson -- Test suite refactoring From 4def97374f6dee3312d35900f7820d66e18c13ea Mon Sep 17 00:00:00 2001 From: thatch Date: Thu, 8 Oct 2009 09:57:42 -0700 Subject: [PATCH 028/709] Integrate haXe lexer (#444) --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index fd4983bef9a..3285ef4a3a1 100644 --- a/AUTHORS +++ b/AUTHORS @@ -18,6 +18,7 @@ Other contributors, listed alphabetically, are: * Pierre Bourdon -- bugfixes * Christopher Creutzig -- MuPAD lexer * Pete Curry -- bugfixes +* Owen Durni -- haXe lexer * Nick Efford -- Python 3 lexer * Artem Egorkine -- terminal256 formatter * Laurent Gautier -- R/S lexer From c49c8af40698902d44c06d268e4f033c6d76cb07 Mon Sep 17 00:00:00 2001 From: thatch Date: Thu, 8 Oct 2009 10:41:02 -0700 Subject: [PATCH 029/709] Note author of R console in AUTHORS --- AUTHORS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index 3285ef4a3a1..e987a24c114 100644 --- a/AUTHORS +++ b/AUTHORS @@ -35,7 +35,7 @@ Other contributors, listed alphabetically, are: * Kirk McDonald -- D lexer * Lukas Meuser -- BBCode formatter, Lua lexer * Paulo Moura -- Logtalk lexer -* Ana Nelson -- Ragel, ANTLR lexers +* Ana Nelson -- Ragel, ANTLR, R console lexers * Jesper Noehr -- HTML formatter "anchorlinenos" * Jonas Obrist -- BBCode lexer * David Oliva -- Rebol lexer From 9d5dd3bc0f76b2c168d6abcf07af7fa2ff35af97 Mon Sep 17 00:00:00 2001 From: thatch Date: Thu, 8 Oct 2009 10:42:51 -0700 Subject: [PATCH 030/709] Integrate Felix lexer (#441) --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index e987a24c114..b49aaafe0dd 100644 --- a/AUTHORS +++ b/AUTHORS @@ -52,6 +52,7 @@ Other contributors, listed alphabetically, are: * Kirill Simonov -- YAML lexer * Tiberius Teng -- default style overhaul * Jeremy Thurgood -- Erlang, Squid config lexers +* Erick Tryzelaar -- Felix lexer * Whitney Young -- ObjectiveC lexer * Dietmar Winkler -- Modelica lexer * Nils Winter -- Smalltalk lexer From e406607f83ed47909a58f89094fe000daf1d2b3b Mon Sep 17 00:00:00 2001 From: Aslak Helles?y Date: Mon, 16 Nov 2009 20:02:06 +0100 Subject: [PATCH 031/709] Added Gherkin Lexer --- AUTHORS | 2 ++ 1 file changed, 2 insertions(+) diff --git a/AUTHORS b/AUTHORS index fd4983bef9a..c476d76d497 100644 --- a/AUTHORS +++ b/AUTHORS @@ -25,12 +25,14 @@ Other contributors, listed alphabetically, are: * Matt Good -- Genshi, Cheetah lexers * Matthew Harrison -- SVG formatter * Steven Hazel -- Tcl lexer +* Aslak Hellesøy -- Gherkin lexer * Varun Hiremath -- Debian control lexer * Dennis Kaarsemaker -- sources.list lexer * Marek Kubica -- Scheme lexer * Jochen Kupperschmidt -- Markdown processor * Gerd Kurzbach -- Modelica lexer * Mark Lee -- Vala lexer +* Ben Mabey -- Gherkin lexer * Kirk McDonald -- D lexer * Lukas Meuser -- BBCode formatter, Lua lexer * Paulo Moura -- Logtalk lexer From d0fe46b34c6c72e420fd4385392f018463402f83 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Mon, 28 Dec 2009 08:53:11 +0100 Subject: [PATCH 032/709] Added the Monokai style (#453). --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index c476d76d497..580bde4629a 100644 --- a/AUTHORS +++ b/AUTHORS @@ -37,6 +37,7 @@ Other contributors, listed alphabetically, are: * Lukas Meuser -- BBCode formatter, Lua lexer * Paulo Moura -- Logtalk lexer * Ana Nelson -- Ragel, ANTLR lexers +* Nam T. Nguyen -- Monokai style * Jesper Noehr -- HTML formatter "anchorlinenos" * Jonas Obrist -- BBCode lexer * David Oliva -- Rebol lexer From 83163b27a41fc654cdd23179d44d294bf6f5b8f0 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Fri, 1 Jan 2010 14:13:04 +0100 Subject: [PATCH 033/709] Happy new year! --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index 05652fc1fe0..0ad59ecf940 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2006-2009 by the respective authors (see AUTHORS file). +Copyright (c) 2006-2010 by the respective authors (see AUTHORS file). All rights reserved. Redistribution and use in source and binary forms, with or without From 3bf4d3c4b718bd29b2daeec71cc260eca0b9b03a Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Fri, 1 Jan 2010 18:23:10 +0100 Subject: [PATCH 034/709] Added options for rendering LaTeX in source code comments in the LaTeX formatter (#461). --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 580bde4629a..1aba5c3a546 100644 --- a/AUTHORS +++ b/AUTHORS @@ -45,6 +45,7 @@ Other contributors, listed alphabetically, are: * Benjamin Peterson -- Test suite refactoring * Justin Reidy -- MXML lexer * Andre Roberge -- Tango style +* Konrad Rudolph -- LaTeX formatter enhancements * Mario Ruggier -- Evoque lexers * Stou Sandalski -- NumPy, FORTRAN, tcsh and XSLT lexers * Matteo Sasso -- Common Lisp lexer From dff39577766981e03e1422b7714723a24c7e26d4 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Fri, 1 Jan 2010 20:00:29 +0100 Subject: [PATCH 035/709] Add Asymptote lexer, by Olivier Guibe. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 1aba5c3a546..34cc6bed69c 100644 --- a/AUTHORS +++ b/AUTHORS @@ -23,6 +23,7 @@ Other contributors, listed alphabetically, are: * Laurent Gautier -- R/S lexer * Krzysiek Goj -- Scala lexer * Matt Good -- Genshi, Cheetah lexers +* Olivier Guibe -- Asymptote lexer * Matthew Harrison -- SVG formatter * Steven Hazel -- Tcl lexer * Aslak Hellesøy -- Gherkin lexer From be5aa82295724c7648e06021df6d1e2718cbc561 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sat, 30 Jan 2010 19:18:54 +0100 Subject: [PATCH 036/709] Objective-J lexer: Clean up, regenerate mapping, add to CHANGES, add AUTHORS, and add test file to test suite. --- AUTHORS | 2 ++ 1 file changed, 2 insertions(+) diff --git a/AUTHORS b/AUTHORS index f717c320545..f8a6adfea39 100644 --- a/AUTHORS +++ b/AUTHORS @@ -11,6 +11,7 @@ Other contributors, listed alphabetically, are: * Stefan Matthias Aust -- Smalltalk lexer * Ben Bangert -- Mako lexers * Max Battcher -- Darcs patch lexer +* Paul Baumgart, 280 North, Inc. -- Objective-J lexer * Michael Bayer -- Myghty lexers * Jarrett Billingsley -- MiniD lexer * Adam Blinkinsop -- Haskell, Redcode lexers @@ -28,6 +29,7 @@ Other contributors, listed alphabetically, are: * Matthew Harrison -- SVG formatter * Steven Hazel -- Tcl lexer * Aslak Hellesøy -- Gherkin lexer +* David Hess, Fish Software, Inc. -- Objective-J lexer * Varun Hiremath -- Debian control lexer * Dennis Kaarsemaker -- sources.list lexer * Marek Kubica -- Scheme lexer From e46633a97ca6d093e8a379d8b23ad0f649973026 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sat, 30 Jan 2010 19:44:18 +0100 Subject: [PATCH 037/709] Haml/Sass lexers: add "new in", changelog and authors entry. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index f8a6adfea39..6e96d01415a 100644 --- a/AUTHORS +++ b/AUTHORS @@ -61,6 +61,7 @@ Other contributors, listed alphabetically, are: * Jeremy Thurgood -- Erlang, Squid config lexers * Erick Tryzelaar -- Felix lexer * Whitney Young -- ObjectiveC lexer +* Nathan Weizenbaum -- Haml and Sass lexers * Dietmar Winkler -- Modelica lexer * Nils Winter -- Smalltalk lexer * Davy Wybiral -- Clojure lexer From ab069bdf2afd54138cc5a3854950e5de93e9dea7 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Thu, 18 Feb 2010 11:21:29 +0100 Subject: [PATCH 038/709] Add CoffeeScript lexer, by Jeremy Ashkenas. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 6e96d01415a..a118a88da64 100644 --- a/AUTHORS +++ b/AUTHORS @@ -8,6 +8,7 @@ Other contributors, listed alphabetically, are: * Kumar Appaiah -- Debian control lexer * Ali Afshar -- image formatter * Andreas Amann -- AppleScript lexer +* Jeremy Ashkenas -- CoffeeScript lexer * Stefan Matthias Aust -- Smalltalk lexer * Ben Bangert -- Mako lexers * Max Battcher -- Darcs patch lexer From c257b0f2869d19ecde285e6d29b5027eaf0dcad8 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Thu, 18 Feb 2010 21:18:19 +0100 Subject: [PATCH 039/709] Add attribution for Ada lexer. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index a118a88da64..0f9937a03dd 100644 --- a/AUTHORS +++ b/AUTHORS @@ -54,6 +54,7 @@ Other contributors, listed alphabetically, are: * Mario Ruggier -- Evoque lexers * Stou Sandalski -- NumPy, FORTRAN, tcsh and XSLT lexers * Matteo Sasso -- Common Lisp lexer +* Joe Schafer -- Ada lexer * Ken Schutte -- Matlab lexers * Tassilo Schweyer -- Io, MOOCode lexers * Joerg Sieker -- ABAP lexer From 05ae427b84d09a26564e275b6059f47f981f3878 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Mon, 1 Mar 2010 16:01:44 +0100 Subject: [PATCH 040/709] Added support for PHP 5.3 namespaces in the PHP lexer. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 0f9937a03dd..02fab08e420 100644 --- a/AUTHORS +++ b/AUTHORS @@ -26,6 +26,7 @@ Other contributors, listed alphabetically, are: * Laurent Gautier -- R/S lexer * Krzysiek Goj -- Scala lexer * Matt Good -- Genshi, Cheetah lexers +* Patrick Gotthardt -- PHP namespaces support * Olivier Guibe -- Asymptote lexer * Matthew Harrison -- SVG formatter * Steven Hazel -- Tcl lexer From a9a12fea4bb36f489ee16957399253fb7261dc3b Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Mon, 1 Mar 2010 21:07:45 +0100 Subject: [PATCH 041/709] Add Modula-2 lexer, contributed by Benjamin Kowarsch. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 02fab08e420..d102686a2cf 100644 --- a/AUTHORS +++ b/AUTHORS @@ -34,6 +34,7 @@ Other contributors, listed alphabetically, are: * David Hess, Fish Software, Inc. -- Objective-J lexer * Varun Hiremath -- Debian control lexer * Dennis Kaarsemaker -- sources.list lexer +* Benjamin Kowarsch -- Modula-2 lexer * Marek Kubica -- Scheme lexer * Jochen Kupperschmidt -- Markdown processor * Gerd Kurzbach -- Modelica lexer From 6d54ad3fa81a839c3e00429e2494af2381b3deca Mon Sep 17 00:00:00 2001 From: thatch Date: Wed, 5 May 2010 17:25:10 -0700 Subject: [PATCH 042/709] Update Authors file --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 6e96d01415a..aac039e0f90 100644 --- a/AUTHORS +++ b/AUTHORS @@ -5,6 +5,7 @@ Major developers are Tim Hatch and Armin Ronacher Other contributors, listed alphabetically, are: +* Sam Aaron -- Ioke lexer * Kumar Appaiah -- Debian control lexer * Ali Afshar -- image formatter * Andreas Amann -- AppleScript lexer From d37d056cc964eb49f7595a66af8a7f76b2b12ee4 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 22 Aug 2010 11:50:22 +0200 Subject: [PATCH 043/709] Added a Factor lexer (#520). --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index d102686a2cf..dbb5c414942 100644 --- a/AUTHORS +++ b/AUTHORS @@ -14,6 +14,7 @@ Other contributors, listed alphabetically, are: * Max Battcher -- Darcs patch lexer * Paul Baumgart, 280 North, Inc. -- Objective-J lexer * Michael Bayer -- Myghty lexers +* John Benediktsson -- Factor lexer * Jarrett Billingsley -- MiniD lexer * Adam Blinkinsop -- Haskell, Redcode lexers * Frits van Bommel -- assembler lexers From a4ae7b0ae18945c4f604e1c552abdd6ad01fbf10 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 22 Aug 2010 12:22:25 +0200 Subject: [PATCH 044/709] Add PostScript lexer (#486). --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 6692f40d3c2..14446b95fff 100644 --- a/AUTHORS +++ b/AUTHORS @@ -25,6 +25,7 @@ Other contributors, listed alphabetically, are: * Owen Durni -- haXe lexer * Nick Efford -- Python 3 lexer * Artem Egorkine -- terminal256 formatter +* James H. Fisher -- PostScript lexer * Laurent Gautier -- R/S lexer * Krzysiek Goj -- Scala lexer * Matt Good -- Genshi, Cheetah lexers From 1a87b58619ad2686f9ff2e5550625b2f5ddff601 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 22 Aug 2010 21:24:58 +0200 Subject: [PATCH 045/709] Add attribution. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 14446b95fff..cc422730ee1 100644 --- a/AUTHORS +++ b/AUTHORS @@ -36,6 +36,7 @@ Other contributors, listed alphabetically, are: * Aslak Hellesøy -- Gherkin lexer * David Hess, Fish Software, Inc. -- Objective-J lexer * Varun Hiremath -- Debian control lexer +* Tim Howard -- BlitzMax lexer * Dennis Kaarsemaker -- sources.list lexer * Benjamin Kowarsch -- Modula-2 lexer * Marek Kubica -- Scheme lexer From 59918589634654adbfdd2d0e222a0a6b112118cf Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 12 Sep 2010 19:49:45 +0200 Subject: [PATCH 046/709] Add credit and changelog entry for JBST lexer. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index cc422730ee1..78f431b8354 100644 --- a/AUTHORS +++ b/AUTHORS @@ -45,6 +45,7 @@ Other contributors, listed alphabetically, are: * Mark Lee -- Vala lexer * Ben Mabey -- Gherkin lexer * Kirk McDonald -- D lexer +* Stephen McKamey -- JBST lexer * Lukas Meuser -- BBCode formatter, Lua lexer * Paulo Moura -- Logtalk lexer * Ana Nelson -- Ragel, ANTLR, R console lexers From 12a5dfbdd257f1dc0d6c40a438018a88d27ab52c Mon Sep 17 00:00:00 2001 From: mckamey Date: Sun, 10 Oct 2010 09:27:29 -0700 Subject: [PATCH 047/709] - adding support for .duel markup - renaming JbstLexer to DuelLexer (DuelEngine will replace JBST) --- AUTHORS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index 78f431b8354..432f7810630 100644 --- a/AUTHORS +++ b/AUTHORS @@ -45,7 +45,7 @@ Other contributors, listed alphabetically, are: * Mark Lee -- Vala lexer * Ben Mabey -- Gherkin lexer * Kirk McDonald -- D lexer -* Stephen McKamey -- JBST lexer +* Stephen McKamey -- Duel/JBST lexer * Lukas Meuser -- BBCode formatter, Lua lexer * Paulo Moura -- Logtalk lexer * Ana Nelson -- Ragel, ANTLR, R console lexers From 942055e3269c312ef2337b3431cd3c630017f553 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Fri, 26 Nov 2010 10:26:27 +0100 Subject: [PATCH 048/709] Move XQuery lexer to web submodule and clean up code style. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 6b6c4444499..5a54501ba10 100644 --- a/AUTHORS +++ b/AUTHORS @@ -67,6 +67,7 @@ Other contributors, listed alphabetically, are: * Tassilo Schweyer -- Io, MOOCode lexers * Joerg Sieker -- ABAP lexer * Kirill Simonov -- YAML lexer +* Steve Spigarelli -- XQuery lexer * Tiberius Teng -- default style overhaul * Jeremy Thurgood -- Erlang, Squid config lexers * Erick Tryzelaar -- Felix lexer From 5a364ed1d15e228a9d057abda58b0a222f5e179f Mon Sep 17 00:00:00 2001 From: Tim Hatch Date: Mon, 20 Dec 2010 23:10:17 -0800 Subject: [PATCH 049/709] Add new Autohotkey lexer (#417) --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 84fe1ad654a..9e2c98befa8 100644 --- a/AUTHORS +++ b/AUTHORS @@ -27,6 +27,7 @@ Other contributors, listed alphabetically, are: * Nick Efford -- Python 3 lexer * Artem Egorkine -- terminal256 formatter * James H. Fisher -- PostScript lexer +* Naveen Garg - Autohotkey lexer * Laurent Gautier -- R/S lexer * Krzysiek Goj -- Scala lexer * Matt Good -- Genshi, Cheetah lexers From 09d1a73a4257d97a4cc5b4e0d88462f860523ff6 Mon Sep 17 00:00:00 2001 From: Tim Hatch Date: Tue, 21 Dec 2010 21:33:33 -0800 Subject: [PATCH 050/709] Incorporate GoodData lexers (#609) Thanks to Lubomir Rintel for the patch. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 9e2c98befa8..6452a209b45 100644 --- a/AUTHORS +++ b/AUTHORS @@ -59,6 +59,7 @@ Other contributors, listed alphabetically, are: * Ronny Pfannschmidt -- BBCode lexer * Benjamin Peterson -- Test suite refactoring * Justin Reidy -- MXML lexer +* Lubomir Rintel -- GoodData MAQL and CL lexers * Andre Roberge -- Tango style * Konrad Rudolph -- LaTeX formatter enhancements * Mario Ruggier -- Evoque lexers From 945fc8a337cf492704fd96d0bfb597b6b8b92ebf Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Mon, 3 Jan 2011 16:24:54 +0100 Subject: [PATCH 051/709] Add changelog entry and attribution for protobuf lexer. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 6452a209b45..cfa833f5af9 100644 --- a/AUTHORS +++ b/AUTHORS @@ -56,6 +56,7 @@ Other contributors, listed alphabetically, are: * Jesper Noehr -- HTML formatter "anchorlinenos" * Jonas Obrist -- BBCode lexer * David Oliva -- Rebol lexer +* Jon Parise -- Protocol buffers lexer * Ronny Pfannschmidt -- BBCode lexer * Benjamin Peterson -- Test suite refactoring * Justin Reidy -- MXML lexer From 1774a7bbce32c6af650f6bb409b82182d6030293 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Mon, 3 Jan 2011 17:01:20 +0100 Subject: [PATCH 052/709] Add Hybris lexer (#506). --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index cfa833f5af9..07235bdbdbc 100644 --- a/AUTHORS +++ b/AUTHORS @@ -47,6 +47,7 @@ Other contributors, listed alphabetically, are: * Gerd Kurzbach -- Modelica lexer * Mark Lee -- Vala lexer * Ben Mabey -- Gherkin lexer +* Simone Margaritelli -- Hybris lexer * Kirk McDonald -- D lexer * Stephen McKamey -- Duel/JBST lexer * Lukas Meuser -- BBCode formatter, Lua lexer From 9773abac344dd6a02adc0ebfc2677a858bd2cbd4 Mon Sep 17 00:00:00 2001 From: Tim Hatch Date: Mon, 14 Mar 2011 00:27:08 -0700 Subject: [PATCH 053/709] Incorporate lexer for the Fancy language (closes #663) --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 07235bdbdbc..1c399949c2f 100644 --- a/AUTHORS +++ b/AUTHORS @@ -16,6 +16,7 @@ Other contributors, listed alphabetically, are: * Paul Baumgart, 280 North, Inc. -- Objective-J lexer * Michael Bayer -- Myghty lexers * John Benediktsson -- Factor lexer +* Christopher Bertels -- Fancy lexer * Jarrett Billingsley -- MiniD lexer * Adam Blinkinsop -- Haskell, Redcode lexers * Frits van Bommel -- assembler lexers From e45af860270dee7311b123255fb7c658091fdb49 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 20 Mar 2011 23:17:22 +0100 Subject: [PATCH 054/709] Add acks and fix versionadded. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 1c399949c2f..4b85b07c694 100644 --- a/AUTHORS +++ b/AUTHORS @@ -52,6 +52,7 @@ Other contributors, listed alphabetically, are: * Kirk McDonald -- D lexer * Stephen McKamey -- Duel/JBST lexer * Lukas Meuser -- BBCode formatter, Lua lexer +* Michael Mior -- Awk lexer * Paulo Moura -- Logtalk lexer * Ana Nelson -- Ragel, ANTLR, R console lexers * Nam T. Nguyen -- Monokai style From 1f3b93afbd401be8c30f9d3dfa7238c133063e3f Mon Sep 17 00:00:00 2001 From: Daniele Varrazzo Date: Thu, 14 Apr 2011 21:24:11 +0100 Subject: [PATCH 055/709] Added Daniele Varrazzo in the authors --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 07235bdbdbc..eaf0dd268b4 100644 --- a/AUTHORS +++ b/AUTHORS @@ -76,6 +76,7 @@ Other contributors, listed alphabetically, are: * Tiberius Teng -- default style overhaul * Jeremy Thurgood -- Erlang, Squid config lexers * Erick Tryzelaar -- Felix lexer +* Daniele Varrazzo -- PostgreSQL lexers * Whitney Young -- ObjectiveC lexer * Nathan Weizenbaum -- Haml and Sass lexers * Dietmar Winkler -- Modelica lexer From 3ed00cb2d01597f493c607918bb4fa1f6d0acf90 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Mon, 30 May 2011 08:57:44 +0200 Subject: [PATCH 056/709] Rename eC lexer class, add changelog entry and author name for it. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 4b85b07c694..b283c728ab5 100644 --- a/AUTHORS +++ b/AUTHORS @@ -75,6 +75,7 @@ Other contributors, listed alphabetically, are: * Joerg Sieker -- ABAP lexer * Kirill Simonov -- YAML lexer * Steve Spigarelli -- XQuery lexer +* Jerome St-Louis -- eC lexer * Tiberius Teng -- default style overhaul * Jeremy Thurgood -- Erlang, Squid config lexers * Erick Tryzelaar -- Felix lexer From f266871f9575840fb0ce7734c91ad8d16050956c Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Wed, 1 Jun 2011 20:27:52 +0200 Subject: [PATCH 057/709] Add author and changelog entry for Nimrod. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index b283c728ab5..cb468e77c11 100644 --- a/AUTHORS +++ b/AUTHORS @@ -62,6 +62,7 @@ Other contributors, listed alphabetically, are: * Jon Parise -- Protocol buffers lexer * Ronny Pfannschmidt -- BBCode lexer * Benjamin Peterson -- Test suite refactoring +* Dominik Picheta -- Nimrod lexer * Justin Reidy -- MXML lexer * Lubomir Rintel -- GoodData MAQL and CL lexers * Andre Roberge -- Tango style From dbbd73a2b3ecaf69de0ff80ef3a95154e3744e73 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Tue, 7 Jun 2011 18:14:32 +0200 Subject: [PATCH 058/709] Cleanup and add changelog entry for Nemerle. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index cb468e77c11..6dc2e9f1934 100644 --- a/AUTHORS +++ b/AUTHORS @@ -85,5 +85,6 @@ Other contributors, listed alphabetically, are: * Dietmar Winkler -- Modelica lexer * Nils Winter -- Smalltalk lexer * Davy Wybiral -- Clojure lexer +* Alex Zimin -- Nemerle lexer Many thanks for all contributions! From bfdb01857db848a7c34461dca86aeab6418882c0 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Fri, 17 Jun 2011 20:32:16 +0200 Subject: [PATCH 059/709] Add author and changelog entry. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 6dc2e9f1934..1487287c029 100644 --- a/AUTHORS +++ b/AUTHORS @@ -51,6 +51,7 @@ Other contributors, listed alphabetically, are: * Simone Margaritelli -- Hybris lexer * Kirk McDonald -- D lexer * Stephen McKamey -- Duel/JBST lexer +* Brian McKenna -- F# lexer * Lukas Meuser -- BBCode formatter, Lua lexer * Michael Mior -- Awk lexer * Paulo Moura -- Logtalk lexer From 6074dd694384756ac3b48fd0a7344dd5b09f324c Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sat, 9 Jul 2011 11:34:44 +0200 Subject: [PATCH 060/709] Add attributions for DTD lexer. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 6c347e59217..da458436843 100644 --- a/AUTHORS +++ b/AUTHORS @@ -56,6 +56,7 @@ Other contributors, listed alphabetically, are: * Lukas Meuser -- BBCode formatter, Lua lexer * Michael Mior -- Awk lexer * Paulo Moura -- Logtalk lexer +* Mher Movsisyan -- DTD lexer * Ana Nelson -- Ragel, ANTLR, R console lexers * Nam T. Nguyen -- Monokai style * Jesper Noehr -- HTML formatter "anchorlinenos" From 8d0fb8fbcd9e66629c614530477b8d782333d055 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sat, 9 Jul 2011 12:05:46 +0200 Subject: [PATCH 061/709] Fix current copyright year. --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index 0ad59ecf940..314b37105c4 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2006-2010 by the respective authors (see AUTHORS file). +Copyright (c) 2006-2011 by the respective authors (see AUTHORS file). All rights reserved. Redistribution and use in source and binary forms, with or without From e374035894259bcbc266bf199236daef79708314 Mon Sep 17 00:00:00 2001 From: Alex Gaynor Date: Mon, 1 Aug 2011 14:14:00 -0700 Subject: [PATCH 062/709] Added myself to the authors file --- AUTHORS | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index da458436843..d6cea946c85 100644 --- a/AUTHORS +++ b/AUTHORS @@ -28,8 +28,9 @@ Other contributors, listed alphabetically, are: * Nick Efford -- Python 3 lexer * Artem Egorkine -- terminal256 formatter * James H. Fisher -- PostScript lexer -* Naveen Garg - Autohotkey lexer +* Naveen Garg -- Autohotkey lexer * Laurent Gautier -- R/S lexer +* Alex Gaynor -- PyPy log lexer * Bertrand Goetzmann -- Groovy lexer * Krzysiek Goj -- Scala lexer * Matt Good -- Genshi, Cheetah lexers From e01cdab8f264bd9d28d66cf3f12f026d908d27d9 Mon Sep 17 00:00:00 2001 From: "Robert J. Simmons" Date: Sat, 27 Aug 2011 19:30:12 -0400 Subject: [PATCH 063/709] Hugely refactor based on inspecting Matthew Fluet's code --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index d6cea946c85..d5e2a699a02 100644 --- a/AUTHORS +++ b/AUTHORS @@ -78,6 +78,7 @@ Other contributors, listed alphabetically, are: * Ken Schutte -- Matlab lexers * Tassilo Schweyer -- Io, MOOCode lexers * Joerg Sieker -- ABAP lexer +* Robert Simmons -- Standard ML lexer * Kirill Simonov -- YAML lexer * Steve Spigarelli -- XQuery lexer * Jerome St-Louis -- eC lexer From 781743f6ee82c1751593689ffd6c5cc231ae924f Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Thu, 22 Sep 2011 12:52:55 +0200 Subject: [PATCH 064/709] Add author entry and changelog entry for Octave. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index d6cea946c85..b87037c0467 100644 --- a/AUTHORS +++ b/AUTHORS @@ -39,6 +39,7 @@ Other contributors, listed alphabetically, are: * Matthew Harrison -- SVG formatter * Steven Hazel -- Tcl lexer * Aslak Hellesøy -- Gherkin lexer +* Jordi Gutiérrez Hermoso -- Octave lexer * David Hess, Fish Software, Inc. -- Objective-J lexer * Varun Hiremath -- Debian control lexer * Ben Hollis -- Mason lexer From c2eea8328ec749eca7ceedd5f3af12f7b8816c74 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Thu, 22 Sep 2011 13:29:37 +0200 Subject: [PATCH 065/709] Attribution and changelog for CFengine3. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index ce1af5d828a..e5d0d3b3408 100644 --- a/AUTHORS +++ b/AUTHORS @@ -92,6 +92,7 @@ Other contributors, listed alphabetically, are: * Dietmar Winkler -- Modelica lexer * Nils Winter -- Smalltalk lexer * Davy Wybiral -- Clojure lexer +* Diego Zamboni -- CFengine3 lexer * Alex Zimin -- Nemerle lexer Many thanks for all contributions! From 4e5a31e54b350d7e0e00e968e536efe25fe1faca Mon Sep 17 00:00:00 2001 From: Gordon McGregor Date: Tue, 4 Oct 2011 12:27:11 -0500 Subject: [PATCH 066/709] Added new SystemVerilog lexer to hdl.py. Fixed integer typo in Verilog lexer. Added *.sv|*.svh filetypes for systemverilog lexer and downgraded verilog lexer to just *.v files --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index e5d0d3b3408..6c512c9340e 100644 --- a/AUTHORS +++ b/AUTHORS @@ -53,6 +53,7 @@ Other contributors, listed alphabetically, are: * Ben Mabey -- Gherkin lexer * Simone Margaritelli -- Hybris lexer * Kirk McDonald -- D lexer +* Gordon McGregor -- SystemVerilog lexer * Stephen McKamey -- Duel/JBST lexer * Brian McKenna -- F# lexer * Lukas Meuser -- BBCode formatter, Lua lexer From 445b651ccb1d152e3e72216ee576ff0e9a47ad7f Mon Sep 17 00:00:00 2001 From: Ivan Inozemtsev Date: Wed, 19 Oct 2011 20:04:06 +0600 Subject: [PATCH 067/709] Added Fantom lexer --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index e5d0d3b3408..62aab156aaa 100644 --- a/AUTHORS +++ b/AUTHORS @@ -44,6 +44,7 @@ Other contributors, listed alphabetically, are: * Varun Hiremath -- Debian control lexer * Ben Hollis -- Mason lexer * Tim Howard -- BlitzMax lexer +* Ivan Inozemtsev -- Fantom lexer * Dennis Kaarsemaker -- sources.list lexer * Benjamin Kowarsch -- Modula-2 lexer * Marek Kubica -- Scheme lexer From 26d010cfa9b29219ae4d4c96c1c00d9b0fac81d4 Mon Sep 17 00:00:00 2001 From: David Wolever Date: Wed, 21 Dec 2011 15:23:10 -0500 Subject: [PATCH 068/709] Initial commit, working but confusing. --- dir2pypi | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++ pip2dijkstra | 20 +++++++++++++++++++ pip2tgz | 52 ++++++++++++++++++++++++++++++++++++++++++++++++ pkg2dijkstra | 27 +++++++++++++++++++++++++ 4 files changed, 155 insertions(+) create mode 100755 dir2pypi create mode 100755 pip2dijkstra create mode 100755 pip2tgz create mode 100755 pkg2dijkstra diff --git a/dir2pypi b/dir2pypi new file mode 100755 index 00000000000..cb7031ef4d9 --- /dev/null +++ b/dir2pypi @@ -0,0 +1,56 @@ +#!/usr/bin/env python + +import os +import sys +import shutil + +def file_to_package(file): + """ Returns the package name for a given file. + >>> file_to_package("foo-1.2.3_rc1.tar.gz") + ('foo', '1.2.3-rc1.tar.gz') + >>> file_to_package("foo-bar-1.2.tgz") + ('foo-bar', '1.2.tgz') + >>> """ + split = file.rsplit("-", 1) + if len(split) != 2: + msg = ("unexpected file name: %r (not in " + "'package-name-version.xxx' format)") %(file, ) + raise ValueError(msg) + return (split[0], split[1].replace("_", "-")) + +def main(): + if len(sys.argv) != 2: + print "usage: %s PACKAGE_DIR" %(sys.argv[0], ) + print "Creates the directory PACKAGE_DIR/simple/ and populates it" + print "with the directory structure required to use with pip's" + print "--index-url" + print + print "Assumes that PACKAGE_DIR contains a bunch of archives" + print "named 'package-name-version.ext' (ex 'foo-2.1.tar.gz'" + print "or 'foo-bar-1.3rc1.bz2')" + print + print "This makes the most sense if PACKAGE_DIR is somewhere" + print "inside a webserver's inside htdocs directory." + sys.exit(1) + pkgdir = sys.argv[1] + if not os.path.isdir(pkgdir): + raise ValueError("no such directory: %r" %(pkgdir, )) + pkgdirpath = lambda *x: os.path.join(pkgdir, *x) + + shutil.rmtree(pkgdirpath("simple"), ignore_errors=True) + os.mkdir(pkgdirpath("simple")) + + for file in os.listdir(pkgdir): + pkg_filepath = os.path.join(pkgdir, file) + if not os.path.isfile(pkg_filepath): + continue + pkg_basename = os.path.basename(file) + pkg_name, pkg_rest = file_to_package(pkg_basename) + pkg_dir = pkgdirpath("simple", pkg_name) + if not os.path.exists(pkg_dir): + os.mkdir(pkg_dir) + pkg_new_basename = "-".join([pkg_name, pkg_rest]) + os.link(pkg_filepath, os.path.join(pkg_dir, pkg_new_basename)) + +if __name__ == "__main__": + main() diff --git a/pip2dijkstra b/pip2dijkstra new file mode 100755 index 00000000000..91e0c0f8731 --- /dev/null +++ b/pip2dijkstra @@ -0,0 +1,20 @@ +#!/bin/bash + +IFS="`printf "\n\t"`" +set -eu + +if [[ "$#" -lt 1 ]]; then + echo "usage: $0 PACKAGE_NAME ..." + exit 1 +fi + +pip2tgz="$(dirname "$0")/pip2tgz" +pkg2dijkstra="$(dirname "$0")/pkg2dijkstra" + +tempdir="/tmp/_pip2dijkstra_temp/" +mkdir "$tempdir" 2>&1 > /dev/null + +$pip2tgz "$tempdir" "$@" +files=($tempdir/*) +$pkg2dijkstra "${files[@]}" +rm -r "$tempdir" diff --git a/pip2tgz b/pip2tgz new file mode 100755 index 00000000000..31ff2e69ea4 --- /dev/null +++ b/pip2tgz @@ -0,0 +1,52 @@ +#!/usr/bin/env python + +import os +import sys +import shutil +from subprocess import check_call + +if len(sys.argv) < 3: + import textwrap + print textwrap.dedent(""" + usage: %s OUTPUT_DIRECTORY PACKAGE_NAMES + + Where PACKAGE_NAMES are any names accepted by pip (ex, `foo`, + `foo==1.2`, `-r requirements.txt`). + + %s will download all packages required to install PACKAGE_NAMES and + save them to sanely-named tarballs in OUTPUT_DIRECTORY + """ %(sys.argv[0], sys.argv[0])) + sys.exit(1) + +outdir = os.path.abspath(sys.argv[1]) +if not os.path.exists(outdir): + os.path.mkdir(outdir) + +tempdir = os.path.join(outdir, "_pip2tgz_temp") +if os.path.exists(tempdir): + shutil.rmtree(tempdir) +os.mkdir(tempdir) + +bundle_zip = os.path.join(tempdir, "bundle.zip") +check_call(["pip", "bundle", "-b", tempdir, bundle_zip] + sys.argv[2:]) + +os.chdir(tempdir) +check_call(["unzip", "bundle.zip", "pip-manifest.txt"]) + +for line in open("pip-manifest.txt"): + line = line.strip() + if not line or line.startswith("#"): + continue + pkg_version = line.split("==") + if len(pkg_version) != 2: + raise ValueError("surprising line: %r" %(line, )) + pkg, version = pkg_version + version = version.replace("-", "_") + old_input_dir = pkg + new_input_dir = "%s-%s" %(pkg, version) + os.rename(old_input_dir, new_input_dir) + output_name = os.path.join("..", new_input_dir + ".tar.gz") + check_call(["tar", "-czvf", output_name, new_input_dir]) + +os.chdir(outdir) +shutil.rmtree(tempdir) diff --git a/pkg2dijkstra b/pkg2dijkstra new file mode 100755 index 00000000000..30960d3a1b1 --- /dev/null +++ b/pkg2dijkstra @@ -0,0 +1,27 @@ +#!/bin/bash + +IFS="`printf "\n\t"`" +set -eu + +if [[ -z "${1-}" ]]; then + echo "usage: $0 (foo-1.2.3.tar.gz|foo/) ..." + exit 1 +fi + +targets=("$@") +for (( i = 0; i < $#; i += 1)); do + target="${targets[$i]}" + if [[ -d "$target" ]]; then + echo "looks like a source directory. Doing some magic to make that work..." + pushd "$target" > /dev/null + rm -r dist/ 2>&1 > /dev/null || true + python setup.py sdist + target="$(echo "$PWD/dist/"*)" + popd > /dev/null + targets[$i]="$target" + fi +done + +scp "${targets[@]}" luminaut@dijkstra.local:/var/www/pypi/ + +ssh luminaut@dijkstra.local "cd /var/www/; ./dir2pypi pypi" From 59b28ba7b5f4425d9c7587958cc1446e3565b54f Mon Sep 17 00:00:00 2001 From: David Wolever Date: Wed, 21 Dec 2011 17:23:57 -0500 Subject: [PATCH 069/709] Adding a setup.py, starting to turn this into a real Python package. --- dir2pypi | 57 +----------------------- pip2pi/__init__.py | 0 pip2pi/commands.py | 108 +++++++++++++++++++++++++++++++++++++++++++++ pip2tgz | 53 +--------------------- setup.py | 19 ++++++++ 5 files changed, 131 insertions(+), 106 deletions(-) create mode 100644 pip2pi/__init__.py create mode 100644 pip2pi/commands.py create mode 100644 setup.py diff --git a/dir2pypi b/dir2pypi index cb7031ef4d9..15e3c412ce9 100755 --- a/dir2pypi +++ b/dir2pypi @@ -1,56 +1,3 @@ #!/usr/bin/env python - -import os -import sys -import shutil - -def file_to_package(file): - """ Returns the package name for a given file. - >>> file_to_package("foo-1.2.3_rc1.tar.gz") - ('foo', '1.2.3-rc1.tar.gz') - >>> file_to_package("foo-bar-1.2.tgz") - ('foo-bar', '1.2.tgz') - >>> """ - split = file.rsplit("-", 1) - if len(split) != 2: - msg = ("unexpected file name: %r (not in " - "'package-name-version.xxx' format)") %(file, ) - raise ValueError(msg) - return (split[0], split[1].replace("_", "-")) - -def main(): - if len(sys.argv) != 2: - print "usage: %s PACKAGE_DIR" %(sys.argv[0], ) - print "Creates the directory PACKAGE_DIR/simple/ and populates it" - print "with the directory structure required to use with pip's" - print "--index-url" - print - print "Assumes that PACKAGE_DIR contains a bunch of archives" - print "named 'package-name-version.ext' (ex 'foo-2.1.tar.gz'" - print "or 'foo-bar-1.3rc1.bz2')" - print - print "This makes the most sense if PACKAGE_DIR is somewhere" - print "inside a webserver's inside htdocs directory." - sys.exit(1) - pkgdir = sys.argv[1] - if not os.path.isdir(pkgdir): - raise ValueError("no such directory: %r" %(pkgdir, )) - pkgdirpath = lambda *x: os.path.join(pkgdir, *x) - - shutil.rmtree(pkgdirpath("simple"), ignore_errors=True) - os.mkdir(pkgdirpath("simple")) - - for file in os.listdir(pkgdir): - pkg_filepath = os.path.join(pkgdir, file) - if not os.path.isfile(pkg_filepath): - continue - pkg_basename = os.path.basename(file) - pkg_name, pkg_rest = file_to_package(pkg_basename) - pkg_dir = pkgdirpath("simple", pkg_name) - if not os.path.exists(pkg_dir): - os.mkdir(pkg_dir) - pkg_new_basename = "-".join([pkg_name, pkg_rest]) - os.link(pkg_filepath, os.path.join(pkg_dir, pkg_new_basename)) - -if __name__ == "__main__": - main() +from pip2pi.commands import dir2pypi +dir2pypi() diff --git a/pip2pi/__init__.py b/pip2pi/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/pip2pi/commands.py b/pip2pi/commands.py new file mode 100644 index 00000000000..3e97fcc83fd --- /dev/null +++ b/pip2pi/commands.py @@ -0,0 +1,108 @@ +import os +import sys +import shutil +import textwrap +from subprocess import check_call + +def dedent(text): + return textwrap.dedent(text) + +def file_to_package(file): + """ Returns the package name for a given file. + + >>> file_to_package("foo-1.2.3_rc1.tar.gz") + ('foo', '1.2.3-rc1.tar.gz') + >>> file_to_package("foo-bar-1.2.tgz") + ('foo-bar', '1.2.tgz') + >>> """ + split = file.rsplit("-", 1) + if len(split) != 2: + msg = ("unexpected file name: %r (not in " + "'package-name-version.xxx' format)") %(file, ) + raise ValueError(msg) + return (split[0], split[1].replace("_", "-")) + +def dir2pypi(): + if len(sys.argv) != 2: + print dedent(""" + usage: %s PACKAGE_DIR + + Creates the directory PACKAGE_DIR/simple/ and populates it with the + directory structure required to use with pip's --index-url. + + Assumes that PACKAGE_DIR contains a bunch of archives named + 'package-name-version.ext' (ex 'foo-2.1.tar.gz' or + 'foo-bar-1.3rc1.bz2'). + + This makes the most sense if PACKAGE_DIR is somewhere inside a + webserver's inside htdocs directory. + """ %(sys.argv[0], ) ) + sys.exit(1) + pkgdir = sys.argv[1] + if not os.path.isdir(pkgdir): + raise ValueError("no such directory: %r" %(pkgdir, )) + pkgdirpath = lambda *x: os.path.join(pkgdir, *x) + + shutil.rmtree(pkgdirpath("simple"), ignore_errors=True) + os.mkdir(pkgdirpath("simple")) + + for file in os.listdir(pkgdir): + pkg_filepath = os.path.join(pkgdir, file) + if not os.path.isfile(pkg_filepath): + continue + pkg_basename = os.path.basename(file) + pkg_name, pkg_rest = file_to_package(pkg_basename) + pkg_dir = pkgdirpath("simple", pkg_name) + if not os.path.exists(pkg_dir): + os.mkdir(pkg_dir) + pkg_new_basename = "-".join([pkg_name, pkg_rest]) + os.link(pkg_filepath, os.path.join(pkg_dir, pkg_new_basename)) + + +def pip2tgz(): + if len(sys.argv) < 3: + print dedent(""" + usage: %s OUTPUT_DIRECTORY PACKAGE_NAMES + + Where PACKAGE_NAMES are any names accepted by pip (ex, `foo`, + `foo==1.2`, `-r requirements.txt`). + + %s will download all packages required to install PACKAGE_NAMES and + save them to sanely-named tarballs in OUTPUT_DIRECTORY. + """ %(sys.argv[0], sys.argv[0])) + sys.exit(1) + + outdir = os.path.abspath(sys.argv[1]) + if not os.path.exists(outdir): + os.path.mkdir(outdir) + + tempdir = os.path.join(outdir, "_pip2tgz_temp") + if os.path.exists(tempdir): + shutil.rmtree(tempdir) + os.mkdir(tempdir) + + bundle_zip = os.path.join(tempdir, "bundle.zip") + check_call(["pip", "bundle", "-b", tempdir, bundle_zip] + sys.argv[2:]) + + os.chdir(tempdir) + check_call(["unzip", "bundle.zip", "pip-manifest.txt"]) + + for line in open("pip-manifest.txt"): + line = line.strip() + if not line or line.startswith("#"): + continue + pkg_version = line.split("==") + if len(pkg_version) != 2: + bundle_file = os.path.abspath("pip-manifest.txt") + raise ValueError("surprising line in %r: %r" + %(bundle_file, line, )) + pkg, version = pkg_version + version = version.replace("-", "_") + old_input_dir = pkg + new_input_dir = "%s-%s" %(pkg, version) + os.rename(old_input_dir, new_input_dir) + output_name = os.path.join("..", new_input_dir + ".tar.gz") + check_call(["tar", "-czvf", output_name, new_input_dir]) + + os.chdir(outdir) + shutil.rmtree(tempdir) diff --git a/pip2tgz b/pip2tgz index 31ff2e69ea4..38c22c4db89 100755 --- a/pip2tgz +++ b/pip2tgz @@ -1,52 +1,3 @@ #!/usr/bin/env python - -import os -import sys -import shutil -from subprocess import check_call - -if len(sys.argv) < 3: - import textwrap - print textwrap.dedent(""" - usage: %s OUTPUT_DIRECTORY PACKAGE_NAMES - - Where PACKAGE_NAMES are any names accepted by pip (ex, `foo`, - `foo==1.2`, `-r requirements.txt`). - - %s will download all packages required to install PACKAGE_NAMES and - save them to sanely-named tarballs in OUTPUT_DIRECTORY - """ %(sys.argv[0], sys.argv[0])) - sys.exit(1) - -outdir = os.path.abspath(sys.argv[1]) -if not os.path.exists(outdir): - os.path.mkdir(outdir) - -tempdir = os.path.join(outdir, "_pip2tgz_temp") -if os.path.exists(tempdir): - shutil.rmtree(tempdir) -os.mkdir(tempdir) - -bundle_zip = os.path.join(tempdir, "bundle.zip") -check_call(["pip", "bundle", "-b", tempdir, bundle_zip] + sys.argv[2:]) - -os.chdir(tempdir) -check_call(["unzip", "bundle.zip", "pip-manifest.txt"]) - -for line in open("pip-manifest.txt"): - line = line.strip() - if not line or line.startswith("#"): - continue - pkg_version = line.split("==") - if len(pkg_version) != 2: - raise ValueError("surprising line: %r" %(line, )) - pkg, version = pkg_version - version = version.replace("-", "_") - old_input_dir = pkg - new_input_dir = "%s-%s" %(pkg, version) - os.rename(old_input_dir, new_input_dir) - output_name = os.path.join("..", new_input_dir + ".tar.gz") - check_call(["tar", "-czvf", output_name, new_input_dir]) - -os.chdir(outdir) -shutil.rmtree(tempdir) +from pip2pi.commands import pip2tgz +pip2tgz() diff --git a/setup.py b/setup.py new file mode 100644 index 00000000000..2037034fc50 --- /dev/null +++ b/setup.py @@ -0,0 +1,19 @@ +#!/usr/bin/env python + +import os +import sys + +from setuptools import setup, find_packages + +os.chdir(os.path.dirname(sys.argv[0]) or ".") + +setup( + name="pip2pi", + version="0.1", + url="https://github.com/wolever/pip2pi", + author="David Wolever", + author_email="david@wolever.net", + description="pip2pi builds a PyPI-compatible package repository from pip requirements", + packages=find_packages(), + scripts=["pip2tgz", "dir2pypi"], +) From 9b45ffa3a6566ea516514e6d584e753009b2fcb5 Mon Sep 17 00:00:00 2001 From: David Wolever Date: Thu, 22 Dec 2011 00:12:29 -0500 Subject: [PATCH 070/709] Rename dir2pypi -> dir2pi --HG-- rename : dir2pypi => dir2pi --- dir2pi | 3 +++ dir2pypi | 3 --- pip2pi/commands.py | 2 +- setup.py | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) create mode 100755 dir2pi delete mode 100755 dir2pypi diff --git a/dir2pi b/dir2pi new file mode 100755 index 00000000000..86cb5a5a292 --- /dev/null +++ b/dir2pi @@ -0,0 +1,3 @@ +#!/usr/bin/env python +from pip2pi.commands import dir2pi +dir2pi() diff --git a/dir2pypi b/dir2pypi deleted file mode 100755 index 15e3c412ce9..00000000000 --- a/dir2pypi +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env python -from pip2pi.commands import dir2pypi -dir2pypi() diff --git a/pip2pi/commands.py b/pip2pi/commands.py index 3e97fcc83fd..01f7c5183f0 100644 --- a/pip2pi/commands.py +++ b/pip2pi/commands.py @@ -22,7 +22,7 @@ def file_to_package(file): raise ValueError(msg) return (split[0], split[1].replace("_", "-")) -def dir2pypi(): +def dir2pi(): if len(sys.argv) != 2: print dedent(""" usage: %s PACKAGE_DIR diff --git a/setup.py b/setup.py index 2037034fc50..6aabf9db4f6 100644 --- a/setup.py +++ b/setup.py @@ -15,5 +15,5 @@ author_email="david@wolever.net", description="pip2pi builds a PyPI-compatible package repository from pip requirements", packages=find_packages(), - scripts=["pip2tgz", "dir2pypi"], + scripts=["pip2tgz", "dir2pi"], ) From 1c94ea82ea48a66ac3f313e6bc68baa354782397 Mon Sep 17 00:00:00 2001 From: David Wolever Date: Thu, 22 Dec 2011 01:12:04 -0500 Subject: [PATCH 071/709] Adding some more documentation and the pip2pi command! --HG-- rename : pip2pi/__init__.py => libpip2pi/__init__.py rename : pip2pi/commands.py => libpip2pi/commands.py --- dir2pi | 2 +- {pip2pi => libpip2pi}/__init__.py | 0 {pip2pi => libpip2pi}/commands.py | 98 ++++++++++++++++++++++++++----- pip2dijkstra | 20 ------- pip2pi | 3 + pip2tgz | 2 +- pkg2dijkstra | 27 --------- setup.py | 2 +- 8 files changed, 88 insertions(+), 66 deletions(-) rename {pip2pi => libpip2pi}/__init__.py (100%) rename {pip2pi => libpip2pi}/commands.py (53%) delete mode 100755 pip2dijkstra create mode 100755 pip2pi delete mode 100755 pkg2dijkstra diff --git a/dir2pi b/dir2pi index 86cb5a5a292..e35e11e400d 100755 --- a/dir2pi +++ b/dir2pi @@ -1,3 +1,3 @@ #!/usr/bin/env python -from pip2pi.commands import dir2pi +from libpip2pi.commands import dir2pi dir2pi() diff --git a/pip2pi/__init__.py b/libpip2pi/__init__.py similarity index 100% rename from pip2pi/__init__.py rename to libpip2pi/__init__.py diff --git a/pip2pi/commands.py b/libpip2pi/commands.py similarity index 53% rename from pip2pi/commands.py rename to libpip2pi/commands.py index 01f7c5183f0..f29baf812d0 100644 --- a/pip2pi/commands.py +++ b/libpip2pi/commands.py @@ -1,11 +1,13 @@ import os import sys import shutil +import atexit +import tempfile import textwrap from subprocess import check_call def dedent(text): - return textwrap.dedent(text) + return textwrap.dedent(text.lstrip("\n")) def file_to_package(file): """ Returns the package name for a given file. @@ -22,10 +24,10 @@ def file_to_package(file): raise ValueError(msg) return (split[0], split[1].replace("_", "-")) -def dir2pi(): - if len(sys.argv) != 2: +def dir2pi(argv=sys.argv): + if len(argv) != 2: print dedent(""" - usage: %s PACKAGE_DIR + usage: dir2pi PACKAGE_DIR Creates the directory PACKAGE_DIR/simple/ and populates it with the directory structure required to use with pip's --index-url. @@ -36,9 +38,21 @@ def dir2pi(): This makes the most sense if PACKAGE_DIR is somewhere inside a webserver's inside htdocs directory. - """ %(sys.argv[0], ) ) + + For example: + + $ ls packages/ + foo-1.2.tar.gz + $ dir2pi packags/ + $ find packages/ + packages/ + packages/foo-1.2.tar.gz + packages/simple/ + packages/simple/foo/ + packages/simple/foo/foo-1.2.tar.gz + """) sys.exit(1) - pkgdir = sys.argv[1] + pkgdir = argv[1] if not os.path.isdir(pkgdir): raise ValueError("no such directory: %r" %(pkgdir, )) pkgdirpath = lambda *x: os.path.join(pkgdir, *x) @@ -56,25 +70,31 @@ def dir2pi(): if not os.path.exists(pkg_dir): os.mkdir(pkg_dir) pkg_new_basename = "-".join([pkg_name, pkg_rest]) - os.link(pkg_filepath, os.path.join(pkg_dir, pkg_new_basename)) + symlink_target = os.path.join(pkg_dir, pkg_new_basename) + symlink_source = os.path.join("../../", pkg_new_basename) + os.symlink(symlink_source, symlink_target) -def pip2tgz(): - if len(sys.argv) < 3: +def pip2tgz(argv=sys.argv): + if len(argv) < 3: print dedent(""" - usage: %s OUTPUT_DIRECTORY PACKAGE_NAMES + usage: pip2tgz OUTPUT_DIRECTORY PACKAGE_NAME ... Where PACKAGE_NAMES are any names accepted by pip (ex, `foo`, `foo==1.2`, `-r requirements.txt`). - %s will download all packages required to install PACKAGE_NAMES and + pip2tgz will download all packages required to install PACKAGE_NAMES and save them to sanely-named tarballs in OUTPUT_DIRECTORY. - """ %(sys.argv[0], sys.argv[0])) + + For example: + + $ pip2tgz /var/www/packages/ -r requirements.txt foo==1.2 baz/ + """) sys.exit(1) - outdir = os.path.abspath(sys.argv[1]) + outdir = os.path.abspath(argv[1]) if not os.path.exists(outdir): - os.path.mkdir(outdir) + os.mkdir(outdir) tempdir = os.path.join(outdir, "_pip2tgz_temp") if os.path.exists(tempdir): @@ -82,11 +102,12 @@ def pip2tgz(): os.mkdir(tempdir) bundle_zip = os.path.join(tempdir, "bundle.zip") - check_call(["pip", "bundle", "-b", tempdir, bundle_zip] + sys.argv[2:]) + check_call(["pip", "bundle", "-b", tempdir, bundle_zip] + argv[2:]) os.chdir(tempdir) check_call(["unzip", "bundle.zip", "pip-manifest.txt"]) + num_pakages = 0 for line in open("pip-manifest.txt"): line = line.strip() if not line or line.startswith("#"): @@ -102,7 +123,52 @@ def pip2tgz(): new_input_dir = "%s-%s" %(pkg, version) os.rename(old_input_dir, new_input_dir) output_name = os.path.join("..", new_input_dir + ".tar.gz") - check_call(["tar", "-czvf", output_name, new_input_dir]) + check_call(["tar", "-czf", output_name, new_input_dir]) + num_pakages += 1 os.chdir(outdir) shutil.rmtree(tempdir) + print "%s .tar.gz saved to %r" %(num_pakages, argv[1]) + +def pip2pi(argv=sys.argv): + if len(argv) < 3: + print dedent(""" + usage: pip2pi TARGET PACKAGE_NAME ... + + Combines pip2tgz and dir2pi, adding PACKAGE_NAME to package index + TARGET. + + If TARGET contains ':' it will be treated as a remote path. The + package index will be built locally then rsync will be used to copy + it to the remote host. + + For example, to create a remote index: + + $ pip2pi example.com:/var/www/packages/ -r requirements.txt + + Or to create a local index: + + $ pip2pi ~/Sites/packages/ foo==1.2 + """) + sys.exit(1) + + target = argv[1] + pip_packages = argv[2:] + if ":" in target: + is_remote = True + working_dir = tempfile.mkdtemp(prefix="pip2pi-working-dir") + atexit.register(lambda: shutil.rmtree(working_dir)) + else: + is_remote = False + working_dir = target + + pip2tgz([argv[0], working_dir] + pip_packages) + dir2pi([argv[0], working_dir]) + + if is_remote: + print "copying temporary index at %r to %r..." %(working_dir, target) + check_call([ + "rsync", + "--recursive", "--progress", "--links", + working_dir + "/", target + "/", + ]) diff --git a/pip2dijkstra b/pip2dijkstra deleted file mode 100755 index 91e0c0f8731..00000000000 --- a/pip2dijkstra +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash - -IFS="`printf "\n\t"`" -set -eu - -if [[ "$#" -lt 1 ]]; then - echo "usage: $0 PACKAGE_NAME ..." - exit 1 -fi - -pip2tgz="$(dirname "$0")/pip2tgz" -pkg2dijkstra="$(dirname "$0")/pkg2dijkstra" - -tempdir="/tmp/_pip2dijkstra_temp/" -mkdir "$tempdir" 2>&1 > /dev/null - -$pip2tgz "$tempdir" "$@" -files=($tempdir/*) -$pkg2dijkstra "${files[@]}" -rm -r "$tempdir" diff --git a/pip2pi b/pip2pi new file mode 100755 index 00000000000..551b1627839 --- /dev/null +++ b/pip2pi @@ -0,0 +1,3 @@ +#!/usr/bin/env python +from libpip2pi.commands import pip2pi +pip2pi() diff --git a/pip2tgz b/pip2tgz index 38c22c4db89..2ad8575f622 100755 --- a/pip2tgz +++ b/pip2tgz @@ -1,3 +1,3 @@ #!/usr/bin/env python -from pip2pi.commands import pip2tgz +from libpip2pi.commands import pip2tgz pip2tgz() diff --git a/pkg2dijkstra b/pkg2dijkstra deleted file mode 100755 index 30960d3a1b1..00000000000 --- a/pkg2dijkstra +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash - -IFS="`printf "\n\t"`" -set -eu - -if [[ -z "${1-}" ]]; then - echo "usage: $0 (foo-1.2.3.tar.gz|foo/) ..." - exit 1 -fi - -targets=("$@") -for (( i = 0; i < $#; i += 1)); do - target="${targets[$i]}" - if [[ -d "$target" ]]; then - echo "looks like a source directory. Doing some magic to make that work..." - pushd "$target" > /dev/null - rm -r dist/ 2>&1 > /dev/null || true - python setup.py sdist - target="$(echo "$PWD/dist/"*)" - popd > /dev/null - targets[$i]="$target" - fi -done - -scp "${targets[@]}" luminaut@dijkstra.local:/var/www/pypi/ - -ssh luminaut@dijkstra.local "cd /var/www/; ./dir2pypi pypi" diff --git a/setup.py b/setup.py index 6aabf9db4f6..4346d78595a 100644 --- a/setup.py +++ b/setup.py @@ -15,5 +15,5 @@ author_email="david@wolever.net", description="pip2pi builds a PyPI-compatible package repository from pip requirements", packages=find_packages(), - scripts=["pip2tgz", "dir2pi"], + scripts=["pip2pi", "pip2tgz", "dir2pi"], ) From 6fc1e19f3d72f0cfc852e3a84fbf0d4d67fa8be4 Mon Sep 17 00:00:00 2001 From: Igor Kalnitsky Date: Sun, 22 Jan 2012 00:41:36 +0200 Subject: [PATCH 072/709] Added VHDL Lexer. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index e5d0d3b3408..c52aa67b280 100644 --- a/AUTHORS +++ b/AUTHORS @@ -45,6 +45,7 @@ Other contributors, listed alphabetically, are: * Ben Hollis -- Mason lexer * Tim Howard -- BlitzMax lexer * Dennis Kaarsemaker -- sources.list lexer +* Igor Kalnitsky -- vhdl lexer * Benjamin Kowarsch -- Modula-2 lexer * Marek Kubica -- Scheme lexer * Jochen Kupperschmidt -- Markdown processor From 0dce2ff10ad23017cbd6acc06bedb3b7bf058361 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Wed, 25 Jan 2012 21:54:56 +0100 Subject: [PATCH 073/709] Add attribution and changelog entry for Opa. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index e5d0d3b3408..c432b3bf39f 100644 --- a/AUTHORS +++ b/AUTHORS @@ -45,6 +45,7 @@ Other contributors, listed alphabetically, are: * Ben Hollis -- Mason lexer * Tim Howard -- BlitzMax lexer * Dennis Kaarsemaker -- sources.list lexer +* Adam Koprowski -- Opa lexer * Benjamin Kowarsch -- Modula-2 lexer * Marek Kubica -- Scheme lexer * Jochen Kupperschmidt -- Markdown processor From e0a2bed64ce8e7cd05f9b9ca2297eb95ebc79b82 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Wed, 25 Jan 2012 22:05:00 +0100 Subject: [PATCH 074/709] Add changelog entry. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index c432b3bf39f..2f3f83e625c 100644 --- a/AUTHORS +++ b/AUTHORS @@ -57,6 +57,7 @@ Other contributors, listed alphabetically, are: * Stephen McKamey -- Duel/JBST lexer * Brian McKenna -- F# lexer * Lukas Meuser -- BBCode formatter, Lua lexer +* Hong Minhee -- HTTP lexer * Michael Mior -- Awk lexer * Paulo Moura -- Logtalk lexer * Mher Movsisyan -- DTD lexer From 490ec10cf47ed14525accb87f62e9b6740ef6778 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Wed, 25 Jan 2012 22:06:47 +0100 Subject: [PATCH 075/709] Add changelog entry. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 2f3f83e625c..b7e167ca14e 100644 --- a/AUTHORS +++ b/AUTHORS @@ -71,6 +71,7 @@ Other contributors, listed alphabetically, are: * Benjamin Peterson -- Test suite refactoring * Dominik Picheta -- Nimrod lexer * Justin Reidy -- MXML lexer +* Norman Richards -- JSON lexer * Lubomir Rintel -- GoodData MAQL and CL lexers * Andre Roberge -- Tango style * Konrad Rudolph -- LaTeX formatter enhancements From 5d2aba23aedc5b80a25a104b7fc126d3fe939b47 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sat, 4 Feb 2012 08:52:13 +0100 Subject: [PATCH 076/709] SNOBOL: add to changelog, authors, move to other.py, add mimetype --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index b7e167ca14e..2e36b5a8a6b 100644 --- a/AUTHORS +++ b/AUTHORS @@ -36,6 +36,7 @@ Other contributors, listed alphabetically, are: * Matt Good -- Genshi, Cheetah lexers * Patrick Gotthardt -- PHP namespaces support * Olivier Guibe -- Asymptote lexer +* Martin Harriman -- SNOBOL lexer * Matthew Harrison -- SVG formatter * Steven Hazel -- Tcl lexer * Aslak Hellesøy -- Gherkin lexer From 2a236342a967318bd787479b54ed56ef6d138a78 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sat, 4 Feb 2012 08:58:43 +0100 Subject: [PATCH 077/709] MoonScript: add author, changelog entry, versionadded --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 2e36b5a8a6b..ba063e23c09 100644 --- a/AUTHORS +++ b/AUTHORS @@ -22,6 +22,7 @@ Other contributors, listed alphabetically, are: * Frits van Bommel -- assembler lexers * Pierre Bourdon -- bugfixes * Hiram Chirino -- Scaml and Jade lexers +* Leaf Corcoran -- MoonScript lexer * Christopher Creutzig -- MuPAD lexer * Pete Curry -- bugfixes * Owen Durni -- haXe lexer From 64c800d180a0913f6750a184bb1f8ca97a57d251 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sat, 4 Feb 2012 19:51:11 +0100 Subject: [PATCH 078/709] Urbiscript: move to other.py, fix example file, add attribution and changelog entry. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index ba063e23c09..c581efcbf06 100644 --- a/AUTHORS +++ b/AUTHORS @@ -72,6 +72,7 @@ Other contributors, listed alphabetically, are: * Ronny Pfannschmidt -- BBCode lexer * Benjamin Peterson -- Test suite refactoring * Dominik Picheta -- Nimrod lexer +* Clément Prévost -- UrbiScript lexer * Justin Reidy -- MXML lexer * Norman Richards -- JSON lexer * Lubomir Rintel -- GoodData MAQL and CL lexers From 21c5b941eb5d837b8fd86f55ceca7aefa4dfe4b3 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sat, 4 Feb 2012 19:58:58 +0100 Subject: [PATCH 079/709] OpenEdge: add changelog/attribution. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index c581efcbf06..f7672ef966a 100644 --- a/AUTHORS +++ b/AUTHORS @@ -93,6 +93,7 @@ Other contributors, listed alphabetically, are: * Jeremy Thurgood -- Erlang, Squid config lexers * Erick Tryzelaar -- Felix lexer * Daniele Varrazzo -- PostgreSQL lexers +* Abe Voelker -- OpenEdge ABL lexer * Whitney Young -- ObjectiveC lexer * Nathan Weizenbaum -- Haml and Sass lexers * Dietmar Winkler -- Modelica lexer From 23f0b524655045bb1823c4f06d5deb513da23d11 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 5 Feb 2012 10:14:52 +0100 Subject: [PATCH 080/709] Module reorganizing: move sql stuff together, create new "shell" module. --- pygments/lexers/shell.py | 273 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 273 insertions(+) create mode 100644 pygments/lexers/shell.py diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py new file mode 100644 index 00000000000..2e0d4223ad5 --- /dev/null +++ b/pygments/lexers/shell.py @@ -0,0 +1,273 @@ +# -*- coding: utf-8 -*- +""" + pygments.lexers.shell + ~~~~~~~~~~~~~~~~~~~~~ + + Lexers for various shells. + + :copyright: Copyright 2006-2011 by the Pygments team, see AUTHORS. + :license: BSD, see LICENSE for details. +""" + +import re + +from pygments.lexer import Lexer, RegexLexer, do_insertions, bygroups, include +from pygments.token import Punctuation, \ + Text, Comment, Operator, Keyword, Name, String, Number, Generic +from pygments.util import shebang_matches + + +__all__ = ['BashLexer', 'BashSessionLexer', 'TcshLexer', 'BatchLexer'] + +line_re = re.compile('.*?\n') + + +class BashLexer(RegexLexer): + """ + Lexer for (ba|k|)sh shell scripts. + + *New in Pygments 0.6.* + """ + + name = 'Bash' + aliases = ['bash', 'sh', 'ksh'] + filenames = ['*.sh', '*.ksh', '*.bash', '*.ebuild', '*.eclass'] + mimetypes = ['application/x-sh', 'application/x-shellscript'] + + tokens = { + 'root': [ + include('basic'), + (r'\$\(\(', Keyword, 'math'), + (r'\$\(', Keyword, 'paren'), + (r'\${#?', Keyword, 'curly'), + (r'`', String.Backtick, 'backticks'), + include('data'), + ], + 'basic': [ + (r'\b(if|fi|else|while|do|done|for|then|return|function|case|' + r'select|continue|until|esac|elif)\s*\b', + Keyword), + (r'\b(alias|bg|bind|break|builtin|caller|cd|command|compgen|' + r'complete|declare|dirs|disown|echo|enable|eval|exec|exit|' + r'export|false|fc|fg|getopts|hash|help|history|jobs|kill|let|' + r'local|logout|popd|printf|pushd|pwd|read|readonly|set|shift|' + r'shopt|source|suspend|test|time|times|trap|true|type|typeset|' + r'ulimit|umask|unalias|unset|wait)\s*\b(?!\.)', + Name.Builtin), + (r'#.*\n', Comment), + (r'\\[\w\W]', String.Escape), + (r'(\b\w+)(\s*)(=)', bygroups(Name.Variable, Text, Operator)), + (r'[\[\]{}()=]', Operator), + (r'<<-?\s*(\'?)\\?(\w+)[\w\W]+?\2', String), + (r'&&|\|\|', Operator), + ], + 'data': [ + (r'(?s)\$?"(\\\\|\\[0-7]+|\\.|[^"\\])*"', String.Double), + (r"(?s)\$?'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single), + (r';', Text), + (r'\s+', Text), + (r'[^=\s\n\[\]{}()$"\'`\\<]+', Text), + (r'\d+(?= |\Z)', Number), + (r'\$#?(\w+|.)', Name.Variable), + (r'<', Text), + ], + 'curly': [ + (r'}', Keyword, '#pop'), + (r':-', Keyword), + (r'[a-zA-Z0-9_]+', Name.Variable), + (r'[^}:"\'`$]+', Punctuation), + (r':', Punctuation), + include('root'), + ], + 'paren': [ + (r'\)', Keyword, '#pop'), + include('root'), + ], + 'math': [ + (r'\)\)', Keyword, '#pop'), + (r'[-+*/%^|&]|\*\*|\|\|', Operator), + (r'\d+', Number), + include('root'), + ], + 'backticks': [ + (r'`', String.Backtick, '#pop'), + include('root'), + ], + } + + def analyse_text(text): + return shebang_matches(text, r'(ba|z|)sh') + + +class BashSessionLexer(Lexer): + """ + Lexer for simplistic shell sessions. + + *New in Pygments 1.1.* + """ + + name = 'Bash Session' + aliases = ['console'] + filenames = ['*.sh-session'] + mimetypes = ['application/x-shell-session'] + + def get_tokens_unprocessed(self, text): + bashlexer = BashLexer(**self.options) + + pos = 0 + curcode = '' + insertions = [] + + for match in line_re.finditer(text): + line = match.group() + m = re.match(r'^((?:|sh\S*?|\w+\S+[@:]\S+(?:\s+\S+)?|\[\S+[@:]' + r'[^\n]+\].+)[$#%])(.*\n?)', line) + if m: + # To support output lexers (say diff output), the output + # needs to be broken by prompts whenever the output lexer + # changes. + if not insertions: + pos = match.start() + + insertions.append((len(curcode), + [(0, Generic.Prompt, m.group(1))])) + curcode += m.group(2) + elif line.startswith('>'): + insertions.append((len(curcode), + [(0, Generic.Prompt, line[:1])])) + curcode += line[1:] + else: + if insertions: + toks = bashlexer.get_tokens_unprocessed(curcode) + for i, t, v in do_insertions(insertions, toks): + yield pos+i, t, v + yield match.start(), Generic.Output, line + insertions = [] + curcode = '' + if insertions: + for i, t, v in do_insertions(insertions, + bashlexer.get_tokens_unprocessed(curcode)): + yield pos+i, t, v + + +class BatchLexer(RegexLexer): + """ + Lexer for the DOS/Windows Batch file format. + + *New in Pygments 0.7.* + """ + name = 'Batchfile' + aliases = ['bat'] + filenames = ['*.bat', '*.cmd'] + mimetypes = ['application/x-dos-batch'] + + flags = re.MULTILINE | re.IGNORECASE + + tokens = { + 'root': [ + # Lines can start with @ to prevent echo + (r'^\s*@', Punctuation), + (r'^(\s*)(rem\s.*)$', bygroups(Text, Comment)), + (r'".*?"', String.Double), + (r"'.*?'", String.Single), + # If made more specific, make sure you still allow expansions + # like %~$VAR:zlt + (r'%%?[~$:\w]+%?', Name.Variable), + (r'::.*', Comment), # Technically :: only works at BOL + (r'(set)(\s+)(\w+)', bygroups(Keyword, Text, Name.Variable)), + (r'(call)(\s+)(:\w+)', bygroups(Keyword, Text, Name.Label)), + (r'(goto)(\s+)(\w+)', bygroups(Keyword, Text, Name.Label)), + (r'\b(set|call|echo|on|off|endlocal|for|do|goto|if|pause|' + r'setlocal|shift|errorlevel|exist|defined|cmdextversion|' + r'errorlevel|else|cd|md|del|deltree|cls|choice)\b', Keyword), + (r'\b(equ|neq|lss|leq|gtr|geq)\b', Operator), + include('basic'), + (r'.', Text), + ], + 'echo': [ + # Escapes only valid within echo args? + (r'\^\^|\^<|\^>|\^\|', String.Escape), + (r'\n', Text, '#pop'), + include('basic'), + (r'[^\'"^]+', Text), + ], + 'basic': [ + (r'".*?"', String.Double), + (r"'.*?'", String.Single), + (r'`.*?`', String.Backtick), + (r'-?\d+', Number), + (r',', Punctuation), + (r'=', Operator), + (r'/\S+', Name), + (r':\w+', Name.Label), + (r'\w:\w+', Text), + (r'([<>|])(\s*)(\w+)', bygroups(Punctuation, Text, Name)), + ], + } + + +class TcshLexer(RegexLexer): + """ + Lexer for tcsh scripts. + + *New in Pygments 0.10.* + """ + + name = 'Tcsh' + aliases = ['tcsh', 'csh'] + filenames = ['*.tcsh', '*.csh'] + mimetypes = ['application/x-csh'] + + tokens = { + 'root': [ + include('basic'), + (r'\$\(', Keyword, 'paren'), + (r'\${#?', Keyword, 'curly'), + (r'`', String.Backtick, 'backticks'), + include('data'), + ], + 'basic': [ + (r'\b(if|endif|else|while|then|foreach|case|default|' + r'continue|goto|breaksw|end|switch|endsw)\s*\b', + Keyword), + (r'\b(alias|alloc|bg|bindkey|break|builtins|bye|caller|cd|chdir|' + r'complete|dirs|echo|echotc|eval|exec|exit|' + r'fg|filetest|getxvers|glob|getspath|hashstat|history|hup|inlib|jobs|kill|' + r'limit|log|login|logout|ls-F|migrate|newgrp|nice|nohup|notify|' + r'onintr|popd|printenv|pushd|rehash|repeat|rootnode|popd|pushd|set|shift|' + r'sched|setenv|setpath|settc|setty|setxvers|shift|source|stop|suspend|' + r'source|suspend|telltc|time|' + r'umask|unalias|uncomplete|unhash|universe|unlimit|unset|unsetenv|' + r'ver|wait|warp|watchlog|where|which)\s*\b', + Name.Builtin), + (r'#.*\n', Comment), + (r'\\[\w\W]', String.Escape), + (r'(\b\w+)(\s*)(=)', bygroups(Name.Variable, Text, Operator)), + (r'[\[\]{}()=]+', Operator), + (r'<<\s*(\'?)\\?(\w+)[\w\W]+?\2', String), + ], + 'data': [ + (r'(?s)"(\\\\|\\[0-7]+|\\.|[^"\\])*"', String.Double), + (r"(?s)'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single), + (r'\s+', Text), + (r'[^=\s\n\[\]{}()$"\'`\\]+', Text), + (r'\d+(?= |\Z)', Number), + (r'\$#?(\w+|.)', Name.Variable), + ], + 'curly': [ + (r'}', Keyword, '#pop'), + (r':-', Keyword), + (r'[a-zA-Z0-9_]+', Name.Variable), + (r'[^}:"\'`$]+', Punctuation), + (r':', Punctuation), + include('root'), + ], + 'paren': [ + (r'\)', Keyword, '#pop'), + include('root'), + ], + 'backticks': [ + (r'`', String.Backtick, '#pop'), + include('root'), + ], + } From 7290bb71d8d80eba1b02118ef713576fcb46907c Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 5 Feb 2012 10:21:00 +0100 Subject: [PATCH 081/709] Style fixes. --- pygments/lexers/shell.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 2e0d4223ad5..e2fa5191997 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -231,12 +231,12 @@ class TcshLexer(RegexLexer): r'continue|goto|breaksw|end|switch|endsw)\s*\b', Keyword), (r'\b(alias|alloc|bg|bindkey|break|builtins|bye|caller|cd|chdir|' - r'complete|dirs|echo|echotc|eval|exec|exit|' - r'fg|filetest|getxvers|glob|getspath|hashstat|history|hup|inlib|jobs|kill|' + r'complete|dirs|echo|echotc|eval|exec|exit|fg|filetest|getxvers|' + r'glob|getspath|hashstat|history|hup|inlib|jobs|kill|' r'limit|log|login|logout|ls-F|migrate|newgrp|nice|nohup|notify|' - r'onintr|popd|printenv|pushd|rehash|repeat|rootnode|popd|pushd|set|shift|' - r'sched|setenv|setpath|settc|setty|setxvers|shift|source|stop|suspend|' - r'source|suspend|telltc|time|' + r'onintr|popd|printenv|pushd|rehash|repeat|rootnode|popd|pushd|' + r'set|shift|sched|setenv|setpath|settc|setty|setxvers|shift|' + r'source|stop|suspend|source|suspend|telltc|time|' r'umask|unalias|uncomplete|unhash|universe|unlimit|unset|unsetenv|' r'ver|wait|warp|watchlog|where|which)\s*\b', Name.Builtin), From 908653a4bc21c7e75d3cc3c46b2bf8f4daaddb82 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 5 Feb 2012 12:12:42 +0100 Subject: [PATCH 082/709] Closes #654: add PowerShell lexer. --- pygments/lexers/shell.py | 89 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 88 insertions(+), 1 deletion(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index e2fa5191997..51c4ec3cfa1 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -17,7 +17,8 @@ from pygments.util import shebang_matches -__all__ = ['BashLexer', 'BashSessionLexer', 'TcshLexer', 'BatchLexer'] +__all__ = ['BashLexer', 'BashSessionLexer', 'TcshLexer', 'BatchLexer', + 'PowerShellLexer'] line_re = re.compile('.*?\n') @@ -271,3 +272,89 @@ class TcshLexer(RegexLexer): include('root'), ], } + + +class PowerShellLexer(RegexLexer): + """ + For Windows PowerShell code. + + *New in Pygments 1.5.* + """ + name = 'PowerShell' + aliases = ['powershell', 'posh', 'ps1'] + filenames = ['*.ps1'] + mimetypes = ['text/x-powershell'] + + flags = re.DOTALL | re.IGNORECASE | re.MULTILINE + + keywords = ( + 'while validateset validaterange validatepattern validatelength ' + 'validatecount until trap switch return ref process param parameter in ' + 'if global: function foreach for finally filter end elseif else ' + 'dynamicparam do default continue cmdletbinding break begin alias \\? ' + '% #script #private #local #global mandatory parametersetname position ' + 'valuefrompipeline valuefrompipelinebypropertyname ' + 'valuefromremainingarguments helpmessage try catch').split() + + operators = ( + 'and as band bnot bor bxor casesensitive ccontains ceq cge cgt cle ' + 'clike clt cmatch cne cnotcontains cnotlike cnotmatch contains ' + 'creplace eq exact f file ge gt icontains ieq ige igt ile ilike ilt ' + 'imatch ine inotcontains inotlike inotmatch ireplace is isnot le like ' + 'lt match ne not notcontains notlike notmatch or regex replace ' + 'wildcard').split() + + verbs = ( + 'write where wait use update unregister undo trace test tee take ' + 'suspend stop start split sort skip show set send select scroll resume ' + 'restore restart resolve resize reset rename remove register receive ' + 'read push pop ping out new move measure limit join invoke import ' + 'group get format foreach export expand exit enter enable disconnect ' + 'disable debug cxnew copy convertto convertfrom convert connect ' + 'complete compare clear checkpoint aggregate add').split() + + commenthelp = ( + 'component description example externalhelp forwardhelpcategory ' + 'forwardhelptargetname forwardhelptargetname functionality inputs link ' + 'notes outputs parameter remotehelprunspace role synopsis').split() + + tokens = { + 'root': [ + (r'\s+', Text), + (r'^(\s*#[#\s]*)(\.(?:%s))([^\n]*$)' % '|'.join(commenthelp), + bygroups(Comment, String.Doc, Comment)), + (r'#[^\n]*?$', Comment), + (r'(<|<)#', Comment.Multiline, 'multline'), + (r'@"\n.*?\n"@', String.Heredoc), + (r"@'\n.*?\n'@", String.Heredoc), + (r'"', String.Double, 'string'), + (r"'([^']|'')*'", String.Single), + (r'(\$|@@|@)((global|script|private|env):)?[a-z0-9_]+', + Name.Variable), + (r'(%s)\b' % '|'.join(keywords), Keyword), + (r'-(%s)\b' % '|'.join(operators), Operator), + (r'(%s)-[a-z_][a-z0-9_]*\b' % '|'.join(verbs), Name.Builtin), + (r'\[[a-z_\[][a-z0-9_. `,\[\]]*\]', Name.Constant), # .net [type]s + (r'-[a-z_][a-z0-9_]*', Name), + (r'\w+', Name), + (r'[.,{}\[\]$()=+*/\\&%!~?^`|<>-]', Punctuation), + ], + 'multline': [ + (r'[^#&.]+', Comment.Multiline), + (r'#(>|>)', Comment.Multiline, '#pop'), + (r'\.(%s)' % '|'.join(commenthelp), String.Doc), + (r'[#&.]', Comment.Multiline), + ], + 'string': [ + (r'[^$`"]+', String.Double), + (r'\$\(', String.Interpol, 'interpol'), + (r'`"|""', String.Double), + (r'[`$]', String.Double), + (r'"', String.Double, '#pop'), + ], + 'interpol': [ + (r'[^$)]+', String.Interpol), + (r'\$\(', String.Interpol, '#push'), + (r'\)', String.Interpol, '#pop'), + ] + } From da345cafe8b9bc15c8d72589c904afd83e671e17 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 5 Feb 2012 12:18:36 +0100 Subject: [PATCH 083/709] Closes #715: Add Dart lexer. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index d9633da616d..898a2eed8b3 100644 --- a/AUTHORS +++ b/AUTHORS @@ -52,6 +52,7 @@ Other contributors, listed alphabetically, are: * Marek Kubica -- Scheme lexer * Jochen Kupperschmidt -- Markdown processor * Gerd Kurzbach -- Modelica lexer +* Olov Lassus -- Dart lexer * Mark Lee -- Vala lexer * Ben Mabey -- Gherkin lexer * Simone Margaritelli -- Hybris lexer From 2bb2cf0e48d75e91ef926bf608a4ad8e1fc80baa Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 5 Feb 2012 12:58:02 +0100 Subject: [PATCH 084/709] Copyright update. --- pygments/lexers/shell.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 51c4ec3cfa1..8c78d158df0 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -5,7 +5,7 @@ Lexers for various shells. - :copyright: Copyright 2006-2011 by the Pygments team, see AUTHORS. + :copyright: Copyright 2006-2012 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. """ From 591ee0346866ac165fb9b1dcd79e073a447005c4 Mon Sep 17 00:00:00 2001 From: sylvestre Date: Sat, 18 Feb 2012 11:56:57 +0100 Subject: [PATCH 085/709] Add the support of the Scilab language --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 8d36391ece6..31732810924 100644 --- a/AUTHORS +++ b/AUTHORS @@ -106,5 +106,6 @@ Other contributors, listed alphabetically, are: * Davy Wybiral -- Clojure lexer * Diego Zamboni -- CFengine3 lexer * Alex Zimin -- Nemerle lexer +* Sylvestre Ledru -- Scilab lexer Many thanks for all contributions! From 31918e6a1fc35173386e2f9a4a6a15d51063969d Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sat, 18 Feb 2012 12:48:25 +0100 Subject: [PATCH 086/709] Scilab: move builtins to separate file and small fixes. --- AUTHORS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index 31732810924..5029cf6aad9 100644 --- a/AUTHORS +++ b/AUTHORS @@ -55,6 +55,7 @@ Other contributors, listed alphabetically, are: * Jochen Kupperschmidt -- Markdown processor * Gerd Kurzbach -- Modelica lexer * Olov Lassus -- Dart lexer +* Sylvestre Ledru -- Scilab lexer * Mark Lee -- Vala lexer * Ben Mabey -- Gherkin lexer * Simone Margaritelli -- Hybris lexer @@ -106,6 +107,5 @@ Other contributors, listed alphabetically, are: * Davy Wybiral -- Clojure lexer * Diego Zamboni -- CFengine3 lexer * Alex Zimin -- Nemerle lexer -* Sylvestre Ledru -- Scilab lexer Many thanks for all contributions! From 46b4843d3511c6627fb907409ffe23cd4e3a5a32 Mon Sep 17 00:00:00 2001 From: James Polley Date: Mon, 20 Feb 2012 13:18:36 +1100 Subject: [PATCH 087/709] Extend the parsing of Generic.Prompt when lexing a shell session to support the case where the shell is running inside a virtualenv In this case, prompts look like this: (virtualenv-name)user@host:~$ --- pygments/lexers/shell.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 8c78d158df0..9fd3d111593 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -121,8 +121,8 @@ def get_tokens_unprocessed(self, text): for match in line_re.finditer(text): line = match.group() - m = re.match(r'^((?:|sh\S*?|\w+\S+[@:]\S+(?:\s+\S+)?|\[\S+[@:]' - r'[^\n]+\].+)[$#%])(.*\n?)', line) + m = re.match(r'^((?:\(\S+\))?(?:|sh\S*?|\w+\S+[@:]\S+(?:\s+\S+)' + r'?|\[\S+[@:][^\n]+\].+)[$#%])(.*\n?)' , line) if m: # To support output lexers (say diff output), the output # needs to be broken by prompts whenever the output lexer From 1b8877e716ab55fe070cc95df214b4d41aceb96c Mon Sep 17 00:00:00 2001 From: David Wolever Date: Thu, 23 Feb 2012 22:01:29 -0500 Subject: [PATCH 088/709] Fix typo 'packags' -> 'packages' --- libpip2pi/commands.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index f29baf812d0..42ef7743e80 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -43,7 +43,7 @@ def dir2pi(argv=sys.argv): $ ls packages/ foo-1.2.tar.gz - $ dir2pi packags/ + $ dir2pi packages/ $ find packages/ packages/ packages/foo-1.2.tar.gz From 8534e6b8a671f352f2616729d92b600da6dab7eb Mon Sep 17 00:00:00 2001 From: Carlos Galdino Date: Wed, 29 Feb 2012 17:22:02 -0300 Subject: [PATCH 089/709] Add Elixir and Elixir Console lexer --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 5029cf6aad9..cea647a9c13 100644 --- a/AUTHORS +++ b/AUTHORS @@ -29,6 +29,7 @@ Other contributors, listed alphabetically, are: * Nick Efford -- Python 3 lexer * Artem Egorkine -- terminal256 formatter * James H. Fisher -- PostScript lexer +* Carlos Galdino -- Elixir and Elixir Console lexers * Naveen Garg -- Autohotkey lexer * Laurent Gautier -- R/S lexer * Alex Gaynor -- PyPy log lexer From d772765fb76729355a8535b415d5e5db8e7650e3 Mon Sep 17 00:00:00 2001 From: Tim Hatch Date: Fri, 9 Mar 2012 12:06:19 -0800 Subject: [PATCH 090/709] Minor lint fixes --- pygments/lexers/other.py | 12 ++++++------ pygments/lexers/shell.py | 6 +++--- pygments/lexers/sql.py | 8 ++++---- 3 files changed, 13 insertions(+), 13 deletions(-) --- pygments/lexers/shell.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 8c78d158df0..06700f3e388 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -67,7 +67,7 @@ class BashLexer(RegexLexer): (r"(?s)\$?'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single), (r';', Text), (r'\s+', Text), - (r'[^=\s\n\[\]{}()$"\'`\\<]+', Text), + (r'[^=\s\[\]{}()$"\'`\\<]+', Text), (r'\d+(?= |\Z)', Number), (r'\$#?(\w+|.)', Name.Variable), (r'<', Text), @@ -251,7 +251,7 @@ class TcshLexer(RegexLexer): (r'(?s)"(\\\\|\\[0-7]+|\\.|[^"\\])*"', String.Double), (r"(?s)'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single), (r'\s+', Text), - (r'[^=\s\n\[\]{}()$"\'`\\]+', Text), + (r'[^=\s\[\]{}()$"\'`\\]+', Text), (r'\d+(?= |\Z)', Number), (r'\$#?(\w+|.)', Name.Variable), ], @@ -315,7 +315,7 @@ class PowerShellLexer(RegexLexer): commenthelp = ( 'component description example externalhelp forwardhelpcategory ' - 'forwardhelptargetname forwardhelptargetname functionality inputs link ' + 'forwardhelptargetname functionality inputs link ' 'notes outputs parameter remotehelprunspace role synopsis').split() tokens = { From f751c8003551584c7b562b9f52baafacd7b3363d Mon Sep 17 00:00:00 2001 From: "Rafael G. Martins" Date: Sat, 10 Mar 2012 00:32:27 -0300 Subject: [PATCH 091/709] Added more vim and bash configuration file names. --- pygments/lexers/shell.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 8c78d158df0..61069f7216e 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -32,7 +32,8 @@ class BashLexer(RegexLexer): name = 'Bash' aliases = ['bash', 'sh', 'ksh'] - filenames = ['*.sh', '*.ksh', '*.bash', '*.ebuild', '*.eclass'] + filenames = ['*.sh', '*.ksh', '*.bash', '*.ebuild', '*.eclass', + '.bashrc', 'bashrc', '.bash_*', 'bash_*'] mimetypes = ['application/x-sh', 'application/x-shellscript'] tokens = { From e39a6a36d18c3379ba4719cfb231717732fc56d6 Mon Sep 17 00:00:00 2001 From: David Wolever Date: Fri, 9 Mar 2012 20:47:51 -0800 Subject: [PATCH 092/709] Fixing pip2pi when a relative path is specified --- libpip2pi/commands.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index 42ef7743e80..9885f57b091 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -160,7 +160,7 @@ def pip2pi(argv=sys.argv): atexit.register(lambda: shutil.rmtree(working_dir)) else: is_remote = False - working_dir = target + working_dir = os.path.abspath(target) pip2tgz([argv[0], working_dir] + pip_packages) dir2pi([argv[0], working_dir]) From eb286127f33ee9baca95119ee30fd23e1cf5e153 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sat, 10 Mar 2012 14:39:32 +0100 Subject: [PATCH 093/709] Add changelog entry and author for Tea lexer. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index cea647a9c13..df51a66a4ad 100644 --- a/AUTHORS +++ b/AUTHORS @@ -48,6 +48,7 @@ Other contributors, listed alphabetically, are: * Ben Hollis -- Mason lexer * Tim Howard -- BlitzMax lexer * Ivan Inozemtsev -- Fantom lexer +* Brian R. Jackson -- Tea lexer * Dennis Kaarsemaker -- sources.list lexer * Igor Kalnitsky -- vhdl lexer * Adam Koprowski -- Opa lexer From c65bfe53ffd4816b7c8ef82cb3218bc98cf74b73 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sat, 10 Mar 2012 22:02:09 +0100 Subject: [PATCH 094/709] Move Kotlin to JVM lexers, add changelog and authors entry. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index df51a66a4ad..83bbee57b4e 100644 --- a/AUTHORS +++ b/AUTHORS @@ -96,6 +96,7 @@ Other contributors, listed alphabetically, are: * Kirill Simonov -- YAML lexer * Steve Spigarelli -- XQuery lexer * Jerome St-Louis -- eC lexer +* James Strachan -- Kotlin lexer * Tiberius Teng -- default style overhaul * Jeremy Thurgood -- Erlang, Squid config lexers * Erick Tryzelaar -- Felix lexer From 37e084724a9ca923ccdaaf6ef1bf66ab7139ce21 Mon Sep 17 00:00:00 2001 From: David Wolever Date: Sun, 11 Mar 2012 14:23:37 -0700 Subject: [PATCH 095/709] Adding license and other things to setup.py, bump version to 0.1.1 --- setup.py | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py index 4346d78595a..f81f3733127 100644 --- a/setup.py +++ b/setup.py @@ -9,11 +9,28 @@ setup( name="pip2pi", - version="0.1", + version="0.1.1", url="https://github.com/wolever/pip2pi", author="David Wolever", author_email="david@wolever.net", - description="pip2pi builds a PyPI-compatible package repository from pip requirements", + description=""" + pip2pi builds a PyPI-compatible package repository from pip + requirements + """, + long_desc=open("README.rst", "U").read(), packages=find_packages(), scripts=["pip2pi", "pip2tgz", "dir2pi"], + license="BSD", + classifiers=[ x.strip() for x in """ + Development Status :: 4 - Beta + Environment :: Console + Intended Audience :: Developers + Intended Audience :: System Administrators + License :: OSI Approved :: BSD License + Natural Language :: English + Operating System :: OS Independent + Programming Language :: Python + Topic :: Software Development + Topic :: Utilities + """.split() if x.strip() ], ) From c0e77adc52c49988a6c8ebac380bd65daafee9ef Mon Sep 17 00:00:00 2001 From: David Wolever Date: Sun, 11 Mar 2012 14:25:31 -0700 Subject: [PATCH 096/709] Fixing classifiers a bit --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index f81f3733127..6a5d9d465c6 100644 --- a/setup.py +++ b/setup.py @@ -32,5 +32,5 @@ Programming Language :: Python Topic :: Software Development Topic :: Utilities - """.split() if x.strip() ], + """.split("\n") if x.strip() ], ) From 2b0216104ebcc552227879c1739c453bcd169880 Mon Sep 17 00:00:00 2001 From: David Wolever Date: Sun, 11 Mar 2012 14:27:20 -0700 Subject: [PATCH 097/709] Should be 'long_description', not 'long_desc' --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 6a5d9d465c6..beb1a38155c 100644 --- a/setup.py +++ b/setup.py @@ -17,7 +17,7 @@ pip2pi builds a PyPI-compatible package repository from pip requirements """, - long_desc=open("README.rst", "U").read(), + long_description=open("README.rst", "U").read(), packages=find_packages(), scripts=["pip2pi", "pip2tgz", "dir2pi"], license="BSD", From 9e3e2e181915f2dbe5bbe513bc065bed0ec377f9 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Wed, 4 Apr 2012 08:45:37 +0200 Subject: [PATCH 098/709] Test suite fix, authors and changelog entry for Julia --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 83bbee57b4e..a76b538e081 100644 --- a/AUTHORS +++ b/AUTHORS @@ -74,6 +74,7 @@ Other contributors, listed alphabetically, are: * Nam T. Nguyen -- Monokai style * Jesper Noehr -- HTML formatter "anchorlinenos" * Jonas Obrist -- BBCode lexer +* Patrick O'Leary -- Julia lexer * David Oliva -- Rebol lexer * Jon Parise -- Protocol buffers lexer * Ronny Pfannschmidt -- BBCode lexer From 252c073ad8ad8d610d5bd45153ea48642c5aa701 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Wed, 4 Apr 2012 19:43:33 +0200 Subject: [PATCH 099/709] Fix Julia attribution. --- AUTHORS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index a76b538e081..5a09a173033 100644 --- a/AUTHORS +++ b/AUTHORS @@ -73,8 +73,8 @@ Other contributors, listed alphabetically, are: * Ana Nelson -- Ragel, ANTLR, R console lexers * Nam T. Nguyen -- Monokai style * Jesper Noehr -- HTML formatter "anchorlinenos" +* Mike Nolta -- Julia lexer * Jonas Obrist -- BBCode lexer -* Patrick O'Leary -- Julia lexer * David Oliva -- Rebol lexer * Jon Parise -- Protocol buffers lexer * Ronny Pfannschmidt -- BBCode lexer From 2d4597461b54b59fadcad3287a84d92a89cbde55 Mon Sep 17 00:00:00 2001 From: David Wolever Date: Wed, 11 Apr 2012 20:11:06 -0400 Subject: [PATCH 100/709] Fixing bug where pypi package didn't include README.rst --- libpip2pi/__init__.py | 1 + setup.py | 12 ++++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/libpip2pi/__init__.py b/libpip2pi/__init__.py index e69de29bb2d..9e1435c2fae 100644 --- a/libpip2pi/__init__.py +++ b/libpip2pi/__init__.py @@ -0,0 +1 @@ +__version__ = (0, 1, 2) diff --git a/setup.py b/setup.py index beb1a38155c..5c539a1ef5c 100644 --- a/setup.py +++ b/setup.py @@ -7,9 +7,17 @@ os.chdir(os.path.dirname(sys.argv[0]) or ".") +try: + long_description = open("README.rst", "U").read() +except IOError: + long_description = "See https://github.com/wolever/pip2pi" + +import libpip2pi +version = "%s.%s.%s" %libpip2pi.__version__ + setup( name="pip2pi", - version="0.1.1", + version="0.1.2", url="https://github.com/wolever/pip2pi", author="David Wolever", author_email="david@wolever.net", @@ -17,7 +25,7 @@ pip2pi builds a PyPI-compatible package repository from pip requirements """, - long_description=open("README.rst", "U").read(), + long_description=long_description, packages=find_packages(), scripts=["pip2pi", "pip2tgz", "dir2pi"], license="BSD", From feab491ce0c4d075e951c5714b1293cd2b2fecf2 Mon Sep 17 00:00:00 2001 From: David Wolever Date: Mon, 23 Apr 2012 23:32:40 -0400 Subject: [PATCH 101/709] Switching to zipfile module, working around an incompatibility in older versions of pip --HG-- extra : rebase_source : 7b4449bfe43d6504981594d8d2e54197b832f97e --- libpip2pi/__init__.py | 2 +- libpip2pi/commands.py | 26 +++++++++++++++++++------- setup.py | 2 +- 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/libpip2pi/__init__.py b/libpip2pi/__init__.py index 9e1435c2fae..89a3cbc9728 100644 --- a/libpip2pi/__init__.py +++ b/libpip2pi/__init__.py @@ -1 +1 @@ -__version__ = (0, 1, 2) +__version__ = (0, 1, 3) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index 9885f57b091..8646e742bd2 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -2,6 +2,7 @@ import sys import shutil import atexit +import zipfile import tempfile import textwrap from subprocess import check_call @@ -9,7 +10,7 @@ def dedent(text): return textwrap.dedent(text.lstrip("\n")) -def file_to_package(file): +def file_to_package(file, basedir=None): """ Returns the package name for a given file. >>> file_to_package("foo-1.2.3_rc1.tar.gz") @@ -19,8 +20,11 @@ def file_to_package(file): >>> """ split = file.rsplit("-", 1) if len(split) != 2: - msg = ("unexpected file name: %r (not in " - "'package-name-version.xxx' format)") %(file, ) + msg = "unexpected file name: %r " %(file, ) + msg += "(not in 'pkg-name-version.xxx' format" + if basedir: + msg += "; found in directory: %r" %(basedir) + msg += ")" raise ValueError(msg) return (split[0], split[1].replace("_", "-")) @@ -65,7 +69,9 @@ def dir2pi(argv=sys.argv): if not os.path.isfile(pkg_filepath): continue pkg_basename = os.path.basename(file) - pkg_name, pkg_rest = file_to_package(pkg_basename) + if pkg_basename.startswith("."): + continue + pkg_name, pkg_rest = file_to_package(pkg_basename, pkgdir) pkg_dir = pkgdirpath("simple", pkg_name) if not os.path.exists(pkg_dir): os.mkdir(pkg_dir) @@ -102,10 +108,16 @@ def pip2tgz(argv=sys.argv): os.mkdir(tempdir) bundle_zip = os.path.join(tempdir, "bundle.zip") - check_call(["pip", "bundle", "-b", tempdir, bundle_zip] + argv[2:]) + build_dir = os.path.join(tempdir, "build") + check_call(["pip", "bundle", "-b", build_dir, bundle_zip] + argv[2:]) os.chdir(tempdir) - check_call(["unzip", "bundle.zip", "pip-manifest.txt"]) + if os.path.exists(build_dir): + zipfile.ZipFile("bundle.zip").extract("pip-manifest.txt") + else: + # Older versions of pip delete the "build" directory after they + # are done with it... So extract the entire bundle.zip + zipfile.ZipFile("bundle.zip").extractall() num_pakages = 0 for line in open("pip-manifest.txt"): @@ -119,7 +131,7 @@ def pip2tgz(argv=sys.argv): %(bundle_file, line, )) pkg, version = pkg_version version = version.replace("-", "_") - old_input_dir = pkg + old_input_dir = os.path.join("build/", pkg) new_input_dir = "%s-%s" %(pkg, version) os.rename(old_input_dir, new_input_dir) output_name = os.path.join("..", new_input_dir + ".tar.gz") diff --git a/setup.py b/setup.py index 5c539a1ef5c..bb3a1efe792 100644 --- a/setup.py +++ b/setup.py @@ -17,7 +17,7 @@ setup( name="pip2pi", - version="0.1.2", + version=version, url="https://github.com/wolever/pip2pi", author="David Wolever", author_email="david@wolever.net", From d80db59ae1d623a015fced739fdda565f9f68544 Mon Sep 17 00:00:00 2001 From: Eric Knibbe Date: Fri, 1 Jun 2012 00:08:20 -0400 Subject: [PATCH 102/709] initial Lasso lexer commit. --- AUTHORS | 115 +++++++++++++ LICENSE | 25 +++ pygments/lexers/shell.py | 361 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 501 insertions(+) create mode 100644 AUTHORS create mode 100644 LICENSE create mode 100644 pygments/lexers/shell.py diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 00000000000..5a09a173033 --- /dev/null +++ b/AUTHORS @@ -0,0 +1,115 @@ +Pygments is written and maintained by Georg Brandl . + +Major developers are Tim Hatch and Armin Ronacher +. + +Other contributors, listed alphabetically, are: + +* Sam Aaron -- Ioke lexer +* Kumar Appaiah -- Debian control lexer +* Ali Afshar -- image formatter +* Andreas Amann -- AppleScript lexer +* Jeremy Ashkenas -- CoffeeScript lexer +* Stefan Matthias Aust -- Smalltalk lexer +* Ben Bangert -- Mako lexers +* Max Battcher -- Darcs patch lexer +* Paul Baumgart, 280 North, Inc. -- Objective-J lexer +* Michael Bayer -- Myghty lexers +* John Benediktsson -- Factor lexer +* Christopher Bertels -- Fancy lexer +* Jarrett Billingsley -- MiniD lexer +* Adam Blinkinsop -- Haskell, Redcode lexers +* Frits van Bommel -- assembler lexers +* Pierre Bourdon -- bugfixes +* Hiram Chirino -- Scaml and Jade lexers +* Leaf Corcoran -- MoonScript lexer +* Christopher Creutzig -- MuPAD lexer +* Pete Curry -- bugfixes +* Owen Durni -- haXe lexer +* Nick Efford -- Python 3 lexer +* Artem Egorkine -- terminal256 formatter +* James H. Fisher -- PostScript lexer +* Carlos Galdino -- Elixir and Elixir Console lexers +* Naveen Garg -- Autohotkey lexer +* Laurent Gautier -- R/S lexer +* Alex Gaynor -- PyPy log lexer +* Bertrand Goetzmann -- Groovy lexer +* Krzysiek Goj -- Scala lexer +* Matt Good -- Genshi, Cheetah lexers +* Patrick Gotthardt -- PHP namespaces support +* Olivier Guibe -- Asymptote lexer +* Martin Harriman -- SNOBOL lexer +* Matthew Harrison -- SVG formatter +* Steven Hazel -- Tcl lexer +* Aslak Hellesøy -- Gherkin lexer +* Jordi Gutiérrez Hermoso -- Octave lexer +* David Hess, Fish Software, Inc. -- Objective-J lexer +* Varun Hiremath -- Debian control lexer +* Ben Hollis -- Mason lexer +* Tim Howard -- BlitzMax lexer +* Ivan Inozemtsev -- Fantom lexer +* Brian R. Jackson -- Tea lexer +* Dennis Kaarsemaker -- sources.list lexer +* Igor Kalnitsky -- vhdl lexer +* Adam Koprowski -- Opa lexer +* Benjamin Kowarsch -- Modula-2 lexer +* Marek Kubica -- Scheme lexer +* Jochen Kupperschmidt -- Markdown processor +* Gerd Kurzbach -- Modelica lexer +* Olov Lassus -- Dart lexer +* Sylvestre Ledru -- Scilab lexer +* Mark Lee -- Vala lexer +* Ben Mabey -- Gherkin lexer +* Simone Margaritelli -- Hybris lexer +* Kirk McDonald -- D lexer +* Gordon McGregor -- SystemVerilog lexer +* Stephen McKamey -- Duel/JBST lexer +* Brian McKenna -- F# lexer +* Lukas Meuser -- BBCode formatter, Lua lexer +* Hong Minhee -- HTTP lexer +* Michael Mior -- Awk lexer +* Paulo Moura -- Logtalk lexer +* Mher Movsisyan -- DTD lexer +* Ana Nelson -- Ragel, ANTLR, R console lexers +* Nam T. Nguyen -- Monokai style +* Jesper Noehr -- HTML formatter "anchorlinenos" +* Mike Nolta -- Julia lexer +* Jonas Obrist -- BBCode lexer +* David Oliva -- Rebol lexer +* Jon Parise -- Protocol buffers lexer +* Ronny Pfannschmidt -- BBCode lexer +* Benjamin Peterson -- Test suite refactoring +* Dominik Picheta -- Nimrod lexer +* Clément Prévost -- UrbiScript lexer +* Justin Reidy -- MXML lexer +* Norman Richards -- JSON lexer +* Lubomir Rintel -- GoodData MAQL and CL lexers +* Andre Roberge -- Tango style +* Konrad Rudolph -- LaTeX formatter enhancements +* Mario Ruggier -- Evoque lexers +* Stou Sandalski -- NumPy, FORTRAN, tcsh and XSLT lexers +* Matteo Sasso -- Common Lisp lexer +* Joe Schafer -- Ada lexer +* Ken Schutte -- Matlab lexers +* Tassilo Schweyer -- Io, MOOCode lexers +* Joerg Sieker -- ABAP lexer +* Robert Simmons -- Standard ML lexer +* Kirill Simonov -- YAML lexer +* Steve Spigarelli -- XQuery lexer +* Jerome St-Louis -- eC lexer +* James Strachan -- Kotlin lexer +* Tiberius Teng -- default style overhaul +* Jeremy Thurgood -- Erlang, Squid config lexers +* Erick Tryzelaar -- Felix lexer +* Daniele Varrazzo -- PostgreSQL lexers +* Abe Voelker -- OpenEdge ABL lexer +* Whitney Young -- ObjectiveC lexer +* Matthias Vallentin -- Bro lexer +* Nathan Weizenbaum -- Haml and Sass lexers +* Dietmar Winkler -- Modelica lexer +* Nils Winter -- Smalltalk lexer +* Davy Wybiral -- Clojure lexer +* Diego Zamboni -- CFengine3 lexer +* Alex Zimin -- Nemerle lexer + +Many thanks for all contributions! diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000000..314b37105c4 --- /dev/null +++ b/LICENSE @@ -0,0 +1,25 @@ +Copyright (c) 2006-2011 by the respective authors (see AUTHORS file). +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +* Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py new file mode 100644 index 00000000000..b6afa353126 --- /dev/null +++ b/pygments/lexers/shell.py @@ -0,0 +1,361 @@ +# -*- coding: utf-8 -*- +""" + pygments.lexers.shell + ~~~~~~~~~~~~~~~~~~~~~ + + Lexers for various shells. + + :copyright: Copyright 2006-2012 by the Pygments team, see AUTHORS. + :license: BSD, see LICENSE for details. +""" + +import re + +from pygments.lexer import Lexer, RegexLexer, do_insertions, bygroups, include +from pygments.token import Punctuation, \ + Text, Comment, Operator, Keyword, Name, String, Number, Generic +from pygments.util import shebang_matches + + +__all__ = ['BashLexer', 'BashSessionLexer', 'TcshLexer', 'BatchLexer', + 'PowerShellLexer'] + +line_re = re.compile('.*?\n') + + +class BashLexer(RegexLexer): + """ + Lexer for (ba|k|)sh shell scripts. + + *New in Pygments 0.6.* + """ + + name = 'Bash' + aliases = ['bash', 'sh', 'ksh'] + filenames = ['*.sh', '*.ksh', '*.bash', '*.ebuild', '*.eclass', + '.bashrc', 'bashrc', '.bash_*', 'bash_*'] + mimetypes = ['application/x-sh', 'application/x-shellscript'] + + tokens = { + 'root': [ + include('basic'), + (r'\$\(\(', Keyword, 'math'), + (r'\$\(', Keyword, 'paren'), + (r'\${#?', Keyword, 'curly'), + (r'`', String.Backtick, 'backticks'), + include('data'), + ], + 'basic': [ + (r'\b(if|fi|else|while|do|done|for|then|return|function|case|' + r'select|continue|until|esac|elif)\s*\b', + Keyword), + (r'\b(alias|bg|bind|break|builtin|caller|cd|command|compgen|' + r'complete|declare|dirs|disown|echo|enable|eval|exec|exit|' + r'export|false|fc|fg|getopts|hash|help|history|jobs|kill|let|' + r'local|logout|popd|printf|pushd|pwd|read|readonly|set|shift|' + r'shopt|source|suspend|test|time|times|trap|true|type|typeset|' + r'ulimit|umask|unalias|unset|wait)\s*\b(?!\.)', + Name.Builtin), + (r'#.*\n', Comment), + (r'\\[\w\W]', String.Escape), + (r'(\b\w+)(\s*)(=)', bygroups(Name.Variable, Text, Operator)), + (r'[\[\]{}()=]', Operator), + (r'<<-?\s*(\'?)\\?(\w+)[\w\W]+?\2', String), + (r'&&|\|\|', Operator), + ], + 'data': [ + (r'(?s)\$?"(\\\\|\\[0-7]+|\\.|[^"\\])*"', String.Double), + (r"(?s)\$?'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single), + (r';', Text), + (r'\s+', Text), + (r'[^=\s\[\]{}()$"\'`\\<]+', Text), + (r'\d+(?= |\Z)', Number), + (r'\$#?(\w+|.)', Name.Variable), + (r'<', Text), + ], + 'curly': [ + (r'}', Keyword, '#pop'), + (r':-', Keyword), + (r'[a-zA-Z0-9_]+', Name.Variable), + (r'[^}:"\'`$]+', Punctuation), + (r':', Punctuation), + include('root'), + ], + 'paren': [ + (r'\)', Keyword, '#pop'), + include('root'), + ], + 'math': [ + (r'\)\)', Keyword, '#pop'), + (r'[-+*/%^|&]|\*\*|\|\|', Operator), + (r'\d+', Number), + include('root'), + ], + 'backticks': [ + (r'`', String.Backtick, '#pop'), + include('root'), + ], + } + + def analyse_text(text): + return shebang_matches(text, r'(ba|z|)sh') + + +class BashSessionLexer(Lexer): + """ + Lexer for simplistic shell sessions. + + *New in Pygments 1.1.* + """ + + name = 'Bash Session' + aliases = ['console'] + filenames = ['*.sh-session'] + mimetypes = ['application/x-shell-session'] + + def get_tokens_unprocessed(self, text): + bashlexer = BashLexer(**self.options) + + pos = 0 + curcode = '' + insertions = [] + + for match in line_re.finditer(text): + line = match.group() + m = re.match(r'^((?:\(\S+\))?(?:|sh\S*?|\w+\S+[@:]\S+(?:\s+\S+)' + r'?|\[\S+[@:][^\n]+\].+)[$#%])(.*\n?)' , line) + if m: + # To support output lexers (say diff output), the output + # needs to be broken by prompts whenever the output lexer + # changes. + if not insertions: + pos = match.start() + + insertions.append((len(curcode), + [(0, Generic.Prompt, m.group(1))])) + curcode += m.group(2) + elif line.startswith('>'): + insertions.append((len(curcode), + [(0, Generic.Prompt, line[:1])])) + curcode += line[1:] + else: + if insertions: + toks = bashlexer.get_tokens_unprocessed(curcode) + for i, t, v in do_insertions(insertions, toks): + yield pos+i, t, v + yield match.start(), Generic.Output, line + insertions = [] + curcode = '' + if insertions: + for i, t, v in do_insertions(insertions, + bashlexer.get_tokens_unprocessed(curcode)): + yield pos+i, t, v + + +class BatchLexer(RegexLexer): + """ + Lexer for the DOS/Windows Batch file format. + + *New in Pygments 0.7.* + """ + name = 'Batchfile' + aliases = ['bat'] + filenames = ['*.bat', '*.cmd'] + mimetypes = ['application/x-dos-batch'] + + flags = re.MULTILINE | re.IGNORECASE + + tokens = { + 'root': [ + # Lines can start with @ to prevent echo + (r'^\s*@', Punctuation), + (r'^(\s*)(rem\s.*)$', bygroups(Text, Comment)), + (r'".*?"', String.Double), + (r"'.*?'", String.Single), + # If made more specific, make sure you still allow expansions + # like %~$VAR:zlt + (r'%%?[~$:\w]+%?', Name.Variable), + (r'::.*', Comment), # Technically :: only works at BOL + (r'(set)(\s+)(\w+)', bygroups(Keyword, Text, Name.Variable)), + (r'(call)(\s+)(:\w+)', bygroups(Keyword, Text, Name.Label)), + (r'(goto)(\s+)(\w+)', bygroups(Keyword, Text, Name.Label)), + (r'\b(set|call|echo|on|off|endlocal|for|do|goto|if|pause|' + r'setlocal|shift|errorlevel|exist|defined|cmdextversion|' + r'errorlevel|else|cd|md|del|deltree|cls|choice)\b', Keyword), + (r'\b(equ|neq|lss|leq|gtr|geq)\b', Operator), + include('basic'), + (r'.', Text), + ], + 'echo': [ + # Escapes only valid within echo args? + (r'\^\^|\^<|\^>|\^\|', String.Escape), + (r'\n', Text, '#pop'), + include('basic'), + (r'[^\'"^]+', Text), + ], + 'basic': [ + (r'".*?"', String.Double), + (r"'.*?'", String.Single), + (r'`.*?`', String.Backtick), + (r'-?\d+', Number), + (r',', Punctuation), + (r'=', Operator), + (r'/\S+', Name), + (r':\w+', Name.Label), + (r'\w:\w+', Text), + (r'([<>|])(\s*)(\w+)', bygroups(Punctuation, Text, Name)), + ], + } + + +class TcshLexer(RegexLexer): + """ + Lexer for tcsh scripts. + + *New in Pygments 0.10.* + """ + + name = 'Tcsh' + aliases = ['tcsh', 'csh'] + filenames = ['*.tcsh', '*.csh'] + mimetypes = ['application/x-csh'] + + tokens = { + 'root': [ + include('basic'), + (r'\$\(', Keyword, 'paren'), + (r'\${#?', Keyword, 'curly'), + (r'`', String.Backtick, 'backticks'), + include('data'), + ], + 'basic': [ + (r'\b(if|endif|else|while|then|foreach|case|default|' + r'continue|goto|breaksw|end|switch|endsw)\s*\b', + Keyword), + (r'\b(alias|alloc|bg|bindkey|break|builtins|bye|caller|cd|chdir|' + r'complete|dirs|echo|echotc|eval|exec|exit|fg|filetest|getxvers|' + r'glob|getspath|hashstat|history|hup|inlib|jobs|kill|' + r'limit|log|login|logout|ls-F|migrate|newgrp|nice|nohup|notify|' + r'onintr|popd|printenv|pushd|rehash|repeat|rootnode|popd|pushd|' + r'set|shift|sched|setenv|setpath|settc|setty|setxvers|shift|' + r'source|stop|suspend|source|suspend|telltc|time|' + r'umask|unalias|uncomplete|unhash|universe|unlimit|unset|unsetenv|' + r'ver|wait|warp|watchlog|where|which)\s*\b', + Name.Builtin), + (r'#.*\n', Comment), + (r'\\[\w\W]', String.Escape), + (r'(\b\w+)(\s*)(=)', bygroups(Name.Variable, Text, Operator)), + (r'[\[\]{}()=]+', Operator), + (r'<<\s*(\'?)\\?(\w+)[\w\W]+?\2', String), + ], + 'data': [ + (r'(?s)"(\\\\|\\[0-7]+|\\.|[^"\\])*"', String.Double), + (r"(?s)'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single), + (r'\s+', Text), + (r'[^=\s\[\]{}()$"\'`\\]+', Text), + (r'\d+(?= |\Z)', Number), + (r'\$#?(\w+|.)', Name.Variable), + ], + 'curly': [ + (r'}', Keyword, '#pop'), + (r':-', Keyword), + (r'[a-zA-Z0-9_]+', Name.Variable), + (r'[^}:"\'`$]+', Punctuation), + (r':', Punctuation), + include('root'), + ], + 'paren': [ + (r'\)', Keyword, '#pop'), + include('root'), + ], + 'backticks': [ + (r'`', String.Backtick, '#pop'), + include('root'), + ], + } + + +class PowerShellLexer(RegexLexer): + """ + For Windows PowerShell code. + + *New in Pygments 1.5.* + """ + name = 'PowerShell' + aliases = ['powershell', 'posh', 'ps1'] + filenames = ['*.ps1'] + mimetypes = ['text/x-powershell'] + + flags = re.DOTALL | re.IGNORECASE | re.MULTILINE + + keywords = ( + 'while validateset validaterange validatepattern validatelength ' + 'validatecount until trap switch return ref process param parameter in ' + 'if global: function foreach for finally filter end elseif else ' + 'dynamicparam do default continue cmdletbinding break begin alias \\? ' + '% #script #private #local #global mandatory parametersetname position ' + 'valuefrompipeline valuefrompipelinebypropertyname ' + 'valuefromremainingarguments helpmessage try catch').split() + + operators = ( + 'and as band bnot bor bxor casesensitive ccontains ceq cge cgt cle ' + 'clike clt cmatch cne cnotcontains cnotlike cnotmatch contains ' + 'creplace eq exact f file ge gt icontains ieq ige igt ile ilike ilt ' + 'imatch ine inotcontains inotlike inotmatch ireplace is isnot le like ' + 'lt match ne not notcontains notlike notmatch or regex replace ' + 'wildcard').split() + + verbs = ( + 'write where wait use update unregister undo trace test tee take ' + 'suspend stop start split sort skip show set send select scroll resume ' + 'restore restart resolve resize reset rename remove register receive ' + 'read push pop ping out new move measure limit join invoke import ' + 'group get format foreach export expand exit enter enable disconnect ' + 'disable debug cxnew copy convertto convertfrom convert connect ' + 'complete compare clear checkpoint aggregate add').split() + + commenthelp = ( + 'component description example externalhelp forwardhelpcategory ' + 'forwardhelptargetname functionality inputs link ' + 'notes outputs parameter remotehelprunspace role synopsis').split() + + tokens = { + 'root': [ + (r'\s+', Text), + (r'^(\s*#[#\s]*)(\.(?:%s))([^\n]*$)' % '|'.join(commenthelp), + bygroups(Comment, String.Doc, Comment)), + (r'#[^\n]*?$', Comment), + (r'(<|<)#', Comment.Multiline, 'multline'), + (r'@"\n.*?\n"@', String.Heredoc), + (r"@'\n.*?\n'@", String.Heredoc), + (r'"', String.Double, 'string'), + (r"'([^']|'')*'", String.Single), + (r'(\$|@@|@)((global|script|private|env):)?[a-z0-9_]+', + Name.Variable), + (r'(%s)\b' % '|'.join(keywords), Keyword), + (r'-(%s)\b' % '|'.join(operators), Operator), + (r'(%s)-[a-z_][a-z0-9_]*\b' % '|'.join(verbs), Name.Builtin), + (r'\[[a-z_\[][a-z0-9_. `,\[\]]*\]', Name.Constant), # .net [type]s + (r'-[a-z_][a-z0-9_]*', Name), + (r'\w+', Name), + (r'[.,{}\[\]$()=+*/\\&%!~?^`|<>-]', Punctuation), + ], + 'multline': [ + (r'[^#&.]+', Comment.Multiline), + (r'#(>|>)', Comment.Multiline, '#pop'), + (r'\.(%s)' % '|'.join(commenthelp), String.Doc), + (r'[#&.]', Comment.Multiline), + ], + 'string': [ + (r'[^$`"]+', String.Double), + (r'\$\(', String.Interpol, 'interpol'), + (r'`"|""', String.Double), + (r'[`$]', String.Double), + (r'"', String.Double, '#pop'), + ], + 'interpol': [ + (r'[^$)]+', String.Interpol), + (r'\$\(', String.Interpol, '#push'), + (r'\)', String.Interpol, '#pop'), + ] + } From 67870f33b7aae6da68a5d9480c0b4625ada3c89b Mon Sep 17 00:00:00 2001 From: Alexander Dutton Date: Wed, 6 Jun 2012 00:47:31 +0100 Subject: [PATCH 103/709] Added preamble to pygments.lexers.rdf and me to AUTHORS. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 5a09a173033..9c3dd72a9b0 100644 --- a/AUTHORS +++ b/AUTHORS @@ -26,6 +26,7 @@ Other contributors, listed alphabetically, are: * Christopher Creutzig -- MuPAD lexer * Pete Curry -- bugfixes * Owen Durni -- haXe lexer +* Alexander Dutton, Oxford University Computing Services -- SPARQL lexer * Nick Efford -- Python 3 lexer * Artem Egorkine -- terminal256 formatter * James H. Fisher -- PostScript lexer From 0d68ecf989837fb0747048a32dbb74f1716e9ea8 Mon Sep 17 00:00:00 2001 From: Doug Hogan Date: Sun, 10 Jun 2012 22:46:40 -0400 Subject: [PATCH 104/709] Added mscgen lexer --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 5a09a173033..74f186af9a5 100644 --- a/AUTHORS +++ b/AUTHORS @@ -45,6 +45,7 @@ Other contributors, listed alphabetically, are: * Jordi Gutiérrez Hermoso -- Octave lexer * David Hess, Fish Software, Inc. -- Objective-J lexer * Varun Hiremath -- Debian control lexer +* Doug Hogan -- Mscgen lexer * Ben Hollis -- Mason lexer * Tim Howard -- BlitzMax lexer * Ivan Inozemtsev -- Fantom lexer From 9b10719c243c90f62956dddbf08dd9aa3d84a2f9 Mon Sep 17 00:00:00 2001 From: "Jeffrey B. Arnold" Date: Wed, 1 Aug 2012 16:16:09 -0400 Subject: [PATCH 105/709] Added lexers for BUGS, JAGS, and STAN --- AUTHORS | 116 +++++++++++++ LICENSE | 25 +++ pygments/lexers/shell.py | 361 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 502 insertions(+) create mode 100644 AUTHORS create mode 100644 LICENSE create mode 100644 pygments/lexers/shell.py diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 00000000000..8a66263384d --- /dev/null +++ b/AUTHORS @@ -0,0 +1,116 @@ +Pygments is written and maintained by Georg Brandl . + +Major developers are Tim Hatch and Armin Ronacher +. + +Other contributors, listed alphabetically, are: + +* Sam Aaron -- Ioke lexer +* Kumar Appaiah -- Debian control lexer +* Ali Afshar -- image formatter +* Andreas Amann -- AppleScript lexer +* Jeremy Ashkenas -- CoffeeScript lexer +* Jeffrey Arnold -- BUGS lexers +* Stefan Matthias Aust -- Smalltalk lexer +* Ben Bangert -- Mako lexers +* Max Battcher -- Darcs patch lexer +* Paul Baumgart, 280 North, Inc. -- Objective-J lexer +* Michael Bayer -- Myghty lexers +* John Benediktsson -- Factor lexer +* Christopher Bertels -- Fancy lexer +* Jarrett Billingsley -- MiniD lexer +* Adam Blinkinsop -- Haskell, Redcode lexers +* Frits van Bommel -- assembler lexers +* Pierre Bourdon -- bugfixes +* Hiram Chirino -- Scaml and Jade lexers +* Leaf Corcoran -- MoonScript lexer +* Christopher Creutzig -- MuPAD lexer +* Pete Curry -- bugfixes +* Owen Durni -- haXe lexer +* Nick Efford -- Python 3 lexer +* Artem Egorkine -- terminal256 formatter +* James H. Fisher -- PostScript lexer +* Carlos Galdino -- Elixir and Elixir Console lexers +* Naveen Garg -- Autohotkey lexer +* Laurent Gautier -- R/S lexer +* Alex Gaynor -- PyPy log lexer +* Bertrand Goetzmann -- Groovy lexer +* Krzysiek Goj -- Scala lexer +* Matt Good -- Genshi, Cheetah lexers +* Patrick Gotthardt -- PHP namespaces support +* Olivier Guibe -- Asymptote lexer +* Martin Harriman -- SNOBOL lexer +* Matthew Harrison -- SVG formatter +* Steven Hazel -- Tcl lexer +* Aslak Hellesøy -- Gherkin lexer +* Jordi Gutiérrez Hermoso -- Octave lexer +* David Hess, Fish Software, Inc. -- Objective-J lexer +* Varun Hiremath -- Debian control lexer +* Ben Hollis -- Mason lexer +* Tim Howard -- BlitzMax lexer +* Ivan Inozemtsev -- Fantom lexer +* Brian R. Jackson -- Tea lexer +* Dennis Kaarsemaker -- sources.list lexer +* Igor Kalnitsky -- vhdl lexer +* Adam Koprowski -- Opa lexer +* Benjamin Kowarsch -- Modula-2 lexer +* Marek Kubica -- Scheme lexer +* Jochen Kupperschmidt -- Markdown processor +* Gerd Kurzbach -- Modelica lexer +* Olov Lassus -- Dart lexer +* Sylvestre Ledru -- Scilab lexer +* Mark Lee -- Vala lexer +* Ben Mabey -- Gherkin lexer +* Simone Margaritelli -- Hybris lexer +* Kirk McDonald -- D lexer +* Gordon McGregor -- SystemVerilog lexer +* Stephen McKamey -- Duel/JBST lexer +* Brian McKenna -- F# lexer +* Lukas Meuser -- BBCode formatter, Lua lexer +* Hong Minhee -- HTTP lexer +* Michael Mior -- Awk lexer +* Paulo Moura -- Logtalk lexer +* Mher Movsisyan -- DTD lexer +* Ana Nelson -- Ragel, ANTLR, R console lexers +* Nam T. Nguyen -- Monokai style +* Jesper Noehr -- HTML formatter "anchorlinenos" +* Mike Nolta -- Julia lexer +* Jonas Obrist -- BBCode lexer +* David Oliva -- Rebol lexer +* Jon Parise -- Protocol buffers lexer +* Ronny Pfannschmidt -- BBCode lexer +* Benjamin Peterson -- Test suite refactoring +* Dominik Picheta -- Nimrod lexer +* Clément Prévost -- UrbiScript lexer +* Justin Reidy -- MXML lexer +* Norman Richards -- JSON lexer +* Lubomir Rintel -- GoodData MAQL and CL lexers +* Andre Roberge -- Tango style +* Konrad Rudolph -- LaTeX formatter enhancements +* Mario Ruggier -- Evoque lexers +* Stou Sandalski -- NumPy, FORTRAN, tcsh and XSLT lexers +* Matteo Sasso -- Common Lisp lexer +* Joe Schafer -- Ada lexer +* Ken Schutte -- Matlab lexers +* Tassilo Schweyer -- Io, MOOCode lexers +* Joerg Sieker -- ABAP lexer +* Robert Simmons -- Standard ML lexer +* Kirill Simonov -- YAML lexer +* Steve Spigarelli -- XQuery lexer +* Jerome St-Louis -- eC lexer +* James Strachan -- Kotlin lexer +* Tiberius Teng -- default style overhaul +* Jeremy Thurgood -- Erlang, Squid config lexers +* Erick Tryzelaar -- Felix lexer +* Daniele Varrazzo -- PostgreSQL lexers +* Abe Voelker -- OpenEdge ABL lexer +* Whitney Young -- ObjectiveC lexer +* Matthias Vallentin -- Bro lexer +* Nathan Weizenbaum -- Haml and Sass lexers +* Dietmar Winkler -- Modelica lexer +* Nils Winter -- Smalltalk lexer +* Davy Wybiral -- Clojure lexer +* Diego Zamboni -- CFengine3 lexer +* Alex Zimin -- Nemerle lexer + +Many thanks for all contributions! diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000000..314b37105c4 --- /dev/null +++ b/LICENSE @@ -0,0 +1,25 @@ +Copyright (c) 2006-2011 by the respective authors (see AUTHORS file). +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +* Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py new file mode 100644 index 00000000000..b6afa353126 --- /dev/null +++ b/pygments/lexers/shell.py @@ -0,0 +1,361 @@ +# -*- coding: utf-8 -*- +""" + pygments.lexers.shell + ~~~~~~~~~~~~~~~~~~~~~ + + Lexers for various shells. + + :copyright: Copyright 2006-2012 by the Pygments team, see AUTHORS. + :license: BSD, see LICENSE for details. +""" + +import re + +from pygments.lexer import Lexer, RegexLexer, do_insertions, bygroups, include +from pygments.token import Punctuation, \ + Text, Comment, Operator, Keyword, Name, String, Number, Generic +from pygments.util import shebang_matches + + +__all__ = ['BashLexer', 'BashSessionLexer', 'TcshLexer', 'BatchLexer', + 'PowerShellLexer'] + +line_re = re.compile('.*?\n') + + +class BashLexer(RegexLexer): + """ + Lexer for (ba|k|)sh shell scripts. + + *New in Pygments 0.6.* + """ + + name = 'Bash' + aliases = ['bash', 'sh', 'ksh'] + filenames = ['*.sh', '*.ksh', '*.bash', '*.ebuild', '*.eclass', + '.bashrc', 'bashrc', '.bash_*', 'bash_*'] + mimetypes = ['application/x-sh', 'application/x-shellscript'] + + tokens = { + 'root': [ + include('basic'), + (r'\$\(\(', Keyword, 'math'), + (r'\$\(', Keyword, 'paren'), + (r'\${#?', Keyword, 'curly'), + (r'`', String.Backtick, 'backticks'), + include('data'), + ], + 'basic': [ + (r'\b(if|fi|else|while|do|done|for|then|return|function|case|' + r'select|continue|until|esac|elif)\s*\b', + Keyword), + (r'\b(alias|bg|bind|break|builtin|caller|cd|command|compgen|' + r'complete|declare|dirs|disown|echo|enable|eval|exec|exit|' + r'export|false|fc|fg|getopts|hash|help|history|jobs|kill|let|' + r'local|logout|popd|printf|pushd|pwd|read|readonly|set|shift|' + r'shopt|source|suspend|test|time|times|trap|true|type|typeset|' + r'ulimit|umask|unalias|unset|wait)\s*\b(?!\.)', + Name.Builtin), + (r'#.*\n', Comment), + (r'\\[\w\W]', String.Escape), + (r'(\b\w+)(\s*)(=)', bygroups(Name.Variable, Text, Operator)), + (r'[\[\]{}()=]', Operator), + (r'<<-?\s*(\'?)\\?(\w+)[\w\W]+?\2', String), + (r'&&|\|\|', Operator), + ], + 'data': [ + (r'(?s)\$?"(\\\\|\\[0-7]+|\\.|[^"\\])*"', String.Double), + (r"(?s)\$?'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single), + (r';', Text), + (r'\s+', Text), + (r'[^=\s\[\]{}()$"\'`\\<]+', Text), + (r'\d+(?= |\Z)', Number), + (r'\$#?(\w+|.)', Name.Variable), + (r'<', Text), + ], + 'curly': [ + (r'}', Keyword, '#pop'), + (r':-', Keyword), + (r'[a-zA-Z0-9_]+', Name.Variable), + (r'[^}:"\'`$]+', Punctuation), + (r':', Punctuation), + include('root'), + ], + 'paren': [ + (r'\)', Keyword, '#pop'), + include('root'), + ], + 'math': [ + (r'\)\)', Keyword, '#pop'), + (r'[-+*/%^|&]|\*\*|\|\|', Operator), + (r'\d+', Number), + include('root'), + ], + 'backticks': [ + (r'`', String.Backtick, '#pop'), + include('root'), + ], + } + + def analyse_text(text): + return shebang_matches(text, r'(ba|z|)sh') + + +class BashSessionLexer(Lexer): + """ + Lexer for simplistic shell sessions. + + *New in Pygments 1.1.* + """ + + name = 'Bash Session' + aliases = ['console'] + filenames = ['*.sh-session'] + mimetypes = ['application/x-shell-session'] + + def get_tokens_unprocessed(self, text): + bashlexer = BashLexer(**self.options) + + pos = 0 + curcode = '' + insertions = [] + + for match in line_re.finditer(text): + line = match.group() + m = re.match(r'^((?:\(\S+\))?(?:|sh\S*?|\w+\S+[@:]\S+(?:\s+\S+)' + r'?|\[\S+[@:][^\n]+\].+)[$#%])(.*\n?)' , line) + if m: + # To support output lexers (say diff output), the output + # needs to be broken by prompts whenever the output lexer + # changes. + if not insertions: + pos = match.start() + + insertions.append((len(curcode), + [(0, Generic.Prompt, m.group(1))])) + curcode += m.group(2) + elif line.startswith('>'): + insertions.append((len(curcode), + [(0, Generic.Prompt, line[:1])])) + curcode += line[1:] + else: + if insertions: + toks = bashlexer.get_tokens_unprocessed(curcode) + for i, t, v in do_insertions(insertions, toks): + yield pos+i, t, v + yield match.start(), Generic.Output, line + insertions = [] + curcode = '' + if insertions: + for i, t, v in do_insertions(insertions, + bashlexer.get_tokens_unprocessed(curcode)): + yield pos+i, t, v + + +class BatchLexer(RegexLexer): + """ + Lexer for the DOS/Windows Batch file format. + + *New in Pygments 0.7.* + """ + name = 'Batchfile' + aliases = ['bat'] + filenames = ['*.bat', '*.cmd'] + mimetypes = ['application/x-dos-batch'] + + flags = re.MULTILINE | re.IGNORECASE + + tokens = { + 'root': [ + # Lines can start with @ to prevent echo + (r'^\s*@', Punctuation), + (r'^(\s*)(rem\s.*)$', bygroups(Text, Comment)), + (r'".*?"', String.Double), + (r"'.*?'", String.Single), + # If made more specific, make sure you still allow expansions + # like %~$VAR:zlt + (r'%%?[~$:\w]+%?', Name.Variable), + (r'::.*', Comment), # Technically :: only works at BOL + (r'(set)(\s+)(\w+)', bygroups(Keyword, Text, Name.Variable)), + (r'(call)(\s+)(:\w+)', bygroups(Keyword, Text, Name.Label)), + (r'(goto)(\s+)(\w+)', bygroups(Keyword, Text, Name.Label)), + (r'\b(set|call|echo|on|off|endlocal|for|do|goto|if|pause|' + r'setlocal|shift|errorlevel|exist|defined|cmdextversion|' + r'errorlevel|else|cd|md|del|deltree|cls|choice)\b', Keyword), + (r'\b(equ|neq|lss|leq|gtr|geq)\b', Operator), + include('basic'), + (r'.', Text), + ], + 'echo': [ + # Escapes only valid within echo args? + (r'\^\^|\^<|\^>|\^\|', String.Escape), + (r'\n', Text, '#pop'), + include('basic'), + (r'[^\'"^]+', Text), + ], + 'basic': [ + (r'".*?"', String.Double), + (r"'.*?'", String.Single), + (r'`.*?`', String.Backtick), + (r'-?\d+', Number), + (r',', Punctuation), + (r'=', Operator), + (r'/\S+', Name), + (r':\w+', Name.Label), + (r'\w:\w+', Text), + (r'([<>|])(\s*)(\w+)', bygroups(Punctuation, Text, Name)), + ], + } + + +class TcshLexer(RegexLexer): + """ + Lexer for tcsh scripts. + + *New in Pygments 0.10.* + """ + + name = 'Tcsh' + aliases = ['tcsh', 'csh'] + filenames = ['*.tcsh', '*.csh'] + mimetypes = ['application/x-csh'] + + tokens = { + 'root': [ + include('basic'), + (r'\$\(', Keyword, 'paren'), + (r'\${#?', Keyword, 'curly'), + (r'`', String.Backtick, 'backticks'), + include('data'), + ], + 'basic': [ + (r'\b(if|endif|else|while|then|foreach|case|default|' + r'continue|goto|breaksw|end|switch|endsw)\s*\b', + Keyword), + (r'\b(alias|alloc|bg|bindkey|break|builtins|bye|caller|cd|chdir|' + r'complete|dirs|echo|echotc|eval|exec|exit|fg|filetest|getxvers|' + r'glob|getspath|hashstat|history|hup|inlib|jobs|kill|' + r'limit|log|login|logout|ls-F|migrate|newgrp|nice|nohup|notify|' + r'onintr|popd|printenv|pushd|rehash|repeat|rootnode|popd|pushd|' + r'set|shift|sched|setenv|setpath|settc|setty|setxvers|shift|' + r'source|stop|suspend|source|suspend|telltc|time|' + r'umask|unalias|uncomplete|unhash|universe|unlimit|unset|unsetenv|' + r'ver|wait|warp|watchlog|where|which)\s*\b', + Name.Builtin), + (r'#.*\n', Comment), + (r'\\[\w\W]', String.Escape), + (r'(\b\w+)(\s*)(=)', bygroups(Name.Variable, Text, Operator)), + (r'[\[\]{}()=]+', Operator), + (r'<<\s*(\'?)\\?(\w+)[\w\W]+?\2', String), + ], + 'data': [ + (r'(?s)"(\\\\|\\[0-7]+|\\.|[^"\\])*"', String.Double), + (r"(?s)'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single), + (r'\s+', Text), + (r'[^=\s\[\]{}()$"\'`\\]+', Text), + (r'\d+(?= |\Z)', Number), + (r'\$#?(\w+|.)', Name.Variable), + ], + 'curly': [ + (r'}', Keyword, '#pop'), + (r':-', Keyword), + (r'[a-zA-Z0-9_]+', Name.Variable), + (r'[^}:"\'`$]+', Punctuation), + (r':', Punctuation), + include('root'), + ], + 'paren': [ + (r'\)', Keyword, '#pop'), + include('root'), + ], + 'backticks': [ + (r'`', String.Backtick, '#pop'), + include('root'), + ], + } + + +class PowerShellLexer(RegexLexer): + """ + For Windows PowerShell code. + + *New in Pygments 1.5.* + """ + name = 'PowerShell' + aliases = ['powershell', 'posh', 'ps1'] + filenames = ['*.ps1'] + mimetypes = ['text/x-powershell'] + + flags = re.DOTALL | re.IGNORECASE | re.MULTILINE + + keywords = ( + 'while validateset validaterange validatepattern validatelength ' + 'validatecount until trap switch return ref process param parameter in ' + 'if global: function foreach for finally filter end elseif else ' + 'dynamicparam do default continue cmdletbinding break begin alias \\? ' + '% #script #private #local #global mandatory parametersetname position ' + 'valuefrompipeline valuefrompipelinebypropertyname ' + 'valuefromremainingarguments helpmessage try catch').split() + + operators = ( + 'and as band bnot bor bxor casesensitive ccontains ceq cge cgt cle ' + 'clike clt cmatch cne cnotcontains cnotlike cnotmatch contains ' + 'creplace eq exact f file ge gt icontains ieq ige igt ile ilike ilt ' + 'imatch ine inotcontains inotlike inotmatch ireplace is isnot le like ' + 'lt match ne not notcontains notlike notmatch or regex replace ' + 'wildcard').split() + + verbs = ( + 'write where wait use update unregister undo trace test tee take ' + 'suspend stop start split sort skip show set send select scroll resume ' + 'restore restart resolve resize reset rename remove register receive ' + 'read push pop ping out new move measure limit join invoke import ' + 'group get format foreach export expand exit enter enable disconnect ' + 'disable debug cxnew copy convertto convertfrom convert connect ' + 'complete compare clear checkpoint aggregate add').split() + + commenthelp = ( + 'component description example externalhelp forwardhelpcategory ' + 'forwardhelptargetname functionality inputs link ' + 'notes outputs parameter remotehelprunspace role synopsis').split() + + tokens = { + 'root': [ + (r'\s+', Text), + (r'^(\s*#[#\s]*)(\.(?:%s))([^\n]*$)' % '|'.join(commenthelp), + bygroups(Comment, String.Doc, Comment)), + (r'#[^\n]*?$', Comment), + (r'(<|<)#', Comment.Multiline, 'multline'), + (r'@"\n.*?\n"@', String.Heredoc), + (r"@'\n.*?\n'@", String.Heredoc), + (r'"', String.Double, 'string'), + (r"'([^']|'')*'", String.Single), + (r'(\$|@@|@)((global|script|private|env):)?[a-z0-9_]+', + Name.Variable), + (r'(%s)\b' % '|'.join(keywords), Keyword), + (r'-(%s)\b' % '|'.join(operators), Operator), + (r'(%s)-[a-z_][a-z0-9_]*\b' % '|'.join(verbs), Name.Builtin), + (r'\[[a-z_\[][a-z0-9_. `,\[\]]*\]', Name.Constant), # .net [type]s + (r'-[a-z_][a-z0-9_]*', Name), + (r'\w+', Name), + (r'[.,{}\[\]$()=+*/\\&%!~?^`|<>-]', Punctuation), + ], + 'multline': [ + (r'[^#&.]+', Comment.Multiline), + (r'#(>|>)', Comment.Multiline, '#pop'), + (r'\.(%s)' % '|'.join(commenthelp), String.Doc), + (r'[#&.]', Comment.Multiline), + ], + 'string': [ + (r'[^$`"]+', String.Double), + (r'\$\(', String.Interpol, 'interpol'), + (r'`"|""', String.Double), + (r'[`$]', String.Double), + (r'"', String.Double, '#pop'), + ], + 'interpol': [ + (r'[^$)]+', String.Interpol), + (r'\$\(', String.Interpol, '#push'), + (r'\)', String.Interpol, '#pop'), + ] + } From 56d64937272191dcfd07114433790f79b3390ee6 Mon Sep 17 00:00:00 2001 From: Paul Miller Date: Tue, 7 Aug 2012 13:56:45 +0300 Subject: [PATCH 106/709] Update AUTHORS. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 5a09a173033..1c5eeec4ced 100644 --- a/AUTHORS +++ b/AUTHORS @@ -111,5 +111,6 @@ Other contributors, listed alphabetically, are: * Davy Wybiral -- Clojure lexer * Diego Zamboni -- CFengine3 lexer * Alex Zimin -- Nemerle lexer +* Paul Miller -- LiveScript lexer Many thanks for all contributions! From 904081aa0edcc94ea3805280b002a9b9c65a2497 Mon Sep 17 00:00:00 2001 From: "Jeffrey B. Arnold" Date: Sat, 11 Aug 2012 00:51:20 -0400 Subject: [PATCH 107/709] added name --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 5a09a173033..f740e283486 100644 --- a/AUTHORS +++ b/AUTHORS @@ -9,6 +9,7 @@ Other contributors, listed alphabetically, are: * Kumar Appaiah -- Debian control lexer * Ali Afshar -- image formatter * Andreas Amann -- AppleScript lexer +* Jeffrey Arnold -- R/S lexer * Jeremy Ashkenas -- CoffeeScript lexer * Stefan Matthias Aust -- Smalltalk lexer * Ben Bangert -- Mako lexers From 6c878cd514401affadd283b5f60ab24d14bf5569 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sat, 11 Aug 2012 09:02:04 +0200 Subject: [PATCH 108/709] Livescript lexer: fix string regex. --- AUTHORS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index d20f4caab78..2ad461ef583 100644 --- a/AUTHORS +++ b/AUTHORS @@ -67,6 +67,7 @@ Other contributors, listed alphabetically, are: * Stephen McKamey -- Duel/JBST lexer * Brian McKenna -- F# lexer * Lukas Meuser -- BBCode formatter, Lua lexer +* Paul Miller -- LiveScript lexer * Hong Minhee -- HTTP lexer * Michael Mior -- Awk lexer * Paulo Moura -- Logtalk lexer @@ -112,6 +113,5 @@ Other contributors, listed alphabetically, are: * Davy Wybiral -- Clojure lexer * Diego Zamboni -- CFengine3 lexer * Alex Zimin -- Nemerle lexer -* Paul Miller -- LiveScript lexer Many thanks for all contributions! From 0e4a52cdbcae2777227cd259c21b14342382e9bd Mon Sep 17 00:00:00 2001 From: "Jeffrey B. Arnold" Date: Tue, 14 Aug 2012 18:21:56 -0400 Subject: [PATCH 109/709] merge with upstream --- AUTHORS | 2 ++ 1 file changed, 2 insertions(+) diff --git a/AUTHORS b/AUTHORS index 8a66263384d..b0ecaf43223 100644 --- a/AUTHORS +++ b/AUTHORS @@ -9,6 +9,7 @@ Other contributors, listed alphabetically, are: * Kumar Appaiah -- Debian control lexer * Ali Afshar -- image formatter * Andreas Amann -- AppleScript lexer +* Jeffrey Arnold -- R/S lexer * Jeremy Ashkenas -- CoffeeScript lexer * Jeffrey Arnold -- BUGS lexers * Stefan Matthias Aust -- Smalltalk lexer @@ -67,6 +68,7 @@ Other contributors, listed alphabetically, are: * Stephen McKamey -- Duel/JBST lexer * Brian McKenna -- F# lexer * Lukas Meuser -- BBCode formatter, Lua lexer +* Paul Miller -- LiveScript lexer * Hong Minhee -- HTTP lexer * Michael Mior -- Awk lexer * Paulo Moura -- Logtalk lexer From c0ce77f6afecdce6a4459c81b9b1568fb2e1ad6c Mon Sep 17 00:00:00 2001 From: EricFromCanada Date: Fri, 17 Aug 2012 14:24:16 -0400 Subject: [PATCH 110/709] merging latest from trunk --- AUTHORS | 3 +++ 1 file changed, 3 insertions(+) diff --git a/AUTHORS b/AUTHORS index 5a09a173033..1fcc9fcab36 100644 --- a/AUTHORS +++ b/AUTHORS @@ -9,6 +9,7 @@ Other contributors, listed alphabetically, are: * Kumar Appaiah -- Debian control lexer * Ali Afshar -- image formatter * Andreas Amann -- AppleScript lexer +* Jeffrey Arnold -- R/S lexer * Jeremy Ashkenas -- CoffeeScript lexer * Stefan Matthias Aust -- Smalltalk lexer * Ben Bangert -- Mako lexers @@ -51,6 +52,7 @@ Other contributors, listed alphabetically, are: * Brian R. Jackson -- Tea lexer * Dennis Kaarsemaker -- sources.list lexer * Igor Kalnitsky -- vhdl lexer +* Eric Knibbe -- Lasso lexer * Adam Koprowski -- Opa lexer * Benjamin Kowarsch -- Modula-2 lexer * Marek Kubica -- Scheme lexer @@ -66,6 +68,7 @@ Other contributors, listed alphabetically, are: * Stephen McKamey -- Duel/JBST lexer * Brian McKenna -- F# lexer * Lukas Meuser -- BBCode formatter, Lua lexer +* Paul Miller -- LiveScript lexer * Hong Minhee -- HTTP lexer * Michael Mior -- Awk lexer * Paulo Moura -- Logtalk lexer From e9151b9de1bf704e31f862eb4d29203d7c95df45 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 19 Aug 2012 09:35:18 +0200 Subject: [PATCH 111/709] Move BUGS to math.py, coding style fixes, add changelog entries --- AUTHORS | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/AUTHORS b/AUTHORS index 7a362949619..01c1c6b8162 100644 --- a/AUTHORS +++ b/AUTHORS @@ -9,9 +9,8 @@ Other contributors, listed alphabetically, are: * Kumar Appaiah -- Debian control lexer * Ali Afshar -- image formatter * Andreas Amann -- AppleScript lexer -* Jeffrey Arnold -- R/S lexer +* Jeffrey Arnold -- R/S lexer, BUGS lexers * Jeremy Ashkenas -- CoffeeScript lexer -* Jeffrey Arnold -- BUGS lexers * Stefan Matthias Aust -- Smalltalk lexer * Ben Bangert -- Mako lexers * Max Battcher -- Darcs patch lexer From fddd560dc998b04e76cb6b0d439c2245deb7aacc Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 19 Aug 2012 09:41:49 +0200 Subject: [PATCH 112/709] Rust lexer: add versionadded, author and changelog entry. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 01c1c6b8162..35f8c8795c6 100644 --- a/AUTHORS +++ b/AUTHORS @@ -71,6 +71,7 @@ Other contributors, listed alphabetically, are: * Paul Miller -- LiveScript lexer * Hong Minhee -- HTTP lexer * Michael Mior -- Awk lexer +* Jon Morton -- Rust lexer * Paulo Moura -- Logtalk lexer * Mher Movsisyan -- DTD lexer * Ana Nelson -- Ragel, ANTLR, R console lexers From b6b2a7eb54724d9ad367ff996461247ebb93df8d Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 19 Aug 2012 09:54:13 +0200 Subject: [PATCH 113/709] CUDA: fix merging mistakes and add attribution/changelog entries. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 35f8c8795c6..dc9cef54909 100644 --- a/AUTHORS +++ b/AUTHORS @@ -85,6 +85,7 @@ Other contributors, listed alphabetically, are: * Benjamin Peterson -- Test suite refactoring * Dominik Picheta -- Nimrod lexer * Clément Prévost -- UrbiScript lexer +* Kashif Rasul -- CUDA lexer * Justin Reidy -- MXML lexer * Norman Richards -- JSON lexer * Lubomir Rintel -- GoodData MAQL and CL lexers From dea9363665d840a4d2baed221336312163df109f Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 19 Aug 2012 09:56:02 +0200 Subject: [PATCH 114/709] Close fix-r branch. --- AUTHORS | 116 +++++++++++++ LICENSE | 25 +++ pygments/lexers/shell.py | 361 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 502 insertions(+) create mode 100644 AUTHORS create mode 100644 LICENSE create mode 100644 pygments/lexers/shell.py diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 00000000000..f740e283486 --- /dev/null +++ b/AUTHORS @@ -0,0 +1,116 @@ +Pygments is written and maintained by Georg Brandl . + +Major developers are Tim Hatch and Armin Ronacher +. + +Other contributors, listed alphabetically, are: + +* Sam Aaron -- Ioke lexer +* Kumar Appaiah -- Debian control lexer +* Ali Afshar -- image formatter +* Andreas Amann -- AppleScript lexer +* Jeffrey Arnold -- R/S lexer +* Jeremy Ashkenas -- CoffeeScript lexer +* Stefan Matthias Aust -- Smalltalk lexer +* Ben Bangert -- Mako lexers +* Max Battcher -- Darcs patch lexer +* Paul Baumgart, 280 North, Inc. -- Objective-J lexer +* Michael Bayer -- Myghty lexers +* John Benediktsson -- Factor lexer +* Christopher Bertels -- Fancy lexer +* Jarrett Billingsley -- MiniD lexer +* Adam Blinkinsop -- Haskell, Redcode lexers +* Frits van Bommel -- assembler lexers +* Pierre Bourdon -- bugfixes +* Hiram Chirino -- Scaml and Jade lexers +* Leaf Corcoran -- MoonScript lexer +* Christopher Creutzig -- MuPAD lexer +* Pete Curry -- bugfixes +* Owen Durni -- haXe lexer +* Nick Efford -- Python 3 lexer +* Artem Egorkine -- terminal256 formatter +* James H. Fisher -- PostScript lexer +* Carlos Galdino -- Elixir and Elixir Console lexers +* Naveen Garg -- Autohotkey lexer +* Laurent Gautier -- R/S lexer +* Alex Gaynor -- PyPy log lexer +* Bertrand Goetzmann -- Groovy lexer +* Krzysiek Goj -- Scala lexer +* Matt Good -- Genshi, Cheetah lexers +* Patrick Gotthardt -- PHP namespaces support +* Olivier Guibe -- Asymptote lexer +* Martin Harriman -- SNOBOL lexer +* Matthew Harrison -- SVG formatter +* Steven Hazel -- Tcl lexer +* Aslak Hellesøy -- Gherkin lexer +* Jordi Gutiérrez Hermoso -- Octave lexer +* David Hess, Fish Software, Inc. -- Objective-J lexer +* Varun Hiremath -- Debian control lexer +* Ben Hollis -- Mason lexer +* Tim Howard -- BlitzMax lexer +* Ivan Inozemtsev -- Fantom lexer +* Brian R. Jackson -- Tea lexer +* Dennis Kaarsemaker -- sources.list lexer +* Igor Kalnitsky -- vhdl lexer +* Adam Koprowski -- Opa lexer +* Benjamin Kowarsch -- Modula-2 lexer +* Marek Kubica -- Scheme lexer +* Jochen Kupperschmidt -- Markdown processor +* Gerd Kurzbach -- Modelica lexer +* Olov Lassus -- Dart lexer +* Sylvestre Ledru -- Scilab lexer +* Mark Lee -- Vala lexer +* Ben Mabey -- Gherkin lexer +* Simone Margaritelli -- Hybris lexer +* Kirk McDonald -- D lexer +* Gordon McGregor -- SystemVerilog lexer +* Stephen McKamey -- Duel/JBST lexer +* Brian McKenna -- F# lexer +* Lukas Meuser -- BBCode formatter, Lua lexer +* Hong Minhee -- HTTP lexer +* Michael Mior -- Awk lexer +* Paulo Moura -- Logtalk lexer +* Mher Movsisyan -- DTD lexer +* Ana Nelson -- Ragel, ANTLR, R console lexers +* Nam T. Nguyen -- Monokai style +* Jesper Noehr -- HTML formatter "anchorlinenos" +* Mike Nolta -- Julia lexer +* Jonas Obrist -- BBCode lexer +* David Oliva -- Rebol lexer +* Jon Parise -- Protocol buffers lexer +* Ronny Pfannschmidt -- BBCode lexer +* Benjamin Peterson -- Test suite refactoring +* Dominik Picheta -- Nimrod lexer +* Clément Prévost -- UrbiScript lexer +* Justin Reidy -- MXML lexer +* Norman Richards -- JSON lexer +* Lubomir Rintel -- GoodData MAQL and CL lexers +* Andre Roberge -- Tango style +* Konrad Rudolph -- LaTeX formatter enhancements +* Mario Ruggier -- Evoque lexers +* Stou Sandalski -- NumPy, FORTRAN, tcsh and XSLT lexers +* Matteo Sasso -- Common Lisp lexer +* Joe Schafer -- Ada lexer +* Ken Schutte -- Matlab lexers +* Tassilo Schweyer -- Io, MOOCode lexers +* Joerg Sieker -- ABAP lexer +* Robert Simmons -- Standard ML lexer +* Kirill Simonov -- YAML lexer +* Steve Spigarelli -- XQuery lexer +* Jerome St-Louis -- eC lexer +* James Strachan -- Kotlin lexer +* Tiberius Teng -- default style overhaul +* Jeremy Thurgood -- Erlang, Squid config lexers +* Erick Tryzelaar -- Felix lexer +* Daniele Varrazzo -- PostgreSQL lexers +* Abe Voelker -- OpenEdge ABL lexer +* Whitney Young -- ObjectiveC lexer +* Matthias Vallentin -- Bro lexer +* Nathan Weizenbaum -- Haml and Sass lexers +* Dietmar Winkler -- Modelica lexer +* Nils Winter -- Smalltalk lexer +* Davy Wybiral -- Clojure lexer +* Diego Zamboni -- CFengine3 lexer +* Alex Zimin -- Nemerle lexer + +Many thanks for all contributions! diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000000..314b37105c4 --- /dev/null +++ b/LICENSE @@ -0,0 +1,25 @@ +Copyright (c) 2006-2011 by the respective authors (see AUTHORS file). +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +* Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py new file mode 100644 index 00000000000..b6afa353126 --- /dev/null +++ b/pygments/lexers/shell.py @@ -0,0 +1,361 @@ +# -*- coding: utf-8 -*- +""" + pygments.lexers.shell + ~~~~~~~~~~~~~~~~~~~~~ + + Lexers for various shells. + + :copyright: Copyright 2006-2012 by the Pygments team, see AUTHORS. + :license: BSD, see LICENSE for details. +""" + +import re + +from pygments.lexer import Lexer, RegexLexer, do_insertions, bygroups, include +from pygments.token import Punctuation, \ + Text, Comment, Operator, Keyword, Name, String, Number, Generic +from pygments.util import shebang_matches + + +__all__ = ['BashLexer', 'BashSessionLexer', 'TcshLexer', 'BatchLexer', + 'PowerShellLexer'] + +line_re = re.compile('.*?\n') + + +class BashLexer(RegexLexer): + """ + Lexer for (ba|k|)sh shell scripts. + + *New in Pygments 0.6.* + """ + + name = 'Bash' + aliases = ['bash', 'sh', 'ksh'] + filenames = ['*.sh', '*.ksh', '*.bash', '*.ebuild', '*.eclass', + '.bashrc', 'bashrc', '.bash_*', 'bash_*'] + mimetypes = ['application/x-sh', 'application/x-shellscript'] + + tokens = { + 'root': [ + include('basic'), + (r'\$\(\(', Keyword, 'math'), + (r'\$\(', Keyword, 'paren'), + (r'\${#?', Keyword, 'curly'), + (r'`', String.Backtick, 'backticks'), + include('data'), + ], + 'basic': [ + (r'\b(if|fi|else|while|do|done|for|then|return|function|case|' + r'select|continue|until|esac|elif)\s*\b', + Keyword), + (r'\b(alias|bg|bind|break|builtin|caller|cd|command|compgen|' + r'complete|declare|dirs|disown|echo|enable|eval|exec|exit|' + r'export|false|fc|fg|getopts|hash|help|history|jobs|kill|let|' + r'local|logout|popd|printf|pushd|pwd|read|readonly|set|shift|' + r'shopt|source|suspend|test|time|times|trap|true|type|typeset|' + r'ulimit|umask|unalias|unset|wait)\s*\b(?!\.)', + Name.Builtin), + (r'#.*\n', Comment), + (r'\\[\w\W]', String.Escape), + (r'(\b\w+)(\s*)(=)', bygroups(Name.Variable, Text, Operator)), + (r'[\[\]{}()=]', Operator), + (r'<<-?\s*(\'?)\\?(\w+)[\w\W]+?\2', String), + (r'&&|\|\|', Operator), + ], + 'data': [ + (r'(?s)\$?"(\\\\|\\[0-7]+|\\.|[^"\\])*"', String.Double), + (r"(?s)\$?'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single), + (r';', Text), + (r'\s+', Text), + (r'[^=\s\[\]{}()$"\'`\\<]+', Text), + (r'\d+(?= |\Z)', Number), + (r'\$#?(\w+|.)', Name.Variable), + (r'<', Text), + ], + 'curly': [ + (r'}', Keyword, '#pop'), + (r':-', Keyword), + (r'[a-zA-Z0-9_]+', Name.Variable), + (r'[^}:"\'`$]+', Punctuation), + (r':', Punctuation), + include('root'), + ], + 'paren': [ + (r'\)', Keyword, '#pop'), + include('root'), + ], + 'math': [ + (r'\)\)', Keyword, '#pop'), + (r'[-+*/%^|&]|\*\*|\|\|', Operator), + (r'\d+', Number), + include('root'), + ], + 'backticks': [ + (r'`', String.Backtick, '#pop'), + include('root'), + ], + } + + def analyse_text(text): + return shebang_matches(text, r'(ba|z|)sh') + + +class BashSessionLexer(Lexer): + """ + Lexer for simplistic shell sessions. + + *New in Pygments 1.1.* + """ + + name = 'Bash Session' + aliases = ['console'] + filenames = ['*.sh-session'] + mimetypes = ['application/x-shell-session'] + + def get_tokens_unprocessed(self, text): + bashlexer = BashLexer(**self.options) + + pos = 0 + curcode = '' + insertions = [] + + for match in line_re.finditer(text): + line = match.group() + m = re.match(r'^((?:\(\S+\))?(?:|sh\S*?|\w+\S+[@:]\S+(?:\s+\S+)' + r'?|\[\S+[@:][^\n]+\].+)[$#%])(.*\n?)' , line) + if m: + # To support output lexers (say diff output), the output + # needs to be broken by prompts whenever the output lexer + # changes. + if not insertions: + pos = match.start() + + insertions.append((len(curcode), + [(0, Generic.Prompt, m.group(1))])) + curcode += m.group(2) + elif line.startswith('>'): + insertions.append((len(curcode), + [(0, Generic.Prompt, line[:1])])) + curcode += line[1:] + else: + if insertions: + toks = bashlexer.get_tokens_unprocessed(curcode) + for i, t, v in do_insertions(insertions, toks): + yield pos+i, t, v + yield match.start(), Generic.Output, line + insertions = [] + curcode = '' + if insertions: + for i, t, v in do_insertions(insertions, + bashlexer.get_tokens_unprocessed(curcode)): + yield pos+i, t, v + + +class BatchLexer(RegexLexer): + """ + Lexer for the DOS/Windows Batch file format. + + *New in Pygments 0.7.* + """ + name = 'Batchfile' + aliases = ['bat'] + filenames = ['*.bat', '*.cmd'] + mimetypes = ['application/x-dos-batch'] + + flags = re.MULTILINE | re.IGNORECASE + + tokens = { + 'root': [ + # Lines can start with @ to prevent echo + (r'^\s*@', Punctuation), + (r'^(\s*)(rem\s.*)$', bygroups(Text, Comment)), + (r'".*?"', String.Double), + (r"'.*?'", String.Single), + # If made more specific, make sure you still allow expansions + # like %~$VAR:zlt + (r'%%?[~$:\w]+%?', Name.Variable), + (r'::.*', Comment), # Technically :: only works at BOL + (r'(set)(\s+)(\w+)', bygroups(Keyword, Text, Name.Variable)), + (r'(call)(\s+)(:\w+)', bygroups(Keyword, Text, Name.Label)), + (r'(goto)(\s+)(\w+)', bygroups(Keyword, Text, Name.Label)), + (r'\b(set|call|echo|on|off|endlocal|for|do|goto|if|pause|' + r'setlocal|shift|errorlevel|exist|defined|cmdextversion|' + r'errorlevel|else|cd|md|del|deltree|cls|choice)\b', Keyword), + (r'\b(equ|neq|lss|leq|gtr|geq)\b', Operator), + include('basic'), + (r'.', Text), + ], + 'echo': [ + # Escapes only valid within echo args? + (r'\^\^|\^<|\^>|\^\|', String.Escape), + (r'\n', Text, '#pop'), + include('basic'), + (r'[^\'"^]+', Text), + ], + 'basic': [ + (r'".*?"', String.Double), + (r"'.*?'", String.Single), + (r'`.*?`', String.Backtick), + (r'-?\d+', Number), + (r',', Punctuation), + (r'=', Operator), + (r'/\S+', Name), + (r':\w+', Name.Label), + (r'\w:\w+', Text), + (r'([<>|])(\s*)(\w+)', bygroups(Punctuation, Text, Name)), + ], + } + + +class TcshLexer(RegexLexer): + """ + Lexer for tcsh scripts. + + *New in Pygments 0.10.* + """ + + name = 'Tcsh' + aliases = ['tcsh', 'csh'] + filenames = ['*.tcsh', '*.csh'] + mimetypes = ['application/x-csh'] + + tokens = { + 'root': [ + include('basic'), + (r'\$\(', Keyword, 'paren'), + (r'\${#?', Keyword, 'curly'), + (r'`', String.Backtick, 'backticks'), + include('data'), + ], + 'basic': [ + (r'\b(if|endif|else|while|then|foreach|case|default|' + r'continue|goto|breaksw|end|switch|endsw)\s*\b', + Keyword), + (r'\b(alias|alloc|bg|bindkey|break|builtins|bye|caller|cd|chdir|' + r'complete|dirs|echo|echotc|eval|exec|exit|fg|filetest|getxvers|' + r'glob|getspath|hashstat|history|hup|inlib|jobs|kill|' + r'limit|log|login|logout|ls-F|migrate|newgrp|nice|nohup|notify|' + r'onintr|popd|printenv|pushd|rehash|repeat|rootnode|popd|pushd|' + r'set|shift|sched|setenv|setpath|settc|setty|setxvers|shift|' + r'source|stop|suspend|source|suspend|telltc|time|' + r'umask|unalias|uncomplete|unhash|universe|unlimit|unset|unsetenv|' + r'ver|wait|warp|watchlog|where|which)\s*\b', + Name.Builtin), + (r'#.*\n', Comment), + (r'\\[\w\W]', String.Escape), + (r'(\b\w+)(\s*)(=)', bygroups(Name.Variable, Text, Operator)), + (r'[\[\]{}()=]+', Operator), + (r'<<\s*(\'?)\\?(\w+)[\w\W]+?\2', String), + ], + 'data': [ + (r'(?s)"(\\\\|\\[0-7]+|\\.|[^"\\])*"', String.Double), + (r"(?s)'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single), + (r'\s+', Text), + (r'[^=\s\[\]{}()$"\'`\\]+', Text), + (r'\d+(?= |\Z)', Number), + (r'\$#?(\w+|.)', Name.Variable), + ], + 'curly': [ + (r'}', Keyword, '#pop'), + (r':-', Keyword), + (r'[a-zA-Z0-9_]+', Name.Variable), + (r'[^}:"\'`$]+', Punctuation), + (r':', Punctuation), + include('root'), + ], + 'paren': [ + (r'\)', Keyword, '#pop'), + include('root'), + ], + 'backticks': [ + (r'`', String.Backtick, '#pop'), + include('root'), + ], + } + + +class PowerShellLexer(RegexLexer): + """ + For Windows PowerShell code. + + *New in Pygments 1.5.* + """ + name = 'PowerShell' + aliases = ['powershell', 'posh', 'ps1'] + filenames = ['*.ps1'] + mimetypes = ['text/x-powershell'] + + flags = re.DOTALL | re.IGNORECASE | re.MULTILINE + + keywords = ( + 'while validateset validaterange validatepattern validatelength ' + 'validatecount until trap switch return ref process param parameter in ' + 'if global: function foreach for finally filter end elseif else ' + 'dynamicparam do default continue cmdletbinding break begin alias \\? ' + '% #script #private #local #global mandatory parametersetname position ' + 'valuefrompipeline valuefrompipelinebypropertyname ' + 'valuefromremainingarguments helpmessage try catch').split() + + operators = ( + 'and as band bnot bor bxor casesensitive ccontains ceq cge cgt cle ' + 'clike clt cmatch cne cnotcontains cnotlike cnotmatch contains ' + 'creplace eq exact f file ge gt icontains ieq ige igt ile ilike ilt ' + 'imatch ine inotcontains inotlike inotmatch ireplace is isnot le like ' + 'lt match ne not notcontains notlike notmatch or regex replace ' + 'wildcard').split() + + verbs = ( + 'write where wait use update unregister undo trace test tee take ' + 'suspend stop start split sort skip show set send select scroll resume ' + 'restore restart resolve resize reset rename remove register receive ' + 'read push pop ping out new move measure limit join invoke import ' + 'group get format foreach export expand exit enter enable disconnect ' + 'disable debug cxnew copy convertto convertfrom convert connect ' + 'complete compare clear checkpoint aggregate add').split() + + commenthelp = ( + 'component description example externalhelp forwardhelpcategory ' + 'forwardhelptargetname functionality inputs link ' + 'notes outputs parameter remotehelprunspace role synopsis').split() + + tokens = { + 'root': [ + (r'\s+', Text), + (r'^(\s*#[#\s]*)(\.(?:%s))([^\n]*$)' % '|'.join(commenthelp), + bygroups(Comment, String.Doc, Comment)), + (r'#[^\n]*?$', Comment), + (r'(<|<)#', Comment.Multiline, 'multline'), + (r'@"\n.*?\n"@', String.Heredoc), + (r"@'\n.*?\n'@", String.Heredoc), + (r'"', String.Double, 'string'), + (r"'([^']|'')*'", String.Single), + (r'(\$|@@|@)((global|script|private|env):)?[a-z0-9_]+', + Name.Variable), + (r'(%s)\b' % '|'.join(keywords), Keyword), + (r'-(%s)\b' % '|'.join(operators), Operator), + (r'(%s)-[a-z_][a-z0-9_]*\b' % '|'.join(verbs), Name.Builtin), + (r'\[[a-z_\[][a-z0-9_. `,\[\]]*\]', Name.Constant), # .net [type]s + (r'-[a-z_][a-z0-9_]*', Name), + (r'\w+', Name), + (r'[.,{}\[\]$()=+*/\\&%!~?^`|<>-]', Punctuation), + ], + 'multline': [ + (r'[^#&.]+', Comment.Multiline), + (r'#(>|>)', Comment.Multiline, '#pop'), + (r'\.(%s)' % '|'.join(commenthelp), String.Doc), + (r'[#&.]', Comment.Multiline), + ], + 'string': [ + (r'[^$`"]+', String.Double), + (r'\$\(', String.Interpol, 'interpol'), + (r'`"|""', String.Double), + (r'[`$]', String.Double), + (r'"', String.Double, '#pop'), + ], + 'interpol': [ + (r'[^$)]+', String.Interpol), + (r'\$\(', String.Interpol, '#push'), + (r'\)', String.Interpol, '#pop'), + ] + } From 4b51211418bcaaa69f12f6389b0dea784e3790c9 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 19 Aug 2012 10:01:08 +0200 Subject: [PATCH 115/709] Xtend: add attribution/changelog entry, remove a bunch of unnecessary "_ws" attributes on lexers in jvm. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index dc9cef54909..fa12c846291 100644 --- a/AUTHORS +++ b/AUTHORS @@ -28,6 +28,7 @@ Other contributors, listed alphabetically, are: * Pete Curry -- bugfixes * Owen Durni -- haXe lexer * Nick Efford -- Python 3 lexer +* Sven Efftinge -- Xtend lexer * Artem Egorkine -- terminal256 formatter * James H. Fisher -- PostScript lexer * Carlos Galdino -- Elixir and Elixir Console lexers From 95152f8bb9839adda8346db9323db56cc40ee502 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 19 Aug 2012 10:20:52 +0200 Subject: [PATCH 116/709] Closes #711: add Kconfig lexer, by Alexander Kriegisch. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index b3f5939d837..04c2aaf9d46 100644 --- a/AUTHORS +++ b/AUTHORS @@ -57,6 +57,7 @@ Other contributors, listed alphabetically, are: * Eric Knibbe -- Lasso lexer * Adam Koprowski -- Opa lexer * Benjamin Kowarsch -- Modula-2 lexer +* Alexander Kriegisch -- Kconfig lexer * Marek Kubica -- Scheme lexer * Jochen Kupperschmidt -- Markdown processor * Gerd Kurzbach -- Modelica lexer From 8d9369d168d15947ed291bf628630bff4d3f68aa Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 19 Aug 2012 10:36:12 +0200 Subject: [PATCH 117/709] Happy new year. --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index 314b37105c4..ca0a3ad3a6c 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2006-2011 by the respective authors (see AUTHORS file). +Copyright (c) 2006-2012 by the respective authors (see AUTHORS file). All rights reserved. Redistribution and use in source and binary forms, with or without From ac4a615f54f35edad583edebdb8faecc17054e72 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 19 Aug 2012 10:42:02 +0200 Subject: [PATCH 118/709] AspectJ: attribution and changelog. --- AUTHORS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index 04c2aaf9d46..6400bfb256a 100644 --- a/AUTHORS +++ b/AUTHORS @@ -57,7 +57,7 @@ Other contributors, listed alphabetically, are: * Eric Knibbe -- Lasso lexer * Adam Koprowski -- Opa lexer * Benjamin Kowarsch -- Modula-2 lexer -* Alexander Kriegisch -- Kconfig lexer +* Alexander Kriegisch -- Kconfig and AspectJ lexers * Marek Kubica -- Scheme lexer * Jochen Kupperschmidt -- Markdown processor * Gerd Kurzbach -- Modelica lexer From 07c60acfe6a7ef0a50e25af1df1912f4d9ef0a82 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 19 Aug 2012 11:28:01 +0200 Subject: [PATCH 119/709] Closes #782: add PowerShell escape syntax outside strings --- pygments/lexers/shell.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index b6afa353126..e84b43e0636 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -328,6 +328,8 @@ class PowerShellLexer(RegexLexer): (r'(<|<)#', Comment.Multiline, 'multline'), (r'@"\n.*?\n"@', String.Heredoc), (r"@'\n.*?\n'@", String.Heredoc), + # escaped syntax + (r'`[\'"$@-]', Punctuation), (r'"', String.Double, 'string'), (r"'([^']|'')*'", String.Single), (r'(\$|@@|@)((global|script|private|env):)?[a-z0-9_]+', From 62f2cb600fc98c85e45cd1d018318a88c0dd62b0 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 19 Aug 2012 11:36:11 +0200 Subject: [PATCH 120/709] Closes #763: bash: support here-strings. --- pygments/lexers/shell.py | 1 + 1 file changed, 1 insertion(+) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index e84b43e0636..52df5f00adc 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -60,6 +60,7 @@ class BashLexer(RegexLexer): (r'\\[\w\W]', String.Escape), (r'(\b\w+)(\s*)(=)', bygroups(Name.Variable, Text, Operator)), (r'[\[\]{}()=]', Operator), + (r'<<<', Operator), # here-string (r'<<-?\s*(\'?)\\?(\w+)[\w\W]+?\2', String), (r'&&|\|\|', Operator), ], From 9a545c8d7859a0681760f2e584c360df6f0d20e9 Mon Sep 17 00:00:00 2001 From: Greg Hendershott Date: Sun, 19 Aug 2012 14:19:13 -0400 Subject: [PATCH 121/709] Add example.rkt. Update AUTHORS. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 2ad461ef583..156afc15fea 100644 --- a/AUTHORS +++ b/AUTHORS @@ -43,6 +43,7 @@ Other contributors, listed alphabetically, are: * Matthew Harrison -- SVG formatter * Steven Hazel -- Tcl lexer * Aslak Hellesøy -- Gherkin lexer +* Greg Hendershott -- Racket lexer * Jordi Gutiérrez Hermoso -- Octave lexer * David Hess, Fish Software, Inc. -- Objective-J lexer * Varun Hiremath -- Debian control lexer From 3377f75f55a6b6c03a4c0b4c6e2124ebc493c87b Mon Sep 17 00:00:00 2001 From: "Jeffrey B. Arnold" Date: Sun, 19 Aug 2012 16:47:49 -0400 Subject: [PATCH 122/709] added support for R documentation (Rd) files --- AUTHORS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index 6400bfb256a..03311ea243d 100644 --- a/AUTHORS +++ b/AUTHORS @@ -9,7 +9,7 @@ Other contributors, listed alphabetically, are: * Kumar Appaiah -- Debian control lexer * Ali Afshar -- image formatter * Andreas Amann -- AppleScript lexer -* Jeffrey Arnold -- R/S lexer, BUGS lexers +* Jeffrey Arnold -- R/S, Rd and BUGS lexers * Jeremy Ashkenas -- CoffeeScript lexer * Stefan Matthias Aust -- Smalltalk lexer * Ben Bangert -- Mako lexers From f7cf2aa912651700377415aada33393aff163dc8 Mon Sep 17 00:00:00 2001 From: Charles McLaughlin Date: Thu, 6 Sep 2012 17:47:14 -0700 Subject: [PATCH 123/709] cleanup, still chipping away --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 2ad461ef583..a2e50975471 100644 --- a/AUTHORS +++ b/AUTHORS @@ -66,6 +66,7 @@ Other contributors, listed alphabetically, are: * Gordon McGregor -- SystemVerilog lexer * Stephen McKamey -- Duel/JBST lexer * Brian McKenna -- F# lexer +* Charles McLaughlin -- Puppet lexer * Lukas Meuser -- BBCode formatter, Lua lexer * Paul Miller -- LiveScript lexer * Hong Minhee -- HTTP lexer From 7a0fd9eb45593637beccdd57076c6f9359ce309b Mon Sep 17 00:00:00 2001 From: Alain Gilbert Date: Wed, 3 Oct 2012 19:48:06 -0400 Subject: [PATCH 124/709] Add TypeScript Lexer --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 7aab18836a6..b9ade29fd8e 100644 --- a/AUTHORS +++ b/AUTHORS @@ -120,5 +120,6 @@ Other contributors, listed alphabetically, are: * Davy Wybiral -- Clojure lexer * Diego Zamboni -- CFengine3 lexer * Alex Zimin -- Nemerle lexer +* Alain Gilbert -- TypeScript lexer Many thanks for all contributions! From 5464d45ae43675f94e3b9d8d1c01a913b8ca4f8f Mon Sep 17 00:00:00 2001 From: Tim Hatch Date: Sat, 6 Oct 2012 17:29:58 -0700 Subject: [PATCH 125/709] Add VGL Lexer (pull request #12) --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 49cf4d67304..a16c8d01b8a 100644 --- a/AUTHORS +++ b/AUTHORS @@ -23,6 +23,7 @@ Other contributors, listed alphabetically, are: * Frits van Bommel -- assembler lexers * Pierre Bourdon -- bugfixes * Hiram Chirino -- Scaml and Jade lexers +* Ian Cooper -- VGL lexer * Leaf Corcoran -- MoonScript lexer * Christopher Creutzig -- MuPAD lexer * Pete Curry -- bugfixes From 06b7816099faa9e0b81dac135805ae276ccf9449 Mon Sep 17 00:00:00 2001 From: Tim Hatch Date: Sat, 6 Oct 2012 18:12:41 -0700 Subject: [PATCH 126/709] Mention SourcePawn author --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index a16c8d01b8a..4eabe69ea8e 100644 --- a/AUTHORS +++ b/AUTHORS @@ -76,6 +76,7 @@ Other contributors, listed alphabetically, are: * Paul Miller -- LiveScript lexer * Hong Minhee -- HTTP lexer * Michael Mior -- Awk lexer +* Reuben Morais -- SourcePawn lexer * Jon Morton -- Rust lexer * Paulo Moura -- Logtalk lexer * Mher Movsisyan -- DTD lexer From cf4980c2db6d912b3be4325e60837308244457d4 Mon Sep 17 00:00:00 2001 From: Tim Hatch Date: Sat, 6 Oct 2012 18:31:33 -0700 Subject: [PATCH 127/709] Add Ceylon lexer properly. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 4eabe69ea8e..6db0490c1b6 100644 --- a/AUTHORS +++ b/AUTHORS @@ -121,6 +121,7 @@ Other contributors, listed alphabetically, are: * Nils Winter -- Smalltalk lexer * Davy Wybiral -- Clojure lexer * Diego Zamboni -- CFengine3 lexer +* Enrique Zamudio -- Ceylon lexer * Alex Zimin -- Nemerle lexer Many thanks for all contributions! From b65812f91baf0e697289f6527258d8232aa6fd04 Mon Sep 17 00:00:00 2001 From: Micha? G?rny Date: Fri, 19 Oct 2012 12:44:21 +0200 Subject: [PATCH 128/709] Introduce a very simple vim modeline parser. --- AUTHORS | 127 ++++++++++++++ LICENSE | 25 +++ pygments/lexers/shell.py | 364 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 516 insertions(+) create mode 100644 AUTHORS create mode 100644 LICENSE create mode 100644 pygments/lexers/shell.py diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 00000000000..6db0490c1b6 --- /dev/null +++ b/AUTHORS @@ -0,0 +1,127 @@ +Pygments is written and maintained by Georg Brandl . + +Major developers are Tim Hatch and Armin Ronacher +. + +Other contributors, listed alphabetically, are: + +* Sam Aaron -- Ioke lexer +* Kumar Appaiah -- Debian control lexer +* Ali Afshar -- image formatter +* Andreas Amann -- AppleScript lexer +* Jeffrey Arnold -- R/S, Rd and BUGS lexers +* Jeremy Ashkenas -- CoffeeScript lexer +* Stefan Matthias Aust -- Smalltalk lexer +* Ben Bangert -- Mako lexers +* Max Battcher -- Darcs patch lexer +* Paul Baumgart, 280 North, Inc. -- Objective-J lexer +* Michael Bayer -- Myghty lexers +* John Benediktsson -- Factor lexer +* Christopher Bertels -- Fancy lexer +* Jarrett Billingsley -- MiniD lexer +* Adam Blinkinsop -- Haskell, Redcode lexers +* Frits van Bommel -- assembler lexers +* Pierre Bourdon -- bugfixes +* Hiram Chirino -- Scaml and Jade lexers +* Ian Cooper -- VGL lexer +* Leaf Corcoran -- MoonScript lexer +* Christopher Creutzig -- MuPAD lexer +* Pete Curry -- bugfixes +* Owen Durni -- haXe lexer +* Nick Efford -- Python 3 lexer +* Sven Efftinge -- Xtend lexer +* Artem Egorkine -- terminal256 formatter +* James H. Fisher -- PostScript lexer +* Carlos Galdino -- Elixir and Elixir Console lexers +* Naveen Garg -- Autohotkey lexer +* Laurent Gautier -- R/S lexer +* Alex Gaynor -- PyPy log lexer +* Bertrand Goetzmann -- Groovy lexer +* Krzysiek Goj -- Scala lexer +* Matt Good -- Genshi, Cheetah lexers +* Patrick Gotthardt -- PHP namespaces support +* Olivier Guibe -- Asymptote lexer +* Martin Harriman -- SNOBOL lexer +* Matthew Harrison -- SVG formatter +* Steven Hazel -- Tcl lexer +* Aslak Hellesøy -- Gherkin lexer +* Greg Hendershott -- Racket lexer +* Jordi Gutiérrez Hermoso -- Octave lexer +* David Hess, Fish Software, Inc. -- Objective-J lexer +* Varun Hiremath -- Debian control lexer +* Doug Hogan -- Mscgen lexer +* Ben Hollis -- Mason lexer +* Tim Howard -- BlitzMax lexer +* Ivan Inozemtsev -- Fantom lexer +* Brian R. Jackson -- Tea lexer +* Dennis Kaarsemaker -- sources.list lexer +* Igor Kalnitsky -- vhdl lexer +* Eric Knibbe -- Lasso lexer +* Adam Koprowski -- Opa lexer +* Benjamin Kowarsch -- Modula-2 lexer +* Alexander Kriegisch -- Kconfig and AspectJ lexers +* Marek Kubica -- Scheme lexer +* Jochen Kupperschmidt -- Markdown processor +* Gerd Kurzbach -- Modelica lexer +* Olov Lassus -- Dart lexer +* Sylvestre Ledru -- Scilab lexer +* Mark Lee -- Vala lexer +* Ben Mabey -- Gherkin lexer +* Simone Margaritelli -- Hybris lexer +* Kirk McDonald -- D lexer +* Gordon McGregor -- SystemVerilog lexer +* Stephen McKamey -- Duel/JBST lexer +* Brian McKenna -- F# lexer +* Lukas Meuser -- BBCode formatter, Lua lexer +* Paul Miller -- LiveScript lexer +* Hong Minhee -- HTTP lexer +* Michael Mior -- Awk lexer +* Reuben Morais -- SourcePawn lexer +* Jon Morton -- Rust lexer +* Paulo Moura -- Logtalk lexer +* Mher Movsisyan -- DTD lexer +* Ana Nelson -- Ragel, ANTLR, R console lexers +* Nam T. Nguyen -- Monokai style +* Jesper Noehr -- HTML formatter "anchorlinenos" +* Mike Nolta -- Julia lexer +* Jonas Obrist -- BBCode lexer +* David Oliva -- Rebol lexer +* Jon Parise -- Protocol buffers lexer +* Ronny Pfannschmidt -- BBCode lexer +* Benjamin Peterson -- Test suite refactoring +* Dominik Picheta -- Nimrod lexer +* Clément Prévost -- UrbiScript lexer +* Kashif Rasul -- CUDA lexer +* Justin Reidy -- MXML lexer +* Norman Richards -- JSON lexer +* Lubomir Rintel -- GoodData MAQL and CL lexers +* Andre Roberge -- Tango style +* Konrad Rudolph -- LaTeX formatter enhancements +* Mario Ruggier -- Evoque lexers +* Stou Sandalski -- NumPy, FORTRAN, tcsh and XSLT lexers +* Matteo Sasso -- Common Lisp lexer +* Joe Schafer -- Ada lexer +* Ken Schutte -- Matlab lexers +* Tassilo Schweyer -- Io, MOOCode lexers +* Joerg Sieker -- ABAP lexer +* Robert Simmons -- Standard ML lexer +* Kirill Simonov -- YAML lexer +* Steve Spigarelli -- XQuery lexer +* Jerome St-Louis -- eC lexer +* James Strachan -- Kotlin lexer +* Tiberius Teng -- default style overhaul +* Jeremy Thurgood -- Erlang, Squid config lexers +* Erick Tryzelaar -- Felix lexer +* Daniele Varrazzo -- PostgreSQL lexers +* Abe Voelker -- OpenEdge ABL lexer +* Whitney Young -- ObjectiveC lexer +* Matthias Vallentin -- Bro lexer +* Nathan Weizenbaum -- Haml and Sass lexers +* Dietmar Winkler -- Modelica lexer +* Nils Winter -- Smalltalk lexer +* Davy Wybiral -- Clojure lexer +* Diego Zamboni -- CFengine3 lexer +* Enrique Zamudio -- Ceylon lexer +* Alex Zimin -- Nemerle lexer + +Many thanks for all contributions! diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000000..ca0a3ad3a6c --- /dev/null +++ b/LICENSE @@ -0,0 +1,25 @@ +Copyright (c) 2006-2012 by the respective authors (see AUTHORS file). +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +* Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py new file mode 100644 index 00000000000..52df5f00adc --- /dev/null +++ b/pygments/lexers/shell.py @@ -0,0 +1,364 @@ +# -*- coding: utf-8 -*- +""" + pygments.lexers.shell + ~~~~~~~~~~~~~~~~~~~~~ + + Lexers for various shells. + + :copyright: Copyright 2006-2012 by the Pygments team, see AUTHORS. + :license: BSD, see LICENSE for details. +""" + +import re + +from pygments.lexer import Lexer, RegexLexer, do_insertions, bygroups, include +from pygments.token import Punctuation, \ + Text, Comment, Operator, Keyword, Name, String, Number, Generic +from pygments.util import shebang_matches + + +__all__ = ['BashLexer', 'BashSessionLexer', 'TcshLexer', 'BatchLexer', + 'PowerShellLexer'] + +line_re = re.compile('.*?\n') + + +class BashLexer(RegexLexer): + """ + Lexer for (ba|k|)sh shell scripts. + + *New in Pygments 0.6.* + """ + + name = 'Bash' + aliases = ['bash', 'sh', 'ksh'] + filenames = ['*.sh', '*.ksh', '*.bash', '*.ebuild', '*.eclass', + '.bashrc', 'bashrc', '.bash_*', 'bash_*'] + mimetypes = ['application/x-sh', 'application/x-shellscript'] + + tokens = { + 'root': [ + include('basic'), + (r'\$\(\(', Keyword, 'math'), + (r'\$\(', Keyword, 'paren'), + (r'\${#?', Keyword, 'curly'), + (r'`', String.Backtick, 'backticks'), + include('data'), + ], + 'basic': [ + (r'\b(if|fi|else|while|do|done|for|then|return|function|case|' + r'select|continue|until|esac|elif)\s*\b', + Keyword), + (r'\b(alias|bg|bind|break|builtin|caller|cd|command|compgen|' + r'complete|declare|dirs|disown|echo|enable|eval|exec|exit|' + r'export|false|fc|fg|getopts|hash|help|history|jobs|kill|let|' + r'local|logout|popd|printf|pushd|pwd|read|readonly|set|shift|' + r'shopt|source|suspend|test|time|times|trap|true|type|typeset|' + r'ulimit|umask|unalias|unset|wait)\s*\b(?!\.)', + Name.Builtin), + (r'#.*\n', Comment), + (r'\\[\w\W]', String.Escape), + (r'(\b\w+)(\s*)(=)', bygroups(Name.Variable, Text, Operator)), + (r'[\[\]{}()=]', Operator), + (r'<<<', Operator), # here-string + (r'<<-?\s*(\'?)\\?(\w+)[\w\W]+?\2', String), + (r'&&|\|\|', Operator), + ], + 'data': [ + (r'(?s)\$?"(\\\\|\\[0-7]+|\\.|[^"\\])*"', String.Double), + (r"(?s)\$?'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single), + (r';', Text), + (r'\s+', Text), + (r'[^=\s\[\]{}()$"\'`\\<]+', Text), + (r'\d+(?= |\Z)', Number), + (r'\$#?(\w+|.)', Name.Variable), + (r'<', Text), + ], + 'curly': [ + (r'}', Keyword, '#pop'), + (r':-', Keyword), + (r'[a-zA-Z0-9_]+', Name.Variable), + (r'[^}:"\'`$]+', Punctuation), + (r':', Punctuation), + include('root'), + ], + 'paren': [ + (r'\)', Keyword, '#pop'), + include('root'), + ], + 'math': [ + (r'\)\)', Keyword, '#pop'), + (r'[-+*/%^|&]|\*\*|\|\|', Operator), + (r'\d+', Number), + include('root'), + ], + 'backticks': [ + (r'`', String.Backtick, '#pop'), + include('root'), + ], + } + + def analyse_text(text): + return shebang_matches(text, r'(ba|z|)sh') + + +class BashSessionLexer(Lexer): + """ + Lexer for simplistic shell sessions. + + *New in Pygments 1.1.* + """ + + name = 'Bash Session' + aliases = ['console'] + filenames = ['*.sh-session'] + mimetypes = ['application/x-shell-session'] + + def get_tokens_unprocessed(self, text): + bashlexer = BashLexer(**self.options) + + pos = 0 + curcode = '' + insertions = [] + + for match in line_re.finditer(text): + line = match.group() + m = re.match(r'^((?:\(\S+\))?(?:|sh\S*?|\w+\S+[@:]\S+(?:\s+\S+)' + r'?|\[\S+[@:][^\n]+\].+)[$#%])(.*\n?)' , line) + if m: + # To support output lexers (say diff output), the output + # needs to be broken by prompts whenever the output lexer + # changes. + if not insertions: + pos = match.start() + + insertions.append((len(curcode), + [(0, Generic.Prompt, m.group(1))])) + curcode += m.group(2) + elif line.startswith('>'): + insertions.append((len(curcode), + [(0, Generic.Prompt, line[:1])])) + curcode += line[1:] + else: + if insertions: + toks = bashlexer.get_tokens_unprocessed(curcode) + for i, t, v in do_insertions(insertions, toks): + yield pos+i, t, v + yield match.start(), Generic.Output, line + insertions = [] + curcode = '' + if insertions: + for i, t, v in do_insertions(insertions, + bashlexer.get_tokens_unprocessed(curcode)): + yield pos+i, t, v + + +class BatchLexer(RegexLexer): + """ + Lexer for the DOS/Windows Batch file format. + + *New in Pygments 0.7.* + """ + name = 'Batchfile' + aliases = ['bat'] + filenames = ['*.bat', '*.cmd'] + mimetypes = ['application/x-dos-batch'] + + flags = re.MULTILINE | re.IGNORECASE + + tokens = { + 'root': [ + # Lines can start with @ to prevent echo + (r'^\s*@', Punctuation), + (r'^(\s*)(rem\s.*)$', bygroups(Text, Comment)), + (r'".*?"', String.Double), + (r"'.*?'", String.Single), + # If made more specific, make sure you still allow expansions + # like %~$VAR:zlt + (r'%%?[~$:\w]+%?', Name.Variable), + (r'::.*', Comment), # Technically :: only works at BOL + (r'(set)(\s+)(\w+)', bygroups(Keyword, Text, Name.Variable)), + (r'(call)(\s+)(:\w+)', bygroups(Keyword, Text, Name.Label)), + (r'(goto)(\s+)(\w+)', bygroups(Keyword, Text, Name.Label)), + (r'\b(set|call|echo|on|off|endlocal|for|do|goto|if|pause|' + r'setlocal|shift|errorlevel|exist|defined|cmdextversion|' + r'errorlevel|else|cd|md|del|deltree|cls|choice)\b', Keyword), + (r'\b(equ|neq|lss|leq|gtr|geq)\b', Operator), + include('basic'), + (r'.', Text), + ], + 'echo': [ + # Escapes only valid within echo args? + (r'\^\^|\^<|\^>|\^\|', String.Escape), + (r'\n', Text, '#pop'), + include('basic'), + (r'[^\'"^]+', Text), + ], + 'basic': [ + (r'".*?"', String.Double), + (r"'.*?'", String.Single), + (r'`.*?`', String.Backtick), + (r'-?\d+', Number), + (r',', Punctuation), + (r'=', Operator), + (r'/\S+', Name), + (r':\w+', Name.Label), + (r'\w:\w+', Text), + (r'([<>|])(\s*)(\w+)', bygroups(Punctuation, Text, Name)), + ], + } + + +class TcshLexer(RegexLexer): + """ + Lexer for tcsh scripts. + + *New in Pygments 0.10.* + """ + + name = 'Tcsh' + aliases = ['tcsh', 'csh'] + filenames = ['*.tcsh', '*.csh'] + mimetypes = ['application/x-csh'] + + tokens = { + 'root': [ + include('basic'), + (r'\$\(', Keyword, 'paren'), + (r'\${#?', Keyword, 'curly'), + (r'`', String.Backtick, 'backticks'), + include('data'), + ], + 'basic': [ + (r'\b(if|endif|else|while|then|foreach|case|default|' + r'continue|goto|breaksw|end|switch|endsw)\s*\b', + Keyword), + (r'\b(alias|alloc|bg|bindkey|break|builtins|bye|caller|cd|chdir|' + r'complete|dirs|echo|echotc|eval|exec|exit|fg|filetest|getxvers|' + r'glob|getspath|hashstat|history|hup|inlib|jobs|kill|' + r'limit|log|login|logout|ls-F|migrate|newgrp|nice|nohup|notify|' + r'onintr|popd|printenv|pushd|rehash|repeat|rootnode|popd|pushd|' + r'set|shift|sched|setenv|setpath|settc|setty|setxvers|shift|' + r'source|stop|suspend|source|suspend|telltc|time|' + r'umask|unalias|uncomplete|unhash|universe|unlimit|unset|unsetenv|' + r'ver|wait|warp|watchlog|where|which)\s*\b', + Name.Builtin), + (r'#.*\n', Comment), + (r'\\[\w\W]', String.Escape), + (r'(\b\w+)(\s*)(=)', bygroups(Name.Variable, Text, Operator)), + (r'[\[\]{}()=]+', Operator), + (r'<<\s*(\'?)\\?(\w+)[\w\W]+?\2', String), + ], + 'data': [ + (r'(?s)"(\\\\|\\[0-7]+|\\.|[^"\\])*"', String.Double), + (r"(?s)'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single), + (r'\s+', Text), + (r'[^=\s\[\]{}()$"\'`\\]+', Text), + (r'\d+(?= |\Z)', Number), + (r'\$#?(\w+|.)', Name.Variable), + ], + 'curly': [ + (r'}', Keyword, '#pop'), + (r':-', Keyword), + (r'[a-zA-Z0-9_]+', Name.Variable), + (r'[^}:"\'`$]+', Punctuation), + (r':', Punctuation), + include('root'), + ], + 'paren': [ + (r'\)', Keyword, '#pop'), + include('root'), + ], + 'backticks': [ + (r'`', String.Backtick, '#pop'), + include('root'), + ], + } + + +class PowerShellLexer(RegexLexer): + """ + For Windows PowerShell code. + + *New in Pygments 1.5.* + """ + name = 'PowerShell' + aliases = ['powershell', 'posh', 'ps1'] + filenames = ['*.ps1'] + mimetypes = ['text/x-powershell'] + + flags = re.DOTALL | re.IGNORECASE | re.MULTILINE + + keywords = ( + 'while validateset validaterange validatepattern validatelength ' + 'validatecount until trap switch return ref process param parameter in ' + 'if global: function foreach for finally filter end elseif else ' + 'dynamicparam do default continue cmdletbinding break begin alias \\? ' + '% #script #private #local #global mandatory parametersetname position ' + 'valuefrompipeline valuefrompipelinebypropertyname ' + 'valuefromremainingarguments helpmessage try catch').split() + + operators = ( + 'and as band bnot bor bxor casesensitive ccontains ceq cge cgt cle ' + 'clike clt cmatch cne cnotcontains cnotlike cnotmatch contains ' + 'creplace eq exact f file ge gt icontains ieq ige igt ile ilike ilt ' + 'imatch ine inotcontains inotlike inotmatch ireplace is isnot le like ' + 'lt match ne not notcontains notlike notmatch or regex replace ' + 'wildcard').split() + + verbs = ( + 'write where wait use update unregister undo trace test tee take ' + 'suspend stop start split sort skip show set send select scroll resume ' + 'restore restart resolve resize reset rename remove register receive ' + 'read push pop ping out new move measure limit join invoke import ' + 'group get format foreach export expand exit enter enable disconnect ' + 'disable debug cxnew copy convertto convertfrom convert connect ' + 'complete compare clear checkpoint aggregate add').split() + + commenthelp = ( + 'component description example externalhelp forwardhelpcategory ' + 'forwardhelptargetname functionality inputs link ' + 'notes outputs parameter remotehelprunspace role synopsis').split() + + tokens = { + 'root': [ + (r'\s+', Text), + (r'^(\s*#[#\s]*)(\.(?:%s))([^\n]*$)' % '|'.join(commenthelp), + bygroups(Comment, String.Doc, Comment)), + (r'#[^\n]*?$', Comment), + (r'(<|<)#', Comment.Multiline, 'multline'), + (r'@"\n.*?\n"@', String.Heredoc), + (r"@'\n.*?\n'@", String.Heredoc), + # escaped syntax + (r'`[\'"$@-]', Punctuation), + (r'"', String.Double, 'string'), + (r"'([^']|'')*'", String.Single), + (r'(\$|@@|@)((global|script|private|env):)?[a-z0-9_]+', + Name.Variable), + (r'(%s)\b' % '|'.join(keywords), Keyword), + (r'-(%s)\b' % '|'.join(operators), Operator), + (r'(%s)-[a-z_][a-z0-9_]*\b' % '|'.join(verbs), Name.Builtin), + (r'\[[a-z_\[][a-z0-9_. `,\[\]]*\]', Name.Constant), # .net [type]s + (r'-[a-z_][a-z0-9_]*', Name), + (r'\w+', Name), + (r'[.,{}\[\]$()=+*/\\&%!~?^`|<>-]', Punctuation), + ], + 'multline': [ + (r'[^#&.]+', Comment.Multiline), + (r'#(>|>)', Comment.Multiline, '#pop'), + (r'\.(%s)' % '|'.join(commenthelp), String.Doc), + (r'[#&.]', Comment.Multiline), + ], + 'string': [ + (r'[^$`"]+', String.Double), + (r'\$\(', String.Interpol, 'interpol'), + (r'`"|""', String.Double), + (r'[`$]', String.Double), + (r'"', String.Double, '#pop'), + ], + 'interpol': [ + (r'[^$)]+', String.Interpol), + (r'\$\(', String.Interpol, '#push'), + (r'\)', String.Interpol, '#pop'), + ] + } From daaba3e4a3f2aa0f9c74859a94c9cea50b189dce Mon Sep 17 00:00:00 2001 From: Micha? G?rny Date: Fri, 19 Oct 2012 13:36:11 +0200 Subject: [PATCH 129/709] Add vim-specific aliases for lexers. --- pygments/lexers/shell.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 52df5f00adc..e6f0efeb8c6 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -160,7 +160,7 @@ class BatchLexer(RegexLexer): *New in Pygments 0.7.* """ name = 'Batchfile' - aliases = ['bat'] + aliases = ['bat', 'dosbatch', 'winbatch'] filenames = ['*.bat', '*.cmd'] mimetypes = ['application/x-dos-batch'] From c0139ea7fb482c38c4abb7e95b5925bc45b84fa9 Mon Sep 17 00:00:00 2001 From: amacarthur Date: Mon, 29 Oct 2012 09:11:07 -0400 Subject: [PATCH 130/709] added myself to AUTHORS file --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 6db0490c1b6..de81200e813 100644 --- a/AUTHORS +++ b/AUTHORS @@ -67,6 +67,7 @@ Other contributors, listed alphabetically, are: * Sylvestre Ledru -- Scilab lexer * Mark Lee -- Vala lexer * Ben Mabey -- Gherkin lexer +* Angus MacArthur -- QML lexer * Simone Margaritelli -- Hybris lexer * Kirk McDonald -- D lexer * Gordon McGregor -- SystemVerilog lexer From 0f0f257a53ee3162cf4900dce192804e8267845a Mon Sep 17 00:00:00 2001 From: Tim Hatch Date: Tue, 30 Oct 2012 09:38:41 -0700 Subject: [PATCH 131/709] Upstream lexer for Smali. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 6db0490c1b6..f04c56b9cc7 100644 --- a/AUTHORS +++ b/AUTHORS @@ -63,6 +63,7 @@ Other contributors, listed alphabetically, are: * Marek Kubica -- Scheme lexer * Jochen Kupperschmidt -- Markdown processor * Gerd Kurzbach -- Modelica lexer +* Jon Larimer, Google Inc. -- Smali lexer * Olov Lassus -- Dart lexer * Sylvestre Ledru -- Scilab lexer * Mark Lee -- Vala lexer From 8d97535bd685ff98e3de43201b49917e41458c22 Mon Sep 17 00:00:00 2001 From: Andy Date: Fri, 9 Nov 2012 19:59:51 +0800 Subject: [PATCH 132/709] Renamed haXe to Haxe, according to https://groups.google.com/forum/#!topic/haxelang/O7PB-ZrX4i4/discussion --- AUTHORS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index 6db0490c1b6..4208197dc13 100644 --- a/AUTHORS +++ b/AUTHORS @@ -27,7 +27,7 @@ Other contributors, listed alphabetically, are: * Leaf Corcoran -- MoonScript lexer * Christopher Creutzig -- MuPAD lexer * Pete Curry -- bugfixes -* Owen Durni -- haXe lexer +* Owen Durni -- Haxe lexer * Nick Efford -- Python 3 lexer * Sven Efftinge -- Xtend lexer * Artem Egorkine -- terminal256 formatter From 7fb69bc08985dec34c5add827b59c826cbb70185 Mon Sep 17 00:00:00 2001 From: Tim Hatch Date: Mon, 12 Nov 2012 14:42:25 -0800 Subject: [PATCH 133/709] Get ready for release: update "new in" version numbers and rename CUDALexer --- AUTHORS | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index f04c56b9cc7..cd2b85651af 100644 --- a/AUTHORS +++ b/AUTHORS @@ -9,7 +9,7 @@ Other contributors, listed alphabetically, are: * Kumar Appaiah -- Debian control lexer * Ali Afshar -- image formatter * Andreas Amann -- AppleScript lexer -* Jeffrey Arnold -- R/S, Rd and BUGS lexers +* Jeffrey Arnold -- R/S, Rd, BUGS, Jags, and Stan lexers * Jeremy Ashkenas -- CoffeeScript lexer * Stefan Matthias Aust -- Smalltalk lexer * Ben Bangert -- Mako lexers @@ -110,6 +110,7 @@ Other contributors, listed alphabetically, are: * Steve Spigarelli -- XQuery lexer * Jerome St-Louis -- eC lexer * James Strachan -- Kotlin lexer +* Tom Stuart -- Treetop lexer * Tiberius Teng -- default style overhaul * Jeremy Thurgood -- Erlang, Squid config lexers * Erick Tryzelaar -- Felix lexer From 341241b704256000c543aa107a4688f07f85b8ec Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Mon, 3 Dec 2012 10:17:49 +0100 Subject: [PATCH 134/709] Add Robot Framework attributions. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index cd2b85651af..ef72db68532 100644 --- a/AUTHORS +++ b/AUTHORS @@ -56,6 +56,7 @@ Other contributors, listed alphabetically, are: * Brian R. Jackson -- Tea lexer * Dennis Kaarsemaker -- sources.list lexer * Igor Kalnitsky -- vhdl lexer +* Pekka Klärck -- Robot Framework lexer * Eric Knibbe -- Lasso lexer * Adam Koprowski -- Opa lexer * Benjamin Kowarsch -- Modula-2 lexer From c9f6af31fe7768c1f5576f9f4ed9672221c48716 Mon Sep 17 00:00:00 2001 From: David Wolever Date: Mon, 10 Dec 2012 01:04:45 -0500 Subject: [PATCH 135/709] Fixing bug which incorrectly indexed packages with '-' in the version string --HG-- extra : rebase_source : 7b5b540d6ab9d684e5125a5ab2d28f5740557451 --- libpip2pi/__init__.py | 2 +- libpip2pi/commands.py | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/libpip2pi/__init__.py b/libpip2pi/__init__.py index 89a3cbc9728..aad219f2b09 100644 --- a/libpip2pi/__init__.py +++ b/libpip2pi/__init__.py @@ -1 +1 @@ -__version__ = (0, 1, 3) +__version__ = (0, 1, 4) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index 8646e742bd2..f42a99bebd9 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -26,6 +26,11 @@ def file_to_package(file, basedir=None): msg += "; found in directory: %r" %(basedir) msg += ")" raise ValueError(msg) + # Note: for various reasions (which I don't 100% remember right now) we + # need to replace '-' in the version string with '_'. I think this has to + # do with the way we export the list of files from the PIP manifest, then + # read them back in somewhere else. It would be cool to fix this at some + # point. return (split[0], split[1].replace("_", "-")) def dir2pi(argv=sys.argv): @@ -77,7 +82,7 @@ def dir2pi(argv=sys.argv): os.mkdir(pkg_dir) pkg_new_basename = "-".join([pkg_name, pkg_rest]) symlink_target = os.path.join(pkg_dir, pkg_new_basename) - symlink_source = os.path.join("../../", pkg_new_basename) + symlink_source = os.path.join("../../", pkg_basename) os.symlink(symlink_source, symlink_target) From 2c5c1b93eb0922af5459f4c9ca54827dd049427e Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Wed, 9 Jan 2013 10:32:53 +0100 Subject: [PATCH 136/709] Add attribution and changelog for new Dylan lexer; minor style fixes. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index ef72db68532..68977d5ffe7 100644 --- a/AUTHORS +++ b/AUTHORS @@ -78,6 +78,7 @@ Other contributors, listed alphabetically, are: * Paul Miller -- LiveScript lexer * Hong Minhee -- HTTP lexer * Michael Mior -- Awk lexer +* Bruce Mitchener -- Dylan lexer rewrite * Reuben Morais -- SourcePawn lexer * Jon Morton -- Rust lexer * Paulo Moura -- Logtalk lexer From 60e0be11e68f3a3312c9580ca20bb54762cabaaa Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Wed, 9 Jan 2013 12:46:32 +0100 Subject: [PATCH 137/709] Happy new year 2013. --- LICENSE | 2 +- pygments/lexers/shell.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/LICENSE b/LICENSE index ca0a3ad3a6c..1e091194d7c 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2006-2012 by the respective authors (see AUTHORS file). +Copyright (c) 2006-2013 by the respective authors (see AUTHORS file). All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 52df5f00adc..803005f3c4a 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -5,7 +5,7 @@ Lexers for various shells. - :copyright: Copyright 2006-2012 by the Pygments team, see AUTHORS. + :copyright: Copyright 2006-2013 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. """ From 36d053a918fffde46c8d215072b0da1811cdf190 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Wed, 9 Jan 2013 13:19:51 +0100 Subject: [PATCH 138/709] Changelog and attribution for lexer definition inheritance. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 6acdda9905d..5bd1a721e8f 100644 --- a/AUTHORS +++ b/AUTHORS @@ -51,6 +51,7 @@ Other contributors, listed alphabetically, are: * Varun Hiremath -- Debian control lexer * Doug Hogan -- Mscgen lexer * Ben Hollis -- Mason lexer +* Alastair Houghton -- Lexer inheritance facility * Tim Howard -- BlitzMax lexer * Ivan Inozemtsev -- Fantom lexer * Brian R. Jackson -- Tea lexer From 67f9871260108957123bb99ffc8b747fed3c1d4e Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Wed, 9 Jan 2013 13:52:44 +0100 Subject: [PATCH 139/709] OpenCOBOL: attribution, changelog entry. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 5bd1a721e8f..ba8a8eac72b 100644 --- a/AUTHORS +++ b/AUTHORS @@ -118,6 +118,7 @@ Other contributors, listed alphabetically, are: * Tom Stuart -- Treetop lexer * Tiberius Teng -- default style overhaul * Jeremy Thurgood -- Erlang, Squid config lexers +* Brian Tiffin -- OpenCOBOL lexer * Erick Tryzelaar -- Felix lexer * Daniele Varrazzo -- PostgreSQL lexers * Abe Voelker -- OpenEdge ABL lexer From 5fdc3a7a9ce11d3f279c79fbbe93c3ad9a7af979 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Wed, 9 Jan 2013 15:17:49 +0100 Subject: [PATCH 140/709] Add attribution and changelog entry for AutoIt. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index ba8a8eac72b..06b5ed0f1c2 100644 --- a/AUTHORS +++ b/AUTHORS @@ -109,6 +109,7 @@ Other contributors, listed alphabetically, are: * Joe Schafer -- Ada lexer * Ken Schutte -- Matlab lexers * Tassilo Schweyer -- Io, MOOCode lexers +* Ted Shaw -- AutoIt lexer * Joerg Sieker -- ABAP lexer * Robert Simmons -- Standard ML lexer * Kirill Simonov -- YAML lexer From b654b96216a603bfa7db6e47b15c2dd788f41e03 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Wed, 9 Jan 2013 15:27:27 +0100 Subject: [PATCH 141/709] Add attribution and changelog entry for IDL lexer. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 06b5ed0f1c2..e1e2313d811 100644 --- a/AUTHORS +++ b/AUTHORS @@ -33,6 +33,7 @@ Other contributors, listed alphabetically, are: * Artem Egorkine -- terminal256 formatter * James H. Fisher -- PostScript lexer * Carlos Galdino -- Elixir and Elixir Console lexers +* Michael Galloy -- IDL lexer * Naveen Garg -- Autohotkey lexer * Laurent Gautier -- R/S lexer * Alex Gaynor -- PyPy log lexer From 816ea8dba49c8e386cd9a3b586fdda1b755eb633 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Wed, 9 Jan 2013 16:00:11 +0100 Subject: [PATCH 142/709] CTags feature: * rename parameter "urlformat" to "tagurlformat" to make clear it belongs to the tags feature * change NameError to RuntimeError and tone down the message * document that python-ctags must be installed to use the tagsfile feature * move test tags file from examplefiles/, where it will be attempted as a test file * fix test to work if python-ctags is not installed * changelog/attribution --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 46ec08b0ca8..7f040e7ad99 100644 --- a/AUTHORS +++ b/AUTHORS @@ -125,6 +125,7 @@ Other contributors, listed alphabetically, are: * Erick Tryzelaar -- Felix lexer * Daniele Varrazzo -- PostgreSQL lexers * Abe Voelker -- OpenEdge ABL lexer +* Pepijn de Vos -- HTML formatter CTags support * Whitney Young -- ObjectiveC lexer * Matthias Vallentin -- Bro lexer * Nathan Weizenbaum -- Haml and Sass lexers From 60ab5703d1fc2cd68dbe2deba3f03aaa43e3ed96 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Wed, 9 Jan 2013 16:13:53 +0100 Subject: [PATCH 143/709] Closes #762: add Visual FoxPro lexer. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 7f040e7ad99..66438135c3a 100644 --- a/AUTHORS +++ b/AUTHORS @@ -115,6 +115,7 @@ Other contributors, listed alphabetically, are: * Joerg Sieker -- ABAP lexer * Robert Simmons -- Standard ML lexer * Kirill Simonov -- YAML lexer +* Alexander Smishlajev -- Visual FoxPro lexer * Steve Spigarelli -- XQuery lexer * Jerome St-Louis -- eC lexer * James Strachan -- Kotlin lexer From 516ba3033a5ff48f0de53e99ee7d52380ae841c1 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Thu, 10 Jan 2013 22:05:17 +0100 Subject: [PATCH 144/709] Add attribution/changelog entry for Logos. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 66438135c3a..bf0f3a65bfe 100644 --- a/AUTHORS +++ b/AUTHORS @@ -53,6 +53,7 @@ Other contributors, listed alphabetically, are: * Varun Hiremath -- Debian control lexer * Doug Hogan -- Mscgen lexer * Ben Hollis -- Mason lexer +* Dustin Howett -- Logos lexer * Alastair Houghton -- Lexer inheritance facility * Tim Howard -- BlitzMax lexer * Ivan Inozemtsev -- Fantom lexer From aa5e760c670200ec079855107bf11c92623e49ae Mon Sep 17 00:00:00 2001 From: Christian Jann Date: Fri, 25 Jan 2013 16:57:19 +0100 Subject: [PATCH 145/709] Added ShellSessionLexer --- AUTHORS | 1 + pygments/lexers/shell.py | 48 +++++++++++++++++++++++++++++++++++++++- 2 files changed, 48 insertions(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index bf0f3a65bfe..99e6ab7527d 100644 --- a/AUTHORS +++ b/AUTHORS @@ -25,6 +25,7 @@ Other contributors, listed alphabetically, are: * Hiram Chirino -- Scaml and Jade lexers * Ian Cooper -- VGL lexer * Leaf Corcoran -- MoonScript lexer +* Christian Jann -- ShellSession lexer * Christopher Creutzig -- MuPAD lexer * Pete Curry -- bugfixes * Owen Durni -- haXe lexer diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 803005f3c4a..b95faf93e52 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -18,7 +18,7 @@ __all__ = ['BashLexer', 'BashSessionLexer', 'TcshLexer', 'BatchLexer', - 'PowerShellLexer'] + 'PowerShellLexer', 'ShellSessionLexer'] line_re = re.compile('.*?\n') @@ -153,6 +153,52 @@ def get_tokens_unprocessed(self, text): yield pos+i, t, v +class ShellSessionLexer(Lexer): + """ + Lexer for shell sessions that works with different command prompts + + *New in Pygments 1.6.* + """ + + name = 'Shell Session' + aliases = ['shell-session'] + filenames = ['*.shell-session'] + mimetypes = ['application/x-sh-session'] + + def get_tokens_unprocessed(self, text): + bashlexer = BashLexer(**self.options) + + pos = 0 + curcode = '' + insertions = [] + + for match in line_re.finditer(text): + line = match.group() + m = re.match(r'^((?:\[?\S+@[^$#%]+)[$#%])(.*\n?)', line) + if m: + # To support output lexers (say diff output), the output + # needs to be broken by prompts whenever the output lexer + # changes. + if not insertions: + pos = match.start() + + insertions.append((len(curcode), + [(0, Generic.Prompt, m.group(1))])) + curcode += m.group(2) + else: + if insertions: + toks = bashlexer.get_tokens_unprocessed(curcode) + for i, t, v in do_insertions(insertions, toks): + yield pos+i, t, v + yield match.start(), Generic.Output, line + insertions = [] + curcode = '' + if insertions: + for i, t, v in do_insertions(insertions, + bashlexer.get_tokens_unprocessed(curcode)): + yield pos+i, t, v + + class BatchLexer(RegexLexer): """ Lexer for the DOS/Windows Batch file format. From c90046fd1d8773d7fcaf77fdbcf7349d752ee11b Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 3 Feb 2013 10:29:32 +0100 Subject: [PATCH 146/709] Add missing attributions and changelog entries. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index bf0f3a65bfe..0d7388a68cb 100644 --- a/AUTHORS +++ b/AUTHORS @@ -9,6 +9,7 @@ Other contributors, listed alphabetically, are: * Kumar Appaiah -- Debian control lexer * Ali Afshar -- image formatter * Andreas Amann -- AppleScript lexer +* Timothy Armstrong -- Dart lexer fixes * Jeffrey Arnold -- R/S, Rd, BUGS, Jags, and Stan lexers * Jeremy Ashkenas -- CoffeeScript lexer * Stefan Matthias Aust -- Smalltalk lexer From 14250c47f9e162b1bd1dcc3337abf379e6750313 Mon Sep 17 00:00:00 2001 From: Alex Gosse Date: Wed, 6 Mar 2013 14:12:54 -0800 Subject: [PATCH 147/709] Add support for Riverbed TrafficScript lexing. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 9447bd0fb1f..a53f29accc5 100644 --- a/AUTHORS +++ b/AUTHORS @@ -43,6 +43,7 @@ Other contributors, listed alphabetically, are: * Bertrand Goetzmann -- Groovy lexer * Krzysiek Goj -- Scala lexer * Matt Good -- Genshi, Cheetah lexers +* Alex Gosse -- TrafficScript lexer * Patrick Gotthardt -- PHP namespaces support * Olivier Guibe -- Asymptote lexer * Jordi Gutiérrez Hermoso -- Octave lexer From 666823f4071892492b6b7053bd0acd819d5abac6 Mon Sep 17 00:00:00 2001 From: James Adams Date: Fri, 8 Mar 2013 12:46:30 +0100 Subject: [PATCH 148/709] Add test file for pan language and update AUTHORS --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 9447bd0fb1f..27e0b8f687d 100644 --- a/AUTHORS +++ b/AUTHORS @@ -139,5 +139,6 @@ Other contributors, listed alphabetically, are: * Diego Zamboni -- CFengine3 lexer * Enrique Zamudio -- Ceylon lexer * Alex Zimin -- Nemerle lexer +* James Adams -- Pan lexer Many thanks for all contributions! From e327d252c0870704f5b0f2d5843c708cd1eff367 Mon Sep 17 00:00:00 2001 From: Stepan Koltsov Date: Thu, 4 Apr 2013 01:45:46 +0400 Subject: [PATCH 149/709] Lexer for Clay programming language. https://github.com/jckarter/clay/ --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 9447bd0fb1f..34b40db42ce 100644 --- a/AUTHORS +++ b/AUTHORS @@ -64,6 +64,7 @@ Other contributors, listed alphabetically, are: * Igor Kalnitsky -- vhdl lexer * Pekka Klärck -- Robot Framework lexer * Eric Knibbe -- Lasso lexer +* Stepan Koltsov -- Clay lexer * Adam Koprowski -- Opa lexer * Benjamin Kowarsch -- Modula-2 lexer * Alexander Kriegisch -- Kconfig and AspectJ lexers From f8a2a553278458996b7384e8e241b5fe632bed9b Mon Sep 17 00:00:00 2001 From: gentoo90 Date: Sun, 7 Apr 2013 15:10:09 +0300 Subject: [PATCH 150/709] PowerShellLexer: minor fixes Add *.psm1 file extension Here-strings can be nested now Recognize escape characters in double-quoted strings Add '@', ';' and '::' to punctuation --- pygments/lexers/shell.py | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index b95faf93e52..bc084b4cbe8 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -329,8 +329,8 @@ class PowerShellLexer(RegexLexer): *New in Pygments 1.5.* """ name = 'PowerShell' - aliases = ['powershell', 'posh', 'ps1'] - filenames = ['*.ps1'] + aliases = ['powershell', 'posh', 'ps1', 'psm1'] + filenames = ['*.ps1','*.psm1'] mimetypes = ['text/x-powershell'] flags = re.DOTALL | re.IGNORECASE | re.MULTILINE @@ -373,8 +373,8 @@ class PowerShellLexer(RegexLexer): bygroups(Comment, String.Doc, Comment)), (r'#[^\n]*?$', Comment), (r'(<|<)#', Comment.Multiline, 'multline'), - (r'@"\n.*?\n"@', String.Heredoc), - (r"@'\n.*?\n'@", String.Heredoc), + (r'@"\n', String.Heredoc, 'heredoc-double'), + (r"@'\n", String.Heredoc, 'heredoc-single'), # escaped syntax (r'`[\'"$@-]', Punctuation), (r'"', String.Double, 'string'), @@ -387,7 +387,7 @@ class PowerShellLexer(RegexLexer): (r'\[[a-z_\[][a-z0-9_. `,\[\]]*\]', Name.Constant), # .net [type]s (r'-[a-z_][a-z0-9_]*', Name), (r'\w+', Name), - (r'[.,{}\[\]$()=+*/\\&%!~?^`|<>-]', Punctuation), + (r'([.,;@{}\[\]$()=+*/\\&%!~?^`|<>-]|::)', Punctuation), ], 'multline': [ (r'[^#&.]+', Comment.Multiline), @@ -396,12 +396,25 @@ class PowerShellLexer(RegexLexer): (r'[#&.]', Comment.Multiline), ], 'string': [ + (r"`[0abfnrtv'\"\$]", String.Escape), (r'[^$`"]+', String.Double), (r'\$\(', String.Interpol, 'interpol'), - (r'`"|""', String.Double), + (r'""', String.Double), (r'[`$]', String.Double), (r'"', String.Double, '#pop'), ], + 'heredoc-double': [ + (r'@"\n', String.Heredoc, '#push'), + (r"@'\n", String.Heredoc, 'heredoc-single'), + (r'\n"@', String.Heredoc, '#pop'), + (r".", String.Heredoc), + ], + 'heredoc-single': [ + (r'@"\n', String.Heredoc, 'heredoc-double'), + (r"@'\n", String.Heredoc, '#push'), + (r"\n'@", String.Heredoc, '#pop'), + (r".", String.Heredoc), + ], 'interpol': [ (r'[^$)]+', String.Interpol), (r'\$\(', String.Interpol, '#push'), From ec2cc131e2b143fb5d652cd54caa089757e0a1c6 Mon Sep 17 00:00:00 2001 From: Venkatraju Date: Wed, 10 Apr 2013 12:09:48 +0530 Subject: [PATCH 151/709] pip-1.3 appears to require index.html in package dir --- libpip2pi/commands.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index f42a99bebd9..2b2c6d87130 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -58,6 +58,7 @@ def dir2pi(argv=sys.argv): packages/foo-1.2.tar.gz packages/simple/ packages/simple/foo/ + packages/simple/foo/index.html packages/simple/foo/foo-1.2.tar.gz """) sys.exit(1) @@ -84,6 +85,9 @@ def dir2pi(argv=sys.argv): symlink_target = os.path.join(pkg_dir, pkg_new_basename) symlink_source = os.path.join("../../", pkg_basename) os.symlink(symlink_source, symlink_target) + fp = open(os.path.join(pkg_dir, 'index.html'), 'w') + fp.write('%s\n' % (pkg_new_basename, pkg_name)) + fp.close() def pip2tgz(argv=sys.argv): From bba2c19ca8cce41a75ac99df0f1e0b73b6b6c042 Mon Sep 17 00:00:00 2001 From: Venkatraju Date: Wed, 10 Apr 2013 12:37:19 +0530 Subject: [PATCH 152/709] Create index.html entries for all versions of a package --- libpip2pi/commands.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index 2b2c6d87130..c81bc2cf8ef 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -85,8 +85,8 @@ def dir2pi(argv=sys.argv): symlink_target = os.path.join(pkg_dir, pkg_new_basename) symlink_source = os.path.join("../../", pkg_basename) os.symlink(symlink_source, symlink_target) - fp = open(os.path.join(pkg_dir, 'index.html'), 'w') - fp.write('%s\n' % (pkg_new_basename, pkg_name)) + fp = open(os.path.join(pkg_dir, 'index.html'), 'a') + fp.write('%s\n' % (pkg_new_basename, pkg_name)) fp.close() From 431462a27e13f66497400bf29a9b04f47debda2b Mon Sep 17 00:00:00 2001 From: Venkatraju Date: Wed, 10 Apr 2013 14:45:51 +0530 Subject: [PATCH 153/709] Change link text to include package version --- libpip2pi/commands.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index c81bc2cf8ef..31d1efccb25 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -86,7 +86,7 @@ def dir2pi(argv=sys.argv): symlink_source = os.path.join("../../", pkg_basename) os.symlink(symlink_source, symlink_target) fp = open(os.path.join(pkg_dir, 'index.html'), 'a') - fp.write('%s\n' % (pkg_new_basename, pkg_name)) + fp.write("%s\n" % (pkg_new_basename, pkg_new_basename)) fp.close() From 160787f7a365ccfee122b72c5f7b5991f2fbfa1a Mon Sep 17 00:00:00 2001 From: David Wolever Date: Mon, 15 Apr 2013 17:35:33 -0400 Subject: [PATCH 154/709] Adding a license --HG-- extra : rebase_source : 732a4edf547c74afd3587cc4651c721a4b1d8a62 --- LICENSE.txt | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 LICENSE.txt diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 00000000000..f3eb68308cc --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,29 @@ +tl;dr: all code code is licensed under simplified BSD, unless stated otherwise. + +Unless stated otherwise in the source files, all code is copyright 2010 David +Wolever . All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +EVENT SHALL OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +The views and conclusions contained in the software and documentation are those +of the authors and should not be interpreted as representing official policies, +either expressed or implied, of David Wolever. From 8c00dca6f4ee39b8dda4e45ae7c79c7d7a91fb0a Mon Sep 17 00:00:00 2001 From: Thomas Aglassinger Date: Thu, 18 Apr 2013 22:34:50 +0200 Subject: [PATCH 155/709] Added version and author information for Easytrieve, FOCUS, JCL and Rexx lexers. Also cleaned up sort order of authors. --- AUTHORS | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index 34b40db42ce..dc4485f3f20 100644 --- a/AUTHORS +++ b/AUTHORS @@ -6,8 +6,9 @@ Major developers are Tim Hatch and Armin Ronacher Other contributors, listed alphabetically, are: * Sam Aaron -- Ioke lexer -* Kumar Appaiah -- Debian control lexer * Ali Afshar -- image formatter +* Thomas Aglassinger -- Easytrieve, FOCUS, JCL and Rexx lexers +* Kumar Appaiah -- Debian control lexer * Andreas Amann -- AppleScript lexer * Timothy Armstrong -- Dart lexer fixes * Jeffrey Arnold -- R/S, Rd, BUGS, Jags, and Stan lexers From 283a8edb8341887ad87c820c80fc3327617f4e91 Mon Sep 17 00:00:00 2001 From: gentoo90 Date: Fri, 19 Apr 2013 21:50:38 +0300 Subject: [PATCH 156/709] PowerShellLexer: more fixes * '$(...)' blocks inside double quoted strings and here-strings now highlighted as code * Here-strings can't be nested directly. Only inside '$(...)' block * Add new example with here-strings * Add 'throw' keyword * Remove redundant code --- pygments/lexers/shell.py | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index bc084b4cbe8..d117fd86c33 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -342,7 +342,7 @@ class PowerShellLexer(RegexLexer): 'dynamicparam do default continue cmdletbinding break begin alias \\? ' '% #script #private #local #global mandatory parametersetname position ' 'valuefrompipeline valuefrompipelinebypropertyname ' - 'valuefromremainingarguments helpmessage try catch').split() + 'valuefromremainingarguments helpmessage try catch throw').split() operators = ( 'and as band bnot bor bxor casesensitive ccontains ceq cge cgt cle ' @@ -368,13 +368,17 @@ class PowerShellLexer(RegexLexer): tokens = { 'root': [ + # we need to count pairs of parentheses for correct highlight + # of '$(...)' blocks in strings + (r'\(', Punctuation, '#push'), + (r'\)', Punctuation, '#pop'), (r'\s+', Text), (r'^(\s*#[#\s]*)(\.(?:%s))([^\n]*$)' % '|'.join(commenthelp), bygroups(Comment, String.Doc, Comment)), (r'#[^\n]*?$', Comment), (r'(<|<)#', Comment.Multiline, 'multline'), (r'@"\n', String.Heredoc, 'heredoc-double'), - (r"@'\n", String.Heredoc, 'heredoc-single'), + (r"@'\n.*?\n'@", String.Heredoc), # escaped syntax (r'`[\'"$@-]', Punctuation), (r'"', String.Double, 'string'), @@ -387,7 +391,7 @@ class PowerShellLexer(RegexLexer): (r'\[[a-z_\[][a-z0-9_. `,\[\]]*\]', Name.Constant), # .net [type]s (r'-[a-z_][a-z0-9_]*', Name), (r'\w+', Name), - (r'([.,;@{}\[\]$()=+*/\\&%!~?^`|<>-]|::)', Punctuation), + (r'[.,;@{}\[\]$()=+*/\\&%!~?^`|<>-]|::', Punctuation), ], 'multline': [ (r'[^#&.]+', Comment.Multiline), @@ -398,26 +402,15 @@ class PowerShellLexer(RegexLexer): 'string': [ (r"`[0abfnrtv'\"\$]", String.Escape), (r'[^$`"]+', String.Double), - (r'\$\(', String.Interpol, 'interpol'), + (r'\$\(', Punctuation, 'root'), (r'""', String.Double), (r'[`$]', String.Double), (r'"', String.Double, '#pop'), ], 'heredoc-double': [ - (r'@"\n', String.Heredoc, '#push'), - (r"@'\n", String.Heredoc, 'heredoc-single'), (r'\n"@', String.Heredoc, '#pop'), + (r'\$\(', Punctuation, 'root'), + (r'[^@\n]+"]', String.Heredoc), (r".", String.Heredoc), - ], - 'heredoc-single': [ - (r'@"\n', String.Heredoc, 'heredoc-double'), - (r"@'\n", String.Heredoc, '#push'), - (r"\n'@", String.Heredoc, '#pop'), - (r".", String.Heredoc), - ], - 'interpol': [ - (r'[^$)]+', String.Interpol), - (r'\$\(', String.Interpol, '#push'), - (r'\)', String.Interpol, '#pop'), ] } From 96849995b0d1ed14084bdc82586c1ee68861d99f Mon Sep 17 00:00:00 2001 From: Thomas Aglassinger Date: Fri, 10 May 2013 01:02:34 +0200 Subject: [PATCH 157/709] Added lexer for Rexx. --- AUTHORS | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index 34b40db42ce..3b6908f5829 100644 --- a/AUTHORS +++ b/AUTHORS @@ -6,8 +6,9 @@ Major developers are Tim Hatch and Armin Ronacher Other contributors, listed alphabetically, are: * Sam Aaron -- Ioke lexer -* Kumar Appaiah -- Debian control lexer * Ali Afshar -- image formatter +* Thomas Aglassinger -- Rexx lexer +* Kumar Appaiah -- Debian control lexer * Andreas Amann -- AppleScript lexer * Timothy Armstrong -- Dart lexer fixes * Jeffrey Arnold -- R/S, Rd, BUGS, Jags, and Stan lexers From 8df47f4abb39cf4448aa5a01512699b3ec4c959d Mon Sep 17 00:00:00 2001 From: Tim Hatch Date: Thu, 9 May 2013 17:34:44 -0700 Subject: [PATCH 158/709] Split PowerShell root into two states, so we know when a close paren is expected. Fixes #869 --- pygments/lexers/shell.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index d117fd86c33..eb87a6744db 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -370,8 +370,7 @@ class PowerShellLexer(RegexLexer): 'root': [ # we need to count pairs of parentheses for correct highlight # of '$(...)' blocks in strings - (r'\(', Punctuation, '#push'), - (r'\)', Punctuation, '#pop'), + (r'\(', Punctuation, 'child'), (r'\s+', Text), (r'^(\s*#[#\s]*)(\.(?:%s))([^\n]*$)' % '|'.join(commenthelp), bygroups(Comment, String.Doc, Comment)), @@ -393,6 +392,10 @@ class PowerShellLexer(RegexLexer): (r'\w+', Name), (r'[.,;@{}\[\]$()=+*/\\&%!~?^`|<>-]|::', Punctuation), ], + 'child': [ + (r'\)', Punctuation, '#pop'), + include('root'), + ], 'multline': [ (r'[^#&.]+', Comment.Multiline), (r'#(>|>)', Comment.Multiline, '#pop'), @@ -402,14 +405,14 @@ class PowerShellLexer(RegexLexer): 'string': [ (r"`[0abfnrtv'\"\$]", String.Escape), (r'[^$`"]+', String.Double), - (r'\$\(', Punctuation, 'root'), + (r'\$\(', Punctuation, 'child'), (r'""', String.Double), (r'[`$]', String.Double), (r'"', String.Double, '#pop'), ], 'heredoc-double': [ (r'\n"@', String.Heredoc, '#pop'), - (r'\$\(', Punctuation, 'root'), + (r'\$\(', Punctuation, 'child'), (r'[^@\n]+"]', String.Heredoc), (r".", String.Heredoc), ] From 52ef6593ab2099dd458a388195a64445c9998909 Mon Sep 17 00:00:00 2001 From: Tim Hatch Date: Thu, 9 May 2013 18:16:46 -0700 Subject: [PATCH 159/709] Make BashLexer recognize end of words around '&', '|', and ';' properly. Fixes #844 --- pygments/lexers/shell.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index eb87a6744db..3e621b8417f 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -67,9 +67,10 @@ class BashLexer(RegexLexer): 'data': [ (r'(?s)\$?"(\\\\|\\[0-7]+|\\.|[^"\\])*"', String.Double), (r"(?s)\$?'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single), - (r';', Text), + (r';', Punctuation), + (r'&', Punctuation), (r'\s+', Text), - (r'[^=\s\[\]{}()$"\'`\\<]+', Text), + (r'[^=\s\[\]{}()$"\'`\\<&|;]+', Text), (r'\d+(?= |\Z)', Number), (r'\$#?(\w+|.)', Name.Variable), (r'<', Text), From 2777c837741e58a230a70a744e9e1419e3d0d623 Mon Sep 17 00:00:00 2001 From: Tim Hatch Date: Thu, 9 May 2013 18:18:06 -0700 Subject: [PATCH 160/709] Followup for #844, recognize pipe again. --- pygments/lexers/shell.py | 1 + 1 file changed, 1 insertion(+) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 3e621b8417f..59a72a81cf6 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -69,6 +69,7 @@ class BashLexer(RegexLexer): (r"(?s)\$?'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single), (r';', Punctuation), (r'&', Punctuation), + (r'\|', Punctuation), (r'\s+', Text), (r'[^=\s\[\]{}()$"\'`\\<&|;]+', Text), (r'\d+(?= |\Z)', Number), From e4d2656d0fc3f768aba8281bf665e9ed20800c1a Mon Sep 17 00:00:00 2001 From: Rob Hoelz Date: Fri, 10 May 2013 18:25:18 +0200 Subject: [PATCH 161/709] Add Rob Hoelz to AUTHORS Also add Perl 6 lexer to CHANGES --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 34b40db42ce..79e53e56017 100644 --- a/AUTHORS +++ b/AUTHORS @@ -53,6 +53,7 @@ Other contributors, listed alphabetically, are: * Greg Hendershott -- Racket lexer * David Hess, Fish Software, Inc. -- Objective-J lexer * Varun Hiremath -- Debian control lexer +* Rob Hoelz -- Perl 6 lexer * Doug Hogan -- Mscgen lexer * Ben Hollis -- Mason lexer * Dustin Howett -- Logos lexer From 5f2d8f5fb2db7bc51cdc96c7271327395b3efc68 Mon Sep 17 00:00:00 2001 From: William Fulton Date: Sat, 11 May 2013 19:11:22 +0100 Subject: [PATCH 162/709] Update AUTHORS for SWIG Lexer --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 79e53e56017..1097ae1b1b2 100644 --- a/AUTHORS +++ b/AUTHORS @@ -34,6 +34,7 @@ Other contributors, listed alphabetically, are: * Sven Efftinge -- Xtend lexer * Artem Egorkine -- terminal256 formatter * James H. Fisher -- PostScript lexer +* William S. Fulton -- SWIG lexer * Carlos Galdino -- Elixir and Elixir Console lexers * Michael Galloy -- IDL lexer * Naveen Garg -- Autohotkey lexer From 896b4b486c4329c21e20875e1a78827d1e0c14ef Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 19 May 2013 09:18:30 +0200 Subject: [PATCH 163/709] Add missing attributions, changelog entries and versionadded tags. --- AUTHORS | 3 +++ 1 file changed, 3 insertions(+) diff --git a/AUTHORS b/AUTHORS index 1097ae1b1b2..df7be679039 100644 --- a/AUTHORS +++ b/AUTHORS @@ -41,9 +41,11 @@ Other contributors, listed alphabetically, are: * Laurent Gautier -- R/S lexer * Alex Gaynor -- PyPy log lexer * Alain Gilbert -- TypeScript lexer +* Alex Gilding -- BlitzBasic lexer * Bertrand Goetzmann -- Groovy lexer * Krzysiek Goj -- Scala lexer * Matt Good -- Genshi, Cheetah lexers +* Michał Górny -- vim modeline support * Patrick Gotthardt -- PHP namespaces support * Olivier Guibe -- Asymptote lexer * Jordi Gutiérrez Hermoso -- Octave lexer @@ -100,6 +102,7 @@ Other contributors, listed alphabetically, are: * Mike Nolta -- Julia lexer * Jonas Obrist -- BBCode lexer * David Oliva -- Rebol lexer +* Pat Pannuto -- nesC lexer * Jon Parise -- Protocol buffers lexer * Ronny Pfannschmidt -- BBCode lexer * Benjamin Peterson -- Test suite refactoring From 4f8fa895581faf41c4610adefb9c03bc9f0a58dd Mon Sep 17 00:00:00 2001 From: Tim Baumann Date: Sun, 19 May 2013 22:34:21 +0200 Subject: [PATCH 164/709] Added myself (Tim Baumann) to AUTHORS --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 1097ae1b1b2..525d24f4993 100644 --- a/AUTHORS +++ b/AUTHORS @@ -15,6 +15,7 @@ Other contributors, listed alphabetically, are: * Stefan Matthias Aust -- Smalltalk lexer * Ben Bangert -- Mako lexers * Max Battcher -- Darcs patch lexer +* Tim Baumann -- (Literate) Agda lexer * Paul Baumgart, 280 North, Inc. -- Objective-J lexer * Michael Bayer -- Myghty lexers * John Benediktsson -- Factor lexer From 5ff6006c500945b64be80b7bf2a4aac367cfe233 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Mon, 20 May 2013 07:45:23 +0200 Subject: [PATCH 165/709] Closes #862: better guess for shell lexer. --- pygments/lexers/shell.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 78c5c996cf7..5ec9deaa6df 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -101,7 +101,10 @@ class BashLexer(RegexLexer): } def analyse_text(text): - return shebang_matches(text, r'(ba|z|)sh') + if shebang_matches(text, r'(ba|z|)sh'): + return 1 + if text.startswith('$ '): + return 0.2 class BashSessionLexer(Lexer): From 401b63d539ae31a48aefcda59b67eb26d6459187 Mon Sep 17 00:00:00 2001 From: S?bastien Bigaret Date: Thu, 23 May 2013 13:25:03 +0200 Subject: [PATCH 166/709] Added a lexer for QVT Operational --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 1c4a9992b97..c99d2ca2a0e 100644 --- a/AUTHORS +++ b/AUTHORS @@ -21,6 +21,7 @@ Other contributors, listed alphabetically, are: * Michael Bayer -- Myghty lexers * John Benediktsson -- Factor lexer * Christopher Bertels -- Fancy lexer +* Sébastien Bigaret -- QVT Operational lexer * Jarrett Billingsley -- MiniD lexer * Adam Blinkinsop -- Haskell, Redcode lexers * Frits van Bommel -- assembler lexers From b94acb1004054e410a75dfe9ac4468d60284e3be Mon Sep 17 00:00:00 2001 From: David Wolever Date: Thu, 30 May 2013 21:03:28 -0400 Subject: [PATCH 167/709] Ensure that package names are escaped in index.html --- libpip2pi/commands.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index 31d1efccb25..3e40edf81d1 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -1,5 +1,6 @@ import os import sys +import cgi import shutil import atexit import zipfile @@ -85,9 +86,10 @@ def dir2pi(argv=sys.argv): symlink_target = os.path.join(pkg_dir, pkg_new_basename) symlink_source = os.path.join("../../", pkg_basename) os.symlink(symlink_source, symlink_target) - fp = open(os.path.join(pkg_dir, 'index.html'), 'a') - fp.write("%s\n" % (pkg_new_basename, pkg_new_basename)) - fp.close() + with open(os.path.join(pkg_dir, "index.html"), "a") as fp: + pkg_new_basename_html = cgi.escape(pkg_new_basename) + fp.write("%s
\n" + %(pkg_new_basename_html, pkg_new_basename_html)) def pip2tgz(argv=sys.argv): From f224902c1b2ed5e4e539e01485bc1248ed996085 Mon Sep 17 00:00:00 2001 From: David Wolever Date: Thu, 30 May 2013 21:07:44 -0400 Subject: [PATCH 168/709] Bump version to 0.2.0 --- libpip2pi/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libpip2pi/__init__.py b/libpip2pi/__init__.py index aad219f2b09..41135690b69 100644 --- a/libpip2pi/__init__.py +++ b/libpip2pi/__init__.py @@ -1 +1 @@ -__version__ = (0, 1, 4) +__version__ = (0, 2, 0) From 8a9ea4acc202af683b5789e947f79445f9ff9797 Mon Sep 17 00:00:00 2001 From: Thomas Aglassinger Date: Sun, 2 Jun 2013 20:35:58 +0200 Subject: [PATCH 169/709] Removed mention of FOCUS as it submitted in a separate pull request. --- AUTHORS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index f4ac499bb53..045eb9a6c84 100644 --- a/AUTHORS +++ b/AUTHORS @@ -7,7 +7,7 @@ Other contributors, listed alphabetically, are: * Sam Aaron -- Ioke lexer * Ali Afshar -- image formatter -* Thomas Aglassinger -- Easytrieve, FOCUS, JCL and Rexx lexers +* Thomas Aglassinger -- Easytrieve, JCL and Rexx lexers * Kumar Appaiah -- Debian control lexer * Andreas Amann -- AppleScript lexer * Timothy Armstrong -- Dart lexer fixes From 43300269a12c73244d80d4d5f51ab8e1e7a9d6da Mon Sep 17 00:00:00 2001 From: "George V. Reilly" Date: Fri, 7 Jun 2013 21:40:47 -0700 Subject: [PATCH 170/709] dir2pi: handle eggs Use pkg_resources to parse egg names --- libpip2pi/commands.py | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index 31d1efccb25..cf2ea8eaca2 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -6,10 +6,23 @@ import tempfile import textwrap from subprocess import check_call +import pkg_resources def dedent(text): return textwrap.dedent(text.lstrip("\n")) +def egg_to_package(file): + """ Extracts the package name from an egg. + + >>> egg_to_package("PyYAML-3.10-py2.7-macosx-10.7-x86_64.egg") + ('PyYAML', '3.10-py2.7-macosx-10.7-x86_64.egg') + >>> egg_to_package("python_ldap-2.3.9-py2.7-macosx-10.3-fat.egg") + ('python-ldap', '2.3.9-py2.7-macosx-10.3-fat.egg') + """ + dist = pkg_resources.Distribution.from_location(None, file) + name = dist.project_name + return (name, file[len(name)+1:]) + def file_to_package(file, basedir=None): """ Returns the package name for a given file. @@ -18,6 +31,8 @@ def file_to_package(file, basedir=None): >>> file_to_package("foo-bar-1.2.tgz") ('foo-bar', '1.2.tgz') >>> """ + if os.path.splitext(file)[1].lower() == ".egg": + return egg_to_package(file) split = file.rsplit("-", 1) if len(split) != 2: msg = "unexpected file name: %r " %(file, ) @@ -26,12 +41,7 @@ def file_to_package(file, basedir=None): msg += "; found in directory: %r" %(basedir) msg += ")" raise ValueError(msg) - # Note: for various reasions (which I don't 100% remember right now) we - # need to replace '-' in the version string with '_'. I think this has to - # do with the way we export the list of files from the PIP manifest, then - # read them back in somewhere else. It would be cool to fix this at some - # point. - return (split[0], split[1].replace("_", "-")) + return (split[0], pkg_resources.safe_name(split[1])) def dir2pi(argv=sys.argv): if len(argv) != 2: From 301ce1e461f0fde8e0f20da31010b732f5f6dff2 Mon Sep 17 00:00:00 2001 From: David Wolever Date: Sat, 8 Jun 2013 17:35:44 -0400 Subject: [PATCH 171/709] Adding some rudementary tests. --- dir2pi | 3 ++- libpip2pi/commands.py | 33 +++++++++++++++++++++++++++------ pip2pi | 3 ++- pip2tgz | 3 ++- 4 files changed, 33 insertions(+), 9 deletions(-) diff --git a/dir2pi b/dir2pi index e35e11e400d..980e7a08aeb 100755 --- a/dir2pi +++ b/dir2pi @@ -1,3 +1,4 @@ #!/usr/bin/env python +import sys from libpip2pi.commands import dir2pi -dir2pi() +sys.exit(dir2pi()) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index 3e40edf81d1..55a934942ae 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -6,11 +6,22 @@ import zipfile import tempfile import textwrap +import functools from subprocess import check_call def dedent(text): return textwrap.dedent(text.lstrip("\n")) +def maintain_cwd(f): + @functools.wraps(f) + def maintain_cwd_helper(*args, **kwargs): + orig_dir = os.getcwd() + try: + return f(*args, **kwargs) + finally: + os.chdir(orig_dir) + return maintain_cwd_helper + def file_to_package(file, basedir=None): """ Returns the package name for a given file. @@ -62,7 +73,7 @@ def dir2pi(argv=sys.argv): packages/simple/foo/index.html packages/simple/foo/foo-1.2.tar.gz """) - sys.exit(1) + return 1 pkgdir = argv[1] if not os.path.isdir(pkgdir): raise ValueError("no such directory: %r" %(pkgdir, )) @@ -90,8 +101,9 @@ def dir2pi(argv=sys.argv): pkg_new_basename_html = cgi.escape(pkg_new_basename) fp.write("%s
\n" %(pkg_new_basename_html, pkg_new_basename_html)) + return 0 - +@maintain_cwd def pip2tgz(argv=sys.argv): if len(argv) < 3: print dedent(""" @@ -107,7 +119,7 @@ def pip2tgz(argv=sys.argv): $ pip2tgz /var/www/packages/ -r requirements.txt foo==1.2 baz/ """) - sys.exit(1) + return 1 outdir = os.path.abspath(argv[1]) if not os.path.exists(outdir): @@ -152,6 +164,7 @@ def pip2tgz(argv=sys.argv): os.chdir(outdir) shutil.rmtree(tempdir) print "%s .tar.gz saved to %r" %(num_pakages, argv[1]) + return 0 def pip2pi(argv=sys.argv): if len(argv) < 3: @@ -173,7 +186,7 @@ def pip2pi(argv=sys.argv): $ pip2pi ~/Sites/packages/ foo==1.2 """) - sys.exit(1) + return 1 target = argv[1] pip_packages = argv[2:] @@ -185,8 +198,15 @@ def pip2pi(argv=sys.argv): is_remote = False working_dir = os.path.abspath(target) - pip2tgz([argv[0], working_dir] + pip_packages) - dir2pi([argv[0], working_dir]) + res = pip2tgz([argv[0], working_dir] + pip_packages) + if res: + print "pip2tgz returned an error; aborting." + return res + + res = dir2pi([argv[0], working_dir]) + if res: + print "dir2pi returned an error; aborting." + return res if is_remote: print "copying temporary index at %r to %r..." %(working_dir, target) @@ -195,3 +215,4 @@ def pip2pi(argv=sys.argv): "--recursive", "--progress", "--links", working_dir + "/", target + "/", ]) + return 0 diff --git a/pip2pi b/pip2pi index 551b1627839..1c1755c434e 100755 --- a/pip2pi +++ b/pip2pi @@ -1,3 +1,4 @@ #!/usr/bin/env python +import sys from libpip2pi.commands import pip2pi -pip2pi() +sys.exit(pip2pi()) diff --git a/pip2tgz b/pip2tgz index 2ad8575f622..26e0a2c1806 100755 --- a/pip2tgz +++ b/pip2tgz @@ -1,3 +1,4 @@ #!/usr/bin/env python +import sys from libpip2pi.commands import pip2tgz -pip2tgz() +sys.exit(pip2tgz()) From 3b76cb981892373735b524991f07eb98da54e594 Mon Sep 17 00:00:00 2001 From: David Wolever Date: Sat, 8 Jun 2013 18:17:48 -0400 Subject: [PATCH 172/709] Bump version --- libpip2pi/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libpip2pi/__init__.py b/libpip2pi/__init__.py index 41135690b69..205b131ff49 100644 --- a/libpip2pi/__init__.py +++ b/libpip2pi/__init__.py @@ -1 +1 @@ -__version__ = (0, 2, 0) +__version__ = (0, 2, 1) From fd4362f882c2a3b3fea763dce2e77bee25dba2ec Mon Sep 17 00:00:00 2001 From: Linh Vu Hong Date: Sun, 23 Jun 2013 16:33:40 +0200 Subject: [PATCH 173/709] Add RSL lexer --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 1c4a9992b97..0ec46de10d0 100644 --- a/AUTHORS +++ b/AUTHORS @@ -142,6 +142,7 @@ Other contributors, listed alphabetically, are: * Pepijn de Vos -- HTML formatter CTags support * Whitney Young -- ObjectiveC lexer * Matthias Vallentin -- Bro lexer +* Linh Vu Hong -- RSL lexer * Nathan Weizenbaum -- Haml and Sass lexers * Dietmar Winkler -- Modelica lexer * Nils Winter -- Smalltalk lexer From 620e2278b00fd40fbd09dabb3fb552dca1ed29ea Mon Sep 17 00:00:00 2001 From: Elias Rabel Date: Sun, 23 Jun 2013 17:22:02 +0200 Subject: [PATCH 174/709] Added Fortran fixed format lexer. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 1c4a9992b97..a6d9e986eb8 100644 --- a/AUTHORS +++ b/AUTHORS @@ -112,6 +112,7 @@ Other contributors, listed alphabetically, are: * Benjamin Peterson -- Test suite refactoring * Dominik Picheta -- Nimrod lexer * Clément Prévost -- UrbiScript lexer +* Elias Rabel -- Fortran fixed form lexer * Kashif Rasul -- CUDA lexer * Justin Reidy -- MXML lexer * Norman Richards -- JSON lexer From f17c21ed3ff1801822fd85ac19683b6724bab18d Mon Sep 17 00:00:00 2001 From: Jero Sutlovic Date: Wed, 14 Aug 2013 12:53:04 -0400 Subject: [PATCH 175/709] Create an index file for the simple package list (for servers that don't/can't do indexing) --- libpip2pi/commands.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index db1ce3837ee..5d5b91bdb80 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -91,6 +91,8 @@ def dir2pi(argv=sys.argv): shutil.rmtree(pkgdirpath("simple"), ignore_errors=True) os.mkdir(pkgdirpath("simple")) + pkg_index = ("Simple Index" + "\n") for file in os.listdir(pkgdir): pkg_filepath = os.path.join(pkgdir, file) @@ -107,10 +109,14 @@ def dir2pi(argv=sys.argv): symlink_target = os.path.join(pkg_dir, pkg_new_basename) symlink_source = os.path.join("../../", pkg_basename) os.symlink(symlink_source, symlink_target) + pkg_index += "{0}
\n".format(pkg_name) with open(os.path.join(pkg_dir, "index.html"), "a") as fp: pkg_new_basename_html = cgi.escape(pkg_new_basename) fp.write("%s
\n" %(pkg_new_basename_html, pkg_new_basename_html)) + pkg_index += "" + with open(pkgdirpath("simple/index.html"), "w") as fp: + fp.write(pkg_index) return 0 @maintain_cwd From 71925eb21a21cff3c9c08cbf9439e500f0019db6 Mon Sep 17 00:00:00 2001 From: Jero Sutlovic Date: Thu, 22 Aug 2013 15:01:56 -0400 Subject: [PATCH 176/709] Add newline to package index file --- libpip2pi/commands.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index 5d5b91bdb80..326c2874f1a 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -114,7 +114,7 @@ def dir2pi(argv=sys.argv): pkg_new_basename_html = cgi.escape(pkg_new_basename) fp.write("%s
\n" %(pkg_new_basename_html, pkg_new_basename_html)) - pkg_index += "" + pkg_index += "\n" with open(pkgdirpath("simple/index.html"), "w") as fp: fp.write(pkg_index) return 0 From 48ef3979f6ad11ccc6e1cd3a700552316d756f1b Mon Sep 17 00:00:00 2001 From: Jero Sutlovic Date: Tue, 27 Aug 2013 17:53:00 -0400 Subject: [PATCH 177/709] Escape package names --- libpip2pi/commands.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index 326c2874f1a..5cc57afcd27 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -109,7 +109,8 @@ def dir2pi(argv=sys.argv): symlink_target = os.path.join(pkg_dir, pkg_new_basename) symlink_source = os.path.join("../../", pkg_basename) os.symlink(symlink_source, symlink_target) - pkg_index += "{0}
\n".format(pkg_name) + pkg_name_html = cgi.escape(pkg_name) + pkg_index += "{0}
\n".format(pkg_name_html) with open(os.path.join(pkg_dir, "index.html"), "a") as fp: pkg_new_basename_html = cgi.escape(pkg_new_basename) fp.write("%s
\n" From c25483997786a75869d87bd7d3aa4b5d4ff40b3e Mon Sep 17 00:00:00 2001 From: "Dani?l W. Crompton" Date: Fri, 6 Sep 2013 01:05:37 +0200 Subject: [PATCH 178/709] Added AUTHORS entry --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 1c4a9992b97..1971535c3a5 100644 --- a/AUTHORS +++ b/AUTHORS @@ -149,5 +149,6 @@ Other contributors, listed alphabetically, are: * Diego Zamboni -- CFengine3 lexer * Enrique Zamudio -- Ceylon lexer * Alex Zimin -- Nemerle lexer +* Daniël W. Crompton - Pike lexer Many thanks for all contributions! From 4ada3b181d2152176c9887253013aea6253d72d3 Mon Sep 17 00:00:00 2001 From: Bob Tolbert Date: Sun, 8 Sep 2013 15:58:19 -0600 Subject: [PATCH 179/709] Added lexer for new Hy language, a variant of Lisp running on Python. See: http://hylang.org Note that this shares a file extension with the Hybris language but the analyse_text() function does a good job of making the distinction. This did however require one change to the tests to actually pass the code of the test file to get_lexer_for_filename() so that the tests would differentiate Hy from Hybris. And while this is a Lisp and shares some syntax with Clojure, it has been added to the agile.py file to share the lists of keywords and builtins with the PythonLexer. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 1c4a9992b97..2f0cdff9c9c 100644 --- a/AUTHORS +++ b/AUTHORS @@ -136,6 +136,7 @@ Other contributors, listed alphabetically, are: * Tiberius Teng -- default style overhaul * Jeremy Thurgood -- Erlang, Squid config lexers * Brian Tiffin -- OpenCOBOL lexer +# Bob Tolbert -- Hy lexer * Erick Tryzelaar -- Felix lexer * Daniele Varrazzo -- PostgreSQL lexers * Abe Voelker -- OpenEdge ABL lexer From 291995531ffd58d027ecfa8e7c366b063f052321 Mon Sep 17 00:00:00 2001 From: user Date: Wed, 18 Sep 2013 01:37:52 -0700 Subject: [PATCH 180/709] Avoid highlighting intraword tokens. --- pygments/lexers/shell.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 5ec9deaa6df..01563ab7736 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -228,9 +228,9 @@ class BatchLexer(RegexLexer): # like %~$VAR:zlt (r'%%?[~$:\w]+%?', Name.Variable), (r'::.*', Comment), # Technically :: only works at BOL - (r'(set)(\s+)(\w+)', bygroups(Keyword, Text, Name.Variable)), - (r'(call)(\s+)(:\w+)', bygroups(Keyword, Text, Name.Label)), - (r'(goto)(\s+)(\w+)', bygroups(Keyword, Text, Name.Label)), + (r'\b(set)(\s+)(\w+)', bygroups(Keyword, Text, Name.Variable)), + (r'\b(call)(\s+)(:\w+)', bygroups(Keyword, Text, Name.Label)), + (r'\b(goto)(\s+)(\w+)', bygroups(Keyword, Text, Name.Label)), (r'\b(set|call|echo|on|off|endlocal|for|do|goto|if|pause|' r'setlocal|shift|errorlevel|exist|defined|cmdextversion|' r'errorlevel|else|cd|md|del|deltree|cls|choice)\b', Keyword), From 7e7634c6676229632cb9d4c9c375d700611096d6 Mon Sep 17 00:00:00 2001 From: "George V. Reilly" Date: Fri, 8 Nov 2013 16:55:15 -0800 Subject: [PATCH 181/709] Use console_scripts in setup. Scripts now work in Windows. --- dir2pi | 4 ---- pip2pi | 4 ---- pip2tgz | 4 ---- setup.py | 8 +++++++- 4 files changed, 7 insertions(+), 13 deletions(-) delete mode 100755 dir2pi delete mode 100755 pip2pi delete mode 100755 pip2tgz diff --git a/dir2pi b/dir2pi deleted file mode 100755 index 980e7a08aeb..00000000000 --- a/dir2pi +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env python -import sys -from libpip2pi.commands import dir2pi -sys.exit(dir2pi()) diff --git a/pip2pi b/pip2pi deleted file mode 100755 index 1c1755c434e..00000000000 --- a/pip2pi +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env python -import sys -from libpip2pi.commands import pip2pi -sys.exit(pip2pi()) diff --git a/pip2tgz b/pip2tgz deleted file mode 100755 index 26e0a2c1806..00000000000 --- a/pip2tgz +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env python -import sys -from libpip2pi.commands import pip2tgz -sys.exit(pip2tgz()) diff --git a/setup.py b/setup.py index bb3a1efe792..a61ff896d1a 100644 --- a/setup.py +++ b/setup.py @@ -27,7 +27,13 @@ """, long_description=long_description, packages=find_packages(), - scripts=["pip2pi", "pip2tgz", "dir2pi"], + entry_points={ + 'console_scripts': [ + 'dir2pi = libpip2pi.commands:dir2pi', + 'pip2pi = libpip2pi.commands:pip2pi', + 'pip2tgz = libpip2pi.commands:pip2tgz', + ], + }, license="BSD", classifiers=[ x.strip() for x in """ Development Status :: 4 - Beta From d13fe64c655c3384b8c2c45de7b2daec81e13c84 Mon Sep 17 00:00:00 2001 From: "George V. Reilly" Date: Fri, 8 Nov 2013 17:07:44 -0800 Subject: [PATCH 182/709] Fix dir2pi on Windows Fall back to copying files when OS doesn't support symlinking. --- libpip2pi/commands.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index 5cc57afcd27..7b294efc561 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -62,11 +62,11 @@ def dir2pi(argv=sys.argv): Creates the directory PACKAGE_DIR/simple/ and populates it with the directory structure required to use with pip's --index-url. - + Assumes that PACKAGE_DIR contains a bunch of archives named 'package-name-version.ext' (ex 'foo-2.1.tar.gz' or 'foo-bar-1.3rc1.bz2'). - + This makes the most sense if PACKAGE_DIR is somewhere inside a webserver's inside htdocs directory. @@ -108,7 +108,10 @@ def dir2pi(argv=sys.argv): pkg_new_basename = "-".join([pkg_name, pkg_rest]) symlink_target = os.path.join(pkg_dir, pkg_new_basename) symlink_source = os.path.join("../../", pkg_basename) - os.symlink(symlink_source, symlink_target) + if hasattr(os, "symlink"): + os.symlink(symlink_source, symlink_target) + else: + shutil.copy2(pkg_filepath, symlink_target) pkg_name_html = cgi.escape(pkg_name) pkg_index += "{0}
\n".format(pkg_name_html) with open(os.path.join(pkg_dir, "index.html"), "a") as fp: @@ -128,12 +131,12 @@ def pip2tgz(argv=sys.argv): Where PACKAGE_NAMES are any names accepted by pip (ex, `foo`, `foo==1.2`, `-r requirements.txt`). - + pip2tgz will download all packages required to install PACKAGE_NAMES and save them to sanely-named tarballs in OUTPUT_DIRECTORY. For example: - + $ pip2tgz /var/www/packages/ -r requirements.txt foo==1.2 baz/ """) return 1 @@ -194,7 +197,7 @@ def pip2pi(argv=sys.argv): If TARGET contains ':' it will be treated as a remote path. The package index will be built locally then rsync will be used to copy it to the remote host. - + For example, to create a remote index: $ pip2pi example.com:/var/www/packages/ -r requirements.txt @@ -209,7 +212,7 @@ def pip2pi(argv=sys.argv): pip_packages = argv[2:] if ":" in target: is_remote = True - working_dir = tempfile.mkdtemp(prefix="pip2pi-working-dir") + working_dir = tempfile.mkdtemp(prefix="pip2pi-working-dir") atexit.register(lambda: shutil.rmtree(working_dir)) else: is_remote = False From 3bbe7a750a8204d31690f059ac443fa28a821343 Mon Sep 17 00:00:00 2001 From: David Wolever Date: Sun, 10 Nov 2013 18:21:43 -0500 Subject: [PATCH 183/709] Bump to 0.3.0 --- libpip2pi/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libpip2pi/__init__.py b/libpip2pi/__init__.py index 205b131ff49..286c2e5a8cf 100644 --- a/libpip2pi/__init__.py +++ b/libpip2pi/__init__.py @@ -1 +1 @@ -__version__ = (0, 2, 1) +__version__ = (0, 3, 0) From 45bdb1843e284222c8dbe364dea735dbfa970020 Mon Sep 17 00:00:00 2001 From: mark Date: Fri, 22 Nov 2013 10:29:59 -0500 Subject: [PATCH 184/709] fixes for python 3 --- libpip2pi/commands.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index 7b294efc561..39ea10a9590 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -57,7 +57,7 @@ def file_to_package(file, basedir=None): def dir2pi(argv=sys.argv): if len(argv) != 2: - print dedent(""" + print( dedent(""" usage: dir2pi PACKAGE_DIR Creates the directory PACKAGE_DIR/simple/ and populates it with the @@ -82,7 +82,7 @@ def dir2pi(argv=sys.argv): packages/simple/foo/ packages/simple/foo/index.html packages/simple/foo/foo-1.2.tar.gz - """) + """) ) return 1 pkgdir = argv[1] if not os.path.isdir(pkgdir): @@ -126,7 +126,7 @@ def dir2pi(argv=sys.argv): @maintain_cwd def pip2tgz(argv=sys.argv): if len(argv) < 3: - print dedent(""" + print( dedent(""" usage: pip2tgz OUTPUT_DIRECTORY PACKAGE_NAME ... Where PACKAGE_NAMES are any names accepted by pip (ex, `foo`, @@ -138,7 +138,7 @@ def pip2tgz(argv=sys.argv): For example: $ pip2tgz /var/www/packages/ -r requirements.txt foo==1.2 baz/ - """) + """) ) return 1 outdir = os.path.abspath(argv[1]) @@ -183,12 +183,12 @@ def pip2tgz(argv=sys.argv): os.chdir(outdir) shutil.rmtree(tempdir) - print "%s .tar.gz saved to %r" %(num_pakages, argv[1]) + print( "%s .tar.gz saved to %r" %(num_pakages, argv[1]) ) return 0 def pip2pi(argv=sys.argv): if len(argv) < 3: - print dedent(""" + print( dedent(""" usage: pip2pi TARGET PACKAGE_NAME ... Combines pip2tgz and dir2pi, adding PACKAGE_NAME to package index @@ -205,7 +205,7 @@ def pip2pi(argv=sys.argv): Or to create a local index: $ pip2pi ~/Sites/packages/ foo==1.2 - """) + """) ) return 1 target = argv[1] @@ -220,16 +220,16 @@ def pip2pi(argv=sys.argv): res = pip2tgz([argv[0], working_dir] + pip_packages) if res: - print "pip2tgz returned an error; aborting." + print( "pip2tgz returned an error; aborting." ) return res res = dir2pi([argv[0], working_dir]) if res: - print "dir2pi returned an error; aborting." + print( "dir2pi returned an error; aborting." ) return res if is_remote: - print "copying temporary index at %r to %r..." %(working_dir, target) + print( "copying temporary index at %r to %r..." %(working_dir, target) ) check_call([ "rsync", "--recursive", "--progress", "--links", From e782da947bfd35250906a0125d0a208531b611d7 Mon Sep 17 00:00:00 2001 From: David Wolever Date: Sat, 23 Nov 2013 16:10:43 -0500 Subject: [PATCH 185/709] Fix spacing around print --- libpip2pi/commands.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index 39ea10a9590..83bc624ea59 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -57,7 +57,7 @@ def file_to_package(file, basedir=None): def dir2pi(argv=sys.argv): if len(argv) != 2: - print( dedent(""" + print(dedent(""" usage: dir2pi PACKAGE_DIR Creates the directory PACKAGE_DIR/simple/ and populates it with the @@ -82,7 +82,7 @@ def dir2pi(argv=sys.argv): packages/simple/foo/ packages/simple/foo/index.html packages/simple/foo/foo-1.2.tar.gz - """) ) + """)) return 1 pkgdir = argv[1] if not os.path.isdir(pkgdir): @@ -126,7 +126,7 @@ def dir2pi(argv=sys.argv): @maintain_cwd def pip2tgz(argv=sys.argv): if len(argv) < 3: - print( dedent(""" + print(dedent(""" usage: pip2tgz OUTPUT_DIRECTORY PACKAGE_NAME ... Where PACKAGE_NAMES are any names accepted by pip (ex, `foo`, @@ -138,7 +138,7 @@ def pip2tgz(argv=sys.argv): For example: $ pip2tgz /var/www/packages/ -r requirements.txt foo==1.2 baz/ - """) ) + """)) return 1 outdir = os.path.abspath(argv[1]) @@ -183,12 +183,12 @@ def pip2tgz(argv=sys.argv): os.chdir(outdir) shutil.rmtree(tempdir) - print( "%s .tar.gz saved to %r" %(num_pakages, argv[1]) ) + print("%s .tar.gz saved to %r" %(num_pakages, argv[1])) return 0 def pip2pi(argv=sys.argv): if len(argv) < 3: - print( dedent(""" + print(dedent(""" usage: pip2pi TARGET PACKAGE_NAME ... Combines pip2tgz and dir2pi, adding PACKAGE_NAME to package index @@ -205,7 +205,7 @@ def pip2pi(argv=sys.argv): Or to create a local index: $ pip2pi ~/Sites/packages/ foo==1.2 - """) ) + """)) return 1 target = argv[1] @@ -220,16 +220,16 @@ def pip2pi(argv=sys.argv): res = pip2tgz([argv[0], working_dir] + pip_packages) if res: - print( "pip2tgz returned an error; aborting." ) + print("pip2tgz returned an error; aborting.") return res res = dir2pi([argv[0], working_dir]) if res: - print( "dir2pi returned an error; aborting." ) + print("dir2pi returned an error; aborting.") return res if is_remote: - print( "copying temporary index at %r to %r..." %(working_dir, target) ) + print("copying temporary index at %r to %r..." %(working_dir, target)) check_call([ "rsync", "--recursive", "--progress", "--links", From dbe5033b5b37a4c5a1437652b7f3bd038a4fe17c Mon Sep 17 00:00:00 2001 From: David Wolever Date: Sat, 23 Nov 2013 16:20:59 -0500 Subject: [PATCH 186/709] Bump version number --- libpip2pi/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libpip2pi/__init__.py b/libpip2pi/__init__.py index 286c2e5a8cf..cea3b2e5536 100644 --- a/libpip2pi/__init__.py +++ b/libpip2pi/__init__.py @@ -1 +1 @@ -__version__ = (0, 3, 0) +__version__ = (0, 4, 0) From ed7d6ac540df1e7c5c934d3683c6f1d9df2cfbb1 Mon Sep 17 00:00:00 2001 From: Akinori Hattori Date: Sun, 24 Nov 2013 15:55:23 +0900 Subject: [PATCH 187/709] Improve BashLexer --- pygments/lexers/shell.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 01563ab7736..8a50d970af6 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -47,8 +47,8 @@ class BashLexer(RegexLexer): ], 'basic': [ (r'\b(if|fi|else|while|do|done|for|then|return|function|case|' - r'select|continue|until|esac|elif)\s*\b', - Keyword), + r'select|continue|until|esac|elif)(\s*)\b', + bygroups(Keyword, Text)), (r'\b(alias|bg|bind|break|builtin|caller|cd|command|compgen|' r'complete|declare|dirs|disown|echo|enable|eval|exec|exit|' r'export|false|fc|fg|getopts|hash|help|history|jobs|kill|let|' From 79f7a96989c2e80c8bf667a753fa6dbfa42fbc0e Mon Sep 17 00:00:00 2001 From: Dave Martorana Date: Mon, 25 Nov 2013 16:02:24 -0500 Subject: [PATCH 188/709] First run at playing with install instead of bundle --- libpip2pi/commands.py | 76 +++++++++++++++++++++++++++---------------- 1 file changed, 48 insertions(+), 28 deletions(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index 83bc624ea59..7c673ffec0d 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -150,39 +150,59 @@ def pip2tgz(argv=sys.argv): shutil.rmtree(tempdir) os.mkdir(tempdir) - bundle_zip = os.path.join(tempdir, "bundle.zip") + # bundle_zip = os.path.join(tempdir, "bundle.zip") + # build_dir = os.path.join(tempdir, "build") + # check_call(["pip", "bundle", "-b", build_dir, bundle_zip] + argv[2:]) build_dir = os.path.join(tempdir, "build") - check_call(["pip", "bundle", "-b", build_dir, bundle_zip] + argv[2:]) - - os.chdir(tempdir) - if os.path.exists(build_dir): - zipfile.ZipFile("bundle.zip").extract("pip-manifest.txt") - else: - # Older versions of pip delete the "build" directory after they - # are done with it... So extract the entire bundle.zip - zipfile.ZipFile("bundle.zip").extractall() + check_call(["pip", "install", "-d", build_dir] + argv[2:]) + os.chdir(outdir) + # if os.path.exists(build_dir): + # zipfile.ZipFile("bundle.zip").extract("pip-manifest.txt") + # else: + # # Older versions of pip delete the "build" directory after they + # # are done with it... So extract the entire bundle.zip + # zipfile.ZipFile("bundle.zip").extractall() + + # Create our pip-manifest.txt + if os.path.exists('pip-manifest.txt'): + shutil.rmtree('pip-manifest.txt') + + f = open('pip-manifest', 'w') + f.writelines('# Created by pip2pi') + import glob num_pakages = 0 - for line in open("pip-manifest.txt"): - line = line.strip() - if not line or line.startswith("#"): - continue - pkg_version = line.split("==") - if len(pkg_version) != 2: - bundle_file = os.path.abspath("pip-manifest.txt") - raise ValueError("surprising line in %r: %r" - %(bundle_file, line, )) - pkg, version = pkg_version - version = version.replace("-", "_") - old_input_dir = os.path.join("build/", pkg) - new_input_dir = "%s-%s" %(pkg, version) - os.rename(old_input_dir, new_input_dir) - output_name = os.path.join("..", new_input_dir + ".tar.gz") - check_call(["tar", "-czf", output_name, new_input_dir]) + for file_name in glob.glob('./*.tar.gz'): + file_name = file_name.replace('.tar.gz', '') + file_name_parts = file_name.split('-') + file_name = '-'.join(file_name_parts[:-1]) + version = file_name_parts[-1] num_pakages += 1 - os.chdir(outdir) - shutil.rmtree(tempdir) + f.writelines('%s==%s' % (file_name, version)) + + f.close() + + # for line in open("pip-manifest.txt"): + # line = line.strip() + # if not line or line.startswith("#"): + # continue + # pkg_version = line.split("==") + # if len(pkg_version) != 2: + # bundle_file = os.path.abspath("pip-manifest.txt") + # raise ValueError("surprising line in %r: %r" + # %(bundle_file, line, )) + # pkg, version = pkg_version + # version = version.replace("-", "_") + # old_input_dir = os.path.join("build/", pkg) + # new_input_dir = "%s-%s" %(pkg, version) + # os.rename(old_input_dir, new_input_dir) + # output_name = os.path.join("..", new_input_dir + ".tar.gz") + # check_call(["tar", "-czf", output_name, new_input_dir]) + # num_pakages += 1 + + #os.chdir(outdir) + #shutil.rmtree(tempdir) print("%s .tar.gz saved to %r" %(num_pakages, argv[1])) return 0 From d425d6c05cc8a804fb2d9075ea49f14abf67a2e9 Mon Sep 17 00:00:00 2001 From: Dave Martorana Date: Mon, 25 Nov 2013 16:13:18 -0500 Subject: [PATCH 189/709] Push all packages to outdir --- libpip2pi/commands.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index 7c673ffec0d..9841c28d4c9 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -153,10 +153,12 @@ def pip2tgz(argv=sys.argv): # bundle_zip = os.path.join(tempdir, "bundle.zip") # build_dir = os.path.join(tempdir, "build") # check_call(["pip", "bundle", "-b", build_dir, bundle_zip] + argv[2:]) - build_dir = os.path.join(tempdir, "build") + #build_dir = os.path.join(tempdir, "build") + + os.chdir(outdir) check_call(["pip", "install", "-d", build_dir] + argv[2:]) - os.chdir(outdir) + # if os.path.exists(build_dir): # zipfile.ZipFile("bundle.zip").extract("pip-manifest.txt") # else: From f1408f73b9d70fac963a4278e01a7e11dd29bd6d Mon Sep 17 00:00:00 2001 From: Dave Martorana Date: Mon, 25 Nov 2013 16:15:07 -0500 Subject: [PATCH 190/709] Install to . --- libpip2pi/commands.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index 9841c28d4c9..d0b4b6c5228 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -156,7 +156,7 @@ def pip2tgz(argv=sys.argv): #build_dir = os.path.join(tempdir, "build") os.chdir(outdir) - check_call(["pip", "install", "-d", build_dir] + argv[2:]) + check_call(["pip", "install", "-d", '.'] + argv[2:]) # if os.path.exists(build_dir): From d99fb49f8dfa741550aba702d4594948b1d27905 Mon Sep 17 00:00:00 2001 From: Dave Martorana Date: Mon, 25 Nov 2013 16:16:56 -0500 Subject: [PATCH 191/709] Do not change directories before install --- libpip2pi/commands.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index d0b4b6c5228..c46aaf6bdfb 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -155,9 +155,8 @@ def pip2tgz(argv=sys.argv): # check_call(["pip", "bundle", "-b", build_dir, bundle_zip] + argv[2:]) #build_dir = os.path.join(tempdir, "build") + check_call(["pip", "install", "-d", outdir] + argv[2:]) os.chdir(outdir) - check_call(["pip", "install", "-d", '.'] + argv[2:]) - # if os.path.exists(build_dir): # zipfile.ZipFile("bundle.zip").extract("pip-manifest.txt") From 4572af262cf6781df0054d3df72852e1debf471a Mon Sep 17 00:00:00 2001 From: Dave Martorana Date: Mon, 25 Nov 2013 16:23:23 -0500 Subject: [PATCH 192/709] Fix pip-manifest.txt filename, writelines --- libpip2pi/commands.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index c46aaf6bdfb..f3e909abe50 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -169,7 +169,7 @@ def pip2tgz(argv=sys.argv): if os.path.exists('pip-manifest.txt'): shutil.rmtree('pip-manifest.txt') - f = open('pip-manifest', 'w') + f = open('pip-manifest.txt', 'w') f.writelines('# Created by pip2pi') import glob num_pakages = 0 @@ -180,7 +180,7 @@ def pip2tgz(argv=sys.argv): version = file_name_parts[-1] num_pakages += 1 - f.writelines('%s==%s' % (file_name, version)) + f.writelines(['%s==%s' % (file_name, version)]) f.close() From b5797c5f9a8422da1e60244fe7e3ac0e7b390ec7 Mon Sep 17 00:00:00 2001 From: Dave Martorana Date: Mon, 25 Nov 2013 16:23:45 -0500 Subject: [PATCH 193/709] Do not make the temp dir --- libpip2pi/commands.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index f3e909abe50..eb9b543a693 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -145,10 +145,10 @@ def pip2tgz(argv=sys.argv): if not os.path.exists(outdir): os.mkdir(outdir) - tempdir = os.path.join(outdir, "_pip2tgz_temp") - if os.path.exists(tempdir): - shutil.rmtree(tempdir) - os.mkdir(tempdir) + # tempdir = os.path.join(outdir, "_pip2tgz_temp") + # if os.path.exists(tempdir): + # shutil.rmtree(tempdir) + # os.mkdir(tempdir) # bundle_zip = os.path.join(tempdir, "bundle.zip") # build_dir = os.path.join(tempdir, "build") From a3b06724d6ec2f8a0bc023380e4a86119d3a130e Mon Sep 17 00:00:00 2001 From: Dave Martorana Date: Mon, 25 Nov 2013 18:14:10 -0500 Subject: [PATCH 194/709] writelines is being wierd, so try write --- libpip2pi/commands.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index eb9b543a693..ae942564f49 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -180,7 +180,7 @@ def pip2tgz(argv=sys.argv): version = file_name_parts[-1] num_pakages += 1 - f.writelines(['%s==%s' % (file_name, version)]) + f.write('%s==%s\n' % (file_name, version)) f.close() From e11ffdd8969d6ff0e53d64b5821d5eb7115ee042 Mon Sep 17 00:00:00 2001 From: Dave Martorana Date: Mon, 25 Nov 2013 18:17:26 -0500 Subject: [PATCH 195/709] Glob.glob is giving us local path in the current dir. Get rid of it, take the last path part --- libpip2pi/commands.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index ae942564f49..cfc4d8ab25e 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -174,7 +174,7 @@ def pip2tgz(argv=sys.argv): import glob num_pakages = 0 for file_name in glob.glob('./*.tar.gz'): - file_name = file_name.replace('.tar.gz', '') + file_name = file_name.split('/')[:-1].replace('.tar.gz', '') file_name_parts = file_name.split('-') file_name = '-'.join(file_name_parts[:-1]) version = file_name_parts[-1] From c0270b3cf663d9145a934027ea5e56bf353d1fae Mon Sep 17 00:00:00 2001 From: Dave Martorana Date: Mon, 25 Nov 2013 18:25:53 -0500 Subject: [PATCH 196/709] Fix bug in indexing --- libpip2pi/commands.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index cfc4d8ab25e..f67a14342ba 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -174,7 +174,7 @@ def pip2tgz(argv=sys.argv): import glob num_pakages = 0 for file_name in glob.glob('./*.tar.gz'): - file_name = file_name.split('/')[:-1].replace('.tar.gz', '') + file_name = file_name.split('/')[-1].replace('.tar.gz', '') file_name_parts = file_name.split('-') file_name = '-'.join(file_name_parts[:-1]) version = file_name_parts[-1] From 14c725ea91fd500a797f2cb4eed55999bc0c50d2 Mon Sep 17 00:00:00 2001 From: Dave Martorana Date: Mon, 25 Nov 2013 18:31:59 -0500 Subject: [PATCH 197/709] Clean up old code - makes the function much shorter --- libpip2pi/commands.py | 44 ++++--------------------------------------- 1 file changed, 4 insertions(+), 40 deletions(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index f67a14342ba..4160085526a 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -9,6 +9,7 @@ import functools from subprocess import check_call import pkg_resources +import glob def dedent(text): return textwrap.dedent(text.lstrip("\n")) @@ -144,34 +145,17 @@ def pip2tgz(argv=sys.argv): outdir = os.path.abspath(argv[1]) if not os.path.exists(outdir): os.mkdir(outdir) - - # tempdir = os.path.join(outdir, "_pip2tgz_temp") - # if os.path.exists(tempdir): - # shutil.rmtree(tempdir) - # os.mkdir(tempdir) - - # bundle_zip = os.path.join(tempdir, "bundle.zip") - # build_dir = os.path.join(tempdir, "build") - # check_call(["pip", "bundle", "-b", build_dir, bundle_zip] + argv[2:]) - #build_dir = os.path.join(tempdir, "build") check_call(["pip", "install", "-d", outdir] + argv[2:]) os.chdir(outdir) - # if os.path.exists(build_dir): - # zipfile.ZipFile("bundle.zip").extract("pip-manifest.txt") - # else: - # # Older versions of pip delete the "build" directory after they - # # are done with it... So extract the entire bundle.zip - # zipfile.ZipFile("bundle.zip").extractall() - # Create our pip-manifest.txt if os.path.exists('pip-manifest.txt'): - shutil.rmtree('pip-manifest.txt') + os.remove('pip-manifest.txt') f = open('pip-manifest.txt', 'w') - f.writelines('# Created by pip2pi') - import glob + f.write('# Created by pip2pi\n') + num_pakages = 0 for file_name in glob.glob('./*.tar.gz'): file_name = file_name.split('/')[-1].replace('.tar.gz', '') @@ -184,26 +168,6 @@ def pip2tgz(argv=sys.argv): f.close() - # for line in open("pip-manifest.txt"): - # line = line.strip() - # if not line or line.startswith("#"): - # continue - # pkg_version = line.split("==") - # if len(pkg_version) != 2: - # bundle_file = os.path.abspath("pip-manifest.txt") - # raise ValueError("surprising line in %r: %r" - # %(bundle_file, line, )) - # pkg, version = pkg_version - # version = version.replace("-", "_") - # old_input_dir = os.path.join("build/", pkg) - # new_input_dir = "%s-%s" %(pkg, version) - # os.rename(old_input_dir, new_input_dir) - # output_name = os.path.join("..", new_input_dir + ".tar.gz") - # check_call(["tar", "-czf", output_name, new_input_dir]) - # num_pakages += 1 - - #os.chdir(outdir) - #shutil.rmtree(tempdir) print("%s .tar.gz saved to %r" %(num_pakages, argv[1])) return 0 From d647d3267b847e625603d25def48f997d1e24ab0 Mon Sep 17 00:00:00 2001 From: Dave Martorana Date: Mon, 25 Nov 2013 18:36:04 -0500 Subject: [PATCH 198/709] Testing removing way more things --- libpip2pi/commands.py | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index 4160085526a..494679ecd30 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -148,25 +148,7 @@ def pip2tgz(argv=sys.argv): check_call(["pip", "install", "-d", outdir] + argv[2:]) os.chdir(outdir) - - # Create our pip-manifest.txt - if os.path.exists('pip-manifest.txt'): - os.remove('pip-manifest.txt') - - f = open('pip-manifest.txt', 'w') - f.write('# Created by pip2pi\n') - - num_pakages = 0 - for file_name in glob.glob('./*.tar.gz'): - file_name = file_name.split('/')[-1].replace('.tar.gz', '') - file_name_parts = file_name.split('-') - file_name = '-'.join(file_name_parts[:-1]) - version = file_name_parts[-1] - num_pakages += 1 - - f.write('%s==%s\n' % (file_name, version)) - - f.close() + num_pakages = len(glob.glob('./*.tar.gz')) print("%s .tar.gz saved to %r" %(num_pakages, argv[1])) return 0 From 91041f80ff8a9c159e2014af26c35aec9d0b042a Mon Sep 17 00:00:00 2001 From: Dave Martorana Date: Tue, 26 Nov 2013 18:02:31 -0500 Subject: [PATCH 199/709] Check to be sure pip is greater than 1.1 for using `install -d` --- libpip2pi/commands.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index 494679ecd30..3c48c54635b 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -146,6 +146,11 @@ def pip2tgz(argv=sys.argv): if not os.path.exists(outdir): os.mkdir(outdir) + import pip + version = pip.__version__ + if version < '1.1': + raise RuntimeError('pip version %s is less than the required version 1.1' % version) + check_call(["pip", "install", "-d", outdir] + argv[2:]) os.chdir(outdir) num_pakages = len(glob.glob('./*.tar.gz')) From 19bcce880d649f689f4a91dc52a47992e60afd5c Mon Sep 17 00:00:00 2001 From: Dave Martorana Date: Wed, 27 Nov 2013 16:32:42 -0500 Subject: [PATCH 200/709] Attempts to use the contetxually local pip, checks for version >= 1.1. Falls back to old method. --- libpip2pi/commands.py | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index 3c48c54635b..bb1a8034930 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -56,6 +56,28 @@ def file_to_package(file, basedir=None): raise ValueError(msg) return (split[0], pkg_resources.safe_name(split[1])) +def archive_pip_packages(path, package_cmds): + use_pip_main = False + try: + import pip + pip_dist = pkg_resources.get_distribution('pip') + version = pip_dist.version + + if version < '1.1': + raise RuntimeError('pip >= 1.1 required, %s installed' % version) + + use_pip_main = True + except ImportError: + print '\n===\nWARNING:\nCannot import `pip` - falling back to using the pip executable.' + print '(This will be deprecated in a future release.)\n===\n' + + if use_pip_main: + cmds = ['install', '-d', path] + cmds.extend(package_cmds) + pip.main(cmds) + else: + check_call(["pip", "install", "-d", path] + package_cmds) + def dir2pi(argv=sys.argv): if len(argv) != 2: print(dedent(""" @@ -145,13 +167,8 @@ def pip2tgz(argv=sys.argv): outdir = os.path.abspath(argv[1]) if not os.path.exists(outdir): os.mkdir(outdir) - - import pip - version = pip.__version__ - if version < '1.1': - raise RuntimeError('pip version %s is less than the required version 1.1' % version) - check_call(["pip", "install", "-d", outdir] + argv[2:]) + archive_pip_packages(outdir, argv[2:]) os.chdir(outdir) num_pakages = len(glob.glob('./*.tar.gz')) From 511a945fa7d9cb53c2b98b39ba07a392111b9ac6 Mon Sep 17 00:00:00 2001 From: Dave Martorana Date: Wed, 27 Nov 2013 17:22:30 -0500 Subject: [PATCH 201/709] Minor fix in counting packages saved --- libpip2pi/commands.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index bb1a8034930..ed08b4746d3 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -3,7 +3,7 @@ import cgi import shutil import atexit -import zipfile +#import zipfile import tempfile import textwrap import functools @@ -170,9 +170,9 @@ def pip2tgz(argv=sys.argv): archive_pip_packages(outdir, argv[2:]) os.chdir(outdir) - num_pakages = len(glob.glob('./*.tar.gz')) + num_pakages = len(glob.glob('./*.tar.*')) - print("%s .tar.gz saved to %r" %(num_pakages, argv[1])) + print("\nDone. %s archives currently saved in %r." %(num_pakages, argv[1])) return 0 def pip2pi(argv=sys.argv): From e4289c2cf43a5413d44c3a3e85c44fe4fc827b91 Mon Sep 17 00:00:00 2001 From: David Wolever Date: Tue, 3 Dec 2013 20:23:10 -0500 Subject: [PATCH 202/709] Clean up, Py3k-ify archive_pip_packages --- libpip2pi/commands.py | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index ed08b4746d3..c27ceefd59f 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -57,26 +57,24 @@ def file_to_package(file, basedir=None): return (split[0], pkg_resources.safe_name(split[1])) def archive_pip_packages(path, package_cmds): - use_pip_main = False + pip_args = ["install", "-d", path] + package_cmds try: import pip - pip_dist = pkg_resources.get_distribution('pip') - version = pip_dist.version - - if version < '1.1': - raise RuntimeError('pip >= 1.1 required, %s installed' % version) - - use_pip_main = True except ImportError: - print '\n===\nWARNING:\nCannot import `pip` - falling back to using the pip executable.' - print '(This will be deprecated in a future release.)\n===\n' - - if use_pip_main: - cmds = ['install', '-d', path] - cmds.extend(package_cmds) - pip.main(cmds) - else: - check_call(["pip", "install", "-d", path] + package_cmds) + print("===== WARNING =====") + print("Cannot `import pip` - falling back to the pip executable.") + print("This will be deprecated in a future release.") + print("Please open an issue if this will be a problem: " + "https://github.com/wolever/pip2pi/issues") + print("===================") + check_call(["pip"] + pip_args) + return + + pip_dist = pkg_resources.get_distribution("pip") + version = pip_dist.version + if version < "1.1": + raise RuntimeError("pip >= 1.1 required, %s installed" % version) + pip.main(pip_args) def dir2pi(argv=sys.argv): if len(argv) != 2: From 908f1da703b4b329884b96104f849d8776e61f95 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Thu, 9 Jan 2014 15:22:17 +0100 Subject: [PATCH 203/709] attribution for Kotlin --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 1c4a9992b97..1925e147140 100644 --- a/AUTHORS +++ b/AUTHORS @@ -137,6 +137,7 @@ Other contributors, listed alphabetically, are: * Jeremy Thurgood -- Erlang, Squid config lexers * Brian Tiffin -- OpenCOBOL lexer * Erick Tryzelaar -- Felix lexer +* Alexander Udalov -- Kotlin lexer improvements * Daniele Varrazzo -- PostgreSQL lexers * Abe Voelker -- OpenEdge ABL lexer * Pepijn de Vos -- HTML formatter CTags support From 09baf4b20282253c4c1ef5d7549a1650036400e6 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Thu, 9 Jan 2014 16:35:56 +0100 Subject: [PATCH 204/709] changelog: nix/mathematica --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 1925e147140..96334a23693 100644 --- a/AUTHORS +++ b/AUTHORS @@ -75,6 +75,7 @@ Other contributors, listed alphabetically, are: * Stepan Koltsov -- Clay lexer * Adam Koprowski -- Opa lexer * Benjamin Kowarsch -- Modula-2 lexer +* Domen Kožar -- Nix lexer * Alexander Kriegisch -- Kconfig and AspectJ lexers * Marek Kubica -- Scheme lexer * Jochen Kupperschmidt -- Markdown processor From 679f72c6f6fbadda7b47a63e4405a50cb9958b36 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Thu, 9 Jan 2014 17:11:56 +0100 Subject: [PATCH 205/709] pike: consistency updates --- AUTHORS | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/AUTHORS b/AUTHORS index 050e75f6c79..de94398fd81 100644 --- a/AUTHORS +++ b/AUTHORS @@ -28,8 +28,8 @@ Other contributors, listed alphabetically, are: * Hiram Chirino -- Scaml and Jade lexers * Ian Cooper -- VGL lexer * Leaf Corcoran -- MoonScript lexer -* Christian Jann -- ShellSession lexer * Christopher Creutzig -- MuPAD lexer +* Daniël W. Crompton - Pike lexer * Pete Curry -- bugfixes * Bryan Davis -- EBNF lexer * Owen Durni -- Haxe lexer @@ -68,6 +68,7 @@ Other contributors, listed alphabetically, are: * Tim Howard -- BlitzMax lexer * Ivan Inozemtsev -- Fantom lexer * Brian R. Jackson -- Tea lexer +* Christian Jann -- ShellSession lexer * Dennis Kaarsemaker -- sources.list lexer * Igor Kalnitsky -- vhdl lexer * Pekka Klärck -- Robot Framework lexer @@ -151,6 +152,5 @@ Other contributors, listed alphabetically, are: * Diego Zamboni -- CFengine3 lexer * Enrique Zamudio -- Ceylon lexer * Alex Zimin -- Nemerle lexer -* Daniël W. Crompton - Pike lexer Many thanks for all contributions! From 679a5b323e8c937d2f8c68a480f077cdb4e5a7e0 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Thu, 9 Jan 2014 17:15:14 +0100 Subject: [PATCH 206/709] hy: changelog and consistency updates --- AUTHORS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index 8512e8dbfcf..16f60eec36b 100644 --- a/AUTHORS +++ b/AUTHORS @@ -138,7 +138,7 @@ Other contributors, listed alphabetically, are: * Tiberius Teng -- default style overhaul * Jeremy Thurgood -- Erlang, Squid config lexers * Brian Tiffin -- OpenCOBOL lexer -# Bob Tolbert -- Hy lexer +* Bob Tolbert -- Hy lexer * Erick Tryzelaar -- Felix lexer * Alexander Udalov -- Kotlin lexer improvements * Daniele Varrazzo -- PostgreSQL lexers From 00aca551e6cec98c257d548e8252186d666f00b2 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Thu, 9 Jan 2014 17:29:48 +0100 Subject: [PATCH 207/709] chapel: changelog and attribution --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 16f60eec36b..997272cc305 100644 --- a/AUTHORS +++ b/AUTHORS @@ -141,6 +141,7 @@ Other contributors, listed alphabetically, are: * Bob Tolbert -- Hy lexer * Erick Tryzelaar -- Felix lexer * Alexander Udalov -- Kotlin lexer improvements +* Thomas Van Doren -- Chapel lexer * Daniele Varrazzo -- PostgreSQL lexers * Abe Voelker -- OpenEdge ABL lexer * Pepijn de Vos -- HTML formatter CTags support From 1c1f76e80be1b615b9cef1683b1328070d11c91e Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Thu, 9 Jan 2014 17:38:21 +0100 Subject: [PATCH 208/709] kal: changelog and attribution --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 997272cc305..bc0f4dae7ec 100644 --- a/AUTHORS +++ b/AUTHORS @@ -154,5 +154,6 @@ Other contributors, listed alphabetically, are: * Diego Zamboni -- CFengine3 lexer * Enrique Zamudio -- Ceylon lexer * Alex Zimin -- Nemerle lexer +* Rob Zimmerman -- Kal lexer Many thanks for all contributions! From c480a9708897545dbe6a5fbe9713a12ff721acd8 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Thu, 9 Jan 2014 18:19:43 +0100 Subject: [PATCH 209/709] Closes #914: powershell: recognize escaped backtick correctly --- pygments/lexers/shell.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 8a50d970af6..17247fb3dd6 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -408,7 +408,7 @@ class PowerShellLexer(RegexLexer): (r'[#&.]', Comment.Multiline), ], 'string': [ - (r"`[0abfnrtv'\"\$]", String.Escape), + (r"`[0abfnrtv'\"\$`]", String.Escape), (r'[^$`"]+', String.Double), (r'\$\(', Punctuation, 'child'), (r'""', String.Double), From 67bd4208ea2a0599bb6ce691049c0f39d2583aa5 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Thu, 9 Jan 2014 18:27:39 +0100 Subject: [PATCH 210/709] Closes #902: add missing option "]" after prompt in ShellSession lexer --- pygments/lexers/shell.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 17247fb3dd6..e0c2e36de2f 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -179,7 +179,7 @@ def get_tokens_unprocessed(self, text): for match in line_re.finditer(text): line = match.group() - m = re.match(r'^((?:\[?\S+@[^$#%]+)[$#%])(.*\n?)', line) + m = re.match(r'^((?:\[?\S+@[^$#%]+\]?\s*)[$#%])(.*\n?)', line) if m: # To support output lexers (say diff output), the output # needs to be broken by prompts whenever the output lexer From 78a6b92efb35570809c7b519683dfeb918f3d136 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Thu, 9 Jan 2014 20:49:56 +0100 Subject: [PATCH 211/709] add "batch" alias to batch lexer --- pygments/lexers/shell.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index e0c2e36de2f..54c05530acc 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -211,7 +211,7 @@ class BatchLexer(RegexLexer): *New in Pygments 0.7.* """ name = 'Batchfile' - aliases = ['bat', 'dosbatch', 'winbatch'] + aliases = ['bat', 'batch', 'dosbatch', 'winbatch'] filenames = ['*.bat', '*.cmd'] mimetypes = ['application/x-dos-batch'] From 872fda3a4a011a8ae02048b3e51bfa49758ad641 Mon Sep 17 00:00:00 2001 From: Louis M Date: Thu, 9 Jan 2014 22:34:24 -0500 Subject: [PATCH 212/709] Correct the string and char escape code and put case sensitivity to keywords. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index bc0f4dae7ec..8bd0c3b297b 100644 --- a/AUTHORS +++ b/AUTHORS @@ -155,5 +155,6 @@ Other contributors, listed alphabetically, are: * Enrique Zamudio -- Ceylon lexer * Alex Zimin -- Nemerle lexer * Rob Zimmerman -- Kal lexer +* Louis Marchand -- Eiffel lexer Many thanks for all contributions! From 40bc3ed69e92ac46a719721623ddbf1896f7b56a Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Fri, 10 Jan 2014 10:27:56 +0100 Subject: [PATCH 213/709] eiffel: add to changelog, minor cleanup --- AUTHORS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index 8bd0c3b297b..ffae0944064 100644 --- a/AUTHORS +++ b/AUTHORS @@ -87,6 +87,7 @@ Other contributors, listed alphabetically, are: * Mark Lee -- Vala lexer * Ben Mabey -- Gherkin lexer * Angus MacArthur -- QML lexer +* Louis Marchand -- Eiffel lexer * Simone Margaritelli -- Hybris lexer * Kirk McDonald -- D lexer * Gordon McGregor -- SystemVerilog lexer @@ -155,6 +156,5 @@ Other contributors, listed alphabetically, are: * Enrique Zamudio -- Ceylon lexer * Alex Zimin -- Nemerle lexer * Rob Zimmerman -- Kal lexer -* Louis Marchand -- Eiffel lexer Many thanks for all contributions! From 7b02af04dc358f51007424a2a680e1ef1b330152 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Fri, 10 Jan 2014 10:52:53 +0100 Subject: [PATCH 214/709] new year in copyright notice --- LICENSE | 2 +- pygments/lexers/shell.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/LICENSE b/LICENSE index 1e091194d7c..641c8e8e702 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2006-2013 by the respective authors (see AUTHORS file). +Copyright (c) 2006-2014 by the respective authors (see AUTHORS file). All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 54c05530acc..13b245628f3 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -5,7 +5,7 @@ Lexers for various shells. - :copyright: Copyright 2006-2013 by the Pygments team, see AUTHORS. + :copyright: Copyright 2006-2014 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. """ From 3fddaf19d422beabbc744ebfeaad7e917cc950bc Mon Sep 17 00:00:00 2001 From: Stefan Tatschner Date: Fri, 10 Jan 2014 13:51:55 +0100 Subject: [PATCH 215/709] Added PKGBUILD (Arch Linux buildscripts) filename to BashLexer --- pygments/lexers/shell.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 13b245628f3..4376611a4b9 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -33,7 +33,7 @@ class BashLexer(RegexLexer): name = 'Bash' aliases = ['bash', 'sh', 'ksh'] filenames = ['*.sh', '*.ksh', '*.bash', '*.ebuild', '*.eclass', - '.bashrc', 'bashrc', '.bash_*', 'bash_*'] + '.bashrc', 'bashrc', '.bash_*', 'bash_*', 'PKGBUILD'] mimetypes = ['application/x-sh', 'application/x-shellscript'] tokens = { From 5ef93c9ecd632976d9f1094b867111464d57c21f Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 19 Jan 2014 19:05:19 +0100 Subject: [PATCH 216/709] use versionadded directives --- pygments/lexers/shell.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 4376611a4b9..b069b3750b0 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -27,7 +27,7 @@ class BashLexer(RegexLexer): """ Lexer for (ba|k|)sh shell scripts. - *New in Pygments 0.6.* + .. versionadded:: 0.6 """ name = 'Bash' @@ -111,7 +111,7 @@ class BashSessionLexer(Lexer): """ Lexer for simplistic shell sessions. - *New in Pygments 1.1.* + .. versionadded:: 1.1 """ name = 'Bash Session' @@ -162,7 +162,7 @@ class ShellSessionLexer(Lexer): """ Lexer for shell sessions that works with different command prompts - *New in Pygments 1.6.* + .. versionadded:: 1.6 """ name = 'Shell Session' @@ -208,7 +208,7 @@ class BatchLexer(RegexLexer): """ Lexer for the DOS/Windows Batch file format. - *New in Pygments 0.7.* + .. versionadded:: 0.7 """ name = 'Batchfile' aliases = ['bat', 'batch', 'dosbatch', 'winbatch'] @@ -264,7 +264,7 @@ class TcshLexer(RegexLexer): """ Lexer for tcsh scripts. - *New in Pygments 0.10.* + .. versionadded:: 0.10 """ name = 'Tcsh' @@ -331,7 +331,7 @@ class PowerShellLexer(RegexLexer): """ For Windows PowerShell code. - *New in Pygments 1.5.* + .. versionadded:: 1.5 """ name = 'PowerShell' aliases = ['powershell', 'posh', 'ps1', 'psm1'] From 7f391372271127ad3ef4fbbca04ff5d221292ceb Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Mon, 20 Jan 2014 09:30:11 +0100 Subject: [PATCH 217/709] Rust 0.9: add to changelog and attribution --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index ffae0944064..cfa1e532b17 100644 --- a/AUTHORS +++ b/AUTHORS @@ -118,6 +118,7 @@ Other contributors, listed alphabetically, are: * Kashif Rasul -- CUDA lexer * Justin Reidy -- MXML lexer * Norman Richards -- JSON lexer +* Corey Richardson -- Rust lexer updates * Lubomir Rintel -- GoodData MAQL and CL lexers * Andre Roberge -- Tango style * Konrad Rudolph -- LaTeX formatter enhancements From f226740fac36b381ca2a34accfc3c20f5496c1c2 Mon Sep 17 00:00:00 2001 From: David Wolever Date: Mon, 27 Jan 2014 11:30:43 -0500 Subject: [PATCH 218/709] Bump to 0.5.0 adding install_requires pip>=1.1 --- libpip2pi/__init__.py | 2 +- libpip2pi/commands.py | 4 ++-- setup.py | 7 +++++-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/libpip2pi/__init__.py b/libpip2pi/__init__.py index cea3b2e5536..09270db56f0 100644 --- a/libpip2pi/__init__.py +++ b/libpip2pi/__init__.py @@ -1 +1 @@ -__version__ = (0, 4, 0) +__version__ = (0, 5, 0) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index c27ceefd59f..d9029c97418 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -3,7 +3,6 @@ import cgi import shutil import atexit -#import zipfile import tempfile import textwrap import functools @@ -73,7 +72,8 @@ def archive_pip_packages(path, package_cmds): pip_dist = pkg_resources.get_distribution("pip") version = pip_dist.version if version < "1.1": - raise RuntimeError("pip >= 1.1 required, %s installed" % version) + raise RuntimeError("pip >= 1.1 required, but %s is installed" + %(version, )) pip.main(pip_args) def dir2pi(argv=sys.argv): diff --git a/setup.py b/setup.py index a61ff896d1a..56488dcc828 100644 --- a/setup.py +++ b/setup.py @@ -32,8 +32,11 @@ 'dir2pi = libpip2pi.commands:dir2pi', 'pip2pi = libpip2pi.commands:pip2pi', 'pip2tgz = libpip2pi.commands:pip2tgz', - ], - }, + ], + }, + install_requires=[ + "pip>=1.1", + ], license="BSD", classifiers=[ x.strip() for x in """ Development Status :: 4 - Beta From 6832a4deae7e28cd9813d3ea9fa51b8b2a263c6b Mon Sep 17 00:00:00 2001 From: David Corbett Date: Fri, 31 Jan 2014 08:28:38 -0500 Subject: [PATCH 219/709] Add Inform lexers --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index cfa1e532b17..e16a66cc51a 100644 --- a/AUTHORS +++ b/AUTHORS @@ -27,6 +27,7 @@ Other contributors, listed alphabetically, are: * Pierre Bourdon -- bugfixes * Hiram Chirino -- Scaml and Jade lexers * Ian Cooper -- VGL lexer +* David Corbett -- Inform lexers * Leaf Corcoran -- MoonScript lexer * Christopher Creutzig -- MuPAD lexer * Daniël W. Crompton - Pike lexer From 0f15bbc88d99e2015fd29f821a7b54243119d7ac Mon Sep 17 00:00:00 2001 From: Tim Gross Date: Wed, 12 Feb 2014 11:14:53 -0500 Subject: [PATCH 220/709] Added support for wheels --- libpip2pi/commands.py | 37 ++++++++++++++++++++++++++++--------- setup.py | 1 + 2 files changed, 29 insertions(+), 9 deletions(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index d9029c97418..dc986d77654 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -1,4 +1,5 @@ import os +import re import sys import cgi import shutil @@ -42,10 +43,16 @@ def file_to_package(file, basedir=None): ('foo', '1.2.3-rc1.tar.gz') >>> file_to_package("foo-bar-1.2.tgz") ('foo-bar', '1.2.tgz') + >>> file_to_package("foo-bar-1.2-py27-none-any.whl") + ('foo-bar', '1.2-py27-none-any.whl') >>> """ if os.path.splitext(file)[1].lower() == ".egg": return egg_to_package(file) - split = file.rsplit("-", 1) + + if os.path.splitext(file)[1].lower() == ".whl": + split = list(re.match(r'^(.*)\-(.*\-.*\-.*\-.*\.whl)$', file).groups()) + else: + split = file.rsplit("-", 1) if len(split) != 2: msg = "unexpected file name: %r " %(file, ) msg += "(not in 'pkg-name-version.xxx' format" @@ -55,8 +62,8 @@ def file_to_package(file, basedir=None): raise ValueError(msg) return (split[0], pkg_resources.safe_name(split[1])) -def archive_pip_packages(path, package_cmds): - pip_args = ["install", "-d", path] + package_cmds +def archive_pip_packages(pip_args, path, package_cmds): + pip_args = pip_args + [path] + package_cmds try: import pip except ImportError: @@ -76,6 +83,7 @@ def archive_pip_packages(path, package_cmds): %(version, )) pip.main(pip_args) + def dir2pi(argv=sys.argv): if len(argv) != 2: print(dedent(""" @@ -146,29 +154,40 @@ def dir2pi(argv=sys.argv): @maintain_cwd def pip2tgz(argv=sys.argv): + return pip2archive(argv) + +@maintain_cwd +def pip2whl(argv=sys.argv): + return pip2archive(argv, use_wheels=True) + +def pip2archive(argv, use_wheels=False): + cmd_name = 'pip2whl' if use_wheels else 'pip2tgz' + glob_test = './*.whl' if use_wheels else './*.tar.*' + pip_cmd = ['wheel', '--wheel-dir'] if use_wheels else ['install', '-d'] + if len(argv) < 3: print(dedent(""" - usage: pip2tgz OUTPUT_DIRECTORY PACKAGE_NAME ... + usage: {0} OUTPUT_DIRECTORY PACKAGE_NAME ... Where PACKAGE_NAMES are any names accepted by pip (ex, `foo`, `foo==1.2`, `-r requirements.txt`). - pip2tgz will download all packages required to install PACKAGE_NAMES and + {0} will download all packages required to install PACKAGE_NAMES and save them to sanely-named tarballs in OUTPUT_DIRECTORY. For example: - $ pip2tgz /var/www/packages/ -r requirements.txt foo==1.2 baz/ - """)) + $ {0} /var/www/packages/ -r requirements.txt foo==1.2 baz/ + """.format(cmd_name))) return 1 outdir = os.path.abspath(argv[1]) if not os.path.exists(outdir): os.mkdir(outdir) - archive_pip_packages(outdir, argv[2:]) + archive_pip_packages(pip_cmd, outdir, argv[2:]) os.chdir(outdir) - num_pakages = len(glob.glob('./*.tar.*')) + num_pakages = len(glob.glob(glob_test)) print("\nDone. %s archives currently saved in %r." %(num_pakages, argv[1])) return 0 diff --git a/setup.py b/setup.py index 56488dcc828..6d9d049e14b 100644 --- a/setup.py +++ b/setup.py @@ -32,6 +32,7 @@ 'dir2pi = libpip2pi.commands:dir2pi', 'pip2pi = libpip2pi.commands:pip2pi', 'pip2tgz = libpip2pi.commands:pip2tgz', + 'pip2whl = libpip2pi.commands:pip2whl', ], }, install_requires=[ From 9b9404c7ddb3496f02d1f0ace9ac1e9848011ca7 Mon Sep 17 00:00:00 2001 From: David Wolever Date: Sun, 2 Mar 2014 20:28:00 -0500 Subject: [PATCH 221/709] Add whl file support (bump to 0.6.0) --- libpip2pi/__init__.py | 2 +- libpip2pi/commands.py | 31 ++++++++++++++++++++----------- 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/libpip2pi/__init__.py b/libpip2pi/__init__.py index 09270db56f0..922daa7cb9e 100644 --- a/libpip2pi/__init__.py +++ b/libpip2pi/__init__.py @@ -1 +1 @@ -__version__ = (0, 5, 0) +__version__ = (0, 6, 0) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index dc986d77654..f6093521b6f 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -1,5 +1,4 @@ import os -import re import sys import cgi import shutil @@ -25,7 +24,7 @@ def maintain_cwd_helper(*args, **kwargs): return maintain_cwd_helper def egg_to_package(file): - """ Extracts the package name from an egg. + """ Extracts the package name from an egg:: >>> egg_to_package("PyYAML-3.10-py2.7-macosx-10.7-x86_64.egg") ('PyYAML', '3.10-py2.7-macosx-10.7-x86_64.egg') @@ -37,7 +36,7 @@ def egg_to_package(file): return (name, file[len(name)+1:]) def file_to_package(file, basedir=None): - """ Returns the package name for a given file. + """ Returns the package name for a given file:: >>> file_to_package("foo-1.2.3_rc1.tar.gz") ('foo', '1.2.3-rc1.tar.gz') @@ -45,22 +44,30 @@ def file_to_package(file, basedir=None): ('foo-bar', '1.2.tgz') >>> file_to_package("foo-bar-1.2-py27-none-any.whl") ('foo-bar', '1.2-py27-none-any.whl') - >>> """ - if os.path.splitext(file)[1].lower() == ".egg": + >>> file_to_package("Cython-0.17.2-cp26-none-linux_x86_64.whl") + ('Cython', '0.17.2-cp26-none-linux_x86_64.whl') + """ + file_ext = os.path.splitext(file)[1].lower() + if file_ext == ".egg": return egg_to_package(file) - if os.path.splitext(file)[1].lower() == ".whl": - split = list(re.match(r'^(.*)\-(.*\-.*\-.*\-.*\.whl)$', file).groups()) + if file_ext == ".whl": + bits = file.rsplit("-", 4) + split = [bits[0], "-".join(bits[1:])] + to_safe_name = lambda x: x else: split = file.rsplit("-", 1) - if len(split) != 2: + to_safe_name = pkg_resources.safe_name + + if len(split) != 2 or not split[1]: msg = "unexpected file name: %r " %(file, ) msg += "(not in 'pkg-name-version.xxx' format" if basedir: msg += "; found in directory: %r" %(basedir) msg += ")" raise ValueError(msg) - return (split[0], pkg_resources.safe_name(split[1])) + + return (split[0], to_safe_name(split[1])) def archive_pip_packages(pip_args, path, package_cmds): pip_args = pip_args + [path] + package_cmds @@ -81,7 +88,7 @@ def archive_pip_packages(pip_args, path, package_cmds): if version < "1.1": raise RuntimeError("pip >= 1.1 required, but %s is installed" %(version, )) - pip.main(pip_args) + return pip.main(pip_args) def dir2pi(argv=sys.argv): @@ -185,7 +192,9 @@ def pip2archive(argv, use_wheels=False): if not os.path.exists(outdir): os.mkdir(outdir) - archive_pip_packages(pip_cmd, outdir, argv[2:]) + res = archive_pip_packages(pip_cmd, outdir, argv[2:]) + if res != 0: + return res os.chdir(outdir) num_pakages = len(glob.glob(glob_test)) From fe1c17e1ce49964fa9634eea7e4200e36c64a203 Mon Sep 17 00:00:00 2001 From: David Wolever Date: Mon, 3 Mar 2014 21:52:10 -0500 Subject: [PATCH 222/709] Remove pip2whl, fix wheel dependency issues --- libpip2pi/__init__.py | 2 +- libpip2pi/commands.py | 109 ++++++++++++++++++++++++++++++++---------- 2 files changed, 86 insertions(+), 25 deletions(-) diff --git a/libpip2pi/__init__.py b/libpip2pi/__init__.py index 922daa7cb9e..d8efa910636 100644 --- a/libpip2pi/__init__.py +++ b/libpip2pi/__init__.py @@ -1 +1 @@ -__version__ = (0, 6, 0) +__version__ = (0, 6, 1) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index f6093521b6f..cc6c0e599af 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -10,6 +10,35 @@ import pkg_resources import glob +try: + import wheel as _; _ + has_wheel = True +except ImportError: + has_wheel = False + +class PipError(Exception): + pass + +def warn_wheel(): + print( + "ERROR: .whl packages were downloaded but the wheel package " + "is not installed, so they cannot be correctly processed.\n" + "Install it with:\n" + " pip install wheel" + ) + try: + import setuptools + setuptools_version = setuptools.__version__ + except ImportError: + setuptools_version = '' + if setuptools_version < '1.0.0': + print( + "WARNING: your setuptools package is out of date. This " + "could lead to bad things.\n" + "You should likely update it:\n" + " pip install -U setuptools" + ) + def dedent(text): return textwrap.dedent(text.lstrip("\n")) @@ -47,6 +76,7 @@ def file_to_package(file, basedir=None): >>> file_to_package("Cython-0.17.2-cp26-none-linux_x86_64.whl") ('Cython', '0.17.2-cp26-none-linux_x86_64.whl') """ + file = os.path.basename(file) file_ext = os.path.splitext(file)[1].lower() if file_ext == ".egg": return egg_to_package(file) @@ -69,8 +99,7 @@ def file_to_package(file, basedir=None): return (split[0], to_safe_name(split[1])) -def archive_pip_packages(pip_args, path, package_cmds): - pip_args = pip_args + [path] + package_cmds +def pip_run_command(pip_args): try: import pip except ImportError: @@ -88,7 +117,10 @@ def archive_pip_packages(pip_args, path, package_cmds): if version < "1.1": raise RuntimeError("pip >= 1.1 required, but %s is installed" %(version, )) - return pip.main(pip_args) + res = pip.main(pip_args) + if res != 0: + raise PipError("pip failed with status %s while running: %s" + %(res, pip_args)) def dir2pi(argv=sys.argv): @@ -159,48 +191,77 @@ def dir2pi(argv=sys.argv): fp.write(pkg_index) return 0 -@maintain_cwd -def pip2tgz(argv=sys.argv): - return pip2archive(argv) +def globall(globs): + result = [] + for g in globs: + result.extend(glob.glob(g)) + return result @maintain_cwd -def pip2whl(argv=sys.argv): - return pip2archive(argv, use_wheels=True) - -def pip2archive(argv, use_wheels=False): - cmd_name = 'pip2whl' if use_wheels else 'pip2tgz' - glob_test = './*.whl' if use_wheels else './*.tar.*' - pip_cmd = ['wheel', '--wheel-dir'] if use_wheels else ['install', '-d'] +def pip2tgz(argv=sys.argv): + glob_exts = ['*.whl', '*.tgz', '*.gz'] if len(argv) < 3: print(dedent(""" - usage: {0} OUTPUT_DIRECTORY PACKAGE_NAME ... + usage: pip2tgz OUTPUT_DIRECTORY PACKAGE_NAME ... Where PACKAGE_NAMES are any names accepted by pip (ex, `foo`, `foo==1.2`, `-r requirements.txt`). - {0} will download all packages required to install PACKAGE_NAMES and - save them to sanely-named tarballs in OUTPUT_DIRECTORY. + pip2tgz will download all packages required to install PACKAGE_NAMES and + save them to sanely-named tarballs or wheel files in OUTPUT_DIRECTORY. For example: - $ {0} /var/www/packages/ -r requirements.txt foo==1.2 baz/ - """.format(cmd_name))) + $ pip2tgz /var/www/packages/ -r requirements.txt foo==1.2 baz/ + """)) return 1 outdir = os.path.abspath(argv[1]) if not os.path.exists(outdir): os.mkdir(outdir) - res = archive_pip_packages(pip_cmd, outdir, argv[2:]) - if res != 0: - return res - os.chdir(outdir) - num_pakages = len(glob.glob(glob_test)) + full_glob_paths = [ + os.path.join(outdir, g) for g in glob_exts + ] + pkg_file_set = lambda: set(globall(full_glob_paths)) + old_pkgs = pkg_file_set() - print("\nDone. %s archives currently saved in %r." %(num_pakages, argv[1])) + pip_run_command(['install', '-d', outdir] + argv[2:]) + + os.chdir(outdir) + new_pkgs = pkg_file_set() - old_pkgs + new_wheels = [ f for f in new_pkgs if f.endswith(".whl") ] + for new_pkg in new_wheels: + if not has_wheel: + warn_wheel() + # Remove the wheel files so that they will be re-downloaded and + # their dependencies installed next time around + for f in new_wheels: + os.unlink(f) + return 1 + download_wheel_deps(outdir, new_pkg) + + num_pkgs = len(pkg_file_set() - old_pkgs) + print("\nDone. %s new archives currently saved in %r." %(num_pkgs, argv[1])) return 0 +def download_wheel_deps(outdir, pkg_file): + """ Downloads all the dependencies of a wheel file into outdir. + + Because ``pip install -d ...`` doesn't install dependencies for + wheels[0], we need to hack around that and do it ourselves here. + + [0]: https://github.com/pypa/pip/issues/1617 + """ + pkg_file_basedir = os.path.abspath(os.path.dirname(pkg_file)) + pkg_name, _ = file_to_package(pkg_file) + pip_run_command([ + 'wheel', '-w', outdir, + '--find-links', pkg_file_basedir, + pkg_name, + ]) + def pip2pi(argv=sys.argv): if len(argv) < 3: print(dedent(""" From 62ea483cd79253b3c43b0ff66270fde690a1ab17 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Tue, 4 Mar 2014 14:44:49 +0100 Subject: [PATCH 223/709] Add authors/changelog for Idris, exempt the literate lexer from stripnl test --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index cfa1e532b17..2d7572cbe06 100644 --- a/AUTHORS +++ b/AUTHORS @@ -115,6 +115,7 @@ Other contributors, listed alphabetically, are: * Benjamin Peterson -- Test suite refactoring * Dominik Picheta -- Nimrod lexer * Clément Prévost -- UrbiScript lexer +* raichoo -- Idris lexer * Kashif Rasul -- CUDA lexer * Justin Reidy -- MXML lexer * Norman Richards -- JSON lexer From e750be428dcc5b7ca09efceaf67fd3374951a10d Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Tue, 4 Mar 2014 15:36:32 +0100 Subject: [PATCH 224/709] Mask: attribution, changelog, mapfile, versionadded. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 2d7572cbe06..a9a8a2d4005 100644 --- a/AUTHORS +++ b/AUTHORS @@ -70,6 +70,7 @@ Other contributors, listed alphabetically, are: * Brian R. Jackson -- Tea lexer * Christian Jann -- ShellSession lexer * Dennis Kaarsemaker -- sources.list lexer +* Alexander Kit -- MaskJS lexer * Igor Kalnitsky -- vhdl lexer * Pekka Klärck -- Robot Framework lexer * Eric Knibbe -- Lasso lexer From 18c0f3c11bce8351a79e78a3c89dc7776d7609da Mon Sep 17 00:00:00 2001 From: David Wolever Date: Tue, 4 Mar 2014 11:49:24 -0500 Subject: [PATCH 225/709] Add pip version sniffing to work around wheel bug --- libpip2pi/__init__.py | 2 +- libpip2pi/commands.py | 90 ++++++++++++++++++++++++++++++------------- 2 files changed, 64 insertions(+), 28 deletions(-) diff --git a/libpip2pi/__init__.py b/libpip2pi/__init__.py index d8efa910636..c1d04240929 100644 --- a/libpip2pi/__init__.py +++ b/libpip2pi/__init__.py @@ -1 +1 @@ -__version__ = (0, 6, 1) +__version__ = (0, 6, 2) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index cc6c0e599af..ba5db54b916 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -16,6 +16,11 @@ except ImportError: has_wheel = False +try: + import pip +except ImportError: + pip = None + class PipError(Exception): pass @@ -40,7 +45,7 @@ def warn_wheel(): ) def dedent(text): - return textwrap.dedent(text.lstrip("\n")) + return textwrap.dedent(text.lstrip("\n")).rstrip() def maintain_cwd(f): @functools.wraps(f) @@ -99,10 +104,18 @@ def file_to_package(file, basedir=None): return (split[0], to_safe_name(split[1])) -def pip_run_command(pip_args): +def try_int(x): try: - import pip - except ImportError: + return int(x) + except ValueError: + return x + +def pip_get_version(): + pip_dist = pkg_resources.get_distribution("pip") + return tuple(try_int(x) for x in pip_dist.version.split(".")) + +def pip_run_command(pip_args): + if pip is None: print("===== WARNING =====") print("Cannot `import pip` - falling back to the pip executable.") print("This will be deprecated in a future release.") @@ -112,9 +125,8 @@ def pip_run_command(pip_args): check_call(["pip"] + pip_args) return - pip_dist = pkg_resources.get_distribution("pip") - version = pip_dist.version - if version < "1.1": + version = pip_get_version() + if version < (1, 1): raise RuntimeError("pip >= 1.1 required, but %s is installed" %(version, )) res = pip.main(pip_args) @@ -232,35 +244,59 @@ def pip2tgz(argv=sys.argv): os.chdir(outdir) new_pkgs = pkg_file_set() - old_pkgs new_wheels = [ f for f in new_pkgs if f.endswith(".whl") ] - for new_pkg in new_wheels: - if not has_wheel: - warn_wheel() - # Remove the wheel files so that they will be re-downloaded and - # their dependencies installed next time around - for f in new_wheels: - os.unlink(f) - return 1 - download_wheel_deps(outdir, new_pkg) + res = handle_new_wheels(outdir, new_wheels) + if res: + return res num_pkgs = len(pkg_file_set() - old_pkgs) print("\nDone. %s new archives currently saved in %r." %(num_pkgs, argv[1])) return 0 -def download_wheel_deps(outdir, pkg_file): - """ Downloads all the dependencies of a wheel file into outdir. - Because ``pip install -d ...`` doesn't install dependencies for - wheels[0], we need to hack around that and do it ourselves here. +def handle_new_wheels(outdir, new_wheels): + """ Makes sure that, if wheel files are downloaded, their dependencies are + correctly handled. + + This is necessary because ``pip install -d ...`` was broken + pre-1.5.3[0]. [0]: https://github.com/pypa/pip/issues/1617 """ - pkg_file_basedir = os.path.abspath(os.path.dirname(pkg_file)) - pkg_name, _ = file_to_package(pkg_file) - pip_run_command([ - 'wheel', '-w', outdir, - '--find-links', pkg_file_basedir, - pkg_name, - ]) + if not new_wheels: + return 0 + + pip_version = pip_get_version() + if pip_version >= (1, 5, 3): + return 0 + + print("") + print("!" * 80) + + if not has_wheel: + warn_wheel() + # Remove the wheel files so that they will be re-downloaded and + # their dependencies installed next time around + for f in new_wheels: + os.unlink(f) + return 1 + + print(dedent(""" + WARNING: Your version of pip (%s) doesn't correctly support wheel + files. I'll do my best to work around that for now, but if possible + you should upgrade to at least 1.5.3. + """)) %(pip_version, ) + + print("!" * 80) + print + + for new_pkg in new_wheels: + pkg_file_basedir = os.path.abspath(os.path.dirname(new_pkg)) + pkg_name, _ = file_to_package(new_pkg) + pip_run_command([ + '-q', 'wheel', '-w', outdir, + '--find-links', pkg_file_basedir, + pkg_name, + ]) def pip2pi(argv=sys.argv): if len(argv) < 3: From d261693a44dca4b0da54a9edf28fbb99be98c34b Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 20 Mar 2014 17:04:33 -0400 Subject: [PATCH 226/709] Create PigLexer. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index ae77e7fb464..fa34ec643b8 100644 --- a/AUTHORS +++ b/AUTHORS @@ -97,6 +97,7 @@ Other contributors, listed alphabetically, are: * Brian McKenna -- F# lexer * Charles McLaughlin -- Puppet lexer * Lukas Meuser -- BBCode formatter, Lua lexer +* Cat Miller -- Pig lexer * Paul Miller -- LiveScript lexer * Hong Minhee -- HTTP lexer * Michael Mior -- Awk lexer From 9a8ebe442859064d337419fe906ca9c360e4639a Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Mon, 24 Mar 2014 08:23:14 +0100 Subject: [PATCH 227/709] Closes #969: add APL lexer, by Thomas Baruchel. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index ae77e7fb464..c4da54f6112 100644 --- a/AUTHORS +++ b/AUTHORS @@ -16,6 +16,7 @@ Other contributors, listed alphabetically, are: * Stefan Matthias Aust -- Smalltalk lexer * Ben Bangert -- Mako lexers * Max Battcher -- Darcs patch lexer +* Thomas Baruchel -- APL lexer * Tim Baumann -- (Literate) Agda lexer * Paul Baumgart, 280 North, Inc. -- Objective-J lexer * Michael Bayer -- Myghty lexers From 805735a1d5365a3a02006c360029d8cd19a13e4a Mon Sep 17 00:00:00 2001 From: Max Horn Date: Mon, 14 Apr 2014 15:02:14 +0200 Subject: [PATCH 228/709] Put author attribution into AUTHORS file --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index c4da54f6112..8f191be51c4 100644 --- a/AUTHORS +++ b/AUTHORS @@ -65,6 +65,7 @@ Other contributors, listed alphabetically, are: * Rob Hoelz -- Perl 6 lexer * Doug Hogan -- Mscgen lexer * Ben Hollis -- Mason lexer +* Max Horn -- GAP lexer * Dustin Howett -- Logos lexer * Alastair Houghton -- Lexer inheritance facility * Tim Howard -- BlitzMax lexer From f50f280fd7d1576df43577848af41f2fe2612b63 Mon Sep 17 00:00:00 2001 From: Tim Hatch Date: Mon, 14 Apr 2014 14:47:37 -0400 Subject: [PATCH 229/709] Add Dmitri to AUTHORS --- AUTHORS | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index 83c0eacab6e..69507eaae2d 100644 --- a/AUTHORS +++ b/AUTHORS @@ -73,8 +73,9 @@ Other contributors, listed alphabetically, are: * Brian R. Jackson -- Tea lexer * Christian Jann -- ShellSession lexer * Dennis Kaarsemaker -- sources.list lexer -* Alexander Kit -- MaskJS lexer +* Dmitri Kabak - Inferno Limbo lexer * Igor Kalnitsky -- vhdl lexer +* Alexander Kit -- MaskJS lexer * Pekka Klärck -- Robot Framework lexer * Eric Knibbe -- Lasso lexer * Stepan Koltsov -- Clay lexer From 30bf637c98179f1d810714e783fc56c4d6615fbb Mon Sep 17 00:00:00 2001 From: Gaurav Jain Date: Sun, 20 Apr 2014 21:36:56 -0400 Subject: [PATCH 230/709] Add handling of arthmetic base syntax for math expressions --- pygments/lexers/shell.py | 1 + 1 file changed, 1 insertion(+) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index b069b3750b0..aa9ebda5241 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -91,6 +91,7 @@ class BashLexer(RegexLexer): 'math': [ (r'\)\)', Keyword, '#pop'), (r'[-+*/%^|&]|\*\*|\|\|', Operator), + (r'\d+#(?! )', Number), (r'\d+', Number), include('root'), ], From 3164bc9d004704c8f1e429a1a1eb3ded898ef3b6 Mon Sep 17 00:00:00 2001 From: Gaurav Jain Date: Sun, 20 Apr 2014 21:39:49 -0400 Subject: [PATCH 231/709] Reorder regex matches to ensure number match is before text --- pygments/lexers/shell.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index aa9ebda5241..0e8455c097f 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -71,8 +71,8 @@ class BashLexer(RegexLexer): (r'&', Punctuation), (r'\|', Punctuation), (r'\s+', Text), - (r'[^=\s\[\]{}()$"\'`\\<&|;]+', Text), (r'\d+(?= |\Z)', Number), + (r'[^=\s\[\]{}()$"\'`\\<&|;]+', Text), (r'\$#?(\w+|.)', Name.Variable), (r'<', Text), ], From e9ece073bb8dceb387f7722b8589f57c6c6b451a Mon Sep 17 00:00:00 2001 From: Gaurav Jain Date: Sun, 20 Apr 2014 21:42:14 -0400 Subject: [PATCH 232/709] Ensure that number literals with base syntax use a single token --- pygments/lexers/shell.py | 1 + 1 file changed, 1 insertion(+) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 0e8455c097f..c07ff6ee9a3 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -91,6 +91,7 @@ class BashLexer(RegexLexer): 'math': [ (r'\)\)', Keyword, '#pop'), (r'[-+*/%^|&]|\*\*|\|\|', Operator), + (r'\d+#\d+', Number), (r'\d+#(?! )', Number), (r'\d+', Number), include('root'), From 031efe0055a6d29114d1e383c3e7db238a6df59c Mon Sep 17 00:00:00 2001 From: Gaurav Jain Date: Tue, 22 Apr 2014 13:55:54 -0400 Subject: [PATCH 233/709] Add copy, atomic, release & class Objective-C keywords --- AUTHORS | 169 ++++++++++++++++ LICENSE | 25 +++ pygments/lexers/shell.py | 426 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 620 insertions(+) create mode 100644 AUTHORS create mode 100644 LICENSE create mode 100644 pygments/lexers/shell.py diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 00000000000..e0e19fcc155 --- /dev/null +++ b/AUTHORS @@ -0,0 +1,169 @@ +Pygments is written and maintained by Georg Brandl . + +Major developers are Tim Hatch and Armin Ronacher +. + +Other contributors, listed alphabetically, are: + +* Sam Aaron -- Ioke lexer +* Ali Afshar -- image formatter +* Thomas Aglassinger -- Rexx lexer +* Kumar Appaiah -- Debian control lexer +* Andreas Amann -- AppleScript lexer +* Timothy Armstrong -- Dart lexer fixes +* Jeffrey Arnold -- R/S, Rd, BUGS, Jags, and Stan lexers +* Jeremy Ashkenas -- CoffeeScript lexer +* Stefan Matthias Aust -- Smalltalk lexer +* Ben Bangert -- Mako lexers +* Max Battcher -- Darcs patch lexer +* Thomas Baruchel -- APL lexer +* Tim Baumann -- (Literate) Agda lexer +* Paul Baumgart, 280 North, Inc. -- Objective-J lexer +* Michael Bayer -- Myghty lexers +* John Benediktsson -- Factor lexer +* Christopher Bertels -- Fancy lexer +* Jarrett Billingsley -- MiniD lexer +* Adam Blinkinsop -- Haskell, Redcode lexers +* Frits van Bommel -- assembler lexers +* Pierre Bourdon -- bugfixes +* Hiram Chirino -- Scaml and Jade lexers +* Ian Cooper -- VGL lexer +* David Corbett -- Inform lexers +* Leaf Corcoran -- MoonScript lexer +* Christopher Creutzig -- MuPAD lexer +* Daniël W. Crompton - Pike lexer +* Pete Curry -- bugfixes +* Bryan Davis -- EBNF lexer +* Owen Durni -- Haxe lexer +* Alexander Dutton, Oxford University Computing Services -- SPARQL lexer +* Nick Efford -- Python 3 lexer +* Sven Efftinge -- Xtend lexer +* Artem Egorkine -- terminal256 formatter +* James H. Fisher -- PostScript lexer +* William S. Fulton -- SWIG lexer +* Carlos Galdino -- Elixir and Elixir Console lexers +* Michael Galloy -- IDL lexer +* Naveen Garg -- Autohotkey lexer +* Laurent Gautier -- R/S lexer +* Alex Gaynor -- PyPy log lexer +* Richard Gerkin -- Igor Pro lexer +* Alain Gilbert -- TypeScript lexer +* Alex Gilding -- BlitzBasic lexer +* Bertrand Goetzmann -- Groovy lexer +* Krzysiek Goj -- Scala lexer +* Matt Good -- Genshi, Cheetah lexers +* Michał Górny -- vim modeline support +* Patrick Gotthardt -- PHP namespaces support +* Olivier Guibe -- Asymptote lexer +* Jordi Gutiérrez Hermoso -- Octave lexer +* Martin Harriman -- SNOBOL lexer +* Matthew Harrison -- SVG formatter +* Steven Hazel -- Tcl lexer +* Aslak Hellesøy -- Gherkin lexer +* Greg Hendershott -- Racket lexer +* David Hess, Fish Software, Inc. -- Objective-J lexer +* Varun Hiremath -- Debian control lexer +* Rob Hoelz -- Perl 6 lexer +* Doug Hogan -- Mscgen lexer +* Ben Hollis -- Mason lexer +* Max Horn -- GAP lexer +* Dustin Howett -- Logos lexer +* Alastair Houghton -- Lexer inheritance facility +* Tim Howard -- BlitzMax lexer +* Ivan Inozemtsev -- Fantom lexer +* Brian R. Jackson -- Tea lexer +* Christian Jann -- ShellSession lexer +* Dennis Kaarsemaker -- sources.list lexer +* Dmitri Kabak - Inferno Limbo lexer +* Igor Kalnitsky -- vhdl lexer +* Alexander Kit -- MaskJS lexer +* Pekka Klärck -- Robot Framework lexer +* Eric Knibbe -- Lasso lexer +* Stepan Koltsov -- Clay lexer +* Adam Koprowski -- Opa lexer +* Benjamin Kowarsch -- Modula-2 lexer +* Domen Kožar -- Nix lexer +* Alexander Kriegisch -- Kconfig and AspectJ lexers +* Marek Kubica -- Scheme lexer +* Jochen Kupperschmidt -- Markdown processor +* Gerd Kurzbach -- Modelica lexer +* Jon Larimer, Google Inc. -- Smali lexer +* Olov Lassus -- Dart lexer +* Sylvestre Ledru -- Scilab lexer +* Mark Lee -- Vala lexer +* Ben Mabey -- Gherkin lexer +* Angus MacArthur -- QML lexer +* Louis Marchand -- Eiffel lexer +* Simone Margaritelli -- Hybris lexer +* Kirk McDonald -- D lexer +* Gordon McGregor -- SystemVerilog lexer +* Stephen McKamey -- Duel/JBST lexer +* Brian McKenna -- F# lexer +* Charles McLaughlin -- Puppet lexer +* Lukas Meuser -- BBCode formatter, Lua lexer +* Cat Miller -- Pig lexer +* Paul Miller -- LiveScript lexer +* Hong Minhee -- HTTP lexer +* Michael Mior -- Awk lexer +* Bruce Mitchener -- Dylan lexer rewrite +* Reuben Morais -- SourcePawn lexer +* Jon Morton -- Rust lexer +* Paulo Moura -- Logtalk lexer +* Mher Movsisyan -- DTD lexer +* Ana Nelson -- Ragel, ANTLR, R console lexers +* Nam T. Nguyen -- Monokai style +* Jesper Noehr -- HTML formatter "anchorlinenos" +* Mike Nolta -- Julia lexer +* Jonas Obrist -- BBCode lexer +* David Oliva -- Rebol lexer +* Pat Pannuto -- nesC lexer +* Jon Parise -- Protocol buffers lexer +* Ronny Pfannschmidt -- BBCode lexer +* Benjamin Peterson -- Test suite refactoring +* Dominik Picheta -- Nimrod lexer +* Clément Prévost -- UrbiScript lexer +* raichoo -- Idris lexer +* Kashif Rasul -- CUDA lexer +* Justin Reidy -- MXML lexer +* Norman Richards -- JSON lexer +* Corey Richardson -- Rust lexer updates +* Lubomir Rintel -- GoodData MAQL and CL lexers +* Andre Roberge -- Tango style +* Konrad Rudolph -- LaTeX formatter enhancements +* Mario Ruggier -- Evoque lexers +* Stou Sandalski -- NumPy, FORTRAN, tcsh and XSLT lexers +* Matteo Sasso -- Common Lisp lexer +* Joe Schafer -- Ada lexer +* Ken Schutte -- Matlab lexers +* Tassilo Schweyer -- Io, MOOCode lexers +* Ted Shaw -- AutoIt lexer +* Joerg Sieker -- ABAP lexer +* Robert Simmons -- Standard ML lexer +* Kirill Simonov -- YAML lexer +* Alexander Smishlajev -- Visual FoxPro lexer +* Steve Spigarelli -- XQuery lexer +* Jerome St-Louis -- eC lexer +* James Strachan -- Kotlin lexer +* Tom Stuart -- Treetop lexer +* Tiberius Teng -- default style overhaul +* Jeremy Thurgood -- Erlang, Squid config lexers +* Brian Tiffin -- OpenCOBOL lexer +* Bob Tolbert -- Hy lexer +* Erick Tryzelaar -- Felix lexer +* Alexander Udalov -- Kotlin lexer improvements +* Thomas Van Doren -- Chapel lexer +* Daniele Varrazzo -- PostgreSQL lexers +* Abe Voelker -- OpenEdge ABL lexer +* Pepijn de Vos -- HTML formatter CTags support +* Whitney Young -- ObjectiveC lexer +* Matthias Vallentin -- Bro lexer +* Nathan Weizenbaum -- Haml and Sass lexers +* Dietmar Winkler -- Modelica lexer +* Nils Winter -- Smalltalk lexer +* Davy Wybiral -- Clojure lexer +* Diego Zamboni -- CFengine3 lexer +* Enrique Zamudio -- Ceylon lexer +* Alex Zimin -- Nemerle lexer +* Rob Zimmerman -- Kal lexer + +Many thanks for all contributions! diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000000..641c8e8e702 --- /dev/null +++ b/LICENSE @@ -0,0 +1,25 @@ +Copyright (c) 2006-2014 by the respective authors (see AUTHORS file). +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +* Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py new file mode 100644 index 00000000000..c07ff6ee9a3 --- /dev/null +++ b/pygments/lexers/shell.py @@ -0,0 +1,426 @@ +# -*- coding: utf-8 -*- +""" + pygments.lexers.shell + ~~~~~~~~~~~~~~~~~~~~~ + + Lexers for various shells. + + :copyright: Copyright 2006-2014 by the Pygments team, see AUTHORS. + :license: BSD, see LICENSE for details. +""" + +import re + +from pygments.lexer import Lexer, RegexLexer, do_insertions, bygroups, include +from pygments.token import Punctuation, \ + Text, Comment, Operator, Keyword, Name, String, Number, Generic +from pygments.util import shebang_matches + + +__all__ = ['BashLexer', 'BashSessionLexer', 'TcshLexer', 'BatchLexer', + 'PowerShellLexer', 'ShellSessionLexer'] + +line_re = re.compile('.*?\n') + + +class BashLexer(RegexLexer): + """ + Lexer for (ba|k|)sh shell scripts. + + .. versionadded:: 0.6 + """ + + name = 'Bash' + aliases = ['bash', 'sh', 'ksh'] + filenames = ['*.sh', '*.ksh', '*.bash', '*.ebuild', '*.eclass', + '.bashrc', 'bashrc', '.bash_*', 'bash_*', 'PKGBUILD'] + mimetypes = ['application/x-sh', 'application/x-shellscript'] + + tokens = { + 'root': [ + include('basic'), + (r'\$\(\(', Keyword, 'math'), + (r'\$\(', Keyword, 'paren'), + (r'\${#?', Keyword, 'curly'), + (r'`', String.Backtick, 'backticks'), + include('data'), + ], + 'basic': [ + (r'\b(if|fi|else|while|do|done|for|then|return|function|case|' + r'select|continue|until|esac|elif)(\s*)\b', + bygroups(Keyword, Text)), + (r'\b(alias|bg|bind|break|builtin|caller|cd|command|compgen|' + r'complete|declare|dirs|disown|echo|enable|eval|exec|exit|' + r'export|false|fc|fg|getopts|hash|help|history|jobs|kill|let|' + r'local|logout|popd|printf|pushd|pwd|read|readonly|set|shift|' + r'shopt|source|suspend|test|time|times|trap|true|type|typeset|' + r'ulimit|umask|unalias|unset|wait)\s*\b(?!\.)', + Name.Builtin), + (r'#.*\n', Comment), + (r'\\[\w\W]', String.Escape), + (r'(\b\w+)(\s*)(=)', bygroups(Name.Variable, Text, Operator)), + (r'[\[\]{}()=]', Operator), + (r'<<<', Operator), # here-string + (r'<<-?\s*(\'?)\\?(\w+)[\w\W]+?\2', String), + (r'&&|\|\|', Operator), + ], + 'data': [ + (r'(?s)\$?"(\\\\|\\[0-7]+|\\.|[^"\\])*"', String.Double), + (r"(?s)\$?'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single), + (r';', Punctuation), + (r'&', Punctuation), + (r'\|', Punctuation), + (r'\s+', Text), + (r'\d+(?= |\Z)', Number), + (r'[^=\s\[\]{}()$"\'`\\<&|;]+', Text), + (r'\$#?(\w+|.)', Name.Variable), + (r'<', Text), + ], + 'curly': [ + (r'}', Keyword, '#pop'), + (r':-', Keyword), + (r'[a-zA-Z0-9_]+', Name.Variable), + (r'[^}:"\'`$]+', Punctuation), + (r':', Punctuation), + include('root'), + ], + 'paren': [ + (r'\)', Keyword, '#pop'), + include('root'), + ], + 'math': [ + (r'\)\)', Keyword, '#pop'), + (r'[-+*/%^|&]|\*\*|\|\|', Operator), + (r'\d+#\d+', Number), + (r'\d+#(?! )', Number), + (r'\d+', Number), + include('root'), + ], + 'backticks': [ + (r'`', String.Backtick, '#pop'), + include('root'), + ], + } + + def analyse_text(text): + if shebang_matches(text, r'(ba|z|)sh'): + return 1 + if text.startswith('$ '): + return 0.2 + + +class BashSessionLexer(Lexer): + """ + Lexer for simplistic shell sessions. + + .. versionadded:: 1.1 + """ + + name = 'Bash Session' + aliases = ['console'] + filenames = ['*.sh-session'] + mimetypes = ['application/x-shell-session'] + + def get_tokens_unprocessed(self, text): + bashlexer = BashLexer(**self.options) + + pos = 0 + curcode = '' + insertions = [] + + for match in line_re.finditer(text): + line = match.group() + m = re.match(r'^((?:\(\S+\))?(?:|sh\S*?|\w+\S+[@:]\S+(?:\s+\S+)' + r'?|\[\S+[@:][^\n]+\].+)[$#%])(.*\n?)' , line) + if m: + # To support output lexers (say diff output), the output + # needs to be broken by prompts whenever the output lexer + # changes. + if not insertions: + pos = match.start() + + insertions.append((len(curcode), + [(0, Generic.Prompt, m.group(1))])) + curcode += m.group(2) + elif line.startswith('>'): + insertions.append((len(curcode), + [(0, Generic.Prompt, line[:1])])) + curcode += line[1:] + else: + if insertions: + toks = bashlexer.get_tokens_unprocessed(curcode) + for i, t, v in do_insertions(insertions, toks): + yield pos+i, t, v + yield match.start(), Generic.Output, line + insertions = [] + curcode = '' + if insertions: + for i, t, v in do_insertions(insertions, + bashlexer.get_tokens_unprocessed(curcode)): + yield pos+i, t, v + + +class ShellSessionLexer(Lexer): + """ + Lexer for shell sessions that works with different command prompts + + .. versionadded:: 1.6 + """ + + name = 'Shell Session' + aliases = ['shell-session'] + filenames = ['*.shell-session'] + mimetypes = ['application/x-sh-session'] + + def get_tokens_unprocessed(self, text): + bashlexer = BashLexer(**self.options) + + pos = 0 + curcode = '' + insertions = [] + + for match in line_re.finditer(text): + line = match.group() + m = re.match(r'^((?:\[?\S+@[^$#%]+\]?\s*)[$#%])(.*\n?)', line) + if m: + # To support output lexers (say diff output), the output + # needs to be broken by prompts whenever the output lexer + # changes. + if not insertions: + pos = match.start() + + insertions.append((len(curcode), + [(0, Generic.Prompt, m.group(1))])) + curcode += m.group(2) + else: + if insertions: + toks = bashlexer.get_tokens_unprocessed(curcode) + for i, t, v in do_insertions(insertions, toks): + yield pos+i, t, v + yield match.start(), Generic.Output, line + insertions = [] + curcode = '' + if insertions: + for i, t, v in do_insertions(insertions, + bashlexer.get_tokens_unprocessed(curcode)): + yield pos+i, t, v + + +class BatchLexer(RegexLexer): + """ + Lexer for the DOS/Windows Batch file format. + + .. versionadded:: 0.7 + """ + name = 'Batchfile' + aliases = ['bat', 'batch', 'dosbatch', 'winbatch'] + filenames = ['*.bat', '*.cmd'] + mimetypes = ['application/x-dos-batch'] + + flags = re.MULTILINE | re.IGNORECASE + + tokens = { + 'root': [ + # Lines can start with @ to prevent echo + (r'^\s*@', Punctuation), + (r'^(\s*)(rem\s.*)$', bygroups(Text, Comment)), + (r'".*?"', String.Double), + (r"'.*?'", String.Single), + # If made more specific, make sure you still allow expansions + # like %~$VAR:zlt + (r'%%?[~$:\w]+%?', Name.Variable), + (r'::.*', Comment), # Technically :: only works at BOL + (r'\b(set)(\s+)(\w+)', bygroups(Keyword, Text, Name.Variable)), + (r'\b(call)(\s+)(:\w+)', bygroups(Keyword, Text, Name.Label)), + (r'\b(goto)(\s+)(\w+)', bygroups(Keyword, Text, Name.Label)), + (r'\b(set|call|echo|on|off|endlocal|for|do|goto|if|pause|' + r'setlocal|shift|errorlevel|exist|defined|cmdextversion|' + r'errorlevel|else|cd|md|del|deltree|cls|choice)\b', Keyword), + (r'\b(equ|neq|lss|leq|gtr|geq)\b', Operator), + include('basic'), + (r'.', Text), + ], + 'echo': [ + # Escapes only valid within echo args? + (r'\^\^|\^<|\^>|\^\|', String.Escape), + (r'\n', Text, '#pop'), + include('basic'), + (r'[^\'"^]+', Text), + ], + 'basic': [ + (r'".*?"', String.Double), + (r"'.*?'", String.Single), + (r'`.*?`', String.Backtick), + (r'-?\d+', Number), + (r',', Punctuation), + (r'=', Operator), + (r'/\S+', Name), + (r':\w+', Name.Label), + (r'\w:\w+', Text), + (r'([<>|])(\s*)(\w+)', bygroups(Punctuation, Text, Name)), + ], + } + + +class TcshLexer(RegexLexer): + """ + Lexer for tcsh scripts. + + .. versionadded:: 0.10 + """ + + name = 'Tcsh' + aliases = ['tcsh', 'csh'] + filenames = ['*.tcsh', '*.csh'] + mimetypes = ['application/x-csh'] + + tokens = { + 'root': [ + include('basic'), + (r'\$\(', Keyword, 'paren'), + (r'\${#?', Keyword, 'curly'), + (r'`', String.Backtick, 'backticks'), + include('data'), + ], + 'basic': [ + (r'\b(if|endif|else|while|then|foreach|case|default|' + r'continue|goto|breaksw|end|switch|endsw)\s*\b', + Keyword), + (r'\b(alias|alloc|bg|bindkey|break|builtins|bye|caller|cd|chdir|' + r'complete|dirs|echo|echotc|eval|exec|exit|fg|filetest|getxvers|' + r'glob|getspath|hashstat|history|hup|inlib|jobs|kill|' + r'limit|log|login|logout|ls-F|migrate|newgrp|nice|nohup|notify|' + r'onintr|popd|printenv|pushd|rehash|repeat|rootnode|popd|pushd|' + r'set|shift|sched|setenv|setpath|settc|setty|setxvers|shift|' + r'source|stop|suspend|source|suspend|telltc|time|' + r'umask|unalias|uncomplete|unhash|universe|unlimit|unset|unsetenv|' + r'ver|wait|warp|watchlog|where|which)\s*\b', + Name.Builtin), + (r'#.*\n', Comment), + (r'\\[\w\W]', String.Escape), + (r'(\b\w+)(\s*)(=)', bygroups(Name.Variable, Text, Operator)), + (r'[\[\]{}()=]+', Operator), + (r'<<\s*(\'?)\\?(\w+)[\w\W]+?\2', String), + ], + 'data': [ + (r'(?s)"(\\\\|\\[0-7]+|\\.|[^"\\])*"', String.Double), + (r"(?s)'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single), + (r'\s+', Text), + (r'[^=\s\[\]{}()$"\'`\\]+', Text), + (r'\d+(?= |\Z)', Number), + (r'\$#?(\w+|.)', Name.Variable), + ], + 'curly': [ + (r'}', Keyword, '#pop'), + (r':-', Keyword), + (r'[a-zA-Z0-9_]+', Name.Variable), + (r'[^}:"\'`$]+', Punctuation), + (r':', Punctuation), + include('root'), + ], + 'paren': [ + (r'\)', Keyword, '#pop'), + include('root'), + ], + 'backticks': [ + (r'`', String.Backtick, '#pop'), + include('root'), + ], + } + + +class PowerShellLexer(RegexLexer): + """ + For Windows PowerShell code. + + .. versionadded:: 1.5 + """ + name = 'PowerShell' + aliases = ['powershell', 'posh', 'ps1', 'psm1'] + filenames = ['*.ps1','*.psm1'] + mimetypes = ['text/x-powershell'] + + flags = re.DOTALL | re.IGNORECASE | re.MULTILINE + + keywords = ( + 'while validateset validaterange validatepattern validatelength ' + 'validatecount until trap switch return ref process param parameter in ' + 'if global: function foreach for finally filter end elseif else ' + 'dynamicparam do default continue cmdletbinding break begin alias \\? ' + '% #script #private #local #global mandatory parametersetname position ' + 'valuefrompipeline valuefrompipelinebypropertyname ' + 'valuefromremainingarguments helpmessage try catch throw').split() + + operators = ( + 'and as band bnot bor bxor casesensitive ccontains ceq cge cgt cle ' + 'clike clt cmatch cne cnotcontains cnotlike cnotmatch contains ' + 'creplace eq exact f file ge gt icontains ieq ige igt ile ilike ilt ' + 'imatch ine inotcontains inotlike inotmatch ireplace is isnot le like ' + 'lt match ne not notcontains notlike notmatch or regex replace ' + 'wildcard').split() + + verbs = ( + 'write where wait use update unregister undo trace test tee take ' + 'suspend stop start split sort skip show set send select scroll resume ' + 'restore restart resolve resize reset rename remove register receive ' + 'read push pop ping out new move measure limit join invoke import ' + 'group get format foreach export expand exit enter enable disconnect ' + 'disable debug cxnew copy convertto convertfrom convert connect ' + 'complete compare clear checkpoint aggregate add').split() + + commenthelp = ( + 'component description example externalhelp forwardhelpcategory ' + 'forwardhelptargetname functionality inputs link ' + 'notes outputs parameter remotehelprunspace role synopsis').split() + + tokens = { + 'root': [ + # we need to count pairs of parentheses for correct highlight + # of '$(...)' blocks in strings + (r'\(', Punctuation, 'child'), + (r'\s+', Text), + (r'^(\s*#[#\s]*)(\.(?:%s))([^\n]*$)' % '|'.join(commenthelp), + bygroups(Comment, String.Doc, Comment)), + (r'#[^\n]*?$', Comment), + (r'(<|<)#', Comment.Multiline, 'multline'), + (r'@"\n', String.Heredoc, 'heredoc-double'), + (r"@'\n.*?\n'@", String.Heredoc), + # escaped syntax + (r'`[\'"$@-]', Punctuation), + (r'"', String.Double, 'string'), + (r"'([^']|'')*'", String.Single), + (r'(\$|@@|@)((global|script|private|env):)?[a-z0-9_]+', + Name.Variable), + (r'(%s)\b' % '|'.join(keywords), Keyword), + (r'-(%s)\b' % '|'.join(operators), Operator), + (r'(%s)-[a-z_][a-z0-9_]*\b' % '|'.join(verbs), Name.Builtin), + (r'\[[a-z_\[][a-z0-9_. `,\[\]]*\]', Name.Constant), # .net [type]s + (r'-[a-z_][a-z0-9_]*', Name), + (r'\w+', Name), + (r'[.,;@{}\[\]$()=+*/\\&%!~?^`|<>-]|::', Punctuation), + ], + 'child': [ + (r'\)', Punctuation, '#pop'), + include('root'), + ], + 'multline': [ + (r'[^#&.]+', Comment.Multiline), + (r'#(>|>)', Comment.Multiline, '#pop'), + (r'\.(%s)' % '|'.join(commenthelp), String.Doc), + (r'[#&.]', Comment.Multiline), + ], + 'string': [ + (r"`[0abfnrtv'\"\$`]", String.Escape), + (r'[^$`"]+', String.Double), + (r'\$\(', Punctuation, 'child'), + (r'""', String.Double), + (r'[`$]', String.Double), + (r'"', String.Double, '#pop'), + ], + 'heredoc-double': [ + (r'\n"@', String.Heredoc, '#pop'), + (r'\$\(', Punctuation, 'child'), + (r'[^@\n]+"]', String.Heredoc), + (r".", String.Heredoc), + ] + } From 2e70b066129d6f07e38809855dd190b810ef86d2 Mon Sep 17 00:00:00 2001 From: Tim Hatch Date: Thu, 24 Apr 2014 15:40:36 -0400 Subject: [PATCH 234/709] Fix PanLexer and TcshLexer to allow inline comments without whitespace --- pygments/lexers/shell.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index c07ff6ee9a3..f809dae987e 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -296,17 +296,18 @@ class TcshLexer(RegexLexer): r'umask|unalias|uncomplete|unhash|universe|unlimit|unset|unsetenv|' r'ver|wait|warp|watchlog|where|which)\s*\b', Name.Builtin), - (r'#.*\n', Comment), + (r'#.*', Comment), (r'\\[\w\W]', String.Escape), (r'(\b\w+)(\s*)(=)', bygroups(Name.Variable, Text, Operator)), (r'[\[\]{}()=]+', Operator), (r'<<\s*(\'?)\\?(\w+)[\w\W]+?\2', String), + (r';', Punctuation), ], 'data': [ (r'(?s)"(\\\\|\\[0-7]+|\\.|[^"\\])*"', String.Double), (r"(?s)'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single), (r'\s+', Text), - (r'[^=\s\[\]{}()$"\'`\\]+', Text), + (r'[^=\s\[\]{}()$"\'`\\;#]+', Text), (r'\d+(?= |\Z)', Number), (r'\$#?(\w+|.)', Name.Variable), ], From f2949b80bd2bb9fb8e544ac2bc6ad26aeacf2ec7 Mon Sep 17 00:00:00 2001 From: David Corbett Date: Sun, 4 May 2014 22:31:44 -0400 Subject: [PATCH 235/709] Add a lexer for Jasmin --- AUTHORS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index 9ad64a4361a..7b644bb8816 100644 --- a/AUTHORS +++ b/AUTHORS @@ -28,7 +28,7 @@ Other contributors, listed alphabetically, are: * Pierre Bourdon -- bugfixes * Hiram Chirino -- Scaml and Jade lexers * Ian Cooper -- VGL lexer -* David Corbett -- Inform lexers +* David Corbett -- Inform and Jasmin lexers * Leaf Corcoran -- MoonScript lexer * Christopher Creutzig -- MuPAD lexer * Daniël W. Crompton - Pike lexer From 644e9405cc32772b84a72da00acf6152e27abb9b Mon Sep 17 00:00:00 2001 From: Edward O'Callaghan Date: Mon, 5 May 2014 15:18:43 +1000 Subject: [PATCH 236/709] Cryptol lexer author --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 9ad64a4361a..c10cc7c7020 100644 --- a/AUTHORS +++ b/AUTHORS @@ -166,5 +166,6 @@ Other contributors, listed alphabetically, are: * Enrique Zamudio -- Ceylon lexer * Alex Zimin -- Nemerle lexer * Rob Zimmerman -- Kal lexer +* Edward O'Callaghan -- Cryptol lexer Many thanks for all contributions! From d6110d06c04fd6886a28d351c17463b2fdad747b Mon Sep 17 00:00:00 2001 From: Edward O'Callaghan Date: Tue, 6 May 2014 18:42:14 +1000 Subject: [PATCH 237/709] fixups as per comments --- AUTHORS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index c10cc7c7020..0f46196e38b 100644 --- a/AUTHORS +++ b/AUTHORS @@ -115,6 +115,7 @@ Other contributors, listed alphabetically, are: * Jesper Noehr -- HTML formatter "anchorlinenos" * Mike Nolta -- Julia lexer * Jonas Obrist -- BBCode lexer +* Edward O'Callaghan -- Cryptol lexer * David Oliva -- Rebol lexer * Pat Pannuto -- nesC lexer * Jon Parise -- Protocol buffers lexer @@ -166,6 +167,5 @@ Other contributors, listed alphabetically, are: * Enrique Zamudio -- Ceylon lexer * Alex Zimin -- Nemerle lexer * Rob Zimmerman -- Kal lexer -* Edward O'Callaghan -- Cryptol lexer Many thanks for all contributions! From cf19502bfac9b8835e8682b5fdf280d194dcceed Mon Sep 17 00:00:00 2001 From: Andrew Pinkham Date: Tue, 6 May 2014 10:54:01 -0500 Subject: [PATCH 238/709] Added self (Andrew Pinkham) to AUTHORS. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 9ad64a4361a..0694b9cb2cc 100644 --- a/AUTHORS +++ b/AUTHORS @@ -121,6 +121,7 @@ Other contributors, listed alphabetically, are: * Ronny Pfannschmidt -- BBCode lexer * Benjamin Peterson -- Test suite refactoring * Dominik Picheta -- Nimrod lexer +* Andrew Pinkham -- RTF Formatter Refactoring * Clément Prévost -- UrbiScript lexer * raichoo -- Idris lexer * Kashif Rasul -- CUDA lexer From 873b5e5d570ed264efdd5b83187530e7b2016814 Mon Sep 17 00:00:00 2001 From: Gaurav Jain Date: Wed, 14 May 2014 22:08:28 -0400 Subject: [PATCH 239/709] Replace all occurences of [a-zA-Z0-9_] with \w --- pygments/lexers/shell.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index f809dae987e..13201912ea2 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -79,7 +79,7 @@ class BashLexer(RegexLexer): 'curly': [ (r'}', Keyword, '#pop'), (r':-', Keyword), - (r'[a-zA-Z0-9_]+', Name.Variable), + (r'\w+', Name.Variable), (r'[^}:"\'`$]+', Punctuation), (r':', Punctuation), include('root'), @@ -314,7 +314,7 @@ class TcshLexer(RegexLexer): 'curly': [ (r'}', Keyword, '#pop'), (r':-', Keyword), - (r'[a-zA-Z0-9_]+', Name.Variable), + (r'\w+', Name.Variable), (r'[^}:"\'`$]+', Punctuation), (r':', Punctuation), include('root'), From 40d441296433abc347559c557be72d907c0c292f Mon Sep 17 00:00:00 2001 From: Gaurav Jain Date: Thu, 15 May 2014 23:52:25 -0400 Subject: [PATCH 240/709] Replace a-z0-9_ with \w when IGNORECASE is set --- pygments/lexers/shell.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 13201912ea2..df9b56f4c01 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -390,13 +390,13 @@ class PowerShellLexer(RegexLexer): (r'`[\'"$@-]', Punctuation), (r'"', String.Double, 'string'), (r"'([^']|'')*'", String.Single), - (r'(\$|@@|@)((global|script|private|env):)?[a-z0-9_]+', + (r'(\$|@@|@)((global|script|private|env):)?\w+', Name.Variable), (r'(%s)\b' % '|'.join(keywords), Keyword), (r'-(%s)\b' % '|'.join(operators), Operator), - (r'(%s)-[a-z_][a-z0-9_]*\b' % '|'.join(verbs), Name.Builtin), - (r'\[[a-z_\[][a-z0-9_. `,\[\]]*\]', Name.Constant), # .net [type]s - (r'-[a-z_][a-z0-9_]*', Name), + (r'(%s)-[a-z_]\w*\b' % '|'.join(verbs), Name.Builtin), + (r'\[[a-z_\[][\w. `,\[\]]*\]', Name.Constant), # .net [type]s + (r'-[a-z_]\w*', Name), (r'\w+', Name), (r'[.,;@{}\[\]$()=+*/\\&%!~?^`|<>-]|::', Punctuation), ], From 9baff15c23eb2a44f1db6d5f5a3c7a7c77f75f45 Mon Sep 17 00:00:00 2001 From: Alexei Sholik Date: Thu, 5 Jun 2014 04:07:19 +0300 Subject: [PATCH 241/709] Update ElixirLexer and example_elixir.ex Elixir syntax has evolved quite significantly since the initial lexer was written. In this update I have rewritten most of the code to support modern Elixir (as of v0.14.0-dev). The example file has also been updated to give an quick overview of most of the language constructs. --- AUTHORS | 172 ++++++++++++++++ LICENSE | 25 +++ pygments/lexers/shell.py | 427 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 624 insertions(+) create mode 100644 AUTHORS create mode 100644 LICENSE create mode 100644 pygments/lexers/shell.py diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 00000000000..1bedef4b35d --- /dev/null +++ b/AUTHORS @@ -0,0 +1,172 @@ +Pygments is written and maintained by Georg Brandl . + +Major developers are Tim Hatch and Armin Ronacher +. + +Other contributors, listed alphabetically, are: + +* Sam Aaron -- Ioke lexer +* Ali Afshar -- image formatter +* Thomas Aglassinger -- Rexx lexer +* Kumar Appaiah -- Debian control lexer +* Andreas Amann -- AppleScript lexer +* Timothy Armstrong -- Dart lexer fixes +* Jeffrey Arnold -- R/S, Rd, BUGS, Jags, and Stan lexers +* Jeremy Ashkenas -- CoffeeScript lexer +* Stefan Matthias Aust -- Smalltalk lexer +* Ben Bangert -- Mako lexers +* Max Battcher -- Darcs patch lexer +* Thomas Baruchel -- APL lexer +* Tim Baumann -- (Literate) Agda lexer +* Paul Baumgart, 280 North, Inc. -- Objective-J lexer +* Michael Bayer -- Myghty lexers +* John Benediktsson -- Factor lexer +* Christopher Bertels -- Fancy lexer +* Jarrett Billingsley -- MiniD lexer +* Adam Blinkinsop -- Haskell, Redcode lexers +* Frits van Bommel -- assembler lexers +* Pierre Bourdon -- bugfixes +* Hiram Chirino -- Scaml and Jade lexers +* Ian Cooper -- VGL lexer +* David Corbett -- Inform and Jasmin lexers +* Leaf Corcoran -- MoonScript lexer +* Christopher Creutzig -- MuPAD lexer +* Daniël W. Crompton - Pike lexer +* Pete Curry -- bugfixes +* Bryan Davis -- EBNF lexer +* Owen Durni -- Haxe lexer +* Alexander Dutton, Oxford University Computing Services -- SPARQL lexer +* Nick Efford -- Python 3 lexer +* Sven Efftinge -- Xtend lexer +* Artem Egorkine -- terminal256 formatter +* James H. Fisher -- PostScript lexer +* William S. Fulton -- SWIG lexer +* Carlos Galdino -- Elixir and Elixir Console lexers +* Michael Galloy -- IDL lexer +* Naveen Garg -- Autohotkey lexer +* Laurent Gautier -- R/S lexer +* Alex Gaynor -- PyPy log lexer +* Richard Gerkin -- Igor Pro lexer +* Alain Gilbert -- TypeScript lexer +* Alex Gilding -- BlitzBasic lexer +* Bertrand Goetzmann -- Groovy lexer +* Krzysiek Goj -- Scala lexer +* Matt Good -- Genshi, Cheetah lexers +* Michał Górny -- vim modeline support +* Patrick Gotthardt -- PHP namespaces support +* Olivier Guibe -- Asymptote lexer +* Jordi Gutiérrez Hermoso -- Octave lexer +* Martin Harriman -- SNOBOL lexer +* Matthew Harrison -- SVG formatter +* Steven Hazel -- Tcl lexer +* Aslak Hellesøy -- Gherkin lexer +* Greg Hendershott -- Racket lexer +* David Hess, Fish Software, Inc. -- Objective-J lexer +* Varun Hiremath -- Debian control lexer +* Rob Hoelz -- Perl 6 lexer +* Doug Hogan -- Mscgen lexer +* Ben Hollis -- Mason lexer +* Max Horn -- GAP lexer +* Dustin Howett -- Logos lexer +* Alastair Houghton -- Lexer inheritance facility +* Tim Howard -- BlitzMax lexer +* Ivan Inozemtsev -- Fantom lexer +* Brian R. Jackson -- Tea lexer +* Christian Jann -- ShellSession lexer +* Dennis Kaarsemaker -- sources.list lexer +* Dmitri Kabak - Inferno Limbo lexer +* Igor Kalnitsky -- vhdl lexer +* Alexander Kit -- MaskJS lexer +* Pekka Klärck -- Robot Framework lexer +* Eric Knibbe -- Lasso lexer +* Stepan Koltsov -- Clay lexer +* Adam Koprowski -- Opa lexer +* Benjamin Kowarsch -- Modula-2 lexer +* Domen Kožar -- Nix lexer +* Alexander Kriegisch -- Kconfig and AspectJ lexers +* Marek Kubica -- Scheme lexer +* Jochen Kupperschmidt -- Markdown processor +* Gerd Kurzbach -- Modelica lexer +* Jon Larimer, Google Inc. -- Smali lexer +* Olov Lassus -- Dart lexer +* Sylvestre Ledru -- Scilab lexer +* Mark Lee -- Vala lexer +* Ben Mabey -- Gherkin lexer +* Angus MacArthur -- QML lexer +* Louis Marchand -- Eiffel lexer +* Simone Margaritelli -- Hybris lexer +* Kirk McDonald -- D lexer +* Gordon McGregor -- SystemVerilog lexer +* Stephen McKamey -- Duel/JBST lexer +* Brian McKenna -- F# lexer +* Charles McLaughlin -- Puppet lexer +* Lukas Meuser -- BBCode formatter, Lua lexer +* Cat Miller -- Pig lexer +* Paul Miller -- LiveScript lexer +* Hong Minhee -- HTTP lexer +* Michael Mior -- Awk lexer +* Bruce Mitchener -- Dylan lexer rewrite +* Reuben Morais -- SourcePawn lexer +* Jon Morton -- Rust lexer +* Paulo Moura -- Logtalk lexer +* Mher Movsisyan -- DTD lexer +* Ana Nelson -- Ragel, ANTLR, R console lexers +* Nam T. Nguyen -- Monokai style +* Jesper Noehr -- HTML formatter "anchorlinenos" +* Mike Nolta -- Julia lexer +* Jonas Obrist -- BBCode lexer +* Edward O'Callaghan -- Cryptol lexer +* David Oliva -- Rebol lexer +* Pat Pannuto -- nesC lexer +* Jon Parise -- Protocol buffers lexer +* Ronny Pfannschmidt -- BBCode lexer +* Benjamin Peterson -- Test suite refactoring +* Dominik Picheta -- Nimrod lexer +* Andrew Pinkham -- RTF Formatter Refactoring +* Clément Prévost -- UrbiScript lexer +* raichoo -- Idris lexer +* Kashif Rasul -- CUDA lexer +* Justin Reidy -- MXML lexer +* Norman Richards -- JSON lexer +* Corey Richardson -- Rust lexer updates +* Lubomir Rintel -- GoodData MAQL and CL lexers +* Andre Roberge -- Tango style +* Konrad Rudolph -- LaTeX formatter enhancements +* Mario Ruggier -- Evoque lexers +* Stou Sandalski -- NumPy, FORTRAN, tcsh and XSLT lexers +* Matteo Sasso -- Common Lisp lexer +* Joe Schafer -- Ada lexer +* Ken Schutte -- Matlab lexers +* Tassilo Schweyer -- Io, MOOCode lexers +* Ted Shaw -- AutoIt lexer +* Joerg Sieker -- ABAP lexer +* Robert Simmons -- Standard ML lexer +* Kirill Simonov -- YAML lexer +* Alexander Smishlajev -- Visual FoxPro lexer +* Steve Spigarelli -- XQuery lexer +* Jerome St-Louis -- eC lexer +* James Strachan -- Kotlin lexer +* Tom Stuart -- Treetop lexer +* Tiberius Teng -- default style overhaul +* Jeremy Thurgood -- Erlang, Squid config lexers +* Brian Tiffin -- OpenCOBOL lexer +* Bob Tolbert -- Hy lexer +* Erick Tryzelaar -- Felix lexer +* Alexander Udalov -- Kotlin lexer improvements +* Thomas Van Doren -- Chapel lexer +* Daniele Varrazzo -- PostgreSQL lexers +* Abe Voelker -- OpenEdge ABL lexer +* Pepijn de Vos -- HTML formatter CTags support +* Whitney Young -- ObjectiveC lexer +* Matthias Vallentin -- Bro lexer +* Linh Vu Hong -- RSL lexer +* Nathan Weizenbaum -- Haml and Sass lexers +* Dietmar Winkler -- Modelica lexer +* Nils Winter -- Smalltalk lexer +* Davy Wybiral -- Clojure lexer +* Diego Zamboni -- CFengine3 lexer +* Enrique Zamudio -- Ceylon lexer +* Alex Zimin -- Nemerle lexer +* Rob Zimmerman -- Kal lexer + +Many thanks for all contributions! diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000000..641c8e8e702 --- /dev/null +++ b/LICENSE @@ -0,0 +1,25 @@ +Copyright (c) 2006-2014 by the respective authors (see AUTHORS file). +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +* Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py new file mode 100644 index 00000000000..df9b56f4c01 --- /dev/null +++ b/pygments/lexers/shell.py @@ -0,0 +1,427 @@ +# -*- coding: utf-8 -*- +""" + pygments.lexers.shell + ~~~~~~~~~~~~~~~~~~~~~ + + Lexers for various shells. + + :copyright: Copyright 2006-2014 by the Pygments team, see AUTHORS. + :license: BSD, see LICENSE for details. +""" + +import re + +from pygments.lexer import Lexer, RegexLexer, do_insertions, bygroups, include +from pygments.token import Punctuation, \ + Text, Comment, Operator, Keyword, Name, String, Number, Generic +from pygments.util import shebang_matches + + +__all__ = ['BashLexer', 'BashSessionLexer', 'TcshLexer', 'BatchLexer', + 'PowerShellLexer', 'ShellSessionLexer'] + +line_re = re.compile('.*?\n') + + +class BashLexer(RegexLexer): + """ + Lexer for (ba|k|)sh shell scripts. + + .. versionadded:: 0.6 + """ + + name = 'Bash' + aliases = ['bash', 'sh', 'ksh'] + filenames = ['*.sh', '*.ksh', '*.bash', '*.ebuild', '*.eclass', + '.bashrc', 'bashrc', '.bash_*', 'bash_*', 'PKGBUILD'] + mimetypes = ['application/x-sh', 'application/x-shellscript'] + + tokens = { + 'root': [ + include('basic'), + (r'\$\(\(', Keyword, 'math'), + (r'\$\(', Keyword, 'paren'), + (r'\${#?', Keyword, 'curly'), + (r'`', String.Backtick, 'backticks'), + include('data'), + ], + 'basic': [ + (r'\b(if|fi|else|while|do|done|for|then|return|function|case|' + r'select|continue|until|esac|elif)(\s*)\b', + bygroups(Keyword, Text)), + (r'\b(alias|bg|bind|break|builtin|caller|cd|command|compgen|' + r'complete|declare|dirs|disown|echo|enable|eval|exec|exit|' + r'export|false|fc|fg|getopts|hash|help|history|jobs|kill|let|' + r'local|logout|popd|printf|pushd|pwd|read|readonly|set|shift|' + r'shopt|source|suspend|test|time|times|trap|true|type|typeset|' + r'ulimit|umask|unalias|unset|wait)\s*\b(?!\.)', + Name.Builtin), + (r'#.*\n', Comment), + (r'\\[\w\W]', String.Escape), + (r'(\b\w+)(\s*)(=)', bygroups(Name.Variable, Text, Operator)), + (r'[\[\]{}()=]', Operator), + (r'<<<', Operator), # here-string + (r'<<-?\s*(\'?)\\?(\w+)[\w\W]+?\2', String), + (r'&&|\|\|', Operator), + ], + 'data': [ + (r'(?s)\$?"(\\\\|\\[0-7]+|\\.|[^"\\])*"', String.Double), + (r"(?s)\$?'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single), + (r';', Punctuation), + (r'&', Punctuation), + (r'\|', Punctuation), + (r'\s+', Text), + (r'\d+(?= |\Z)', Number), + (r'[^=\s\[\]{}()$"\'`\\<&|;]+', Text), + (r'\$#?(\w+|.)', Name.Variable), + (r'<', Text), + ], + 'curly': [ + (r'}', Keyword, '#pop'), + (r':-', Keyword), + (r'\w+', Name.Variable), + (r'[^}:"\'`$]+', Punctuation), + (r':', Punctuation), + include('root'), + ], + 'paren': [ + (r'\)', Keyword, '#pop'), + include('root'), + ], + 'math': [ + (r'\)\)', Keyword, '#pop'), + (r'[-+*/%^|&]|\*\*|\|\|', Operator), + (r'\d+#\d+', Number), + (r'\d+#(?! )', Number), + (r'\d+', Number), + include('root'), + ], + 'backticks': [ + (r'`', String.Backtick, '#pop'), + include('root'), + ], + } + + def analyse_text(text): + if shebang_matches(text, r'(ba|z|)sh'): + return 1 + if text.startswith('$ '): + return 0.2 + + +class BashSessionLexer(Lexer): + """ + Lexer for simplistic shell sessions. + + .. versionadded:: 1.1 + """ + + name = 'Bash Session' + aliases = ['console'] + filenames = ['*.sh-session'] + mimetypes = ['application/x-shell-session'] + + def get_tokens_unprocessed(self, text): + bashlexer = BashLexer(**self.options) + + pos = 0 + curcode = '' + insertions = [] + + for match in line_re.finditer(text): + line = match.group() + m = re.match(r'^((?:\(\S+\))?(?:|sh\S*?|\w+\S+[@:]\S+(?:\s+\S+)' + r'?|\[\S+[@:][^\n]+\].+)[$#%])(.*\n?)' , line) + if m: + # To support output lexers (say diff output), the output + # needs to be broken by prompts whenever the output lexer + # changes. + if not insertions: + pos = match.start() + + insertions.append((len(curcode), + [(0, Generic.Prompt, m.group(1))])) + curcode += m.group(2) + elif line.startswith('>'): + insertions.append((len(curcode), + [(0, Generic.Prompt, line[:1])])) + curcode += line[1:] + else: + if insertions: + toks = bashlexer.get_tokens_unprocessed(curcode) + for i, t, v in do_insertions(insertions, toks): + yield pos+i, t, v + yield match.start(), Generic.Output, line + insertions = [] + curcode = '' + if insertions: + for i, t, v in do_insertions(insertions, + bashlexer.get_tokens_unprocessed(curcode)): + yield pos+i, t, v + + +class ShellSessionLexer(Lexer): + """ + Lexer for shell sessions that works with different command prompts + + .. versionadded:: 1.6 + """ + + name = 'Shell Session' + aliases = ['shell-session'] + filenames = ['*.shell-session'] + mimetypes = ['application/x-sh-session'] + + def get_tokens_unprocessed(self, text): + bashlexer = BashLexer(**self.options) + + pos = 0 + curcode = '' + insertions = [] + + for match in line_re.finditer(text): + line = match.group() + m = re.match(r'^((?:\[?\S+@[^$#%]+\]?\s*)[$#%])(.*\n?)', line) + if m: + # To support output lexers (say diff output), the output + # needs to be broken by prompts whenever the output lexer + # changes. + if not insertions: + pos = match.start() + + insertions.append((len(curcode), + [(0, Generic.Prompt, m.group(1))])) + curcode += m.group(2) + else: + if insertions: + toks = bashlexer.get_tokens_unprocessed(curcode) + for i, t, v in do_insertions(insertions, toks): + yield pos+i, t, v + yield match.start(), Generic.Output, line + insertions = [] + curcode = '' + if insertions: + for i, t, v in do_insertions(insertions, + bashlexer.get_tokens_unprocessed(curcode)): + yield pos+i, t, v + + +class BatchLexer(RegexLexer): + """ + Lexer for the DOS/Windows Batch file format. + + .. versionadded:: 0.7 + """ + name = 'Batchfile' + aliases = ['bat', 'batch', 'dosbatch', 'winbatch'] + filenames = ['*.bat', '*.cmd'] + mimetypes = ['application/x-dos-batch'] + + flags = re.MULTILINE | re.IGNORECASE + + tokens = { + 'root': [ + # Lines can start with @ to prevent echo + (r'^\s*@', Punctuation), + (r'^(\s*)(rem\s.*)$', bygroups(Text, Comment)), + (r'".*?"', String.Double), + (r"'.*?'", String.Single), + # If made more specific, make sure you still allow expansions + # like %~$VAR:zlt + (r'%%?[~$:\w]+%?', Name.Variable), + (r'::.*', Comment), # Technically :: only works at BOL + (r'\b(set)(\s+)(\w+)', bygroups(Keyword, Text, Name.Variable)), + (r'\b(call)(\s+)(:\w+)', bygroups(Keyword, Text, Name.Label)), + (r'\b(goto)(\s+)(\w+)', bygroups(Keyword, Text, Name.Label)), + (r'\b(set|call|echo|on|off|endlocal|for|do|goto|if|pause|' + r'setlocal|shift|errorlevel|exist|defined|cmdextversion|' + r'errorlevel|else|cd|md|del|deltree|cls|choice)\b', Keyword), + (r'\b(equ|neq|lss|leq|gtr|geq)\b', Operator), + include('basic'), + (r'.', Text), + ], + 'echo': [ + # Escapes only valid within echo args? + (r'\^\^|\^<|\^>|\^\|', String.Escape), + (r'\n', Text, '#pop'), + include('basic'), + (r'[^\'"^]+', Text), + ], + 'basic': [ + (r'".*?"', String.Double), + (r"'.*?'", String.Single), + (r'`.*?`', String.Backtick), + (r'-?\d+', Number), + (r',', Punctuation), + (r'=', Operator), + (r'/\S+', Name), + (r':\w+', Name.Label), + (r'\w:\w+', Text), + (r'([<>|])(\s*)(\w+)', bygroups(Punctuation, Text, Name)), + ], + } + + +class TcshLexer(RegexLexer): + """ + Lexer for tcsh scripts. + + .. versionadded:: 0.10 + """ + + name = 'Tcsh' + aliases = ['tcsh', 'csh'] + filenames = ['*.tcsh', '*.csh'] + mimetypes = ['application/x-csh'] + + tokens = { + 'root': [ + include('basic'), + (r'\$\(', Keyword, 'paren'), + (r'\${#?', Keyword, 'curly'), + (r'`', String.Backtick, 'backticks'), + include('data'), + ], + 'basic': [ + (r'\b(if|endif|else|while|then|foreach|case|default|' + r'continue|goto|breaksw|end|switch|endsw)\s*\b', + Keyword), + (r'\b(alias|alloc|bg|bindkey|break|builtins|bye|caller|cd|chdir|' + r'complete|dirs|echo|echotc|eval|exec|exit|fg|filetest|getxvers|' + r'glob|getspath|hashstat|history|hup|inlib|jobs|kill|' + r'limit|log|login|logout|ls-F|migrate|newgrp|nice|nohup|notify|' + r'onintr|popd|printenv|pushd|rehash|repeat|rootnode|popd|pushd|' + r'set|shift|sched|setenv|setpath|settc|setty|setxvers|shift|' + r'source|stop|suspend|source|suspend|telltc|time|' + r'umask|unalias|uncomplete|unhash|universe|unlimit|unset|unsetenv|' + r'ver|wait|warp|watchlog|where|which)\s*\b', + Name.Builtin), + (r'#.*', Comment), + (r'\\[\w\W]', String.Escape), + (r'(\b\w+)(\s*)(=)', bygroups(Name.Variable, Text, Operator)), + (r'[\[\]{}()=]+', Operator), + (r'<<\s*(\'?)\\?(\w+)[\w\W]+?\2', String), + (r';', Punctuation), + ], + 'data': [ + (r'(?s)"(\\\\|\\[0-7]+|\\.|[^"\\])*"', String.Double), + (r"(?s)'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single), + (r'\s+', Text), + (r'[^=\s\[\]{}()$"\'`\\;#]+', Text), + (r'\d+(?= |\Z)', Number), + (r'\$#?(\w+|.)', Name.Variable), + ], + 'curly': [ + (r'}', Keyword, '#pop'), + (r':-', Keyword), + (r'\w+', Name.Variable), + (r'[^}:"\'`$]+', Punctuation), + (r':', Punctuation), + include('root'), + ], + 'paren': [ + (r'\)', Keyword, '#pop'), + include('root'), + ], + 'backticks': [ + (r'`', String.Backtick, '#pop'), + include('root'), + ], + } + + +class PowerShellLexer(RegexLexer): + """ + For Windows PowerShell code. + + .. versionadded:: 1.5 + """ + name = 'PowerShell' + aliases = ['powershell', 'posh', 'ps1', 'psm1'] + filenames = ['*.ps1','*.psm1'] + mimetypes = ['text/x-powershell'] + + flags = re.DOTALL | re.IGNORECASE | re.MULTILINE + + keywords = ( + 'while validateset validaterange validatepattern validatelength ' + 'validatecount until trap switch return ref process param parameter in ' + 'if global: function foreach for finally filter end elseif else ' + 'dynamicparam do default continue cmdletbinding break begin alias \\? ' + '% #script #private #local #global mandatory parametersetname position ' + 'valuefrompipeline valuefrompipelinebypropertyname ' + 'valuefromremainingarguments helpmessage try catch throw').split() + + operators = ( + 'and as band bnot bor bxor casesensitive ccontains ceq cge cgt cle ' + 'clike clt cmatch cne cnotcontains cnotlike cnotmatch contains ' + 'creplace eq exact f file ge gt icontains ieq ige igt ile ilike ilt ' + 'imatch ine inotcontains inotlike inotmatch ireplace is isnot le like ' + 'lt match ne not notcontains notlike notmatch or regex replace ' + 'wildcard').split() + + verbs = ( + 'write where wait use update unregister undo trace test tee take ' + 'suspend stop start split sort skip show set send select scroll resume ' + 'restore restart resolve resize reset rename remove register receive ' + 'read push pop ping out new move measure limit join invoke import ' + 'group get format foreach export expand exit enter enable disconnect ' + 'disable debug cxnew copy convertto convertfrom convert connect ' + 'complete compare clear checkpoint aggregate add').split() + + commenthelp = ( + 'component description example externalhelp forwardhelpcategory ' + 'forwardhelptargetname functionality inputs link ' + 'notes outputs parameter remotehelprunspace role synopsis').split() + + tokens = { + 'root': [ + # we need to count pairs of parentheses for correct highlight + # of '$(...)' blocks in strings + (r'\(', Punctuation, 'child'), + (r'\s+', Text), + (r'^(\s*#[#\s]*)(\.(?:%s))([^\n]*$)' % '|'.join(commenthelp), + bygroups(Comment, String.Doc, Comment)), + (r'#[^\n]*?$', Comment), + (r'(<|<)#', Comment.Multiline, 'multline'), + (r'@"\n', String.Heredoc, 'heredoc-double'), + (r"@'\n.*?\n'@", String.Heredoc), + # escaped syntax + (r'`[\'"$@-]', Punctuation), + (r'"', String.Double, 'string'), + (r"'([^']|'')*'", String.Single), + (r'(\$|@@|@)((global|script|private|env):)?\w+', + Name.Variable), + (r'(%s)\b' % '|'.join(keywords), Keyword), + (r'-(%s)\b' % '|'.join(operators), Operator), + (r'(%s)-[a-z_]\w*\b' % '|'.join(verbs), Name.Builtin), + (r'\[[a-z_\[][\w. `,\[\]]*\]', Name.Constant), # .net [type]s + (r'-[a-z_]\w*', Name), + (r'\w+', Name), + (r'[.,;@{}\[\]$()=+*/\\&%!~?^`|<>-]|::', Punctuation), + ], + 'child': [ + (r'\)', Punctuation, '#pop'), + include('root'), + ], + 'multline': [ + (r'[^#&.]+', Comment.Multiline), + (r'#(>|>)', Comment.Multiline, '#pop'), + (r'\.(%s)' % '|'.join(commenthelp), String.Doc), + (r'[#&.]', Comment.Multiline), + ], + 'string': [ + (r"`[0abfnrtv'\"\$`]", String.Escape), + (r'[^$`"]+', String.Double), + (r'\$\(', Punctuation, 'child'), + (r'""', String.Double), + (r'[`$]', String.Double), + (r'"', String.Double, '#pop'), + ], + 'heredoc-double': [ + (r'\n"@', String.Heredoc, '#pop'), + (r'\$\(', Punctuation, 'child'), + (r'[^@\n]+"]', String.Heredoc), + (r".", String.Heredoc), + ] + } From a031c41ce570320c09a4b14cb826c4645b68dc4e Mon Sep 17 00:00:00 2001 From: "George V. Reilly" Date: Wed, 18 Jun 2014 19:47:53 -0700 Subject: [PATCH 242/709] Use optparse for the pip2pi, dir2pi, and pip2tgz commands. --- libpip2pi/__init__.py | 2 +- libpip2pi/commands.py | 44 ++++++++++++++++++++++++++----------------- 2 files changed, 28 insertions(+), 18 deletions(-) diff --git a/libpip2pi/__init__.py b/libpip2pi/__init__.py index c1d04240929..a8021bf1e14 100644 --- a/libpip2pi/__init__.py +++ b/libpip2pi/__init__.py @@ -1 +1 @@ -__version__ = (0, 6, 2) +__version__ = (0, 6, 3) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index ba5db54b916..fdef951fdf1 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -9,6 +9,7 @@ from subprocess import check_call import pkg_resources import glob +import optparse try: import wheel as _; _ @@ -135,11 +136,16 @@ def pip_run_command(pip_args): %(res, pip_args)) -def dir2pi(argv=sys.argv): - if len(argv) != 2: - print(dedent(""" - usage: dir2pi PACKAGE_DIR +class OptionParser(optparse.OptionParser): + def format_description(self, formatter): + # Parent implementation reformats all the hard line breaks + return self.get_description() + "\n" + +def dir2pi(argv=sys.argv): + parser = OptionParser( + usage="usage: %prog PACKAGE_DIR", + description=dedent(""" Creates the directory PACKAGE_DIR/simple/ and populates it with the directory structure required to use with pip's --index-url. @@ -148,7 +154,7 @@ def dir2pi(argv=sys.argv): 'foo-bar-1.3rc1.bz2'). This makes the most sense if PACKAGE_DIR is somewhere inside a - webserver's inside htdocs directory. + webserver's htdocs directory. For example: @@ -163,7 +169,10 @@ def dir2pi(argv=sys.argv): packages/simple/foo/index.html packages/simple/foo/foo-1.2.tar.gz """)) - return 1 + option, argv = parser.parse_args(argv) + if len(argv) != 2: + parser.print_help() + pkgdir = argv[1] if not os.path.isdir(pkgdir): raise ValueError("no such directory: %r" %(pkgdir, )) @@ -212,11 +221,9 @@ def globall(globs): @maintain_cwd def pip2tgz(argv=sys.argv): glob_exts = ['*.whl', '*.tgz', '*.gz'] - - if len(argv) < 3: - print(dedent(""" - usage: pip2tgz OUTPUT_DIRECTORY PACKAGE_NAME ... - + parser = OptionParser( + usage="usage: %prog OUTPUT_DIRECTORY PACKAGE_NAME ...", + description=dedent(""" Where PACKAGE_NAMES are any names accepted by pip (ex, `foo`, `foo==1.2`, `-r requirements.txt`). @@ -227,7 +234,9 @@ def pip2tgz(argv=sys.argv): $ pip2tgz /var/www/packages/ -r requirements.txt foo==1.2 baz/ """)) - return 1 + option, argv = parser.parse_args(argv) + if len(argv) < 3: + parser.print_help() outdir = os.path.abspath(argv[1]) if not os.path.exists(outdir): @@ -299,10 +308,9 @@ def handle_new_wheels(outdir, new_wheels): ]) def pip2pi(argv=sys.argv): - if len(argv) < 3: - print(dedent(""" - usage: pip2pi TARGET PACKAGE_NAME ... - + parser = OptionParser( + usage="usage: %prog TARGET PACKAGE_NAME ...", + description=dedent(""" Combines pip2tgz and dir2pi, adding PACKAGE_NAME to package index TARGET. @@ -318,7 +326,9 @@ def pip2pi(argv=sys.argv): $ pip2pi ~/Sites/packages/ foo==1.2 """)) - return 1 + option, argv = parser.parse_args(argv) + if len(argv) < 3: + parser.print_help() target = argv[1] pip_packages = argv[2:] From 273e821ef62a983942bab9d47a0e2b69682bc432 Mon Sep 17 00:00:00 2001 From: "George V. Reilly" Date: Wed, 18 Jun 2014 20:11:30 -0700 Subject: [PATCH 243/709] Add --symlink and --no-symlink. I need to create a local PyPI on Mac and Linux machines, which will be checked into Git, then used on Windows machines. Msysgit doesn't support symlinks, so I have to copy files into PACKAGE_DIR/simple/. Since the copy resolves to the same file object, as they have identical hashes, no space is wasted in Git. --- libpip2pi/commands.py | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index fdef951fdf1..cd32ba9fd2d 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -136,13 +136,24 @@ def pip_run_command(pip_args): %(res, pip_args)) +UseSymlink = hasattr(os, "symlink") + + class OptionParser(optparse.OptionParser): def format_description(self, formatter): # Parent implementation reformats all the hard line breaks return self.get_description() + "\n" + def add_symlink_option(self, use_symlink): + self.add_option('-s', '--symlink', dest="use_symlink", + default=use_symlink, action="store_true", + help="Use symlinks in PACKAGE_DIR/simple/ " + "rather than copying files. Default: %default") + self.add_option('-S', '--no-symlink', dest="use_symlink", + action="store_false") + -def dir2pi(argv=sys.argv): +def dir2pi(argv=sys.argv, use_symlink=UseSymlink): parser = OptionParser( usage="usage: %prog PACKAGE_DIR", description=dedent(""" @@ -169,9 +180,12 @@ def dir2pi(argv=sys.argv): packages/simple/foo/index.html packages/simple/foo/foo-1.2.tar.gz """)) + parser.add_symlink_option(use_symlink) + option, argv = parser.parse_args(argv) if len(argv) != 2: parser.print_help() + parser.exit() pkgdir = argv[1] if not os.path.isdir(pkgdir): @@ -197,7 +211,7 @@ def dir2pi(argv=sys.argv): pkg_new_basename = "-".join([pkg_name, pkg_rest]) symlink_target = os.path.join(pkg_dir, pkg_new_basename) symlink_source = os.path.join("../../", pkg_basename) - if hasattr(os, "symlink"): + if option.use_symlink and UseSymlink: os.symlink(symlink_source, symlink_target) else: shutil.copy2(pkg_filepath, symlink_target) @@ -234,9 +248,11 @@ def pip2tgz(argv=sys.argv): $ pip2tgz /var/www/packages/ -r requirements.txt foo==1.2 baz/ """)) + option, argv = parser.parse_args(argv) if len(argv) < 3: parser.print_help() + parser.exit() outdir = os.path.abspath(argv[1]) if not os.path.exists(outdir): @@ -326,9 +342,12 @@ def pip2pi(argv=sys.argv): $ pip2pi ~/Sites/packages/ foo==1.2 """)) + parser.add_symlink_option(UseSymlink) + option, argv = parser.parse_args(argv) if len(argv) < 3: parser.print_help() + parser.exit() target = argv[1] pip_packages = argv[2:] @@ -345,7 +364,7 @@ def pip2pi(argv=sys.argv): print("pip2tgz returned an error; aborting.") return res - res = dir2pi([argv[0], working_dir]) + res = dir2pi([argv[0], working_dir], use_symlink=option.use_symlink) if res: print("dir2pi returned an error; aborting.") return res From 455bd47c5f6071ec5ec3fa86fe226f6ec28da6d7 Mon Sep 17 00:00:00 2001 From: "George V. Reilly" Date: Fri, 20 Jun 2014 23:26:19 -0700 Subject: [PATCH 244/709] Ignore unrecognized options so that they can be passed to pip --- libpip2pi/commands.py | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index cd32ba9fd2d..39f6124c2eb 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -139,7 +139,7 @@ def pip_run_command(pip_args): UseSymlink = hasattr(os, "symlink") -class OptionParser(optparse.OptionParser): +class Pip2PiOptionParser(optparse.OptionParser): def format_description(self, formatter): # Parent implementation reformats all the hard line breaks return self.get_description() + "\n" @@ -152,9 +152,27 @@ def add_symlink_option(self, use_symlink): self.add_option('-S', '--no-symlink', dest="use_symlink", action="store_false") + def _process_args(self, largs, rargs, values): + """ + An unknown option pass-through implementation of OptionParser. + + When unknown arguments are encountered, bundle with largs and try again, + until rargs is depleted. + + sys.exit(status) will still be called if a known argument is passed + incorrectly (e.g. missing arguments or bad argument types, etc.) + + From http://stackoverflow.com/a/9307174/6364 + """ + while rargs: + try: + optparse.OptionParser._process_args(self, largs, rargs, values) + except (optparse.BadOptionError, optparse.AmbiguousOptionError), e: + largs.append(e.opt_str) + def dir2pi(argv=sys.argv, use_symlink=UseSymlink): - parser = OptionParser( + parser = Pip2PiOptionParser( usage="usage: %prog PACKAGE_DIR", description=dedent(""" Creates the directory PACKAGE_DIR/simple/ and populates it with the @@ -235,7 +253,7 @@ def globall(globs): @maintain_cwd def pip2tgz(argv=sys.argv): glob_exts = ['*.whl', '*.tgz', '*.gz'] - parser = OptionParser( + parser = Pip2PiOptionParser( usage="usage: %prog OUTPUT_DIRECTORY PACKAGE_NAME ...", description=dedent(""" Where PACKAGE_NAMES are any names accepted by pip (ex, `foo`, @@ -324,7 +342,7 @@ def handle_new_wheels(outdir, new_wheels): ]) def pip2pi(argv=sys.argv): - parser = OptionParser( + parser = Pip2PiOptionParser( usage="usage: %prog TARGET PACKAGE_NAME ...", description=dedent(""" Combines pip2tgz and dir2pi, adding PACKAGE_NAME to package index From 99c5bea0ae99428659789020b1b56fdce424d379 Mon Sep 17 00:00:00 2001 From: "George V. Reilly" Date: Fri, 20 Jun 2014 23:34:42 -0700 Subject: [PATCH 245/709] Use Py3K-compatible exception-handling syntax --- libpip2pi/commands.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index 39f6124c2eb..5e4f9cfdc8c 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -167,7 +167,7 @@ def _process_args(self, largs, rargs, values): while rargs: try: optparse.OptionParser._process_args(self, largs, rargs, values) - except (optparse.BadOptionError, optparse.AmbiguousOptionError), e: + except (optparse.BadOptionError, optparse.AmbiguousOptionError) as e: largs.append(e.opt_str) From e8dd80462d5816fda2671cb75541157651a5520c Mon Sep 17 00:00:00 2001 From: "George V. Reilly" Date: Sat, 21 Jun 2014 01:17:15 -0700 Subject: [PATCH 246/709] s/UseSymlink/OS_HAS_SYMLINK/ --- libpip2pi/commands.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index 5e4f9cfdc8c..bc175a6ce29 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -136,7 +136,7 @@ def pip_run_command(pip_args): %(res, pip_args)) -UseSymlink = hasattr(os, "symlink") +OS_HAS_SYMLINK = hasattr(os, "symlink") class Pip2PiOptionParser(optparse.OptionParser): @@ -171,7 +171,7 @@ def _process_args(self, largs, rargs, values): largs.append(e.opt_str) -def dir2pi(argv=sys.argv, use_symlink=UseSymlink): +def dir2pi(argv=sys.argv, use_symlink=OS_HAS_SYMLINK): parser = Pip2PiOptionParser( usage="usage: %prog PACKAGE_DIR", description=dedent(""" @@ -229,7 +229,7 @@ def dir2pi(argv=sys.argv, use_symlink=UseSymlink): pkg_new_basename = "-".join([pkg_name, pkg_rest]) symlink_target = os.path.join(pkg_dir, pkg_new_basename) symlink_source = os.path.join("../../", pkg_basename) - if option.use_symlink and UseSymlink: + if option.use_symlink and OS_HAS_SYMLINK: os.symlink(symlink_source, symlink_target) else: shutil.copy2(pkg_filepath, symlink_target) @@ -360,7 +360,7 @@ def pip2pi(argv=sys.argv): $ pip2pi ~/Sites/packages/ foo==1.2 """)) - parser.add_symlink_option(UseSymlink) + parser.add_symlink_option(OS_HAS_SYMLINK) option, argv = parser.parse_args(argv) if len(argv) < 3: From 48651e57f1bb997ffab6b61f71b8b5f36cb83dbd Mon Sep 17 00:00:00 2001 From: Alexei Sholik Date: Fri, 27 Jun 2014 02:40:40 +0300 Subject: [PATCH 247/709] Fix regular expressions for identifiers in ElixirLexer --- AUTHORS | 172 ++++++++++++++++ LICENSE | 25 +++ pygments/lexers/shell.py | 427 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 624 insertions(+) create mode 100644 AUTHORS create mode 100644 LICENSE create mode 100644 pygments/lexers/shell.py diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 00000000000..1bedef4b35d --- /dev/null +++ b/AUTHORS @@ -0,0 +1,172 @@ +Pygments is written and maintained by Georg Brandl . + +Major developers are Tim Hatch and Armin Ronacher +. + +Other contributors, listed alphabetically, are: + +* Sam Aaron -- Ioke lexer +* Ali Afshar -- image formatter +* Thomas Aglassinger -- Rexx lexer +* Kumar Appaiah -- Debian control lexer +* Andreas Amann -- AppleScript lexer +* Timothy Armstrong -- Dart lexer fixes +* Jeffrey Arnold -- R/S, Rd, BUGS, Jags, and Stan lexers +* Jeremy Ashkenas -- CoffeeScript lexer +* Stefan Matthias Aust -- Smalltalk lexer +* Ben Bangert -- Mako lexers +* Max Battcher -- Darcs patch lexer +* Thomas Baruchel -- APL lexer +* Tim Baumann -- (Literate) Agda lexer +* Paul Baumgart, 280 North, Inc. -- Objective-J lexer +* Michael Bayer -- Myghty lexers +* John Benediktsson -- Factor lexer +* Christopher Bertels -- Fancy lexer +* Jarrett Billingsley -- MiniD lexer +* Adam Blinkinsop -- Haskell, Redcode lexers +* Frits van Bommel -- assembler lexers +* Pierre Bourdon -- bugfixes +* Hiram Chirino -- Scaml and Jade lexers +* Ian Cooper -- VGL lexer +* David Corbett -- Inform and Jasmin lexers +* Leaf Corcoran -- MoonScript lexer +* Christopher Creutzig -- MuPAD lexer +* Daniël W. Crompton - Pike lexer +* Pete Curry -- bugfixes +* Bryan Davis -- EBNF lexer +* Owen Durni -- Haxe lexer +* Alexander Dutton, Oxford University Computing Services -- SPARQL lexer +* Nick Efford -- Python 3 lexer +* Sven Efftinge -- Xtend lexer +* Artem Egorkine -- terminal256 formatter +* James H. Fisher -- PostScript lexer +* William S. Fulton -- SWIG lexer +* Carlos Galdino -- Elixir and Elixir Console lexers +* Michael Galloy -- IDL lexer +* Naveen Garg -- Autohotkey lexer +* Laurent Gautier -- R/S lexer +* Alex Gaynor -- PyPy log lexer +* Richard Gerkin -- Igor Pro lexer +* Alain Gilbert -- TypeScript lexer +* Alex Gilding -- BlitzBasic lexer +* Bertrand Goetzmann -- Groovy lexer +* Krzysiek Goj -- Scala lexer +* Matt Good -- Genshi, Cheetah lexers +* Michał Górny -- vim modeline support +* Patrick Gotthardt -- PHP namespaces support +* Olivier Guibe -- Asymptote lexer +* Jordi Gutiérrez Hermoso -- Octave lexer +* Martin Harriman -- SNOBOL lexer +* Matthew Harrison -- SVG formatter +* Steven Hazel -- Tcl lexer +* Aslak Hellesøy -- Gherkin lexer +* Greg Hendershott -- Racket lexer +* David Hess, Fish Software, Inc. -- Objective-J lexer +* Varun Hiremath -- Debian control lexer +* Rob Hoelz -- Perl 6 lexer +* Doug Hogan -- Mscgen lexer +* Ben Hollis -- Mason lexer +* Max Horn -- GAP lexer +* Dustin Howett -- Logos lexer +* Alastair Houghton -- Lexer inheritance facility +* Tim Howard -- BlitzMax lexer +* Ivan Inozemtsev -- Fantom lexer +* Brian R. Jackson -- Tea lexer +* Christian Jann -- ShellSession lexer +* Dennis Kaarsemaker -- sources.list lexer +* Dmitri Kabak - Inferno Limbo lexer +* Igor Kalnitsky -- vhdl lexer +* Alexander Kit -- MaskJS lexer +* Pekka Klärck -- Robot Framework lexer +* Eric Knibbe -- Lasso lexer +* Stepan Koltsov -- Clay lexer +* Adam Koprowski -- Opa lexer +* Benjamin Kowarsch -- Modula-2 lexer +* Domen Kožar -- Nix lexer +* Alexander Kriegisch -- Kconfig and AspectJ lexers +* Marek Kubica -- Scheme lexer +* Jochen Kupperschmidt -- Markdown processor +* Gerd Kurzbach -- Modelica lexer +* Jon Larimer, Google Inc. -- Smali lexer +* Olov Lassus -- Dart lexer +* Sylvestre Ledru -- Scilab lexer +* Mark Lee -- Vala lexer +* Ben Mabey -- Gherkin lexer +* Angus MacArthur -- QML lexer +* Louis Marchand -- Eiffel lexer +* Simone Margaritelli -- Hybris lexer +* Kirk McDonald -- D lexer +* Gordon McGregor -- SystemVerilog lexer +* Stephen McKamey -- Duel/JBST lexer +* Brian McKenna -- F# lexer +* Charles McLaughlin -- Puppet lexer +* Lukas Meuser -- BBCode formatter, Lua lexer +* Cat Miller -- Pig lexer +* Paul Miller -- LiveScript lexer +* Hong Minhee -- HTTP lexer +* Michael Mior -- Awk lexer +* Bruce Mitchener -- Dylan lexer rewrite +* Reuben Morais -- SourcePawn lexer +* Jon Morton -- Rust lexer +* Paulo Moura -- Logtalk lexer +* Mher Movsisyan -- DTD lexer +* Ana Nelson -- Ragel, ANTLR, R console lexers +* Nam T. Nguyen -- Monokai style +* Jesper Noehr -- HTML formatter "anchorlinenos" +* Mike Nolta -- Julia lexer +* Jonas Obrist -- BBCode lexer +* Edward O'Callaghan -- Cryptol lexer +* David Oliva -- Rebol lexer +* Pat Pannuto -- nesC lexer +* Jon Parise -- Protocol buffers lexer +* Ronny Pfannschmidt -- BBCode lexer +* Benjamin Peterson -- Test suite refactoring +* Dominik Picheta -- Nimrod lexer +* Andrew Pinkham -- RTF Formatter Refactoring +* Clément Prévost -- UrbiScript lexer +* raichoo -- Idris lexer +* Kashif Rasul -- CUDA lexer +* Justin Reidy -- MXML lexer +* Norman Richards -- JSON lexer +* Corey Richardson -- Rust lexer updates +* Lubomir Rintel -- GoodData MAQL and CL lexers +* Andre Roberge -- Tango style +* Konrad Rudolph -- LaTeX formatter enhancements +* Mario Ruggier -- Evoque lexers +* Stou Sandalski -- NumPy, FORTRAN, tcsh and XSLT lexers +* Matteo Sasso -- Common Lisp lexer +* Joe Schafer -- Ada lexer +* Ken Schutte -- Matlab lexers +* Tassilo Schweyer -- Io, MOOCode lexers +* Ted Shaw -- AutoIt lexer +* Joerg Sieker -- ABAP lexer +* Robert Simmons -- Standard ML lexer +* Kirill Simonov -- YAML lexer +* Alexander Smishlajev -- Visual FoxPro lexer +* Steve Spigarelli -- XQuery lexer +* Jerome St-Louis -- eC lexer +* James Strachan -- Kotlin lexer +* Tom Stuart -- Treetop lexer +* Tiberius Teng -- default style overhaul +* Jeremy Thurgood -- Erlang, Squid config lexers +* Brian Tiffin -- OpenCOBOL lexer +* Bob Tolbert -- Hy lexer +* Erick Tryzelaar -- Felix lexer +* Alexander Udalov -- Kotlin lexer improvements +* Thomas Van Doren -- Chapel lexer +* Daniele Varrazzo -- PostgreSQL lexers +* Abe Voelker -- OpenEdge ABL lexer +* Pepijn de Vos -- HTML formatter CTags support +* Whitney Young -- ObjectiveC lexer +* Matthias Vallentin -- Bro lexer +* Linh Vu Hong -- RSL lexer +* Nathan Weizenbaum -- Haml and Sass lexers +* Dietmar Winkler -- Modelica lexer +* Nils Winter -- Smalltalk lexer +* Davy Wybiral -- Clojure lexer +* Diego Zamboni -- CFengine3 lexer +* Enrique Zamudio -- Ceylon lexer +* Alex Zimin -- Nemerle lexer +* Rob Zimmerman -- Kal lexer + +Many thanks for all contributions! diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000000..641c8e8e702 --- /dev/null +++ b/LICENSE @@ -0,0 +1,25 @@ +Copyright (c) 2006-2014 by the respective authors (see AUTHORS file). +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +* Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py new file mode 100644 index 00000000000..df9b56f4c01 --- /dev/null +++ b/pygments/lexers/shell.py @@ -0,0 +1,427 @@ +# -*- coding: utf-8 -*- +""" + pygments.lexers.shell + ~~~~~~~~~~~~~~~~~~~~~ + + Lexers for various shells. + + :copyright: Copyright 2006-2014 by the Pygments team, see AUTHORS. + :license: BSD, see LICENSE for details. +""" + +import re + +from pygments.lexer import Lexer, RegexLexer, do_insertions, bygroups, include +from pygments.token import Punctuation, \ + Text, Comment, Operator, Keyword, Name, String, Number, Generic +from pygments.util import shebang_matches + + +__all__ = ['BashLexer', 'BashSessionLexer', 'TcshLexer', 'BatchLexer', + 'PowerShellLexer', 'ShellSessionLexer'] + +line_re = re.compile('.*?\n') + + +class BashLexer(RegexLexer): + """ + Lexer for (ba|k|)sh shell scripts. + + .. versionadded:: 0.6 + """ + + name = 'Bash' + aliases = ['bash', 'sh', 'ksh'] + filenames = ['*.sh', '*.ksh', '*.bash', '*.ebuild', '*.eclass', + '.bashrc', 'bashrc', '.bash_*', 'bash_*', 'PKGBUILD'] + mimetypes = ['application/x-sh', 'application/x-shellscript'] + + tokens = { + 'root': [ + include('basic'), + (r'\$\(\(', Keyword, 'math'), + (r'\$\(', Keyword, 'paren'), + (r'\${#?', Keyword, 'curly'), + (r'`', String.Backtick, 'backticks'), + include('data'), + ], + 'basic': [ + (r'\b(if|fi|else|while|do|done|for|then|return|function|case|' + r'select|continue|until|esac|elif)(\s*)\b', + bygroups(Keyword, Text)), + (r'\b(alias|bg|bind|break|builtin|caller|cd|command|compgen|' + r'complete|declare|dirs|disown|echo|enable|eval|exec|exit|' + r'export|false|fc|fg|getopts|hash|help|history|jobs|kill|let|' + r'local|logout|popd|printf|pushd|pwd|read|readonly|set|shift|' + r'shopt|source|suspend|test|time|times|trap|true|type|typeset|' + r'ulimit|umask|unalias|unset|wait)\s*\b(?!\.)', + Name.Builtin), + (r'#.*\n', Comment), + (r'\\[\w\W]', String.Escape), + (r'(\b\w+)(\s*)(=)', bygroups(Name.Variable, Text, Operator)), + (r'[\[\]{}()=]', Operator), + (r'<<<', Operator), # here-string + (r'<<-?\s*(\'?)\\?(\w+)[\w\W]+?\2', String), + (r'&&|\|\|', Operator), + ], + 'data': [ + (r'(?s)\$?"(\\\\|\\[0-7]+|\\.|[^"\\])*"', String.Double), + (r"(?s)\$?'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single), + (r';', Punctuation), + (r'&', Punctuation), + (r'\|', Punctuation), + (r'\s+', Text), + (r'\d+(?= |\Z)', Number), + (r'[^=\s\[\]{}()$"\'`\\<&|;]+', Text), + (r'\$#?(\w+|.)', Name.Variable), + (r'<', Text), + ], + 'curly': [ + (r'}', Keyword, '#pop'), + (r':-', Keyword), + (r'\w+', Name.Variable), + (r'[^}:"\'`$]+', Punctuation), + (r':', Punctuation), + include('root'), + ], + 'paren': [ + (r'\)', Keyword, '#pop'), + include('root'), + ], + 'math': [ + (r'\)\)', Keyword, '#pop'), + (r'[-+*/%^|&]|\*\*|\|\|', Operator), + (r'\d+#\d+', Number), + (r'\d+#(?! )', Number), + (r'\d+', Number), + include('root'), + ], + 'backticks': [ + (r'`', String.Backtick, '#pop'), + include('root'), + ], + } + + def analyse_text(text): + if shebang_matches(text, r'(ba|z|)sh'): + return 1 + if text.startswith('$ '): + return 0.2 + + +class BashSessionLexer(Lexer): + """ + Lexer for simplistic shell sessions. + + .. versionadded:: 1.1 + """ + + name = 'Bash Session' + aliases = ['console'] + filenames = ['*.sh-session'] + mimetypes = ['application/x-shell-session'] + + def get_tokens_unprocessed(self, text): + bashlexer = BashLexer(**self.options) + + pos = 0 + curcode = '' + insertions = [] + + for match in line_re.finditer(text): + line = match.group() + m = re.match(r'^((?:\(\S+\))?(?:|sh\S*?|\w+\S+[@:]\S+(?:\s+\S+)' + r'?|\[\S+[@:][^\n]+\].+)[$#%])(.*\n?)' , line) + if m: + # To support output lexers (say diff output), the output + # needs to be broken by prompts whenever the output lexer + # changes. + if not insertions: + pos = match.start() + + insertions.append((len(curcode), + [(0, Generic.Prompt, m.group(1))])) + curcode += m.group(2) + elif line.startswith('>'): + insertions.append((len(curcode), + [(0, Generic.Prompt, line[:1])])) + curcode += line[1:] + else: + if insertions: + toks = bashlexer.get_tokens_unprocessed(curcode) + for i, t, v in do_insertions(insertions, toks): + yield pos+i, t, v + yield match.start(), Generic.Output, line + insertions = [] + curcode = '' + if insertions: + for i, t, v in do_insertions(insertions, + bashlexer.get_tokens_unprocessed(curcode)): + yield pos+i, t, v + + +class ShellSessionLexer(Lexer): + """ + Lexer for shell sessions that works with different command prompts + + .. versionadded:: 1.6 + """ + + name = 'Shell Session' + aliases = ['shell-session'] + filenames = ['*.shell-session'] + mimetypes = ['application/x-sh-session'] + + def get_tokens_unprocessed(self, text): + bashlexer = BashLexer(**self.options) + + pos = 0 + curcode = '' + insertions = [] + + for match in line_re.finditer(text): + line = match.group() + m = re.match(r'^((?:\[?\S+@[^$#%]+\]?\s*)[$#%])(.*\n?)', line) + if m: + # To support output lexers (say diff output), the output + # needs to be broken by prompts whenever the output lexer + # changes. + if not insertions: + pos = match.start() + + insertions.append((len(curcode), + [(0, Generic.Prompt, m.group(1))])) + curcode += m.group(2) + else: + if insertions: + toks = bashlexer.get_tokens_unprocessed(curcode) + for i, t, v in do_insertions(insertions, toks): + yield pos+i, t, v + yield match.start(), Generic.Output, line + insertions = [] + curcode = '' + if insertions: + for i, t, v in do_insertions(insertions, + bashlexer.get_tokens_unprocessed(curcode)): + yield pos+i, t, v + + +class BatchLexer(RegexLexer): + """ + Lexer for the DOS/Windows Batch file format. + + .. versionadded:: 0.7 + """ + name = 'Batchfile' + aliases = ['bat', 'batch', 'dosbatch', 'winbatch'] + filenames = ['*.bat', '*.cmd'] + mimetypes = ['application/x-dos-batch'] + + flags = re.MULTILINE | re.IGNORECASE + + tokens = { + 'root': [ + # Lines can start with @ to prevent echo + (r'^\s*@', Punctuation), + (r'^(\s*)(rem\s.*)$', bygroups(Text, Comment)), + (r'".*?"', String.Double), + (r"'.*?'", String.Single), + # If made more specific, make sure you still allow expansions + # like %~$VAR:zlt + (r'%%?[~$:\w]+%?', Name.Variable), + (r'::.*', Comment), # Technically :: only works at BOL + (r'\b(set)(\s+)(\w+)', bygroups(Keyword, Text, Name.Variable)), + (r'\b(call)(\s+)(:\w+)', bygroups(Keyword, Text, Name.Label)), + (r'\b(goto)(\s+)(\w+)', bygroups(Keyword, Text, Name.Label)), + (r'\b(set|call|echo|on|off|endlocal|for|do|goto|if|pause|' + r'setlocal|shift|errorlevel|exist|defined|cmdextversion|' + r'errorlevel|else|cd|md|del|deltree|cls|choice)\b', Keyword), + (r'\b(equ|neq|lss|leq|gtr|geq)\b', Operator), + include('basic'), + (r'.', Text), + ], + 'echo': [ + # Escapes only valid within echo args? + (r'\^\^|\^<|\^>|\^\|', String.Escape), + (r'\n', Text, '#pop'), + include('basic'), + (r'[^\'"^]+', Text), + ], + 'basic': [ + (r'".*?"', String.Double), + (r"'.*?'", String.Single), + (r'`.*?`', String.Backtick), + (r'-?\d+', Number), + (r',', Punctuation), + (r'=', Operator), + (r'/\S+', Name), + (r':\w+', Name.Label), + (r'\w:\w+', Text), + (r'([<>|])(\s*)(\w+)', bygroups(Punctuation, Text, Name)), + ], + } + + +class TcshLexer(RegexLexer): + """ + Lexer for tcsh scripts. + + .. versionadded:: 0.10 + """ + + name = 'Tcsh' + aliases = ['tcsh', 'csh'] + filenames = ['*.tcsh', '*.csh'] + mimetypes = ['application/x-csh'] + + tokens = { + 'root': [ + include('basic'), + (r'\$\(', Keyword, 'paren'), + (r'\${#?', Keyword, 'curly'), + (r'`', String.Backtick, 'backticks'), + include('data'), + ], + 'basic': [ + (r'\b(if|endif|else|while|then|foreach|case|default|' + r'continue|goto|breaksw|end|switch|endsw)\s*\b', + Keyword), + (r'\b(alias|alloc|bg|bindkey|break|builtins|bye|caller|cd|chdir|' + r'complete|dirs|echo|echotc|eval|exec|exit|fg|filetest|getxvers|' + r'glob|getspath|hashstat|history|hup|inlib|jobs|kill|' + r'limit|log|login|logout|ls-F|migrate|newgrp|nice|nohup|notify|' + r'onintr|popd|printenv|pushd|rehash|repeat|rootnode|popd|pushd|' + r'set|shift|sched|setenv|setpath|settc|setty|setxvers|shift|' + r'source|stop|suspend|source|suspend|telltc|time|' + r'umask|unalias|uncomplete|unhash|universe|unlimit|unset|unsetenv|' + r'ver|wait|warp|watchlog|where|which)\s*\b', + Name.Builtin), + (r'#.*', Comment), + (r'\\[\w\W]', String.Escape), + (r'(\b\w+)(\s*)(=)', bygroups(Name.Variable, Text, Operator)), + (r'[\[\]{}()=]+', Operator), + (r'<<\s*(\'?)\\?(\w+)[\w\W]+?\2', String), + (r';', Punctuation), + ], + 'data': [ + (r'(?s)"(\\\\|\\[0-7]+|\\.|[^"\\])*"', String.Double), + (r"(?s)'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single), + (r'\s+', Text), + (r'[^=\s\[\]{}()$"\'`\\;#]+', Text), + (r'\d+(?= |\Z)', Number), + (r'\$#?(\w+|.)', Name.Variable), + ], + 'curly': [ + (r'}', Keyword, '#pop'), + (r':-', Keyword), + (r'\w+', Name.Variable), + (r'[^}:"\'`$]+', Punctuation), + (r':', Punctuation), + include('root'), + ], + 'paren': [ + (r'\)', Keyword, '#pop'), + include('root'), + ], + 'backticks': [ + (r'`', String.Backtick, '#pop'), + include('root'), + ], + } + + +class PowerShellLexer(RegexLexer): + """ + For Windows PowerShell code. + + .. versionadded:: 1.5 + """ + name = 'PowerShell' + aliases = ['powershell', 'posh', 'ps1', 'psm1'] + filenames = ['*.ps1','*.psm1'] + mimetypes = ['text/x-powershell'] + + flags = re.DOTALL | re.IGNORECASE | re.MULTILINE + + keywords = ( + 'while validateset validaterange validatepattern validatelength ' + 'validatecount until trap switch return ref process param parameter in ' + 'if global: function foreach for finally filter end elseif else ' + 'dynamicparam do default continue cmdletbinding break begin alias \\? ' + '% #script #private #local #global mandatory parametersetname position ' + 'valuefrompipeline valuefrompipelinebypropertyname ' + 'valuefromremainingarguments helpmessage try catch throw').split() + + operators = ( + 'and as band bnot bor bxor casesensitive ccontains ceq cge cgt cle ' + 'clike clt cmatch cne cnotcontains cnotlike cnotmatch contains ' + 'creplace eq exact f file ge gt icontains ieq ige igt ile ilike ilt ' + 'imatch ine inotcontains inotlike inotmatch ireplace is isnot le like ' + 'lt match ne not notcontains notlike notmatch or regex replace ' + 'wildcard').split() + + verbs = ( + 'write where wait use update unregister undo trace test tee take ' + 'suspend stop start split sort skip show set send select scroll resume ' + 'restore restart resolve resize reset rename remove register receive ' + 'read push pop ping out new move measure limit join invoke import ' + 'group get format foreach export expand exit enter enable disconnect ' + 'disable debug cxnew copy convertto convertfrom convert connect ' + 'complete compare clear checkpoint aggregate add').split() + + commenthelp = ( + 'component description example externalhelp forwardhelpcategory ' + 'forwardhelptargetname functionality inputs link ' + 'notes outputs parameter remotehelprunspace role synopsis').split() + + tokens = { + 'root': [ + # we need to count pairs of parentheses for correct highlight + # of '$(...)' blocks in strings + (r'\(', Punctuation, 'child'), + (r'\s+', Text), + (r'^(\s*#[#\s]*)(\.(?:%s))([^\n]*$)' % '|'.join(commenthelp), + bygroups(Comment, String.Doc, Comment)), + (r'#[^\n]*?$', Comment), + (r'(<|<)#', Comment.Multiline, 'multline'), + (r'@"\n', String.Heredoc, 'heredoc-double'), + (r"@'\n.*?\n'@", String.Heredoc), + # escaped syntax + (r'`[\'"$@-]', Punctuation), + (r'"', String.Double, 'string'), + (r"'([^']|'')*'", String.Single), + (r'(\$|@@|@)((global|script|private|env):)?\w+', + Name.Variable), + (r'(%s)\b' % '|'.join(keywords), Keyword), + (r'-(%s)\b' % '|'.join(operators), Operator), + (r'(%s)-[a-z_]\w*\b' % '|'.join(verbs), Name.Builtin), + (r'\[[a-z_\[][\w. `,\[\]]*\]', Name.Constant), # .net [type]s + (r'-[a-z_]\w*', Name), + (r'\w+', Name), + (r'[.,;@{}\[\]$()=+*/\\&%!~?^`|<>-]|::', Punctuation), + ], + 'child': [ + (r'\)', Punctuation, '#pop'), + include('root'), + ], + 'multline': [ + (r'[^#&.]+', Comment.Multiline), + (r'#(>|>)', Comment.Multiline, '#pop'), + (r'\.(%s)' % '|'.join(commenthelp), String.Doc), + (r'[#&.]', Comment.Multiline), + ], + 'string': [ + (r"`[0abfnrtv'\"\$`]", String.Escape), + (r'[^$`"]+', String.Double), + (r'\$\(', Punctuation, 'child'), + (r'""', String.Double), + (r'[`$]', String.Double), + (r'"', String.Double, '#pop'), + ], + 'heredoc-double': [ + (r'\n"@', String.Heredoc, '#pop'), + (r'\$\(', Punctuation, 'child'), + (r'[^@\n]+"]', String.Heredoc), + (r".", String.Heredoc), + ] + } From cbac4122ade8f91ec981782d57624b4b94b9fb9e Mon Sep 17 00:00:00 2001 From: clemens Date: Mon, 30 Jun 2014 15:05:08 +0200 Subject: [PATCH 248/709] fixes package-name extraction for kafka-quixey-0.8.1-1.tar.gz which uses minus in version --- libpip2pi/commands.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index ba5db54b916..88f7f3e96c3 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -1,4 +1,5 @@ import os +import re import sys import cgi import shutil @@ -76,6 +77,8 @@ def file_to_package(file, basedir=None): ('foo', '1.2.3-rc1.tar.gz') >>> file_to_package("foo-bar-1.2.tgz") ('foo-bar', '1.2.tgz') + >>> file_to_package("kafka-quixey-0.8.1-1.tar.gz") + ('kafka-quixey', '0.8.1-1.tar.gz') >>> file_to_package("foo-bar-1.2-py27-none-any.whl") ('foo-bar', '1.2-py27-none-any.whl') >>> file_to_package("Cython-0.17.2-cp26-none-linux_x86_64.whl") @@ -91,7 +94,9 @@ def file_to_package(file, basedir=None): split = [bits[0], "-".join(bits[1:])] to_safe_name = lambda x: x else: - split = file.rsplit("-", 1) + pattern = re.compile(r'(?P.*?)-(?P\d+.*)') + match = pattern.search(file) + split = match.group('pkg'), match.group('rest') to_safe_name = pkg_resources.safe_name if len(split) != 2 or not split[1]: From f04464fd5d83d5a1f5dcf33f1680898694d72383 Mon Sep 17 00:00:00 2001 From: David Wolever Date: Sun, 3 Aug 2014 23:04:08 -0400 Subject: [PATCH 249/709] s/'/" --- libpip2pi/commands.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index 88f7f3e96c3..359e94f17d0 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -94,9 +94,8 @@ def file_to_package(file, basedir=None): split = [bits[0], "-".join(bits[1:])] to_safe_name = lambda x: x else: - pattern = re.compile(r'(?P.*?)-(?P\d+.*)') - match = pattern.search(file) - split = match.group('pkg'), match.group('rest') + match = re.search(r"(?P.*?)-(?P\d+.*)", file) + split = match.group("pkg"), match.group("rest") to_safe_name = pkg_resources.safe_name if len(split) != 2 or not split[1]: From b10ffdb8d529834b585e8fcd53cbe4156387720b Mon Sep 17 00:00:00 2001 From: David Wolever Date: Sun, 3 Aug 2014 23:07:33 -0400 Subject: [PATCH 250/709] Bump version --- libpip2pi/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libpip2pi/__init__.py b/libpip2pi/__init__.py index a8021bf1e14..eae677ff214 100644 --- a/libpip2pi/__init__.py +++ b/libpip2pi/__init__.py @@ -1 +1 @@ -__version__ = (0, 6, 3) +__version__ = (0, 6, 4) From 14f119d33a9951afa717856c450cbfed728a825c Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Tue, 16 Sep 2014 09:55:09 +0200 Subject: [PATCH 251/709] Nit lexer: add changelog entry, attribution, mapfile entry, cat all example files into one --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 1bedef4b35d..e9fb5301f35 100644 --- a/AUTHORS +++ b/AUTHORS @@ -14,6 +14,7 @@ Other contributors, listed alphabetically, are: * Jeffrey Arnold -- R/S, Rd, BUGS, Jags, and Stan lexers * Jeremy Ashkenas -- CoffeeScript lexer * Stefan Matthias Aust -- Smalltalk lexer +* Lucas Bajolet -- Nit lexer * Ben Bangert -- Mako lexers * Max Battcher -- Darcs patch lexer * Thomas Baruchel -- APL lexer From 4c3731b10598dfa7002af950bba437e2d3c902fe Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sat, 20 Sep 2014 12:35:49 +0200 Subject: [PATCH 252/709] Isabelle: changelog and attribution --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index e9fb5301f35..4f699f6b4d6 100644 --- a/AUTHORS +++ b/AUTHORS @@ -79,6 +79,7 @@ Other contributors, listed alphabetically, are: * Igor Kalnitsky -- vhdl lexer * Alexander Kit -- MaskJS lexer * Pekka Klärck -- Robot Framework lexer +* Gerwin Klein -- Isabelle lexer * Eric Knibbe -- Lasso lexer * Stepan Koltsov -- Clay lexer * Adam Koprowski -- Opa lexer From 7a095e096f9b440054bc639a53e71caa270ef683 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sat, 20 Sep 2014 21:12:48 +0200 Subject: [PATCH 253/709] Add a README to have something to display on the bitbucket front page --- README.rst | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 README.rst diff --git a/README.rst b/README.rst new file mode 100644 index 00000000000..1908db1e424 --- /dev/null +++ b/README.rst @@ -0,0 +1,39 @@ +README for Pygments +=================== + +This is the source of Pygments. It is a generic syntax highlighter for general use +in all kinds of software such as forum systems, wikis or other applications that +need to prettify source code. + +Installing +---------- + +... works as usual, use ``python setup.py install``. + +Documentation +------------- + +... can be found online at http://pygments.org/ or created by :: + + cd doc + make html + +Development +----------- + +... takes place on `Bitbucket +`_, where the Mercurial +repository, tickets and pull requests can be viewed. + +Continuous testing runs on drone.io: + +.. image:: https://drone.io/bitbucket.org/birkenfeld/pygments-main/status.png + :target: https://drone.io/bitbucket.org/birkenfeld/pygments-main/ + +The authors +----------- + +Pygments is maintained by **Georg Brandl**, e-mail address *georg*\ *@*\ *python.org*. + +Many lexers and fixes have been contributed by **Armin Ronacher**, the rest of +the `Pocoo `_ team and **Tim Hatch**. From 92f41300b933ffb39b05107c74effdc7fd0f0e0e Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sat, 20 Sep 2014 21:21:39 +0200 Subject: [PATCH 254/709] Update the "intro" blurb a bit, and add a few missing links to the main doc page. --- README.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.rst b/README.rst index 1908db1e424..e6c03926a9b 100644 --- a/README.rst +++ b/README.rst @@ -1,9 +1,9 @@ README for Pygments =================== -This is the source of Pygments. It is a generic syntax highlighter for general use -in all kinds of software such as forum systems, wikis or other applications that -need to prettify source code. +This is the source of Pygments. It is a generic syntax highlighter that +supports over 300 languages and text formats, for use in code hosting, forums, +wikis or other applications that need to prettify source code. Installing ---------- From 39a6429f163634ce2e51df35c175aed985c1451c Mon Sep 17 00:00:00 2001 From: Tim Hatch Date: Mon, 6 Oct 2014 21:05:26 -0700 Subject: [PATCH 255/709] BashLexer: Significantly improve handling of quoted strings (and ${}) Fixes #994 --- pygments/lexers/shell.py | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index df9b56f4c01..097ca6241a1 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -39,12 +39,16 @@ class BashLexer(RegexLexer): tokens = { 'root': [ include('basic'), - (r'\$\(\(', Keyword, 'math'), - (r'\$\(', Keyword, 'paren'), - (r'\${#?', Keyword, 'curly'), (r'`', String.Backtick, 'backticks'), + include('interp'), include('data'), ], + 'interp': [ + (r'\$\(\(', Keyword, 'math'), + (r'\$\(', Keyword, 'paren'), + (r'\${#?', String.Interpol, 'curly'), + (r'\$#?(\w+|.)', Name.Variable), + ], 'basic': [ (r'\b(if|fi|else|while|do|done|for|then|return|function|case|' r'select|continue|until|esac|elif)(\s*)\b', @@ -65,7 +69,8 @@ class BashLexer(RegexLexer): (r'&&|\|\|', Operator), ], 'data': [ - (r'(?s)\$?"(\\\\|\\[0-7]+|\\.|[^"\\])*"', String.Double), + (r'(?s)\$?"(\\\\|\\[0-7]+|\\.|[^"\\$])*"', String.Double), + (r'"', String.Double, 'string'), (r"(?s)\$?'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single), (r';', Punctuation), (r'&', Punctuation), @@ -73,14 +78,18 @@ class BashLexer(RegexLexer): (r'\s+', Text), (r'\d+(?= |\Z)', Number), (r'[^=\s\[\]{}()$"\'`\\<&|;]+', Text), - (r'\$#?(\w+|.)', Name.Variable), (r'<', Text), ], + 'string': [ + (r'"', String.Double, '#pop'), + (r'(\\\\|\\[0-7]+|\\[\w\W]|[^"\\$])+', String.Double), + include('interp'), + ], 'curly': [ - (r'}', Keyword, '#pop'), + (r'}', String.Interpol, '#pop'), (r':-', Keyword), (r'\w+', Name.Variable), - (r'[^}:"\'`$]+', Punctuation), + (r'[^}:"\'`$\\]+', Punctuation), (r':', Punctuation), include('root'), ], From 137fbfe1de4b94568941fbb0ac545c5608d175de Mon Sep 17 00:00:00 2001 From: Tim Hatch Date: Mon, 6 Oct 2014 21:19:28 -0700 Subject: [PATCH 256/709] BashLexer: Correctly handle $'' strings. --- pygments/lexers/shell.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 097ca6241a1..e65fbcb5a5b 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -40,8 +40,8 @@ class BashLexer(RegexLexer): 'root': [ include('basic'), (r'`', String.Backtick, 'backticks'), - include('interp'), include('data'), + include('interp'), ], 'interp': [ (r'\$\(\(', Keyword, 'math'), @@ -71,7 +71,8 @@ class BashLexer(RegexLexer): 'data': [ (r'(?s)\$?"(\\\\|\\[0-7]+|\\.|[^"\\$])*"', String.Double), (r'"', String.Double, 'string'), - (r"(?s)\$?'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single), + (r"(?s)\$'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single), + (r"(?s)'.*?'", String.Single), (r';', Punctuation), (r'&', Punctuation), (r'\|', Punctuation), @@ -82,7 +83,7 @@ class BashLexer(RegexLexer): ], 'string': [ (r'"', String.Double, '#pop'), - (r'(\\\\|\\[0-7]+|\\[\w\W]|[^"\\$])+', String.Double), + (r'(?s)(\\\\|\\[0-7]+|\\.|[^"\\$])+', String.Double), include('interp'), ], 'curly': [ From 38e61a39988a68fb6fd022c08dc52a397bad68b8 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Tue, 7 Oct 2014 13:37:53 +0200 Subject: [PATCH 257/709] Closes #1016: add "shell" alias for bash. --- pygments/lexers/shell.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index e65fbcb5a5b..b4d814465b2 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -31,7 +31,7 @@ class BashLexer(RegexLexer): """ name = 'Bash' - aliases = ['bash', 'sh', 'ksh'] + aliases = ['bash', 'sh', 'ksh', 'shell'] filenames = ['*.sh', '*.ksh', '*.bash', '*.ebuild', '*.eclass', '.bashrc', 'bashrc', '.bash_*', 'bash_*', 'PKGBUILD'] mimetypes = ['application/x-sh', 'application/x-shellscript'] From 82adb29f7c96797d36ff3cb7890234e61c6885db Mon Sep 17 00:00:00 2001 From: David Corbett Date: Wed, 8 Oct 2014 23:03:50 -0400 Subject: [PATCH 258/709] Add a lexer for TADS 3 --- AUTHORS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index 4f699f6b4d6..061192312d1 100644 --- a/AUTHORS +++ b/AUTHORS @@ -29,7 +29,7 @@ Other contributors, listed alphabetically, are: * Pierre Bourdon -- bugfixes * Hiram Chirino -- Scaml and Jade lexers * Ian Cooper -- VGL lexer -* David Corbett -- Inform and Jasmin lexers +* David Corbett -- Inform, Jasmin, and TADS 3 lexers * Leaf Corcoran -- MoonScript lexer * Christopher Creutzig -- MuPAD lexer * Daniël W. Crompton - Pike lexer From edda3061ec55a8a69eac6b353f2268a5f1e20cb6 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Wed, 15 Oct 2014 21:32:31 +0200 Subject: [PATCH 259/709] all lexers: fix unescaped { and } so that the "regex" module can compile our regexes --- pygments/lexers/shell.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index b4d814465b2..3973afa5fd8 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -87,7 +87,7 @@ class BashLexer(RegexLexer): include('interp'), ], 'curly': [ - (r'}', String.Interpol, '#pop'), + (r'\}', String.Interpol, '#pop'), (r':-', Keyword), (r'\w+', Name.Variable), (r'[^}:"\'`$\\]+', Punctuation), @@ -322,7 +322,7 @@ class TcshLexer(RegexLexer): (r'\$#?(\w+|.)', Name.Variable), ], 'curly': [ - (r'}', Keyword, '#pop'), + (r'\}', Keyword, '#pop'), (r':-', Keyword), (r'\w+', Name.Variable), (r'[^}:"\'`$]+', Punctuation), From 915e12c6788f12ab5f4bb559cd29a421900b2769 Mon Sep 17 00:00:00 2001 From: Tim Hatch Date: Wed, 15 Oct 2014 22:13:59 -0700 Subject: [PATCH 260/709] Curly brace escaping, round 1. These locations were all found by regexlint and done semi-manually, leaving braces within [] alone (they aren't special in the 'regex' module). --- pygments/lexers/shell.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 3973afa5fd8..575e2525d93 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -46,7 +46,7 @@ class BashLexer(RegexLexer): 'interp': [ (r'\$\(\(', Keyword, 'math'), (r'\$\(', Keyword, 'paren'), - (r'\${#?', String.Interpol, 'curly'), + (r'\$\{#?', String.Interpol, 'curly'), (r'\$#?(\w+|.)', Name.Variable), ], 'basic': [ @@ -288,7 +288,7 @@ class TcshLexer(RegexLexer): 'root': [ include('basic'), (r'\$\(', Keyword, 'paren'), - (r'\${#?', Keyword, 'curly'), + (r'\$\{#?', Keyword, 'curly'), (r'`', String.Backtick, 'backticks'), include('data'), ], From b12e29e56e51fe21e218aee9c64032a5267cde3e Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Thu, 6 Nov 2014 12:16:06 +0100 Subject: [PATCH 261/709] Simplify charclasses in a few more modules --- pygments/lexers/shell.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 575e2525d93..1bbfd7a7e53 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -421,7 +421,7 @@ class PowerShellLexer(RegexLexer): (r'[#&.]', Comment.Multiline), ], 'string': [ - (r"`[0abfnrtv'\"\$`]", String.Escape), + (r"`[0abfnrtv'\"$`]", String.Escape), (r'[^$`"]+', String.Double), (r'\$\(', Punctuation, 'child'), (r'""', String.Double), From 21e99413fc0beef044ebd559594a08755694892b Mon Sep 17 00:00:00 2001 From: Dejan Muhamedagic Date: Mon, 17 Nov 2014 14:44:50 +0100 Subject: [PATCH 262/709] Add a lexer for crmsh --- AUTHORS | 174 ++++++++++++++++ LICENSE | 25 +++ README.rst | 39 ++++ pygments/lexers/shell.py | 437 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 675 insertions(+) create mode 100644 AUTHORS create mode 100644 LICENSE create mode 100644 README.rst create mode 100644 pygments/lexers/shell.py diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 00000000000..061192312d1 --- /dev/null +++ b/AUTHORS @@ -0,0 +1,174 @@ +Pygments is written and maintained by Georg Brandl . + +Major developers are Tim Hatch and Armin Ronacher +. + +Other contributors, listed alphabetically, are: + +* Sam Aaron -- Ioke lexer +* Ali Afshar -- image formatter +* Thomas Aglassinger -- Rexx lexer +* Kumar Appaiah -- Debian control lexer +* Andreas Amann -- AppleScript lexer +* Timothy Armstrong -- Dart lexer fixes +* Jeffrey Arnold -- R/S, Rd, BUGS, Jags, and Stan lexers +* Jeremy Ashkenas -- CoffeeScript lexer +* Stefan Matthias Aust -- Smalltalk lexer +* Lucas Bajolet -- Nit lexer +* Ben Bangert -- Mako lexers +* Max Battcher -- Darcs patch lexer +* Thomas Baruchel -- APL lexer +* Tim Baumann -- (Literate) Agda lexer +* Paul Baumgart, 280 North, Inc. -- Objective-J lexer +* Michael Bayer -- Myghty lexers +* John Benediktsson -- Factor lexer +* Christopher Bertels -- Fancy lexer +* Jarrett Billingsley -- MiniD lexer +* Adam Blinkinsop -- Haskell, Redcode lexers +* Frits van Bommel -- assembler lexers +* Pierre Bourdon -- bugfixes +* Hiram Chirino -- Scaml and Jade lexers +* Ian Cooper -- VGL lexer +* David Corbett -- Inform, Jasmin, and TADS 3 lexers +* Leaf Corcoran -- MoonScript lexer +* Christopher Creutzig -- MuPAD lexer +* Daniël W. Crompton - Pike lexer +* Pete Curry -- bugfixes +* Bryan Davis -- EBNF lexer +* Owen Durni -- Haxe lexer +* Alexander Dutton, Oxford University Computing Services -- SPARQL lexer +* Nick Efford -- Python 3 lexer +* Sven Efftinge -- Xtend lexer +* Artem Egorkine -- terminal256 formatter +* James H. Fisher -- PostScript lexer +* William S. Fulton -- SWIG lexer +* Carlos Galdino -- Elixir and Elixir Console lexers +* Michael Galloy -- IDL lexer +* Naveen Garg -- Autohotkey lexer +* Laurent Gautier -- R/S lexer +* Alex Gaynor -- PyPy log lexer +* Richard Gerkin -- Igor Pro lexer +* Alain Gilbert -- TypeScript lexer +* Alex Gilding -- BlitzBasic lexer +* Bertrand Goetzmann -- Groovy lexer +* Krzysiek Goj -- Scala lexer +* Matt Good -- Genshi, Cheetah lexers +* Michał Górny -- vim modeline support +* Patrick Gotthardt -- PHP namespaces support +* Olivier Guibe -- Asymptote lexer +* Jordi Gutiérrez Hermoso -- Octave lexer +* Martin Harriman -- SNOBOL lexer +* Matthew Harrison -- SVG formatter +* Steven Hazel -- Tcl lexer +* Aslak Hellesøy -- Gherkin lexer +* Greg Hendershott -- Racket lexer +* David Hess, Fish Software, Inc. -- Objective-J lexer +* Varun Hiremath -- Debian control lexer +* Rob Hoelz -- Perl 6 lexer +* Doug Hogan -- Mscgen lexer +* Ben Hollis -- Mason lexer +* Max Horn -- GAP lexer +* Dustin Howett -- Logos lexer +* Alastair Houghton -- Lexer inheritance facility +* Tim Howard -- BlitzMax lexer +* Ivan Inozemtsev -- Fantom lexer +* Brian R. Jackson -- Tea lexer +* Christian Jann -- ShellSession lexer +* Dennis Kaarsemaker -- sources.list lexer +* Dmitri Kabak - Inferno Limbo lexer +* Igor Kalnitsky -- vhdl lexer +* Alexander Kit -- MaskJS lexer +* Pekka Klärck -- Robot Framework lexer +* Gerwin Klein -- Isabelle lexer +* Eric Knibbe -- Lasso lexer +* Stepan Koltsov -- Clay lexer +* Adam Koprowski -- Opa lexer +* Benjamin Kowarsch -- Modula-2 lexer +* Domen Kožar -- Nix lexer +* Alexander Kriegisch -- Kconfig and AspectJ lexers +* Marek Kubica -- Scheme lexer +* Jochen Kupperschmidt -- Markdown processor +* Gerd Kurzbach -- Modelica lexer +* Jon Larimer, Google Inc. -- Smali lexer +* Olov Lassus -- Dart lexer +* Sylvestre Ledru -- Scilab lexer +* Mark Lee -- Vala lexer +* Ben Mabey -- Gherkin lexer +* Angus MacArthur -- QML lexer +* Louis Marchand -- Eiffel lexer +* Simone Margaritelli -- Hybris lexer +* Kirk McDonald -- D lexer +* Gordon McGregor -- SystemVerilog lexer +* Stephen McKamey -- Duel/JBST lexer +* Brian McKenna -- F# lexer +* Charles McLaughlin -- Puppet lexer +* Lukas Meuser -- BBCode formatter, Lua lexer +* Cat Miller -- Pig lexer +* Paul Miller -- LiveScript lexer +* Hong Minhee -- HTTP lexer +* Michael Mior -- Awk lexer +* Bruce Mitchener -- Dylan lexer rewrite +* Reuben Morais -- SourcePawn lexer +* Jon Morton -- Rust lexer +* Paulo Moura -- Logtalk lexer +* Mher Movsisyan -- DTD lexer +* Ana Nelson -- Ragel, ANTLR, R console lexers +* Nam T. Nguyen -- Monokai style +* Jesper Noehr -- HTML formatter "anchorlinenos" +* Mike Nolta -- Julia lexer +* Jonas Obrist -- BBCode lexer +* Edward O'Callaghan -- Cryptol lexer +* David Oliva -- Rebol lexer +* Pat Pannuto -- nesC lexer +* Jon Parise -- Protocol buffers lexer +* Ronny Pfannschmidt -- BBCode lexer +* Benjamin Peterson -- Test suite refactoring +* Dominik Picheta -- Nimrod lexer +* Andrew Pinkham -- RTF Formatter Refactoring +* Clément Prévost -- UrbiScript lexer +* raichoo -- Idris lexer +* Kashif Rasul -- CUDA lexer +* Justin Reidy -- MXML lexer +* Norman Richards -- JSON lexer +* Corey Richardson -- Rust lexer updates +* Lubomir Rintel -- GoodData MAQL and CL lexers +* Andre Roberge -- Tango style +* Konrad Rudolph -- LaTeX formatter enhancements +* Mario Ruggier -- Evoque lexers +* Stou Sandalski -- NumPy, FORTRAN, tcsh and XSLT lexers +* Matteo Sasso -- Common Lisp lexer +* Joe Schafer -- Ada lexer +* Ken Schutte -- Matlab lexers +* Tassilo Schweyer -- Io, MOOCode lexers +* Ted Shaw -- AutoIt lexer +* Joerg Sieker -- ABAP lexer +* Robert Simmons -- Standard ML lexer +* Kirill Simonov -- YAML lexer +* Alexander Smishlajev -- Visual FoxPro lexer +* Steve Spigarelli -- XQuery lexer +* Jerome St-Louis -- eC lexer +* James Strachan -- Kotlin lexer +* Tom Stuart -- Treetop lexer +* Tiberius Teng -- default style overhaul +* Jeremy Thurgood -- Erlang, Squid config lexers +* Brian Tiffin -- OpenCOBOL lexer +* Bob Tolbert -- Hy lexer +* Erick Tryzelaar -- Felix lexer +* Alexander Udalov -- Kotlin lexer improvements +* Thomas Van Doren -- Chapel lexer +* Daniele Varrazzo -- PostgreSQL lexers +* Abe Voelker -- OpenEdge ABL lexer +* Pepijn de Vos -- HTML formatter CTags support +* Whitney Young -- ObjectiveC lexer +* Matthias Vallentin -- Bro lexer +* Linh Vu Hong -- RSL lexer +* Nathan Weizenbaum -- Haml and Sass lexers +* Dietmar Winkler -- Modelica lexer +* Nils Winter -- Smalltalk lexer +* Davy Wybiral -- Clojure lexer +* Diego Zamboni -- CFengine3 lexer +* Enrique Zamudio -- Ceylon lexer +* Alex Zimin -- Nemerle lexer +* Rob Zimmerman -- Kal lexer + +Many thanks for all contributions! diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000000..10b8e9167cc --- /dev/null +++ b/LICENSE @@ -0,0 +1,25 @@ +Copyright (c) 2006-2015 by the respective authors (see AUTHORS file). +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +* Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/README.rst b/README.rst new file mode 100644 index 00000000000..e6c03926a9b --- /dev/null +++ b/README.rst @@ -0,0 +1,39 @@ +README for Pygments +=================== + +This is the source of Pygments. It is a generic syntax highlighter that +supports over 300 languages and text formats, for use in code hosting, forums, +wikis or other applications that need to prettify source code. + +Installing +---------- + +... works as usual, use ``python setup.py install``. + +Documentation +------------- + +... can be found online at http://pygments.org/ or created by :: + + cd doc + make html + +Development +----------- + +... takes place on `Bitbucket +`_, where the Mercurial +repository, tickets and pull requests can be viewed. + +Continuous testing runs on drone.io: + +.. image:: https://drone.io/bitbucket.org/birkenfeld/pygments-main/status.png + :target: https://drone.io/bitbucket.org/birkenfeld/pygments-main/ + +The authors +----------- + +Pygments is maintained by **Georg Brandl**, e-mail address *georg*\ *@*\ *python.org*. + +Many lexers and fixes have been contributed by **Armin Ronacher**, the rest of +the `Pocoo `_ team and **Tim Hatch**. diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py new file mode 100644 index 00000000000..810ee7da2a3 --- /dev/null +++ b/pygments/lexers/shell.py @@ -0,0 +1,437 @@ +# -*- coding: utf-8 -*- +""" + pygments.lexers.shell + ~~~~~~~~~~~~~~~~~~~~~ + + Lexers for various shells. + + :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS. + :license: BSD, see LICENSE for details. +""" + +import re + +from pygments.lexer import Lexer, RegexLexer, do_insertions, bygroups, include +from pygments.token import Punctuation, \ + Text, Comment, Operator, Keyword, Name, String, Number, Generic +from pygments.util import shebang_matches + + +__all__ = ['BashLexer', 'BashSessionLexer', 'TcshLexer', 'BatchLexer', + 'PowerShellLexer', 'ShellSessionLexer'] + +line_re = re.compile('.*?\n') + + +class BashLexer(RegexLexer): + """ + Lexer for (ba|k|)sh shell scripts. + + .. versionadded:: 0.6 + """ + + name = 'Bash' + aliases = ['bash', 'sh', 'ksh', 'shell'] + filenames = ['*.sh', '*.ksh', '*.bash', '*.ebuild', '*.eclass', + '.bashrc', 'bashrc', '.bash_*', 'bash_*', 'PKGBUILD'] + mimetypes = ['application/x-sh', 'application/x-shellscript'] + + tokens = { + 'root': [ + include('basic'), + (r'`', String.Backtick, 'backticks'), + include('data'), + include('interp'), + ], + 'interp': [ + (r'\$\(\(', Keyword, 'math'), + (r'\$\(', Keyword, 'paren'), + (r'\$\{#?', String.Interpol, 'curly'), + (r'\$#?(\w+|.)', Name.Variable), + ], + 'basic': [ + (r'\b(if|fi|else|while|do|done|for|then|return|function|case|' + r'select|continue|until|esac|elif)(\s*)\b', + bygroups(Keyword, Text)), + (r'\b(alias|bg|bind|break|builtin|caller|cd|command|compgen|' + r'complete|declare|dirs|disown|echo|enable|eval|exec|exit|' + r'export|false|fc|fg|getopts|hash|help|history|jobs|kill|let|' + r'local|logout|popd|printf|pushd|pwd|read|readonly|set|shift|' + r'shopt|source|suspend|test|time|times|trap|true|type|typeset|' + r'ulimit|umask|unalias|unset|wait)\s*\b(?!\.)', + Name.Builtin), + (r'#.*\n', Comment), + (r'\\[\w\W]', String.Escape), + (r'(\b\w+)(\s*)(=)', bygroups(Name.Variable, Text, Operator)), + (r'[\[\]{}()=]', Operator), + (r'<<<', Operator), # here-string + (r'<<-?\s*(\'?)\\?(\w+)[\w\W]+?\2', String), + (r'&&|\|\|', Operator), + ], + 'data': [ + (r'(?s)\$?"(\\\\|\\[0-7]+|\\.|[^"\\$])*"', String.Double), + (r'"', String.Double, 'string'), + (r"(?s)\$'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single), + (r"(?s)'.*?'", String.Single), + (r';', Punctuation), + (r'&', Punctuation), + (r'\|', Punctuation), + (r'\s+', Text), + (r'\d+(?= |\Z)', Number), + (r'[^=\s\[\]{}()$"\'`\\<&|;]+', Text), + (r'<', Text), + ], + 'string': [ + (r'"', String.Double, '#pop'), + (r'(?s)(\\\\|\\[0-7]+|\\.|[^"\\$])+', String.Double), + include('interp'), + ], + 'curly': [ + (r'\}', String.Interpol, '#pop'), + (r':-', Keyword), + (r'\w+', Name.Variable), + (r'[^}:"\'`$\\]+', Punctuation), + (r':', Punctuation), + include('root'), + ], + 'paren': [ + (r'\)', Keyword, '#pop'), + include('root'), + ], + 'math': [ + (r'\)\)', Keyword, '#pop'), + (r'[-+*/%^|&]|\*\*|\|\|', Operator), + (r'\d+#\d+', Number), + (r'\d+#(?! )', Number), + (r'\d+', Number), + include('root'), + ], + 'backticks': [ + (r'`', String.Backtick, '#pop'), + include('root'), + ], + } + + def analyse_text(text): + if shebang_matches(text, r'(ba|z|)sh'): + return 1 + if text.startswith('$ '): + return 0.2 + + +class BashSessionLexer(Lexer): + """ + Lexer for simplistic shell sessions. + + .. versionadded:: 1.1 + """ + + name = 'Bash Session' + aliases = ['console'] + filenames = ['*.sh-session'] + mimetypes = ['application/x-shell-session'] + + def get_tokens_unprocessed(self, text): + bashlexer = BashLexer(**self.options) + + pos = 0 + curcode = '' + insertions = [] + + for match in line_re.finditer(text): + line = match.group() + m = re.match(r'^((?:\(\S+\))?(?:|sh\S*?|\w+\S+[@:]\S+(?:\s+\S+)' + r'?|\[\S+[@:][^\n]+\].+)[$#%])(.*\n?)' , line) + if m: + # To support output lexers (say diff output), the output + # needs to be broken by prompts whenever the output lexer + # changes. + if not insertions: + pos = match.start() + + insertions.append((len(curcode), + [(0, Generic.Prompt, m.group(1))])) + curcode += m.group(2) + elif line.startswith('>'): + insertions.append((len(curcode), + [(0, Generic.Prompt, line[:1])])) + curcode += line[1:] + else: + if insertions: + toks = bashlexer.get_tokens_unprocessed(curcode) + for i, t, v in do_insertions(insertions, toks): + yield pos+i, t, v + yield match.start(), Generic.Output, line + insertions = [] + curcode = '' + if insertions: + for i, t, v in do_insertions(insertions, + bashlexer.get_tokens_unprocessed(curcode)): + yield pos+i, t, v + + +class ShellSessionLexer(Lexer): + """ + Lexer for shell sessions that works with different command prompts + + .. versionadded:: 1.6 + """ + + name = 'Shell Session' + aliases = ['shell-session'] + filenames = ['*.shell-session'] + mimetypes = ['application/x-sh-session'] + + def get_tokens_unprocessed(self, text): + bashlexer = BashLexer(**self.options) + + pos = 0 + curcode = '' + insertions = [] + + for match in line_re.finditer(text): + line = match.group() + m = re.match(r'^((?:\[?\S+@[^$#%]+\]?\s*)[$#%])(.*\n?)', line) + if m: + # To support output lexers (say diff output), the output + # needs to be broken by prompts whenever the output lexer + # changes. + if not insertions: + pos = match.start() + + insertions.append((len(curcode), + [(0, Generic.Prompt, m.group(1))])) + curcode += m.group(2) + else: + if insertions: + toks = bashlexer.get_tokens_unprocessed(curcode) + for i, t, v in do_insertions(insertions, toks): + yield pos+i, t, v + yield match.start(), Generic.Output, line + insertions = [] + curcode = '' + if insertions: + for i, t, v in do_insertions(insertions, + bashlexer.get_tokens_unprocessed(curcode)): + yield pos+i, t, v + + +class BatchLexer(RegexLexer): + """ + Lexer for the DOS/Windows Batch file format. + + .. versionadded:: 0.7 + """ + name = 'Batchfile' + aliases = ['bat', 'batch', 'dosbatch', 'winbatch'] + filenames = ['*.bat', '*.cmd'] + mimetypes = ['application/x-dos-batch'] + + flags = re.MULTILINE | re.IGNORECASE + + tokens = { + 'root': [ + # Lines can start with @ to prevent echo + (r'^\s*@', Punctuation), + (r'^(\s*)(rem\s.*)$', bygroups(Text, Comment)), + (r'".*?"', String.Double), + (r"'.*?'", String.Single), + # If made more specific, make sure you still allow expansions + # like %~$VAR:zlt + (r'%%?[~$:\w]+%?', Name.Variable), + (r'::.*', Comment), # Technically :: only works at BOL + (r'\b(set)(\s+)(\w+)', bygroups(Keyword, Text, Name.Variable)), + (r'\b(call)(\s+)(:\w+)', bygroups(Keyword, Text, Name.Label)), + (r'\b(goto)(\s+)(\w+)', bygroups(Keyword, Text, Name.Label)), + (r'\b(set|call|echo|on|off|endlocal|for|do|goto|if|pause|' + r'setlocal|shift|errorlevel|exist|defined|cmdextversion|' + r'errorlevel|else|cd|md|del|deltree|cls|choice)\b', Keyword), + (r'\b(equ|neq|lss|leq|gtr|geq)\b', Operator), + include('basic'), + (r'.', Text), + ], + 'echo': [ + # Escapes only valid within echo args? + (r'\^\^|\^<|\^>|\^\|', String.Escape), + (r'\n', Text, '#pop'), + include('basic'), + (r'[^\'"^]+', Text), + ], + 'basic': [ + (r'".*?"', String.Double), + (r"'.*?'", String.Single), + (r'`.*?`', String.Backtick), + (r'-?\d+', Number), + (r',', Punctuation), + (r'=', Operator), + (r'/\S+', Name), + (r':\w+', Name.Label), + (r'\w:\w+', Text), + (r'([<>|])(\s*)(\w+)', bygroups(Punctuation, Text, Name)), + ], + } + + +class TcshLexer(RegexLexer): + """ + Lexer for tcsh scripts. + + .. versionadded:: 0.10 + """ + + name = 'Tcsh' + aliases = ['tcsh', 'csh'] + filenames = ['*.tcsh', '*.csh'] + mimetypes = ['application/x-csh'] + + tokens = { + 'root': [ + include('basic'), + (r'\$\(', Keyword, 'paren'), + (r'\$\{#?', Keyword, 'curly'), + (r'`', String.Backtick, 'backticks'), + include('data'), + ], + 'basic': [ + (r'\b(if|endif|else|while|then|foreach|case|default|' + r'continue|goto|breaksw|end|switch|endsw)\s*\b', + Keyword), + (r'\b(alias|alloc|bg|bindkey|break|builtins|bye|caller|cd|chdir|' + r'complete|dirs|echo|echotc|eval|exec|exit|fg|filetest|getxvers|' + r'glob|getspath|hashstat|history|hup|inlib|jobs|kill|' + r'limit|log|login|logout|ls-F|migrate|newgrp|nice|nohup|notify|' + r'onintr|popd|printenv|pushd|rehash|repeat|rootnode|popd|pushd|' + r'set|shift|sched|setenv|setpath|settc|setty|setxvers|shift|' + r'source|stop|suspend|source|suspend|telltc|time|' + r'umask|unalias|uncomplete|unhash|universe|unlimit|unset|unsetenv|' + r'ver|wait|warp|watchlog|where|which)\s*\b', + Name.Builtin), + (r'#.*', Comment), + (r'\\[\w\W]', String.Escape), + (r'(\b\w+)(\s*)(=)', bygroups(Name.Variable, Text, Operator)), + (r'[\[\]{}()=]+', Operator), + (r'<<\s*(\'?)\\?(\w+)[\w\W]+?\2', String), + (r';', Punctuation), + ], + 'data': [ + (r'(?s)"(\\\\|\\[0-7]+|\\.|[^"\\])*"', String.Double), + (r"(?s)'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single), + (r'\s+', Text), + (r'[^=\s\[\]{}()$"\'`\\;#]+', Text), + (r'\d+(?= |\Z)', Number), + (r'\$#?(\w+|.)', Name.Variable), + ], + 'curly': [ + (r'\}', Keyword, '#pop'), + (r':-', Keyword), + (r'\w+', Name.Variable), + (r'[^}:"\'`$]+', Punctuation), + (r':', Punctuation), + include('root'), + ], + 'paren': [ + (r'\)', Keyword, '#pop'), + include('root'), + ], + 'backticks': [ + (r'`', String.Backtick, '#pop'), + include('root'), + ], + } + + +class PowerShellLexer(RegexLexer): + """ + For Windows PowerShell code. + + .. versionadded:: 1.5 + """ + name = 'PowerShell' + aliases = ['powershell', 'posh', 'ps1', 'psm1'] + filenames = ['*.ps1','*.psm1'] + mimetypes = ['text/x-powershell'] + + flags = re.DOTALL | re.IGNORECASE | re.MULTILINE + + keywords = ( + 'while validateset validaterange validatepattern validatelength ' + 'validatecount until trap switch return ref process param parameter in ' + 'if global: function foreach for finally filter end elseif else ' + 'dynamicparam do default continue cmdletbinding break begin alias \\? ' + '% #script #private #local #global mandatory parametersetname position ' + 'valuefrompipeline valuefrompipelinebypropertyname ' + 'valuefromremainingarguments helpmessage try catch throw').split() + + operators = ( + 'and as band bnot bor bxor casesensitive ccontains ceq cge cgt cle ' + 'clike clt cmatch cne cnotcontains cnotlike cnotmatch contains ' + 'creplace eq exact f file ge gt icontains ieq ige igt ile ilike ilt ' + 'imatch ine inotcontains inotlike inotmatch ireplace is isnot le like ' + 'lt match ne not notcontains notlike notmatch or regex replace ' + 'wildcard').split() + + verbs = ( + 'write where wait use update unregister undo trace test tee take ' + 'suspend stop start split sort skip show set send select scroll resume ' + 'restore restart resolve resize reset rename remove register receive ' + 'read push pop ping out new move measure limit join invoke import ' + 'group get format foreach export expand exit enter enable disconnect ' + 'disable debug cxnew copy convertto convertfrom convert connect ' + 'complete compare clear checkpoint aggregate add').split() + + commenthelp = ( + 'component description example externalhelp forwardhelpcategory ' + 'forwardhelptargetname functionality inputs link ' + 'notes outputs parameter remotehelprunspace role synopsis').split() + + tokens = { + 'root': [ + # we need to count pairs of parentheses for correct highlight + # of '$(...)' blocks in strings + (r'\(', Punctuation, 'child'), + (r'\s+', Text), + (r'^(\s*#[#\s]*)(\.(?:%s))([^\n]*$)' % '|'.join(commenthelp), + bygroups(Comment, String.Doc, Comment)), + (r'#[^\n]*?$', Comment), + (r'(<|<)#', Comment.Multiline, 'multline'), + (r'@"\n', String.Heredoc, 'heredoc-double'), + (r"@'\n.*?\n'@", String.Heredoc), + # escaped syntax + (r'`[\'"$@-]', Punctuation), + (r'"', String.Double, 'string'), + (r"'([^']|'')*'", String.Single), + (r'(\$|@@|@)((global|script|private|env):)?\w+', + Name.Variable), + (r'(%s)\b' % '|'.join(keywords), Keyword), + (r'-(%s)\b' % '|'.join(operators), Operator), + (r'(%s)-[a-z_]\w*\b' % '|'.join(verbs), Name.Builtin), + (r'\[[a-z_\[][\w. `,\[\]]*\]', Name.Constant), # .net [type]s + (r'-[a-z_]\w*', Name), + (r'\w+', Name), + (r'[.,;@{}\[\]$()=+*/\\&%!~?^`|<>-]|::', Punctuation), + ], + 'child': [ + (r'\)', Punctuation, '#pop'), + include('root'), + ], + 'multline': [ + (r'[^#&.]+', Comment.Multiline), + (r'#(>|>)', Comment.Multiline, '#pop'), + (r'\.(%s)' % '|'.join(commenthelp), String.Doc), + (r'[#&.]', Comment.Multiline), + ], + 'string': [ + (r"`[0abfnrtv'\"$`]", String.Escape), + (r'[^$`"]+', String.Double), + (r'\$\(', Punctuation, 'child'), + (r'""', String.Double), + (r'[`$]', String.Double), + (r'"', String.Double, '#pop'), + ], + 'heredoc-double': [ + (r'\n"@', String.Heredoc, '#pop'), + (r'\$\(', Punctuation, 'child'), + (r'[^@\n]+"]', String.Heredoc), + (r".", String.Heredoc), + ] + } From a435b6237a63cfd2e0fae6a2277ed6178d1b216d Mon Sep 17 00:00:00 2001 From: Jorge Bucaran Date: Fri, 28 Nov 2014 18:39:17 +0900 Subject: [PATCH 263/709] Add FishShellLexer class, example.fish and rebuild lexer mapping. --- pygments/lexers/shell.py | 75 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 74 insertions(+), 1 deletion(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 1bbfd7a7e53..62213a4a9c6 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -18,7 +18,7 @@ __all__ = ['BashLexer', 'BashSessionLexer', 'TcshLexer', 'BatchLexer', - 'PowerShellLexer', 'ShellSessionLexer'] + 'PowerShellLexer', 'ShellSessionLexer', 'FishShellLexer'] line_re = re.compile('.*?\n') @@ -435,3 +435,76 @@ class PowerShellLexer(RegexLexer): (r".", String.Heredoc), ] } + + +class FishShellLexer(RegexLexer): + """ + Lexer for Fish shell scripts. + + .. versionadded:: 2.1.1 + """ + + name = 'Fish' + aliases = ['fish', 'fishshell'] + filenames = ['*.fish', '*.load'] + mimetypes = ['application/x-fish'] + + tokens = { + 'root': [ + include('basic'), + include('data'), + include('interp'), + ], + 'interp': [ + (r'\$\(\(', Keyword, 'math'), + (r'\(', Keyword, 'paren'), + (r'\$#?(\w+|.)', Name.Variable), + ], + 'basic': [ + (r'\b(begin|end|if|else|while|break|for|in|return|function|block|' + r'case|continue|switch|not|and|or|set|echo|exit|pwd|true|false|' + r'cd|count|test)(\s*)\b', + bygroups(Keyword, Text)), + (r'\b(alias|bg|bind|breakpoint|builtin|command|commandline|' + r'complete|contains|dirh|dirs|emit|eval|exec|fg|fish|fish_config|' + r'fish_indent|fish_pager|fish_prompt|fish_right_prompt|' + r'fish_update_completions|fishd|funced|funcsave|functions|help|' + r'history|isatty|jobs|math|mimedb|nextd|open|popd|prevd|psub|' + r'pushd|random|read|set_color|source|status|trap|type|ulimit|' + r'umask|vared|fc|getopts|hash|kill|printf|time|wait)\s*\b(?!\.)', + Name.Builtin), + (r'#.*\n', Comment), + (r'\\[\w\W]', String.Escape), + (r'(\b\w+)(\s*)(=)', bygroups(Name.Variable, Text, Operator)), + (r'[\[\]()=]', Operator), + (r'<<-?\s*(\'?)\\?(\w+)[\w\W]+?\2', String), + ], + 'data': [ + (r'(?s)\$?"(\\\\|\\[0-7]+|\\.|[^"\\$])*"', String.Double), + (r'"', String.Double, 'string'), + (r"(?s)\$'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single), + (r"(?s)'.*?'", String.Single), + (r';', Punctuation), + (r'&|\||\^|<|>', Operator), + (r'\s+', Text), + (r'\d+(?= |\Z)', Number), + (r'[^=\s\[\]{}()$"\'`\\<&|;]+', Text), + ], + 'string': [ + (r'"', String.Double, '#pop'), + (r'(?s)(\\\\|\\[0-7]+|\\.|[^"\\$])+', String.Double), + include('interp'), + ], + 'paren': [ + (r'\)', Keyword, '#pop'), + include('root'), + ], + 'math': [ + (r'\)\)', Keyword, '#pop'), + (r'[-+*/%^|&]|\*\*|\|\|', Operator), + (r'\d+#\d+', Number), + (r'\d+#(?! )', Number), + (r'\d+', Number), + include('root'), + ], + } From 01006882b1bb34c82498b8c4745a2ba6b27e2ea0 Mon Sep 17 00:00:00 2001 From: Matt Layman Date: Sun, 14 Dec 2014 23:31:59 -0500 Subject: [PATCH 264/709] Add a lexer for the Test Anything Protocol (TAP). --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 061192312d1..1f95aecf3cf 100644 --- a/AUTHORS +++ b/AUTHORS @@ -91,6 +91,7 @@ Other contributors, listed alphabetically, are: * Gerd Kurzbach -- Modelica lexer * Jon Larimer, Google Inc. -- Smali lexer * Olov Lassus -- Dart lexer +* Matt Layman -- TAP lexer * Sylvestre Ledru -- Scilab lexer * Mark Lee -- Vala lexer * Ben Mabey -- Gherkin lexer From 0fb85a29b72cef253a321e838a0128911ab1db3b Mon Sep 17 00:00:00 2001 From: David Corbett Date: Tue, 23 Dec 2014 16:46:26 -0500 Subject: [PATCH 265/709] Improve BatchLexer --- pygments/lexers/shell.py | 326 ++++++++++++++++++++++++++++++++++----- 1 file changed, 289 insertions(+), 37 deletions(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 1bbfd7a7e53..0a89aeaa25d 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -11,7 +11,8 @@ import re -from pygments.lexer import Lexer, RegexLexer, do_insertions, bygroups, include +from pygments.lexer import Lexer, RegexLexer, do_insertions, bygroups, \ + include, default, this, using, words from pygments.token import Punctuation, \ Text, Comment, Operator, Keyword, Name, String, Number, Generic from pygments.util import shebang_matches @@ -229,46 +230,297 @@ class BatchLexer(RegexLexer): flags = re.MULTILINE | re.IGNORECASE + _nl = r'\n\x1a' + _punct = r'&<>|' + _ws = r'\t\v\f\r ,;=\xa0' + _space = r'(?:(?:(?:\^[%s])?[%s])+)' % (_nl, _ws) + _keyword_terminator = (r'(?=(?:\^[%s]?)?[%s+./:[\\\]]|[%s%s(])' % + (_nl, _ws, _nl, _punct)) + _token_terminator = r'(?=\^?[%s]|[%s%s])' % (_ws, _punct, _nl) + _start_label = r'((?:(?<=^[^:])|^[^:]?)[%s]*)(:)' % _ws + _label = r'(?:(?:[^%s%s%s+:^]|\^[%s]?[\w\W])*)' % (_nl, _punct, _ws, _nl) + _label_compound = (r'(?:(?:[^%s%s%s+:^)]|\^[%s]?[^)])*)' % + (_nl, _punct, _ws, _nl)) + _number = r'(?:-?(?:0[0-7]+|0x[\da-f]+|\d+)%s)' % _token_terminator + _opword = r'(?:equ|geq|gtr|leq|lss|neq)' + _string = r'(?:"[^%s"]*"?)' % _nl + _variable = (r'(?:(?:%%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|' + r'[^%%:%s]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%%%s^]|' + r'\^[^%%%s])[^=%s]*=(?:[^%%%s^]|\^[^%%%s])*)?)?%%))|' + r'(?:\^?![^!:%s]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:' + r'[^!%s^]|\^[^!%s])[^=%s]*=(?:[^!%s^]|\^[^!%s])*)?)?\^?!))' % + (_nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl)) + _core_token = r'(?:(?:(?:\^[%s]?)?[^%s%s%s])+)' % (_nl, _nl, _punct, _ws) + _core_token_compound = r'(?:(?:(?:\^[%s]?)?[^%s%s%s)])+)' % (_nl, _nl, + _punct, _ws) + _token = r'(?:[%s]+|%s)' % (_punct, _core_token) + _token_compound = r'(?:[%s]+|%s)' % (_punct, _core_token_compound) + _stoken = (r'(?:[%s]+|(?:%s|%s|%s)+)' % + (_punct, _string, _variable, _core_token)) + + def _make_begin_state(compound, _core_token=_core_token, + _core_token_compound=_core_token_compound, + _keyword_terminator=_keyword_terminator, + _nl=_nl, _punct=_punct, _string=_string, + _space=_space, _start_label=_start_label, + _stoken=_stoken, _token_terminator=_token_terminator, + _variable=_variable, _ws=_ws): + rest = '(?:%s|%s|[^"%%%s%s%s])*' % (_string, _variable, _nl, _punct, + ')' if compound else '') + rest_of_line = r'(?:(?:[^%s^]|\^[%s]?[\w\W])*)' % (_nl, _nl) + rest_of_line_compound = r'(?:(?:[^%s^)]|\^[%s]?[^)])*)' % (_nl, _nl) + set_space = r'((?:(?:\^[%s]?)?[^\S\n])*)' % _nl + suffix = '' + if compound: + _keyword_terminator = r'(?:(?=\))|%s)' % _keyword_terminator + _token_terminator = r'(?:(?=\))|%s)' % _token_terminator + suffix = '/compound' + return [ + ((r'\)', Punctuation, '#pop') if compound else + (r'\)((?=\()|%s)%s' % (_token_terminator, rest_of_line), + Comment.Single)), + (r'(?=%s)' % _start_label, Text, 'follow%s' % suffix), + (_space, using(this, state='text')), + include('redirect%s' % suffix), + (r'[%s]+' % _nl, Text), + (r'\(', Punctuation, 'root/compound'), + (r'@+', Punctuation), + (r'((?:for|if|rem)(?:(?=(?:\^[%s]?)?/)|(?:(?!\^)|' + r'(?<=m))(?:(?=\()|%s)))(%s?%s?(?:\^[%s]?)?/(?:\^[%s]?)?\?)' % + (_nl, _token_terminator, _space, + _core_token_compound if compound else _core_token, _nl, _nl), + bygroups(Keyword, using(this, state='text')), + 'follow%s' % suffix), + (r'(goto%s)(%s(?:\^[%s]?)?/(?:\^[%s]?)?\?%s)' % + (_keyword_terminator, rest, _nl, _nl, rest), + bygroups(Keyword, using(this, state='text')), + 'follow%s' % suffix), + (words(('assoc', 'break', 'cd', 'chdir', 'cls', 'color', 'copy', + 'date', 'del', 'dir', 'dpath', 'echo', 'endlocal', 'erase', + 'exit', 'ftype', 'keys', 'md', 'mkdir', 'mklink', 'move', + 'path', 'pause', 'popd', 'prompt', 'pushd', 'rd', 'ren', + 'rename', 'rmdir', 'setlocal', 'shift', 'start', 'time', + 'title', 'type', 'ver', 'verify', 'vol'), + suffix=_keyword_terminator), Keyword, 'follow%s' % suffix), + (r'(call)(%s?)(:)' % _space, + bygroups(Keyword, using(this, state='text'), Punctuation), + 'call%s' % suffix), + (r'call%s' % _keyword_terminator, Keyword), + (r'(for%s(?!\^))(%s)(/f%s)' % + (_token_terminator, _space, _token_terminator), + bygroups(Keyword, using(this, state='text'), Keyword), + ('for/f', 'for')), + (r'(for%s(?!\^))(%s)(/l%s)' % + (_token_terminator, _space, _token_terminator), + bygroups(Keyword, using(this, state='text'), Keyword), + ('for/l', 'for')), + (r'for%s(?!\^)' % _token_terminator, Keyword, ('for2', 'for')), + (r'(goto%s)(%s?)(:?)' % (_keyword_terminator, _space), + bygroups(Keyword, using(this, state='text'), Punctuation), + 'label%s' % suffix), + (r'(if(?:(?=\()|%s)(?!\^))(%s?)((?:/i%s)?)(%s?)((?:not%s)?)(%s?)' % + (_token_terminator, _space, _token_terminator, _space, + _token_terminator, _space), + bygroups(Keyword, using(this, state='text'), Keyword, + using(this, state='text'), Keyword, + using(this, state='text')), ('(?', 'if')), + (r'rem(((?=\()|%s)%s?%s?.*|%s%s)' % + (_token_terminator, _space, _stoken, _keyword_terminator, + rest_of_line_compound if compound else rest_of_line), + Comment.Single, 'follow%s' % suffix), + (r'(set%s)%s(/a)' % (_keyword_terminator, set_space), + bygroups(Keyword, using(this, state='text'), Keyword), + 'arithmetic%s' % suffix), + (r'(set%s)%s((?:/p)?)%s((?:(?:(?:\^[%s]?)?[^"%s%s^=%s]|' + r'\^[%s]?[^"=])+)?)((?:(?:\^[%s]?)?=)?)' % + (_keyword_terminator, set_space, set_space, _nl, _nl, _punct, + ')' if compound else '', _nl, _nl), + bygroups(Keyword, using(this, state='text'), Keyword, + using(this, state='text'), using(this, state='variable'), + Punctuation), + 'follow%s' % suffix), + default('follow%s' % suffix) + ] + + def _make_follow_state(compound, _label=_label, + _label_compound=_label_compound, _nl=_nl, + _space=_space, _start_label=_start_label, + _token=_token, _token_compound=_token_compound, + _ws=_ws): + suffix = '/compound' if compound else '' + state = [] + if compound: + state.append((r'(?=\))', Text, '#pop')) + state += [ + (r'%s([%s]*)(%s)(.*)' % + (_start_label, _ws, _label_compound if compound else _label), + bygroups(Text, Punctuation, Text, Name.Label, Comment.Single)), + include('redirect%s' % suffix), + (r'(?=[%s])' % _nl, Text, '#pop'), + (r'\|\|?|&&?', Punctuation, '#pop'), + include('text') + ] + return state + + def _make_arithmetic_state(compound, _nl=_nl, _punct=_punct, + _string=_string, _variable=_variable, _ws=_ws): + op = r'=+\-*/!~' + state = [] + if compound: + state.append((r'(?=\))', Text, '#pop')) + state += [ + (r'0[0-7]+', Number.Oct), + (r'0x[\da-f]+', Number.Hex), + (r'\d+', Number.Integer), + (r'[(),]+', Punctuation), + (r'([%s]|%%|\^\^)+' % op, Operator), + (r'(%s|%s|(\^[%s]?)?[^()%s%%^"%s%s%s]|\^[%s%s]?%s)+' % + (_string, _variable, _nl, op, _nl, _punct, _ws, _nl, _ws, + r'[^)]' if compound else r'[\w\W]'), + using(this, state='variable')), + (r'(?=[\x00|&])', Text, '#pop'), + include('follow') + ] + return state + + def _make_call_state(compound, _label=_label, + _label_compound=_label_compound): + state = [] + if compound: + state.append((r'(?=\))', Text, '#pop')) + state.append((r'(:?)(%s)' % (_label_compound if compound else _label), + bygroups(Punctuation, Name.Label), '#pop')) + return state + + def _make_label_state(compound, _label=_label, + _label_compound=_label_compound, _nl=_nl, + _punct=_punct, _string=_string, _variable=_variable): + state = [] + if compound: + state.append((r'(?=\))', Text, '#pop')) + state.append((r'(%s?)((?:%s|%s|\^[%s]?%s|[^"%%^%s%s%s])*)' % + (_label_compound if compound else _label, _string, + _variable, _nl, r'[^)]' if compound else r'[\w\W]', _nl, + _punct, r')' if compound else ''), + bygroups(Name.Label, Comment.Single), '#pop')) + return state + + def _make_redirect_state(compound, + _core_token_compound=_core_token_compound, + _nl=_nl, _punct=_punct, _stoken=_stoken, + _string=_string, _space=_space, + _variable=_variable, _ws=_ws): + stoken_compound = (r'(?:[%s]+|(?:%s|%s|%s)+)' % + (_punct, _string, _variable, _core_token_compound)) + return [ + (r'((?:(?<=[%s%s])\d)?)(>>?&|<&)([%s%s]*)(\d)' % + (_nl, _ws, _nl, _ws), + bygroups(Number.Integer, Punctuation, Text, Number.Integer)), + (r'((?:(?<=[%s%s])(?>?|<)(%s?%s)' % + (_nl, _ws, _nl, _space, stoken_compound if compound else _stoken), + bygroups(Number.Integer, Punctuation, using(this, state='text'))) + ] + tokens = { - 'root': [ - # Lines can start with @ to prevent echo - (r'^\s*@', Punctuation), - (r'^(\s*)(rem\s.*)$', bygroups(Text, Comment)), - (r'".*?"', String.Double), - (r"'.*?'", String.Single), - # If made more specific, make sure you still allow expansions - # like %~$VAR:zlt - (r'%%?[~$:\w]+%?', Name.Variable), - (r'::.*', Comment), # Technically :: only works at BOL - (r'\b(set)(\s+)(\w+)', bygroups(Keyword, Text, Name.Variable)), - (r'\b(call)(\s+)(:\w+)', bygroups(Keyword, Text, Name.Label)), - (r'\b(goto)(\s+)(\w+)', bygroups(Keyword, Text, Name.Label)), - (r'\b(set|call|echo|on|off|endlocal|for|do|goto|if|pause|' - r'setlocal|shift|errorlevel|exist|defined|cmdextversion|' - r'errorlevel|else|cd|md|del|deltree|cls|choice)\b', Keyword), - (r'\b(equ|neq|lss|leq|gtr|geq)\b', Operator), - include('basic'), - (r'.', Text), + 'root': _make_begin_state(False), + 'follow': _make_follow_state(False), + 'arithmetic': _make_arithmetic_state(False), + 'call': _make_call_state(False), + 'label': _make_label_state(False), + 'redirect': _make_redirect_state(False), + 'root/compound': _make_begin_state(True), + 'follow/compound': _make_follow_state(True), + 'arithmetic/compound': _make_arithmetic_state(True), + 'call/compound': _make_call_state(True), + 'label/compound': _make_label_state(True), + 'redirect/compound': _make_redirect_state(True), + 'variable-or-escape': [ + (_variable, Name.Variable), + (r'%%%%|\^[%s]?(\^!|[\w\W])' % _nl, String.Escape) ], - 'echo': [ - # Escapes only valid within echo args? - (r'\^\^|\^<|\^>|\^\|', String.Escape), - (r'\n', Text, '#pop'), - include('basic'), - (r'[^\'"^]+', Text), + 'string': [ + (r'"', String.Double, '#pop'), + (_variable, Name.Variable), + (r'\^!|%%', String.Escape), + (r'[^"%%^%s]+|[%%^]' % _nl, String.Double), + default('#pop') ], - 'basic': [ - (r'".*?"', String.Double), - (r"'.*?'", String.Single), - (r'`.*?`', String.Backtick), - (r'-?\d+', Number), - (r',', Punctuation), - (r'=', Operator), - (r'/\S+', Name), - (r':\w+', Name.Label), - (r'\w:\w+', Text), - (r'([<>|])(\s*)(\w+)', bygroups(Punctuation, Text, Name)), + 'sqstring': [ + include('variable-or-escape'), + (r'[^%]+|%', String.Single) ], + 'bqstring': [ + include('variable-or-escape'), + (r'[^%]+|%', String.Backtick) + ], + 'text': [ + (r'"', String.Double, 'string'), + include('variable-or-escape'), + (r'[^"%%^%s%s%s\d)]+|.' % (_nl, _punct, _ws), Text) + ], + 'variable': [ + (r'"', String.Double, 'string'), + include('variable-or-escape'), + (r'[^"%%^%s]+|.' % _nl, Name.Variable) + ], + 'for': [ + (r'(%s)(in)(%s)(\()' % (_space, _space), + bygroups(using(this, state='text'), Keyword, + using(this, state='text'), Punctuation), '#pop'), + include('follow') + ], + 'for2': [ + (r'\)', Punctuation), + (r'(%s)(do%s)' % (_space, _token_terminator), + bygroups(using(this, state='text'), Keyword), '#pop'), + (r'[%s]+' % _nl, Text), + include('follow') + ], + 'for/f': [ + (r'(")((?:%s|[^"])*?")([%s%s]*)(\))' % (_variable, _nl, _ws), + bygroups(String.Double, using(this, state='string'), Text, + Punctuation)), + (r'"', String.Double, ('#pop', 'for2', 'string')), + (r"('(?:%s|[\w\W])*?')([%s%s]*)(\))" % (_variable, _nl, _ws), + bygroups(using(this, state='sqstring'), Text, Punctuation)), + (r'(`(?:%s|[\w\W])*?`)([%s%s]*)(\))' % (_variable, _nl, _ws), + bygroups(using(this, state='bqstring'), Text, Punctuation)), + include('for2') + ], + 'for/l': [ + (r'-?\d+', Number.Integer), + include('for2') + ], + 'if': [ + (r'((?:cmdextversion|errorlevel)%s)(%s)(\d+)' % + (_token_terminator, _space), + bygroups(Keyword, using(this, state='text'), + Number.Integer), '#pop'), + (r'(defined%s)(%s)(%s)' % (_token_terminator, _space, _stoken), + bygroups(Keyword, using(this, state='text'), + using(this, state='variable')), '#pop'), + (r'(exist%s)(%s%s)' % (_token_terminator, _space, _stoken), + bygroups(Keyword, using(this, state='text')), '#pop'), + (r'(%s%s?)(==)(%s?%s)' % (_stoken, _space, _space, _stoken), + bygroups(using(this, state='text'), Operator, + using(this, state='text')), '#pop'), + (r'(%s%s)(%s)(%s%s)' % (_number, _space, _opword, _space, _number), + bygroups(using(this, state='arithmetic'), Operator.Word, + using(this, state='arithmetic')), '#pop'), + (r'(%s%s)(%s)(%s%s)' % (_stoken, _space, _opword, _space, _stoken), + bygroups(using(this, state='text'), Operator.Word, + using(this, state='text')), '#pop') + ], + '(?': [ + (_space, using(this, state='text')), + (r'\(', Punctuation, ('#pop', 'else?', 'root/compound')), + default('#pop') + ], + 'else?': [ + (_space, using(this, state='text')), + (r'else%s' % _token_terminator, Keyword, '#pop'), + default('#pop') + ] } From e18ca0f7b5326293b5069e15af68ca9aa7e6d9a1 Mon Sep 17 00:00:00 2001 From: David Wolever Date: Fri, 9 Jan 2015 12:23:41 -0500 Subject: [PATCH 266/709] Documentation and minor bug fix --- libpip2pi/__init__.py | 2 +- libpip2pi/commands.py | 65 ++++++++++++++++++++++++++++++++----------- 2 files changed, 50 insertions(+), 17 deletions(-) diff --git a/libpip2pi/__init__.py b/libpip2pi/__init__.py index eae677ff214..c08a7501ba2 100644 --- a/libpip2pi/__init__.py +++ b/libpip2pi/__init__.py @@ -1 +1 @@ -__version__ = (0, 6, 4) +__version__ = (0, 6, 5) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index b9dfa3c30dc..bd11b525799 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -59,6 +59,15 @@ def maintain_cwd_helper(*args, **kwargs): os.chdir(orig_dir) return maintain_cwd_helper +class InvalidFilePackageName(ValueError): + def __init__(self, file, basedir=None): + msg = "unexpected file name: %r " %(file, ) + msg += "(not in 'pkg-name-version.xxx' format" + if basedir: + msg += "; found in directory: %r" %(basedir) + msg += ")" + super(InvalidFilePackageName, self).__init__(msg) + def egg_to_package(file): """ Extracts the package name from an egg:: @@ -72,7 +81,9 @@ def egg_to_package(file): return (name, file[len(name)+1:]) def file_to_package(file, basedir=None): - """ Returns the package name for a given file:: + """ Returns the package name for a given file, or raises an + ``InvalidFilePackageName`` exception if the file name is + not valid:: >>> file_to_package("foo-1.2.3_rc1.tar.gz") ('foo', '1.2.3-rc1.tar.gz') @@ -84,6 +95,14 @@ def file_to_package(file, basedir=None): ('foo-bar', '1.2-py27-none-any.whl') >>> file_to_package("Cython-0.17.2-cp26-none-linux_x86_64.whl") ('Cython', '0.17.2-cp26-none-linux_x86_64.whl') + >>> file_to_package("foo.whl") + Traceback (most recent call last): + ... + InvalidFilePackageName: ... + >>> file_to_package("foo.png") + Traceback (most recent call last): + ... + InvalidFilePackageName: ... """ file = os.path.basename(file) file_ext = os.path.splitext(file)[1].lower() @@ -96,16 +115,13 @@ def file_to_package(file, basedir=None): to_safe_name = lambda x: x else: match = re.search(r"(?P.*?)-(?P\d+.*)", file) + if not match: + raise InvalidFilePackageName(file, basedir) split = match.group("pkg"), match.group("rest") to_safe_name = pkg_resources.safe_name if len(split) != 2 or not split[1]: - msg = "unexpected file name: %r " %(file, ) - msg += "(not in 'pkg-name-version.xxx' format" - if basedir: - msg += "; found in directory: %r" %(basedir) - msg += ")" - raise ValueError(msg) + raise InvalidFilePackageName(file, basedir) return (split[0], to_safe_name(split[1])) @@ -258,17 +274,22 @@ def globall(globs): def pip2tgz(argv=sys.argv): glob_exts = ['*.whl', '*.tgz', '*.gz'] parser = Pip2PiOptionParser( - usage="usage: %prog OUTPUT_DIRECTORY PACKAGE_NAME ...", + usage="usage: %prog OUTPUT_DIRECTORY [PIP_OPTIONS] PACKAGES ...", description=dedent(""" - Where PACKAGE_NAMES are any names accepted by pip (ex, `foo`, - `foo==1.2`, `-r requirements.txt`). + Where PACKAGES are any names accepted by pip (ex, `foo`, + `foo==1.2`, `-r requirements.txt`), and [PIP_OPTIONS] can be any + options accepted by `pip install -d`. - pip2tgz will download all packages required to install PACKAGE_NAMES and + pip2tgz will download all packages required to install PACKAGES and save them to sanely-named tarballs or wheel files in OUTPUT_DIRECTORY. For example: $ pip2tgz /var/www/packages/ -r requirements.txt foo==1.2 baz/ + $ pip2tgz /var/www/packages/ \\ + --no-use-wheel \\ + --index-url https://example.com/simple \\ + bar==3.1 """)) option, argv = parser.parse_args(argv) @@ -347,22 +368,34 @@ def handle_new_wheels(outdir, new_wheels): def pip2pi(argv=sys.argv): parser = Pip2PiOptionParser( - usage="usage: %prog TARGET PACKAGE_NAME ...", + usage="usage: %prog TARGET [PIP_OPTIONS] PACKAGES ...", description=dedent(""" - Combines pip2tgz and dir2pi, adding PACKAGE_NAME to package index - TARGET. + Adds packages PACKAGES to PyPI-compatible package index at TARGET. If TARGET contains ':' it will be treated as a remote path. The - package index will be built locally then rsync will be used to copy + package index will be built locally and rsync will be used to copy it to the remote host. + PIP_OPTIONS can be any options accepted by `pip install -d`, like + `--index-url` or `--no-use-wheel`. + For example, to create a remote index: $ pip2pi example.com:/var/www/packages/ -r requirements.txt - Or to create a local index: + To create a local index: $ pip2pi ~/Sites/packages/ foo==1.2 + + To pass arguments to pip: + + $ pip2pi ~/Sites/packages/ \\ + --no-use-wheel \\ + --index-url https://example.com/simple \\ + -r requirements-base.txt \\ + -r requirements-dev.txt \\ + bar==3.1 + """)) parser.add_symlink_option(OS_HAS_SYMLINK) From c1debdcbc26b4e218c9ba5459b2ce1c5368e9229 Mon Sep 17 00:00:00 2001 From: David Wolever Date: Fri, 9 Jan 2015 12:41:32 -0500 Subject: [PATCH 267/709] Fix doctest on py3 --- libpip2pi/commands.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index bd11b525799..c3b53a8d528 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -97,12 +97,12 @@ def file_to_package(file, basedir=None): ('Cython', '0.17.2-cp26-none-linux_x86_64.whl') >>> file_to_package("foo.whl") Traceback (most recent call last): - ... - InvalidFilePackageName: ... + ... + InvalidFilePackageName: unexpected file name: 'foo.whl' (not in 'pkg-name-version.xxx' format) >>> file_to_package("foo.png") Traceback (most recent call last): - ... - InvalidFilePackageName: ... + ... + InvalidFilePackageName: unexpected file name: 'foo.png' (not in 'pkg-name-version.xxx' format) """ file = os.path.basename(file) file_ext = os.path.splitext(file)[1].lower() From b7b4f81a73d27a128a6959ff24bf62d8f7b561ba Mon Sep 17 00:00:00 2001 From: David Wolever Date: Fri, 9 Jan 2015 13:48:18 -0500 Subject: [PATCH 268/709] Add --normalize-package-names option, add deprecation warning --- libpip2pi/commands.py | 111 ++++++++++++++++++++++++++++++------------ 1 file changed, 79 insertions(+), 32 deletions(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index c3b53a8d528..3f34cc42bfc 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -5,6 +5,7 @@ import shutil import atexit import tempfile +import warnings import textwrap import functools from subprocess import check_call @@ -69,16 +70,9 @@ def __init__(self, file, basedir=None): super(InvalidFilePackageName, self).__init__(msg) def egg_to_package(file): - """ Extracts the package name from an egg:: - - >>> egg_to_package("PyYAML-3.10-py2.7-macosx-10.7-x86_64.egg") - ('PyYAML', '3.10-py2.7-macosx-10.7-x86_64.egg') - >>> egg_to_package("python_ldap-2.3.9-py2.7-macosx-10.3-fat.egg") - ('python-ldap', '2.3.9-py2.7-macosx-10.3-fat.egg') - """ - dist = pkg_resources.Distribution.from_location(None, file) - name = dist.project_name - return (name, file[len(name)+1:]) + warnings.warn("egg_to_package is deprecated; use file_to_package.", + stacklevel=1) + return file_to_package(file) def file_to_package(file, basedir=None): """ Returns the package name for a given file, or raises an @@ -95,6 +89,10 @@ def file_to_package(file, basedir=None): ('foo-bar', '1.2-py27-none-any.whl') >>> file_to_package("Cython-0.17.2-cp26-none-linux_x86_64.whl") ('Cython', '0.17.2-cp26-none-linux_x86_64.whl') + >>> file_to_package("PyYAML-3.10-py2.7-macosx-10.7-x86_64.egg") + ('PyYAML', '3.10-py2.7-macosx-10.7-x86_64.egg') + >>> file_to_package("python_ldap-2.3.9-py2.7-macosx-10.3-fat.egg") + ('python-ldap', '2.3.9-py2.7-macosx-10.3-fat.egg') >>> file_to_package("foo.whl") Traceback (most recent call last): ... @@ -107,17 +105,19 @@ def file_to_package(file, basedir=None): file = os.path.basename(file) file_ext = os.path.splitext(file)[1].lower() if file_ext == ".egg": - return egg_to_package(file) - - if file_ext == ".whl": + dist = pkg_resources.Distribution.from_location(None, file) + name = dist.project_name + split = (name, file[len(name)+1:]) + to_safe_name = lambda x: x + elif file_ext == ".whl": bits = file.rsplit("-", 4) - split = [bits[0], "-".join(bits[1:])] + split = (bits[0], "-".join(bits[1:])) to_safe_name = lambda x: x else: match = re.search(r"(?P.*?)-(?P\d+.*)", file) if not match: raise InvalidFilePackageName(file, basedir) - split = match.group("pkg"), match.group("rest") + split = (match.group("pkg"), match.group("rest")) to_safe_name = pkg_resources.safe_name if len(split) != 2 or not split[1]: @@ -164,13 +164,30 @@ def format_description(self, formatter): # Parent implementation reformats all the hard line breaks return self.get_description() + "\n" - def add_symlink_option(self, use_symlink): - self.add_option('-s', '--symlink', dest="use_symlink", - default=use_symlink, action="store_true", - help="Use symlinks in PACKAGE_DIR/simple/ " - "rather than copying files. Default: %default") - self.add_option('-S', '--no-symlink', dest="use_symlink", - action="store_false") + def add_index_options(self): + self.add_option( + '-n', '--normalize-package-names', dest="normalize_package_names", + default=None, action="store_true", + help=dedent(""" + Normalize package names in simple index. + Ex, 'simple/Django/Django-1.7.tar.gz' will be + normalized to 'simple/django/Django-1.7.tar.gz'. + Non-normalized package names are deprecated and + this option will eventually be enabled by default. + See also: https://github.com/wolever/pip2pi/issues/37 + """)) + self.add_option( + '-N', '--no-normalize-package-names', dest="normalize_package_names", + action="store_false") + self.add_option( + '-s', '--symlink', dest="use_symlink", + default=OS_HAS_SYMLINK, action="store_true", + help=dedent(""" + Use symlinks in PACKAGE_DIR/simple/ rather than copying files. + Default: %default + """)) + self.add_option( + '-S', '--no-symlink', dest="use_symlink", action="store_false") def _process_args(self, largs, rargs, values): """ @@ -191,7 +208,7 @@ def _process_args(self, largs, rargs, values): largs.append(e.opt_str) -def dir2pi(argv=sys.argv, use_symlink=OS_HAS_SYMLINK): +def dir2pi(argv=sys.argv, use_symlink=None): parser = Pip2PiOptionParser( usage="usage: %prog PACKAGE_DIR", description=dedent(""" @@ -218,13 +235,19 @@ def dir2pi(argv=sys.argv, use_symlink=OS_HAS_SYMLINK): packages/simple/foo/index.html packages/simple/foo/foo-1.2.tar.gz """)) - parser.add_symlink_option(use_symlink) + + if use_symlink is not None: + warnings.warn("dir2pi(use_symlink=...) is deprecated", stacklevel=1) + + parser.add_index_options() option, argv = parser.parse_args(argv) if len(argv) != 2: parser.print_help() parser.exit() + return _dir2pi(option, argv) +def _dir2pi(option, argv): pkgdir = argv[1] if not os.path.isdir(pkgdir): raise ValueError("no such directory: %r" %(pkgdir, )) @@ -235,6 +258,8 @@ def dir2pi(argv=sys.argv, use_symlink=OS_HAS_SYMLINK): pkg_index = ("Simple Index" "\n") + warn_normalized_pkg_names = [] + for file in os.listdir(pkgdir): pkg_filepath = os.path.join(pkgdir, file) if not os.path.isfile(pkg_filepath): @@ -243,7 +268,14 @@ def dir2pi(argv=sys.argv, use_symlink=OS_HAS_SYMLINK): if pkg_basename.startswith("."): continue pkg_name, pkg_rest = file_to_package(pkg_basename, pkgdir) - pkg_dir = pkgdirpath("simple", pkg_name) + + pkg_dir_name = pkg_name + if option.normalize_package_names: + pkg_dir_name = pkg_dir_name.lower() + elif pkg_dir_name != pkg_dir_name.lower(): + if option.normalize_package_names is None: + warn_normalized_pkg_names.append(pkg_name) + pkg_dir = pkgdirpath("simple", pkg_dir_name) if not os.path.exists(pkg_dir): os.mkdir(pkg_dir) pkg_new_basename = "-".join([pkg_name, pkg_rest]) @@ -253,15 +285,30 @@ def dir2pi(argv=sys.argv, use_symlink=OS_HAS_SYMLINK): os.symlink(symlink_source, symlink_target) else: shutil.copy2(pkg_filepath, symlink_target) - pkg_name_html = cgi.escape(pkg_name) - pkg_index += "{0}
\n".format(pkg_name_html) + pkg_index += "%s
\n" %( + cgi.escape(pkg_dir_name), + cgi.escape(pkg_name), + ) with open(os.path.join(pkg_dir, "index.html"), "a") as fp: - pkg_new_basename_html = cgi.escape(pkg_new_basename) - fp.write("%s
\n" - %(pkg_new_basename_html, pkg_new_basename_html)) + fp.write("%(name)s
\n" %{ + "name": cgi.escape(pkg_new_basename), + }) pkg_index += "\n" with open(pkgdirpath("simple/index.html"), "w") as fp: fp.write(pkg_index) + + if warn_normalized_pkg_names: + warnings.warn(dedent(""" + \n + WARNING: Non-normalized packages encountered: %s.\n + Please consider passing `--normalize-package-names` and verifying + that your environment does not break, as package names will + eventually be normalized by default. Silence this warning by + passing `--no-normalized-package-names`.\n + See also: https://github.com/wolever/pip2pi/issues/37\n + . + """ %(", ".join(warn_normalized_pkg_names), )), stacklevel=0) + return 0 def globall(globs): @@ -397,7 +444,7 @@ def pip2pi(argv=sys.argv): bar==3.1 """)) - parser.add_symlink_option(OS_HAS_SYMLINK) + parser.add_index_options() option, argv = parser.parse_args(argv) if len(argv) < 3: @@ -419,7 +466,7 @@ def pip2pi(argv=sys.argv): print("pip2tgz returned an error; aborting.") return res - res = dir2pi([argv[0], working_dir], use_symlink=option.use_symlink) + res = _dir2pi(option, argv) if res: print("dir2pi returned an error; aborting.") return res From 74e0a4a200fd3bac15ef46a869c348ec44de8be1 Mon Sep 17 00:00:00 2001 From: David Wolever Date: Fri, 9 Jan 2015 13:58:47 -0500 Subject: [PATCH 269/709] Actual release of 0.6.5 --- libpip2pi/commands.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index 3f34cc42bfc..b5cb30351b3 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -306,7 +306,7 @@ def _dir2pi(option, argv): eventually be normalized by default. Silence this warning by passing `--no-normalized-package-names`.\n See also: https://github.com/wolever/pip2pi/issues/37\n - . + _ """ %(", ".join(warn_normalized_pkg_names), )), stacklevel=0) return 0 From cab2517d3205455ffc6fc7ee904afb989c580b99 Mon Sep 17 00:00:00 2001 From: David Wolever Date: Tue, 13 Jan 2015 17:18:47 -0500 Subject: [PATCH 270/709] Bugfix, bump to 0.6.6 --- libpip2pi/__init__.py | 2 +- libpip2pi/commands.py | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/libpip2pi/__init__.py b/libpip2pi/__init__.py index c08a7501ba2..e48b19c5884 100644 --- a/libpip2pi/__init__.py +++ b/libpip2pi/__init__.py @@ -1 +1 @@ -__version__ = (0, 6, 5) +__version__ = (0, 6, 6) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index b5cb30351b3..bab4e950891 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -452,7 +452,7 @@ def pip2pi(argv=sys.argv): parser.exit() target = argv[1] - pip_packages = argv[2:] + pip_argv = argv[2:] if ":" in target: is_remote = True working_dir = tempfile.mkdtemp(prefix="pip2pi-working-dir") @@ -461,12 +461,13 @@ def pip2pi(argv=sys.argv): is_remote = False working_dir = os.path.abspath(target) - res = pip2tgz([argv[0], working_dir] + pip_packages) + subcmd_argv = [argv[0], working_dir] + pip_argv + res = pip2tgz(subcmd_argv) if res: print("pip2tgz returned an error; aborting.") return res - res = _dir2pi(option, argv) + res = _dir2pi(option, subcmd_argv) if res: print("dir2pi returned an error; aborting.") return res From 4cdfa8b9d56338f7504b0edc5a501105e0eac9dd Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Wed, 21 Jan 2015 08:33:25 +0100 Subject: [PATCH 271/709] Copyright year update. --- LICENSE | 2 +- pygments/lexers/shell.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/LICENSE b/LICENSE index 641c8e8e702..10b8e9167cc 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2006-2014 by the respective authors (see AUTHORS file). +Copyright (c) 2006-2015 by the respective authors (see AUTHORS file). All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 1bbfd7a7e53..810ee7da2a3 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -5,7 +5,7 @@ Lexers for various shells. - :copyright: Copyright 2006-2014 by the Pygments team, see AUTHORS. + :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. """ From 69cd641efc98d42cc976935a6bdbc545dc6f4319 Mon Sep 17 00:00:00 2001 From: David Wolever Date: Sat, 14 Feb 2015 15:07:45 -0500 Subject: [PATCH 272/709] Don't consider fully qualified Windows paths to be remote --- libpip2pi/__init__.py | 2 +- libpip2pi/commands.py | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/libpip2pi/__init__.py b/libpip2pi/__init__.py index e48b19c5884..376ac0cf8cc 100644 --- a/libpip2pi/__init__.py +++ b/libpip2pi/__init__.py @@ -1 +1 @@ -__version__ = (0, 6, 6) +__version__ = (0, 6, 7) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index bab4e950891..328fd840907 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -413,6 +413,12 @@ def handle_new_wheels(outdir, new_wheels): pkg_name, ]) +WINDOWS_PATH_RE = re.compile(r"^[A-Za-z]:\\") + +def is_remote_target(target): + return ":" in target and not WINDOWS_PATH_RE.match(target) + + def pip2pi(argv=sys.argv): parser = Pip2PiOptionParser( usage="usage: %prog TARGET [PIP_OPTIONS] PACKAGES ...", @@ -453,7 +459,7 @@ def pip2pi(argv=sys.argv): target = argv[1] pip_argv = argv[2:] - if ":" in target: + if is_remote_target(target): is_remote = True working_dir = tempfile.mkdtemp(prefix="pip2pi-working-dir") atexit.register(lambda: shutil.rmtree(working_dir)) From c239a50f53b1821f87b1c0828dd1d2edd24621e2 Mon Sep 17 00:00:00 2001 From: VincentZurczak Date: Fri, 20 Feb 2015 14:10:08 +0100 Subject: [PATCH 273/709] Support Roboconf's DSL --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 061192312d1..3513a4698eb 100644 --- a/AUTHORS +++ b/AUTHORS @@ -170,5 +170,6 @@ Other contributors, listed alphabetically, are: * Enrique Zamudio -- Ceylon lexer * Alex Zimin -- Nemerle lexer * Rob Zimmerman -- Kal lexer +* Vincent Zurczak -- Roboconf lexer Many thanks for all contributions! From 153064b7d4f28d19fb468d2e09c6cd4bf252d597 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sat, 21 Feb 2015 22:33:29 +0100 Subject: [PATCH 274/709] credits for elisp --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 061192312d1..1fade5498c3 100644 --- a/AUTHORS +++ b/AUTHORS @@ -85,6 +85,7 @@ Other contributors, listed alphabetically, are: * Adam Koprowski -- Opa lexer * Benjamin Kowarsch -- Modula-2 lexer * Domen Kožar -- Nix lexer +* Oleh Krekel -- Emacs Lisp lexer * Alexander Kriegisch -- Kconfig and AspectJ lexers * Marek Kubica -- Scheme lexer * Jochen Kupperschmidt -- Markdown processor From f46fb666e0c23ed8fbbfc5603760e2e655dea9db Mon Sep 17 00:00:00 2001 From: Miikka Salminen Date: Sat, 7 Mar 2015 22:30:17 +0200 Subject: [PATCH 275/709] Added a new token type Comment.Hashbang with its documentation, and a support for it in Javascript, Perl, Python, Ruby and Bash lexers. --- pygments/lexers/shell.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 810ee7da2a3..a9c1e6b9482 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -60,7 +60,8 @@ class BashLexer(RegexLexer): r'shopt|source|suspend|test|time|times|trap|true|type|typeset|' r'ulimit|umask|unalias|unset|wait)\s*\b(?!\.)', Name.Builtin), - (r'#.*\n', Comment), + (r'\A#!.+\n', Comment.Hashbang), + (r'#.*\n', Comment.Single), (r'\\[\w\W]', String.Escape), (r'(\b\w+)(\s*)(=)', bygroups(Name.Variable, Text, Operator)), (r'[\[\]{}()=]', Operator), From 07e93d33cefeedbecdda620de8331239210d6987 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 8 Mar 2015 07:23:14 +0100 Subject: [PATCH 276/709] Changelog for lovelace style. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 1fade5498c3..4fa7e0daac9 100644 --- a/AUTHORS +++ b/AUTHORS @@ -136,6 +136,7 @@ Other contributors, listed alphabetically, are: * Andre Roberge -- Tango style * Konrad Rudolph -- LaTeX formatter enhancements * Mario Ruggier -- Evoque lexers +* Miikka Salminen -- Lovelace style, lexer enhancements * Stou Sandalski -- NumPy, FORTRAN, tcsh and XSLT lexers * Matteo Sasso -- Common Lisp lexer * Joe Schafer -- Ada lexer From 27cb731d90bb7279368010f715eb5a5121d48249 Mon Sep 17 00:00:00 2001 From: Antonia Stevens Date: Wed, 8 Apr 2015 16:02:42 -0400 Subject: [PATCH 277/709] Add --no-build-html option --- libpip2pi/commands.py | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index 328fd840907..1891843ef36 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -179,6 +179,14 @@ def add_index_options(self): self.add_option( '-N', '--no-normalize-package-names', dest="normalize_package_names", action="store_false") + self.add_option( + '-x', '--no-build-html', dest="build_html", action="store_false", + default=True, help=dedent(""" + Don't build index files for each directory, you might want to + to disable this if your server dynamically builds index files + using something like mod_autoindex and you want to make older + package/module versions continue to be available. + """)) self.add_option( '-s', '--symlink', dest="use_symlink", default=OS_HAS_SYMLINK, action="store_true", @@ -194,10 +202,10 @@ def _process_args(self, largs, rargs, values): An unknown option pass-through implementation of OptionParser. When unknown arguments are encountered, bundle with largs and try again, - until rargs is depleted. + until rargs is depleted. sys.exit(status) will still be called if a known argument is passed - incorrectly (e.g. missing arguments or bad argument types, etc.) + incorrectly (e.g. missing arguments or bad argument types, etc.) From http://stackoverflow.com/a/9307174/6364 """ @@ -289,13 +297,15 @@ def _dir2pi(option, argv): cgi.escape(pkg_dir_name), cgi.escape(pkg_name), ) - with open(os.path.join(pkg_dir, "index.html"), "a") as fp: - fp.write("%(name)s
\n" %{ - "name": cgi.escape(pkg_new_basename), - }) + if option.build_html: + with open(os.path.join(pkg_dir, "index.html"), "a") as fp: + fp.write("%(name)s
\n" %{ + "name": cgi.escape(pkg_new_basename), + }) pkg_index += "\n" - with open(pkgdirpath("simple/index.html"), "w") as fp: - fp.write(pkg_index) + if option.build_html: + with open(pkgdirpath("simple/index.html"), "w") as fp: + fp.write(pkg_index) if warn_normalized_pkg_names: warnings.warn(dedent(""" From 437ec7a23a21a01456147c51764b154b710a29ee Mon Sep 17 00:00:00 2001 From: Antonia Stevens Date: Wed, 8 Apr 2015 16:59:01 -0400 Subject: [PATCH 278/709] Add also-get-source to always downloand src pkg --- libpip2pi/commands.py | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index 1891843ef36..434ecb51661 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -187,6 +187,13 @@ def add_index_options(self): using something like mod_autoindex and you want to make older package/module versions continue to be available. """)) + self.add_option( + '-z', '--also-get-source', dest="get_source", action="store_true", + default=False, help=dedent(""" + In addition to downloading wheels, eggs or any other package + format also download the source tar.gz files in case the + platform using this index does not support the wheel/egg/etc + """)) self.add_option( '-s', '--symlink', dest="use_symlink", default=OS_HAS_SYMLINK, action="store_true", @@ -267,7 +274,7 @@ def _dir2pi(option, argv): "\n") warn_normalized_pkg_names = [] - + processed_pkg = [] for file in os.listdir(pkgdir): pkg_filepath = os.path.join(pkgdir, file) if not os.path.isfile(pkg_filepath): @@ -293,10 +300,14 @@ def _dir2pi(option, argv): os.symlink(symlink_source, symlink_target) else: shutil.copy2(pkg_filepath, symlink_target) - pkg_index += "%s
\n" %( - cgi.escape(pkg_dir_name), - cgi.escape(pkg_name), - ) + + if pkg_name not in processed_pkg: + pkg_index += "%s
\n" %( + cgi.escape(pkg_dir_name), + cgi.escape(pkg_name), + ) + processed_pkg.append(pkg_name) + if option.build_html: with open(os.path.join(pkg_dir, "index.html"), "a") as fp: fp.write("%(name)s
\n" %{ @@ -482,6 +493,13 @@ def pip2pi(argv=sys.argv): if res: print("pip2tgz returned an error; aborting.") return res + if option.get_source: + subcmd_argv_source = subcmd_argv[:] + subcmd_argv_source.insert(2, '--no-use-wheel') + res = pip2tgz(subcmd_argv_source) + if res: + print("pip2tgz returned an error; aborting.") + return res res = _dir2pi(option, subcmd_argv) if res: From 7ab7aabbe9766c24d72872fa218da0b33062eb90 Mon Sep 17 00:00:00 2001 From: Frits van Bommel Date: Wed, 22 Apr 2015 10:10:17 +0200 Subject: [PATCH 279/709] Fix highlighting for $# in the shell lexer. If '$' is directly followed by '#' the variable ends right there. This is especially important at the end of a string, as the closing quote would be lexed as part of the variable instead, but was wrong in every other case as well. Fixed by simply removing the '#?' and letting the following '.' eat it. --- pygments/lexers/shell.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index a9c1e6b9482..1e3640bffba 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -47,7 +47,7 @@ class BashLexer(RegexLexer): (r'\$\(\(', Keyword, 'math'), (r'\$\(', Keyword, 'paren'), (r'\$\{#?', String.Interpol, 'curly'), - (r'\$#?(\w+|.)', Name.Variable), + (r'\$(\w+|.)', Name.Variable), ], 'basic': [ (r'\b(if|fi|else|while|do|done|for|then|return|function|case|' From fe5fab3d18b4ced1b17801ac5a31387b85f1dd75 Mon Sep 17 00:00:00 2001 From: Andy Freeland Date: Sat, 16 May 2015 04:38:51 -0400 Subject: [PATCH 280/709] Failing doctest for dash normalization in wheels --- libpip2pi/commands.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index 328fd840907..ffb39c751c2 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -93,6 +93,8 @@ def file_to_package(file, basedir=None): ('PyYAML', '3.10-py2.7-macosx-10.7-x86_64.egg') >>> file_to_package("python_ldap-2.3.9-py2.7-macosx-10.3-fat.egg") ('python-ldap', '2.3.9-py2.7-macosx-10.3-fat.egg') + >>> file_to_package("python_ldap-2.4.19-cp27-none-macosx_10_10_x86_64.whl") + ('python-ldap', '2.4.19-cp27-none-macosx_10_10_x86_64.whl') >>> file_to_package("foo.whl") Traceback (most recent call last): ... From 048332b207d9a244962600bc65944bcbc05e5f13 Mon Sep 17 00:00:00 2001 From: Andy Freeland Date: Sat, 16 May 2015 04:39:17 -0400 Subject: [PATCH 281/709] Normalize dashes in wheel package names (fixes #27) This patch normalizes package names in wheels such that `pip install hello-world` will install a wheel if available. Given a package with a dash in the name, like `hello-world`, `python setup.py bdist_wheel` will create a wheel with a package name of `hello_world`. Unfortunately, running `pip install hello-world` will not look for a `hello_world`, only `hello-world`, and will never find a wheel with that package. --- libpip2pi/commands.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index ffb39c751c2..314226e8434 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -111,21 +111,24 @@ def file_to_package(file, basedir=None): name = dist.project_name split = (name, file[len(name)+1:]) to_safe_name = lambda x: x + to_safe_rest = lambda x: x elif file_ext == ".whl": bits = file.rsplit("-", 4) split = (bits[0], "-".join(bits[1:])) - to_safe_name = lambda x: x + to_safe_name = pkg_resources.safe_name + to_safe_rest = lambda x: x else: match = re.search(r"(?P.*?)-(?P\d+.*)", file) if not match: raise InvalidFilePackageName(file, basedir) split = (match.group("pkg"), match.group("rest")) to_safe_name = pkg_resources.safe_name + to_safe_rest = pkg_resources.safe_name if len(split) != 2 or not split[1]: raise InvalidFilePackageName(file, basedir) - return (split[0], to_safe_name(split[1])) + return (to_safe_name(split[0]), to_safe_rest(split[1])) def try_int(x): try: From 8c421ea25e223b954f2db9c056f5c59ae9a8bf23 Mon Sep 17 00:00:00 2001 From: Jon Parise Date: Sun, 17 May 2015 14:26:39 -0700 Subject: [PATCH 282/709] Adding a lexer for the Thrift interface definition language. --- AUTHORS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index 4fa7e0daac9..d3e807b080f 100644 --- a/AUTHORS +++ b/AUTHORS @@ -121,7 +121,7 @@ Other contributors, listed alphabetically, are: * Edward O'Callaghan -- Cryptol lexer * David Oliva -- Rebol lexer * Pat Pannuto -- nesC lexer -* Jon Parise -- Protocol buffers lexer +* Jon Parise -- Protocol buffers and Thrift lexers * Ronny Pfannschmidt -- BBCode lexer * Benjamin Peterson -- Test suite refactoring * Dominik Picheta -- Nimrod lexer From 02549d86a51c91becd3f855860d4b48bb1004e3f Mon Sep 17 00:00:00 2001 From: David Wolever Date: Wed, 27 May 2015 15:33:22 -0400 Subject: [PATCH 283/709] Use a set for processed package names --- libpip2pi/commands.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index 6cf01cf4d9b..5a36714fd08 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -279,7 +279,7 @@ def _dir2pi(option, argv): "\n") warn_normalized_pkg_names = [] - processed_pkg = [] + processed_pkg = set() for file in os.listdir(pkgdir): pkg_filepath = os.path.join(pkgdir, file) if not os.path.isfile(pkg_filepath): @@ -311,7 +311,7 @@ def _dir2pi(option, argv): cgi.escape(pkg_dir_name), cgi.escape(pkg_name), ) - processed_pkg.append(pkg_name) + processed_pkg.add(pkg_name) if option.build_html: with open(os.path.join(pkg_dir, "index.html"), "a") as fp: @@ -319,6 +319,7 @@ def _dir2pi(option, argv): "name": cgi.escape(pkg_new_basename), }) pkg_index += "\n" + if option.build_html: with open(pkgdirpath("simple/index.html"), "w") as fp: fp.write(pkg_index) From cf5817bcc28268b8b5c85620f4ca42a5da8ca6f2 Mon Sep 17 00:00:00 2001 From: David Wolever Date: Wed, 27 May 2015 15:35:25 -0400 Subject: [PATCH 284/709] Bump version to 0.6.8 --- libpip2pi/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libpip2pi/__init__.py b/libpip2pi/__init__.py index 376ac0cf8cc..b2073bf4094 100644 --- a/libpip2pi/__init__.py +++ b/libpip2pi/__init__.py @@ -1 +1 @@ -__version__ = (0, 6, 7) +__version__ = (0, 6, 8) From 981083e8bab226084fb7c07250db1baf1170aafd Mon Sep 17 00:00:00 2001 From: hhsprings Date: Fri, 19 Jun 2015 21:10:21 +0900 Subject: [PATCH 285/709] add MSDOSSessionLexer and PowerShellSessionLexer. --- pygments/lexers/shell.py | 103 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 102 insertions(+), 1 deletion(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index a9c1e6b9482..dbab390db73 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -18,7 +18,8 @@ __all__ = ['BashLexer', 'BashSessionLexer', 'TcshLexer', 'BatchLexer', - 'PowerShellLexer', 'ShellSessionLexer'] + 'MSDOSSessionLexer', + 'PowerShellLexer', 'ShellSessionLexer', 'PowerShellSessionLexer'] line_re = re.compile('.*?\n') @@ -273,6 +274,56 @@ class BatchLexer(RegexLexer): } +class MSDOSSessionLexer(Lexer): + """ + Lexer for simplistic MSDOS sessions. + + .. versionadded:: 2.0 + """ + + name = 'MSDOS Session' + aliases = ['doscon'] + filenames = [] + mimetypes = [] + + def get_tokens_unprocessed(self, text): + bashlexer = BatchLexer(**self.options) + + pos = 0 + curcode = '' + insertions = [] + + for match in line_re.finditer(text): + line = match.group() + m = re.match(r'^([^>]+>)(.*\n?)', line) + if m: + # To support output lexers (say diff output), the output + # needs to be broken by prompts whenever the output lexer + # changes. + if not insertions: + pos = match.start() + + insertions.append((len(curcode), + [(0, Generic.Prompt, m.group(1))])) + curcode += m.group(2) + elif line.startswith('More? '): + insertions.append((len(curcode), + [(0, Generic.Prompt, line[:len('More? ')])])) + curcode += line[len('More? '):] + else: + if insertions: + toks = bashlexer.get_tokens_unprocessed(curcode) + for i, t, v in do_insertions(insertions, toks): + yield pos+i, t, v + yield match.start(), Generic.Output, line + insertions = [] + curcode = '' + if insertions: + for i, t, v in do_insertions(insertions, + bashlexer.get_tokens_unprocessed(curcode)): + yield pos+i, t, v + + class TcshLexer(RegexLexer): """ Lexer for tcsh scripts. @@ -436,3 +487,53 @@ class PowerShellLexer(RegexLexer): (r".", String.Heredoc), ] } + + +class PowerShellSessionLexer(Lexer): + """ + Lexer for simplistic Windows PowerShell sessions. + + .. versionadded:: 2.0 + """ + + name = 'PowerShell Session' + aliases = ['ps1con'] + filenames = [] + mimetypes = [] + + def get_tokens_unprocessed(self, text): + bashlexer = PowerShellLexer(**self.options) + + pos = 0 + curcode = '' + insertions = [] + + for match in line_re.finditer(text): + line = match.group() + m = re.match(r'^(PS [^>]+> )(.*\n?)', line) + if m: + # To support output lexers (say diff output), the output + # needs to be broken by prompts whenever the output lexer + # changes. + if not insertions: + pos = match.start() + + insertions.append((len(curcode), + [(0, Generic.Prompt, m.group(1))])) + curcode += m.group(2) + elif line.startswith('>> '): + insertions.append((len(curcode), + [(0, Generic.Prompt, line[:len('>> ')])])) + curcode += line[len('>> '):] + else: + if insertions: + toks = bashlexer.get_tokens_unprocessed(curcode) + for i, t, v in do_insertions(insertions, toks): + yield pos+i, t, v + yield match.start(), Generic.Output, line + insertions = [] + curcode = '' + if insertions: + for i, t, v in do_insertions(insertions, + bashlexer.get_tokens_unprocessed(curcode)): + yield pos+i, t, v From cd11a71012b76bf7239ac1a8779b91526ef37367 Mon Sep 17 00:00:00 2001 From: hhsprings Date: Fri, 19 Jun 2015 22:24:40 +0900 Subject: [PATCH 286/709] 1. fix wrong versionadded. 2. extract base session lexer ShellSessionBaseLexer. --- pygments/lexers/shell.py | 171 ++++++++++----------------------------- 1 file changed, 44 insertions(+), 127 deletions(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index dbab390db73..ea370553fb7 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -17,7 +17,7 @@ from pygments.util import shebang_matches -__all__ = ['BashLexer', 'BashSessionLexer', 'TcshLexer', 'BatchLexer', +__all__ = ['BashLexer', 'ShellSessionBaseLexer', 'BashSessionLexer', 'TcshLexer', 'BatchLexer', 'MSDOSSessionLexer', 'PowerShellLexer', 'ShellSessionLexer', 'PowerShellSessionLexer'] @@ -121,20 +121,14 @@ def analyse_text(text): return 0.2 -class BashSessionLexer(Lexer): +class ShellSessionBaseLexer(Lexer): """ - Lexer for simplistic shell sessions. + Base lexer for simplistic shell sessions. - .. versionadded:: 1.1 + .. versionadded:: 2.1 """ - - name = 'Bash Session' - aliases = ['console'] - filenames = ['*.sh-session'] - mimetypes = ['application/x-shell-session'] - def get_tokens_unprocessed(self, text): - bashlexer = BashLexer(**self.options) + innerlexer = self._innerLexerCls(**self.options) pos = 0 curcode = '' @@ -142,8 +136,7 @@ def get_tokens_unprocessed(self, text): for match in line_re.finditer(text): line = match.group() - m = re.match(r'^((?:\(\S+\))?(?:|sh\S*?|\w+\S+[@:]\S+(?:\s+\S+)' - r'?|\[\S+[@:][^\n]+\].+)[$#%])(.*\n?)' , line) + m = re.match(self._ps1rgx, line) if m: # To support output lexers (say diff output), the output # needs to be broken by prompts whenever the output lexer @@ -154,13 +147,13 @@ def get_tokens_unprocessed(self, text): insertions.append((len(curcode), [(0, Generic.Prompt, m.group(1))])) curcode += m.group(2) - elif line.startswith('>'): + elif line.startswith(self._ps2): insertions.append((len(curcode), - [(0, Generic.Prompt, line[:1])])) - curcode += line[1:] + [(0, Generic.Prompt, line[:len(self._ps2)])])) + curcode += line[len(self._ps2):] else: if insertions: - toks = bashlexer.get_tokens_unprocessed(curcode) + toks = innerlexer.get_tokens_unprocessed(curcode) for i, t, v in do_insertions(insertions, toks): yield pos+i, t, v yield match.start(), Generic.Output, line @@ -168,11 +161,30 @@ def get_tokens_unprocessed(self, text): curcode = '' if insertions: for i, t, v in do_insertions(insertions, - bashlexer.get_tokens_unprocessed(curcode)): + innerlexer.get_tokens_unprocessed(curcode)): yield pos+i, t, v -class ShellSessionLexer(Lexer): +class BashSessionLexer(ShellSessionBaseLexer): + """ + Lexer for simplistic shell sessions. + + .. versionadded:: 1.1 + """ + + name = 'Bash Session' + aliases = ['console'] + filenames = ['*.sh-session'] + mimetypes = ['application/x-shell-session'] + + _innerLexerCls = BashLexer + _ps1rgx = \ + r'^((?:\(\S+\))?(?:|sh\S*?|\w+\S+[@:]\S+(?:\s+\S+)' \ + r'?|\[\S+[@:][^\n]+\].+)[$#%])(.*\n?)' + _ps2 = '>' + + +class ShellSessionLexer(ShellSessionBaseLexer): """ Lexer for shell sessions that works with different command prompts @@ -184,38 +196,9 @@ class ShellSessionLexer(Lexer): filenames = ['*.shell-session'] mimetypes = ['application/x-sh-session'] - def get_tokens_unprocessed(self, text): - bashlexer = BashLexer(**self.options) - - pos = 0 - curcode = '' - insertions = [] - - for match in line_re.finditer(text): - line = match.group() - m = re.match(r'^((?:\[?\S+@[^$#%]+\]?\s*)[$#%])(.*\n?)', line) - if m: - # To support output lexers (say diff output), the output - # needs to be broken by prompts whenever the output lexer - # changes. - if not insertions: - pos = match.start() - - insertions.append((len(curcode), - [(0, Generic.Prompt, m.group(1))])) - curcode += m.group(2) - else: - if insertions: - toks = bashlexer.get_tokens_unprocessed(curcode) - for i, t, v in do_insertions(insertions, toks): - yield pos+i, t, v - yield match.start(), Generic.Output, line - insertions = [] - curcode = '' - if insertions: - for i, t, v in do_insertions(insertions, - bashlexer.get_tokens_unprocessed(curcode)): - yield pos+i, t, v + _innerLexerCls = BashLexer + _ps1rgx = r'^((?:\[?\S+@[^$#%]+\]?\s*)[$#%])(.*\n?)', + _ps2 = '>' class BatchLexer(RegexLexer): @@ -274,11 +257,11 @@ class BatchLexer(RegexLexer): } -class MSDOSSessionLexer(Lexer): +class MSDOSSessionLexer(ShellSessionBaseLexer): """ Lexer for simplistic MSDOS sessions. - .. versionadded:: 2.0 + .. versionadded:: 2.1 """ name = 'MSDOS Session' @@ -286,42 +269,9 @@ class MSDOSSessionLexer(Lexer): filenames = [] mimetypes = [] - def get_tokens_unprocessed(self, text): - bashlexer = BatchLexer(**self.options) - - pos = 0 - curcode = '' - insertions = [] - - for match in line_re.finditer(text): - line = match.group() - m = re.match(r'^([^>]+>)(.*\n?)', line) - if m: - # To support output lexers (say diff output), the output - # needs to be broken by prompts whenever the output lexer - # changes. - if not insertions: - pos = match.start() - - insertions.append((len(curcode), - [(0, Generic.Prompt, m.group(1))])) - curcode += m.group(2) - elif line.startswith('More? '): - insertions.append((len(curcode), - [(0, Generic.Prompt, line[:len('More? ')])])) - curcode += line[len('More? '):] - else: - if insertions: - toks = bashlexer.get_tokens_unprocessed(curcode) - for i, t, v in do_insertions(insertions, toks): - yield pos+i, t, v - yield match.start(), Generic.Output, line - insertions = [] - curcode = '' - if insertions: - for i, t, v in do_insertions(insertions, - bashlexer.get_tokens_unprocessed(curcode)): - yield pos+i, t, v + _innerLexerCls = BatchLexer + _ps1rgx = r'^([^>]+>)(.*\n?)' + _ps2 = 'More? ' class TcshLexer(RegexLexer): @@ -489,11 +439,11 @@ class PowerShellLexer(RegexLexer): } -class PowerShellSessionLexer(Lexer): +class PowerShellSessionLexer(ShellSessionBaseLexer): """ Lexer for simplistic Windows PowerShell sessions. - .. versionadded:: 2.0 + .. versionadded:: 2.1 """ name = 'PowerShell Session' @@ -501,39 +451,6 @@ class PowerShellSessionLexer(Lexer): filenames = [] mimetypes = [] - def get_tokens_unprocessed(self, text): - bashlexer = PowerShellLexer(**self.options) - - pos = 0 - curcode = '' - insertions = [] - - for match in line_re.finditer(text): - line = match.group() - m = re.match(r'^(PS [^>]+> )(.*\n?)', line) - if m: - # To support output lexers (say diff output), the output - # needs to be broken by prompts whenever the output lexer - # changes. - if not insertions: - pos = match.start() - - insertions.append((len(curcode), - [(0, Generic.Prompt, m.group(1))])) - curcode += m.group(2) - elif line.startswith('>> '): - insertions.append((len(curcode), - [(0, Generic.Prompt, line[:len('>> ')])])) - curcode += line[len('>> '):] - else: - if insertions: - toks = bashlexer.get_tokens_unprocessed(curcode) - for i, t, v in do_insertions(insertions, toks): - yield pos+i, t, v - yield match.start(), Generic.Output, line - insertions = [] - curcode = '' - if insertions: - for i, t, v in do_insertions(insertions, - bashlexer.get_tokens_unprocessed(curcode)): - yield pos+i, t, v + _innerLexerCls = PowerShellLexer + _ps1rgx = r'^(PS [^>]+> )(.*\n?)' + _ps2 = '>> ' From d16d8cd062b0711ff4e3f742418ec0a24932ca09 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sat, 8 Aug 2015 07:17:40 +0200 Subject: [PATCH 287/709] archetype: style fixes, add authors/changelog entries --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 96a346ba476..d4d85bb7aaf 100644 --- a/AUTHORS +++ b/AUTHORS @@ -21,6 +21,7 @@ Other contributors, listed alphabetically, are: * Tim Baumann -- (Literate) Agda lexer * Paul Baumgart, 280 North, Inc. -- Objective-J lexer * Michael Bayer -- Myghty lexers +* Thomas Beale -- Archetype lexers * John Benediktsson -- Factor lexer * Christopher Bertels -- Fancy lexer * Jarrett Billingsley -- MiniD lexer From 7b031718bc700529d3ef3df7510800ce1050e35e Mon Sep 17 00:00:00 2001 From: JJ Atria Date: Sat, 22 Aug 2015 23:44:10 +0100 Subject: [PATCH 288/709] Added Praat lexer (praat.org) --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index d4d85bb7aaf..9857539cb70 100644 --- a/AUTHORS +++ b/AUTHORS @@ -13,6 +13,7 @@ Other contributors, listed alphabetically, are: * Timothy Armstrong -- Dart lexer fixes * Jeffrey Arnold -- R/S, Rd, BUGS, Jags, and Stan lexers * Jeremy Ashkenas -- CoffeeScript lexer +* José Joaquín Atria -- Praat lexer * Stefan Matthias Aust -- Smalltalk lexer * Lucas Bajolet -- Nit lexer * Ben Bangert -- Mako lexers From fb3c4de70717a0c37fe77af87f5c4c76d1434017 Mon Sep 17 00:00:00 2001 From: Louis Mandel Date: Mon, 24 Aug 2015 14:45:10 -0400 Subject: [PATCH 289/709] Add lexer for the X10 language. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index d4d85bb7aaf..a2674b2d400 100644 --- a/AUTHORS +++ b/AUTHORS @@ -97,6 +97,7 @@ Other contributors, listed alphabetically, are: * Mark Lee -- Vala lexer * Ben Mabey -- Gherkin lexer * Angus MacArthur -- QML lexer +* Louis Mandel -- X10 lexer * Louis Marchand -- Eiffel lexer * Simone Margaritelli -- Hybris lexer * Kirk McDonald -- D lexer From c9d27868558b6c81b23df8ee5b69463b5b22aca4 Mon Sep 17 00:00:00 2001 From: Tim Hatch Date: Fri, 9 Oct 2015 02:56:28 -0700 Subject: [PATCH 290/709] Rewrite single character variable handling in BashLexer Fixes #877 --- pygments/lexers/shell.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 1e3640bffba..cd9cad15971 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -47,7 +47,9 @@ class BashLexer(RegexLexer): (r'\$\(\(', Keyword, 'math'), (r'\$\(', Keyword, 'paren'), (r'\$\{#?', String.Interpol, 'curly'), - (r'\$(\w+|.)', Name.Variable), + (r'\$[a-fA-F_][a-fA-F0-9_]*', Name.Variable), # user variable + (r'\$(?:\d+|[#$?!_*@-])', Name.Variable), # builtin + (r'\$', Text), ], 'basic': [ (r'\b(if|fi|else|while|do|done|for|then|return|function|case|' From 16340ac1defead460fc65630ca537fa12f814d93 Mon Sep 17 00:00:00 2001 From: Tim Hatch Date: Mon, 12 Oct 2015 15:55:10 -0700 Subject: [PATCH 291/709] Add Terraform to AUTHORS --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 1d76ba56db7..c1153a59757 100644 --- a/AUTHORS +++ b/AUTHORS @@ -38,6 +38,7 @@ Other contributors, listed alphabetically, are: * Bryan Davis -- EBNF lexer * Owen Durni -- Haxe lexer * Alexander Dutton, Oxford University Computing Services -- SPARQL lexer +* James Edwards -- Terraform lexer * Nick Efford -- Python 3 lexer * Sven Efftinge -- Xtend lexer * Artem Egorkine -- terminal256 formatter From 5fd66b8e8268fcbdf8c459ca32d28c7b51194906 Mon Sep 17 00:00:00 2001 From: Tim Hatch Date: Tue, 13 Oct 2015 09:29:15 -0700 Subject: [PATCH 292/709] Update authors and changelog --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index c1153a59757..095a56f7977 100644 --- a/AUTHORS +++ b/AUTHORS @@ -64,6 +64,7 @@ Other contributors, listed alphabetically, are: * Steven Hazel -- Tcl lexer * Aslak Hellesøy -- Gherkin lexer * Greg Hendershott -- Racket lexer +* Justin Hendrick -- ParaSail lexer * David Hess, Fish Software, Inc. -- Objective-J lexer * Varun Hiremath -- Debian control lexer * Rob Hoelz -- Perl 6 lexer From d22c2f6c0da841291e3c40c6b19206dda842f01e Mon Sep 17 00:00:00 2001 From: Tim Hatch Date: Tue, 13 Oct 2015 09:45:20 -0700 Subject: [PATCH 293/709] Add Boogie to changelog --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 095a56f7977..8dadcf79842 100644 --- a/AUTHORS +++ b/AUTHORS @@ -59,6 +59,7 @@ Other contributors, listed alphabetically, are: * Patrick Gotthardt -- PHP namespaces support * Olivier Guibe -- Asymptote lexer * Jordi Gutiérrez Hermoso -- Octave lexer +* Florian Hahn -- Boogie lexer * Martin Harriman -- SNOBOL lexer * Matthew Harrison -- SVG formatter * Steven Hazel -- Tcl lexer From 1abd27cf67b41670680d99fce0cdbd7dea9ddc52 Mon Sep 17 00:00:00 2001 From: Tim Hatch Date: Tue, 13 Oct 2015 09:48:53 -0700 Subject: [PATCH 294/709] Add Turtle to changelog --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 8dadcf79842..2d00019444c 100644 --- a/AUTHORS +++ b/AUTHORS @@ -63,6 +63,7 @@ Other contributors, listed alphabetically, are: * Martin Harriman -- SNOBOL lexer * Matthew Harrison -- SVG formatter * Steven Hazel -- Tcl lexer +* Dan Michael Heggø -- Turtle lexer * Aslak Hellesøy -- Gherkin lexer * Greg Hendershott -- Racket lexer * Justin Hendrick -- ParaSail lexer From 6a9d7b732f7f0eebeed16a29e9bf317823ced8c7 Mon Sep 17 00:00:00 2001 From: Seth Rosenblum Date: Wed, 14 Oct 2015 11:54:03 -0400 Subject: [PATCH 295/709] Warn when symlink creation fails. Print a warning and skip over the file when symlink creation fails, to account for duplicate symlinks. Fixes #50. --- libpip2pi/commands.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index 5a36714fd08..cfceb9766f2 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -302,7 +302,12 @@ def _dir2pi(option, argv): symlink_target = os.path.join(pkg_dir, pkg_new_basename) symlink_source = os.path.join("../../", pkg_basename) if option.use_symlink and OS_HAS_SYMLINK: - os.symlink(symlink_source, symlink_target) + try: + os.symlink(symlink_source, symlink_target) + except OSError as e: + warnings.warn(dedent(""" + WARNING: problem encountered creating symlink %s, Skipping : %s + """ %(pkg_new_basename, e))) else: shutil.copy2(pkg_filepath, symlink_target) From 29c8536c6023e845bd1f1571bb332296d8ce1448 Mon Sep 17 00:00:00 2001 From: Tim Hatch Date: Wed, 14 Oct 2015 09:48:30 -0700 Subject: [PATCH 296/709] Housekeeping update --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 4f8430fd074..faa91673895 100644 --- a/AUTHORS +++ b/AUTHORS @@ -36,6 +36,7 @@ Other contributors, listed alphabetically, are: * Daniël W. Crompton - Pike lexer * Pete Curry -- bugfixes * Bryan Davis -- EBNF lexer +* Bruno Deferrari -- Shen lexer * Owen Durni -- Haxe lexer * Alexander Dutton, Oxford University Computing Services -- SPARQL lexer * James Edwards -- Terraform lexer From 43b624e25123332daedd90c6cbf10d836ba648ac Mon Sep 17 00:00:00 2001 From: Tim Hatch Date: Wed, 14 Oct 2015 10:01:50 -0700 Subject: [PATCH 297/709] Add Tcsh session lexer --- pygments/lexers/shell.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index ea370553fb7..1a4937c1cae 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -19,7 +19,7 @@ __all__ = ['BashLexer', 'ShellSessionBaseLexer', 'BashSessionLexer', 'TcshLexer', 'BatchLexer', 'MSDOSSessionLexer', - 'PowerShellLexer', 'ShellSessionLexer', 'PowerShellSessionLexer'] + 'PowerShellLexer', 'ShellSessionLexer', 'PowerShellSessionLexer', 'TcshSessionLexer'] line_re = re.compile('.*?\n') @@ -341,6 +341,22 @@ class TcshLexer(RegexLexer): ], } +class TcshSessionLexer(ShellSessionBaseLexer): + """ + Lexer for Tcsh sessions. + + .. versionadded:: 2.1 + """ + + name = 'Tcsh Session' + aliases = ['tcshcon'] + filenames = [] + mimetypes = [] + + _innerLexerCls = TcshLexer + _ps1rgx = r'^([^>]+>)(.*\n?)' + _ps2 = '? ' + class PowerShellLexer(RegexLexer): """ From 04e1aee8f1477232b4a1cd5793fa3f1cbcbf76a9 Mon Sep 17 00:00:00 2001 From: Tim Hatch Date: Wed, 14 Oct 2015 10:17:36 -0700 Subject: [PATCH 298/709] Rework of shell session lexers --- pygments/lexers/shell.py | 31 +++++++------------------------ 1 file changed, 7 insertions(+), 24 deletions(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 0e48120896c..f44e7e37d69 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -17,8 +17,8 @@ from pygments.util import shebang_matches -__all__ = ['BashLexer', 'ShellSessionBaseLexer', 'BashSessionLexer', 'TcshLexer', 'BatchLexer', - 'MSDOSSessionLexer', 'PowerShellLexer', 'ShellSessionLexer', +__all__ = ['BashLexer', 'BashSessionLexer', 'TcshLexer', 'BatchLexer', + 'MSDOSSessionLexer', 'PowerShellLexer', 'PowerShellSessionLexer', 'TcshSessionLexer', 'FishShellLexer'] line_re = re.compile('.*?\n') @@ -175,31 +175,14 @@ class BashSessionLexer(ShellSessionBaseLexer): """ name = 'Bash Session' - aliases = ['console'] - filenames = ['*.sh-session'] - mimetypes = ['application/x-shell-session'] + aliases = ['console', 'shell-session'] + filenames = ['*.sh-session', '*.shell-session'] + mimetypes = ['application/x-shell-session', 'application/x-sh-session'] _innerLexerCls = BashLexer _ps1rgx = \ - r'^((?:\(\S+\))?(?:|sh\S*?|\w+\S+[@:]\S+(?:\s+\S+)' \ - r'?|\[\S+[@:][^\n]+\].+)[$#%])(.*\n?)' - _ps2 = '>' - - -class ShellSessionLexer(ShellSessionBaseLexer): - """ - Lexer for shell sessions that works with different command prompts - - .. versionadded:: 1.6 - """ - - name = 'Shell Session' - aliases = ['shell-session'] - filenames = ['*.shell-session'] - mimetypes = ['application/x-sh-session'] - - _innerLexerCls = BashLexer - _ps1rgx = r'^((?:\[?\S+@[^$#%]+\]?\s*)[$#%])(.*\n?)', + r'^((?:(?:\[.*?\])|(?:\(\S+\))?(?:| |sh\S*?|\w+\S+[@:]\S+(?:\s+\S+)' \ + r'?|\[\S+[@:][^\n]+\].+))\s*[$#%])(.*\n?)' _ps2 = '>' From e2eec20f2a557e4f7140b5c4851e3d5abbce93a6 Mon Sep 17 00:00:00 2001 From: Tim Hatch Date: Wed, 14 Oct 2015 11:54:55 -0700 Subject: [PATCH 299/709] Cleanups in preparation for 2.1 release. --- AUTHORS | 5 +++++ README.rst | 2 +- pygments/lexers/shell.py | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/AUTHORS b/AUTHORS index faa91673895..9990aeffb45 100644 --- a/AUTHORS +++ b/AUTHORS @@ -23,6 +23,7 @@ Other contributors, listed alphabetically, are: * Michael Bayer -- Myghty lexers * Thomas Beale -- Archetype lexers * John Benediktsson -- Factor lexer +* Vincent Bernat -- LessCSS lexer * Christopher Bertels -- Fancy lexer * Jarrett Billingsley -- MiniD lexer * Adam Blinkinsop -- Haskell, Redcode lexers @@ -43,6 +44,7 @@ Other contributors, listed alphabetically, are: * Nick Efford -- Python 3 lexer * Sven Efftinge -- Xtend lexer * Artem Egorkine -- terminal256 formatter +* Michael Ficarra -- CPSA lexer * James H. Fisher -- PostScript lexer * William S. Fulton -- SWIG lexer * Carlos Galdino -- Elixir and Elixir Console lexers @@ -78,6 +80,7 @@ Other contributors, listed alphabetically, are: * Alastair Houghton -- Lexer inheritance facility * Tim Howard -- BlitzMax lexer * Ivan Inozemtsev -- Fantom lexer +* Hiroaki Itoh -- Shell console rewrite * Brian R. Jackson -- Tea lexer * Christian Jann -- ShellSession lexer * Dennis Kaarsemaker -- sources.list lexer @@ -159,6 +162,8 @@ Other contributors, listed alphabetically, are: * Jerome St-Louis -- eC lexer * James Strachan -- Kotlin lexer * Tom Stuart -- Treetop lexer +* Colin Sullivan -- SuperCollider lexer +* Edoardo Tenani -- Arduino lexer * Tiberius Teng -- default style overhaul * Jeremy Thurgood -- Erlang, Squid config lexers * Brian Tiffin -- OpenCOBOL lexer diff --git a/README.rst b/README.rst index e6c03926a9b..350e242ee72 100644 --- a/README.rst +++ b/README.rst @@ -28,7 +28,7 @@ repository, tickets and pull requests can be viewed. Continuous testing runs on drone.io: .. image:: https://drone.io/bitbucket.org/birkenfeld/pygments-main/status.png - :target: https://drone.io/bitbucket.org/birkenfeld/pygments-main/ + :target: https://drone.io/bitbucket.org/birkenfeld/pygments-main The authors ----------- diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index f44e7e37d69..bfecf5938ff 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -444,7 +444,7 @@ class FishShellLexer(RegexLexer): """ Lexer for Fish shell scripts. - .. versionadded:: 2.1.1 + .. versionadded:: 2.1 """ name = 'Fish' From 04d06b2a6d22545e48dbe0dd073ce7ecbbf64e8b Mon Sep 17 00:00:00 2001 From: Tim Hatch Date: Wed, 14 Oct 2015 18:13:00 -0700 Subject: [PATCH 300/709] Update changelog --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 9990aeffb45..8f1f948acf8 100644 --- a/AUTHORS +++ b/AUTHORS @@ -123,6 +123,7 @@ Other contributors, listed alphabetically, are: * Jon Morton -- Rust lexer * Paulo Moura -- Logtalk lexer * Mher Movsisyan -- DTD lexer +* Dejan Muhamedagic -- Crmsh lexer * Ana Nelson -- Ragel, ANTLR, R console lexers * Nam T. Nguyen -- Monokai style * Jesper Noehr -- HTML formatter "anchorlinenos" From d2088d5f7a19b9e9f0bf4d836043d642c8565e96 Mon Sep 17 00:00:00 2001 From: Tim Hatch Date: Wed, 14 Oct 2015 18:33:43 -0700 Subject: [PATCH 301/709] Fixup naming of IRC test; add to docs --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 471c91e2300..5101af12e90 100644 --- a/AUTHORS +++ b/AUTHORS @@ -23,6 +23,7 @@ Other contributors, listed alphabetically, are: * Michael Bayer -- Myghty lexers * Thomas Beale -- Archetype lexers * John Benediktsson -- Factor lexer +* Trevor Bergeron -- mIRC formatter * Vincent Bernat -- LessCSS lexer * Christopher Bertels -- Fancy lexer * Jarrett Billingsley -- MiniD lexer From f551b0be9ad16f5e11e8713daedb46041a2c6e18 Mon Sep 17 00:00:00 2001 From: Tim Hatch Date: Fri, 16 Oct 2015 19:26:11 -0700 Subject: [PATCH 302/709] Refs #1125: improve detection of builtins. It's still too greedy, e.g. 'jobs jobs jobs' highlights all as builtins, while only the first should be. --- pygments/lexers/shell.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index adb7744c50d..041bdbe10e4 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -62,7 +62,7 @@ class BashLexer(RegexLexer): r'export|false|fc|fg|getopts|hash|help|history|jobs|kill|let|' r'local|logout|popd|printf|pushd|pwd|read|readonly|set|shift|' r'shopt|source|suspend|test|time|times|trap|true|type|typeset|' - r'ulimit|umask|unalias|unset|wait)\s*\b(?!\.)', + r'ulimit|umask|unalias|unset|wait)(?=[\s)`])', Name.Builtin), (r'\A#!.+\n', Comment.Hashbang), (r'#.*\n', Comment.Single), From 227fa009334cbeeee9f4d97d4f1feb61f8886d6b Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sat, 17 Oct 2015 08:03:57 +0200 Subject: [PATCH 303/709] Changelog update for PR#504. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 945fc962c62..1a1428a17eb 100644 --- a/AUTHORS +++ b/AUTHORS @@ -40,6 +40,7 @@ Other contributors, listed alphabetically, are: * Pete Curry -- bugfixes * Bryan Davis -- EBNF lexer * Bruno Deferrari -- Shen lexer +* Giedrius Dubinskas -- HTML formatter improvements * Owen Durni -- Haxe lexer * Alexander Dutton, Oxford University Computing Services -- SPARQL lexer * James Edwards -- Terraform lexer From 3e3f01b033872366527cfbc7b10a275ee97a8626 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sat, 17 Oct 2015 08:17:34 +0200 Subject: [PATCH 304/709] Shell/supercollider: style fixes --- pygments/lexers/shell.py | 47 ++++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 041bdbe10e4..dc23d01811b 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -12,9 +12,9 @@ import re from pygments.lexer import Lexer, RegexLexer, do_insertions, bygroups, \ - include, default, this, using, words + include, default, this, using, words from pygments.token import Punctuation, \ - Text, Comment, Operator, Keyword, Name, String, Number, Generic + Text, Comment, Operator, Keyword, Name, String, Number, Generic from pygments.util import shebang_matches @@ -22,7 +22,7 @@ 'MSDOSSessionLexer', 'PowerShellLexer', 'PowerShellSessionLexer', 'TcshSessionLexer', 'FishShellLexer'] -line_re = re.compile('.*?\n') +line_re = re.compile('.*?\n') class BashLexer(RegexLexer): @@ -49,8 +49,8 @@ class BashLexer(RegexLexer): (r'\$\(\(', Keyword, 'math'), (r'\$\(', Keyword, 'paren'), (r'\$\{#?', String.Interpol, 'curly'), - (r'\$[a-fA-F_][a-fA-F0-9_]*', Name.Variable), # user variable - (r'\$(?:\d+|[#$?!_*@-])', Name.Variable), # builtin + (r'\$[a-fA-F_][a-fA-F0-9_]*', Name.Variable), # user variable + (r'\$(?:\d+|[#$?!_*@-])', Name.Variable), # builtin (r'\$', Text), ], 'basic': [ @@ -578,6 +578,7 @@ class TcshLexer(RegexLexer): ], } + class TcshSessionLexer(ShellSessionBaseLexer): """ Lexer for Tcsh sessions. @@ -603,7 +604,7 @@ class PowerShellLexer(RegexLexer): """ name = 'PowerShell' aliases = ['powershell', 'posh', 'ps1', 'psm1'] - filenames = ['*.ps1','*.psm1'] + filenames = ['*.ps1', '*.psm1'] mimetypes = ['text/x-powershell'] flags = re.DOTALL | re.IGNORECASE | re.MULTILINE @@ -692,6 +693,23 @@ class PowerShellLexer(RegexLexer): } +class PowerShellSessionLexer(ShellSessionBaseLexer): + """ + Lexer for simplistic Windows PowerShell sessions. + + .. versionadded:: 2.1 + """ + + name = 'PowerShell Session' + aliases = ['ps1con'] + filenames = [] + mimetypes = [] + + _innerLexerCls = PowerShellLexer + _ps1rgx = r'^(PS [^>]+> )(.*\n?)' + _ps2 = '>> ' + + class FishShellLexer(RegexLexer): """ Lexer for Fish shell scripts. @@ -763,20 +781,3 @@ class FishShellLexer(RegexLexer): include('root'), ], } - - -class PowerShellSessionLexer(ShellSessionBaseLexer): - """ - Lexer for simplistic Windows PowerShell sessions. - - .. versionadded:: 2.1 - """ - - name = 'PowerShell Session' - aliases = ['ps1con'] - filenames = [] - mimetypes = [] - - _innerLexerCls = PowerShellLexer - _ps1rgx = r'^(PS [^>]+> )(.*\n?)' - _ps2 = '>> ' From 0a939fb8be8cf6719da988f2de01f0b00da6abab Mon Sep 17 00:00:00 2001 From: Tim Hatch Date: Sat, 17 Oct 2015 07:51:00 -0700 Subject: [PATCH 305/709] Add missing docstring for CSound; add author --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 945fc962c62..7b207aea5b8 100644 --- a/AUTHORS +++ b/AUTHORS @@ -183,6 +183,7 @@ Other contributors, listed alphabetically, are: * Matthias Vallentin -- Bro lexer * Linh Vu Hong -- RSL lexer * Nathan Weizenbaum -- Haml and Sass lexers +* Nathan Whetsell -- CSound lexers * Dietmar Winkler -- Modelica lexer * Nils Winter -- Smalltalk lexer * Davy Wybiral -- Clojure lexer From a062bbd7bbba9a4fc88f67bd17a48f036fff8c19 Mon Sep 17 00:00:00 2001 From: Nathan Whetsell Date: Fri, 23 Oct 2015 21:15:27 -0400 Subject: [PATCH 306/709] Fix minor nit in AUTHORS --- AUTHORS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index 30b8808266c..f84ef2a0ddd 100644 --- a/AUTHORS +++ b/AUTHORS @@ -184,7 +184,7 @@ Other contributors, listed alphabetically, are: * Matthias Vallentin -- Bro lexer * Linh Vu Hong -- RSL lexer * Nathan Weizenbaum -- Haml and Sass lexers -* Nathan Whetsell -- CSound lexers +* Nathan Whetsell -- Csound lexers * Dietmar Winkler -- Modelica lexer * Nils Winter -- Smalltalk lexer * Davy Wybiral -- Clojure lexer From 3f99fa7d83d4aa12fa8d844557dad6b65a62e0ff Mon Sep 17 00:00:00 2001 From: Tim Hatch Date: Sat, 31 Oct 2015 12:31:12 -0700 Subject: [PATCH 307/709] Add test file for Python tracebacks changes; normalize AUTHORS --- AUTHORS | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/AUTHORS b/AUTHORS index 30b8808266c..3434c20c37c 100644 --- a/AUTHORS +++ b/AUTHORS @@ -31,12 +31,13 @@ Other contributors, listed alphabetically, are: * Adam Blinkinsop -- Haskell, Redcode lexers * Frits van Bommel -- assembler lexers * Pierre Bourdon -- bugfixes +* chebee7i -- Python traceback lexer improvements * Hiram Chirino -- Scaml and Jade lexers * Ian Cooper -- VGL lexer * David Corbett -- Inform, Jasmin, and TADS 3 lexers * Leaf Corcoran -- MoonScript lexer * Christopher Creutzig -- MuPAD lexer -* Daniël W. Crompton - Pike lexer +* Daniël W. Crompton -- Pike lexer * Pete Curry -- bugfixes * Bryan Davis -- EBNF lexer * Bruno Deferrari -- Shen lexer @@ -80,15 +81,15 @@ Other contributors, listed alphabetically, are: * Doug Hogan -- Mscgen lexer * Ben Hollis -- Mason lexer * Max Horn -- GAP lexer -* Dustin Howett -- Logos lexer * Alastair Houghton -- Lexer inheritance facility * Tim Howard -- BlitzMax lexer +* Dustin Howett -- Logos lexer * Ivan Inozemtsev -- Fantom lexer * Hiroaki Itoh -- Shell console rewrite * Brian R. Jackson -- Tea lexer * Christian Jann -- ShellSession lexer * Dennis Kaarsemaker -- sources.list lexer -* Dmitri Kabak - Inferno Limbo lexer +* Dmitri Kabak -- Inferno Limbo lexer * Igor Kalnitsky -- vhdl lexer * Alexander Kit -- MaskJS lexer * Pekka Klärck -- Robot Framework lexer @@ -138,8 +139,8 @@ Other contributors, listed alphabetically, are: * David Oliva -- Rebol lexer * Pat Pannuto -- nesC lexer * Jon Parise -- Protocol buffers lexer -* Ronny Pfannschmidt -- BBCode lexer * Benjamin Peterson -- Test suite refactoring +* Ronny Pfannschmidt -- BBCode lexer * Dominik Picheta -- Nimrod lexer * Andrew Pinkham -- RTF Formatter Refactoring * Clément Prévost -- UrbiScript lexer @@ -180,7 +181,6 @@ Other contributors, listed alphabetically, are: * Daniele Varrazzo -- PostgreSQL lexers * Abe Voelker -- OpenEdge ABL lexer * Pepijn de Vos -- HTML formatter CTags support -* Whitney Young -- ObjectiveC lexer * Matthias Vallentin -- Bro lexer * Linh Vu Hong -- RSL lexer * Nathan Weizenbaum -- Haml and Sass lexers @@ -188,6 +188,7 @@ Other contributors, listed alphabetically, are: * Dietmar Winkler -- Modelica lexer * Nils Winter -- Smalltalk lexer * Davy Wybiral -- Clojure lexer +* Whitney Young -- ObjectiveC lexer * Diego Zamboni -- CFengine3 lexer * Enrique Zamudio -- Ceylon lexer * Alex Zimin -- Nemerle lexer From 6e9fad3913207a9a485d520cb8bf9965e206cff7 Mon Sep 17 00:00:00 2001 From: Tim Hatch Date: Sat, 31 Oct 2015 12:39:18 -0700 Subject: [PATCH 308/709] Minor changes to Ezhil lexer --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 061192312d1..3f78557439c 100644 --- a/AUTHORS +++ b/AUTHORS @@ -8,6 +8,7 @@ Other contributors, listed alphabetically, are: * Sam Aaron -- Ioke lexer * Ali Afshar -- image formatter * Thomas Aglassinger -- Rexx lexer +* Muthiah Annamalai -- Ezhil lexer * Kumar Appaiah -- Debian control lexer * Andreas Amann -- AppleScript lexer * Timothy Armstrong -- Dart lexer fixes From 02cc6ecf497ee6f1bfdc54a5521637425d4a2a5e Mon Sep 17 00:00:00 2001 From: Tim Hatch Date: Sat, 31 Oct 2015 16:23:13 -0700 Subject: [PATCH 309/709] Update changelog --- AUTHORS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index dc6a91fa8e0..d7ba35d4165 100644 --- a/AUTHORS +++ b/AUTHORS @@ -155,7 +155,7 @@ Other contributors, listed alphabetically, are: * Andre Roberge -- Tango style * Konrad Rudolph -- LaTeX formatter enhancements * Mario Ruggier -- Evoque lexers -* Miikka Salminen -- Lovelace style, lexer enhancements +* Miikka Salminen -- Lovelace style, Hexdump lexer, lexer enhancements * Stou Sandalski -- NumPy, FORTRAN, tcsh and XSLT lexers * Matteo Sasso -- Common Lisp lexer * Joe Schafer -- Ada lexer From 85873e6261769ce1e12efef587f5d9cbcc5596ab Mon Sep 17 00:00:00 2001 From: Tim Hatch Date: Sat, 31 Oct 2015 16:36:40 -0700 Subject: [PATCH 310/709] Update changelog --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index e289d1b4871..8e825848c18 100644 --- a/AUTHORS +++ b/AUTHORS @@ -50,6 +50,7 @@ Other contributors, listed alphabetically, are: * Nick Efford -- Python 3 lexer * Sven Efftinge -- Xtend lexer * Artem Egorkine -- terminal256 formatter +* Matthew Fernandez -- CAmkES lexer * Michael Ficarra -- CPSA lexer * James H. Fisher -- PostScript lexer * William S. Fulton -- SWIG lexer From 77ea0fa171e072008b908e8dafe21c0cc97fda58 Mon Sep 17 00:00:00 2001 From: Tim Hatch Date: Sat, 31 Oct 2015 17:28:02 -0700 Subject: [PATCH 311/709] Add tests for function keywords --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 4fa7e0daac9..4ce9dde7f0d 100644 --- a/AUTHORS +++ b/AUTHORS @@ -94,6 +94,7 @@ Other contributors, listed alphabetically, are: * Olov Lassus -- Dart lexer * Sylvestre Ledru -- Scilab lexer * Mark Lee -- Vala lexer +* Valentin Lorentz -- C++ lexer improvements * Ben Mabey -- Gherkin lexer * Angus MacArthur -- QML lexer * Louis Marchand -- Eiffel lexer From eac5fa0c0872a81c2b18fe7ccba51cd666724bf5 Mon Sep 17 00:00:00 2001 From: hhsprings Date: Sun, 1 Nov 2015 11:28:05 +0900 Subject: [PATCH 312/709] Fix regarding to Tim's review. 1. move to my contribution notice to AUTHORS 2. some styles. 3. remove unnecessary nested comment support (BC doesn't support it.) 4. use `word` for Keyword Thanks! --- AUTHORS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index d8d58e8a55a..8a5a9ed7ecf 100644 --- a/AUTHORS +++ b/AUTHORS @@ -88,7 +88,7 @@ Other contributors, listed alphabetically, are: * Tim Howard -- BlitzMax lexer * Dustin Howett -- Logos lexer * Ivan Inozemtsev -- Fantom lexer -* Hiroaki Itoh -- Shell console rewrite +* Hiroaki Itoh -- Shell console rewrite, BC Lexer * Brian R. Jackson -- Tea lexer * Christian Jann -- ShellSession lexer * Dennis Kaarsemaker -- sources.list lexer From 42fd9e179fb606c1264fd2adabfcc03c8638d99f Mon Sep 17 00:00:00 2001 From: hhsprings Date: Mon, 2 Nov 2015 07:28:57 +0900 Subject: [PATCH 313/709] update AUTHORS --- AUTHORS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index 8a5a9ed7ecf..060423c12a2 100644 --- a/AUTHORS +++ b/AUTHORS @@ -88,7 +88,7 @@ Other contributors, listed alphabetically, are: * Tim Howard -- BlitzMax lexer * Dustin Howett -- Logos lexer * Ivan Inozemtsev -- Fantom lexer -* Hiroaki Itoh -- Shell console rewrite, BC Lexer +* Hiroaki Itoh -- Shell console rewrite, Lexers for PowerShell session, MSDOS session, BC * Brian R. Jackson -- Tea lexer * Christian Jann -- ShellSession lexer * Dennis Kaarsemaker -- sources.list lexer From f91f71cec51504c57a9092479e3a13ead986eafe Mon Sep 17 00:00:00 2001 From: grollinger Date: Sat, 7 Nov 2015 11:57:05 +0100 Subject: [PATCH 314/709] HSAIL: Add myself to AUTHORS --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 3378474e844..381a72867fe 100644 --- a/AUTHORS +++ b/AUTHORS @@ -156,6 +156,7 @@ Other contributors, listed alphabetically, are: * Corey Richardson -- Rust lexer updates * Lubomir Rintel -- GoodData MAQL and CL lexers * Andre Roberge -- Tango style +* Georg Rollinger -- HSAIL lexer * Konrad Rudolph -- LaTeX formatter enhancements * Mario Ruggier -- Evoque lexers * Miikka Salminen -- Lovelace style, Hexdump lexer, lexer enhancements From f6efae93f67b840582b79d8d0665f50453b79699 Mon Sep 17 00:00:00 2001 From: Kim Jin Su Date: Sun, 22 Nov 2015 00:41:39 +0900 Subject: [PATCH 315/709] merge --- AUTHORS | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/AUTHORS b/AUTHORS index 30b8808266c..9318d4380c8 100644 --- a/AUTHORS +++ b/AUTHORS @@ -8,6 +8,7 @@ Other contributors, listed alphabetically, are: * Sam Aaron -- Ioke lexer * Ali Afshar -- image formatter * Thomas Aglassinger -- Easytrieve, JCL and Rexx lexers +* Muthiah Annamalai -- Ezhil lexer * Kumar Appaiah -- Debian control lexer * Andreas Amann -- AppleScript lexer * Timothy Armstrong -- Dart lexer fixes @@ -27,16 +28,18 @@ Other contributors, listed alphabetically, are: * Trevor Bergeron -- mIRC formatter * Vincent Bernat -- LessCSS lexer * Christopher Bertels -- Fancy lexer +* Sébastien Bigaret -- QVT Operational lexer * Jarrett Billingsley -- MiniD lexer * Adam Blinkinsop -- Haskell, Redcode lexers * Frits van Bommel -- assembler lexers * Pierre Bourdon -- bugfixes +* chebee7i -- Python traceback lexer improvements * Hiram Chirino -- Scaml and Jade lexers * Ian Cooper -- VGL lexer * David Corbett -- Inform, Jasmin, and TADS 3 lexers * Leaf Corcoran -- MoonScript lexer * Christopher Creutzig -- MuPAD lexer -* Daniël W. Crompton - Pike lexer +* Daniël W. Crompton -- Pike lexer * Pete Curry -- bugfixes * Bryan Davis -- EBNF lexer * Bruno Deferrari -- Shen lexer @@ -47,6 +50,7 @@ Other contributors, listed alphabetically, are: * Nick Efford -- Python 3 lexer * Sven Efftinge -- Xtend lexer * Artem Egorkine -- terminal256 formatter +* Matthew Fernandez -- CAmkES lexer * Michael Ficarra -- CPSA lexer * James H. Fisher -- PostScript lexer * William S. Fulton -- SWIG lexer @@ -80,15 +84,15 @@ Other contributors, listed alphabetically, are: * Doug Hogan -- Mscgen lexer * Ben Hollis -- Mason lexer * Max Horn -- GAP lexer -* Dustin Howett -- Logos lexer * Alastair Houghton -- Lexer inheritance facility * Tim Howard -- BlitzMax lexer +* Dustin Howett -- Logos lexer * Ivan Inozemtsev -- Fantom lexer -* Hiroaki Itoh -- Shell console rewrite +* Hiroaki Itoh -- Shell console rewrite, Lexers for PowerShell session, MSDOS session, BC * Brian R. Jackson -- Tea lexer * Christian Jann -- ShellSession lexer * Dennis Kaarsemaker -- sources.list lexer -* Dmitri Kabak - Inferno Limbo lexer +* Dmitri Kabak -- Inferno Limbo lexer * Igor Kalnitsky -- vhdl lexer * Alexander Kit -- MaskJS lexer * Pekka Klärck -- Robot Framework lexer @@ -108,6 +112,7 @@ Other contributors, listed alphabetically, are: * Matt Layman -- TAP lexer * Sylvestre Ledru -- Scilab lexer * Mark Lee -- Vala lexer +* Valentin Lorentz -- C++ lexer improvements * Ben Mabey -- Gherkin lexer * Angus MacArthur -- QML lexer * Louis Mandel -- X10 lexer @@ -137,9 +142,9 @@ Other contributors, listed alphabetically, are: * Edward O'Callaghan -- Cryptol lexer * David Oliva -- Rebol lexer * Pat Pannuto -- nesC lexer -* Jon Parise -- Protocol buffers lexer -* Ronny Pfannschmidt -- BBCode lexer +* Jon Parise -- Protocol buffers and Thrift lexers * Benjamin Peterson -- Test suite refactoring +* Ronny Pfannschmidt -- BBCode lexer * Dominik Picheta -- Nimrod lexer * Andrew Pinkham -- RTF Formatter Refactoring * Clément Prévost -- UrbiScript lexer @@ -153,7 +158,7 @@ Other contributors, listed alphabetically, are: * Andre Roberge -- Tango style * Konrad Rudolph -- LaTeX formatter enhancements * Mario Ruggier -- Evoque lexers -* Miikka Salminen -- Lovelace style, lexer enhancements +* Miikka Salminen -- Lovelace style, Hexdump lexer, lexer enhancements * Stou Sandalski -- NumPy, FORTRAN, tcsh and XSLT lexers * Matteo Sasso -- Common Lisp lexer * Joe Schafer -- Ada lexer @@ -180,14 +185,14 @@ Other contributors, listed alphabetically, are: * Daniele Varrazzo -- PostgreSQL lexers * Abe Voelker -- OpenEdge ABL lexer * Pepijn de Vos -- HTML formatter CTags support -* Whitney Young -- ObjectiveC lexer * Matthias Vallentin -- Bro lexer * Linh Vu Hong -- RSL lexer * Nathan Weizenbaum -- Haml and Sass lexers -* Nathan Whetsell -- CSound lexers +* Nathan Whetsell -- Csound lexers * Dietmar Winkler -- Modelica lexer * Nils Winter -- Smalltalk lexer * Davy Wybiral -- Clojure lexer +* Whitney Young -- ObjectiveC lexer * Diego Zamboni -- CFengine3 lexer * Enrique Zamudio -- Ceylon lexer * Alex Zimin -- Nemerle lexer From 0d735b3ca3a011deb6131f8555732e8f2512159f Mon Sep 17 00:00:00 2001 From: Greg Hellings Date: Tue, 24 Nov 2015 14:53:27 -0600 Subject: [PATCH 316/709] Add verbose output option --- libpip2pi/commands.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index 5a36714fd08..f861d5b4f67 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -208,6 +208,8 @@ def add_index_options(self): """)) self.add_option( '-S', '--no-symlink', dest="use_symlink", action="store_false") + self.add_option( + '-v', '--verbose', dest="verbose", action="store_true") def _process_args(self, largs, rargs, values): """ @@ -302,8 +304,12 @@ def _dir2pi(option, argv): symlink_target = os.path.join(pkg_dir, pkg_new_basename) symlink_source = os.path.join("../../", pkg_basename) if option.use_symlink and OS_HAS_SYMLINK: + if option.verbose: + print('linking %s to %s' % (symlink_source, symlink_target)) os.symlink(symlink_source, symlink_target) else: + if option.verbose: + print('copying %s to %s' % (symlink_target, pkg_filepath)) shutil.copy2(pkg_filepath, symlink_target) if pkg_name not in processed_pkg: From d35400a563627d89f2c4b3c9e867b70853210f7b Mon Sep 17 00:00:00 2001 From: Ben Swift Date: Fri, 11 Dec 2015 16:27:10 +1100 Subject: [PATCH 317/709] add lexer for the Extempore programming language/environment for more info, see http://extempore.moso.com.au https://github.com/digego/extempore --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 9318d4380c8..4e20febb08f 100644 --- a/AUTHORS +++ b/AUTHORS @@ -174,6 +174,7 @@ Other contributors, listed alphabetically, are: * James Strachan -- Kotlin lexer * Tom Stuart -- Treetop lexer * Colin Sullivan -- SuperCollider lexer +* Ben Swift -- Extempore lexer * Edoardo Tenani -- Arduino lexer * Tiberius Teng -- default style overhaul * Jeremy Thurgood -- Erlang, Squid config lexers From 407b02c7fde652a9fc93ae59bb5ea20d7a8001eb Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 17 Jan 2016 17:00:26 +0100 Subject: [PATCH 318/709] merge default into stable --- AUTHORS | 202 ++++++++++ LICENSE | 25 ++ README.rst | 39 ++ pygments/lexers/shell.py | 783 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 1049 insertions(+) create mode 100644 AUTHORS create mode 100644 LICENSE create mode 100644 README.rst create mode 100644 pygments/lexers/shell.py diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 00000000000..9318d4380c8 --- /dev/null +++ b/AUTHORS @@ -0,0 +1,202 @@ +Pygments is written and maintained by Georg Brandl . + +Major developers are Tim Hatch and Armin Ronacher +. + +Other contributors, listed alphabetically, are: + +* Sam Aaron -- Ioke lexer +* Ali Afshar -- image formatter +* Thomas Aglassinger -- Easytrieve, JCL and Rexx lexers +* Muthiah Annamalai -- Ezhil lexer +* Kumar Appaiah -- Debian control lexer +* Andreas Amann -- AppleScript lexer +* Timothy Armstrong -- Dart lexer fixes +* Jeffrey Arnold -- R/S, Rd, BUGS, Jags, and Stan lexers +* Jeremy Ashkenas -- CoffeeScript lexer +* José Joaquín Atria -- Praat lexer +* Stefan Matthias Aust -- Smalltalk lexer +* Lucas Bajolet -- Nit lexer +* Ben Bangert -- Mako lexers +* Max Battcher -- Darcs patch lexer +* Thomas Baruchel -- APL lexer +* Tim Baumann -- (Literate) Agda lexer +* Paul Baumgart, 280 North, Inc. -- Objective-J lexer +* Michael Bayer -- Myghty lexers +* Thomas Beale -- Archetype lexers +* John Benediktsson -- Factor lexer +* Trevor Bergeron -- mIRC formatter +* Vincent Bernat -- LessCSS lexer +* Christopher Bertels -- Fancy lexer +* Sébastien Bigaret -- QVT Operational lexer +* Jarrett Billingsley -- MiniD lexer +* Adam Blinkinsop -- Haskell, Redcode lexers +* Frits van Bommel -- assembler lexers +* Pierre Bourdon -- bugfixes +* chebee7i -- Python traceback lexer improvements +* Hiram Chirino -- Scaml and Jade lexers +* Ian Cooper -- VGL lexer +* David Corbett -- Inform, Jasmin, and TADS 3 lexers +* Leaf Corcoran -- MoonScript lexer +* Christopher Creutzig -- MuPAD lexer +* Daniël W. Crompton -- Pike lexer +* Pete Curry -- bugfixes +* Bryan Davis -- EBNF lexer +* Bruno Deferrari -- Shen lexer +* Giedrius Dubinskas -- HTML formatter improvements +* Owen Durni -- Haxe lexer +* Alexander Dutton, Oxford University Computing Services -- SPARQL lexer +* James Edwards -- Terraform lexer +* Nick Efford -- Python 3 lexer +* Sven Efftinge -- Xtend lexer +* Artem Egorkine -- terminal256 formatter +* Matthew Fernandez -- CAmkES lexer +* Michael Ficarra -- CPSA lexer +* James H. Fisher -- PostScript lexer +* William S. Fulton -- SWIG lexer +* Carlos Galdino -- Elixir and Elixir Console lexers +* Michael Galloy -- IDL lexer +* Naveen Garg -- Autohotkey lexer +* Laurent Gautier -- R/S lexer +* Alex Gaynor -- PyPy log lexer +* Richard Gerkin -- Igor Pro lexer +* Alain Gilbert -- TypeScript lexer +* Alex Gilding -- BlitzBasic lexer +* Bertrand Goetzmann -- Groovy lexer +* Krzysiek Goj -- Scala lexer +* Matt Good -- Genshi, Cheetah lexers +* Michał Górny -- vim modeline support +* Alex Gosse -- TrafficScript lexer +* Patrick Gotthardt -- PHP namespaces support +* Olivier Guibe -- Asymptote lexer +* Jordi Gutiérrez Hermoso -- Octave lexer +* Florian Hahn -- Boogie lexer +* Martin Harriman -- SNOBOL lexer +* Matthew Harrison -- SVG formatter +* Steven Hazel -- Tcl lexer +* Dan Michael Heggø -- Turtle lexer +* Aslak Hellesøy -- Gherkin lexer +* Greg Hendershott -- Racket lexer +* Justin Hendrick -- ParaSail lexer +* David Hess, Fish Software, Inc. -- Objective-J lexer +* Varun Hiremath -- Debian control lexer +* Rob Hoelz -- Perl 6 lexer +* Doug Hogan -- Mscgen lexer +* Ben Hollis -- Mason lexer +* Max Horn -- GAP lexer +* Alastair Houghton -- Lexer inheritance facility +* Tim Howard -- BlitzMax lexer +* Dustin Howett -- Logos lexer +* Ivan Inozemtsev -- Fantom lexer +* Hiroaki Itoh -- Shell console rewrite, Lexers for PowerShell session, MSDOS session, BC +* Brian R. Jackson -- Tea lexer +* Christian Jann -- ShellSession lexer +* Dennis Kaarsemaker -- sources.list lexer +* Dmitri Kabak -- Inferno Limbo lexer +* Igor Kalnitsky -- vhdl lexer +* Alexander Kit -- MaskJS lexer +* Pekka Klärck -- Robot Framework lexer +* Gerwin Klein -- Isabelle lexer +* Eric Knibbe -- Lasso lexer +* Stepan Koltsov -- Clay lexer +* Adam Koprowski -- Opa lexer +* Benjamin Kowarsch -- Modula-2 lexer +* Domen Kožar -- Nix lexer +* Oleh Krekel -- Emacs Lisp lexer +* Alexander Kriegisch -- Kconfig and AspectJ lexers +* Marek Kubica -- Scheme lexer +* Jochen Kupperschmidt -- Markdown processor +* Gerd Kurzbach -- Modelica lexer +* Jon Larimer, Google Inc. -- Smali lexer +* Olov Lassus -- Dart lexer +* Matt Layman -- TAP lexer +* Sylvestre Ledru -- Scilab lexer +* Mark Lee -- Vala lexer +* Valentin Lorentz -- C++ lexer improvements +* Ben Mabey -- Gherkin lexer +* Angus MacArthur -- QML lexer +* Louis Mandel -- X10 lexer +* Louis Marchand -- Eiffel lexer +* Simone Margaritelli -- Hybris lexer +* Kirk McDonald -- D lexer +* Gordon McGregor -- SystemVerilog lexer +* Stephen McKamey -- Duel/JBST lexer +* Brian McKenna -- F# lexer +* Charles McLaughlin -- Puppet lexer +* Lukas Meuser -- BBCode formatter, Lua lexer +* Cat Miller -- Pig lexer +* Paul Miller -- LiveScript lexer +* Hong Minhee -- HTTP lexer +* Michael Mior -- Awk lexer +* Bruce Mitchener -- Dylan lexer rewrite +* Reuben Morais -- SourcePawn lexer +* Jon Morton -- Rust lexer +* Paulo Moura -- Logtalk lexer +* Mher Movsisyan -- DTD lexer +* Dejan Muhamedagic -- Crmsh lexer +* Ana Nelson -- Ragel, ANTLR, R console lexers +* Nam T. Nguyen -- Monokai style +* Jesper Noehr -- HTML formatter "anchorlinenos" +* Mike Nolta -- Julia lexer +* Jonas Obrist -- BBCode lexer +* Edward O'Callaghan -- Cryptol lexer +* David Oliva -- Rebol lexer +* Pat Pannuto -- nesC lexer +* Jon Parise -- Protocol buffers and Thrift lexers +* Benjamin Peterson -- Test suite refactoring +* Ronny Pfannschmidt -- BBCode lexer +* Dominik Picheta -- Nimrod lexer +* Andrew Pinkham -- RTF Formatter Refactoring +* Clément Prévost -- UrbiScript lexer +* Elias Rabel -- Fortran fixed form lexer +* raichoo -- Idris lexer +* Kashif Rasul -- CUDA lexer +* Justin Reidy -- MXML lexer +* Norman Richards -- JSON lexer +* Corey Richardson -- Rust lexer updates +* Lubomir Rintel -- GoodData MAQL and CL lexers +* Andre Roberge -- Tango style +* Konrad Rudolph -- LaTeX formatter enhancements +* Mario Ruggier -- Evoque lexers +* Miikka Salminen -- Lovelace style, Hexdump lexer, lexer enhancements +* Stou Sandalski -- NumPy, FORTRAN, tcsh and XSLT lexers +* Matteo Sasso -- Common Lisp lexer +* Joe Schafer -- Ada lexer +* Ken Schutte -- Matlab lexers +* Tassilo Schweyer -- Io, MOOCode lexers +* Ted Shaw -- AutoIt lexer +* Joerg Sieker -- ABAP lexer +* Robert Simmons -- Standard ML lexer +* Kirill Simonov -- YAML lexer +* Alexander Smishlajev -- Visual FoxPro lexer +* Steve Spigarelli -- XQuery lexer +* Jerome St-Louis -- eC lexer +* James Strachan -- Kotlin lexer +* Tom Stuart -- Treetop lexer +* Colin Sullivan -- SuperCollider lexer +* Edoardo Tenani -- Arduino lexer +* Tiberius Teng -- default style overhaul +* Jeremy Thurgood -- Erlang, Squid config lexers +* Brian Tiffin -- OpenCOBOL lexer +* Bob Tolbert -- Hy lexer +* Erick Tryzelaar -- Felix lexer +* Alexander Udalov -- Kotlin lexer improvements +* Thomas Van Doren -- Chapel lexer +* Daniele Varrazzo -- PostgreSQL lexers +* Abe Voelker -- OpenEdge ABL lexer +* Pepijn de Vos -- HTML formatter CTags support +* Matthias Vallentin -- Bro lexer +* Linh Vu Hong -- RSL lexer +* Nathan Weizenbaum -- Haml and Sass lexers +* Nathan Whetsell -- Csound lexers +* Dietmar Winkler -- Modelica lexer +* Nils Winter -- Smalltalk lexer +* Davy Wybiral -- Clojure lexer +* Whitney Young -- ObjectiveC lexer +* Diego Zamboni -- CFengine3 lexer +* Enrique Zamudio -- Ceylon lexer +* Alex Zimin -- Nemerle lexer +* Rob Zimmerman -- Kal lexer +* Vincent Zurczak -- Roboconf lexer + +Many thanks for all contributions! diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000000..10b8e9167cc --- /dev/null +++ b/LICENSE @@ -0,0 +1,25 @@ +Copyright (c) 2006-2015 by the respective authors (see AUTHORS file). +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +* Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/README.rst b/README.rst new file mode 100644 index 00000000000..350e242ee72 --- /dev/null +++ b/README.rst @@ -0,0 +1,39 @@ +README for Pygments +=================== + +This is the source of Pygments. It is a generic syntax highlighter that +supports over 300 languages and text formats, for use in code hosting, forums, +wikis or other applications that need to prettify source code. + +Installing +---------- + +... works as usual, use ``python setup.py install``. + +Documentation +------------- + +... can be found online at http://pygments.org/ or created by :: + + cd doc + make html + +Development +----------- + +... takes place on `Bitbucket +`_, where the Mercurial +repository, tickets and pull requests can be viewed. + +Continuous testing runs on drone.io: + +.. image:: https://drone.io/bitbucket.org/birkenfeld/pygments-main/status.png + :target: https://drone.io/bitbucket.org/birkenfeld/pygments-main + +The authors +----------- + +Pygments is maintained by **Georg Brandl**, e-mail address *georg*\ *@*\ *python.org*. + +Many lexers and fixes have been contributed by **Armin Ronacher**, the rest of +the `Pocoo `_ team and **Tim Hatch**. diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py new file mode 100644 index 00000000000..dc23d01811b --- /dev/null +++ b/pygments/lexers/shell.py @@ -0,0 +1,783 @@ +# -*- coding: utf-8 -*- +""" + pygments.lexers.shell + ~~~~~~~~~~~~~~~~~~~~~ + + Lexers for various shells. + + :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS. + :license: BSD, see LICENSE for details. +""" + +import re + +from pygments.lexer import Lexer, RegexLexer, do_insertions, bygroups, \ + include, default, this, using, words +from pygments.token import Punctuation, \ + Text, Comment, Operator, Keyword, Name, String, Number, Generic +from pygments.util import shebang_matches + + +__all__ = ['BashLexer', 'BashSessionLexer', 'TcshLexer', 'BatchLexer', + 'MSDOSSessionLexer', 'PowerShellLexer', + 'PowerShellSessionLexer', 'TcshSessionLexer', 'FishShellLexer'] + +line_re = re.compile('.*?\n') + + +class BashLexer(RegexLexer): + """ + Lexer for (ba|k|)sh shell scripts. + + .. versionadded:: 0.6 + """ + + name = 'Bash' + aliases = ['bash', 'sh', 'ksh', 'shell'] + filenames = ['*.sh', '*.ksh', '*.bash', '*.ebuild', '*.eclass', + '.bashrc', 'bashrc', '.bash_*', 'bash_*', 'PKGBUILD'] + mimetypes = ['application/x-sh', 'application/x-shellscript'] + + tokens = { + 'root': [ + include('basic'), + (r'`', String.Backtick, 'backticks'), + include('data'), + include('interp'), + ], + 'interp': [ + (r'\$\(\(', Keyword, 'math'), + (r'\$\(', Keyword, 'paren'), + (r'\$\{#?', String.Interpol, 'curly'), + (r'\$[a-fA-F_][a-fA-F0-9_]*', Name.Variable), # user variable + (r'\$(?:\d+|[#$?!_*@-])', Name.Variable), # builtin + (r'\$', Text), + ], + 'basic': [ + (r'\b(if|fi|else|while|do|done|for|then|return|function|case|' + r'select|continue|until|esac|elif)(\s*)\b', + bygroups(Keyword, Text)), + (r'\b(alias|bg|bind|break|builtin|caller|cd|command|compgen|' + r'complete|declare|dirs|disown|echo|enable|eval|exec|exit|' + r'export|false|fc|fg|getopts|hash|help|history|jobs|kill|let|' + r'local|logout|popd|printf|pushd|pwd|read|readonly|set|shift|' + r'shopt|source|suspend|test|time|times|trap|true|type|typeset|' + r'ulimit|umask|unalias|unset|wait)(?=[\s)`])', + Name.Builtin), + (r'\A#!.+\n', Comment.Hashbang), + (r'#.*\n', Comment.Single), + (r'\\[\w\W]', String.Escape), + (r'(\b\w+)(\s*)(=)', bygroups(Name.Variable, Text, Operator)), + (r'[\[\]{}()=]', Operator), + (r'<<<', Operator), # here-string + (r'<<-?\s*(\'?)\\?(\w+)[\w\W]+?\2', String), + (r'&&|\|\|', Operator), + ], + 'data': [ + (r'(?s)\$?"(\\\\|\\[0-7]+|\\.|[^"\\$])*"', String.Double), + (r'"', String.Double, 'string'), + (r"(?s)\$'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single), + (r"(?s)'.*?'", String.Single), + (r';', Punctuation), + (r'&', Punctuation), + (r'\|', Punctuation), + (r'\s+', Text), + (r'\d+(?= |\Z)', Number), + (r'[^=\s\[\]{}()$"\'`\\<&|;]+', Text), + (r'<', Text), + ], + 'string': [ + (r'"', String.Double, '#pop'), + (r'(?s)(\\\\|\\[0-7]+|\\.|[^"\\$])+', String.Double), + include('interp'), + ], + 'curly': [ + (r'\}', String.Interpol, '#pop'), + (r':-', Keyword), + (r'\w+', Name.Variable), + (r'[^}:"\'`$\\]+', Punctuation), + (r':', Punctuation), + include('root'), + ], + 'paren': [ + (r'\)', Keyword, '#pop'), + include('root'), + ], + 'math': [ + (r'\)\)', Keyword, '#pop'), + (r'[-+*/%^|&]|\*\*|\|\|', Operator), + (r'\d+#\d+', Number), + (r'\d+#(?! )', Number), + (r'\d+', Number), + include('root'), + ], + 'backticks': [ + (r'`', String.Backtick, '#pop'), + include('root'), + ], + } + + def analyse_text(text): + if shebang_matches(text, r'(ba|z|)sh'): + return 1 + if text.startswith('$ '): + return 0.2 + + +class ShellSessionBaseLexer(Lexer): + """ + Base lexer for simplistic shell sessions. + + .. versionadded:: 2.1 + """ + def get_tokens_unprocessed(self, text): + innerlexer = self._innerLexerCls(**self.options) + + pos = 0 + curcode = '' + insertions = [] + + for match in line_re.finditer(text): + line = match.group() + m = re.match(self._ps1rgx, line) + if m: + # To support output lexers (say diff output), the output + # needs to be broken by prompts whenever the output lexer + # changes. + if not insertions: + pos = match.start() + + insertions.append((len(curcode), + [(0, Generic.Prompt, m.group(1))])) + curcode += m.group(2) + elif line.startswith(self._ps2): + insertions.append((len(curcode), + [(0, Generic.Prompt, line[:len(self._ps2)])])) + curcode += line[len(self._ps2):] + else: + if insertions: + toks = innerlexer.get_tokens_unprocessed(curcode) + for i, t, v in do_insertions(insertions, toks): + yield pos+i, t, v + yield match.start(), Generic.Output, line + insertions = [] + curcode = '' + if insertions: + for i, t, v in do_insertions(insertions, + innerlexer.get_tokens_unprocessed(curcode)): + yield pos+i, t, v + + +class BashSessionLexer(ShellSessionBaseLexer): + """ + Lexer for simplistic shell sessions. + + .. versionadded:: 1.1 + """ + + name = 'Bash Session' + aliases = ['console', 'shell-session'] + filenames = ['*.sh-session', '*.shell-session'] + mimetypes = ['application/x-shell-session', 'application/x-sh-session'] + + _innerLexerCls = BashLexer + _ps1rgx = \ + r'^((?:(?:\[.*?\])|(?:\(\S+\))?(?:| |sh\S*?|\w+\S+[@:]\S+(?:\s+\S+)' \ + r'?|\[\S+[@:][^\n]+\].+))\s*[$#%])(.*\n?)' + _ps2 = '>' + + +class BatchLexer(RegexLexer): + """ + Lexer for the DOS/Windows Batch file format. + + .. versionadded:: 0.7 + """ + name = 'Batchfile' + aliases = ['bat', 'batch', 'dosbatch', 'winbatch'] + filenames = ['*.bat', '*.cmd'] + mimetypes = ['application/x-dos-batch'] + + flags = re.MULTILINE | re.IGNORECASE + + _nl = r'\n\x1a' + _punct = r'&<>|' + _ws = r'\t\v\f\r ,;=\xa0' + _space = r'(?:(?:(?:\^[%s])?[%s])+)' % (_nl, _ws) + _keyword_terminator = (r'(?=(?:\^[%s]?)?[%s+./:[\\\]]|[%s%s(])' % + (_nl, _ws, _nl, _punct)) + _token_terminator = r'(?=\^?[%s]|[%s%s])' % (_ws, _punct, _nl) + _start_label = r'((?:(?<=^[^:])|^[^:]?)[%s]*)(:)' % _ws + _label = r'(?:(?:[^%s%s%s+:^]|\^[%s]?[\w\W])*)' % (_nl, _punct, _ws, _nl) + _label_compound = (r'(?:(?:[^%s%s%s+:^)]|\^[%s]?[^)])*)' % + (_nl, _punct, _ws, _nl)) + _number = r'(?:-?(?:0[0-7]+|0x[\da-f]+|\d+)%s)' % _token_terminator + _opword = r'(?:equ|geq|gtr|leq|lss|neq)' + _string = r'(?:"[^%s"]*"?)' % _nl + _variable = (r'(?:(?:%%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|' + r'[^%%:%s]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%%%s^]|' + r'\^[^%%%s])[^=%s]*=(?:[^%%%s^]|\^[^%%%s])*)?)?%%))|' + r'(?:\^?![^!:%s]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:' + r'[^!%s^]|\^[^!%s])[^=%s]*=(?:[^!%s^]|\^[^!%s])*)?)?\^?!))' % + (_nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl)) + _core_token = r'(?:(?:(?:\^[%s]?)?[^%s%s%s])+)' % (_nl, _nl, _punct, _ws) + _core_token_compound = r'(?:(?:(?:\^[%s]?)?[^%s%s%s)])+)' % (_nl, _nl, + _punct, _ws) + _token = r'(?:[%s]+|%s)' % (_punct, _core_token) + _token_compound = r'(?:[%s]+|%s)' % (_punct, _core_token_compound) + _stoken = (r'(?:[%s]+|(?:%s|%s|%s)+)' % + (_punct, _string, _variable, _core_token)) + + def _make_begin_state(compound, _core_token=_core_token, + _core_token_compound=_core_token_compound, + _keyword_terminator=_keyword_terminator, + _nl=_nl, _punct=_punct, _string=_string, + _space=_space, _start_label=_start_label, + _stoken=_stoken, _token_terminator=_token_terminator, + _variable=_variable, _ws=_ws): + rest = '(?:%s|%s|[^"%%%s%s%s])*' % (_string, _variable, _nl, _punct, + ')' if compound else '') + rest_of_line = r'(?:(?:[^%s^]|\^[%s]?[\w\W])*)' % (_nl, _nl) + rest_of_line_compound = r'(?:(?:[^%s^)]|\^[%s]?[^)])*)' % (_nl, _nl) + set_space = r'((?:(?:\^[%s]?)?[^\S\n])*)' % _nl + suffix = '' + if compound: + _keyword_terminator = r'(?:(?=\))|%s)' % _keyword_terminator + _token_terminator = r'(?:(?=\))|%s)' % _token_terminator + suffix = '/compound' + return [ + ((r'\)', Punctuation, '#pop') if compound else + (r'\)((?=\()|%s)%s' % (_token_terminator, rest_of_line), + Comment.Single)), + (r'(?=%s)' % _start_label, Text, 'follow%s' % suffix), + (_space, using(this, state='text')), + include('redirect%s' % suffix), + (r'[%s]+' % _nl, Text), + (r'\(', Punctuation, 'root/compound'), + (r'@+', Punctuation), + (r'((?:for|if|rem)(?:(?=(?:\^[%s]?)?/)|(?:(?!\^)|' + r'(?<=m))(?:(?=\()|%s)))(%s?%s?(?:\^[%s]?)?/(?:\^[%s]?)?\?)' % + (_nl, _token_terminator, _space, + _core_token_compound if compound else _core_token, _nl, _nl), + bygroups(Keyword, using(this, state='text')), + 'follow%s' % suffix), + (r'(goto%s)(%s(?:\^[%s]?)?/(?:\^[%s]?)?\?%s)' % + (_keyword_terminator, rest, _nl, _nl, rest), + bygroups(Keyword, using(this, state='text')), + 'follow%s' % suffix), + (words(('assoc', 'break', 'cd', 'chdir', 'cls', 'color', 'copy', + 'date', 'del', 'dir', 'dpath', 'echo', 'endlocal', 'erase', + 'exit', 'ftype', 'keys', 'md', 'mkdir', 'mklink', 'move', + 'path', 'pause', 'popd', 'prompt', 'pushd', 'rd', 'ren', + 'rename', 'rmdir', 'setlocal', 'shift', 'start', 'time', + 'title', 'type', 'ver', 'verify', 'vol'), + suffix=_keyword_terminator), Keyword, 'follow%s' % suffix), + (r'(call)(%s?)(:)' % _space, + bygroups(Keyword, using(this, state='text'), Punctuation), + 'call%s' % suffix), + (r'call%s' % _keyword_terminator, Keyword), + (r'(for%s(?!\^))(%s)(/f%s)' % + (_token_terminator, _space, _token_terminator), + bygroups(Keyword, using(this, state='text'), Keyword), + ('for/f', 'for')), + (r'(for%s(?!\^))(%s)(/l%s)' % + (_token_terminator, _space, _token_terminator), + bygroups(Keyword, using(this, state='text'), Keyword), + ('for/l', 'for')), + (r'for%s(?!\^)' % _token_terminator, Keyword, ('for2', 'for')), + (r'(goto%s)(%s?)(:?)' % (_keyword_terminator, _space), + bygroups(Keyword, using(this, state='text'), Punctuation), + 'label%s' % suffix), + (r'(if(?:(?=\()|%s)(?!\^))(%s?)((?:/i%s)?)(%s?)((?:not%s)?)(%s?)' % + (_token_terminator, _space, _token_terminator, _space, + _token_terminator, _space), + bygroups(Keyword, using(this, state='text'), Keyword, + using(this, state='text'), Keyword, + using(this, state='text')), ('(?', 'if')), + (r'rem(((?=\()|%s)%s?%s?.*|%s%s)' % + (_token_terminator, _space, _stoken, _keyword_terminator, + rest_of_line_compound if compound else rest_of_line), + Comment.Single, 'follow%s' % suffix), + (r'(set%s)%s(/a)' % (_keyword_terminator, set_space), + bygroups(Keyword, using(this, state='text'), Keyword), + 'arithmetic%s' % suffix), + (r'(set%s)%s((?:/p)?)%s((?:(?:(?:\^[%s]?)?[^"%s%s^=%s]|' + r'\^[%s]?[^"=])+)?)((?:(?:\^[%s]?)?=)?)' % + (_keyword_terminator, set_space, set_space, _nl, _nl, _punct, + ')' if compound else '', _nl, _nl), + bygroups(Keyword, using(this, state='text'), Keyword, + using(this, state='text'), using(this, state='variable'), + Punctuation), + 'follow%s' % suffix), + default('follow%s' % suffix) + ] + + def _make_follow_state(compound, _label=_label, + _label_compound=_label_compound, _nl=_nl, + _space=_space, _start_label=_start_label, + _token=_token, _token_compound=_token_compound, + _ws=_ws): + suffix = '/compound' if compound else '' + state = [] + if compound: + state.append((r'(?=\))', Text, '#pop')) + state += [ + (r'%s([%s]*)(%s)(.*)' % + (_start_label, _ws, _label_compound if compound else _label), + bygroups(Text, Punctuation, Text, Name.Label, Comment.Single)), + include('redirect%s' % suffix), + (r'(?=[%s])' % _nl, Text, '#pop'), + (r'\|\|?|&&?', Punctuation, '#pop'), + include('text') + ] + return state + + def _make_arithmetic_state(compound, _nl=_nl, _punct=_punct, + _string=_string, _variable=_variable, _ws=_ws): + op = r'=+\-*/!~' + state = [] + if compound: + state.append((r'(?=\))', Text, '#pop')) + state += [ + (r'0[0-7]+', Number.Oct), + (r'0x[\da-f]+', Number.Hex), + (r'\d+', Number.Integer), + (r'[(),]+', Punctuation), + (r'([%s]|%%|\^\^)+' % op, Operator), + (r'(%s|%s|(\^[%s]?)?[^()%s%%^"%s%s%s]|\^[%s%s]?%s)+' % + (_string, _variable, _nl, op, _nl, _punct, _ws, _nl, _ws, + r'[^)]' if compound else r'[\w\W]'), + using(this, state='variable')), + (r'(?=[\x00|&])', Text, '#pop'), + include('follow') + ] + return state + + def _make_call_state(compound, _label=_label, + _label_compound=_label_compound): + state = [] + if compound: + state.append((r'(?=\))', Text, '#pop')) + state.append((r'(:?)(%s)' % (_label_compound if compound else _label), + bygroups(Punctuation, Name.Label), '#pop')) + return state + + def _make_label_state(compound, _label=_label, + _label_compound=_label_compound, _nl=_nl, + _punct=_punct, _string=_string, _variable=_variable): + state = [] + if compound: + state.append((r'(?=\))', Text, '#pop')) + state.append((r'(%s?)((?:%s|%s|\^[%s]?%s|[^"%%^%s%s%s])*)' % + (_label_compound if compound else _label, _string, + _variable, _nl, r'[^)]' if compound else r'[\w\W]', _nl, + _punct, r')' if compound else ''), + bygroups(Name.Label, Comment.Single), '#pop')) + return state + + def _make_redirect_state(compound, + _core_token_compound=_core_token_compound, + _nl=_nl, _punct=_punct, _stoken=_stoken, + _string=_string, _space=_space, + _variable=_variable, _ws=_ws): + stoken_compound = (r'(?:[%s]+|(?:%s|%s|%s)+)' % + (_punct, _string, _variable, _core_token_compound)) + return [ + (r'((?:(?<=[%s%s])\d)?)(>>?&|<&)([%s%s]*)(\d)' % + (_nl, _ws, _nl, _ws), + bygroups(Number.Integer, Punctuation, Text, Number.Integer)), + (r'((?:(?<=[%s%s])(?>?|<)(%s?%s)' % + (_nl, _ws, _nl, _space, stoken_compound if compound else _stoken), + bygroups(Number.Integer, Punctuation, using(this, state='text'))) + ] + + tokens = { + 'root': _make_begin_state(False), + 'follow': _make_follow_state(False), + 'arithmetic': _make_arithmetic_state(False), + 'call': _make_call_state(False), + 'label': _make_label_state(False), + 'redirect': _make_redirect_state(False), + 'root/compound': _make_begin_state(True), + 'follow/compound': _make_follow_state(True), + 'arithmetic/compound': _make_arithmetic_state(True), + 'call/compound': _make_call_state(True), + 'label/compound': _make_label_state(True), + 'redirect/compound': _make_redirect_state(True), + 'variable-or-escape': [ + (_variable, Name.Variable), + (r'%%%%|\^[%s]?(\^!|[\w\W])' % _nl, String.Escape) + ], + 'string': [ + (r'"', String.Double, '#pop'), + (_variable, Name.Variable), + (r'\^!|%%', String.Escape), + (r'[^"%%^%s]+|[%%^]' % _nl, String.Double), + default('#pop') + ], + 'sqstring': [ + include('variable-or-escape'), + (r'[^%]+|%', String.Single) + ], + 'bqstring': [ + include('variable-or-escape'), + (r'[^%]+|%', String.Backtick) + ], + 'text': [ + (r'"', String.Double, 'string'), + include('variable-or-escape'), + (r'[^"%%^%s%s%s\d)]+|.' % (_nl, _punct, _ws), Text) + ], + 'variable': [ + (r'"', String.Double, 'string'), + include('variable-or-escape'), + (r'[^"%%^%s]+|.' % _nl, Name.Variable) + ], + 'for': [ + (r'(%s)(in)(%s)(\()' % (_space, _space), + bygroups(using(this, state='text'), Keyword, + using(this, state='text'), Punctuation), '#pop'), + include('follow') + ], + 'for2': [ + (r'\)', Punctuation), + (r'(%s)(do%s)' % (_space, _token_terminator), + bygroups(using(this, state='text'), Keyword), '#pop'), + (r'[%s]+' % _nl, Text), + include('follow') + ], + 'for/f': [ + (r'(")((?:%s|[^"])*?")([%s%s]*)(\))' % (_variable, _nl, _ws), + bygroups(String.Double, using(this, state='string'), Text, + Punctuation)), + (r'"', String.Double, ('#pop', 'for2', 'string')), + (r"('(?:%s|[\w\W])*?')([%s%s]*)(\))" % (_variable, _nl, _ws), + bygroups(using(this, state='sqstring'), Text, Punctuation)), + (r'(`(?:%s|[\w\W])*?`)([%s%s]*)(\))' % (_variable, _nl, _ws), + bygroups(using(this, state='bqstring'), Text, Punctuation)), + include('for2') + ], + 'for/l': [ + (r'-?\d+', Number.Integer), + include('for2') + ], + 'if': [ + (r'((?:cmdextversion|errorlevel)%s)(%s)(\d+)' % + (_token_terminator, _space), + bygroups(Keyword, using(this, state='text'), + Number.Integer), '#pop'), + (r'(defined%s)(%s)(%s)' % (_token_terminator, _space, _stoken), + bygroups(Keyword, using(this, state='text'), + using(this, state='variable')), '#pop'), + (r'(exist%s)(%s%s)' % (_token_terminator, _space, _stoken), + bygroups(Keyword, using(this, state='text')), '#pop'), + (r'(%s%s?)(==)(%s?%s)' % (_stoken, _space, _space, _stoken), + bygroups(using(this, state='text'), Operator, + using(this, state='text')), '#pop'), + (r'(%s%s)(%s)(%s%s)' % (_number, _space, _opword, _space, _number), + bygroups(using(this, state='arithmetic'), Operator.Word, + using(this, state='arithmetic')), '#pop'), + (r'(%s%s)(%s)(%s%s)' % (_stoken, _space, _opword, _space, _stoken), + bygroups(using(this, state='text'), Operator.Word, + using(this, state='text')), '#pop') + ], + '(?': [ + (_space, using(this, state='text')), + (r'\(', Punctuation, ('#pop', 'else?', 'root/compound')), + default('#pop') + ], + 'else?': [ + (_space, using(this, state='text')), + (r'else%s' % _token_terminator, Keyword, '#pop'), + default('#pop') + ] + } + + +class MSDOSSessionLexer(ShellSessionBaseLexer): + """ + Lexer for simplistic MSDOS sessions. + + .. versionadded:: 2.1 + """ + + name = 'MSDOS Session' + aliases = ['doscon'] + filenames = [] + mimetypes = [] + + _innerLexerCls = BatchLexer + _ps1rgx = r'^([^>]+>)(.*\n?)' + _ps2 = 'More? ' + + +class TcshLexer(RegexLexer): + """ + Lexer for tcsh scripts. + + .. versionadded:: 0.10 + """ + + name = 'Tcsh' + aliases = ['tcsh', 'csh'] + filenames = ['*.tcsh', '*.csh'] + mimetypes = ['application/x-csh'] + + tokens = { + 'root': [ + include('basic'), + (r'\$\(', Keyword, 'paren'), + (r'\$\{#?', Keyword, 'curly'), + (r'`', String.Backtick, 'backticks'), + include('data'), + ], + 'basic': [ + (r'\b(if|endif|else|while|then|foreach|case|default|' + r'continue|goto|breaksw|end|switch|endsw)\s*\b', + Keyword), + (r'\b(alias|alloc|bg|bindkey|break|builtins|bye|caller|cd|chdir|' + r'complete|dirs|echo|echotc|eval|exec|exit|fg|filetest|getxvers|' + r'glob|getspath|hashstat|history|hup|inlib|jobs|kill|' + r'limit|log|login|logout|ls-F|migrate|newgrp|nice|nohup|notify|' + r'onintr|popd|printenv|pushd|rehash|repeat|rootnode|popd|pushd|' + r'set|shift|sched|setenv|setpath|settc|setty|setxvers|shift|' + r'source|stop|suspend|source|suspend|telltc|time|' + r'umask|unalias|uncomplete|unhash|universe|unlimit|unset|unsetenv|' + r'ver|wait|warp|watchlog|where|which)\s*\b', + Name.Builtin), + (r'#.*', Comment), + (r'\\[\w\W]', String.Escape), + (r'(\b\w+)(\s*)(=)', bygroups(Name.Variable, Text, Operator)), + (r'[\[\]{}()=]+', Operator), + (r'<<\s*(\'?)\\?(\w+)[\w\W]+?\2', String), + (r';', Punctuation), + ], + 'data': [ + (r'(?s)"(\\\\|\\[0-7]+|\\.|[^"\\])*"', String.Double), + (r"(?s)'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single), + (r'\s+', Text), + (r'[^=\s\[\]{}()$"\'`\\;#]+', Text), + (r'\d+(?= |\Z)', Number), + (r'\$#?(\w+|.)', Name.Variable), + ], + 'curly': [ + (r'\}', Keyword, '#pop'), + (r':-', Keyword), + (r'\w+', Name.Variable), + (r'[^}:"\'`$]+', Punctuation), + (r':', Punctuation), + include('root'), + ], + 'paren': [ + (r'\)', Keyword, '#pop'), + include('root'), + ], + 'backticks': [ + (r'`', String.Backtick, '#pop'), + include('root'), + ], + } + + +class TcshSessionLexer(ShellSessionBaseLexer): + """ + Lexer for Tcsh sessions. + + .. versionadded:: 2.1 + """ + + name = 'Tcsh Session' + aliases = ['tcshcon'] + filenames = [] + mimetypes = [] + + _innerLexerCls = TcshLexer + _ps1rgx = r'^([^>]+>)(.*\n?)' + _ps2 = '? ' + + +class PowerShellLexer(RegexLexer): + """ + For Windows PowerShell code. + + .. versionadded:: 1.5 + """ + name = 'PowerShell' + aliases = ['powershell', 'posh', 'ps1', 'psm1'] + filenames = ['*.ps1', '*.psm1'] + mimetypes = ['text/x-powershell'] + + flags = re.DOTALL | re.IGNORECASE | re.MULTILINE + + keywords = ( + 'while validateset validaterange validatepattern validatelength ' + 'validatecount until trap switch return ref process param parameter in ' + 'if global: function foreach for finally filter end elseif else ' + 'dynamicparam do default continue cmdletbinding break begin alias \\? ' + '% #script #private #local #global mandatory parametersetname position ' + 'valuefrompipeline valuefrompipelinebypropertyname ' + 'valuefromremainingarguments helpmessage try catch throw').split() + + operators = ( + 'and as band bnot bor bxor casesensitive ccontains ceq cge cgt cle ' + 'clike clt cmatch cne cnotcontains cnotlike cnotmatch contains ' + 'creplace eq exact f file ge gt icontains ieq ige igt ile ilike ilt ' + 'imatch ine inotcontains inotlike inotmatch ireplace is isnot le like ' + 'lt match ne not notcontains notlike notmatch or regex replace ' + 'wildcard').split() + + verbs = ( + 'write where wait use update unregister undo trace test tee take ' + 'suspend stop start split sort skip show set send select scroll resume ' + 'restore restart resolve resize reset rename remove register receive ' + 'read push pop ping out new move measure limit join invoke import ' + 'group get format foreach export expand exit enter enable disconnect ' + 'disable debug cxnew copy convertto convertfrom convert connect ' + 'complete compare clear checkpoint aggregate add').split() + + commenthelp = ( + 'component description example externalhelp forwardhelpcategory ' + 'forwardhelptargetname functionality inputs link ' + 'notes outputs parameter remotehelprunspace role synopsis').split() + + tokens = { + 'root': [ + # we need to count pairs of parentheses for correct highlight + # of '$(...)' blocks in strings + (r'\(', Punctuation, 'child'), + (r'\s+', Text), + (r'^(\s*#[#\s]*)(\.(?:%s))([^\n]*$)' % '|'.join(commenthelp), + bygroups(Comment, String.Doc, Comment)), + (r'#[^\n]*?$', Comment), + (r'(<|<)#', Comment.Multiline, 'multline'), + (r'@"\n', String.Heredoc, 'heredoc-double'), + (r"@'\n.*?\n'@", String.Heredoc), + # escaped syntax + (r'`[\'"$@-]', Punctuation), + (r'"', String.Double, 'string'), + (r"'([^']|'')*'", String.Single), + (r'(\$|@@|@)((global|script|private|env):)?\w+', + Name.Variable), + (r'(%s)\b' % '|'.join(keywords), Keyword), + (r'-(%s)\b' % '|'.join(operators), Operator), + (r'(%s)-[a-z_]\w*\b' % '|'.join(verbs), Name.Builtin), + (r'\[[a-z_\[][\w. `,\[\]]*\]', Name.Constant), # .net [type]s + (r'-[a-z_]\w*', Name), + (r'\w+', Name), + (r'[.,;@{}\[\]$()=+*/\\&%!~?^`|<>-]|::', Punctuation), + ], + 'child': [ + (r'\)', Punctuation, '#pop'), + include('root'), + ], + 'multline': [ + (r'[^#&.]+', Comment.Multiline), + (r'#(>|>)', Comment.Multiline, '#pop'), + (r'\.(%s)' % '|'.join(commenthelp), String.Doc), + (r'[#&.]', Comment.Multiline), + ], + 'string': [ + (r"`[0abfnrtv'\"$`]", String.Escape), + (r'[^$`"]+', String.Double), + (r'\$\(', Punctuation, 'child'), + (r'""', String.Double), + (r'[`$]', String.Double), + (r'"', String.Double, '#pop'), + ], + 'heredoc-double': [ + (r'\n"@', String.Heredoc, '#pop'), + (r'\$\(', Punctuation, 'child'), + (r'[^@\n]+"]', String.Heredoc), + (r".", String.Heredoc), + ] + } + + +class PowerShellSessionLexer(ShellSessionBaseLexer): + """ + Lexer for simplistic Windows PowerShell sessions. + + .. versionadded:: 2.1 + """ + + name = 'PowerShell Session' + aliases = ['ps1con'] + filenames = [] + mimetypes = [] + + _innerLexerCls = PowerShellLexer + _ps1rgx = r'^(PS [^>]+> )(.*\n?)' + _ps2 = '>> ' + + +class FishShellLexer(RegexLexer): + """ + Lexer for Fish shell scripts. + + .. versionadded:: 2.1 + """ + + name = 'Fish' + aliases = ['fish', 'fishshell'] + filenames = ['*.fish', '*.load'] + mimetypes = ['application/x-fish'] + + tokens = { + 'root': [ + include('basic'), + include('data'), + include('interp'), + ], + 'interp': [ + (r'\$\(\(', Keyword, 'math'), + (r'\(', Keyword, 'paren'), + (r'\$#?(\w+|.)', Name.Variable), + ], + 'basic': [ + (r'\b(begin|end|if|else|while|break|for|in|return|function|block|' + r'case|continue|switch|not|and|or|set|echo|exit|pwd|true|false|' + r'cd|count|test)(\s*)\b', + bygroups(Keyword, Text)), + (r'\b(alias|bg|bind|breakpoint|builtin|command|commandline|' + r'complete|contains|dirh|dirs|emit|eval|exec|fg|fish|fish_config|' + r'fish_indent|fish_pager|fish_prompt|fish_right_prompt|' + r'fish_update_completions|fishd|funced|funcsave|functions|help|' + r'history|isatty|jobs|math|mimedb|nextd|open|popd|prevd|psub|' + r'pushd|random|read|set_color|source|status|trap|type|ulimit|' + r'umask|vared|fc|getopts|hash|kill|printf|time|wait)\s*\b(?!\.)', + Name.Builtin), + (r'#.*\n', Comment), + (r'\\[\w\W]', String.Escape), + (r'(\b\w+)(\s*)(=)', bygroups(Name.Variable, Text, Operator)), + (r'[\[\]()=]', Operator), + (r'<<-?\s*(\'?)\\?(\w+)[\w\W]+?\2', String), + ], + 'data': [ + (r'(?s)\$?"(\\\\|\\[0-7]+|\\.|[^"\\$])*"', String.Double), + (r'"', String.Double, 'string'), + (r"(?s)\$'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single), + (r"(?s)'.*?'", String.Single), + (r';', Punctuation), + (r'&|\||\^|<|>', Operator), + (r'\s+', Text), + (r'\d+(?= |\Z)', Number), + (r'[^=\s\[\]{}()$"\'`\\<&|;]+', Text), + ], + 'string': [ + (r'"', String.Double, '#pop'), + (r'(?s)(\\\\|\\[0-7]+|\\.|[^"\\$])+', String.Double), + include('interp'), + ], + 'paren': [ + (r'\)', Keyword, '#pop'), + include('root'), + ], + 'math': [ + (r'\)\)', Keyword, '#pop'), + (r'[-+*/%^|&]|\*\*|\|\|', Operator), + (r'\d+#\d+', Number), + (r'\d+#(?! )', Number), + (r'\d+', Number), + include('root'), + ], + } From 5efa623a0b5cd8ddd28fadb283ab866b3c7d0b70 Mon Sep 17 00:00:00 2001 From: David Corbett Date: Sun, 24 Jan 2016 10:17:34 -0500 Subject: [PATCH 319/709] Add a lexer for JSGF --- AUTHORS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index 9318d4380c8..63352803844 100644 --- a/AUTHORS +++ b/AUTHORS @@ -36,7 +36,7 @@ Other contributors, listed alphabetically, are: * chebee7i -- Python traceback lexer improvements * Hiram Chirino -- Scaml and Jade lexers * Ian Cooper -- VGL lexer -* David Corbett -- Inform, Jasmin, and TADS 3 lexers +* David Corbett -- Inform, Jasmin, JSGF, and TADS 3 lexers * Leaf Corcoran -- MoonScript lexer * Christopher Creutzig -- MuPAD lexer * Daniël W. Crompton -- Pike lexer From 4b5fd795cf9af45b4db6ec6d6e21161b4d15be6f Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Tue, 2 Feb 2016 12:16:36 +0100 Subject: [PATCH 320/709] Add support for highlighting the exheres-0 format From: "Wulf C. Krueger" --- pygments/lexers/shell.py | 1 + 1 file changed, 1 insertion(+) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index dc23d01811b..4145939e6e4 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -35,6 +35,7 @@ class BashLexer(RegexLexer): name = 'Bash' aliases = ['bash', 'sh', 'ksh', 'shell'] filenames = ['*.sh', '*.ksh', '*.bash', '*.ebuild', '*.eclass', + '*.exheres-0', '*.exlib', '.bashrc', 'bashrc', '.bash_*', 'bash_*', 'PKGBUILD'] mimetypes = ['application/x-sh', 'application/x-shellscript'] From addb32c5c9978df4c158bd075b884a0aa55b038d Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Tue, 2 Feb 2016 12:23:40 +0100 Subject: [PATCH 321/709] Add AMPL lexer, by Benoit Vinot. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 9318d4380c8..44fb0485f89 100644 --- a/AUTHORS +++ b/AUTHORS @@ -186,6 +186,7 @@ Other contributors, listed alphabetically, are: * Abe Voelker -- OpenEdge ABL lexer * Pepijn de Vos -- HTML formatter CTags support * Matthias Vallentin -- Bro lexer +* Benoît Vinot -- AMPL lexer * Linh Vu Hong -- RSL lexer * Nathan Weizenbaum -- Haml and Sass lexers * Nathan Whetsell -- Csound lexers From bcf490ec1dba25ea0bc303bb0477192f71c2b74f Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Tue, 2 Feb 2016 15:29:05 +0100 Subject: [PATCH 322/709] Add lexer for TypoScript (#closes 1173) Source: https://github.com/Tuurlijk/Pygments-TypoScript-Lexer --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 44fb0485f89..5108c2ab42d 100644 --- a/AUTHORS +++ b/AUTHORS @@ -156,6 +156,7 @@ Other contributors, listed alphabetically, are: * Corey Richardson -- Rust lexer updates * Lubomir Rintel -- GoodData MAQL and CL lexers * Andre Roberge -- Tango style +* Michiel Roos -- TypoScript lexer * Konrad Rudolph -- LaTeX formatter enhancements * Mario Ruggier -- Evoque lexers * Miikka Salminen -- Lovelace style, Hexdump lexer, lexer enhancements From e12704f90e96d8c731b2226ccc14d58b5ec9af01 Mon Sep 17 00:00:00 2001 From: Chee Sing Lee Date: Fri, 5 Feb 2016 17:42:17 -0800 Subject: [PATCH 323/709] Add Flatline lexer --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 5108c2ab42d..aeb63ea1e02 100644 --- a/AUTHORS +++ b/AUTHORS @@ -111,6 +111,7 @@ Other contributors, listed alphabetically, are: * Olov Lassus -- Dart lexer * Matt Layman -- TAP lexer * Sylvestre Ledru -- Scilab lexer +* Chee Sing Lee -- Flatline lexer * Mark Lee -- Vala lexer * Valentin Lorentz -- C++ lexer improvements * Ben Mabey -- Gherkin lexer From 63ad9964da6f3d8939ffdf507b9fc93855af739a Mon Sep 17 00:00:00 2001 From: Kristian Lyngstol Date: Mon, 8 Feb 2016 13:15:08 +0100 Subject: [PATCH 324/709] Update AUTHORS with Varnish Lexer author --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 5108c2ab42d..600f6b22790 100644 --- a/AUTHORS +++ b/AUTHORS @@ -110,6 +110,7 @@ Other contributors, listed alphabetically, are: * Jon Larimer, Google Inc. -- Smali lexer * Olov Lassus -- Dart lexer * Matt Layman -- TAP lexer +* Kristian Lyngstøl -- Varnish lexers * Sylvestre Ledru -- Scilab lexer * Mark Lee -- Vala lexer * Valentin Lorentz -- C++ lexer improvements From 1660f5257e9df287538a5797c92a0afe4dadf096 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 14 Feb 2016 19:24:23 +0100 Subject: [PATCH 325/709] Add authors entry, changelog for PR#531 and fixup a few style issues. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 600f6b22790..9f45d8eaf11 100644 --- a/AUTHORS +++ b/AUTHORS @@ -33,6 +33,7 @@ Other contributors, listed alphabetically, are: * Adam Blinkinsop -- Haskell, Redcode lexers * Frits van Bommel -- assembler lexers * Pierre Bourdon -- bugfixes +* Matthias Bussonnier -- ANSI style handling for terminal-256 formatter * chebee7i -- Python traceback lexer improvements * Hiram Chirino -- Scaml and Jade lexers * Ian Cooper -- VGL lexer From 4704a75135bc48d1fe9a8be63777b338b78390e9 Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Tue, 16 Feb 2016 21:23:32 +0100 Subject: [PATCH 326/709] Fixes & cleanup Clean lexer as per PR discussion --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index d4d85bb7aaf..c9e0d3ff218 100644 --- a/AUTHORS +++ b/AUTHORS @@ -151,6 +151,7 @@ Other contributors, listed alphabetically, are: * Alexander Smishlajev -- Visual FoxPro lexer * Steve Spigarelli -- XQuery lexer * Jerome St-Louis -- eC lexer +* Camil Staps -- Clean lexer * James Strachan -- Kotlin lexer * Tom Stuart -- Treetop lexer * Tiberius Teng -- default style overhaul From e1eea3d6bbce59ccebb3c53eac4b57bad8c18a07 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Wed, 17 Feb 2016 09:23:56 +0100 Subject: [PATCH 327/709] Add wdiff to authors/changes. --- AUTHORS | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index c5ed18b78d8..795876c2008 100644 --- a/AUTHORS +++ b/AUTHORS @@ -89,7 +89,8 @@ Other contributors, listed alphabetically, are: * Tim Howard -- BlitzMax lexer * Dustin Howett -- Logos lexer * Ivan Inozemtsev -- Fantom lexer -* Hiroaki Itoh -- Shell console rewrite, Lexers for PowerShell session, MSDOS session, BC +* Hiroaki Itoh -- Shell console rewrite, Lexers for PowerShell session, + MSDOS session, BC, WDiff * Brian R. Jackson -- Tea lexer * Christian Jann -- ShellSession lexer * Dennis Kaarsemaker -- sources.list lexer From f983fc1d03f8fe55a480dbbcc5f2ebd3f186ade4 Mon Sep 17 00:00:00 2001 From: Hong Xu Date: Sun, 28 Feb 2016 20:02:20 -0800 Subject: [PATCH 328/709] Bash lexer: letter from "g" to "z" should also be treated as part of a variable name. Fixes #1214 --- pygments/lexers/shell.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 4145939e6e4..6a3b38156f9 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -50,7 +50,7 @@ class BashLexer(RegexLexer): (r'\$\(\(', Keyword, 'math'), (r'\$\(', Keyword, 'paren'), (r'\$\{#?', String.Interpol, 'curly'), - (r'\$[a-fA-F_][a-fA-F0-9_]*', Name.Variable), # user variable + (r'\$[a-zA-Z_][a-zA-Z0-9_]*', Name.Variable), # user variable (r'\$(?:\d+|[#$?!_*@-])', Name.Variable), # builtin (r'\$', Text), ], From dc48bf7cc3850e6941d9ca9f37e173581ad7ed22 Mon Sep 17 00:00:00 2001 From: Hong Xu Date: Sun, 28 Feb 2016 20:02:20 -0800 Subject: [PATCH 329/709] Bash lexer: letter from "g" to "z" should also be treated as part of a variable name. Fixes #1214 --- pygments/lexers/shell.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 4145939e6e4..6a3b38156f9 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -50,7 +50,7 @@ class BashLexer(RegexLexer): (r'\$\(\(', Keyword, 'math'), (r'\$\(', Keyword, 'paren'), (r'\$\{#?', String.Interpol, 'curly'), - (r'\$[a-fA-F_][a-fA-F0-9_]*', Name.Variable), # user variable + (r'\$[a-zA-Z_][a-zA-Z0-9_]*', Name.Variable), # user variable (r'\$(?:\d+|[#$?!_*@-])', Name.Variable), # builtin (r'\$', Text), ], From 851360b86b80966950f78fa2cdb8ac4f83bd805c Mon Sep 17 00:00:00 2001 From: David Corbett Date: Tue, 1 Mar 2016 20:09:08 -0500 Subject: [PATCH 330/709] Fix Batch strings --- pygments/lexers/shell.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 6a3b38156f9..ad2e2d7aefd 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -214,16 +214,16 @@ class BatchLexer(RegexLexer): (_nl, _punct, _ws, _nl)) _number = r'(?:-?(?:0[0-7]+|0x[\da-f]+|\d+)%s)' % _token_terminator _opword = r'(?:equ|geq|gtr|leq|lss|neq)' - _string = r'(?:"[^%s"]*"?)' % _nl + _string = r'(?:"[^%s"]*(?:"|(?=[%s])))' % (_nl, _nl) _variable = (r'(?:(?:%%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|' r'[^%%:%s]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%%%s^]|' r'\^[^%%%s])[^=%s]*=(?:[^%%%s^]|\^[^%%%s])*)?)?%%))|' r'(?:\^?![^!:%s]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:' r'[^!%s^]|\^[^!%s])[^=%s]*=(?:[^!%s^]|\^[^!%s])*)?)?\^?!))' % (_nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl)) - _core_token = r'(?:(?:(?:\^[%s]?)?[^%s%s%s])+)' % (_nl, _nl, _punct, _ws) - _core_token_compound = r'(?:(?:(?:\^[%s]?)?[^%s%s%s)])+)' % (_nl, _nl, - _punct, _ws) + _core_token = r'(?:(?:(?:\^[%s]?)?[^"%s%s%s])+)' % (_nl, _nl, _punct, _ws) + _core_token_compound = r'(?:(?:(?:\^[%s]?)?[^"%s%s%s)])+)' % (_nl, _nl, + _punct, _ws) _token = r'(?:[%s]+|%s)' % (_punct, _core_token) _token_compound = r'(?:[%s]+|%s)' % (_punct, _core_token_compound) _stoken = (r'(?:[%s]+|(?:%s|%s|%s)+)' % From 4e3b2bf28359353cc1ce7df812e3eacee9fb58d5 Mon Sep 17 00:00:00 2001 From: David Corbett Date: Tue, 1 Mar 2016 20:09:08 -0500 Subject: [PATCH 331/709] Fix Batch strings --- pygments/lexers/shell.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 6a3b38156f9..ad2e2d7aefd 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -214,16 +214,16 @@ class BatchLexer(RegexLexer): (_nl, _punct, _ws, _nl)) _number = r'(?:-?(?:0[0-7]+|0x[\da-f]+|\d+)%s)' % _token_terminator _opword = r'(?:equ|geq|gtr|leq|lss|neq)' - _string = r'(?:"[^%s"]*"?)' % _nl + _string = r'(?:"[^%s"]*(?:"|(?=[%s])))' % (_nl, _nl) _variable = (r'(?:(?:%%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|' r'[^%%:%s]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%%%s^]|' r'\^[^%%%s])[^=%s]*=(?:[^%%%s^]|\^[^%%%s])*)?)?%%))|' r'(?:\^?![^!:%s]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:' r'[^!%s^]|\^[^!%s])[^=%s]*=(?:[^!%s^]|\^[^!%s])*)?)?\^?!))' % (_nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl)) - _core_token = r'(?:(?:(?:\^[%s]?)?[^%s%s%s])+)' % (_nl, _nl, _punct, _ws) - _core_token_compound = r'(?:(?:(?:\^[%s]?)?[^%s%s%s)])+)' % (_nl, _nl, - _punct, _ws) + _core_token = r'(?:(?:(?:\^[%s]?)?[^"%s%s%s])+)' % (_nl, _nl, _punct, _ws) + _core_token_compound = r'(?:(?:(?:\^[%s]?)?[^"%s%s%s)])+)' % (_nl, _nl, + _punct, _ws) _token = r'(?:[%s]+|%s)' % (_punct, _core_token) _token_compound = r'(?:[%s]+|%s)' % (_punct, _core_token_compound) _stoken = (r'(?:[%s]+|(?:%s|%s|%s)+)' % From 71f87dc6b96b45088181b70a6227eea5e713a3f5 Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Wed, 2 Mar 2016 14:43:51 +0100 Subject: [PATCH 332/709] Adds a NuSMV (2.6) lexer and example file. See http://nusmv.fbk.eu/NuSMV/ and in particular the documentation at http://nusmv.fbk.eu/NuSMV/userman/v26/nusmv.pdf. --- AUTHORS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index c5ed18b78d8..8c822742e39 100644 --- a/AUTHORS +++ b/AUTHORS @@ -174,7 +174,7 @@ Other contributors, listed alphabetically, are: * Alexander Smishlajev -- Visual FoxPro lexer * Steve Spigarelli -- XQuery lexer * Jerome St-Louis -- eC lexer -* Camil Staps -- Clean lexer +* Camil Staps -- Clean and NuSMV lexers * James Strachan -- Kotlin lexer * Tom Stuart -- Treetop lexer * Colin Sullivan -- SuperCollider lexer From f8643dcc332295e07e5fe6bf2ca0b79e39f5924d Mon Sep 17 00:00:00 2001 From: Andrey Golovizin Date: Mon, 7 Mar 2016 14:32:54 +0100 Subject: [PATCH 333/709] Add BibTeX lexers --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 204b4efeaca..15a9578dcf5 100644 --- a/AUTHORS +++ b/AUTHORS @@ -65,6 +65,7 @@ Other contributors, listed alphabetically, are: * Alex Gilding -- BlitzBasic lexer * Bertrand Goetzmann -- Groovy lexer * Krzysiek Goj -- Scala lexer +* Andrey Golovizin -- BibTeX lexers * Matt Good -- Genshi, Cheetah lexers * Michał Górny -- vim modeline support * Alex Gosse -- TrafficScript lexer From b4fdc445470e3dee3497b15702ffc4b46640e1c9 Mon Sep 17 00:00:00 2001 From: Sebastian Schweizer Date: Sun, 20 Mar 2016 21:48:22 +1300 Subject: [PATCH 334/709] Add a lexer for the Whiley programming language --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 204b4efeaca..e5f6df1448d 100644 --- a/AUTHORS +++ b/AUTHORS @@ -170,6 +170,7 @@ Other contributors, listed alphabetically, are: * Joe Schafer -- Ada lexer * Ken Schutte -- Matlab lexers * Tassilo Schweyer -- Io, MOOCode lexers +* Sebastian Schweizer -- Whiley lexer * Ted Shaw -- AutoIt lexer * Joerg Sieker -- ABAP lexer * Robert Simmons -- Standard ML lexer From ff929a7ce9fa8fd5fec49c959b4dd2af85d82bf8 Mon Sep 17 00:00:00 2001 From: Sebastian Schweizer Date: Mon, 21 Mar 2016 12:04:09 +1300 Subject: [PATCH 335/709] fixes for Whiley lexer --- AUTHORS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index e5f6df1448d..ffe9cb6bcc6 100644 --- a/AUTHORS +++ b/AUTHORS @@ -169,8 +169,8 @@ Other contributors, listed alphabetically, are: * Matteo Sasso -- Common Lisp lexer * Joe Schafer -- Ada lexer * Ken Schutte -- Matlab lexers -* Tassilo Schweyer -- Io, MOOCode lexers * Sebastian Schweizer -- Whiley lexer +* Tassilo Schweyer -- Io, MOOCode lexers * Ted Shaw -- AutoIt lexer * Joerg Sieker -- ABAP lexer * Robert Simmons -- Standard ML lexer From e4495d3b7817c77d50bd20010e3b2eeb35100b32 Mon Sep 17 00:00:00 2001 From: Thomas Aglassinger Date: Mon, 21 Mar 2016 08:29:44 +0100 Subject: [PATCH 336/709] Added lexer for Transact-SQL as used by Microsoft SQL Server and Sybase. --- AUTHORS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index 204b4efeaca..2fc9a97e4a7 100644 --- a/AUTHORS +++ b/AUTHORS @@ -7,7 +7,7 @@ Other contributors, listed alphabetically, are: * Sam Aaron -- Ioke lexer * Ali Afshar -- image formatter -* Thomas Aglassinger -- Easytrieve, JCL and Rexx lexers +* Thomas Aglassinger -- Easytrieve, JCL, Rexx and Transact-SQL lexers * Muthiah Annamalai -- Ezhil lexer * Kumar Appaiah -- Debian control lexer * Andreas Amann -- AppleScript lexer From d7c34e6072bd98293afbe63bb23742338921c3b5 Mon Sep 17 00:00:00 2001 From: Oleh Prypin Date: Wed, 23 Mar 2016 22:24:07 +0200 Subject: [PATCH 337/709] Finish CrystalLexer --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 204b4efeaca..e779818ed69 100644 --- a/AUTHORS +++ b/AUTHORS @@ -152,6 +152,7 @@ Other contributors, listed alphabetically, are: * Dominik Picheta -- Nimrod lexer * Andrew Pinkham -- RTF Formatter Refactoring * Clément Prévost -- UrbiScript lexer +* Oleh Prypin -- Crystal lexer (based on Ruby lexer) * Elias Rabel -- Fortran fixed form lexer * raichoo -- Idris lexer * Kashif Rasul -- CUDA lexer From 0337b252854e1319dbc83dc212288d8ac8cd039b Mon Sep 17 00:00:00 2001 From: David Corbett Date: Sun, 24 Apr 2016 20:33:52 -0400 Subject: [PATCH 338/709] Add a lexer for Snowball --- AUTHORS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index 204b4efeaca..b2ca621de49 100644 --- a/AUTHORS +++ b/AUTHORS @@ -37,7 +37,7 @@ Other contributors, listed alphabetically, are: * chebee7i -- Python traceback lexer improvements * Hiram Chirino -- Scaml and Jade lexers * Ian Cooper -- VGL lexer -* David Corbett -- Inform, Jasmin, JSGF, and TADS 3 lexers +* David Corbett -- Inform, Jasmin, JSGF, Snowball, and TADS 3 lexers * Leaf Corcoran -- MoonScript lexer * Christopher Creutzig -- MuPAD lexer * Daniël W. Crompton -- Pike lexer From 4a9c2356b7a699e5120b641d7db04086da3240b2 Mon Sep 17 00:00:00 2001 From: Mauricio Caceres Date: Mon, 9 May 2016 06:32:27 -0400 Subject: [PATCH 339/709] Added syntax support and (very simple) styles for SAS and Stata --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 204b4efeaca..5dfb3338022 100644 --- a/AUTHORS +++ b/AUTHORS @@ -36,6 +36,7 @@ Other contributors, listed alphabetically, are: * Matthias Bussonnier -- ANSI style handling for terminal-256 formatter * chebee7i -- Python traceback lexer improvements * Hiram Chirino -- Scaml and Jade lexers +* Mauricio Caceres -- SAS and Stata lexers. * Ian Cooper -- VGL lexer * David Corbett -- Inform, Jasmin, JSGF, and TADS 3 lexers * Leaf Corcoran -- MoonScript lexer From 2b1b496b87e59ff0504f8be0352fe19815445613 Mon Sep 17 00:00:00 2001 From: David Corbett Date: Wed, 25 May 2016 12:59:04 -0400 Subject: [PATCH 340/709] Fix Batch variables in FOR loop commands --- pygments/lexers/shell.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index ad2e2d7aefd..c2f54fc2ada 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -452,9 +452,9 @@ def _make_redirect_state(compound, bygroups(String.Double, using(this, state='string'), Text, Punctuation)), (r'"', String.Double, ('#pop', 'for2', 'string')), - (r"('(?:%s|[\w\W])*?')([%s%s]*)(\))" % (_variable, _nl, _ws), + (r"('(?:%%%%|%s|[\w\W])*?')([%s%s]*)(\))" % (_variable, _nl, _ws), bygroups(using(this, state='sqstring'), Text, Punctuation)), - (r'(`(?:%s|[\w\W])*?`)([%s%s]*)(\))' % (_variable, _nl, _ws), + (r'(`(?:%%%%|%s|[\w\W])*?`)([%s%s]*)(\))' % (_variable, _nl, _ws), bygroups(using(this, state='bqstring'), Text, Punctuation)), include('for2') ], From f041fcbbb796bfbe0e0ddd7f1d871e286a776f3d Mon Sep 17 00:00:00 2001 From: Tim Hatch Date: Tue, 31 May 2016 17:06:08 -0700 Subject: [PATCH 341/709] Update Monte lexer, improve test. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 204b4efeaca..e408420370d 100644 --- a/AUTHORS +++ b/AUTHORS @@ -174,6 +174,7 @@ Other contributors, listed alphabetically, are: * Joerg Sieker -- ABAP lexer * Robert Simmons -- Standard ML lexer * Kirill Simonov -- YAML lexer +* Corbin Simpson -- Monte lexer * Alexander Smishlajev -- Visual FoxPro lexer * Steve Spigarelli -- XQuery lexer * Jerome St-Louis -- eC lexer From 4fb71bf44b1dc5e36f594aacd6c4b6e3ae4fa907 Mon Sep 17 00:00:00 2001 From: Tim Hatch Date: Wed, 1 Jun 2016 00:18:52 -0700 Subject: [PATCH 342/709] Add Forth lexer. Fixes #857 --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 42650444086..3b3f0502c11 100644 --- a/AUTHORS +++ b/AUTHORS @@ -191,6 +191,7 @@ Other contributors, listed alphabetically, are: * Jeremy Thurgood -- Erlang, Squid config lexers * Brian Tiffin -- OpenCOBOL lexer * Bob Tolbert -- Hy lexer +* Matthias Trute -- Forth lexer * Erick Tryzelaar -- Felix lexer * Alexander Udalov -- Kotlin lexer improvements * Thomas Van Doren -- Chapel lexer From 0191d52711484a043d42e3ac90952d3435a0adf2 Mon Sep 17 00:00:00 2001 From: Tim Hatch Date: Wed, 1 Jun 2016 00:38:50 -0700 Subject: [PATCH 343/709] Improve number highlighting in bash. Fixes #1244 --- pygments/lexers/shell.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index c2f54fc2ada..b9368ade715 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -83,7 +83,7 @@ class BashLexer(RegexLexer): (r'&', Punctuation), (r'\|', Punctuation), (r'\s+', Text), - (r'\d+(?= |\Z)', Number), + (r'\d+\b', Number), (r'[^=\s\[\]{}()$"\'`\\<&|;]+', Text), (r'<', Text), ], From 128d993bcecf92db464d1a4ab4e0530adecbabe4 Mon Sep 17 00:00:00 2001 From: Tim Hatch Date: Wed, 1 Jun 2016 00:49:28 -0700 Subject: [PATCH 344/709] Add backslash-continuation support to console lexer. Fixes #1237 --- pygments/lexers/shell.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index b9368ade715..ae790b9e108 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -137,11 +137,15 @@ def get_tokens_unprocessed(self, text): pos = 0 curcode = '' insertions = [] + backslash_continuation = False for match in line_re.finditer(text): line = match.group() m = re.match(self._ps1rgx, line) - if m: + if backslash_continuation: + curcode += line + backslash_continuation = curcode.endswith('\\\n') + elif m: # To support output lexers (say diff output), the output # needs to be broken by prompts whenever the output lexer # changes. @@ -151,10 +155,12 @@ def get_tokens_unprocessed(self, text): insertions.append((len(curcode), [(0, Generic.Prompt, m.group(1))])) curcode += m.group(2) + backslash_continuation = curcode.endswith('\\\n') elif line.startswith(self._ps2): insertions.append((len(curcode), [(0, Generic.Prompt, line[:len(self._ps2)])])) curcode += line[len(self._ps2):] + backslash_continuation = curcode.endswith('\\\n') else: if insertions: toks = innerlexer.get_tokens_unprocessed(curcode) From 0b2cc97378728ce2068c169a35081f2a1a6190e4 Mon Sep 17 00:00:00 2001 From: Kurt Neufeld Date: Thu, 2 Jun 2016 15:53:59 -0700 Subject: [PATCH 345/709] added github flavoured markdown parser --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 3b3f0502c11..e26fa6e944d 100644 --- a/AUTHORS +++ b/AUTHORS @@ -212,5 +212,6 @@ Other contributors, listed alphabetically, are: * Alex Zimin -- Nemerle lexer * Rob Zimmerman -- Kal lexer * Vincent Zurczak -- Roboconf lexer +* Kurt Neufeld -- Markdown lexer Many thanks for all contributions! From 5c706c26121ec6c2bc4535c9a1054bdbe2a1e0b0 Mon Sep 17 00:00:00 2001 From: Kurt Neufeld Date: Thu, 2 Jun 2016 16:09:51 -0700 Subject: [PATCH 346/709] moved my name info alphabetical order --- AUTHORS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index e26fa6e944d..fa0e92e8492 100644 --- a/AUTHORS +++ b/AUTHORS @@ -140,6 +140,7 @@ Other contributors, listed alphabetically, are: * Mher Movsisyan -- DTD lexer * Dejan Muhamedagic -- Crmsh lexer * Ana Nelson -- Ragel, ANTLR, R console lexers +* Kurt Neufeld -- Markdown lexer * Nam T. Nguyen -- Monokai style * Jesper Noehr -- HTML formatter "anchorlinenos" * Mike Nolta -- Julia lexer @@ -212,6 +213,5 @@ Other contributors, listed alphabetically, are: * Alex Zimin -- Nemerle lexer * Rob Zimmerman -- Kal lexer * Vincent Zurczak -- Roboconf lexer -* Kurt Neufeld -- Markdown lexer Many thanks for all contributions! From 3f99e03698fce2dbbda03b4c63a3ae969fc341d3 Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Thu, 16 Jun 2016 07:07:56 +0200 Subject: [PATCH 347/709] Fixes #1246 --- pygments/lexers/shell.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index ae790b9e108..f8d8194eb6a 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -69,6 +69,8 @@ class BashLexer(RegexLexer): (r'#.*\n', Comment.Single), (r'\\[\w\W]', String.Escape), (r'(\b\w+)(\s*)(=)', bygroups(Name.Variable, Text, Operator)), + (r'(\b\w+)(\s*)([+*/%-&|\^]|<<|>>)(=)', + bygroups(Name.Variable, Text, Operator, Operator)), (r'[\[\]{}()=]', Operator), (r'<<<', Operator), # here-string (r'<<-?\s*(\'?)\\?(\w+)[\w\W]+?\2', String), From 4739f17d25ddaa6462ccd6147abe945f0969c2ca Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Thu, 16 Jun 2016 09:07:08 +0200 Subject: [PATCH 348/709] Only += is an operator --- pygments/lexers/shell.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index f8d8194eb6a..a5933afb124 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -68,9 +68,7 @@ class BashLexer(RegexLexer): (r'\A#!.+\n', Comment.Hashbang), (r'#.*\n', Comment.Single), (r'\\[\w\W]', String.Escape), - (r'(\b\w+)(\s*)(=)', bygroups(Name.Variable, Text, Operator)), - (r'(\b\w+)(\s*)([+*/%-&|\^]|<<|>>)(=)', - bygroups(Name.Variable, Text, Operator, Operator)), + (r'(\b\w+)(\s*)(\+?=)', bygroups(Name.Variable, Text, Operator)), (r'[\[\]{}()=]', Operator), (r'<<<', Operator), # here-string (r'<<-?\s*(\'?)\\?(\w+)[\w\W]+?\2', String), From 8c2991fd99f97d381976ca0f035be345eef5b718 Mon Sep 17 00:00:00 2001 From: David Corbett Date: Wed, 13 Jul 2016 21:24:07 -0400 Subject: [PATCH 349/709] Fix Batch variables after IF --- pygments/lexers/shell.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index a5933afb124..e9a7595b43b 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -478,13 +478,16 @@ def _make_redirect_state(compound, using(this, state='variable')), '#pop'), (r'(exist%s)(%s%s)' % (_token_terminator, _space, _stoken), bygroups(Keyword, using(this, state='text')), '#pop'), - (r'(%s%s?)(==)(%s?%s)' % (_stoken, _space, _space, _stoken), - bygroups(using(this, state='text'), Operator, - using(this, state='text')), '#pop'), (r'(%s%s)(%s)(%s%s)' % (_number, _space, _opword, _space, _number), bygroups(using(this, state='arithmetic'), Operator.Word, using(this, state='arithmetic')), '#pop'), - (r'(%s%s)(%s)(%s%s)' % (_stoken, _space, _opword, _space, _stoken), + (_stoken, using(this, state='text'), ('#pop', 'if2')), + ], + 'if2': [ + (r'(%s?)(==)(%s?%s)' % (_space, _space, _stoken), + bygroups(using(this, state='text'), Operator, + using(this, state='text')), '#pop'), + (r'(%s)(%s)(%s%s)' % (_space, _opword, _space, _stoken), bygroups(using(this, state='text'), Operator.Word, using(this, state='text')), '#pop') ], From 2c5c794886b5ccc961f2f046512802c5cf946f25 Mon Sep 17 00:00:00 2001 From: Ren? Schwaiger Date: Mon, 18 Jul 2016 15:44:15 +0200 Subject: [PATCH 350/709] Add ?Rainbow Dash? syntax highlighting style This bright and colorful style is a port of my TextMate theme [1]. It is based on ?Mac Classic? by Chris Thomas. [1]: http://sanssecours.github.io/Rainbow-Dash.tmbundle --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 66377eada49..efbad179a5e 100644 --- a/AUTHORS +++ b/AUTHORS @@ -173,6 +173,7 @@ Other contributors, listed alphabetically, are: * Matteo Sasso -- Common Lisp lexer * Joe Schafer -- Ada lexer * Ken Schutte -- Matlab lexers +* René Schwaiger -- Rainbow Dash style * Sebastian Schweizer -- Whiley lexer * Tassilo Schweyer -- Io, MOOCode lexers * Ted Shaw -- AutoIt lexer From 3b90184140af8855d5aa021402462b626b536842 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Thu, 18 Aug 2016 16:21:09 -0700 Subject: [PATCH 351/709] Highlight zsh files using the BashLexer --- pygments/lexers/shell.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index a5933afb124..752e71a7dbe 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -27,16 +27,17 @@ class BashLexer(RegexLexer): """ - Lexer for (ba|k|)sh shell scripts. + Lexer for (ba|k|z|)sh shell scripts. .. versionadded:: 0.6 """ name = 'Bash' - aliases = ['bash', 'sh', 'ksh', 'shell'] + aliases = ['bash', 'sh', 'ksh', 'zsh', 'shell'] filenames = ['*.sh', '*.ksh', '*.bash', '*.ebuild', '*.eclass', - '*.exheres-0', '*.exlib', - '.bashrc', 'bashrc', '.bash_*', 'bash_*', 'PKGBUILD'] + '*.exheres-0', '*.exlib', '*.zsh', + '.bashrc', 'bashrc', '.bash_*', 'bash_*', 'zshrc', '.zshrc', + 'PKGBUILD'] mimetypes = ['application/x-sh', 'application/x-shellscript'] tokens = { From 9b7bdc8afc42a8f9e6a0fe704edbd24a2b90aa63 Mon Sep 17 00:00:00 2001 From: David Wolever Date: Wed, 21 Sep 2016 16:09:54 -0400 Subject: [PATCH 352/709] Correctly normalize package names --- libpip2pi/commands.py | 84 ++++++++++++++++++++++++++----------------- 1 file changed, 51 insertions(+), 33 deletions(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index 8e0d67fac41..3079b508507 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -172,18 +172,25 @@ def format_description(self, formatter): def add_index_options(self): self.add_option( '-n', '--normalize-package-names', dest="normalize_package_names", - default=None, action="store_true", + default=True, action="store_true", help=dedent(""" - Normalize package names in simple index. - Ex, 'simple/Django/Django-1.7.tar.gz' will be - normalized to 'simple/django/Django-1.7.tar.gz'. - Non-normalized package names are deprecated and - this option will eventually be enabled by default. - See also: https://github.com/wolever/pip2pi/issues/37 + Normalize package names in the simple index using whatever + scheme is supported by the most recent version of pip (default). """)) self.add_option( '-N', '--no-normalize-package-names', dest="normalize_package_names", action="store_false") + self.add_option( + '-a', '--aggressive-normalization', dest="aggressive_normalization", + default=False, action="store_true", + help=dedent(""" + Aggressive create symlinks to many different package name + normalizations to support multiple pip versions (for a package + named "Spam_Eggs--cheese.shop", the following normalizations + will be used: "spam-eggs-cheese-shop" (PEP-503), + "spam-eggs-cheese.shop" (pip 6, pip 7), + "Spam_Eggs--cheese.shop" (pip < 6)). + """)) self.add_option( '-x', '--no-build-html', dest="build_html", action="store_false", default=True, help=dedent(""" @@ -264,11 +271,39 @@ def dir2pi(argv=sys.argv, use_symlink=None): parser.add_index_options() option, argv = parser.parse_args(argv) + if option.aggressive_normalization and not option.use_symlink: + sys.stderr.write( + "Error: cannot use --aggressive-normalization without --symlink\n") + return 1 + if len(argv) != 2: parser.print_help() parser.exit() return _dir2pi(option, argv) +def normalize_pep503(pkg_name): + # As per https://www.python.org/dev/peps/pep-0503/#normalized-names + return re.sub(r"[-_.]+", "-", pkg_name).lower() + +def normalize_pip67(pkg_name): + # Normalize for pip 6 and 7 + return re.sub(r"([-.])+", r"\1", pkg_name.replace("_", "-")).lower() + +def try_symlink(option, source, target): + try: + os.symlink(source, target) + if option.verbose: + print('linking %s to %s' %(source, target)) + except OSError as e: + if e.errno == 17: + # ignore errors when the file exists + return + sys.stderr.write( + 'ERROR linking %s to %s (skipping): %s\n' + %(source, target, e) + ) + + def _dir2pi(option, argv): pkgdir = argv[1] if not os.path.isdir(pkgdir): @@ -280,7 +315,6 @@ def _dir2pi(option, argv): pkg_index = ("Simple Index" "\n") - warn_normalized_pkg_names = [] processed_pkg = set() for file in os.listdir(pkgdir): pkg_filepath = os.path.join(pkgdir, file) @@ -293,25 +327,21 @@ def _dir2pi(option, argv): pkg_dir_name = pkg_name if option.normalize_package_names: - pkg_dir_name = pkg_dir_name.lower() - elif pkg_dir_name != pkg_dir_name.lower(): - if option.normalize_package_names is None: - warn_normalized_pkg_names.append(pkg_name) + pkg_dir_name = normalize_pep503(pkg_dir_name) + pkg_dir = pkgdirpath("simple", pkg_dir_name) if not os.path.exists(pkg_dir): os.mkdir(pkg_dir) + + if option.aggressive_normalization: + try_symlink(option, pkg_dir_name, pkgdirpath("simple", normalize_pip67(pkg_name))) + try_symlink(option, pkg_dir_name, pkgdirpath("simple", pkg_name)) + pkg_new_basename = "-".join([pkg_name, pkg_rest]) symlink_target = os.path.join(pkg_dir, pkg_new_basename) symlink_source = os.path.join("../../", pkg_basename) - if option.use_symlink and OS_HAS_SYMLINK: - try: - if option.verbose: - print('linking %s to %s' % (symlink_source, symlink_target)) - os.symlink(symlink_source, symlink_target) - except OSError as e: - warnings.warn(dedent(""" - WARNING: problem encountered creating symlink %s, Skipping : %s - """ %(pkg_new_basename, e))) + if option.use_symlink: + try_symlink(option, symlink_source, symlink_target) else: if option.verbose: print('copying %s to %s' % (symlink_target, pkg_filepath)) @@ -335,18 +365,6 @@ def _dir2pi(option, argv): with open(pkgdirpath("simple/index.html"), "w") as fp: fp.write(pkg_index) - if warn_normalized_pkg_names: - warnings.warn(dedent(""" - \n - WARNING: Non-normalized packages encountered: %s.\n - Please consider passing `--normalize-package-names` and verifying - that your environment does not break, as package names will - eventually be normalized by default. Silence this warning by - passing `--no-normalized-package-names`.\n - See also: https://github.com/wolever/pip2pi/issues/37\n - _ - """ %(", ".join(warn_normalized_pkg_names), )), stacklevel=0) - return 0 def globall(globs): From e57490d46a6184ddc6dc82e7fc17908e2822c18b Mon Sep 17 00:00:00 2001 From: David Wolever Date: Wed, 21 Sep 2016 17:07:18 -0400 Subject: [PATCH 353/709] Bump changelog, make tests work on Linux --- libpip2pi/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libpip2pi/__init__.py b/libpip2pi/__init__.py index b2073bf4094..5dd14896439 100644 --- a/libpip2pi/__init__.py +++ b/libpip2pi/__init__.py @@ -1 +1 @@ -__version__ = (0, 6, 8) +__version__ = (0, 7, 0) From e652445bcdfa68e81968664aaf9e9536f58dfec8 Mon Sep 17 00:00:00 2001 From: David Wolever Date: Wed, 21 Sep 2016 17:24:26 -0400 Subject: [PATCH 354/709] Make version rc1 --- libpip2pi/__init__.py | 2 +- setup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libpip2pi/__init__.py b/libpip2pi/__init__.py index 5dd14896439..3d36f210de8 100644 --- a/libpip2pi/__init__.py +++ b/libpip2pi/__init__.py @@ -1 +1 @@ -__version__ = (0, 7, 0) +__version__ = (0, 7, 0, "rc1") diff --git a/setup.py b/setup.py index 6d9d049e14b..7383ef063ba 100644 --- a/setup.py +++ b/setup.py @@ -13,7 +13,7 @@ long_description = "See https://github.com/wolever/pip2pi" import libpip2pi -version = "%s.%s.%s" %libpip2pi.__version__ +version = ".".join(map(str, libpip2pi.__version__)) setup( name="pip2pi", From bc51f6187cb0da3554c4d2cc1f60cc5c0e211031 Mon Sep 17 00:00:00 2001 From: David Wolever Date: Wed, 21 Sep 2016 17:36:05 -0400 Subject: [PATCH 355/709] Remove unused pip2whl --- setup.py | 1 - 1 file changed, 1 deletion(-) diff --git a/setup.py b/setup.py index 7383ef063ba..935ac9704e5 100644 --- a/setup.py +++ b/setup.py @@ -32,7 +32,6 @@ 'dir2pi = libpip2pi.commands:dir2pi', 'pip2pi = libpip2pi.commands:pip2pi', 'pip2tgz = libpip2pi.commands:pip2tgz', - 'pip2whl = libpip2pi.commands:pip2whl', ], }, install_requires=[ From 9b2773f7ab10fb34bcb04bc3ec5090fc626150af Mon Sep 17 00:00:00 2001 From: Thomas Aglassinger Date: Sun, 2 Oct 2016 12:55:12 +0200 Subject: [PATCH 356/709] Added lexer for VBScript. --- AUTHORS | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index 66377eada49..915a747d6ce 100644 --- a/AUTHORS +++ b/AUTHORS @@ -7,7 +7,8 @@ Other contributors, listed alphabetically, are: * Sam Aaron -- Ioke lexer * Ali Afshar -- image formatter -* Thomas Aglassinger -- Easytrieve, JCL, Rexx and Transact-SQL lexers +* Thomas Aglassinger -- Easytrieve, JCL, Rexx, Transact-SQL and VBScript + lexers * Muthiah Annamalai -- Ezhil lexer * Kumar Appaiah -- Debian control lexer * Andreas Amann -- AppleScript lexer From 85f15aee075837481eea32d544747429f903b50f Mon Sep 17 00:00:00 2001 From: Nathan Reed Date: Wed, 5 Oct 2016 17:15:01 -0700 Subject: [PATCH 357/709] Add myself to AUTHORS --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 66377eada49..18051bb4acc 100644 --- a/AUTHORS +++ b/AUTHORS @@ -159,6 +159,7 @@ Other contributors, listed alphabetically, are: * Elias Rabel -- Fortran fixed form lexer * raichoo -- Idris lexer * Kashif Rasul -- CUDA lexer +* Nathan Reed -- HLSL lexer * Justin Reidy -- MXML lexer * Norman Richards -- JSON lexer * Corey Richardson -- Rust lexer updates From 75d873092a438b49fc2e8a1de67c97e481f26c1c Mon Sep 17 00:00:00 2001 From: Christian Hammond Date: Fri, 4 Nov 2016 16:57:38 -0700 Subject: [PATCH 358/709] Add support for partials and path segments for Handlebars. This introduces support for some missing features to the Handlebars lexer: Partials and path segments. Partials mostly appeared to work before, but the `>` in `{{> ... }}` would appear as a syntax error, as could other components of the partial. This change introduces support for: * Standard partials: `{{> partialName}}` * Partials with parameters: `{{> partialName varname="value"}}` * Ddynamic partials: `{{> (partialFunc)}}` * Ddynamic partials with lookups: `{{> (lookup ../path "partialName")}}` * Partial blocks: `{{> @partial-block}}` * Inline partials: `{{#*inline}}..{{/inline}}` It also introduces support for path segments, which can reference content in the current context or in a parent context. For instance, `this.name`, `this/name`, `./name`, `../name`, `this/name`, etc. These are all now tracked as variables. --- AUTHORS | 218 +++++++++++ LICENSE | 25 ++ README.rst | 39 ++ pygments/lexers/shell.py | 790 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 1072 insertions(+) create mode 100644 AUTHORS create mode 100644 LICENSE create mode 100644 README.rst create mode 100644 pygments/lexers/shell.py diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 00000000000..66377eada49 --- /dev/null +++ b/AUTHORS @@ -0,0 +1,218 @@ +Pygments is written and maintained by Georg Brandl . + +Major developers are Tim Hatch and Armin Ronacher +. + +Other contributors, listed alphabetically, are: + +* Sam Aaron -- Ioke lexer +* Ali Afshar -- image formatter +* Thomas Aglassinger -- Easytrieve, JCL, Rexx and Transact-SQL lexers +* Muthiah Annamalai -- Ezhil lexer +* Kumar Appaiah -- Debian control lexer +* Andreas Amann -- AppleScript lexer +* Timothy Armstrong -- Dart lexer fixes +* Jeffrey Arnold -- R/S, Rd, BUGS, Jags, and Stan lexers +* Jeremy Ashkenas -- CoffeeScript lexer +* José Joaquín Atria -- Praat lexer +* Stefan Matthias Aust -- Smalltalk lexer +* Lucas Bajolet -- Nit lexer +* Ben Bangert -- Mako lexers +* Max Battcher -- Darcs patch lexer +* Thomas Baruchel -- APL lexer +* Tim Baumann -- (Literate) Agda lexer +* Paul Baumgart, 280 North, Inc. -- Objective-J lexer +* Michael Bayer -- Myghty lexers +* Thomas Beale -- Archetype lexers +* John Benediktsson -- Factor lexer +* Trevor Bergeron -- mIRC formatter +* Vincent Bernat -- LessCSS lexer +* Christopher Bertels -- Fancy lexer +* Sébastien Bigaret -- QVT Operational lexer +* Jarrett Billingsley -- MiniD lexer +* Adam Blinkinsop -- Haskell, Redcode lexers +* Frits van Bommel -- assembler lexers +* Pierre Bourdon -- bugfixes +* Matthias Bussonnier -- ANSI style handling for terminal-256 formatter +* chebee7i -- Python traceback lexer improvements +* Hiram Chirino -- Scaml and Jade lexers +* Mauricio Caceres -- SAS and Stata lexers. +* Ian Cooper -- VGL lexer +* David Corbett -- Inform, Jasmin, JSGF, Snowball, and TADS 3 lexers +* Leaf Corcoran -- MoonScript lexer +* Christopher Creutzig -- MuPAD lexer +* Daniël W. Crompton -- Pike lexer +* Pete Curry -- bugfixes +* Bryan Davis -- EBNF lexer +* Bruno Deferrari -- Shen lexer +* Giedrius Dubinskas -- HTML formatter improvements +* Owen Durni -- Haxe lexer +* Alexander Dutton, Oxford University Computing Services -- SPARQL lexer +* James Edwards -- Terraform lexer +* Nick Efford -- Python 3 lexer +* Sven Efftinge -- Xtend lexer +* Artem Egorkine -- terminal256 formatter +* Matthew Fernandez -- CAmkES lexer +* Michael Ficarra -- CPSA lexer +* James H. Fisher -- PostScript lexer +* William S. Fulton -- SWIG lexer +* Carlos Galdino -- Elixir and Elixir Console lexers +* Michael Galloy -- IDL lexer +* Naveen Garg -- Autohotkey lexer +* Laurent Gautier -- R/S lexer +* Alex Gaynor -- PyPy log lexer +* Richard Gerkin -- Igor Pro lexer +* Alain Gilbert -- TypeScript lexer +* Alex Gilding -- BlitzBasic lexer +* Bertrand Goetzmann -- Groovy lexer +* Krzysiek Goj -- Scala lexer +* Andrey Golovizin -- BibTeX lexers +* Matt Good -- Genshi, Cheetah lexers +* Michał Górny -- vim modeline support +* Alex Gosse -- TrafficScript lexer +* Patrick Gotthardt -- PHP namespaces support +* Olivier Guibe -- Asymptote lexer +* Jordi Gutiérrez Hermoso -- Octave lexer +* Florian Hahn -- Boogie lexer +* Martin Harriman -- SNOBOL lexer +* Matthew Harrison -- SVG formatter +* Steven Hazel -- Tcl lexer +* Dan Michael Heggø -- Turtle lexer +* Aslak Hellesøy -- Gherkin lexer +* Greg Hendershott -- Racket lexer +* Justin Hendrick -- ParaSail lexer +* David Hess, Fish Software, Inc. -- Objective-J lexer +* Varun Hiremath -- Debian control lexer +* Rob Hoelz -- Perl 6 lexer +* Doug Hogan -- Mscgen lexer +* Ben Hollis -- Mason lexer +* Max Horn -- GAP lexer +* Alastair Houghton -- Lexer inheritance facility +* Tim Howard -- BlitzMax lexer +* Dustin Howett -- Logos lexer +* Ivan Inozemtsev -- Fantom lexer +* Hiroaki Itoh -- Shell console rewrite, Lexers for PowerShell session, + MSDOS session, BC, WDiff +* Brian R. Jackson -- Tea lexer +* Christian Jann -- ShellSession lexer +* Dennis Kaarsemaker -- sources.list lexer +* Dmitri Kabak -- Inferno Limbo lexer +* Igor Kalnitsky -- vhdl lexer +* Alexander Kit -- MaskJS lexer +* Pekka Klärck -- Robot Framework lexer +* Gerwin Klein -- Isabelle lexer +* Eric Knibbe -- Lasso lexer +* Stepan Koltsov -- Clay lexer +* Adam Koprowski -- Opa lexer +* Benjamin Kowarsch -- Modula-2 lexer +* Domen Kožar -- Nix lexer +* Oleh Krekel -- Emacs Lisp lexer +* Alexander Kriegisch -- Kconfig and AspectJ lexers +* Marek Kubica -- Scheme lexer +* Jochen Kupperschmidt -- Markdown processor +* Gerd Kurzbach -- Modelica lexer +* Jon Larimer, Google Inc. -- Smali lexer +* Olov Lassus -- Dart lexer +* Matt Layman -- TAP lexer +* Kristian Lyngstøl -- Varnish lexers +* Sylvestre Ledru -- Scilab lexer +* Chee Sing Lee -- Flatline lexer +* Mark Lee -- Vala lexer +* Valentin Lorentz -- C++ lexer improvements +* Ben Mabey -- Gherkin lexer +* Angus MacArthur -- QML lexer +* Louis Mandel -- X10 lexer +* Louis Marchand -- Eiffel lexer +* Simone Margaritelli -- Hybris lexer +* Kirk McDonald -- D lexer +* Gordon McGregor -- SystemVerilog lexer +* Stephen McKamey -- Duel/JBST lexer +* Brian McKenna -- F# lexer +* Charles McLaughlin -- Puppet lexer +* Lukas Meuser -- BBCode formatter, Lua lexer +* Cat Miller -- Pig lexer +* Paul Miller -- LiveScript lexer +* Hong Minhee -- HTTP lexer +* Michael Mior -- Awk lexer +* Bruce Mitchener -- Dylan lexer rewrite +* Reuben Morais -- SourcePawn lexer +* Jon Morton -- Rust lexer +* Paulo Moura -- Logtalk lexer +* Mher Movsisyan -- DTD lexer +* Dejan Muhamedagic -- Crmsh lexer +* Ana Nelson -- Ragel, ANTLR, R console lexers +* Kurt Neufeld -- Markdown lexer +* Nam T. Nguyen -- Monokai style +* Jesper Noehr -- HTML formatter "anchorlinenos" +* Mike Nolta -- Julia lexer +* Jonas Obrist -- BBCode lexer +* Edward O'Callaghan -- Cryptol lexer +* David Oliva -- Rebol lexer +* Pat Pannuto -- nesC lexer +* Jon Parise -- Protocol buffers and Thrift lexers +* Benjamin Peterson -- Test suite refactoring +* Ronny Pfannschmidt -- BBCode lexer +* Dominik Picheta -- Nimrod lexer +* Andrew Pinkham -- RTF Formatter Refactoring +* Clément Prévost -- UrbiScript lexer +* Oleh Prypin -- Crystal lexer (based on Ruby lexer) +* Elias Rabel -- Fortran fixed form lexer +* raichoo -- Idris lexer +* Kashif Rasul -- CUDA lexer +* Justin Reidy -- MXML lexer +* Norman Richards -- JSON lexer +* Corey Richardson -- Rust lexer updates +* Lubomir Rintel -- GoodData MAQL and CL lexers +* Andre Roberge -- Tango style +* Georg Rollinger -- HSAIL lexer +* Michiel Roos -- TypoScript lexer +* Konrad Rudolph -- LaTeX formatter enhancements +* Mario Ruggier -- Evoque lexers +* Miikka Salminen -- Lovelace style, Hexdump lexer, lexer enhancements +* Stou Sandalski -- NumPy, FORTRAN, tcsh and XSLT lexers +* Matteo Sasso -- Common Lisp lexer +* Joe Schafer -- Ada lexer +* Ken Schutte -- Matlab lexers +* Sebastian Schweizer -- Whiley lexer +* Tassilo Schweyer -- Io, MOOCode lexers +* Ted Shaw -- AutoIt lexer +* Joerg Sieker -- ABAP lexer +* Robert Simmons -- Standard ML lexer +* Kirill Simonov -- YAML lexer +* Corbin Simpson -- Monte lexer +* Alexander Smishlajev -- Visual FoxPro lexer +* Steve Spigarelli -- XQuery lexer +* Jerome St-Louis -- eC lexer +* Camil Staps -- Clean and NuSMV lexers +* James Strachan -- Kotlin lexer +* Tom Stuart -- Treetop lexer +* Colin Sullivan -- SuperCollider lexer +* Ben Swift -- Extempore lexer +* Edoardo Tenani -- Arduino lexer +* Tiberius Teng -- default style overhaul +* Jeremy Thurgood -- Erlang, Squid config lexers +* Brian Tiffin -- OpenCOBOL lexer +* Bob Tolbert -- Hy lexer +* Matthias Trute -- Forth lexer +* Erick Tryzelaar -- Felix lexer +* Alexander Udalov -- Kotlin lexer improvements +* Thomas Van Doren -- Chapel lexer +* Daniele Varrazzo -- PostgreSQL lexers +* Abe Voelker -- OpenEdge ABL lexer +* Pepijn de Vos -- HTML formatter CTags support +* Matthias Vallentin -- Bro lexer +* Benoît Vinot -- AMPL lexer +* Linh Vu Hong -- RSL lexer +* Nathan Weizenbaum -- Haml and Sass lexers +* Nathan Whetsell -- Csound lexers +* Dietmar Winkler -- Modelica lexer +* Nils Winter -- Smalltalk lexer +* Davy Wybiral -- Clojure lexer +* Whitney Young -- ObjectiveC lexer +* Diego Zamboni -- CFengine3 lexer +* Enrique Zamudio -- Ceylon lexer +* Alex Zimin -- Nemerle lexer +* Rob Zimmerman -- Kal lexer +* Vincent Zurczak -- Roboconf lexer + +Many thanks for all contributions! diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000000..10b8e9167cc --- /dev/null +++ b/LICENSE @@ -0,0 +1,25 @@ +Copyright (c) 2006-2015 by the respective authors (see AUTHORS file). +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +* Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/README.rst b/README.rst new file mode 100644 index 00000000000..350e242ee72 --- /dev/null +++ b/README.rst @@ -0,0 +1,39 @@ +README for Pygments +=================== + +This is the source of Pygments. It is a generic syntax highlighter that +supports over 300 languages and text formats, for use in code hosting, forums, +wikis or other applications that need to prettify source code. + +Installing +---------- + +... works as usual, use ``python setup.py install``. + +Documentation +------------- + +... can be found online at http://pygments.org/ or created by :: + + cd doc + make html + +Development +----------- + +... takes place on `Bitbucket +`_, where the Mercurial +repository, tickets and pull requests can be viewed. + +Continuous testing runs on drone.io: + +.. image:: https://drone.io/bitbucket.org/birkenfeld/pygments-main/status.png + :target: https://drone.io/bitbucket.org/birkenfeld/pygments-main + +The authors +----------- + +Pygments is maintained by **Georg Brandl**, e-mail address *georg*\ *@*\ *python.org*. + +Many lexers and fixes have been contributed by **Armin Ronacher**, the rest of +the `Pocoo `_ team and **Tim Hatch**. diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py new file mode 100644 index 00000000000..a5933afb124 --- /dev/null +++ b/pygments/lexers/shell.py @@ -0,0 +1,790 @@ +# -*- coding: utf-8 -*- +""" + pygments.lexers.shell + ~~~~~~~~~~~~~~~~~~~~~ + + Lexers for various shells. + + :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS. + :license: BSD, see LICENSE for details. +""" + +import re + +from pygments.lexer import Lexer, RegexLexer, do_insertions, bygroups, \ + include, default, this, using, words +from pygments.token import Punctuation, \ + Text, Comment, Operator, Keyword, Name, String, Number, Generic +from pygments.util import shebang_matches + + +__all__ = ['BashLexer', 'BashSessionLexer', 'TcshLexer', 'BatchLexer', + 'MSDOSSessionLexer', 'PowerShellLexer', + 'PowerShellSessionLexer', 'TcshSessionLexer', 'FishShellLexer'] + +line_re = re.compile('.*?\n') + + +class BashLexer(RegexLexer): + """ + Lexer for (ba|k|)sh shell scripts. + + .. versionadded:: 0.6 + """ + + name = 'Bash' + aliases = ['bash', 'sh', 'ksh', 'shell'] + filenames = ['*.sh', '*.ksh', '*.bash', '*.ebuild', '*.eclass', + '*.exheres-0', '*.exlib', + '.bashrc', 'bashrc', '.bash_*', 'bash_*', 'PKGBUILD'] + mimetypes = ['application/x-sh', 'application/x-shellscript'] + + tokens = { + 'root': [ + include('basic'), + (r'`', String.Backtick, 'backticks'), + include('data'), + include('interp'), + ], + 'interp': [ + (r'\$\(\(', Keyword, 'math'), + (r'\$\(', Keyword, 'paren'), + (r'\$\{#?', String.Interpol, 'curly'), + (r'\$[a-zA-Z_][a-zA-Z0-9_]*', Name.Variable), # user variable + (r'\$(?:\d+|[#$?!_*@-])', Name.Variable), # builtin + (r'\$', Text), + ], + 'basic': [ + (r'\b(if|fi|else|while|do|done|for|then|return|function|case|' + r'select|continue|until|esac|elif)(\s*)\b', + bygroups(Keyword, Text)), + (r'\b(alias|bg|bind|break|builtin|caller|cd|command|compgen|' + r'complete|declare|dirs|disown|echo|enable|eval|exec|exit|' + r'export|false|fc|fg|getopts|hash|help|history|jobs|kill|let|' + r'local|logout|popd|printf|pushd|pwd|read|readonly|set|shift|' + r'shopt|source|suspend|test|time|times|trap|true|type|typeset|' + r'ulimit|umask|unalias|unset|wait)(?=[\s)`])', + Name.Builtin), + (r'\A#!.+\n', Comment.Hashbang), + (r'#.*\n', Comment.Single), + (r'\\[\w\W]', String.Escape), + (r'(\b\w+)(\s*)(\+?=)', bygroups(Name.Variable, Text, Operator)), + (r'[\[\]{}()=]', Operator), + (r'<<<', Operator), # here-string + (r'<<-?\s*(\'?)\\?(\w+)[\w\W]+?\2', String), + (r'&&|\|\|', Operator), + ], + 'data': [ + (r'(?s)\$?"(\\\\|\\[0-7]+|\\.|[^"\\$])*"', String.Double), + (r'"', String.Double, 'string'), + (r"(?s)\$'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single), + (r"(?s)'.*?'", String.Single), + (r';', Punctuation), + (r'&', Punctuation), + (r'\|', Punctuation), + (r'\s+', Text), + (r'\d+\b', Number), + (r'[^=\s\[\]{}()$"\'`\\<&|;]+', Text), + (r'<', Text), + ], + 'string': [ + (r'"', String.Double, '#pop'), + (r'(?s)(\\\\|\\[0-7]+|\\.|[^"\\$])+', String.Double), + include('interp'), + ], + 'curly': [ + (r'\}', String.Interpol, '#pop'), + (r':-', Keyword), + (r'\w+', Name.Variable), + (r'[^}:"\'`$\\]+', Punctuation), + (r':', Punctuation), + include('root'), + ], + 'paren': [ + (r'\)', Keyword, '#pop'), + include('root'), + ], + 'math': [ + (r'\)\)', Keyword, '#pop'), + (r'[-+*/%^|&]|\*\*|\|\|', Operator), + (r'\d+#\d+', Number), + (r'\d+#(?! )', Number), + (r'\d+', Number), + include('root'), + ], + 'backticks': [ + (r'`', String.Backtick, '#pop'), + include('root'), + ], + } + + def analyse_text(text): + if shebang_matches(text, r'(ba|z|)sh'): + return 1 + if text.startswith('$ '): + return 0.2 + + +class ShellSessionBaseLexer(Lexer): + """ + Base lexer for simplistic shell sessions. + + .. versionadded:: 2.1 + """ + def get_tokens_unprocessed(self, text): + innerlexer = self._innerLexerCls(**self.options) + + pos = 0 + curcode = '' + insertions = [] + backslash_continuation = False + + for match in line_re.finditer(text): + line = match.group() + m = re.match(self._ps1rgx, line) + if backslash_continuation: + curcode += line + backslash_continuation = curcode.endswith('\\\n') + elif m: + # To support output lexers (say diff output), the output + # needs to be broken by prompts whenever the output lexer + # changes. + if not insertions: + pos = match.start() + + insertions.append((len(curcode), + [(0, Generic.Prompt, m.group(1))])) + curcode += m.group(2) + backslash_continuation = curcode.endswith('\\\n') + elif line.startswith(self._ps2): + insertions.append((len(curcode), + [(0, Generic.Prompt, line[:len(self._ps2)])])) + curcode += line[len(self._ps2):] + backslash_continuation = curcode.endswith('\\\n') + else: + if insertions: + toks = innerlexer.get_tokens_unprocessed(curcode) + for i, t, v in do_insertions(insertions, toks): + yield pos+i, t, v + yield match.start(), Generic.Output, line + insertions = [] + curcode = '' + if insertions: + for i, t, v in do_insertions(insertions, + innerlexer.get_tokens_unprocessed(curcode)): + yield pos+i, t, v + + +class BashSessionLexer(ShellSessionBaseLexer): + """ + Lexer for simplistic shell sessions. + + .. versionadded:: 1.1 + """ + + name = 'Bash Session' + aliases = ['console', 'shell-session'] + filenames = ['*.sh-session', '*.shell-session'] + mimetypes = ['application/x-shell-session', 'application/x-sh-session'] + + _innerLexerCls = BashLexer + _ps1rgx = \ + r'^((?:(?:\[.*?\])|(?:\(\S+\))?(?:| |sh\S*?|\w+\S+[@:]\S+(?:\s+\S+)' \ + r'?|\[\S+[@:][^\n]+\].+))\s*[$#%])(.*\n?)' + _ps2 = '>' + + +class BatchLexer(RegexLexer): + """ + Lexer for the DOS/Windows Batch file format. + + .. versionadded:: 0.7 + """ + name = 'Batchfile' + aliases = ['bat', 'batch', 'dosbatch', 'winbatch'] + filenames = ['*.bat', '*.cmd'] + mimetypes = ['application/x-dos-batch'] + + flags = re.MULTILINE | re.IGNORECASE + + _nl = r'\n\x1a' + _punct = r'&<>|' + _ws = r'\t\v\f\r ,;=\xa0' + _space = r'(?:(?:(?:\^[%s])?[%s])+)' % (_nl, _ws) + _keyword_terminator = (r'(?=(?:\^[%s]?)?[%s+./:[\\\]]|[%s%s(])' % + (_nl, _ws, _nl, _punct)) + _token_terminator = r'(?=\^?[%s]|[%s%s])' % (_ws, _punct, _nl) + _start_label = r'((?:(?<=^[^:])|^[^:]?)[%s]*)(:)' % _ws + _label = r'(?:(?:[^%s%s%s+:^]|\^[%s]?[\w\W])*)' % (_nl, _punct, _ws, _nl) + _label_compound = (r'(?:(?:[^%s%s%s+:^)]|\^[%s]?[^)])*)' % + (_nl, _punct, _ws, _nl)) + _number = r'(?:-?(?:0[0-7]+|0x[\da-f]+|\d+)%s)' % _token_terminator + _opword = r'(?:equ|geq|gtr|leq|lss|neq)' + _string = r'(?:"[^%s"]*(?:"|(?=[%s])))' % (_nl, _nl) + _variable = (r'(?:(?:%%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|' + r'[^%%:%s]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%%%s^]|' + r'\^[^%%%s])[^=%s]*=(?:[^%%%s^]|\^[^%%%s])*)?)?%%))|' + r'(?:\^?![^!:%s]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:' + r'[^!%s^]|\^[^!%s])[^=%s]*=(?:[^!%s^]|\^[^!%s])*)?)?\^?!))' % + (_nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl)) + _core_token = r'(?:(?:(?:\^[%s]?)?[^"%s%s%s])+)' % (_nl, _nl, _punct, _ws) + _core_token_compound = r'(?:(?:(?:\^[%s]?)?[^"%s%s%s)])+)' % (_nl, _nl, + _punct, _ws) + _token = r'(?:[%s]+|%s)' % (_punct, _core_token) + _token_compound = r'(?:[%s]+|%s)' % (_punct, _core_token_compound) + _stoken = (r'(?:[%s]+|(?:%s|%s|%s)+)' % + (_punct, _string, _variable, _core_token)) + + def _make_begin_state(compound, _core_token=_core_token, + _core_token_compound=_core_token_compound, + _keyword_terminator=_keyword_terminator, + _nl=_nl, _punct=_punct, _string=_string, + _space=_space, _start_label=_start_label, + _stoken=_stoken, _token_terminator=_token_terminator, + _variable=_variable, _ws=_ws): + rest = '(?:%s|%s|[^"%%%s%s%s])*' % (_string, _variable, _nl, _punct, + ')' if compound else '') + rest_of_line = r'(?:(?:[^%s^]|\^[%s]?[\w\W])*)' % (_nl, _nl) + rest_of_line_compound = r'(?:(?:[^%s^)]|\^[%s]?[^)])*)' % (_nl, _nl) + set_space = r'((?:(?:\^[%s]?)?[^\S\n])*)' % _nl + suffix = '' + if compound: + _keyword_terminator = r'(?:(?=\))|%s)' % _keyword_terminator + _token_terminator = r'(?:(?=\))|%s)' % _token_terminator + suffix = '/compound' + return [ + ((r'\)', Punctuation, '#pop') if compound else + (r'\)((?=\()|%s)%s' % (_token_terminator, rest_of_line), + Comment.Single)), + (r'(?=%s)' % _start_label, Text, 'follow%s' % suffix), + (_space, using(this, state='text')), + include('redirect%s' % suffix), + (r'[%s]+' % _nl, Text), + (r'\(', Punctuation, 'root/compound'), + (r'@+', Punctuation), + (r'((?:for|if|rem)(?:(?=(?:\^[%s]?)?/)|(?:(?!\^)|' + r'(?<=m))(?:(?=\()|%s)))(%s?%s?(?:\^[%s]?)?/(?:\^[%s]?)?\?)' % + (_nl, _token_terminator, _space, + _core_token_compound if compound else _core_token, _nl, _nl), + bygroups(Keyword, using(this, state='text')), + 'follow%s' % suffix), + (r'(goto%s)(%s(?:\^[%s]?)?/(?:\^[%s]?)?\?%s)' % + (_keyword_terminator, rest, _nl, _nl, rest), + bygroups(Keyword, using(this, state='text')), + 'follow%s' % suffix), + (words(('assoc', 'break', 'cd', 'chdir', 'cls', 'color', 'copy', + 'date', 'del', 'dir', 'dpath', 'echo', 'endlocal', 'erase', + 'exit', 'ftype', 'keys', 'md', 'mkdir', 'mklink', 'move', + 'path', 'pause', 'popd', 'prompt', 'pushd', 'rd', 'ren', + 'rename', 'rmdir', 'setlocal', 'shift', 'start', 'time', + 'title', 'type', 'ver', 'verify', 'vol'), + suffix=_keyword_terminator), Keyword, 'follow%s' % suffix), + (r'(call)(%s?)(:)' % _space, + bygroups(Keyword, using(this, state='text'), Punctuation), + 'call%s' % suffix), + (r'call%s' % _keyword_terminator, Keyword), + (r'(for%s(?!\^))(%s)(/f%s)' % + (_token_terminator, _space, _token_terminator), + bygroups(Keyword, using(this, state='text'), Keyword), + ('for/f', 'for')), + (r'(for%s(?!\^))(%s)(/l%s)' % + (_token_terminator, _space, _token_terminator), + bygroups(Keyword, using(this, state='text'), Keyword), + ('for/l', 'for')), + (r'for%s(?!\^)' % _token_terminator, Keyword, ('for2', 'for')), + (r'(goto%s)(%s?)(:?)' % (_keyword_terminator, _space), + bygroups(Keyword, using(this, state='text'), Punctuation), + 'label%s' % suffix), + (r'(if(?:(?=\()|%s)(?!\^))(%s?)((?:/i%s)?)(%s?)((?:not%s)?)(%s?)' % + (_token_terminator, _space, _token_terminator, _space, + _token_terminator, _space), + bygroups(Keyword, using(this, state='text'), Keyword, + using(this, state='text'), Keyword, + using(this, state='text')), ('(?', 'if')), + (r'rem(((?=\()|%s)%s?%s?.*|%s%s)' % + (_token_terminator, _space, _stoken, _keyword_terminator, + rest_of_line_compound if compound else rest_of_line), + Comment.Single, 'follow%s' % suffix), + (r'(set%s)%s(/a)' % (_keyword_terminator, set_space), + bygroups(Keyword, using(this, state='text'), Keyword), + 'arithmetic%s' % suffix), + (r'(set%s)%s((?:/p)?)%s((?:(?:(?:\^[%s]?)?[^"%s%s^=%s]|' + r'\^[%s]?[^"=])+)?)((?:(?:\^[%s]?)?=)?)' % + (_keyword_terminator, set_space, set_space, _nl, _nl, _punct, + ')' if compound else '', _nl, _nl), + bygroups(Keyword, using(this, state='text'), Keyword, + using(this, state='text'), using(this, state='variable'), + Punctuation), + 'follow%s' % suffix), + default('follow%s' % suffix) + ] + + def _make_follow_state(compound, _label=_label, + _label_compound=_label_compound, _nl=_nl, + _space=_space, _start_label=_start_label, + _token=_token, _token_compound=_token_compound, + _ws=_ws): + suffix = '/compound' if compound else '' + state = [] + if compound: + state.append((r'(?=\))', Text, '#pop')) + state += [ + (r'%s([%s]*)(%s)(.*)' % + (_start_label, _ws, _label_compound if compound else _label), + bygroups(Text, Punctuation, Text, Name.Label, Comment.Single)), + include('redirect%s' % suffix), + (r'(?=[%s])' % _nl, Text, '#pop'), + (r'\|\|?|&&?', Punctuation, '#pop'), + include('text') + ] + return state + + def _make_arithmetic_state(compound, _nl=_nl, _punct=_punct, + _string=_string, _variable=_variable, _ws=_ws): + op = r'=+\-*/!~' + state = [] + if compound: + state.append((r'(?=\))', Text, '#pop')) + state += [ + (r'0[0-7]+', Number.Oct), + (r'0x[\da-f]+', Number.Hex), + (r'\d+', Number.Integer), + (r'[(),]+', Punctuation), + (r'([%s]|%%|\^\^)+' % op, Operator), + (r'(%s|%s|(\^[%s]?)?[^()%s%%^"%s%s%s]|\^[%s%s]?%s)+' % + (_string, _variable, _nl, op, _nl, _punct, _ws, _nl, _ws, + r'[^)]' if compound else r'[\w\W]'), + using(this, state='variable')), + (r'(?=[\x00|&])', Text, '#pop'), + include('follow') + ] + return state + + def _make_call_state(compound, _label=_label, + _label_compound=_label_compound): + state = [] + if compound: + state.append((r'(?=\))', Text, '#pop')) + state.append((r'(:?)(%s)' % (_label_compound if compound else _label), + bygroups(Punctuation, Name.Label), '#pop')) + return state + + def _make_label_state(compound, _label=_label, + _label_compound=_label_compound, _nl=_nl, + _punct=_punct, _string=_string, _variable=_variable): + state = [] + if compound: + state.append((r'(?=\))', Text, '#pop')) + state.append((r'(%s?)((?:%s|%s|\^[%s]?%s|[^"%%^%s%s%s])*)' % + (_label_compound if compound else _label, _string, + _variable, _nl, r'[^)]' if compound else r'[\w\W]', _nl, + _punct, r')' if compound else ''), + bygroups(Name.Label, Comment.Single), '#pop')) + return state + + def _make_redirect_state(compound, + _core_token_compound=_core_token_compound, + _nl=_nl, _punct=_punct, _stoken=_stoken, + _string=_string, _space=_space, + _variable=_variable, _ws=_ws): + stoken_compound = (r'(?:[%s]+|(?:%s|%s|%s)+)' % + (_punct, _string, _variable, _core_token_compound)) + return [ + (r'((?:(?<=[%s%s])\d)?)(>>?&|<&)([%s%s]*)(\d)' % + (_nl, _ws, _nl, _ws), + bygroups(Number.Integer, Punctuation, Text, Number.Integer)), + (r'((?:(?<=[%s%s])(?>?|<)(%s?%s)' % + (_nl, _ws, _nl, _space, stoken_compound if compound else _stoken), + bygroups(Number.Integer, Punctuation, using(this, state='text'))) + ] + + tokens = { + 'root': _make_begin_state(False), + 'follow': _make_follow_state(False), + 'arithmetic': _make_arithmetic_state(False), + 'call': _make_call_state(False), + 'label': _make_label_state(False), + 'redirect': _make_redirect_state(False), + 'root/compound': _make_begin_state(True), + 'follow/compound': _make_follow_state(True), + 'arithmetic/compound': _make_arithmetic_state(True), + 'call/compound': _make_call_state(True), + 'label/compound': _make_label_state(True), + 'redirect/compound': _make_redirect_state(True), + 'variable-or-escape': [ + (_variable, Name.Variable), + (r'%%%%|\^[%s]?(\^!|[\w\W])' % _nl, String.Escape) + ], + 'string': [ + (r'"', String.Double, '#pop'), + (_variable, Name.Variable), + (r'\^!|%%', String.Escape), + (r'[^"%%^%s]+|[%%^]' % _nl, String.Double), + default('#pop') + ], + 'sqstring': [ + include('variable-or-escape'), + (r'[^%]+|%', String.Single) + ], + 'bqstring': [ + include('variable-or-escape'), + (r'[^%]+|%', String.Backtick) + ], + 'text': [ + (r'"', String.Double, 'string'), + include('variable-or-escape'), + (r'[^"%%^%s%s%s\d)]+|.' % (_nl, _punct, _ws), Text) + ], + 'variable': [ + (r'"', String.Double, 'string'), + include('variable-or-escape'), + (r'[^"%%^%s]+|.' % _nl, Name.Variable) + ], + 'for': [ + (r'(%s)(in)(%s)(\()' % (_space, _space), + bygroups(using(this, state='text'), Keyword, + using(this, state='text'), Punctuation), '#pop'), + include('follow') + ], + 'for2': [ + (r'\)', Punctuation), + (r'(%s)(do%s)' % (_space, _token_terminator), + bygroups(using(this, state='text'), Keyword), '#pop'), + (r'[%s]+' % _nl, Text), + include('follow') + ], + 'for/f': [ + (r'(")((?:%s|[^"])*?")([%s%s]*)(\))' % (_variable, _nl, _ws), + bygroups(String.Double, using(this, state='string'), Text, + Punctuation)), + (r'"', String.Double, ('#pop', 'for2', 'string')), + (r"('(?:%%%%|%s|[\w\W])*?')([%s%s]*)(\))" % (_variable, _nl, _ws), + bygroups(using(this, state='sqstring'), Text, Punctuation)), + (r'(`(?:%%%%|%s|[\w\W])*?`)([%s%s]*)(\))' % (_variable, _nl, _ws), + bygroups(using(this, state='bqstring'), Text, Punctuation)), + include('for2') + ], + 'for/l': [ + (r'-?\d+', Number.Integer), + include('for2') + ], + 'if': [ + (r'((?:cmdextversion|errorlevel)%s)(%s)(\d+)' % + (_token_terminator, _space), + bygroups(Keyword, using(this, state='text'), + Number.Integer), '#pop'), + (r'(defined%s)(%s)(%s)' % (_token_terminator, _space, _stoken), + bygroups(Keyword, using(this, state='text'), + using(this, state='variable')), '#pop'), + (r'(exist%s)(%s%s)' % (_token_terminator, _space, _stoken), + bygroups(Keyword, using(this, state='text')), '#pop'), + (r'(%s%s?)(==)(%s?%s)' % (_stoken, _space, _space, _stoken), + bygroups(using(this, state='text'), Operator, + using(this, state='text')), '#pop'), + (r'(%s%s)(%s)(%s%s)' % (_number, _space, _opword, _space, _number), + bygroups(using(this, state='arithmetic'), Operator.Word, + using(this, state='arithmetic')), '#pop'), + (r'(%s%s)(%s)(%s%s)' % (_stoken, _space, _opword, _space, _stoken), + bygroups(using(this, state='text'), Operator.Word, + using(this, state='text')), '#pop') + ], + '(?': [ + (_space, using(this, state='text')), + (r'\(', Punctuation, ('#pop', 'else?', 'root/compound')), + default('#pop') + ], + 'else?': [ + (_space, using(this, state='text')), + (r'else%s' % _token_terminator, Keyword, '#pop'), + default('#pop') + ] + } + + +class MSDOSSessionLexer(ShellSessionBaseLexer): + """ + Lexer for simplistic MSDOS sessions. + + .. versionadded:: 2.1 + """ + + name = 'MSDOS Session' + aliases = ['doscon'] + filenames = [] + mimetypes = [] + + _innerLexerCls = BatchLexer + _ps1rgx = r'^([^>]+>)(.*\n?)' + _ps2 = 'More? ' + + +class TcshLexer(RegexLexer): + """ + Lexer for tcsh scripts. + + .. versionadded:: 0.10 + """ + + name = 'Tcsh' + aliases = ['tcsh', 'csh'] + filenames = ['*.tcsh', '*.csh'] + mimetypes = ['application/x-csh'] + + tokens = { + 'root': [ + include('basic'), + (r'\$\(', Keyword, 'paren'), + (r'\$\{#?', Keyword, 'curly'), + (r'`', String.Backtick, 'backticks'), + include('data'), + ], + 'basic': [ + (r'\b(if|endif|else|while|then|foreach|case|default|' + r'continue|goto|breaksw|end|switch|endsw)\s*\b', + Keyword), + (r'\b(alias|alloc|bg|bindkey|break|builtins|bye|caller|cd|chdir|' + r'complete|dirs|echo|echotc|eval|exec|exit|fg|filetest|getxvers|' + r'glob|getspath|hashstat|history|hup|inlib|jobs|kill|' + r'limit|log|login|logout|ls-F|migrate|newgrp|nice|nohup|notify|' + r'onintr|popd|printenv|pushd|rehash|repeat|rootnode|popd|pushd|' + r'set|shift|sched|setenv|setpath|settc|setty|setxvers|shift|' + r'source|stop|suspend|source|suspend|telltc|time|' + r'umask|unalias|uncomplete|unhash|universe|unlimit|unset|unsetenv|' + r'ver|wait|warp|watchlog|where|which)\s*\b', + Name.Builtin), + (r'#.*', Comment), + (r'\\[\w\W]', String.Escape), + (r'(\b\w+)(\s*)(=)', bygroups(Name.Variable, Text, Operator)), + (r'[\[\]{}()=]+', Operator), + (r'<<\s*(\'?)\\?(\w+)[\w\W]+?\2', String), + (r';', Punctuation), + ], + 'data': [ + (r'(?s)"(\\\\|\\[0-7]+|\\.|[^"\\])*"', String.Double), + (r"(?s)'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single), + (r'\s+', Text), + (r'[^=\s\[\]{}()$"\'`\\;#]+', Text), + (r'\d+(?= |\Z)', Number), + (r'\$#?(\w+|.)', Name.Variable), + ], + 'curly': [ + (r'\}', Keyword, '#pop'), + (r':-', Keyword), + (r'\w+', Name.Variable), + (r'[^}:"\'`$]+', Punctuation), + (r':', Punctuation), + include('root'), + ], + 'paren': [ + (r'\)', Keyword, '#pop'), + include('root'), + ], + 'backticks': [ + (r'`', String.Backtick, '#pop'), + include('root'), + ], + } + + +class TcshSessionLexer(ShellSessionBaseLexer): + """ + Lexer for Tcsh sessions. + + .. versionadded:: 2.1 + """ + + name = 'Tcsh Session' + aliases = ['tcshcon'] + filenames = [] + mimetypes = [] + + _innerLexerCls = TcshLexer + _ps1rgx = r'^([^>]+>)(.*\n?)' + _ps2 = '? ' + + +class PowerShellLexer(RegexLexer): + """ + For Windows PowerShell code. + + .. versionadded:: 1.5 + """ + name = 'PowerShell' + aliases = ['powershell', 'posh', 'ps1', 'psm1'] + filenames = ['*.ps1', '*.psm1'] + mimetypes = ['text/x-powershell'] + + flags = re.DOTALL | re.IGNORECASE | re.MULTILINE + + keywords = ( + 'while validateset validaterange validatepattern validatelength ' + 'validatecount until trap switch return ref process param parameter in ' + 'if global: function foreach for finally filter end elseif else ' + 'dynamicparam do default continue cmdletbinding break begin alias \\? ' + '% #script #private #local #global mandatory parametersetname position ' + 'valuefrompipeline valuefrompipelinebypropertyname ' + 'valuefromremainingarguments helpmessage try catch throw').split() + + operators = ( + 'and as band bnot bor bxor casesensitive ccontains ceq cge cgt cle ' + 'clike clt cmatch cne cnotcontains cnotlike cnotmatch contains ' + 'creplace eq exact f file ge gt icontains ieq ige igt ile ilike ilt ' + 'imatch ine inotcontains inotlike inotmatch ireplace is isnot le like ' + 'lt match ne not notcontains notlike notmatch or regex replace ' + 'wildcard').split() + + verbs = ( + 'write where wait use update unregister undo trace test tee take ' + 'suspend stop start split sort skip show set send select scroll resume ' + 'restore restart resolve resize reset rename remove register receive ' + 'read push pop ping out new move measure limit join invoke import ' + 'group get format foreach export expand exit enter enable disconnect ' + 'disable debug cxnew copy convertto convertfrom convert connect ' + 'complete compare clear checkpoint aggregate add').split() + + commenthelp = ( + 'component description example externalhelp forwardhelpcategory ' + 'forwardhelptargetname functionality inputs link ' + 'notes outputs parameter remotehelprunspace role synopsis').split() + + tokens = { + 'root': [ + # we need to count pairs of parentheses for correct highlight + # of '$(...)' blocks in strings + (r'\(', Punctuation, 'child'), + (r'\s+', Text), + (r'^(\s*#[#\s]*)(\.(?:%s))([^\n]*$)' % '|'.join(commenthelp), + bygroups(Comment, String.Doc, Comment)), + (r'#[^\n]*?$', Comment), + (r'(<|<)#', Comment.Multiline, 'multline'), + (r'@"\n', String.Heredoc, 'heredoc-double'), + (r"@'\n.*?\n'@", String.Heredoc), + # escaped syntax + (r'`[\'"$@-]', Punctuation), + (r'"', String.Double, 'string'), + (r"'([^']|'')*'", String.Single), + (r'(\$|@@|@)((global|script|private|env):)?\w+', + Name.Variable), + (r'(%s)\b' % '|'.join(keywords), Keyword), + (r'-(%s)\b' % '|'.join(operators), Operator), + (r'(%s)-[a-z_]\w*\b' % '|'.join(verbs), Name.Builtin), + (r'\[[a-z_\[][\w. `,\[\]]*\]', Name.Constant), # .net [type]s + (r'-[a-z_]\w*', Name), + (r'\w+', Name), + (r'[.,;@{}\[\]$()=+*/\\&%!~?^`|<>-]|::', Punctuation), + ], + 'child': [ + (r'\)', Punctuation, '#pop'), + include('root'), + ], + 'multline': [ + (r'[^#&.]+', Comment.Multiline), + (r'#(>|>)', Comment.Multiline, '#pop'), + (r'\.(%s)' % '|'.join(commenthelp), String.Doc), + (r'[#&.]', Comment.Multiline), + ], + 'string': [ + (r"`[0abfnrtv'\"$`]", String.Escape), + (r'[^$`"]+', String.Double), + (r'\$\(', Punctuation, 'child'), + (r'""', String.Double), + (r'[`$]', String.Double), + (r'"', String.Double, '#pop'), + ], + 'heredoc-double': [ + (r'\n"@', String.Heredoc, '#pop'), + (r'\$\(', Punctuation, 'child'), + (r'[^@\n]+"]', String.Heredoc), + (r".", String.Heredoc), + ] + } + + +class PowerShellSessionLexer(ShellSessionBaseLexer): + """ + Lexer for simplistic Windows PowerShell sessions. + + .. versionadded:: 2.1 + """ + + name = 'PowerShell Session' + aliases = ['ps1con'] + filenames = [] + mimetypes = [] + + _innerLexerCls = PowerShellLexer + _ps1rgx = r'^(PS [^>]+> )(.*\n?)' + _ps2 = '>> ' + + +class FishShellLexer(RegexLexer): + """ + Lexer for Fish shell scripts. + + .. versionadded:: 2.1 + """ + + name = 'Fish' + aliases = ['fish', 'fishshell'] + filenames = ['*.fish', '*.load'] + mimetypes = ['application/x-fish'] + + tokens = { + 'root': [ + include('basic'), + include('data'), + include('interp'), + ], + 'interp': [ + (r'\$\(\(', Keyword, 'math'), + (r'\(', Keyword, 'paren'), + (r'\$#?(\w+|.)', Name.Variable), + ], + 'basic': [ + (r'\b(begin|end|if|else|while|break|for|in|return|function|block|' + r'case|continue|switch|not|and|or|set|echo|exit|pwd|true|false|' + r'cd|count|test)(\s*)\b', + bygroups(Keyword, Text)), + (r'\b(alias|bg|bind|breakpoint|builtin|command|commandline|' + r'complete|contains|dirh|dirs|emit|eval|exec|fg|fish|fish_config|' + r'fish_indent|fish_pager|fish_prompt|fish_right_prompt|' + r'fish_update_completions|fishd|funced|funcsave|functions|help|' + r'history|isatty|jobs|math|mimedb|nextd|open|popd|prevd|psub|' + r'pushd|random|read|set_color|source|status|trap|type|ulimit|' + r'umask|vared|fc|getopts|hash|kill|printf|time|wait)\s*\b(?!\.)', + Name.Builtin), + (r'#.*\n', Comment), + (r'\\[\w\W]', String.Escape), + (r'(\b\w+)(\s*)(=)', bygroups(Name.Variable, Text, Operator)), + (r'[\[\]()=]', Operator), + (r'<<-?\s*(\'?)\\?(\w+)[\w\W]+?\2', String), + ], + 'data': [ + (r'(?s)\$?"(\\\\|\\[0-7]+|\\.|[^"\\$])*"', String.Double), + (r'"', String.Double, 'string'), + (r"(?s)\$'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single), + (r"(?s)'.*?'", String.Single), + (r';', Punctuation), + (r'&|\||\^|<|>', Operator), + (r'\s+', Text), + (r'\d+(?= |\Z)', Number), + (r'[^=\s\[\]{}()$"\'`\\<&|;]+', Text), + ], + 'string': [ + (r'"', String.Double, '#pop'), + (r'(?s)(\\\\|\\[0-7]+|\\.|[^"\\$])+', String.Double), + include('interp'), + ], + 'paren': [ + (r'\)', Keyword, '#pop'), + include('root'), + ], + 'math': [ + (r'\)\)', Keyword, '#pop'), + (r'[-+*/%^|&]|\*\*|\|\|', Operator), + (r'\d+#\d+', Number), + (r'\d+#(?! )', Number), + (r'\d+', Number), + include('root'), + ], + } From a1f88568c66e073eba6ee47edfa1163e2ea1a14f Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 22 Jan 2017 18:38:11 +0100 Subject: [PATCH 359/709] Copyright update. --- LICENSE | 2 +- pygments/lexers/shell.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/LICENSE b/LICENSE index 10b8e9167cc..21815527ff1 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2006-2015 by the respective authors (see AUTHORS file). +Copyright (c) 2006-2017 by the respective authors (see AUTHORS file). All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index a5933afb124..21b548de87a 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -5,7 +5,7 @@ Lexers for various shells. - :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS. + :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. """ From 565bb8b7b8838b908729f50b026806f2fb86af8d Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 22 Jan 2017 19:57:19 +0100 Subject: [PATCH 360/709] -x functionality updates, Python 3 compatibility fix --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index efbad179a5e..f9ba267593b 100644 --- a/AUTHORS +++ b/AUTHORS @@ -155,6 +155,7 @@ Other contributors, listed alphabetically, are: * Dominik Picheta -- Nimrod lexer * Andrew Pinkham -- RTF Formatter Refactoring * Clément Prévost -- UrbiScript lexer +* Tanner Prynn -- cmdline -x option and loading lexers from files * Oleh Prypin -- Crystal lexer (based on Ruby lexer) * Elias Rabel -- Fortran fixed form lexer * raichoo -- Idris lexer From d84d14f2f6390ecd10190faf7a2e315fb9681e32 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 22 Jan 2017 20:27:58 +0100 Subject: [PATCH 361/709] all: run regexlint, add a few more changelog entries --- pygments/lexers/shell.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 7c2c3743b0e..ceb6f14df7a 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -51,7 +51,7 @@ class BashLexer(RegexLexer): (r'\$\(\(', Keyword, 'math'), (r'\$\(', Keyword, 'paren'), (r'\$\{#?', String.Interpol, 'curly'), - (r'\$[a-zA-Z_][a-zA-Z0-9_]*', Name.Variable), # user variable + (r'\$[a-zA-Z_]\w*', Name.Variable), # user variable (r'\$(?:\d+|[#$?!_*@-])', Name.Variable), # builtin (r'\$', Text), ], From a22d1be67dd4bb7dafb36c6a9abe3ef67d732c35 Mon Sep 17 00:00:00 2001 From: Chris Duck Date: Sat, 11 Feb 2017 15:28:03 -0700 Subject: [PATCH 362/709] Add built-in aliases to PowerShellLexer --- pygments/lexers/shell.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index ceb6f14df7a..2168583ae7d 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -646,6 +646,18 @@ class PowerShellLexer(RegexLexer): 'disable debug cxnew copy convertto convertfrom convert connect ' 'complete compare clear checkpoint aggregate add').split() + aliases = ( + 'ac asnp cat cd cfs chdir clc clear clhy cli clp cls clv cnsn ' + 'compare copy cp cpi cpp curl cvpa dbp del diff dir dnsn ebp echo epal ' + 'epcsv epsn erase etsn exsn fc fhx fl foreach ft fw gal gbp gc gci gcm ' + 'gcs gdr ghy gi gjb gl gm gmo gp gps gpv group gsn gsnp gsv gu gv gwmi ' + 'h history icm iex ihy ii ipal ipcsv ipmo ipsn irm ise iwmi iwr kill lp ' + 'ls man md measure mi mount move mp mv nal ndr ni nmo npssc nsn nv ogv ' + 'oh popd ps pushd pwd r rbp rcjb rcsn rd rdr ren ri rjb rm rmdir rmo ' + 'rni rnp rp rsn rsnp rujb rv rvpa rwmi sajb sal saps sasv sbp sc select ' + 'set shcm si sl sleep sls sort sp spjb spps spsv start sujb sv swmi tee ' + 'trcm type wget where wjb write').split() + commenthelp = ( 'component description example externalhelp forwardhelpcategory ' 'forwardhelptargetname functionality inputs link ' @@ -672,6 +684,7 @@ class PowerShellLexer(RegexLexer): (r'(%s)\b' % '|'.join(keywords), Keyword), (r'-(%s)\b' % '|'.join(operators), Operator), (r'(%s)-[a-z_]\w*\b' % '|'.join(verbs), Name.Builtin), + (r'(%s)\s' % '|'.join(aliases), Name.Builtin), (r'\[[a-z_\[][\w. `,\[\]]*\]', Name.Constant), # .net [type]s (r'-[a-z_]\w*', Name), (r'\w+', Name), From 02fd293d7b0cc4a5631b0bb2d5278896dd8bdb73 Mon Sep 17 00:00:00 2001 From: Chris Duck Date: Sat, 11 Feb 2017 15:57:33 -0700 Subject: [PATCH 363/709] Add verbs from PS v5.1 Adds the following verbs: approve, assert, backup, block, close, compress, confirm, deny, dismount, edit, find, grant, hide, initialize, install, lock, merge, mount, open, optimize, protect, publish, redo, repair, request, revoke, save, search, step, submit, switch, sync, unblock, uninstall, unlock, unprotect, unpublish, watch --- pygments/lexers/shell.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 2168583ae7d..68150811eb4 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -638,13 +638,17 @@ class PowerShellLexer(RegexLexer): 'wildcard').split() verbs = ( - 'write where wait use update unregister undo trace test tee take ' - 'suspend stop start split sort skip show set send select scroll resume ' - 'restore restart resolve resize reset rename remove register receive ' - 'read push pop ping out new move measure limit join invoke import ' - 'group get format foreach export expand exit enter enable disconnect ' - 'disable debug cxnew copy convertto convertfrom convert connect ' - 'complete compare clear checkpoint aggregate add').split() + 'write where watch wait use update unregister unpublish unprotect ' + 'unlock uninstall undo unblock trace test tee take sync switch ' + 'suspend submit stop step start split sort skip show set send select ' + 'search scroll save revoke resume restore restart resolve resize ' + 'reset request repair rename remove register redo receive read push ' + 'publish protect pop ping out optimize open new move mount merge ' + 'measure lock limit join invoke install initialize import hide group ' + 'grant get format foreach find export expand exit enter enable edit ' + 'dismount disconnect disable deny debug cxnew copy convertto ' + 'convertfrom convert connect confirm compress complete compare close ' + 'clear checkpoint block backup assert approve aggregate add').split() aliases = ( 'ac asnp cat cd cfs chdir clc clear clhy cli clp cls clv cnsn ' From 46867224b7b974c3b068a6e72bc9f0bb006a095f Mon Sep 17 00:00:00 2001 From: witchard Date: Sat, 18 Feb 2017 20:18:44 +0000 Subject: [PATCH 364/709] Added support for text/x-shellscript mime type. Fixes #1332. --- pygments/lexers/shell.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index ceb6f14df7a..dd869ef5e02 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -38,7 +38,7 @@ class BashLexer(RegexLexer): '*.exheres-0', '*.exlib', '*.zsh', '.bashrc', 'bashrc', '.bash_*', 'bash_*', 'zshrc', '.zshrc', 'PKGBUILD'] - mimetypes = ['application/x-sh', 'application/x-shellscript'] + mimetypes = ['application/x-sh', 'application/x-shellscript', 'text/x-shellscript'] tokens = { 'root': [ From 2102e4be34576b19d9683cf1b9b303611eb49e3b Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Tue, 28 Feb 2017 14:33:06 +0100 Subject: [PATCH 365/709] Adds a solarized style --- AUTHORS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index f9ba267593b..099fde55a19 100644 --- a/AUTHORS +++ b/AUTHORS @@ -185,7 +185,7 @@ Other contributors, listed alphabetically, are: * Alexander Smishlajev -- Visual FoxPro lexer * Steve Spigarelli -- XQuery lexer * Jerome St-Louis -- eC lexer -* Camil Staps -- Clean and NuSMV lexers +* Camil Staps -- Clean and NuSMV lexers; Solarized style * James Strachan -- Kotlin lexer * Tom Stuart -- Treetop lexer * Colin Sullivan -- SuperCollider lexer From d5d86bd56130e0ead25fccb9a7620f60b933deff Mon Sep 17 00:00:00 2001 From: David Wolever Date: Sun, 19 Mar 2017 10:57:09 -0400 Subject: [PATCH 366/709] Bump rc1 -> 0.7.0 --- libpip2pi/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libpip2pi/__init__.py b/libpip2pi/__init__.py index 3d36f210de8..5dd14896439 100644 --- a/libpip2pi/__init__.py +++ b/libpip2pi/__init__.py @@ -1 +1 @@ -__version__ = (0, 7, 0, "rc1") +__version__ = (0, 7, 0) From 1b094e15c1197f8b437335a966a692ccd31bc5f4 Mon Sep 17 00:00:00 2001 From: David Wolever Date: Sun, 19 Mar 2017 11:51:18 -0400 Subject: [PATCH 367/709] No more newlines in description --- setup.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/setup.py b/setup.py index 935ac9704e5..08103b79713 100644 --- a/setup.py +++ b/setup.py @@ -21,10 +21,7 @@ url="https://github.com/wolever/pip2pi", author="David Wolever", author_email="david@wolever.net", - description=""" - pip2pi builds a PyPI-compatible package repository from pip - requirements - """, + description="pip2pi builds a PyPI-compatible package repository from pip requirements", long_description=long_description, packages=find_packages(), entry_points={ From 5fdcc3e37765a681f357df4253575c104143d425 Mon Sep 17 00:00:00 2001 From: Miro Hron?ok Date: Fri, 22 Sep 2017 13:07:39 +0200 Subject: [PATCH 368/709] Recognize single > as a prompt in doscon Fixes https://bitbucket.org/birkenfeld/pygments-main/issues/1380/lexer-for-cmdexe-interactive-session-with --- pygments/lexers/shell.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index ceb6f14df7a..3b1c37bac28 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -518,7 +518,7 @@ class MSDOSSessionLexer(ShellSessionBaseLexer): mimetypes = [] _innerLexerCls = BatchLexer - _ps1rgx = r'^([^>]+>)(.*\n?)' + _ps1rgx = r'^([^>]*>)(.*\n?)' _ps2 = 'More? ' From 2c94fbe6f224eff1e0292771ad4294a80f32a4a4 Mon Sep 17 00:00:00 2001 From: Kurt McKee Date: Sun, 28 Jan 2018 13:25:10 -0600 Subject: [PATCH 369/709] Support the Tera Term macro language The patch modifies the Turtle parser in rdf.py, which uses the same file extension. A unit test file is included. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index f9ba267593b..faf18c5522a 100644 --- a/AUTHORS +++ b/AUTHORS @@ -129,6 +129,7 @@ Other contributors, listed alphabetically, are: * Stephen McKamey -- Duel/JBST lexer * Brian McKenna -- F# lexer * Charles McLaughlin -- Puppet lexer +* Kurt McKee -- Tera Term macro lexer * Lukas Meuser -- BBCode formatter, Lua lexer * Cat Miller -- Pig lexer * Paul Miller -- LiveScript lexer From 8706b2f293c83c3a80995e1d264817ba9ba83c52 Mon Sep 17 00:00:00 2001 From: Rostyslav Golda Date: Sat, 3 Feb 2018 01:35:20 +0200 Subject: [PATCH 370/709] Added myself to Authors. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index f9ba267593b..ccff46b3ae1 100644 --- a/AUTHORS +++ b/AUTHORS @@ -216,5 +216,6 @@ Other contributors, listed alphabetically, are: * Alex Zimin -- Nemerle lexer * Rob Zimmerman -- Kal lexer * Vincent Zurczak -- Roboconf lexer +* Rostyslav Golda -- FloScript lexer Many thanks for all contributions! From bb8614af6e77a01d16b6d9e67a1781f92e81955f Mon Sep 17 00:00:00 2001 From: safiyat Date: Wed, 18 Apr 2018 01:10:00 +0530 Subject: [PATCH 371/709] Fixed issues caused due to upgrade of pip to v10.0.0 which removed the deprecated `pip install --download` support. Among other changes, - Introduced a set of global variables named `pip_version`, `pip_download_command` and `pip_no_binary_command`. The variables `pip_download_command` and `pip_no_binary_command` are version dependent. - Now we are importing the `main()` method from `pip` (for pip<10.0.0) or from `pip._internal` (for pip>=10.0.0) as `pip_main`. - Introduced a new flag `has_pip` (pretty much like `has_wheel`) as a global flag to denote the presence of pip. - The help messages printed by the pip2pi parser now dynamically prints options for pip download and no-binary features based on installed pip version. --- libpip2pi/commands.py | 76 ++++++++++++++++++++++++++++--------------- 1 file changed, 50 insertions(+), 26 deletions(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index 3079b508507..81461de5331 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -19,10 +19,42 @@ except ImportError: has_wheel = False + +def try_int(x): + try: + return int(x) + except ValueError: + return x + + try: - import pip + pip_pkg_info = pkg_resources.get_distribution('pip') + pip_version = tuple(try_int(x) for x in pip_pkg_info.version.split(".")) + has_pip = True except ImportError: - pip = None + pip_version = None + has_pip = False + pip_download_command = '' + pip_no_binary_command = '' + + +if pip_version: + if pip_version >= (10, 0, 0): + from pip._internal import main as pip_main + pip_download_command = 'download --dest' + pip_no_binary_command = '--no-binary=:all:' + elif pip_version >= (8, 0, 0): + from pip import main as pip_main + pip_download_command = 'download --dest' + pip_no_binary_command = '--no-binary=:all:' + elif pip_version >= (7, 0, 0): + from pip import main as pip_main + pip_download_command = 'install --download' + pip_no_binary_command = '--no-binary=:all:' + else: + from pip import main as pip_main + pip_download_command = 'install --download' + pip_no_binary_command = '--no-use-wheel' class PipError(Exception): pass @@ -130,18 +162,9 @@ def file_to_package(file, basedir=None): return (to_safe_name(split[0]), to_safe_rest(split[1])) -def try_int(x): - try: - return int(x) - except ValueError: - return x - -def pip_get_version(): - pip_dist = pkg_resources.get_distribution("pip") - return tuple(try_int(x) for x in pip_dist.version.split(".")) def pip_run_command(pip_args): - if pip is None: + if not has_pip: print("===== WARNING =====") print("Cannot `import pip` - falling back to the pip executable.") print("This will be deprecated in a future release.") @@ -151,11 +174,10 @@ def pip_run_command(pip_args): check_call(["pip"] + pip_args) return - version = pip_get_version() - if version < (1, 1): + if pip_version < (1, 1): raise RuntimeError("pip >= 1.1 required, but %s is installed" - %(version, )) - res = pip.main(pip_args) + %(pip_version, )) + res = pip_main(pip_args) if res != 0: raise PipError("pip failed with status %s while running: %s" %(res, pip_args)) @@ -381,7 +403,7 @@ def pip2tgz(argv=sys.argv): description=dedent(""" Where PACKAGES are any names accepted by pip (ex, `foo`, `foo==1.2`, `-r requirements.txt`), and [PIP_OPTIONS] can be any - options accepted by `pip install -d`. + options accepted by `pip %s`. pip2tgz will download all packages required to install PACKAGES and save them to sanely-named tarballs or wheel files in OUTPUT_DIRECTORY. @@ -390,10 +412,10 @@ def pip2tgz(argv=sys.argv): $ pip2tgz /var/www/packages/ -r requirements.txt foo==1.2 baz/ $ pip2tgz /var/www/packages/ \\ - --no-use-wheel \\ + %s \\ --index-url https://example.com/simple \\ bar==3.1 - """)) + """ % (pip_download_command, pip_no_binary_command))) option, argv = parser.parse_args(argv) if len(argv) < 3: @@ -410,7 +432,10 @@ def pip2tgz(argv=sys.argv): pkg_file_set = lambda: set(globall(full_glob_paths)) old_pkgs = pkg_file_set() - pip_run_command(['install', '-d', outdir] + argv[2:]) + if pip_version >= (8, 0, 0): + pip_run_command(pip_download_command.split() + [outdir] + argv[2:]) + else: + pip_run_command(pip_download_command.split() + [outdir] + argv[2:]) os.chdir(outdir) new_pkgs = pkg_file_set() - old_pkgs @@ -436,7 +461,6 @@ def handle_new_wheels(outdir, new_wheels): if not new_wheels: return 0 - pip_version = pip_get_version() if pip_version >= (1, 5, 3): return 0 @@ -485,8 +509,8 @@ def pip2pi(argv=sys.argv): package index will be built locally and rsync will be used to copy it to the remote host. - PIP_OPTIONS can be any options accepted by `pip install -d`, like - `--index-url` or `--no-use-wheel`. + PIP_OPTIONS can be any options accepted by `pip %s`, like + `--index-url` or `%s`. For example, to create a remote index: @@ -499,13 +523,13 @@ def pip2pi(argv=sys.argv): To pass arguments to pip: $ pip2pi ~/Sites/packages/ \\ - --no-use-wheel \\ + %s \\ --index-url https://example.com/simple \\ -r requirements-base.txt \\ -r requirements-dev.txt \\ bar==3.1 - """)) + """ % (pip_download_command, pip_no_binary_command, pip_no_binary_command))) parser.add_index_options() option, argv = parser.parse_args(argv) @@ -530,7 +554,7 @@ def pip2pi(argv=sys.argv): return res if option.get_source: subcmd_argv_source = subcmd_argv[:] - subcmd_argv_source.insert(2, '--no-use-wheel') + subcmd_argv_source.insert(2, pip_no_binary_command) res = pip2tgz(subcmd_argv_source) if res: print("pip2tgz returned an error; aborting.") From 3cf61bb303be23902ae3a887e3c62fe88844c96c Mon Sep 17 00:00:00 2001 From: Brandon Cook Date: Fri, 11 May 2018 11:28:11 -0700 Subject: [PATCH 372/709] added Slurm script parser --- pygments/lexers/shell.py | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index ceb6f14df7a..8b7989a3c66 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -19,7 +19,7 @@ __all__ = ['BashLexer', 'BashSessionLexer', 'TcshLexer', 'BatchLexer', - 'MSDOSSessionLexer', 'PowerShellLexer', + 'SlurmBashLexer', 'MSDOSSessionLexer', 'PowerShellLexer', 'PowerShellSessionLexer', 'TcshSessionLexer', 'FishShellLexer'] line_re = re.compile('.*?\n') @@ -126,6 +126,26 @@ def analyse_text(text): return 0.2 +class SlurmBashLexer(BashLexer): + """ + Lexer for (ba|k|z|)sh Slurm scripts. + """ + + name = 'Slurm' + aliases = ['slurm', 'sbatch'] + filenames = ['*.sl'] + EXTRA_KEYWORDS = {'srun'} + + def get_tokens_unprocessed(self, text): + for index, token, value in BashLexer.get_tokens_unprocessed(self, text): + print(index, token, value) + if token is Text and value in self.EXTRA_KEYWORDS: + yield index, Name.Builtin, value + elif token is Comment.Single and 'SBATCH' in value: + yield index, Keyword.Pseudo, value + else: + yield index, token, value + class ShellSessionBaseLexer(Lexer): """ Base lexer for simplistic shell sessions. From b24b4cd01495ce8e3b45be19d3556245fb2d727e Mon Sep 17 00:00:00 2001 From: Stephane Date: Sun, 21 Oct 2018 17:25:33 +0200 Subject: [PATCH 373/709] Add SGF lexer --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index f9ba267593b..a6a31b81bbe 100644 --- a/AUTHORS +++ b/AUTHORS @@ -31,6 +31,7 @@ Other contributors, listed alphabetically, are: * Sébastien Bigaret -- QVT Operational lexer * Jarrett Billingsley -- MiniD lexer * Adam Blinkinsop -- Haskell, Redcode lexers +* Stéphane Blondon -- SGF lexer * Frits van Bommel -- assembler lexers * Pierre Bourdon -- bugfixes * Matthias Bussonnier -- ANSI style handling for terminal-256 formatter From 616b08ba5351d11ebdd3bde8c23fc29ce6600bf2 Mon Sep 17 00:00:00 2001 From: Md Safiyat Reza Date: Fri, 9 Nov 2018 13:23:51 +0530 Subject: [PATCH 374/709] Removing 'PIP_REQ_TRACKER' from the environment variables before execution of each pip command. When populated by one `pip_main` call, the variable remains in the environment properties for all subsequent calls, wreaking havoc since the directory is subsequently deleted. Should be removed once fixed in `pip`, but will remain until then. Also removed testing for py33 as pip 18.1 demands 3.4. --- libpip2pi/commands.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index 81461de5331..28c07697a71 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -177,6 +177,10 @@ def pip_run_command(pip_args): if pip_version < (1, 1): raise RuntimeError("pip >= 1.1 required, but %s is installed" %(pip_version, )) + # TODO: Remove this once + # pip._internal.req.req_tracker.RequirementTracker.cleanup() does it + # already. + os.environ.pop('PIP_REQ_TRACKER', None) res = pip_main(pip_args) if res != 0: raise PipError("pip failed with status %s while running: %s" From 3a71d1247a20ff07b123526d152942f8cddefbe7 Mon Sep 17 00:00:00 2001 From: Md Safiyat Reza Date: Sun, 11 Nov 2018 12:20:18 +0530 Subject: [PATCH 375/709] Create RC1 for v0.8.0. --- libpip2pi/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libpip2pi/__init__.py b/libpip2pi/__init__.py index 5dd14896439..44445235639 100644 --- a/libpip2pi/__init__.py +++ b/libpip2pi/__init__.py @@ -1 +1 @@ -__version__ = (0, 7, 0) +__version__ = (0, 8, 0, "rc1") From 72fa85a8f0141c363e6ae8fc1931a7a1d2f651e8 Mon Sep 17 00:00:00 2001 From: Md Safiyat Reza Date: Mon, 19 Nov 2018 17:07:00 +0530 Subject: [PATCH 376/709] Create release for v0.8.0. --- libpip2pi/__init__.py | 2 +- setup.py | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/libpip2pi/__init__.py b/libpip2pi/__init__.py index 44445235639..46b98175daa 100644 --- a/libpip2pi/__init__.py +++ b/libpip2pi/__init__.py @@ -1 +1 @@ -__version__ = (0, 8, 0, "rc1") +__version__ = (0, 8, 0) diff --git a/setup.py b/setup.py index 08103b79713..8929b3dc333 100644 --- a/setup.py +++ b/setup.py @@ -23,6 +23,8 @@ author_email="david@wolever.net", description="pip2pi builds a PyPI-compatible package repository from pip requirements", long_description=long_description, + maintainer="Md Safiyat Reza", + maintainer_email="safiyat@voereir.com", packages=find_packages(), entry_points={ 'console_scripts': [ From ca1454bb73fbc142ebc4cf5e41f5eda184c30217 Mon Sep 17 00:00:00 2001 From: "Matth?us G. Chajdas" Date: Sat, 24 Nov 2018 17:55:37 +0100 Subject: [PATCH 377/709] Add Fennel and HLSL to the list of supported languages. --- AUTHORS | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index f39bbaa1f9f..18e642f186e 100644 --- a/AUTHORS +++ b/AUTHORS @@ -72,7 +72,7 @@ Other contributors, listed alphabetically, are: * Alex Gosse -- TrafficScript lexer * Patrick Gotthardt -- PHP namespaces support * Olivier Guibe -- Asymptote lexer -* Jordi Gutiérrez Hermoso -- Octave lexer +* Phil Hagelberg -- Fennel lexer * Florian Hahn -- Boogie lexer * Martin Harriman -- SNOBOL lexer * Matthew Harrison -- SVG formatter @@ -81,6 +81,7 @@ Other contributors, listed alphabetically, are: * Aslak Hellesøy -- Gherkin lexer * Greg Hendershott -- Racket lexer * Justin Hendrick -- ParaSail lexer +* Jordi Gutiérrez Hermoso -- Octave lexer * David Hess, Fish Software, Inc. -- Objective-J lexer * Varun Hiremath -- Debian control lexer * Rob Hoelz -- Perl 6 lexer From 1ba22a96248c4a764c1f39b6a9f718ba5b508385 Mon Sep 17 00:00:00 2001 From: sgarnotel Date: Tue, 27 Nov 2018 16:53:38 +0100 Subject: [PATCH 378/709] Add FreeFem++ lexer --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 18e642f186e..da76dcfdad7 100644 --- a/AUTHORS +++ b/AUTHORS @@ -218,5 +218,6 @@ Other contributors, listed alphabetically, are: * Alex Zimin -- Nemerle lexer * Rob Zimmerman -- Kal lexer * Vincent Zurczak -- Roboconf lexer +* Simon Garnotel -- FreeFem++ lexer Many thanks for all contributions! From 7fc58d21fc5589128a274c990f7392825fe31af9 Mon Sep 17 00:00:00 2001 From: Timo Kankare Date: Tue, 4 Dec 2018 22:20:06 +0200 Subject: [PATCH 379/709] Changed dir2pi to use original file name in file link. --- libpip2pi/commands.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index 28c07697a71..65d6cdedfea 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -363,8 +363,7 @@ def _dir2pi(option, argv): try_symlink(option, pkg_dir_name, pkgdirpath("simple", normalize_pip67(pkg_name))) try_symlink(option, pkg_dir_name, pkgdirpath("simple", pkg_name)) - pkg_new_basename = "-".join([pkg_name, pkg_rest]) - symlink_target = os.path.join(pkg_dir, pkg_new_basename) + symlink_target = os.path.join(pkg_dir, pkg_basename) symlink_source = os.path.join("../../", pkg_basename) if option.use_symlink: try_symlink(option, symlink_source, symlink_target) @@ -383,7 +382,7 @@ def _dir2pi(option, argv): if option.build_html: with open(os.path.join(pkg_dir, "index.html"), "a") as fp: fp.write("%(name)s
\n" %{ - "name": cgi.escape(pkg_new_basename), + "name": cgi.escape(pkg_basename), }) pkg_index += "\n" From 47c5ea9409f505626b0d618f91b46fbd3a917624 Mon Sep 17 00:00:00 2001 From: "Matth?us G. Chajdas" Date: Sun, 16 Dec 2018 17:52:10 +0100 Subject: [PATCH 380/709] Fix PowerShellLexer defining built-in aliases incorrectly. --- pygments/lexers/shell.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 68150811eb4..0fd73464d47 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -650,7 +650,7 @@ class PowerShellLexer(RegexLexer): 'convertfrom convert connect confirm compress complete compare close ' 'clear checkpoint block backup assert approve aggregate add').split() - aliases = ( + aliases_ = ( 'ac asnp cat cd cfs chdir clc clear clhy cli clp cls clv cnsn ' 'compare copy cp cpi cpp curl cvpa dbp del diff dir dnsn ebp echo epal ' 'epcsv epsn erase etsn exsn fc fhx fl foreach ft fw gal gbp gc gci gcm ' @@ -688,7 +688,7 @@ class PowerShellLexer(RegexLexer): (r'(%s)\b' % '|'.join(keywords), Keyword), (r'-(%s)\b' % '|'.join(operators), Operator), (r'(%s)-[a-z_]\w*\b' % '|'.join(verbs), Name.Builtin), - (r'(%s)\s' % '|'.join(aliases), Name.Builtin), + (r'(%s)\s' % '|'.join(aliases_), Name.Builtin), (r'\[[a-z_\[][\w. `,\[\]]*\]', Name.Constant), # .net [type]s (r'-[a-z_]\w*', Name), (r'\w+', Name), From ba9860fda379eb8f3a3b9e33f60baaa43419e7fd Mon Sep 17 00:00:00 2001 From: "Matth?us G. Chajdas" Date: Fri, 21 Dec 2018 17:34:15 +0100 Subject: [PATCH 381/709] Small cleanups to the Slurm lexer. Remove debug output, add a test file for the Slurm lexer. --- pygments/lexers/shell.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 5e9fcd6aa2d..86d8c37a44f 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -129,23 +129,25 @@ def analyse_text(text): class SlurmBashLexer(BashLexer): """ Lexer for (ba|k|z|)sh Slurm scripts. + + .. versionadded:: 2.4 """ name = 'Slurm' aliases = ['slurm', 'sbatch'] filenames = ['*.sl'] + mimetypes = [] EXTRA_KEYWORDS = {'srun'} def get_tokens_unprocessed(self, text): for index, token, value in BashLexer.get_tokens_unprocessed(self, text): - print(index, token, value) if token is Text and value in self.EXTRA_KEYWORDS: yield index, Name.Builtin, value elif token is Comment.Single and 'SBATCH' in value: yield index, Keyword.Pseudo, value else: yield index, token, value - + class ShellSessionBaseLexer(Lexer): """ Base lexer for simplistic shell sessions. From 54f2ff87f9183c3ef85da601660d2fb3f8f8d5b4 Mon Sep 17 00:00:00 2001 From: "Matth?us G. Chajdas" Date: Wed, 6 Mar 2019 19:44:06 +0100 Subject: [PATCH 382/709] Fix #1494. This fixes the catastrophic backtracking which previously occured for strings like "\057hom\145/e2\071501\057pub\154ic_\150tml\057a --- pygments/lexers/shell.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 86d8c37a44f..31bc7e948f3 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -76,7 +76,7 @@ class BashLexer(RegexLexer): (r'&&|\|\|', Operator), ], 'data': [ - (r'(?s)\$?"(\\\\|\\[0-7]+|\\.|[^"\\$])*"', String.Double), + (r'(?s)\$?"(\\.|[^"\\$])*"', String.Double), (r'"', String.Double, 'string'), (r"(?s)\$'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single), (r"(?s)'.*?'", String.Single), From c0831fcaff8fbc88d92878ab9cbd6804b2ef8f5f Mon Sep 17 00:00:00 2001 From: "Frederik ?Freso? S. Olesen" Date: Sun, 31 Mar 2019 17:32:01 +0200 Subject: [PATCH 383/709] Add lexers for DASM16, Augeas, TOML, and Slash Lexers copied unmodified from https://github.com/liluo/pygments-github-lexers which is available under a 2-clause BSD license (same as pygments), copyright 2012 to GitHub, Inc. Fixes #1391 and #1150. --- AUTHORS | 226 +++++++++++ LICENSE | 25 ++ README.rst | 39 ++ pygments/lexers/shell.py | 833 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 1123 insertions(+) create mode 100644 AUTHORS create mode 100644 LICENSE create mode 100644 README.rst create mode 100644 pygments/lexers/shell.py diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 00000000000..e6f90fea4dc --- /dev/null +++ b/AUTHORS @@ -0,0 +1,226 @@ +Pygments is written and maintained by Georg Brandl . + +Major developers are Tim Hatch and Armin Ronacher +. + +Other contributors, listed alphabetically, are: + +* Sam Aaron -- Ioke lexer +* Ali Afshar -- image formatter +* Thomas Aglassinger -- Easytrieve, JCL, Rexx, Transact-SQL and VBScript + lexers +* Muthiah Annamalai -- Ezhil lexer +* Kumar Appaiah -- Debian control lexer +* Andreas Amann -- AppleScript lexer +* Timothy Armstrong -- Dart lexer fixes +* Jeffrey Arnold -- R/S, Rd, BUGS, Jags, and Stan lexers +* Jeremy Ashkenas -- CoffeeScript lexer +* José Joaquín Atria -- Praat lexer +* Stefan Matthias Aust -- Smalltalk lexer +* Lucas Bajolet -- Nit lexer +* Ben Bangert -- Mako lexers +* Max Battcher -- Darcs patch lexer +* Thomas Baruchel -- APL lexer +* Tim Baumann -- (Literate) Agda lexer +* Paul Baumgart, 280 North, Inc. -- Objective-J lexer +* Michael Bayer -- Myghty lexers +* Thomas Beale -- Archetype lexers +* John Benediktsson -- Factor lexer +* Trevor Bergeron -- mIRC formatter +* Vincent Bernat -- LessCSS lexer +* Christopher Bertels -- Fancy lexer +* Sébastien Bigaret -- QVT Operational lexer +* Jarrett Billingsley -- MiniD lexer +* Adam Blinkinsop -- Haskell, Redcode lexers +* Stéphane Blondon -- SGF lexer +* Frits van Bommel -- assembler lexers +* Pierre Bourdon -- bugfixes +* Matthias Bussonnier -- ANSI style handling for terminal-256 formatter +* chebee7i -- Python traceback lexer improvements +* Hiram Chirino -- Scaml and Jade lexers +* Mauricio Caceres -- SAS and Stata lexers. +* Ian Cooper -- VGL lexer +* David Corbett -- Inform, Jasmin, JSGF, Snowball, and TADS 3 lexers +* Leaf Corcoran -- MoonScript lexer +* Christopher Creutzig -- MuPAD lexer +* Daniël W. Crompton -- Pike lexer +* Pete Curry -- bugfixes +* Bryan Davis -- EBNF lexer +* Bruno Deferrari -- Shen lexer +* Giedrius Dubinskas -- HTML formatter improvements +* Owen Durni -- Haxe lexer +* Alexander Dutton, Oxford University Computing Services -- SPARQL lexer +* James Edwards -- Terraform lexer +* Nick Efford -- Python 3 lexer +* Sven Efftinge -- Xtend lexer +* Artem Egorkine -- terminal256 formatter +* Matthew Fernandez -- CAmkES lexer +* Michael Ficarra -- CPSA lexer +* James H. Fisher -- PostScript lexer +* William S. Fulton -- SWIG lexer +* Carlos Galdino -- Elixir and Elixir Console lexers +* Michael Galloy -- IDL lexer +* Naveen Garg -- Autohotkey lexer +* Laurent Gautier -- R/S lexer +* Alex Gaynor -- PyPy log lexer +* Richard Gerkin -- Igor Pro lexer +* Alain Gilbert -- TypeScript lexer +* Alex Gilding -- BlitzBasic lexer +* Bertrand Goetzmann -- Groovy lexer +* Krzysiek Goj -- Scala lexer +* Andrey Golovizin -- BibTeX lexers +* Matt Good -- Genshi, Cheetah lexers +* Michał Górny -- vim modeline support +* Alex Gosse -- TrafficScript lexer +* Patrick Gotthardt -- PHP namespaces support +* Olivier Guibe -- Asymptote lexer +* Phil Hagelberg -- Fennel lexer +* Florian Hahn -- Boogie lexer +* Martin Harriman -- SNOBOL lexer +* Matthew Harrison -- SVG formatter +* Steven Hazel -- Tcl lexer +* Dan Michael Heggø -- Turtle lexer +* Aslak Hellesøy -- Gherkin lexer +* Greg Hendershott -- Racket lexer +* Justin Hendrick -- ParaSail lexer +* Jordi Gutiérrez Hermoso -- Octave lexer +* David Hess, Fish Software, Inc. -- Objective-J lexer +* Varun Hiremath -- Debian control lexer +* Rob Hoelz -- Perl 6 lexer +* Doug Hogan -- Mscgen lexer +* Ben Hollis -- Mason lexer +* Max Horn -- GAP lexer +* Alastair Houghton -- Lexer inheritance facility +* Tim Howard -- BlitzMax lexer +* Dustin Howett -- Logos lexer +* Ivan Inozemtsev -- Fantom lexer +* Hiroaki Itoh -- Shell console rewrite, Lexers for PowerShell session, + MSDOS session, BC, WDiff +* Brian R. Jackson -- Tea lexer +* Christian Jann -- ShellSession lexer +* Dennis Kaarsemaker -- sources.list lexer +* Dmitri Kabak -- Inferno Limbo lexer +* Igor Kalnitsky -- vhdl lexer +* Alexander Kit -- MaskJS lexer +* Pekka Klärck -- Robot Framework lexer +* Gerwin Klein -- Isabelle lexer +* Eric Knibbe -- Lasso lexer +* Stepan Koltsov -- Clay lexer +* Adam Koprowski -- Opa lexer +* Benjamin Kowarsch -- Modula-2 lexer +* Domen Kožar -- Nix lexer +* Oleh Krekel -- Emacs Lisp lexer +* Alexander Kriegisch -- Kconfig and AspectJ lexers +* Marek Kubica -- Scheme lexer +* Jochen Kupperschmidt -- Markdown processor +* Gerd Kurzbach -- Modelica lexer +* Jon Larimer, Google Inc. -- Smali lexer +* Olov Lassus -- Dart lexer +* Matt Layman -- TAP lexer +* Kristian Lyngstøl -- Varnish lexers +* Sylvestre Ledru -- Scilab lexer +* Chee Sing Lee -- Flatline lexer +* Mark Lee -- Vala lexer +* Valentin Lorentz -- C++ lexer improvements +* Ben Mabey -- Gherkin lexer +* Angus MacArthur -- QML lexer +* Louis Mandel -- X10 lexer +* Louis Marchand -- Eiffel lexer +* Simone Margaritelli -- Hybris lexer +* Kirk McDonald -- D lexer +* Gordon McGregor -- SystemVerilog lexer +* Stephen McKamey -- Duel/JBST lexer +* Brian McKenna -- F# lexer +* Charles McLaughlin -- Puppet lexer +* Lukas Meuser -- BBCode formatter, Lua lexer +* Cat Miller -- Pig lexer +* Paul Miller -- LiveScript lexer +* Hong Minhee -- HTTP lexer +* Michael Mior -- Awk lexer +* Bruce Mitchener -- Dylan lexer rewrite +* Reuben Morais -- SourcePawn lexer +* Jon Morton -- Rust lexer +* Paulo Moura -- Logtalk lexer +* Mher Movsisyan -- DTD lexer +* Dejan Muhamedagic -- Crmsh lexer +* Ana Nelson -- Ragel, ANTLR, R console lexers +* Kurt Neufeld -- Markdown lexer +* Nam T. Nguyen -- Monokai style +* Jesper Noehr -- HTML formatter "anchorlinenos" +* Mike Nolta -- Julia lexer +* Jonas Obrist -- BBCode lexer +* Edward O'Callaghan -- Cryptol lexer +* David Oliva -- Rebol lexer +* Pat Pannuto -- nesC lexer +* Jon Parise -- Protocol buffers and Thrift lexers +* Benjamin Peterson -- Test suite refactoring +* Ronny Pfannschmidt -- BBCode lexer +* Dominik Picheta -- Nimrod lexer +* Andrew Pinkham -- RTF Formatter Refactoring +* Clément Prévost -- UrbiScript lexer +* Tanner Prynn -- cmdline -x option and loading lexers from files +* Oleh Prypin -- Crystal lexer (based on Ruby lexer) +* Elias Rabel -- Fortran fixed form lexer +* raichoo -- Idris lexer +* Kashif Rasul -- CUDA lexer +* Nathan Reed -- HLSL lexer +* Justin Reidy -- MXML lexer +* Norman Richards -- JSON lexer +* Corey Richardson -- Rust lexer updates +* Lubomir Rintel -- GoodData MAQL and CL lexers +* Andre Roberge -- Tango style +* Georg Rollinger -- HSAIL lexer +* Michiel Roos -- TypoScript lexer +* Konrad Rudolph -- LaTeX formatter enhancements +* Mario Ruggier -- Evoque lexers +* Miikka Salminen -- Lovelace style, Hexdump lexer, lexer enhancements +* Stou Sandalski -- NumPy, FORTRAN, tcsh and XSLT lexers +* Matteo Sasso -- Common Lisp lexer +* Joe Schafer -- Ada lexer +* Ken Schutte -- Matlab lexers +* René Schwaiger -- Rainbow Dash style +* Sebastian Schweizer -- Whiley lexer +* Tassilo Schweyer -- Io, MOOCode lexers +* Ted Shaw -- AutoIt lexer +* Joerg Sieker -- ABAP lexer +* Robert Simmons -- Standard ML lexer +* Kirill Simonov -- YAML lexer +* Corbin Simpson -- Monte lexer +* Alexander Smishlajev -- Visual FoxPro lexer +* Steve Spigarelli -- XQuery lexer +* Jerome St-Louis -- eC lexer +* Camil Staps -- Clean and NuSMV lexers; Solarized style +* James Strachan -- Kotlin lexer +* Tom Stuart -- Treetop lexer +* Colin Sullivan -- SuperCollider lexer +* Ben Swift -- Extempore lexer +* Edoardo Tenani -- Arduino lexer +* Tiberius Teng -- default style overhaul +* Jeremy Thurgood -- Erlang, Squid config lexers +* Brian Tiffin -- OpenCOBOL lexer +* Bob Tolbert -- Hy lexer +* Matthias Trute -- Forth lexer +* Erick Tryzelaar -- Felix lexer +* Alexander Udalov -- Kotlin lexer improvements +* Thomas Van Doren -- Chapel lexer +* Daniele Varrazzo -- PostgreSQL lexers +* Abe Voelker -- OpenEdge ABL lexer +* Pepijn de Vos -- HTML formatter CTags support +* Matthias Vallentin -- Bro lexer +* Benoît Vinot -- AMPL lexer +* Linh Vu Hong -- RSL lexer +* Nathan Weizenbaum -- Haml and Sass lexers +* Nathan Whetsell -- Csound lexers +* Dietmar Winkler -- Modelica lexer +* Nils Winter -- Smalltalk lexer +* Davy Wybiral -- Clojure lexer +* Whitney Young -- ObjectiveC lexer +* Diego Zamboni -- CFengine3 lexer +* Enrique Zamudio -- Ceylon lexer +* Alex Zimin -- Nemerle lexer +* Rob Zimmerman -- Kal lexer +* Vincent Zurczak -- Roboconf lexer +* Rostyslav Golda -- FloScript lexer +* GitHub, Inc -- DASM16, Augeas, TOML, and Slash lexers + +Many thanks for all contributions! diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000000..21815527ff1 --- /dev/null +++ b/LICENSE @@ -0,0 +1,25 @@ +Copyright (c) 2006-2017 by the respective authors (see AUTHORS file). +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +* Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/README.rst b/README.rst new file mode 100644 index 00000000000..350e242ee72 --- /dev/null +++ b/README.rst @@ -0,0 +1,39 @@ +README for Pygments +=================== + +This is the source of Pygments. It is a generic syntax highlighter that +supports over 300 languages and text formats, for use in code hosting, forums, +wikis or other applications that need to prettify source code. + +Installing +---------- + +... works as usual, use ``python setup.py install``. + +Documentation +------------- + +... can be found online at http://pygments.org/ or created by :: + + cd doc + make html + +Development +----------- + +... takes place on `Bitbucket +`_, where the Mercurial +repository, tickets and pull requests can be viewed. + +Continuous testing runs on drone.io: + +.. image:: https://drone.io/bitbucket.org/birkenfeld/pygments-main/status.png + :target: https://drone.io/bitbucket.org/birkenfeld/pygments-main + +The authors +----------- + +Pygments is maintained by **Georg Brandl**, e-mail address *georg*\ *@*\ *python.org*. + +Many lexers and fixes have been contributed by **Armin Ronacher**, the rest of +the `Pocoo `_ team and **Tim Hatch**. diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py new file mode 100644 index 00000000000..31bc7e948f3 --- /dev/null +++ b/pygments/lexers/shell.py @@ -0,0 +1,833 @@ +# -*- coding: utf-8 -*- +""" + pygments.lexers.shell + ~~~~~~~~~~~~~~~~~~~~~ + + Lexers for various shells. + + :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS. + :license: BSD, see LICENSE for details. +""" + +import re + +from pygments.lexer import Lexer, RegexLexer, do_insertions, bygroups, \ + include, default, this, using, words +from pygments.token import Punctuation, \ + Text, Comment, Operator, Keyword, Name, String, Number, Generic +from pygments.util import shebang_matches + + +__all__ = ['BashLexer', 'BashSessionLexer', 'TcshLexer', 'BatchLexer', + 'SlurmBashLexer', 'MSDOSSessionLexer', 'PowerShellLexer', + 'PowerShellSessionLexer', 'TcshSessionLexer', 'FishShellLexer'] + +line_re = re.compile('.*?\n') + + +class BashLexer(RegexLexer): + """ + Lexer for (ba|k|z|)sh shell scripts. + + .. versionadded:: 0.6 + """ + + name = 'Bash' + aliases = ['bash', 'sh', 'ksh', 'zsh', 'shell'] + filenames = ['*.sh', '*.ksh', '*.bash', '*.ebuild', '*.eclass', + '*.exheres-0', '*.exlib', '*.zsh', + '.bashrc', 'bashrc', '.bash_*', 'bash_*', 'zshrc', '.zshrc', + 'PKGBUILD'] + mimetypes = ['application/x-sh', 'application/x-shellscript', 'text/x-shellscript'] + + tokens = { + 'root': [ + include('basic'), + (r'`', String.Backtick, 'backticks'), + include('data'), + include('interp'), + ], + 'interp': [ + (r'\$\(\(', Keyword, 'math'), + (r'\$\(', Keyword, 'paren'), + (r'\$\{#?', String.Interpol, 'curly'), + (r'\$[a-zA-Z_]\w*', Name.Variable), # user variable + (r'\$(?:\d+|[#$?!_*@-])', Name.Variable), # builtin + (r'\$', Text), + ], + 'basic': [ + (r'\b(if|fi|else|while|do|done|for|then|return|function|case|' + r'select|continue|until|esac|elif)(\s*)\b', + bygroups(Keyword, Text)), + (r'\b(alias|bg|bind|break|builtin|caller|cd|command|compgen|' + r'complete|declare|dirs|disown|echo|enable|eval|exec|exit|' + r'export|false|fc|fg|getopts|hash|help|history|jobs|kill|let|' + r'local|logout|popd|printf|pushd|pwd|read|readonly|set|shift|' + r'shopt|source|suspend|test|time|times|trap|true|type|typeset|' + r'ulimit|umask|unalias|unset|wait)(?=[\s)`])', + Name.Builtin), + (r'\A#!.+\n', Comment.Hashbang), + (r'#.*\n', Comment.Single), + (r'\\[\w\W]', String.Escape), + (r'(\b\w+)(\s*)(\+?=)', bygroups(Name.Variable, Text, Operator)), + (r'[\[\]{}()=]', Operator), + (r'<<<', Operator), # here-string + (r'<<-?\s*(\'?)\\?(\w+)[\w\W]+?\2', String), + (r'&&|\|\|', Operator), + ], + 'data': [ + (r'(?s)\$?"(\\.|[^"\\$])*"', String.Double), + (r'"', String.Double, 'string'), + (r"(?s)\$'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single), + (r"(?s)'.*?'", String.Single), + (r';', Punctuation), + (r'&', Punctuation), + (r'\|', Punctuation), + (r'\s+', Text), + (r'\d+\b', Number), + (r'[^=\s\[\]{}()$"\'`\\<&|;]+', Text), + (r'<', Text), + ], + 'string': [ + (r'"', String.Double, '#pop'), + (r'(?s)(\\\\|\\[0-7]+|\\.|[^"\\$])+', String.Double), + include('interp'), + ], + 'curly': [ + (r'\}', String.Interpol, '#pop'), + (r':-', Keyword), + (r'\w+', Name.Variable), + (r'[^}:"\'`$\\]+', Punctuation), + (r':', Punctuation), + include('root'), + ], + 'paren': [ + (r'\)', Keyword, '#pop'), + include('root'), + ], + 'math': [ + (r'\)\)', Keyword, '#pop'), + (r'[-+*/%^|&]|\*\*|\|\|', Operator), + (r'\d+#\d+', Number), + (r'\d+#(?! )', Number), + (r'\d+', Number), + include('root'), + ], + 'backticks': [ + (r'`', String.Backtick, '#pop'), + include('root'), + ], + } + + def analyse_text(text): + if shebang_matches(text, r'(ba|z|)sh'): + return 1 + if text.startswith('$ '): + return 0.2 + + +class SlurmBashLexer(BashLexer): + """ + Lexer for (ba|k|z|)sh Slurm scripts. + + .. versionadded:: 2.4 + """ + + name = 'Slurm' + aliases = ['slurm', 'sbatch'] + filenames = ['*.sl'] + mimetypes = [] + EXTRA_KEYWORDS = {'srun'} + + def get_tokens_unprocessed(self, text): + for index, token, value in BashLexer.get_tokens_unprocessed(self, text): + if token is Text and value in self.EXTRA_KEYWORDS: + yield index, Name.Builtin, value + elif token is Comment.Single and 'SBATCH' in value: + yield index, Keyword.Pseudo, value + else: + yield index, token, value + +class ShellSessionBaseLexer(Lexer): + """ + Base lexer for simplistic shell sessions. + + .. versionadded:: 2.1 + """ + def get_tokens_unprocessed(self, text): + innerlexer = self._innerLexerCls(**self.options) + + pos = 0 + curcode = '' + insertions = [] + backslash_continuation = False + + for match in line_re.finditer(text): + line = match.group() + m = re.match(self._ps1rgx, line) + if backslash_continuation: + curcode += line + backslash_continuation = curcode.endswith('\\\n') + elif m: + # To support output lexers (say diff output), the output + # needs to be broken by prompts whenever the output lexer + # changes. + if not insertions: + pos = match.start() + + insertions.append((len(curcode), + [(0, Generic.Prompt, m.group(1))])) + curcode += m.group(2) + backslash_continuation = curcode.endswith('\\\n') + elif line.startswith(self._ps2): + insertions.append((len(curcode), + [(0, Generic.Prompt, line[:len(self._ps2)])])) + curcode += line[len(self._ps2):] + backslash_continuation = curcode.endswith('\\\n') + else: + if insertions: + toks = innerlexer.get_tokens_unprocessed(curcode) + for i, t, v in do_insertions(insertions, toks): + yield pos+i, t, v + yield match.start(), Generic.Output, line + insertions = [] + curcode = '' + if insertions: + for i, t, v in do_insertions(insertions, + innerlexer.get_tokens_unprocessed(curcode)): + yield pos+i, t, v + + +class BashSessionLexer(ShellSessionBaseLexer): + """ + Lexer for simplistic shell sessions. + + .. versionadded:: 1.1 + """ + + name = 'Bash Session' + aliases = ['console', 'shell-session'] + filenames = ['*.sh-session', '*.shell-session'] + mimetypes = ['application/x-shell-session', 'application/x-sh-session'] + + _innerLexerCls = BashLexer + _ps1rgx = \ + r'^((?:(?:\[.*?\])|(?:\(\S+\))?(?:| |sh\S*?|\w+\S+[@:]\S+(?:\s+\S+)' \ + r'?|\[\S+[@:][^\n]+\].+))\s*[$#%])(.*\n?)' + _ps2 = '>' + + +class BatchLexer(RegexLexer): + """ + Lexer for the DOS/Windows Batch file format. + + .. versionadded:: 0.7 + """ + name = 'Batchfile' + aliases = ['bat', 'batch', 'dosbatch', 'winbatch'] + filenames = ['*.bat', '*.cmd'] + mimetypes = ['application/x-dos-batch'] + + flags = re.MULTILINE | re.IGNORECASE + + _nl = r'\n\x1a' + _punct = r'&<>|' + _ws = r'\t\v\f\r ,;=\xa0' + _space = r'(?:(?:(?:\^[%s])?[%s])+)' % (_nl, _ws) + _keyword_terminator = (r'(?=(?:\^[%s]?)?[%s+./:[\\\]]|[%s%s(])' % + (_nl, _ws, _nl, _punct)) + _token_terminator = r'(?=\^?[%s]|[%s%s])' % (_ws, _punct, _nl) + _start_label = r'((?:(?<=^[^:])|^[^:]?)[%s]*)(:)' % _ws + _label = r'(?:(?:[^%s%s%s+:^]|\^[%s]?[\w\W])*)' % (_nl, _punct, _ws, _nl) + _label_compound = (r'(?:(?:[^%s%s%s+:^)]|\^[%s]?[^)])*)' % + (_nl, _punct, _ws, _nl)) + _number = r'(?:-?(?:0[0-7]+|0x[\da-f]+|\d+)%s)' % _token_terminator + _opword = r'(?:equ|geq|gtr|leq|lss|neq)' + _string = r'(?:"[^%s"]*(?:"|(?=[%s])))' % (_nl, _nl) + _variable = (r'(?:(?:%%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|' + r'[^%%:%s]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%%%s^]|' + r'\^[^%%%s])[^=%s]*=(?:[^%%%s^]|\^[^%%%s])*)?)?%%))|' + r'(?:\^?![^!:%s]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:' + r'[^!%s^]|\^[^!%s])[^=%s]*=(?:[^!%s^]|\^[^!%s])*)?)?\^?!))' % + (_nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl)) + _core_token = r'(?:(?:(?:\^[%s]?)?[^"%s%s%s])+)' % (_nl, _nl, _punct, _ws) + _core_token_compound = r'(?:(?:(?:\^[%s]?)?[^"%s%s%s)])+)' % (_nl, _nl, + _punct, _ws) + _token = r'(?:[%s]+|%s)' % (_punct, _core_token) + _token_compound = r'(?:[%s]+|%s)' % (_punct, _core_token_compound) + _stoken = (r'(?:[%s]+|(?:%s|%s|%s)+)' % + (_punct, _string, _variable, _core_token)) + + def _make_begin_state(compound, _core_token=_core_token, + _core_token_compound=_core_token_compound, + _keyword_terminator=_keyword_terminator, + _nl=_nl, _punct=_punct, _string=_string, + _space=_space, _start_label=_start_label, + _stoken=_stoken, _token_terminator=_token_terminator, + _variable=_variable, _ws=_ws): + rest = '(?:%s|%s|[^"%%%s%s%s])*' % (_string, _variable, _nl, _punct, + ')' if compound else '') + rest_of_line = r'(?:(?:[^%s^]|\^[%s]?[\w\W])*)' % (_nl, _nl) + rest_of_line_compound = r'(?:(?:[^%s^)]|\^[%s]?[^)])*)' % (_nl, _nl) + set_space = r'((?:(?:\^[%s]?)?[^\S\n])*)' % _nl + suffix = '' + if compound: + _keyword_terminator = r'(?:(?=\))|%s)' % _keyword_terminator + _token_terminator = r'(?:(?=\))|%s)' % _token_terminator + suffix = '/compound' + return [ + ((r'\)', Punctuation, '#pop') if compound else + (r'\)((?=\()|%s)%s' % (_token_terminator, rest_of_line), + Comment.Single)), + (r'(?=%s)' % _start_label, Text, 'follow%s' % suffix), + (_space, using(this, state='text')), + include('redirect%s' % suffix), + (r'[%s]+' % _nl, Text), + (r'\(', Punctuation, 'root/compound'), + (r'@+', Punctuation), + (r'((?:for|if|rem)(?:(?=(?:\^[%s]?)?/)|(?:(?!\^)|' + r'(?<=m))(?:(?=\()|%s)))(%s?%s?(?:\^[%s]?)?/(?:\^[%s]?)?\?)' % + (_nl, _token_terminator, _space, + _core_token_compound if compound else _core_token, _nl, _nl), + bygroups(Keyword, using(this, state='text')), + 'follow%s' % suffix), + (r'(goto%s)(%s(?:\^[%s]?)?/(?:\^[%s]?)?\?%s)' % + (_keyword_terminator, rest, _nl, _nl, rest), + bygroups(Keyword, using(this, state='text')), + 'follow%s' % suffix), + (words(('assoc', 'break', 'cd', 'chdir', 'cls', 'color', 'copy', + 'date', 'del', 'dir', 'dpath', 'echo', 'endlocal', 'erase', + 'exit', 'ftype', 'keys', 'md', 'mkdir', 'mklink', 'move', + 'path', 'pause', 'popd', 'prompt', 'pushd', 'rd', 'ren', + 'rename', 'rmdir', 'setlocal', 'shift', 'start', 'time', + 'title', 'type', 'ver', 'verify', 'vol'), + suffix=_keyword_terminator), Keyword, 'follow%s' % suffix), + (r'(call)(%s?)(:)' % _space, + bygroups(Keyword, using(this, state='text'), Punctuation), + 'call%s' % suffix), + (r'call%s' % _keyword_terminator, Keyword), + (r'(for%s(?!\^))(%s)(/f%s)' % + (_token_terminator, _space, _token_terminator), + bygroups(Keyword, using(this, state='text'), Keyword), + ('for/f', 'for')), + (r'(for%s(?!\^))(%s)(/l%s)' % + (_token_terminator, _space, _token_terminator), + bygroups(Keyword, using(this, state='text'), Keyword), + ('for/l', 'for')), + (r'for%s(?!\^)' % _token_terminator, Keyword, ('for2', 'for')), + (r'(goto%s)(%s?)(:?)' % (_keyword_terminator, _space), + bygroups(Keyword, using(this, state='text'), Punctuation), + 'label%s' % suffix), + (r'(if(?:(?=\()|%s)(?!\^))(%s?)((?:/i%s)?)(%s?)((?:not%s)?)(%s?)' % + (_token_terminator, _space, _token_terminator, _space, + _token_terminator, _space), + bygroups(Keyword, using(this, state='text'), Keyword, + using(this, state='text'), Keyword, + using(this, state='text')), ('(?', 'if')), + (r'rem(((?=\()|%s)%s?%s?.*|%s%s)' % + (_token_terminator, _space, _stoken, _keyword_terminator, + rest_of_line_compound if compound else rest_of_line), + Comment.Single, 'follow%s' % suffix), + (r'(set%s)%s(/a)' % (_keyword_terminator, set_space), + bygroups(Keyword, using(this, state='text'), Keyword), + 'arithmetic%s' % suffix), + (r'(set%s)%s((?:/p)?)%s((?:(?:(?:\^[%s]?)?[^"%s%s^=%s]|' + r'\^[%s]?[^"=])+)?)((?:(?:\^[%s]?)?=)?)' % + (_keyword_terminator, set_space, set_space, _nl, _nl, _punct, + ')' if compound else '', _nl, _nl), + bygroups(Keyword, using(this, state='text'), Keyword, + using(this, state='text'), using(this, state='variable'), + Punctuation), + 'follow%s' % suffix), + default('follow%s' % suffix) + ] + + def _make_follow_state(compound, _label=_label, + _label_compound=_label_compound, _nl=_nl, + _space=_space, _start_label=_start_label, + _token=_token, _token_compound=_token_compound, + _ws=_ws): + suffix = '/compound' if compound else '' + state = [] + if compound: + state.append((r'(?=\))', Text, '#pop')) + state += [ + (r'%s([%s]*)(%s)(.*)' % + (_start_label, _ws, _label_compound if compound else _label), + bygroups(Text, Punctuation, Text, Name.Label, Comment.Single)), + include('redirect%s' % suffix), + (r'(?=[%s])' % _nl, Text, '#pop'), + (r'\|\|?|&&?', Punctuation, '#pop'), + include('text') + ] + return state + + def _make_arithmetic_state(compound, _nl=_nl, _punct=_punct, + _string=_string, _variable=_variable, _ws=_ws): + op = r'=+\-*/!~' + state = [] + if compound: + state.append((r'(?=\))', Text, '#pop')) + state += [ + (r'0[0-7]+', Number.Oct), + (r'0x[\da-f]+', Number.Hex), + (r'\d+', Number.Integer), + (r'[(),]+', Punctuation), + (r'([%s]|%%|\^\^)+' % op, Operator), + (r'(%s|%s|(\^[%s]?)?[^()%s%%^"%s%s%s]|\^[%s%s]?%s)+' % + (_string, _variable, _nl, op, _nl, _punct, _ws, _nl, _ws, + r'[^)]' if compound else r'[\w\W]'), + using(this, state='variable')), + (r'(?=[\x00|&])', Text, '#pop'), + include('follow') + ] + return state + + def _make_call_state(compound, _label=_label, + _label_compound=_label_compound): + state = [] + if compound: + state.append((r'(?=\))', Text, '#pop')) + state.append((r'(:?)(%s)' % (_label_compound if compound else _label), + bygroups(Punctuation, Name.Label), '#pop')) + return state + + def _make_label_state(compound, _label=_label, + _label_compound=_label_compound, _nl=_nl, + _punct=_punct, _string=_string, _variable=_variable): + state = [] + if compound: + state.append((r'(?=\))', Text, '#pop')) + state.append((r'(%s?)((?:%s|%s|\^[%s]?%s|[^"%%^%s%s%s])*)' % + (_label_compound if compound else _label, _string, + _variable, _nl, r'[^)]' if compound else r'[\w\W]', _nl, + _punct, r')' if compound else ''), + bygroups(Name.Label, Comment.Single), '#pop')) + return state + + def _make_redirect_state(compound, + _core_token_compound=_core_token_compound, + _nl=_nl, _punct=_punct, _stoken=_stoken, + _string=_string, _space=_space, + _variable=_variable, _ws=_ws): + stoken_compound = (r'(?:[%s]+|(?:%s|%s|%s)+)' % + (_punct, _string, _variable, _core_token_compound)) + return [ + (r'((?:(?<=[%s%s])\d)?)(>>?&|<&)([%s%s]*)(\d)' % + (_nl, _ws, _nl, _ws), + bygroups(Number.Integer, Punctuation, Text, Number.Integer)), + (r'((?:(?<=[%s%s])(?>?|<)(%s?%s)' % + (_nl, _ws, _nl, _space, stoken_compound if compound else _stoken), + bygroups(Number.Integer, Punctuation, using(this, state='text'))) + ] + + tokens = { + 'root': _make_begin_state(False), + 'follow': _make_follow_state(False), + 'arithmetic': _make_arithmetic_state(False), + 'call': _make_call_state(False), + 'label': _make_label_state(False), + 'redirect': _make_redirect_state(False), + 'root/compound': _make_begin_state(True), + 'follow/compound': _make_follow_state(True), + 'arithmetic/compound': _make_arithmetic_state(True), + 'call/compound': _make_call_state(True), + 'label/compound': _make_label_state(True), + 'redirect/compound': _make_redirect_state(True), + 'variable-or-escape': [ + (_variable, Name.Variable), + (r'%%%%|\^[%s]?(\^!|[\w\W])' % _nl, String.Escape) + ], + 'string': [ + (r'"', String.Double, '#pop'), + (_variable, Name.Variable), + (r'\^!|%%', String.Escape), + (r'[^"%%^%s]+|[%%^]' % _nl, String.Double), + default('#pop') + ], + 'sqstring': [ + include('variable-or-escape'), + (r'[^%]+|%', String.Single) + ], + 'bqstring': [ + include('variable-or-escape'), + (r'[^%]+|%', String.Backtick) + ], + 'text': [ + (r'"', String.Double, 'string'), + include('variable-or-escape'), + (r'[^"%%^%s%s%s\d)]+|.' % (_nl, _punct, _ws), Text) + ], + 'variable': [ + (r'"', String.Double, 'string'), + include('variable-or-escape'), + (r'[^"%%^%s]+|.' % _nl, Name.Variable) + ], + 'for': [ + (r'(%s)(in)(%s)(\()' % (_space, _space), + bygroups(using(this, state='text'), Keyword, + using(this, state='text'), Punctuation), '#pop'), + include('follow') + ], + 'for2': [ + (r'\)', Punctuation), + (r'(%s)(do%s)' % (_space, _token_terminator), + bygroups(using(this, state='text'), Keyword), '#pop'), + (r'[%s]+' % _nl, Text), + include('follow') + ], + 'for/f': [ + (r'(")((?:%s|[^"])*?")([%s%s]*)(\))' % (_variable, _nl, _ws), + bygroups(String.Double, using(this, state='string'), Text, + Punctuation)), + (r'"', String.Double, ('#pop', 'for2', 'string')), + (r"('(?:%%%%|%s|[\w\W])*?')([%s%s]*)(\))" % (_variable, _nl, _ws), + bygroups(using(this, state='sqstring'), Text, Punctuation)), + (r'(`(?:%%%%|%s|[\w\W])*?`)([%s%s]*)(\))' % (_variable, _nl, _ws), + bygroups(using(this, state='bqstring'), Text, Punctuation)), + include('for2') + ], + 'for/l': [ + (r'-?\d+', Number.Integer), + include('for2') + ], + 'if': [ + (r'((?:cmdextversion|errorlevel)%s)(%s)(\d+)' % + (_token_terminator, _space), + bygroups(Keyword, using(this, state='text'), + Number.Integer), '#pop'), + (r'(defined%s)(%s)(%s)' % (_token_terminator, _space, _stoken), + bygroups(Keyword, using(this, state='text'), + using(this, state='variable')), '#pop'), + (r'(exist%s)(%s%s)' % (_token_terminator, _space, _stoken), + bygroups(Keyword, using(this, state='text')), '#pop'), + (r'(%s%s)(%s)(%s%s)' % (_number, _space, _opword, _space, _number), + bygroups(using(this, state='arithmetic'), Operator.Word, + using(this, state='arithmetic')), '#pop'), + (_stoken, using(this, state='text'), ('#pop', 'if2')), + ], + 'if2': [ + (r'(%s?)(==)(%s?%s)' % (_space, _space, _stoken), + bygroups(using(this, state='text'), Operator, + using(this, state='text')), '#pop'), + (r'(%s)(%s)(%s%s)' % (_space, _opword, _space, _stoken), + bygroups(using(this, state='text'), Operator.Word, + using(this, state='text')), '#pop') + ], + '(?': [ + (_space, using(this, state='text')), + (r'\(', Punctuation, ('#pop', 'else?', 'root/compound')), + default('#pop') + ], + 'else?': [ + (_space, using(this, state='text')), + (r'else%s' % _token_terminator, Keyword, '#pop'), + default('#pop') + ] + } + + +class MSDOSSessionLexer(ShellSessionBaseLexer): + """ + Lexer for simplistic MSDOS sessions. + + .. versionadded:: 2.1 + """ + + name = 'MSDOS Session' + aliases = ['doscon'] + filenames = [] + mimetypes = [] + + _innerLexerCls = BatchLexer + _ps1rgx = r'^([^>]+>)(.*\n?)' + _ps2 = 'More? ' + + +class TcshLexer(RegexLexer): + """ + Lexer for tcsh scripts. + + .. versionadded:: 0.10 + """ + + name = 'Tcsh' + aliases = ['tcsh', 'csh'] + filenames = ['*.tcsh', '*.csh'] + mimetypes = ['application/x-csh'] + + tokens = { + 'root': [ + include('basic'), + (r'\$\(', Keyword, 'paren'), + (r'\$\{#?', Keyword, 'curly'), + (r'`', String.Backtick, 'backticks'), + include('data'), + ], + 'basic': [ + (r'\b(if|endif|else|while|then|foreach|case|default|' + r'continue|goto|breaksw|end|switch|endsw)\s*\b', + Keyword), + (r'\b(alias|alloc|bg|bindkey|break|builtins|bye|caller|cd|chdir|' + r'complete|dirs|echo|echotc|eval|exec|exit|fg|filetest|getxvers|' + r'glob|getspath|hashstat|history|hup|inlib|jobs|kill|' + r'limit|log|login|logout|ls-F|migrate|newgrp|nice|nohup|notify|' + r'onintr|popd|printenv|pushd|rehash|repeat|rootnode|popd|pushd|' + r'set|shift|sched|setenv|setpath|settc|setty|setxvers|shift|' + r'source|stop|suspend|source|suspend|telltc|time|' + r'umask|unalias|uncomplete|unhash|universe|unlimit|unset|unsetenv|' + r'ver|wait|warp|watchlog|where|which)\s*\b', + Name.Builtin), + (r'#.*', Comment), + (r'\\[\w\W]', String.Escape), + (r'(\b\w+)(\s*)(=)', bygroups(Name.Variable, Text, Operator)), + (r'[\[\]{}()=]+', Operator), + (r'<<\s*(\'?)\\?(\w+)[\w\W]+?\2', String), + (r';', Punctuation), + ], + 'data': [ + (r'(?s)"(\\\\|\\[0-7]+|\\.|[^"\\])*"', String.Double), + (r"(?s)'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single), + (r'\s+', Text), + (r'[^=\s\[\]{}()$"\'`\\;#]+', Text), + (r'\d+(?= |\Z)', Number), + (r'\$#?(\w+|.)', Name.Variable), + ], + 'curly': [ + (r'\}', Keyword, '#pop'), + (r':-', Keyword), + (r'\w+', Name.Variable), + (r'[^}:"\'`$]+', Punctuation), + (r':', Punctuation), + include('root'), + ], + 'paren': [ + (r'\)', Keyword, '#pop'), + include('root'), + ], + 'backticks': [ + (r'`', String.Backtick, '#pop'), + include('root'), + ], + } + + +class TcshSessionLexer(ShellSessionBaseLexer): + """ + Lexer for Tcsh sessions. + + .. versionadded:: 2.1 + """ + + name = 'Tcsh Session' + aliases = ['tcshcon'] + filenames = [] + mimetypes = [] + + _innerLexerCls = TcshLexer + _ps1rgx = r'^([^>]+>)(.*\n?)' + _ps2 = '? ' + + +class PowerShellLexer(RegexLexer): + """ + For Windows PowerShell code. + + .. versionadded:: 1.5 + """ + name = 'PowerShell' + aliases = ['powershell', 'posh', 'ps1', 'psm1'] + filenames = ['*.ps1', '*.psm1'] + mimetypes = ['text/x-powershell'] + + flags = re.DOTALL | re.IGNORECASE | re.MULTILINE + + keywords = ( + 'while validateset validaterange validatepattern validatelength ' + 'validatecount until trap switch return ref process param parameter in ' + 'if global: function foreach for finally filter end elseif else ' + 'dynamicparam do default continue cmdletbinding break begin alias \\? ' + '% #script #private #local #global mandatory parametersetname position ' + 'valuefrompipeline valuefrompipelinebypropertyname ' + 'valuefromremainingarguments helpmessage try catch throw').split() + + operators = ( + 'and as band bnot bor bxor casesensitive ccontains ceq cge cgt cle ' + 'clike clt cmatch cne cnotcontains cnotlike cnotmatch contains ' + 'creplace eq exact f file ge gt icontains ieq ige igt ile ilike ilt ' + 'imatch ine inotcontains inotlike inotmatch ireplace is isnot le like ' + 'lt match ne not notcontains notlike notmatch or regex replace ' + 'wildcard').split() + + verbs = ( + 'write where watch wait use update unregister unpublish unprotect ' + 'unlock uninstall undo unblock trace test tee take sync switch ' + 'suspend submit stop step start split sort skip show set send select ' + 'search scroll save revoke resume restore restart resolve resize ' + 'reset request repair rename remove register redo receive read push ' + 'publish protect pop ping out optimize open new move mount merge ' + 'measure lock limit join invoke install initialize import hide group ' + 'grant get format foreach find export expand exit enter enable edit ' + 'dismount disconnect disable deny debug cxnew copy convertto ' + 'convertfrom convert connect confirm compress complete compare close ' + 'clear checkpoint block backup assert approve aggregate add').split() + + aliases_ = ( + 'ac asnp cat cd cfs chdir clc clear clhy cli clp cls clv cnsn ' + 'compare copy cp cpi cpp curl cvpa dbp del diff dir dnsn ebp echo epal ' + 'epcsv epsn erase etsn exsn fc fhx fl foreach ft fw gal gbp gc gci gcm ' + 'gcs gdr ghy gi gjb gl gm gmo gp gps gpv group gsn gsnp gsv gu gv gwmi ' + 'h history icm iex ihy ii ipal ipcsv ipmo ipsn irm ise iwmi iwr kill lp ' + 'ls man md measure mi mount move mp mv nal ndr ni nmo npssc nsn nv ogv ' + 'oh popd ps pushd pwd r rbp rcjb rcsn rd rdr ren ri rjb rm rmdir rmo ' + 'rni rnp rp rsn rsnp rujb rv rvpa rwmi sajb sal saps sasv sbp sc select ' + 'set shcm si sl sleep sls sort sp spjb spps spsv start sujb sv swmi tee ' + 'trcm type wget where wjb write').split() + + commenthelp = ( + 'component description example externalhelp forwardhelpcategory ' + 'forwardhelptargetname functionality inputs link ' + 'notes outputs parameter remotehelprunspace role synopsis').split() + + tokens = { + 'root': [ + # we need to count pairs of parentheses for correct highlight + # of '$(...)' blocks in strings + (r'\(', Punctuation, 'child'), + (r'\s+', Text), + (r'^(\s*#[#\s]*)(\.(?:%s))([^\n]*$)' % '|'.join(commenthelp), + bygroups(Comment, String.Doc, Comment)), + (r'#[^\n]*?$', Comment), + (r'(<|<)#', Comment.Multiline, 'multline'), + (r'@"\n', String.Heredoc, 'heredoc-double'), + (r"@'\n.*?\n'@", String.Heredoc), + # escaped syntax + (r'`[\'"$@-]', Punctuation), + (r'"', String.Double, 'string'), + (r"'([^']|'')*'", String.Single), + (r'(\$|@@|@)((global|script|private|env):)?\w+', + Name.Variable), + (r'(%s)\b' % '|'.join(keywords), Keyword), + (r'-(%s)\b' % '|'.join(operators), Operator), + (r'(%s)-[a-z_]\w*\b' % '|'.join(verbs), Name.Builtin), + (r'(%s)\s' % '|'.join(aliases_), Name.Builtin), + (r'\[[a-z_\[][\w. `,\[\]]*\]', Name.Constant), # .net [type]s + (r'-[a-z_]\w*', Name), + (r'\w+', Name), + (r'[.,;@{}\[\]$()=+*/\\&%!~?^`|<>-]|::', Punctuation), + ], + 'child': [ + (r'\)', Punctuation, '#pop'), + include('root'), + ], + 'multline': [ + (r'[^#&.]+', Comment.Multiline), + (r'#(>|>)', Comment.Multiline, '#pop'), + (r'\.(%s)' % '|'.join(commenthelp), String.Doc), + (r'[#&.]', Comment.Multiline), + ], + 'string': [ + (r"`[0abfnrtv'\"$`]", String.Escape), + (r'[^$`"]+', String.Double), + (r'\$\(', Punctuation, 'child'), + (r'""', String.Double), + (r'[`$]', String.Double), + (r'"', String.Double, '#pop'), + ], + 'heredoc-double': [ + (r'\n"@', String.Heredoc, '#pop'), + (r'\$\(', Punctuation, 'child'), + (r'[^@\n]+"]', String.Heredoc), + (r".", String.Heredoc), + ] + } + + +class PowerShellSessionLexer(ShellSessionBaseLexer): + """ + Lexer for simplistic Windows PowerShell sessions. + + .. versionadded:: 2.1 + """ + + name = 'PowerShell Session' + aliases = ['ps1con'] + filenames = [] + mimetypes = [] + + _innerLexerCls = PowerShellLexer + _ps1rgx = r'^(PS [^>]+> )(.*\n?)' + _ps2 = '>> ' + + +class FishShellLexer(RegexLexer): + """ + Lexer for Fish shell scripts. + + .. versionadded:: 2.1 + """ + + name = 'Fish' + aliases = ['fish', 'fishshell'] + filenames = ['*.fish', '*.load'] + mimetypes = ['application/x-fish'] + + tokens = { + 'root': [ + include('basic'), + include('data'), + include('interp'), + ], + 'interp': [ + (r'\$\(\(', Keyword, 'math'), + (r'\(', Keyword, 'paren'), + (r'\$#?(\w+|.)', Name.Variable), + ], + 'basic': [ + (r'\b(begin|end|if|else|while|break|for|in|return|function|block|' + r'case|continue|switch|not|and|or|set|echo|exit|pwd|true|false|' + r'cd|count|test)(\s*)\b', + bygroups(Keyword, Text)), + (r'\b(alias|bg|bind|breakpoint|builtin|command|commandline|' + r'complete|contains|dirh|dirs|emit|eval|exec|fg|fish|fish_config|' + r'fish_indent|fish_pager|fish_prompt|fish_right_prompt|' + r'fish_update_completions|fishd|funced|funcsave|functions|help|' + r'history|isatty|jobs|math|mimedb|nextd|open|popd|prevd|psub|' + r'pushd|random|read|set_color|source|status|trap|type|ulimit|' + r'umask|vared|fc|getopts|hash|kill|printf|time|wait)\s*\b(?!\.)', + Name.Builtin), + (r'#.*\n', Comment), + (r'\\[\w\W]', String.Escape), + (r'(\b\w+)(\s*)(=)', bygroups(Name.Variable, Text, Operator)), + (r'[\[\]()=]', Operator), + (r'<<-?\s*(\'?)\\?(\w+)[\w\W]+?\2', String), + ], + 'data': [ + (r'(?s)\$?"(\\\\|\\[0-7]+|\\.|[^"\\$])*"', String.Double), + (r'"', String.Double, 'string'), + (r"(?s)\$'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single), + (r"(?s)'.*?'", String.Single), + (r';', Punctuation), + (r'&|\||\^|<|>', Operator), + (r'\s+', Text), + (r'\d+(?= |\Z)', Number), + (r'[^=\s\[\]{}()$"\'`\\<&|;]+', Text), + ], + 'string': [ + (r'"', String.Double, '#pop'), + (r'(?s)(\\\\|\\[0-7]+|\\.|[^"\\$])+', String.Double), + include('interp'), + ], + 'paren': [ + (r'\)', Keyword, '#pop'), + include('root'), + ], + 'math': [ + (r'\)\)', Keyword, '#pop'), + (r'[-+*/%^|&]|\*\*|\|\|', Operator), + (r'\d+#\d+', Number), + (r'\d+#(?! )', Number), + (r'\d+', Number), + include('root'), + ], + } From 8eddf75739b8535eabb831ad762cda79421ac78a Mon Sep 17 00:00:00 2001 From: "Frederik ?Freso? S. Olesen" Date: Sun, 31 Mar 2019 17:32:01 +0200 Subject: [PATCH 384/709] Add lexers for DASM16, Augeas, TOML, and Slash Lexers copied unmodified from https://github.com/liluo/pygments-github-lexers which is available under a 2-clause BSD license (same as pygments), copyright 2012 to GitHub, Inc. Fixes #1391 and #1150. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index ed9c547c865..e6f90fea4dc 100644 --- a/AUTHORS +++ b/AUTHORS @@ -221,5 +221,6 @@ Other contributors, listed alphabetically, are: * Rob Zimmerman -- Kal lexer * Vincent Zurczak -- Roboconf lexer * Rostyslav Golda -- FloScript lexer +* GitHub, Inc -- DASM16, Augeas, TOML, and Slash lexers Many thanks for all contributions! From 93b15ec2e933dae5a82961c005f34778095aef9b Mon Sep 17 00:00:00 2001 From: "Matth?us G. Chajdas" Date: Tue, 7 May 2019 21:05:53 +0200 Subject: [PATCH 385/709] Add license information to generated files (fixes #1496). Also update the license year to 2019. --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index 21815527ff1..13d1c74b49a 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2006-2017 by the respective authors (see AUTHORS file). +Copyright (c) 2006-2019 by the respective authors (see AUTHORS file). All rights reserved. Redistribution and use in source and binary forms, with or without From b63954599601603d49b297a94f9f4a9c4b2534d3 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Tue, 28 May 2019 07:00:40 +0200 Subject: [PATCH 386/709] Fixup all headers and some more minor problems. --- pygments/lexers/shell.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 9fd6bf20216..972c4004b35 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -5,7 +5,7 @@ Lexers for various shells. - :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS. + :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. """ From 92c37834524eddca80722e6c973e993eb7ad549f Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Tue, 28 May 2019 07:02:26 +0200 Subject: [PATCH 387/709] Added tag 2.4.2 for changeset 800a6961ec37 From 05d6ef5d9049e41564c40ac4106eedcdbc6de0fc Mon Sep 17 00:00:00 2001 From: Md Safiyat Reza Date: Sun, 29 Sep 2019 02:03:47 +0530 Subject: [PATCH 388/709] Create release for v0.8.1. --- libpip2pi/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libpip2pi/__init__.py b/libpip2pi/__init__.py index 46b98175daa..94810e81beb 100644 --- a/libpip2pi/__init__.py +++ b/libpip2pi/__init__.py @@ -1 +1 @@ -__version__ = (0, 8, 0) +__version__ = (0, 8, 1) From dfea5cf86efd1d7aec8b9a4e8168240200024714 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 10 Nov 2019 08:54:34 +0100 Subject: [PATCH 389/709] Update hg/bitbucket -> git/github everywhere. --- README.rst | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.rst b/README.rst index 350e242ee72..507e416cc62 100644 --- a/README.rst +++ b/README.rst @@ -21,14 +21,14 @@ Documentation Development ----------- -... takes place on `Bitbucket -`_, where the Mercurial +... takes place on `GitHub +`_, where the Git repository, tickets and pull requests can be viewed. -Continuous testing runs on drone.io: +Continuous testing runs on GitHub workflows: -.. image:: https://drone.io/bitbucket.org/birkenfeld/pygments-main/status.png - :target: https://drone.io/bitbucket.org/birkenfeld/pygments-main +.. image:: https://github.com/pygments/pygments/workflows/Pygments/badge.svg + :target: https://github.com/pygments/pygments/actions?query=workflow%3APygments The authors ----------- From 895ecdb8eb00e2f16bf229d07749c176998469f5 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 10 Nov 2019 08:54:55 +0100 Subject: [PATCH 390/709] Add @anteru to the author list. --- README.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.rst b/README.rst index 507e416cc62..816f03cd3fe 100644 --- a/README.rst +++ b/README.rst @@ -33,7 +33,8 @@ Continuous testing runs on GitHub workflows: The authors ----------- -Pygments is maintained by **Georg Brandl**, e-mail address *georg*\ *@*\ *python.org*. +Pygments is maintained by **Georg Brandl**, e-mail address *georg*\ *@*\ *python.org* +and **Matthäus Chajdas**. Many lexers and fixes have been contributed by **Armin Ronacher**, the rest of the `Pocoo `_ team and **Tim Hatch**. From ae96d6fa57495ba3ad23ba6cd882cdecb48a30d2 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 24 Nov 2019 17:52:56 +0100 Subject: [PATCH 391/709] Small readme overhauls --- README.rst | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/README.rst b/README.rst index 816f03cd3fe..ef0cbfd2487 100644 --- a/README.rst +++ b/README.rst @@ -1,19 +1,20 @@ -README for Pygments +Welcome to Pygments =================== -This is the source of Pygments. It is a generic syntax highlighter that -supports over 300 languages and text formats, for use in code hosting, forums, -wikis or other applications that need to prettify source code. +This is the source of Pygments. It is a **generic syntax highlighter** written +in Python that supports over 300 languages and text formats, for use in code +hosting, forums, wikis or other applications that need to prettify source code. Installing ---------- -... works as usual, use ``python setup.py install``. +... works as usual, use ``pip install Pygments`` to get published versions, +or ``python setup.py install`` to install from a checkout. Documentation ------------- -... can be found online at http://pygments.org/ or created by :: +... can be found online at http://pygments.org/ or created with Sphinx by :: cd doc make html @@ -21,9 +22,8 @@ Documentation Development ----------- -... takes place on `GitHub -`_, where the Git -repository, tickets and pull requests can be viewed. +... takes place on `GitHub `_, where the +Git repository, tickets and pull requests can be viewed. Continuous testing runs on GitHub workflows: @@ -38,3 +38,7 @@ and **Matthäus Chajdas**. Many lexers and fixes have been contributed by **Armin Ronacher**, the rest of the `Pocoo `_ team and **Tim Hatch**. + +The code is distributed under the BSD 2-clause license. Contributors making pull +requests must agree that they are able and willing to put their contributions +under that license. From c823d90153d914a42f33852576c38240ad35da8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matth=C3=A4us=20G=2E=20Chajdas?= Date: Sun, 24 Nov 2019 17:22:37 +0100 Subject: [PATCH 392/709] Fix #1253. --- pygments/lexers/shell.py | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 972c4004b35..c12cb3f137f 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -154,6 +154,9 @@ class ShellSessionBaseLexer(Lexer): .. versionadded:: 2.1 """ + + _venv = re.compile(r'^(\([^)]*\))(\s*)') + def get_tokens_unprocessed(self, text): innerlexer = self._innerLexerCls(**self.options) @@ -164,11 +167,24 @@ def get_tokens_unprocessed(self, text): for match in line_re.finditer(text): line = match.group() - m = re.match(self._ps1rgx, line) if backslash_continuation: curcode += line backslash_continuation = curcode.endswith('\\\n') - elif m: + continue + + venv_match = self._venv.match(line) + if venv_match: + venv = venv_match.group(1) + venv_whitespace = venv_match.group(2) + insertions.append((len(curcode), + [(0, Generic.Prompt.VirtualEnv, venv)])) + if venv_whitespace: + insertions.append((len(curcode), + [(0, Text, venv_whitespace)])) + line = line[venv_match.end():] + + m = self._ps1rgx.match(line) + if m: # To support output lexers (say diff output), the output # needs to be broken by prompts whenever the output lexer # changes. @@ -211,9 +227,9 @@ class BashSessionLexer(ShellSessionBaseLexer): mimetypes = ['application/x-shell-session', 'application/x-sh-session'] _innerLexerCls = BashLexer - _ps1rgx = \ + _ps1rgx = re.compile( r'^((?:(?:\[.*?\])|(?:\(\S+\))?(?:| |sh\S*?|\w+\S+[@:]\S+(?:\s+\S+)' \ - r'?|\[\S+[@:][^\n]+\].+))\s*[$#%])(.*\n?)' + r'?|\[\S+[@:][^\n]+\].+))\s*[$#%])(.*\n?)') _ps2 = '>' @@ -540,7 +556,7 @@ class MSDOSSessionLexer(ShellSessionBaseLexer): mimetypes = [] _innerLexerCls = BatchLexer - _ps1rgx = r'^([^>]*>)(.*\n?)' + _ps1rgx = re.compile(r'^([^>]*>)(.*\n?)') _ps2 = 'More? ' @@ -625,7 +641,7 @@ class TcshSessionLexer(ShellSessionBaseLexer): mimetypes = [] _innerLexerCls = TcshLexer - _ps1rgx = r'^([^>]+>)(.*\n?)' + _ps1rgx = re.compile(r'^([^>]+>)(.*\n?)') _ps2 = '? ' @@ -756,7 +772,7 @@ class PowerShellSessionLexer(ShellSessionBaseLexer): mimetypes = [] _innerLexerCls = PowerShellLexer - _ps1rgx = r'^(PS [^>]+> )(.*\n?)' + _ps1rgx = re.compile(r'^(PS [^>]+> )(.*\n?)') _ps2 = '>> ' From 5fd6ad0dbc5e4ce486ebf26d3b98c261b72cd24b Mon Sep 17 00:00:00 2001 From: Colin Kennedy Date: Tue, 26 Nov 2019 22:46:37 -0800 Subject: [PATCH 393/709] Added name to AUTHORS list --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index f7a7acadf6d..23a6590a07a 100644 --- a/AUTHORS +++ b/AUTHORS @@ -224,5 +224,6 @@ Other contributors, listed alphabetically, are: * Rostyslav Golda -- FloScript lexer * GitHub, Inc -- DASM16, Augeas, TOML, and Slash lexers * Simon Garnotel -- FreeFem++ lexer +* Colin Kennedy - USD lexer Many thanks for all contributions! From cde1d74890a9dd733c22353863e0d07e0ae2af7b Mon Sep 17 00:00:00 2001 From: Xidorn Quan Date: Sat, 1 Oct 2016 21:51:26 +1000 Subject: [PATCH 394/709] Add Web IDL lexer --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index f7a7acadf6d..7b2392124a3 100644 --- a/AUTHORS +++ b/AUTHORS @@ -161,6 +161,7 @@ Other contributors, listed alphabetically, are: * Clément Prévost -- UrbiScript lexer * Tanner Prynn -- cmdline -x option and loading lexers from files * Oleh Prypin -- Crystal lexer (based on Ruby lexer) +* Xidorn Quan -- Web IDL lexer * Elias Rabel -- Fortran fixed form lexer * raichoo -- Idris lexer * Kashif Rasul -- CUDA lexer From e582d4404f63c145af476a272093bbbb7a1f19e4 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sat, 30 Nov 2019 08:20:27 +0100 Subject: [PATCH 395/709] update claim about number of lexers --- README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.rst b/README.rst index ef0cbfd2487..4ebb64c9d5a 100644 --- a/README.rst +++ b/README.rst @@ -2,7 +2,7 @@ Welcome to Pygments =================== This is the source of Pygments. It is a **generic syntax highlighter** written -in Python that supports over 300 languages and text formats, for use in code +in Python that supports over 500 languages and text formats, for use in code hosting, forums, wikis or other applications that need to prettify source code. Installing From cd4d4b0ef9fe939f85f65c88c1cc5a2abf6ca693 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Fri, 6 Dec 2019 06:35:56 +0100 Subject: [PATCH 396/709] re-sort AUTHORS --- AUTHORS | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/AUTHORS b/AUTHORS index 23a6590a07a..751c9172c38 100644 --- a/AUTHORS +++ b/AUTHORS @@ -61,13 +61,16 @@ Other contributors, listed alphabetically, are: * Carlos Galdino -- Elixir and Elixir Console lexers * Michael Galloy -- IDL lexer * Naveen Garg -- Autohotkey lexer +* Simon Garnotel -- FreeFem++ lexer * Laurent Gautier -- R/S lexer * Alex Gaynor -- PyPy log lexer * Richard Gerkin -- Igor Pro lexer * Alain Gilbert -- TypeScript lexer * Alex Gilding -- BlitzBasic lexer +* GitHub, Inc -- DASM16, Augeas, TOML, and Slash lexers * Bertrand Goetzmann -- Groovy lexer * Krzysiek Goj -- Scala lexer +* Rostyslav Golda -- FloScript lexer * Andrey Golovizin -- BibTeX lexers * Matt Good -- Genshi, Cheetah lexers * Michał Górny -- vim modeline support @@ -101,6 +104,7 @@ Other contributors, listed alphabetically, are: * Dennis Kaarsemaker -- sources.list lexer * Dmitri Kabak -- Inferno Limbo lexer * Igor Kalnitsky -- vhdl lexer +* Colin Kennedy - USD lexer * Alexander Kit -- MaskJS lexer * Pekka Klärck -- Robot Framework lexer * Gerwin Klein -- Isabelle lexer @@ -221,9 +225,5 @@ Other contributors, listed alphabetically, are: * Alex Zimin -- Nemerle lexer * Rob Zimmerman -- Kal lexer * Vincent Zurczak -- Roboconf lexer -* Rostyslav Golda -- FloScript lexer -* GitHub, Inc -- DASM16, Augeas, TOML, and Slash lexers -* Simon Garnotel -- FreeFem++ lexer -* Colin Kennedy - USD lexer Many thanks for all contributions! From 9a3cccc7b8dce3229ece05504a4b6a8dae82f656 Mon Sep 17 00:00:00 2001 From: "martijn@msi.localhost" Date: Thu, 2 May 2019 16:05:35 +0200 Subject: [PATCH 397/709] This commit adds a lexer for linux kernel logs as outputted by `dmesg` It supports output from `dmesg`, in that case it highlights based on keywords in the line It can also highlight `dmesg -x` output. In that case it uses the loglevels from the kernel to highlight the lines. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 751c9172c38..58968f50194 100644 --- a/AUTHORS +++ b/AUTHORS @@ -35,6 +35,7 @@ Other contributors, listed alphabetically, are: * Stéphane Blondon -- SGF lexer * Frits van Bommel -- assembler lexers * Pierre Bourdon -- bugfixes +* Martijn Braam -- Kernel log lexer * Matthias Bussonnier -- ANSI style handling for terminal-256 formatter * chebee7i -- Python traceback lexer improvements * Hiram Chirino -- Scaml and Jade lexers From 59d9b339b9ad221a24eeab490ce2dd712df4622f Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Tue, 10 Dec 2019 07:46:46 +0100 Subject: [PATCH 398/709] all: fixup http->https for github, pypi, pocoo etc URLs --- README.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.rst b/README.rst index 4ebb64c9d5a..6b7be278bc3 100644 --- a/README.rst +++ b/README.rst @@ -14,7 +14,7 @@ or ``python setup.py install`` to install from a checkout. Documentation ------------- -... can be found online at http://pygments.org/ or created with Sphinx by :: +... can be found online at https://pygments.org/ or created with Sphinx by :: cd doc make html @@ -37,7 +37,7 @@ Pygments is maintained by **Georg Brandl**, e-mail address *georg*\ *@*\ *python and **Matthäus Chajdas**. Many lexers and fixes have been contributed by **Armin Ronacher**, the rest of -the `Pocoo `_ team and **Tim Hatch**. +the `Pocoo `_ team and **Tim Hatch**. The code is distributed under the BSD 2-clause license. Contributors making pull requests must agree that they are able and willing to put their contributions From 9359b65b1055e0a4ca9d5090584d7dfecbc05326 Mon Sep 17 00:00:00 2001 From: sblondon Date: Sat, 4 Jan 2020 17:08:42 +0100 Subject: [PATCH 399/709] Add Sieve lexer (#1257) Add Sieve lexer --- AUTHORS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index 58968f50194..9b6083e3d52 100644 --- a/AUTHORS +++ b/AUTHORS @@ -32,7 +32,7 @@ Other contributors, listed alphabetically, are: * Sébastien Bigaret -- QVT Operational lexer * Jarrett Billingsley -- MiniD lexer * Adam Blinkinsop -- Haskell, Redcode lexers -* Stéphane Blondon -- SGF lexer +* Stéphane Blondon -- SGF and Sieve lexers * Frits van Bommel -- assembler lexers * Pierre Bourdon -- bugfixes * Martijn Braam -- Kernel log lexer From 7f20d22a6b302397430644f5a7d07ef01e30b80d Mon Sep 17 00:00:00 2001 From: Molly Miller <33266253+sysvinit@users.noreply.github.com> Date: Fri, 10 Apr 2020 12:35:15 +0100 Subject: [PATCH 400/709] Add execline lexer (#1393) * Implement lexer for execline. This commit introduces a lexer for Laurent Bercot's execline scripting language (https://skarnet.org/software/execline) based on Pygments' existing bash lexer, with some minor adaptations for execline's variable naming rules. * Add versionadded note and website link to execline lexer. * Add execline to languages.rst and example execline script * Explicitly mark non-special characters in execline lexer as Text * Correct execline lexer version addded Co-authored-by: Molly Miller --- pygments/lexers/shell.py | 63 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 62 insertions(+), 1 deletion(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index c12cb3f137f..a7f12ff6773 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -20,7 +20,8 @@ __all__ = ['BashLexer', 'BashSessionLexer', 'TcshLexer', 'BatchLexer', 'SlurmBashLexer', 'MSDOSSessionLexer', 'PowerShellLexer', - 'PowerShellSessionLexer', 'TcshSessionLexer', 'FishShellLexer'] + 'PowerShellSessionLexer', 'TcshSessionLexer', 'FishShellLexer', + 'ExeclineLexer'] line_re = re.compile('.*?\n') @@ -847,3 +848,63 @@ class FishShellLexer(RegexLexer): include('root'), ], } + +class ExeclineLexer(RegexLexer): + """ + Lexer for Laurent Bercot's execline language + (https://skarnet.org/software/execline). + + .. versionadded:: 2.7 + """ + + name = 'execline' + aliases = ['execline'] + filenames = ['*.exec'] + + tokens = { + 'root': [ + include('basic'), + include('data'), + include('interp') + ], + 'interp': [ + (r'\$\{', String.Interpol, 'curly'), + (r'\$[\w@#]+', Name.Variable), # user variable + (r'\$', Text), + ], + 'basic': [ + (r'\b(background|backtick|cd|define|dollarat|elgetopt|' + r'elgetpositionals|elglob|emptyenv|envfile|exec|execlineb|' + r'exit|export|fdblock|fdclose|fdmove|fdreserve|fdswap|' + r'forbacktickx|foreground|forstdin|forx|getcwd|getpid|heredoc|' + r'homeof|if|ifelse|ifte|ifthenelse|importas|loopwhilex|' + r'multidefine|multisubstitute|pipeline|piperw|posix-cd|' + r'redirfd|runblock|shift|trap|tryexec|umask|unexport|wait|' + r'withstdinas)\b', Name.Builtin), + (r'\A#!.+\n', Comment.Hashbang), + (r'#.*\n', Comment.Single), + (r'[{}]', Operator) + ], + 'data': [ + (r'(?s)"(\\.|[^"\\$])*"', String.Double), + (r'"', String.Double, 'string'), + (r'\s+', Text), + (r'[^\s{}$"\\]+', Text) + ], + 'string': [ + (r'"', String.Double, '#pop'), + (r'(?s)(\\\\|\\.|[^"\\$])+', String.Double), + include('interp'), + ], + 'curly': [ + (r'\}', String.Interpol, '#pop'), + (r'[\w#@]+', Name.Variable), + include('root') + ] + + } + + def analyse_text(text): + if shebang_matches(text, r'execlineb'): + return 1 + From 12504856dec5fe49a619612a9fbb91017d829171 Mon Sep 17 00:00:00 2001 From: BraulioV Date: Mon, 4 May 2020 14:17:16 +0200 Subject: [PATCH 401/709] Changed cgi.escape to html.escape. Fixes wolever/pip2pi#96 --- libpip2pi/commands.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index 65d6cdedfea..3e95528915a 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -1,7 +1,6 @@ import os import re import sys -import cgi import shutil import atexit import tempfile @@ -12,6 +11,7 @@ import pkg_resources import glob import optparse +from html import escape try: import wheel as _; _ @@ -374,15 +374,15 @@ def _dir2pi(option, argv): if pkg_name not in processed_pkg: pkg_index += "%s
\n" %( - cgi.escape(pkg_dir_name), - cgi.escape(pkg_name), + escape(pkg_dir_name), + escape(pkg_name), ) processed_pkg.add(pkg_name) if option.build_html: with open(os.path.join(pkg_dir, "index.html"), "a") as fp: fp.write("%(name)s
\n" %{ - "name": cgi.escape(pkg_basename), + "name": escape(pkg_basename), }) pkg_index += "\n" From ec5ce6ea6a84eaf3222b24cd69257bd8e130fd6b Mon Sep 17 00:00:00 2001 From: BraulioV Date: Mon, 4 May 2020 15:25:56 +0200 Subject: [PATCH 402/709] Improved compatibility with old Python's versions and PyPy --- libpip2pi/commands.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index 3e95528915a..864b6ec2b4b 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -11,7 +11,11 @@ import pkg_resources import glob import optparse -from html import escape + +try: + from html import escape +except ImportError: + from cgi import escape try: import wheel as _; _ From 74962ac7574cedb1c89c6407ce366bef26308e38 Mon Sep 17 00:00:00 2001 From: Hubert Gruniaux <42495291+hgruniaux@users.noreply.github.com> Date: Fri, 22 May 2020 21:30:36 +0200 Subject: [PATCH 403/709] General improvement to the C/C++ lexer (#1350) * General improvement to the C/C++ lexer * Add missing C11 keywords Add '_Imaginary', '_Static_assert', '_Atomic' keywords. * Highlight C11 std atomic types (#906) Add support for C11 atomic types `atomic_*`. * Extended character literals prefixes for C/C++ Add support for `u'a'`, `U'a'` (C++11, C11), and `u8'a'` (C++17, C2x). [Reference](https://en.cppreference.com/w/cpp/language/character_literal). [Reference](https://en.cppreference.com/w/c/language/character_constant). * Fix bad floating point highlighting in C lexer Fix bad highlighting for `5.`, where `.` was not highlighted. * Fix hex floating literal highlighting in C Hexadecimal floating point literals needs an exponent (`0x5p8`). Before this commit, event floating-point literals without an exponent were accepted (e.g. `0x5.5`). * Support '$' in identifiers, C/C++ Some old C/C++ compilers have supported `$` (dollar sign) in identifiers, and some news continue to support this for legacy reasons. That is, some codes may use them, and it is therefore preferable to color them correctly. * Cleaning and fixing some bugs in C/C++ lexer - Add '_Pragma' keyword - Recognize the identifier following 'typename' as Name.Class - Do not tokenize 'class' or 'struct' following 'enum' as Name.Class, but instead as Keyword (C++ lexer) - Move some C++ keywords to the generic lexer (`alignas`, `alignof`, etc...) - Add some C keywords (`noreturn`, `imaginary`, `complex`) - And others things... * Fix building errors in C/C++ lexer * Fix bug in C/C++ Now `class`, `struct`, `enum`, `union`, etc... can be used alone. Previously, the lexer do not recognizes them if they are not followed by an identifier. This regression was introduced in https://github.com/pygments/pygments/pull/1350/commits/013bf6af2777f6ba444e2c8e3a8ca3ad1bb1e674 by me. * Reuse old states names for C/C++ Some lexers depends on the old states names (e.g. `classname` state) to works. This commit, reintroduce these old names. * Improve C/C++ lexer documentation * Correct english errors in C lexer documentation * Cleaning and Unicode literals for C * Move Unicode literals from C++ to generic C * Remove useless 'classname' state in ECLexer * Revert "Remove useless 'classname' state in ECLexer" This reverts commit 89a0c138fbcc70883d8035b0585b7e94e49f73cc. * Revert "Revert "Remove useless 'classname' state in ECLexer"" This reverts commit 2d4734308a813abec6a17ea7fa6eb3a0b6f57939. * Add support for UCNs in C and C++ * Apply correction from #1162 Solves #1162 * Correctly highlights negatives numbers in C++ * Revert some changes from 8fe8ed6 * Add unicode suffixes to C++ raw string literals * Solves #1166 * Fix previous regression in C like lexer * Fix invalid regex in C like lexer * Fix #1396 and now are identifiers support UCNs in C and C++ lexer * Update AUTHORS * Add missing Python raw string prefix Co-authored-by: Hubert Gruniaux <42495291+HubertGruniaux@users.noreply.github.com> --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 3dc223418bb..269ee3ff898 100644 --- a/AUTHORS +++ b/AUTHORS @@ -227,5 +227,6 @@ Other contributors, listed alphabetically, are: * Alex Zimin -- Nemerle lexer * Rob Zimmerman -- Kal lexer * Vincent Zurczak -- Roboconf lexer +* Hubert Gruniaux -- C and C++ lexer improvements Many thanks for all contributions! From c33523c0a3c5ea0fd25877c7d758f96faf9aaf42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=C2=A0Fertyk?= Date: Mon, 1 Jun 2020 14:48:05 +0200 Subject: [PATCH 404/709] Add GDScript lexer (#1457) * Added GDScript lexer * Fix regular expressions in GDScript lexer * Update GDScript lexer with the current version from Godot docs * Add tests for GDScript lexer * Update authors * Add an example file for GDScript * Implement analyze_text for GAP and GDScript * Fix example file name in tests * Update license Co-authored-by: Daniel J. Ramirez --- AUTHORS | 2 ++ 1 file changed, 2 insertions(+) diff --git a/AUTHORS b/AUTHORS index 269ee3ff898..76da176c73e 100644 --- a/AUTHORS +++ b/AUTHORS @@ -56,6 +56,7 @@ Other contributors, listed alphabetically, are: * Sven Efftinge -- Xtend lexer * Artem Egorkine -- terminal256 formatter * Matthew Fernandez -- CAmkES lexer +* Paweł Fertyk -- GDScript lexer * Michael Ficarra -- CPSA lexer * James H. Fisher -- PostScript lexer * William S. Fulton -- SWIG lexer @@ -169,6 +170,7 @@ Other contributors, listed alphabetically, are: * Xidorn Quan -- Web IDL lexer * Elias Rabel -- Fortran fixed form lexer * raichoo -- Idris lexer +* Daniel Ramirez -- GDScript lexer * Kashif Rasul -- CUDA lexer * Nathan Reed -- HLSL lexer * Justin Reidy -- MXML lexer From b3ec54752bfe78b1e73b42cca62a880fbb64f4db Mon Sep 17 00:00:00 2001 From: Max Date: Mon, 1 Jun 2020 16:01:43 +0200 Subject: [PATCH 405/709] add myself as author of the TiddlyWiki5 lexer (#1469) --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 76da176c73e..f3777b348af 100644 --- a/AUTHORS +++ b/AUTHORS @@ -186,6 +186,7 @@ Other contributors, listed alphabetically, are: * Stou Sandalski -- NumPy, FORTRAN, tcsh and XSLT lexers * Matteo Sasso -- Common Lisp lexer * Joe Schafer -- Ada lexer +* Max Schillinger -- TiddlyWiki5 lexer * Ken Schutte -- Matlab lexers * René Schwaiger -- Rainbow Dash style * Sebastian Schweizer -- Whiley lexer From 0863f0009bccf2e9937905c65282cbd7add04b98 Mon Sep 17 00:00:00 2001 From: Geert Smelt Date: Tue, 30 Jun 2020 10:49:58 +0200 Subject: [PATCH 406/709] Add support for PowerShell Remoting sessions (#1398) * Add support for PowerShell Remoting sessions * Add test case for PowerShell Remoting sessions * Make whitespace after prompt optional * Fix test case containing backslashes * Add test case for local PowerShell sessions --- pygments/lexers/shell.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index a7f12ff6773..bc55a52a23b 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -773,7 +773,7 @@ class PowerShellSessionLexer(ShellSessionBaseLexer): mimetypes = [] _innerLexerCls = PowerShellLexer - _ps1rgx = re.compile(r'^(PS [^>]+> )(.*\n?)') + _ps1rgx = re.compile(r'^((?:\[[^]]+\]: )?PS [^>]+> ?)(.*\n?)') _ps2 = '>> ' From 2b9d78627f219bb142a5207aaf745f38664fa8af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=C2=A0Fertyk?= Date: Sat, 4 Jul 2020 18:10:03 +0200 Subject: [PATCH 407/709] Fix Solarized line number colors (#1477) * Add font and background colors to Style * Move all styles to get_style_defs, add tests * Remove hardcoded styles, add special lineno style * Add styles for special line numbers in tables * Update noclasses documentation * Refactor linenos elements and styles, add tests * Update AUTHORS * Fix multiple CSS prefixes, add tests --- AUTHORS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index f3777b348af..5f234f66813 100644 --- a/AUTHORS +++ b/AUTHORS @@ -56,7 +56,7 @@ Other contributors, listed alphabetically, are: * Sven Efftinge -- Xtend lexer * Artem Egorkine -- terminal256 formatter * Matthew Fernandez -- CAmkES lexer -* Paweł Fertyk -- GDScript lexer +* Paweł Fertyk -- GDScript lexer, HTML formatter improvements * Michael Ficarra -- CPSA lexer * James H. Fisher -- PostScript lexer * William S. Fulton -- SWIG lexer From 1ba4bbbec93659a6eb846b031026e5d8eab7d2f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A2=A8=E7=84=93?= Date: Sun, 19 Jul 2020 10:15:00 +0800 Subject: [PATCH 408/709] new option `--absolute-symlink` --- libpip2pi/commands.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index 65d6cdedfea..22a987c61da 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -239,6 +239,11 @@ def add_index_options(self): Use symlinks in PACKAGE_DIR/simple/ rather than copying files. Default: %default """)) + self.add_option( + '-A', '--absolute-symlink', dest='absolute_symlink', + default=False, action='store_true', + help='Use absolute path symlink (default is relative path).' + ) self.add_option( '-S', '--no-symlink', dest="use_symlink", action="store_false") self.add_option( @@ -364,7 +369,10 @@ def _dir2pi(option, argv): try_symlink(option, pkg_dir_name, pkgdirpath("simple", pkg_name)) symlink_target = os.path.join(pkg_dir, pkg_basename) - symlink_source = os.path.join("../../", pkg_basename) + if option.absolute_symlink: + symlink_source = os.path.abspath(os.path.join("../../", pkg_basename)) + else: + symlink_source = os.path.join("../../", pkg_basename) if option.use_symlink: try_symlink(option, symlink_source, symlink_target) else: From 1706bab406a734e3ef8cfbca82389312f11f2e11 Mon Sep 17 00:00:00 2001 From: Pablo SEMINARIO Date: Wed, 19 Aug 2020 11:01:45 +0200 Subject: [PATCH 409/709] Add a PromQL lexer (#1506) Including tests and an example.promql file. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 5f234f66813..1afd7ffc12a 100644 --- a/AUTHORS +++ b/AUTHORS @@ -191,6 +191,7 @@ Other contributors, listed alphabetically, are: * René Schwaiger -- Rainbow Dash style * Sebastian Schweizer -- Whiley lexer * Tassilo Schweyer -- Io, MOOCode lexers +* Pablo Seminario -- PromQL lexer * Ted Shaw -- AutoIt lexer * Joerg Sieker -- ABAP lexer * Robert Simmons -- Standard ML lexer From 343123d3280775e62d2c54d9729e057629542033 Mon Sep 17 00:00:00 2001 From: Kurt McKee Date: Sat, 22 Aug 2020 08:44:06 -0500 Subject: [PATCH 410/709] Update PostgreSQL builtins (#1513) * Update the Postgres auto-update code Postgres source code locations and structure have changed a little. Also, now it works on Windows and sorts all keywords. * Update the PostgreSQL builtins Note that LC_COLLATE and LCCTYPE are removed from the keywords list. * Update AUTHORS --- AUTHORS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index 1afd7ffc12a..43e76181a29 100644 --- a/AUTHORS +++ b/AUTHORS @@ -138,7 +138,7 @@ Other contributors, listed alphabetically, are: * Stephen McKamey -- Duel/JBST lexer * Brian McKenna -- F# lexer * Charles McLaughlin -- Puppet lexer -* Kurt McKee -- Tera Term macro lexer +* Kurt McKee -- Tera Term macro lexer, PostgreSQL updates * Lukas Meuser -- BBCode formatter, Lua lexer * Cat Miller -- Pig lexer * Paul Miller -- LiveScript lexer From 8b44070c548042195172524cf8e83fa265a2db38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matth=C3=A4us=20G=2E=20Chajdas?= Date: Sat, 22 Aug 2020 15:47:03 +0200 Subject: [PATCH 411/709] Manually merge PR#1497. This is a manual merge as we don't want to pull in the documentation change as part of this fix for a cleaner history. --- pygments/lexers/shell.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index bc55a52a23b..3b5218b8dd8 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -172,7 +172,7 @@ def get_tokens_unprocessed(self, text): curcode += line backslash_continuation = curcode.endswith('\\\n') continue - + venv_match = self._venv.match(line) if venv_match: venv = venv_match.group(1) @@ -773,7 +773,7 @@ class PowerShellSessionLexer(ShellSessionBaseLexer): mimetypes = [] _innerLexerCls = PowerShellLexer - _ps1rgx = re.compile(r'^((?:\[[^]]+\]: )?PS [^>]+> ?)(.*\n?)') + _ps1rgx = re.compile(r'^((?:\[[^]]+\]: )?PS[^>]*> ?)(.*\n?)') _ps2 = '>> ' @@ -907,4 +907,3 @@ class ExeclineLexer(RegexLexer): def analyse_text(text): if shebang_matches(text, r'execlineb'): return 1 - From ba1eef79e5574e1561c92660653b55bbc6f0e5c5 Mon Sep 17 00:00:00 2001 From: Martijn Braam Date: Sat, 22 Aug 2020 15:56:05 +0200 Subject: [PATCH 412/709] Added BARE schema lexer (#1488) --- AUTHORS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index 43e76181a29..adf9d3fc80d 100644 --- a/AUTHORS +++ b/AUTHORS @@ -35,7 +35,7 @@ Other contributors, listed alphabetically, are: * Stéphane Blondon -- SGF and Sieve lexers * Frits van Bommel -- assembler lexers * Pierre Bourdon -- bugfixes -* Martijn Braam -- Kernel log lexer +* Martijn Braam -- Kernel log lexer, BARE lexer * Matthias Bussonnier -- ANSI style handling for terminal-256 formatter * chebee7i -- Python traceback lexer improvements * Hiram Chirino -- Scaml and Jade lexers From fa0c3af29f0d024e256a37514e7213063e636deb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matth=C3=A4us=20G=2E=20Chajdas?= Date: Sat, 22 Aug 2020 16:08:07 +0200 Subject: [PATCH 413/709] Update copyright year (fixes #1514.) --- LICENSE | 2 +- pygments/lexers/shell.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/LICENSE b/LICENSE index 13d1c74b49a..085810ec6dd 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2006-2019 by the respective authors (see AUTHORS file). +Copyright (c) 2006-2020 by the respective authors (see AUTHORS file). All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 3b5218b8dd8..dca5f3ed16d 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -5,7 +5,7 @@ Lexers for various shells. - :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS. + :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. """ From c3477577a77d4780223721749bb7509201444d64 Mon Sep 17 00:00:00 2001 From: "Avery N. Nortonsmith" Date: Sun, 23 Aug 2020 02:12:50 -0400 Subject: [PATCH 414/709] Add lexer for Pointless (#1494) * add lexer for pointless * lexer docstring formatting * added link to languages doc * update authors * update version * added double string * added upval keyword * simplify ptls example code * rename doubleString -> multiString --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index adf9d3fc80d..9b0ad00940d 100644 --- a/AUTHORS +++ b/AUTHORS @@ -155,6 +155,7 @@ Other contributors, listed alphabetically, are: * Nam T. Nguyen -- Monokai style * Jesper Noehr -- HTML formatter "anchorlinenos" * Mike Nolta -- Julia lexer +* Avery Nortonsmith -- Pointless lexer * Jonas Obrist -- BBCode lexer * Edward O'Callaghan -- Cryptol lexer * David Oliva -- Rebol lexer From 0e62b00fb0c7cb5ca74fc20e9814b05cbd94bc0c Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 6 Sep 2020 11:55:52 +0200 Subject: [PATCH 415/709] all: fixup remaining regexlint warnings --- pygments/lexers/shell.py | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index dca5f3ed16d..ce6bf6d2260 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -250,14 +250,14 @@ class BatchLexer(RegexLexer): _nl = r'\n\x1a' _punct = r'&<>|' _ws = r'\t\v\f\r ,;=\xa0' + _nlws = r'\s\x1a\xa0,;=' _space = r'(?:(?:(?:\^[%s])?[%s])+)' % (_nl, _ws) _keyword_terminator = (r'(?=(?:\^[%s]?)?[%s+./:[\\\]]|[%s%s(])' % (_nl, _ws, _nl, _punct)) _token_terminator = r'(?=\^?[%s]|[%s%s])' % (_ws, _punct, _nl) _start_label = r'((?:(?<=^[^:])|^[^:]?)[%s]*)(:)' % _ws - _label = r'(?:(?:[^%s%s%s+:^]|\^[%s]?[\w\W])*)' % (_nl, _punct, _ws, _nl) - _label_compound = (r'(?:(?:[^%s%s%s+:^)]|\^[%s]?[^)])*)' % - (_nl, _punct, _ws, _nl)) + _label = r'(?:(?:[^%s%s+:^]|\^[%s]?[\w\W])*)' % (_nlws, _punct, _nl) + _label_compound = r'(?:(?:[^%s%s+:^)]|\^[%s]?[^)])*)' % (_nlws, _punct, _nl) _number = r'(?:-?(?:0[0-7]+|0x[\da-f]+|\d+)%s)' % _token_terminator _opword = r'(?:equ|geq|gtr|leq|lss|neq)' _string = r'(?:"[^%s"]*(?:"|(?=[%s])))' % (_nl, _nl) @@ -267,9 +267,8 @@ class BatchLexer(RegexLexer): r'(?:\^?![^!:%s]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:' r'[^!%s^]|\^[^!%s])[^=%s]*=(?:[^!%s^]|\^[^!%s])*)?)?\^?!))' % (_nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl)) - _core_token = r'(?:(?:(?:\^[%s]?)?[^"%s%s%s])+)' % (_nl, _nl, _punct, _ws) - _core_token_compound = r'(?:(?:(?:\^[%s]?)?[^"%s%s%s)])+)' % (_nl, _nl, - _punct, _ws) + _core_token = r'(?:(?:(?:\^[%s]?)?[^"%s%s])+)' % (_nl, _nlws, _punct) + _core_token_compound = r'(?:(?:(?:\^[%s]?)?[^"%s%s)])+)' % (_nl, _nlws, _punct) _token = r'(?:[%s]+|%s)' % (_punct, _core_token) _token_compound = r'(?:[%s]+|%s)' % (_punct, _core_token_compound) _stoken = (r'(?:[%s]+|(?:%s|%s|%s)+)' % @@ -380,7 +379,8 @@ def _make_follow_state(compound, _label=_label, return state def _make_arithmetic_state(compound, _nl=_nl, _punct=_punct, - _string=_string, _variable=_variable, _ws=_ws): + _string=_string, _variable=_variable, + _ws=_ws, _nlws=_nlws): op = r'=+\-*/!~' state = [] if compound: @@ -391,8 +391,8 @@ def _make_arithmetic_state(compound, _nl=_nl, _punct=_punct, (r'\d+', Number.Integer), (r'[(),]+', Punctuation), (r'([%s]|%%|\^\^)+' % op, Operator), - (r'(%s|%s|(\^[%s]?)?[^()%s%%^"%s%s%s]|\^[%s%s]?%s)+' % - (_string, _variable, _nl, op, _nl, _punct, _ws, _nl, _ws, + (r'(%s|%s|(\^[%s]?)?[^()%s%%\^"%s%s]|\^[%s]?%s)+' % + (_string, _variable, _nl, op, _nlws, _punct, _nlws, r'[^)]' if compound else r'[\w\W]'), using(this, state='variable')), (r'(?=[\x00|&])', Text, '#pop'), @@ -426,15 +426,15 @@ def _make_redirect_state(compound, _core_token_compound=_core_token_compound, _nl=_nl, _punct=_punct, _stoken=_stoken, _string=_string, _space=_space, - _variable=_variable, _ws=_ws): + _variable=_variable, _nlws=_nlws): stoken_compound = (r'(?:[%s]+|(?:%s|%s|%s)+)' % (_punct, _string, _variable, _core_token_compound)) return [ - (r'((?:(?<=[%s%s])\d)?)(>>?&|<&)([%s%s]*)(\d)' % - (_nl, _ws, _nl, _ws), + (r'((?:(?<=[%s])\d)?)(>>?&|<&)([%s]*)(\d)' % + (_nlws, _nlws), bygroups(Number.Integer, Punctuation, Text, Number.Integer)), - (r'((?:(?<=[%s%s])(?>?|<)(%s?%s)' % - (_nl, _ws, _nl, _space, stoken_compound if compound else _stoken), + (r'((?:(?<=[%s])(?>?|<)(%s?%s)' % + (_nlws, _nl, _space, stoken_compound if compound else _stoken), bygroups(Number.Integer, Punctuation, using(this, state='text'))) ] @@ -473,7 +473,7 @@ def _make_redirect_state(compound, 'text': [ (r'"', String.Double, 'string'), include('variable-or-escape'), - (r'[^"%%^%s%s%s\d)]+|.' % (_nl, _punct, _ws), Text) + (r'[^"%%^%s%s\d)]+|.' % (_nlws, _punct), Text) ], 'variable': [ (r'"', String.Double, 'string'), @@ -494,13 +494,13 @@ def _make_redirect_state(compound, include('follow') ], 'for/f': [ - (r'(")((?:%s|[^"])*?")([%s%s]*)(\))' % (_variable, _nl, _ws), + (r'(")((?:%s|[^"])*?")([%s]*)(\))' % (_variable, _nlws), bygroups(String.Double, using(this, state='string'), Text, Punctuation)), (r'"', String.Double, ('#pop', 'for2', 'string')), - (r"('(?:%%%%|%s|[\w\W])*?')([%s%s]*)(\))" % (_variable, _nl, _ws), + (r"('(?:%%%%|%s|[\w\W])*?')([%s]*)(\))" % (_variable, _nlws), bygroups(using(this, state='sqstring'), Text, Punctuation)), - (r'(`(?:%%%%|%s|[\w\W])*?`)([%s%s]*)(\))' % (_variable, _nl, _ws), + (r'(`(?:%%%%|%s|[\w\W])*?`)([%s]*)(\))' % (_variable, _nlws), bygroups(using(this, state='bqstring'), Text, Punctuation)), include('for2') ], From 6495ac19da3fec5baf52f7281e4fcc8a3271c0e7 Mon Sep 17 00:00:00 2001 From: Kurt McKee Date: Sun, 6 Sep 2020 07:40:17 -0500 Subject: [PATCH 416/709] Overhaul the MySQL lexer (#1527) * Overhaul the MySQL lexer Fixes #975, #1063, #1453 Changes include: Documentation ------------- * Note in the lexer docstring that Oracle MySQL is the target syntax. MariaDB syntax is not a target (though there is significant overlap). Unit tests ---------- * Add 140 unit tests for MySQL. Literals -------- * Hexadecimal/binary/date/time/timestamp literals are supported. * Integer mantissas are supported for scientific notation. * In-string escapes are now tokenized properly. * Support the "unknown" constant. Comments -------- * Optimizer hints are now supported, and keywords are recognized and tokenized as preprocessor instructions. * Remove nested multi-line comment support, which is no longer supported in MySQL. Variables --------- * Support the '@' prefix for variable names. * Lift restrictions on characters in unquoted variable names. (MySQL does not impose a restriction on lead characters.) * Support single/double/backtick-quoted variable names, including escapes. * Support the '@@' prefix for system variable names. * Support '?' as a variable so people can demonstrate prepared statements. Keywords -------- * Keyword / data type / function are now in a separate, auto-updating file. * Support 25 additional data types (including spatial and JSON types). * Support 460 additional MySQL keywords. * Support 372 MySQL functions. Explicit function support resolves a bug that causes non-function items to be treated as functions simply because they have a trailing opening parenthesis. * Support exceptions for the 'SET' keyword, which is both a datatype and a keyword depending on context. Schema object names ------------------- * Support Unicode in MySQL schema object names. * Support parsing of backtick-quoted schema object name escapes. (Escapes do not produce a distinct token type at this time.) Operators --------- * Remove non-operator characters from the list of operators. * Remove non-punctuation characters from the list of punctuation. * Cleanup items based on feedback * Remove an unnecessary optional newline lookahead for single-line comments --- AUTHORS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index 9b0ad00940d..5058c612d68 100644 --- a/AUTHORS +++ b/AUTHORS @@ -138,7 +138,7 @@ Other contributors, listed alphabetically, are: * Stephen McKamey -- Duel/JBST lexer * Brian McKenna -- F# lexer * Charles McLaughlin -- Puppet lexer -* Kurt McKee -- Tera Term macro lexer, PostgreSQL updates +* Kurt McKee -- Tera Term macro lexer, PostgreSQL updates, MySQL overhaul * Lukas Meuser -- BBCode formatter, Lua lexer * Cat Miller -- Pig lexer * Paul Miller -- LiveScript lexer From 1f3819f8e28a8b10471263a4233d40aa2ed24aed Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 11 Sep 2020 15:00:26 +0200 Subject: [PATCH 417/709] Add basic YAML output plugin #2208 Signed-off-by: Philippe Ombredanne --- setup.py | 1 + src/formattedcode/output_yaml.py | 86 ++++++++++++++++++++++++++++++++ 2 files changed, 87 insertions(+) create mode 100644 src/formattedcode/output_yaml.py diff --git a/setup.py b/setup.py index 78736a1a82d..e5c5a54daf9 100644 --- a/setup.py +++ b/setup.py @@ -313,6 +313,7 @@ def read(*names, **kwargs): 'csv = formattedcode.output_csv:CsvOutput', 'jsonlines = formattedcode.output_jsonlines:JsonLinesOutput', 'template = formattedcode.output_html:CustomTemplateOutput', + 'yaml = formattedcode.output_yaml:YamlOutput', ], }, ) diff --git a/src/formattedcode/output_yaml.py b/src/formattedcode/output_yaml.py new file mode 100644 index 00000000000..2d0fb5359c6 --- /dev/null +++ b/src/formattedcode/output_yaml.py @@ -0,0 +1,86 @@ +# +# Copyright (c) nexB Inc. and others. All rights reserved. +# http://nexb.com and https://github.com/nexB/scancode-toolkit/ +# The ScanCode software is licensed under the Apache License version 2.0. +# Data generated with ScanCode require an acknowledgment. +# ScanCode is a trademark of nexB Inc. +# +# You may not use this software except in compliance with the License. +# You may obtain a copy of the License at: http://apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software distributed +# under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +# CONDITIONS OF ANY KIND, either express or implied. See the License for the +# specific language governing permissions and limitations under the License. +# +# When you publish or redistribute any data created with ScanCode or any ScanCode +# derivative work, you must accompany this data with the following acknowledgment: +# +# Generated with ScanCode and provided on an "AS IS" BASIS, WITHOUT WARRANTIES +# OR CONDITIONS OF ANY KIND, either express or implied. No content created from +# ScanCode should be considered or used as legal advice. Consult an Attorney +# for any legal advice. +# ScanCode is a free software code scanning tool from nexB Inc. and others. +# Visit https://github.com/nexB/scancode-toolkit/ for support and download. + +from __future__ import absolute_import +from __future__ import unicode_literals + +import saneyaml +from six import string_types + +from commoncode.system import py2 +from commoncode.system import py3 +from formattedcode import output_json +from plugincode.output import output_impl +from plugincode.output import OutputPlugin +from scancode import CommandLineOption +from scancode import FileOptionType +from scancode import OUTPUT_GROUP + +""" +Output plugin to write scan results as YAML. +""" + +if py2: + mode = 'wb' + eol = b'\n' + +if py3: + mode = 'w' + eol = u'\n' + + +@output_impl +class YamlOutput(OutputPlugin): + + options = [ + CommandLineOption(('--yaml', 'output_yaml',), + type=FileOptionType(mode=mode, lazy=True), + metavar='FILE', + help='Write scan output as YAML to FILE.', + help_group=OUTPUT_GROUP, + sort_order=20), + ] + + def is_enabled(self, output_yaml, **kwargs): + return output_yaml + + def process_codebase(self, codebase, output_yaml, **kwargs): + results = output_json.get_results(codebase, as_list=True, **kwargs) + write_yaml(results, output_file=output_yaml, pretty=False) + + +def write_yaml(results, output_file, **kwargs): + """ + Write `results` to the `output_file` opened file-like object. + """ + close_of = False + try: + if isinstance(output_file, string_types): + output_file = open(output_file, mode) + close_of = True + output_file.write(saneyaml.dump(results, indent=4)) + output_file.write(eol) + finally: + if close_of: + output_file.close() From 283676177f34da1d79e586b5c961d7cee5241ceb Mon Sep 17 00:00:00 2001 From: Ken Date: Wed, 14 Oct 2020 13:18:39 +0800 Subject: [PATCH 418/709] TNTLexer: Don't crash on unexpected EOL. (#1570) * TNTLexer: Don't crash on unexpected EOL Catch IndexErrors in each line and error the rest of the line, leaving whatever tokens were found. * Write and pass tests for Typographic Number Theory pygments/lexers/tnt.py: * Fix indentation on import * Fix: TNTLexer.cur is class-level reference if not initialized in get_tokens_unprocessed, so init it in __init__ too * Fix: Fantasy markers are not allowed as components of other formulas, so have a dedicated check for them in the body of get_tokens_unprocessed which disables the normal formula handling if present * Clarify TNTLexer.lineno docstring * Attempt to discard tokens before an IndexError +tests/test_tnt.py: * Test every method, and test both +ve and -ve matches for most * Lexer fixture is test-level to reinitialize cur clean each time * Don't test actual get_tokens_unprocessed method (besides for fantasy markers) because the text testing is left to examplefiles AUTHORS: + Add myself to credits :) * Add a TNT test just to make sure no crashes --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 5058c612d68..f209a8acba4 100644 --- a/AUTHORS +++ b/AUTHORS @@ -90,6 +90,7 @@ Other contributors, listed alphabetically, are: * Justin Hendrick -- ParaSail lexer * Jordi Gutiérrez Hermoso -- Octave lexer * David Hess, Fish Software, Inc. -- Objective-J lexer +* Ken Hilton -- Typographic Number Theory and Arrow lexers * Varun Hiremath -- Debian control lexer * Rob Hoelz -- Perl 6 lexer * Doug Hogan -- Mscgen lexer From eb49a2a0e196de5cfda19400f8d1da6d55668871 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Wed, 11 Nov 2020 18:40:44 +0100 Subject: [PATCH 419/709] shell: improve docstrings for the "session" type lexers fixes #1599 --- pygments/lexers/shell.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index ce6bf6d2260..713d432111a 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -149,9 +149,10 @@ def get_tokens_unprocessed(self, text): else: yield index, token, value + class ShellSessionBaseLexer(Lexer): """ - Base lexer for simplistic shell sessions. + Base lexer for shell sessions. .. versionadded:: 2.1 """ @@ -217,7 +218,8 @@ def get_tokens_unprocessed(self, text): class BashSessionLexer(ShellSessionBaseLexer): """ - Lexer for simplistic shell sessions. + Lexer for Bash shell sessions, i.e. command lines, including a + prompt, interspersed with output. .. versionadded:: 1.1 """ @@ -546,7 +548,8 @@ def _make_redirect_state(compound, class MSDOSSessionLexer(ShellSessionBaseLexer): """ - Lexer for simplistic MSDOS sessions. + Lexer for MS DOS shell sessions, i.e. command lines, including a + prompt, interspersed with output. .. versionadded:: 2.1 """ @@ -631,7 +634,8 @@ class TcshLexer(RegexLexer): class TcshSessionLexer(ShellSessionBaseLexer): """ - Lexer for Tcsh sessions. + Lexer for Tcsh sessions, i.e. command lines, including a + prompt, interspersed with output. .. versionadded:: 2.1 """ @@ -762,7 +766,8 @@ class PowerShellLexer(RegexLexer): class PowerShellSessionLexer(ShellSessionBaseLexer): """ - Lexer for simplistic Windows PowerShell sessions. + Lexer for PowerShell sessions, i.e. command lines, including a + prompt, interspersed with output. .. versionadded:: 2.1 """ From 06b764fd09b951a51446825a04856a90df63fb29 Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Fri, 20 Nov 2020 13:09:37 -0800 Subject: [PATCH 420/709] Add extra_data to BasePackage again #1532 Signed-off-by: Jono Yang --- src/packagedcode/models.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/packagedcode/models.py b/src/packagedcode/models.py index 716084270ed..0719d02f446 100644 --- a/src/packagedcode/models.py +++ b/src/packagedcode/models.py @@ -232,6 +232,10 @@ class BasePackage(BaseModel): help='Optional extra subpath inside a package and relative to the root ' 'of this package') + extra_data = Mapping( + label='extra data', + help='A Mapping where arbitrary data that is related to the Package can be stored ') + def __attrs_post_init__(self, *args, **kwargs): if not self.type and hasattr(self, 'default_type'): self.type = self.default_type From 45d2fb61d5619443228690bd6a8cc547353dcca5 Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Fri, 20 Nov 2020 13:25:31 -0800 Subject: [PATCH 421/709] Save about_resource to Package #2328 * Get about_resource from Package in AboutPackage.get_package_root() Signed-off-by: Jono Yang --- src/packagedcode/about.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/packagedcode/about.py b/src/packagedcode/about.py index 620511a8837..ac1893e8833 100644 --- a/src/packagedcode/about.py +++ b/src/packagedcode/about.py @@ -59,10 +59,7 @@ def recognize(cls, location): @classmethod def get_package_root(cls, manifest_resource, codebase): - # FIXME: this should have been already stored with the Package itself as extra_data - with io.open(manifest_resource.location, encoding='utf-8') as loc: - package_data = saneyaml.load(loc.read()) - about_resource = package_data.get('about_resource') + about_resource = cls.extra_data.get('about_resource') if about_resource: manifest_resource_parent = manifest_resource.parent(codebase) for child in manifest_resource_parent.children(codebase): @@ -109,7 +106,7 @@ def build_package(package_data): owner = repr(owner) parties = [models.Party(type=models.party_person, name=owner, role='owner')] - return AboutPackage( + about_package = AboutPackage( type='about', name=name, version=version, @@ -119,3 +116,5 @@ def build_package(package_data): homepage_url=homepage_url, download_url=download_url, ) + about_package.extra_data['about_resource'] = package_data.get('about_resource') + return about_package From c994e56f26b2efa60b491200d8cc963040583eda Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Fri, 20 Nov 2020 15:40:02 -0800 Subject: [PATCH 422/709] Set AboutPackage.get_package_root to instance method * Instantiate packages in set_packages_root * Move extra_data field to Package Signed-off-by: Jono Yang --- src/packagedcode/about.py | 5 ++--- src/packagedcode/models.py | 8 ++++---- src/packagedcode/plugin_package.py | 6 +++--- tests/packagedcode/test_haxe.py | 8 ++++---- 4 files changed, 13 insertions(+), 14 deletions(-) diff --git a/src/packagedcode/about.py b/src/packagedcode/about.py index ac1893e8833..b70907500ed 100644 --- a/src/packagedcode/about.py +++ b/src/packagedcode/about.py @@ -57,9 +57,8 @@ class AboutPackage(models.Package): def recognize(cls, location): yield parse(location) - @classmethod - def get_package_root(cls, manifest_resource, codebase): - about_resource = cls.extra_data.get('about_resource') + def get_package_root(self, manifest_resource, codebase): + about_resource = self.extra_data.get('about_resource') if about_resource: manifest_resource_parent = manifest_resource.parent(codebase) for child in manifest_resource_parent.children(codebase): diff --git a/src/packagedcode/models.py b/src/packagedcode/models.py index 0719d02f446..22f6704daca 100644 --- a/src/packagedcode/models.py +++ b/src/packagedcode/models.py @@ -232,10 +232,6 @@ class BasePackage(BaseModel): help='Optional extra subpath inside a package and relative to the root ' 'of this package') - extra_data = Mapping( - label='extra data', - help='A Mapping where arbitrary data that is related to the Package can be stored ') - def __attrs_post_init__(self, *args, **kwargs): if not self.type and hasattr(self, 'default_type'): self.type = self.default_type @@ -476,6 +472,10 @@ class Package(BasePackage): 'this package. For instance an SRPM is the "source package" for a ' 'binary RPM.') + extra_data = Mapping( + label='extra data', + help='A Mapping where arbitrary data that is related to the Package can be stored ') + def __attrs_post_init__(self, *args, **kwargs): if not self.type and hasattr(self, 'default_type'): self.type = self.default_type diff --git a/src/packagedcode/plugin_package.py b/src/packagedcode/plugin_package.py index 7a8e044ecba..e5a07d032af 100644 --- a/src/packagedcode/plugin_package.py +++ b/src/packagedcode/plugin_package.py @@ -39,7 +39,7 @@ from commoncode.cliutils import DOC_GROUP from commoncode.cliutils import SCAN_GROUP -from packagedcode import get_package_class +from packagedcode import get_package_instance from packagedcode import PACKAGE_TYPES @@ -134,8 +134,8 @@ def set_packages_root(resource, codebase): modified = False for package in packages: - package_class = get_package_class(package) - package_root = package_class.get_package_root(resource, codebase) + package_instance = get_package_instance(package) + package_root = package_instance.get_package_root(resource, codebase) if not package_root: # this can happen if we scan a single resource that is a package package continue diff --git a/tests/packagedcode/test_haxe.py b/tests/packagedcode/test_haxe.py index 4b2c3765715..c4c35924a58 100644 --- a/tests/packagedcode/test_haxe.py +++ b/tests/packagedcode/test_haxe.py @@ -40,25 +40,25 @@ def test_parse_basic(self): test_file = self.get_test_loc('haxe/basic/haxelib.json') expected_loc = self.get_test_loc('haxe/basic/haxelib.json.expected') package = haxe.parse(test_file) - self.check_package(package, expected_loc) + self.check_package(package, expected_loc, regen=False) def test_parse_basic2(self): test_file = self.get_test_loc('haxe/basic2/haxelib.json') expected_loc = self.get_test_loc('haxe/basic2/haxelib.json.expected') package = haxe.parse(test_file) - self.check_package(package, expected_loc) + self.check_package(package, expected_loc, regen=False) def test_parse_deps(self): test_file = self.get_test_loc('haxe/deps/haxelib.json') expected_loc = self.get_test_loc('haxe/deps/haxelib.json.expected') package = haxe.parse(test_file) - self.check_package(package, expected_loc) + self.check_package(package, expected_loc, regen=False) def test_parse_tags(self): test_file = self.get_test_loc('haxe/tags/haxelib.json') expected_loc = self.get_test_loc('haxe/tags/haxelib.json.expected') package = haxe.parse(test_file) - self.check_package(package, expected_loc) + self.check_package(package, expected_loc, regen=False) def test_root_dir(self): test_file = self.get_test_loc('haxe/tags/haxelib.json') From 31e3fee011dfb7fb671e9cdeb0ab7fc23f6c7a04 Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Fri, 20 Nov 2020 16:03:35 -0800 Subject: [PATCH 423/709] Update test results #1532 Signed-off-by: Jono Yang --- .../data/about/apipkg.ABOUT-expected | 3 + .../data/about/appdirs.ABOUT-expected | 3 + .../full-installed/installed-expected.json | 14 + .../single-installed/installed-expected.json | 1 + .../small-installed/installed-expected.json | 14 + .../data/bower/author-objects/expected.json | 1 + .../data/bower/basic/expected.json | 1 + .../data/bower/list-of-licenses/expected.json | 1 + .../data/build/bazel/end2end-expected.json | 2 + .../data/build/buck/end2end-expected.json | 2 + .../cargo_lock/sample1/output.expected.json | 1 + .../cargo_lock/sample2/output.expected.json | 1 + .../cargo_lock/sample3/output.expected.json | 3 +- .../cargo_lock/sample4/output.expected.json | 1 + .../cargo_lock/sample5/output.expected.json | 1 + .../cargo/cargo_toml/clap/Cargo.toml.expected | 1 + .../cargo_toml/clippy/Cargo.toml.expected | 1 + .../cargo_toml/mdbook/Cargo.toml.expected | 1 + .../cargo_toml/rustfmt/Cargo.toml.expected | 1 + .../cargo_toml/rustup/Cargo.toml.expected | 1 + .../data/chef/basic/metadata.json.expected | 1 + .../data/chef/basic/metadata.rb.expected | 1 + .../chef/basic/test_package.json.expected | 1 + ...iew_url_and_bug_tracking_url.json.expected | 1 + .../test_package_dependencies.json.expected | 1 + .../basic/test_package_parties.json.expected | 1 + .../chef/dependencies/metadata.rb.expected | 1 + .../podspec/BadgeHub.podspec.expected.json | 1 + .../LoadingShimmer.podspec.expected.json | 1 + .../podspec/Starscream.podspec.expected.json | 1 + .../podspec/SwiftLib.podspec.expected.json | 1 + .../podspec/nanopb.podspec.expected.json | 1 + .../data/conda/meta.yaml.expected.json | 1 + .../data/cran/codetools/package.json.expected | 1 + .../data/cran/geometry/package.json.expected | 1 + .../data/debian/basic-rootfs-expected.json | 2 + .../basic-rootfs-with-licenses-expected.json | 2 + .../data/debian/basic/status.expected | 6 + .../data/debian/mini-status/status.expected | 1 + .../debian/ubuntu-var-lib-dpkg/expected.json | 4 + .../freebsd/basic/+COMPACT_MANIFEST.expected | 1 + .../freebsd/basic2/+COMPACT_MANIFEST.expected | 1 + .../dual_license/+COMPACT_MANIFEST.expected | 1 + .../dual_license2/+COMPACT_MANIFEST.expected | 1 + .../multi_license/+COMPACT_MANIFEST.expected | 1 + .../no_licenses/+COMPACT_MANIFEST.expected | 1 + .../golang/gomod/kingpin/output.expected.json | 1 + .../opencensus-service/output.expected.json | 101 +- .../gomod/participle/output.expected.json | 1 + .../golang/gomod/sample/output.expected.json | 11 +- .../golang/gomod/uap-go/output.expected.json | 1 + .../gomod/user_agent/output.expected.json | 1 + .../golang/gosum/sample1/output.expected.json | 1 + .../golang/gosum/sample2/output.expected.json | 1 + .../golang/gosum/sample3/output.expected.json | 1 + .../golang/gosum/sample4/output.expected.json | 1 + .../golang/gosum/sample5/output.expected.json | 1 + .../golang/gosum/sample6/output.expected.json | 1 + .../data/haxe/basic/haxelib.json.expected | 1 + .../data/haxe/basic2/haxelib.json.expected | 1 + .../data/haxe/deps/haxelib.json.expected | 1 + .../data/haxe/tags/haxelib.json.expected | 1 + .../activemq-camel-pom.xml.package.json | 1 + .../data/maven2/adarwin-1.0.pom.package.json | 1 + .../maven2/ant-jai-1.7.0.pom.package.json | 1 + .../maven2/ant-jsch-1.7.0.pom.package.json | 1 + .../maven2/aopalliance-1.0.pom.package.json | 1 + .../data/maven2/bcel-5.1.pom.package.json | 1 + .../classworlds-1.1-alpha-2.pom.package.json | 1 + .../commons-fileupload-1.0.pom.package.json | 1 + .../commons-validator-1.2.0.pom.package.json | 1 + .../data/maven2/dbwebx_pom.xml.package.json | 1 + .../maven2/easyconf-0.9.0.pom.package.json | 1 + ...ndbugs-maven-plugin-1.1.1.pom.package.json | 1 + .../data/maven2/fna2_pom.xml.package.json | 1 + .../maven2/fna_pom_project.xml.package.json | 1 + .../data/maven2/foo-pom.xml.package.json | 1 + .../data/maven2/gero_pom.xml.package.json | 1 + .../data/maven2/idega_pom.xml.package.json | 1 + .../maven2/jrecordbind-2.3.4.pom.package.json | 1 + .../data/maven2/log4j-pom.xml.package.json | 1 + .../maven2/logback-access.pom.package.json | 1 + ...ractivity-api-1.0-alpha-4.pom.package.json | 1 + .../data/maven2/pom.xml.package.json | 1 + .../data/maven2/proper_pom.xml.package.json | 1 + .../data/maven2/rel_pom.xml.package.json | 1 + .../data/maven2/sea_pom.xml.package.json | 1 + .../data/maven2/specs-1.3.pom.package.json | 1 + .../data/maven2/spring-2.5.4.pom.package.json | 1 + .../maven2/spring-orm-2.5.3.pom.package.json | 1 + .../spring-webmvc-2.5.3.pom.package.json | 1 + ...tartup-trigger-plugin-0.1.pom.package.json | 1 + .../data/maven2/uni_pom.xml.package.json | 1 + .../data/maven2/urwerky_pom.xml.package.json | 1 + .../data/maven2/webre_pom.xml.package.json | 1 + ...format-maven-plugin-3.0.6.pom.package.json | 1 + .../data/models/full-expected.json | 1 + .../data/models/simple-expected.json | 1 + .../npm/as_installed/package.json.expected | 1 + .../authors_list_dicts/package.json.expected | 1 + .../package.json.expected | 1 + .../package.json.expected | 1 + .../data/npm/basic/package.json.expected | 1 + .../npm/bundledDeps/package.json.expected | 1 + .../data/npm/casepath/package.json.expected | 1 + .../data/npm/chartist/package.json.expected | 1 + .../data/npm/dist/package.json.expected | 1 + .../npm/double_license/package.json.expected | 1 + .../express-jwt-3.4.0/package.json.expected | 1 + .../data/npm/from_npmjs/package.json.expected | 1 + .../npm/from_tarball/package.json.expected | 1 + .../homepage-as-list/package.json.expected | 1 + .../npm/invalid-dep/package.json.expected | 1 + .../data/npm/keywords/package.json.expected | 1 + .../legacy_license_dict/package.json.expected | 1 + .../data/npm/mime-1.3.4/package.json.expected | 1 + .../data/npm/nodep/package.json.expected | 1 + .../npm-shrinkwrap.json-expected | 429 + .../npm/old_registry/package.json.expected | 1 + .../package-lock/package-lock.json-expected | 28 + .../data/npm/repo_url/package.json.expected | 1 + .../data/npm/scoped1/package.json.expected | 1 + .../data/npm/scoped2/package.json.expected | 1 + .../data/npm/sequelize/package.json.expected | 1 + .../data/npm/uri_vcs/package.json.expected | 1 + .../data/npm/urls_dict/package.json.expected | 1 + .../utils-merge-1.0.0/package.json.expected | 1 + .../data/npm/yarn-lock/yarn.lock-expected | 53255 ++++++++-------- .../nuget/Castle.Core.nuspec.json.expected | 1 + .../EntityFramework.nuspec.json.expected | 1 + .../Microsoft.AspNet.Mvc.nuspec.json.expected | 1 + .../Microsoft.Net.Http.nuspec.json.expected | 1 + .../data/nuget/bootstrap.nuspec.json.expected | 1 + .../jQuery.UI.Combined.nuspec.json.expected | 1 + .../data/opam/sample1/output.opam.expected | 3 +- .../data/opam/sample2/output.opam.expected | 3 +- .../data/opam/sample3/output.opam.expected | 3 +- .../data/opam/sample4/output.opam.expected | 3 +- .../data/opam/sample5/output.opam.expected | 3 +- .../data/opam/sample6/output.opam.expected | 1 + .../data/opam/sample7/output.opam.expected | 1 + .../data/opam/sample8/output.opam.expected | 1 + .../a-timer/composer.json.expected | 1 + .../phpcomposer/composer.lock-expected.json | 31 + .../phpcomposer/fake/composer.json.expected | 1 + .../phpcomposer/fake2/composer.json.expected | 1 + .../framework/composer.json.expected | 1 + .../phpcomposer/modern/composer.json.expected | 1 + .../phpcomposer/slim/composer.json.expected | 1 + .../data/plugin/about-package-expected.json | 6 + .../data/plugin/bower-package-expected.json | 1 + .../data/plugin/cargo-package-expected.json | 1 + .../data/plugin/chef-package-expected.json | 1 + .../data/plugin/conda-package-expected.json | 1 + .../data/plugin/freebsd-package-expected.json | 1 + .../data/plugin/haxe-package-expected.json | 1 + .../data/plugin/maven-package-expected.json | 20 + .../data/plugin/npm-package-expected.json | 1 + .../data/plugin/nuget-package-expected.json | 1 + .../data/plugin/opam-package-expected.json | 3 +- .../plugin/phpcomposer-package-expected.json | 1 + .../data/plugin/python-package-expected.json | 4 + .../data/plugin/rpm-package-expected.json | 1 + .../plugin/rubygems-package-expected.json | 1 + .../pipfile.lock/sample1/output.expected.json | 3 +- .../pipfile.lock/sample2/output.expected.json | 1 + .../pipfile.lock/sample3/output.expected.json | 1 + .../pipfile.lock/sample4/output.expected.json | 1 + .../pipfile.lock/sample5/output.expected.json | 1 + .../sample1/output.expected.json | 1 + .../sample10/output.expected.json | 1 + .../sample11/output.expected.json | 1 + .../sample13/output.expected.json | 1 + .../sample14/output.expected.json | 1 + .../sample15/output.expected.json | 1 + .../sample16/output.expected.json | 1 + .../sample17/output.expected.json | 1 + .../sample18/output.expected.json | 13 +- .../sample19/output.expected.json | 1 + .../sample2/output.expected.json | 1 + .../sample20/output.expected.json | 1 + .../sample21/output.expected.json | 1 + .../sample3/output.expected.json | 1 + .../sample4/output.expected.json | 1 + .../sample5/output.expected.json | 1 + .../sample6/output.expected.json | 1 + .../sample7/output.expected.json | 1 + .../sample8/output.expected.json | 1 + .../sample9/output.expected.json | 1 + .../pypi/setup.py/arpy_setup.py-expected.json | 1 + .../boolean2_py_setup.py-expected.json | 3 +- .../container_check_setup.py-expected.json | 1 + .../setup.py/fb303_py_setup.py-expected.json | 1 + .../setup.py/frell_src_setup.py-expected.json | 1 + .../pypi/setup.py/gyp_setup.py-expected.json | 1 + .../setup.py/interlap_setup.py-expected.json | 1 + .../pypi/setup.py/mb_setup.py-expected.json | 1 + .../pypi/setup.py/ntfs_setup.py-expected.json | 1 + .../setup.py/nvchecker_setup.py-expected.json | 1 + ..._agents_common_code_setup.py-expected.json | 1 + .../packageurl_python_setup.py-expected.json | 1 + .../pipdeptree_setup.py-expected.json | 1 + .../setup.py/pydep_setup.py-expected.json | 1 + .../setup.py/pyrpm_2_setup.py-expected.json | 1 + ...python_publicsuffix_setup.py-expected.json | 1 + ...ology_py_libversion_setup.py-expected.json | 1 + .../setup.py/saneyaml_setup.py-expected.json | 1 + .../data/pypi/setup.py/setup.py-expected.json | 1 + .../setuppycheck_setup.py-expected.json | 1 + .../setup.py/url_py_setup.py-expected.json | 1 + .../pypi/setup.py/venv_setup.py-expected.json | 1 + .../setup.py/xmltodict_setup.py-expected.json | 1 + .../unpackage_source_parser-expected.json | 1 + .../data/pypi/wheel/parse-wheel-expected.json | 1 + .../data/rubygems/gem/a_okay-0.1.0.gem.json | 73 +- .../gem/action_tracker-1.0.2.gem.json | 201 +- .../gem/archive-tar-minitar-0.5.2.gem.json | 73 +- .../rubygems/gem/blankslate-3.1.3.gem.json | 115 +- .../data/rubygems/gem/m2r-2.1.0.gem.json | 257 +- ...dea-address_standardization-0.4.1.gem.json | 107 +- ...mysmallidea-mad_mimi_mailer-0.0.9.gem.json | 73 +- .../new/dependabot-omnibus-0.87.15.gem.json | 203 +- .../gem/new/hiredis-0.6.3-java.gem.json | 107 +- .../rubygems/gem/new/int_time-0.0.2.gem.json | 73 +- .../gem/new/jaro_winkler-1.5.1-java.gem.json | 119 +- .../rubygems/gem/new/rubocop-0.62.0.gem.json | 199 +- .../rubygems/gem/ng-rails-csrf-0.1.0.gem.json | 73 +- .../data/rubygems/gem/small-0.2.gem.json | 73 +- .../rubygems/gem/small_wonder-0.1.10.gem.json | 203 +- .../gem/sprockets-vendor_gems-0.1.3.gem.json | 131 +- .../gemfile-lock/Gemfile.lock.expected | 65 + ...ress_standardization.gemspec.expected.json | 1 + .../gemspec/arel.gemspec.expected.json | 1 + .../gemspec/cat.gemspec.expected.json | 195 +- .../gemspec/github.gemspec.expected.json | 269 +- .../gemspec/mecab-ruby.gemspec.expected.json | 97 +- .../rubygems/gemspec/oj.gemspec.expected.json | 163 +- .../gemspec/rubocop.gemspec.expected.json | 271 +- .../with_variables.gemspec.expected.json | 243 +- ...eLibrary.Caching.dll.package-expected.json | 1 + .../Moq.Silverlight.dll.package-expected.json | 1 + .../_ctypes_test.pyd.package-expected.json | 1 + .../win_pe/euc-jp.so.package-expected.json | 1 + .../win_pe/file.exe.package-expected.json | 1 + .../libiconv2.dll.package-expected.json | 1 + .../win_pe/libintl3.dll.package-expected.json | 1 + .../win_pe/tre4.dll.package-expected.json | 1 + .../win_pe/zlib1.dll.package-expected.json | 1 + tests/packagedcode/test_package_models.py | 1 + tests/packagedcode/test_rpm.py | 1 + .../data/composer/composer.expected.json | 1 + ...-2.4-0.b2.rhfc1.dag.i386.rpm.expected.json | 1 + .../component-package-build-expected.json | 3 + .../component-package-expected.json | 2 + ...t-counted-in-license-holders-expected.json | 2 + .../package-fileset-expected.json | 2 + .../package-manifest-expected.json | 2 + 257 files changed, 29474 insertions(+), 28097 deletions(-) diff --git a/tests/packagedcode/data/about/apipkg.ABOUT-expected b/tests/packagedcode/data/about/apipkg.ABOUT-expected index 6b236add96f..5d298682201 100644 --- a/tests/packagedcode/data/about/apipkg.ABOUT-expected +++ b/tests/packagedcode/data/about/apipkg.ABOUT-expected @@ -36,6 +36,9 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": { + "about_resource": "apipkg-1.4-py2.py3-none-any.whl" + }, "purl": "pkg:about/apipkg@1.4", "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/about/appdirs.ABOUT-expected b/tests/packagedcode/data/about/appdirs.ABOUT-expected index 4a9ab7bd771..6e647bf4808 100644 --- a/tests/packagedcode/data/about/appdirs.ABOUT-expected +++ b/tests/packagedcode/data/about/appdirs.ABOUT-expected @@ -36,6 +36,9 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": { + "about_resource": "appdirs-1.4.3-py2.py3-none-any.whl" + }, "purl": "pkg:about/appdirs@1.4.3", "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/alpine/full-installed/installed-expected.json b/tests/packagedcode/data/alpine/full-installed/installed-expected.json index b182085643b..4a6547f33ac 100644 --- a/tests/packagedcode/data/alpine/full-installed/installed-expected.json +++ b/tests/packagedcode/data/alpine/full-installed/installed-expected.json @@ -41,6 +41,7 @@ "source_packages": [ "pkg:alpine/musl@1.1.24-r8" ], + "extra_data": {}, "installed_files": [ { "path": "lib/ld-musl-x86_64.so.1", @@ -104,6 +105,7 @@ "source_packages": [ "pkg:alpine/busybox@1.31.1-r16" ], + "extra_data": {}, "installed_files": [ { "path": "bin/busybox", @@ -202,6 +204,7 @@ "source_packages": [ "pkg:alpine/alpine-baselayout@3.2.0-r6" ], + "extra_data": {}, "installed_files": [ { "path": "etc/fstab", @@ -440,6 +443,7 @@ "source_packages": [ "pkg:alpine/alpine-keys@2.2-r0" ], + "extra_data": {}, "installed_files": [ { "path": "etc/apk/keys/alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub", @@ -629,6 +633,7 @@ "source_packages": [ "pkg:alpine/openssl@1.1.1g-r0" ], + "extra_data": {}, "installed_files": [ { "path": "etc/ssl/ct_log_list.cnf", @@ -762,6 +767,7 @@ "source_packages": [ "pkg:alpine/openssl@1.1.1g-r0" ], + "extra_data": {}, "installed_files": [ { "path": "lib/libssl.so.1.1", @@ -825,6 +831,7 @@ "source_packages": [ "pkg:alpine/ca-certificates@20191127-r2" ], + "extra_data": {}, "installed_files": [ { "path": "etc/ssl/cert.pem", @@ -889,6 +896,7 @@ "source_packages": [ "pkg:alpine/libtls-standalone@2.9.1-r1" ], + "extra_data": {}, "installed_files": [ { "path": "usr/lib/libtls-standalone.so.1", @@ -952,6 +960,7 @@ "source_packages": [ "pkg:alpine/busybox@1.31.1-r16" ], + "extra_data": {}, "installed_files": [ { "path": "usr/bin/ssl_client", @@ -1008,6 +1017,7 @@ "source_packages": [ "pkg:alpine/zlib@1.2.11-r3" ], + "extra_data": {}, "installed_files": [ { "path": "lib/libz.so.1", @@ -1071,6 +1081,7 @@ "source_packages": [ "pkg:alpine/apk-tools@2.10.5-r1" ], + "extra_data": {}, "installed_files": [ { "path": "sbin/apk", @@ -1127,6 +1138,7 @@ "source_packages": [ "pkg:alpine/pax-utils@1.2.6-r0" ], + "extra_data": {}, "installed_files": [ { "path": "usr/bin/scanelf", @@ -1192,6 +1204,7 @@ "source_packages": [ "pkg:alpine/musl@1.1.24-r8" ], + "extra_data": {}, "installed_files": [ { "path": "sbin/ldconfig", @@ -1285,6 +1298,7 @@ "source_packages": [ "pkg:alpine/libc-dev@0.7.2-r3" ], + "extra_data": {}, "installed_files": [], "purl": "pkg:alpine/libc-utils@0.7.2-r3?arch=x86_64", "repository_homepage_url": null, diff --git a/tests/packagedcode/data/alpine/single-installed/installed-expected.json b/tests/packagedcode/data/alpine/single-installed/installed-expected.json index c4d44b6473c..c9c13f33263 100644 --- a/tests/packagedcode/data/alpine/single-installed/installed-expected.json +++ b/tests/packagedcode/data/alpine/single-installed/installed-expected.json @@ -41,6 +41,7 @@ "source_packages": [ "pkg:alpine/busybox@1.31.1-r9" ], + "extra_data": {}, "installed_files": [ { "path": "bin/busybox", diff --git a/tests/packagedcode/data/alpine/small-installed/installed-expected.json b/tests/packagedcode/data/alpine/small-installed/installed-expected.json index 08395d0654a..9bb3402a52b 100644 --- a/tests/packagedcode/data/alpine/small-installed/installed-expected.json +++ b/tests/packagedcode/data/alpine/small-installed/installed-expected.json @@ -41,6 +41,7 @@ "source_packages": [ "pkg:alpine/musl@1.1.24-r0" ], + "extra_data": {}, "installed_files": [ { "path": "lib/libc.musl-x86_64.so.1", @@ -104,6 +105,7 @@ "source_packages": [ "pkg:alpine/busybox@1.31.1-r9" ], + "extra_data": {}, "installed_files": [ { "path": "bin/busybox", @@ -202,6 +204,7 @@ "source_packages": [ "pkg:alpine/alpine-baselayout@3.2.0-r3" ], + "extra_data": {}, "installed_files": [ { "path": "etc/hosts", @@ -440,6 +443,7 @@ "source_packages": [ "pkg:alpine/alpine-keys@2.1-r2" ], + "extra_data": {}, "installed_files": [ { "path": "etc/apk/keys/alpine-devel@lists.alpinelinux.org-5243ef4b.rsa.pub", @@ -615,6 +619,7 @@ "source_packages": [ "pkg:alpine/openssl@1.1.1d-r3" ], + "extra_data": {}, "installed_files": [ { "path": "etc/ssl/openssl.cnf.dist", @@ -748,6 +753,7 @@ "source_packages": [ "pkg:alpine/openssl@1.1.1d-r3" ], + "extra_data": {}, "installed_files": [ { "path": "lib/libssl.so.1.1", @@ -811,6 +817,7 @@ "source_packages": [ "pkg:alpine/ca-certificates@20191127-r0" ], + "extra_data": {}, "installed_files": [ { "path": "etc/ssl/cert.pem", @@ -868,6 +875,7 @@ "source_packages": [ "pkg:alpine/libtls-standalone@2.9.1-r0" ], + "extra_data": {}, "installed_files": [ { "path": "usr/lib/libtls-standalone.so.1.0.0", @@ -931,6 +939,7 @@ "source_packages": [ "pkg:alpine/busybox@1.31.1-r9" ], + "extra_data": {}, "installed_files": [ { "path": "usr/bin/ssl_client", @@ -987,6 +996,7 @@ "source_packages": [ "pkg:alpine/zlib@1.2.11-r3" ], + "extra_data": {}, "installed_files": [ { "path": "lib/libz.so.1.2.11", @@ -1050,6 +1060,7 @@ "source_packages": [ "pkg:alpine/apk-tools@2.10.4-r3" ], + "extra_data": {}, "installed_files": [ { "path": "sbin/apk", @@ -1106,6 +1117,7 @@ "source_packages": [ "pkg:alpine/pax-utils@1.2.4-r0" ], + "extra_data": {}, "installed_files": [ { "path": "usr/bin/scanelf", @@ -1171,6 +1183,7 @@ "source_packages": [ "pkg:alpine/musl@1.1.24-r0" ], + "extra_data": {}, "installed_files": [ { "path": "sbin/ldconfig", @@ -1264,6 +1277,7 @@ "source_packages": [ "pkg:alpine/libc-dev@0.7.2-r0" ], + "extra_data": {}, "installed_files": [], "purl": "pkg:alpine/libc-utils@0.7.2-r0?arch=x86_64", "repository_homepage_url": null, diff --git a/tests/packagedcode/data/bower/author-objects/expected.json b/tests/packagedcode/data/bower/author-objects/expected.json index 6443974711d..63a87393e61 100644 --- a/tests/packagedcode/data/bower/author-objects/expected.json +++ b/tests/packagedcode/data/bower/author-objects/expected.json @@ -76,6 +76,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:bower/John%20Doe", "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/bower/basic/expected.json b/tests/packagedcode/data/bower/basic/expected.json index 412179601c6..c438c92442d 100644 --- a/tests/packagedcode/data/bower/basic/expected.json +++ b/tests/packagedcode/data/bower/basic/expected.json @@ -67,6 +67,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:bower/blue-leaf", "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/bower/list-of-licenses/expected.json b/tests/packagedcode/data/bower/list-of-licenses/expected.json index f660b7f9a63..0f4993ec739 100644 --- a/tests/packagedcode/data/bower/list-of-licenses/expected.json +++ b/tests/packagedcode/data/bower/list-of-licenses/expected.json @@ -69,6 +69,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:bower/blue-leaf", "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/build/bazel/end2end-expected.json b/tests/packagedcode/data/build/bazel/end2end-expected.json index 6da57ec0327..001d2d04d83 100644 --- a/tests/packagedcode/data/build/bazel/end2end-expected.json +++ b/tests/packagedcode/data/build/bazel/end2end-expected.json @@ -56,6 +56,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:bazel/end2end", "repository_homepage_url": null, "repository_download_url": null, @@ -128,6 +129,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:bazel/subdir2", "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/build/buck/end2end-expected.json b/tests/packagedcode/data/build/buck/end2end-expected.json index 8ca17da1c9c..1da52a35b83 100644 --- a/tests/packagedcode/data/build/buck/end2end-expected.json +++ b/tests/packagedcode/data/build/buck/end2end-expected.json @@ -56,6 +56,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:buck/end2end", "repository_homepage_url": null, "repository_download_url": null, @@ -130,6 +131,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:buck/bin", "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/cargo/cargo_lock/sample1/output.expected.json b/tests/packagedcode/data/cargo/cargo_lock/sample1/output.expected.json index e5e22684ee3..7d2252251b8 100644 --- a/tests/packagedcode/data/cargo/cargo_lock/sample1/output.expected.json +++ b/tests/packagedcode/data/cargo/cargo_lock/sample1/output.expected.json @@ -53,6 +53,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/cargo/cargo_lock/sample2/output.expected.json b/tests/packagedcode/data/cargo/cargo_lock/sample2/output.expected.json index 35aff5636ca..b66339e7acd 100644 --- a/tests/packagedcode/data/cargo/cargo_lock/sample2/output.expected.json +++ b/tests/packagedcode/data/cargo/cargo_lock/sample2/output.expected.json @@ -45,6 +45,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/cargo/cargo_lock/sample3/output.expected.json b/tests/packagedcode/data/cargo/cargo_lock/sample3/output.expected.json index 6b55be29b65..d00def405fc 100644 --- a/tests/packagedcode/data/cargo/cargo_lock/sample3/output.expected.json +++ b/tests/packagedcode/data/cargo/cargo_lock/sample3/output.expected.json @@ -41,10 +41,11 @@ "is_runtime": true, "is_optional": false, "is_resolved": true - } + } ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/cargo/cargo_lock/sample4/output.expected.json b/tests/packagedcode/data/cargo/cargo_lock/sample4/output.expected.json index 4f747a42334..d7247c18d38 100644 --- a/tests/packagedcode/data/cargo/cargo_lock/sample4/output.expected.json +++ b/tests/packagedcode/data/cargo/cargo_lock/sample4/output.expected.json @@ -61,6 +61,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/cargo/cargo_lock/sample5/output.expected.json b/tests/packagedcode/data/cargo/cargo_lock/sample5/output.expected.json index 64f1f3af76f..da310d75218 100644 --- a/tests/packagedcode/data/cargo/cargo_lock/sample5/output.expected.json +++ b/tests/packagedcode/data/cargo/cargo_lock/sample5/output.expected.json @@ -61,6 +61,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/cargo/cargo_toml/clap/Cargo.toml.expected b/tests/packagedcode/data/cargo/cargo_toml/clap/Cargo.toml.expected index b88938e9ce9..13ff40424e0 100644 --- a/tests/packagedcode/data/cargo/cargo_toml/clap/Cargo.toml.expected +++ b/tests/packagedcode/data/cargo/cargo_toml/clap/Cargo.toml.expected @@ -36,6 +36,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:cargo/clap@2.32.0", "repository_homepage_url": "https://crates.io/crates/clap", "repository_download_url": "https://crates.io/api/v1/crates/clap/2.32.0/download", diff --git a/tests/packagedcode/data/cargo/cargo_toml/clippy/Cargo.toml.expected b/tests/packagedcode/data/cargo/cargo_toml/clippy/Cargo.toml.expected index c397788bfc3..b474fdc11f0 100644 --- a/tests/packagedcode/data/cargo/cargo_toml/clippy/Cargo.toml.expected +++ b/tests/packagedcode/data/cargo/cargo_toml/clippy/Cargo.toml.expected @@ -64,6 +64,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:cargo/clippy@0.0.212", "repository_homepage_url": "https://crates.io/crates/clippy", "repository_download_url": "https://crates.io/api/v1/crates/clippy/0.0.212/download", diff --git a/tests/packagedcode/data/cargo/cargo_toml/mdbook/Cargo.toml.expected b/tests/packagedcode/data/cargo/cargo_toml/mdbook/Cargo.toml.expected index 66bc4f38d88..4280d06b048 100644 --- a/tests/packagedcode/data/cargo/cargo_toml/mdbook/Cargo.toml.expected +++ b/tests/packagedcode/data/cargo/cargo_toml/mdbook/Cargo.toml.expected @@ -50,6 +50,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:cargo/mdbook@0.2.4-alpha.0", "repository_homepage_url": "https://crates.io/crates/mdbook", "repository_download_url": "https://crates.io/api/v1/crates/mdbook/0.2.4-alpha.0/download", diff --git a/tests/packagedcode/data/cargo/cargo_toml/rustfmt/Cargo.toml.expected b/tests/packagedcode/data/cargo/cargo_toml/rustfmt/Cargo.toml.expected index e942f737299..6ea061d82c9 100644 --- a/tests/packagedcode/data/cargo/cargo_toml/rustfmt/Cargo.toml.expected +++ b/tests/packagedcode/data/cargo/cargo_toml/rustfmt/Cargo.toml.expected @@ -43,6 +43,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:cargo/rustfmt-nightly@1.0.3", "repository_homepage_url": "https://crates.io/crates/rustfmt-nightly", "repository_download_url": "https://crates.io/api/v1/crates/rustfmt-nightly/1.0.3/download", diff --git a/tests/packagedcode/data/cargo/cargo_toml/rustup/Cargo.toml.expected b/tests/packagedcode/data/cargo/cargo_toml/rustup/Cargo.toml.expected index dc9e1679f72..5f52815b8b8 100644 --- a/tests/packagedcode/data/cargo/cargo_toml/rustup/Cargo.toml.expected +++ b/tests/packagedcode/data/cargo/cargo_toml/rustup/Cargo.toml.expected @@ -36,6 +36,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:cargo/rustup@1.17.0", "repository_homepage_url": "https://crates.io/crates/rustup", "repository_download_url": "https://crates.io/api/v1/crates/rustup/1.17.0/download", diff --git a/tests/packagedcode/data/chef/basic/metadata.json.expected b/tests/packagedcode/data/chef/basic/metadata.json.expected index 0ec92a11af2..e5c68e885c4 100644 --- a/tests/packagedcode/data/chef/basic/metadata.json.expected +++ b/tests/packagedcode/data/chef/basic/metadata.json.expected @@ -45,6 +45,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:chef/301@0.1.0", "repository_homepage_url": null, "repository_download_url": "https://supermarket.chef.io/cookbooks/301/versions/0.1.0/download", diff --git a/tests/packagedcode/data/chef/basic/metadata.rb.expected b/tests/packagedcode/data/chef/basic/metadata.rb.expected index 89a0922f9af..26fb6ce9f6d 100644 --- a/tests/packagedcode/data/chef/basic/metadata.rb.expected +++ b/tests/packagedcode/data/chef/basic/metadata.rb.expected @@ -45,6 +45,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:chef/301@0.1.0", "repository_homepage_url": null, "repository_download_url": "https://supermarket.chef.io/cookbooks/301/versions/0.1.0/download", diff --git a/tests/packagedcode/data/chef/basic/test_package.json.expected b/tests/packagedcode/data/chef/basic/test_package.json.expected index 2c79c7ff292..2605ed0a9bb 100644 --- a/tests/packagedcode/data/chef/basic/test_package.json.expected +++ b/tests/packagedcode/data/chef/basic/test_package.json.expected @@ -28,6 +28,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:chef/test@0.01", "repository_homepage_url": null, "repository_download_url": "https://supermarket.chef.io/cookbooks/test/versions/0.01/download", diff --git a/tests/packagedcode/data/chef/basic/test_package_code_view_url_and_bug_tracking_url.json.expected b/tests/packagedcode/data/chef/basic/test_package_code_view_url_and_bug_tracking_url.json.expected index 3f9eda64254..16ddfcf1f12 100644 --- a/tests/packagedcode/data/chef/basic/test_package_code_view_url_and_bug_tracking_url.json.expected +++ b/tests/packagedcode/data/chef/basic/test_package_code_view_url_and_bug_tracking_url.json.expected @@ -28,6 +28,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:chef/test@0.01", "repository_homepage_url": null, "repository_download_url": "https://supermarket.chef.io/cookbooks/test/versions/0.01/download", diff --git a/tests/packagedcode/data/chef/basic/test_package_dependencies.json.expected b/tests/packagedcode/data/chef/basic/test_package_dependencies.json.expected index 4d4b9d5d741..2fda7e50462 100644 --- a/tests/packagedcode/data/chef/basic/test_package_dependencies.json.expected +++ b/tests/packagedcode/data/chef/basic/test_package_dependencies.json.expected @@ -37,6 +37,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:chef/test@0.01", "repository_homepage_url": null, "repository_download_url": "https://supermarket.chef.io/cookbooks/test/versions/0.01/download", diff --git a/tests/packagedcode/data/chef/basic/test_package_parties.json.expected b/tests/packagedcode/data/chef/basic/test_package_parties.json.expected index 4857f422039..0a0ed8fe13d 100644 --- a/tests/packagedcode/data/chef/basic/test_package_parties.json.expected +++ b/tests/packagedcode/data/chef/basic/test_package_parties.json.expected @@ -36,6 +36,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:chef/test@0.01", "repository_homepage_url": null, "repository_download_url": "https://supermarket.chef.io/cookbooks/test/versions/0.01/download", diff --git a/tests/packagedcode/data/chef/dependencies/metadata.rb.expected b/tests/packagedcode/data/chef/dependencies/metadata.rb.expected index c0105e76c65..42399fd762d 100644 --- a/tests/packagedcode/data/chef/dependencies/metadata.rb.expected +++ b/tests/packagedcode/data/chef/dependencies/metadata.rb.expected @@ -53,6 +53,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:chef/build-essential@8.2.1", "repository_homepage_url": null, "repository_download_url": "https://supermarket.chef.io/cookbooks/build-essential/versions/8.2.1/download", diff --git a/tests/packagedcode/data/cocoapods/podspec/BadgeHub.podspec.expected.json b/tests/packagedcode/data/cocoapods/podspec/BadgeHub.podspec.expected.json index 4554a8b2312..96f02ab41a1 100644 --- a/tests/packagedcode/data/cocoapods/podspec/BadgeHub.podspec.expected.json +++ b/tests/packagedcode/data/cocoapods/podspec/BadgeHub.podspec.expected.json @@ -45,6 +45,7 @@ "source_packages": [ "https://github.com/jogendra/BadgeHub.git" ], + "extra_data": {}, "purl": "pkg:pods/BadgeHub@0.1.1", "repository_homepage_url": "https://cocoapods.org/pods/BadgeHub", "repository_download_url": "https://github.com/jogendra/BadgeHub/archive/0.1.1.zip", diff --git a/tests/packagedcode/data/cocoapods/podspec/LoadingShimmer.podspec.expected.json b/tests/packagedcode/data/cocoapods/podspec/LoadingShimmer.podspec.expected.json index c797a4e40e6..1469d83134e 100644 --- a/tests/packagedcode/data/cocoapods/podspec/LoadingShimmer.podspec.expected.json +++ b/tests/packagedcode/data/cocoapods/podspec/LoadingShimmer.podspec.expected.json @@ -45,6 +45,7 @@ "source_packages": [ "https://github.com/jogendra/LoadingShimmer.git" ], + "extra_data": {}, "purl": "pkg:pods/LoadingShimmer@1.0.3", "repository_homepage_url": "https://cocoapods.org/pods/LoadingShimmer", "repository_download_url": "https://github.com/jogendra/LoadingShimmer/archive/1.0.3.zip", diff --git a/tests/packagedcode/data/cocoapods/podspec/Starscream.podspec.expected.json b/tests/packagedcode/data/cocoapods/podspec/Starscream.podspec.expected.json index 45368686efb..ff677de4993 100644 --- a/tests/packagedcode/data/cocoapods/podspec/Starscream.podspec.expected.json +++ b/tests/packagedcode/data/cocoapods/podspec/Starscream.podspec.expected.json @@ -59,6 +59,7 @@ "source_packages": [ "https://github.com/daltoniam/Starscream.git" ], + "extra_data": {}, "purl": "pkg:pods/Starscream@4.0.3", "repository_homepage_url": "https://cocoapods.org/pods/Starscream", "repository_download_url": "https://github.com/daltoniam/Starscream/archive/4.0.3.zip", diff --git a/tests/packagedcode/data/cocoapods/podspec/SwiftLib.podspec.expected.json b/tests/packagedcode/data/cocoapods/podspec/SwiftLib.podspec.expected.json index 2985d494aaa..c2b8b7f407e 100644 --- a/tests/packagedcode/data/cocoapods/podspec/SwiftLib.podspec.expected.json +++ b/tests/packagedcode/data/cocoapods/podspec/SwiftLib.podspec.expected.json @@ -45,6 +45,7 @@ "source_packages": [ "https://github.com/alizainprasla/swiftlib.git" ], + "extra_data": {}, "purl": "pkg:pods/SwiftLib@0.0.1", "repository_homepage_url": "https://cocoapods.org/pods/SwiftLib", "repository_download_url": "https://github.com/alizainprasla/swiftlib/archive/0.0.1.zip", diff --git a/tests/packagedcode/data/cocoapods/podspec/nanopb.podspec.expected.json b/tests/packagedcode/data/cocoapods/podspec/nanopb.podspec.expected.json index f301d43621a..523fd8ce844 100644 --- a/tests/packagedcode/data/cocoapods/podspec/nanopb.podspec.expected.json +++ b/tests/packagedcode/data/cocoapods/podspec/nanopb.podspec.expected.json @@ -45,6 +45,7 @@ "source_packages": [ "https://github.com/nanopb/nanopb.git" ], + "extra_data": {}, "purl": "pkg:pods/nanopb@1.30905.0", "repository_homepage_url": "https://cocoapods.org/pods/nanopb", "repository_download_url": "https://github.com/nanopb/nanopb/archive/1.30905.0.zip", diff --git a/tests/packagedcode/data/conda/meta.yaml.expected.json b/tests/packagedcode/data/conda/meta.yaml.expected.json index 838db7e6ff2..0685bc80647 100644 --- a/tests/packagedcode/data/conda/meta.yaml.expected.json +++ b/tests/packagedcode/data/conda/meta.yaml.expected.json @@ -93,6 +93,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:conda/abeona@0.45.0", "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/cran/codetools/package.json.expected b/tests/packagedcode/data/cran/codetools/package.json.expected index 332195921f8..e72c7cdc50b 100644 --- a/tests/packagedcode/data/cran/codetools/package.json.expected +++ b/tests/packagedcode/data/cran/codetools/package.json.expected @@ -52,6 +52,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:cran/codetools@0.2-16", "repository_homepage_url": "https://cran.r-project.org/package=codetools", "repository_download_url": null, diff --git a/tests/packagedcode/data/cran/geometry/package.json.expected b/tests/packagedcode/data/cran/geometry/package.json.expected index 4407d35a160..e2cf3705f52 100644 --- a/tests/packagedcode/data/cran/geometry/package.json.expected +++ b/tests/packagedcode/data/cran/geometry/package.json.expected @@ -94,6 +94,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:cran/geometry@0.4.2", "repository_homepage_url": "https://cran.r-project.org/package=geometry", "repository_download_url": null, diff --git a/tests/packagedcode/data/debian/basic-rootfs-expected.json b/tests/packagedcode/data/debian/basic-rootfs-expected.json index 731d5e8104a..df9b6d6a525 100644 --- a/tests/packagedcode/data/debian/basic-rootfs-expected.json +++ b/tests/packagedcode/data/debian/basic-rootfs-expected.json @@ -43,6 +43,7 @@ "source_packages": [ "pkg:deb/debian/ncurses" ], + "extra_data": {}, "multi_arch": "same", "installed_files": [ { @@ -123,6 +124,7 @@ "source_packages": [ "pkg:deb/debian/libndp" ], + "extra_data": {}, "multi_arch": "same", "installed_files": [ { diff --git a/tests/packagedcode/data/debian/basic-rootfs-with-licenses-expected.json b/tests/packagedcode/data/debian/basic-rootfs-with-licenses-expected.json index ba157b023c1..ceb1919dc6a 100644 --- a/tests/packagedcode/data/debian/basic-rootfs-with-licenses-expected.json +++ b/tests/packagedcode/data/debian/basic-rootfs-with-licenses-expected.json @@ -43,6 +43,7 @@ "source_packages": [ "pkg:deb/debian/ncurses" ], + "extra_data": {}, "multi_arch": "same", "installed_files": [ { @@ -123,6 +124,7 @@ "source_packages": [ "pkg:deb/debian/libndp" ], + "extra_data": {}, "multi_arch": "same", "installed_files": [ { diff --git a/tests/packagedcode/data/debian/basic/status.expected b/tests/packagedcode/data/debian/basic/status.expected index 75c05c7267d..4a6e89d5795 100644 --- a/tests/packagedcode/data/debian/basic/status.expected +++ b/tests/packagedcode/data/debian/basic/status.expected @@ -43,6 +43,7 @@ "source_packages": [ "pkg:deb/ubuntu/ncurses" ], + "extra_data": {}, "purl": "pkg:deb/ubuntu/libncurses5@6.1-1ubuntu1.18.04?arch=amd64", "repository_homepage_url": null, "repository_download_url": null, @@ -92,6 +93,7 @@ "source_packages": [ "pkg:deb/ubuntu/e2fsprogs" ], + "extra_data": {}, "purl": "pkg:deb/ubuntu/libcom-err2@1.44.1-1ubuntu1.1?arch=amd64", "repository_homepage_url": null, "repository_download_url": null, @@ -141,6 +143,7 @@ "source_packages": [ "pkg:deb/ubuntu/apt" ], + "extra_data": {}, "purl": "pkg:deb/ubuntu/libapt-pkg5.0@1.6.11?arch=amd64", "repository_homepage_url": null, "repository_download_url": null, @@ -190,6 +193,7 @@ "source_packages": [ "pkg:deb/ubuntu/audit" ], + "extra_data": {}, "purl": "pkg:deb/ubuntu/libaudit1@1:2.8.2-1ubuntu1?arch=amd64", "repository_homepage_url": null, "repository_download_url": null, @@ -239,6 +243,7 @@ "source_packages": [ "pkg:deb/ubuntu/perl" ], + "extra_data": {}, "purl": "pkg:deb/ubuntu/perl-base@5.26.1-6ubuntu0.3?arch=amd64", "repository_homepage_url": null, "repository_download_url": null, @@ -288,6 +293,7 @@ "source_packages": [ "pkg:deb/ubuntu/systemd" ], + "extra_data": {}, "purl": "pkg:deb/ubuntu/libudev1@237-3ubuntu10.22?arch=amd64", "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/debian/mini-status/status.expected b/tests/packagedcode/data/debian/mini-status/status.expected index a4ab67f4b87..e2316e7c180 100644 --- a/tests/packagedcode/data/debian/mini-status/status.expected +++ b/tests/packagedcode/data/debian/mini-status/status.expected @@ -43,6 +43,7 @@ "source_packages": [ "pkg:deb/debian/perl" ], + "extra_data": {}, "purl": "pkg:deb/debian/perl-base@5.22.1-9ubuntu0.6?arch=amd64", "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/debian/ubuntu-var-lib-dpkg/expected.json b/tests/packagedcode/data/debian/ubuntu-var-lib-dpkg/expected.json index 3e5683c5658..8c8abc29c72 100644 --- a/tests/packagedcode/data/debian/ubuntu-var-lib-dpkg/expected.json +++ b/tests/packagedcode/data/debian/ubuntu-var-lib-dpkg/expected.json @@ -41,6 +41,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "multi_arch": "foreign", "installed_files": [ { @@ -448,6 +449,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "multi_arch": "foreign", "installed_files": [ { @@ -617,6 +619,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "multi_arch": "foreign", "installed_files": [ { @@ -821,6 +824,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "multi_arch": "foreign", "installed_files": [], "purl": "pkg:deb/ubuntu/tar@1.30%2Bdfsg-7?arch=amd64", diff --git a/tests/packagedcode/data/freebsd/basic/+COMPACT_MANIFEST.expected b/tests/packagedcode/data/freebsd/basic/+COMPACT_MANIFEST.expected index 4dfcbce8b00..d1473dfc72e 100644 --- a/tests/packagedcode/data/freebsd/basic/+COMPACT_MANIFEST.expected +++ b/tests/packagedcode/data/freebsd/basic/+COMPACT_MANIFEST.expected @@ -46,6 +46,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:freebsd/dmidecode@2.12?arch=freebsd:10:x86:64&origin=sysutils/dmidecode", "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/freebsd/basic2/+COMPACT_MANIFEST.expected b/tests/packagedcode/data/freebsd/basic2/+COMPACT_MANIFEST.expected index 1126291d30a..909ae56b9ff 100644 --- a/tests/packagedcode/data/freebsd/basic2/+COMPACT_MANIFEST.expected +++ b/tests/packagedcode/data/freebsd/basic2/+COMPACT_MANIFEST.expected @@ -46,6 +46,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:freebsd/0d1n@2.3?arch=freebsd:10:x86:64&origin=security/0d1n", "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/freebsd/dual_license/+COMPACT_MANIFEST.expected b/tests/packagedcode/data/freebsd/dual_license/+COMPACT_MANIFEST.expected index d664112382d..dd071fe7c25 100644 --- a/tests/packagedcode/data/freebsd/dual_license/+COMPACT_MANIFEST.expected +++ b/tests/packagedcode/data/freebsd/dual_license/+COMPACT_MANIFEST.expected @@ -48,6 +48,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:freebsd/rubygem-facets@3.1.0?arch=freebsd:10:%2A&origin=devel/rubygem-facets", "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/freebsd/dual_license2/+COMPACT_MANIFEST.expected b/tests/packagedcode/data/freebsd/dual_license2/+COMPACT_MANIFEST.expected index fdf652d331f..b254b80134a 100644 --- a/tests/packagedcode/data/freebsd/dual_license2/+COMPACT_MANIFEST.expected +++ b/tests/packagedcode/data/freebsd/dual_license2/+COMPACT_MANIFEST.expected @@ -49,6 +49,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:freebsd/rubygem-ttfunk@1.5.1?arch=freebsd:10:%2A&origin=print/rubygem-ttfunk", "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/freebsd/multi_license/+COMPACT_MANIFEST.expected b/tests/packagedcode/data/freebsd/multi_license/+COMPACT_MANIFEST.expected index 1cbc936413e..ed529a6c5be 100644 --- a/tests/packagedcode/data/freebsd/multi_license/+COMPACT_MANIFEST.expected +++ b/tests/packagedcode/data/freebsd/multi_license/+COMPACT_MANIFEST.expected @@ -48,6 +48,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:freebsd/py27-idna@2.6?arch=freebsd:10:%2A&origin=dns/py-idna", "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/freebsd/no_licenses/+COMPACT_MANIFEST.expected b/tests/packagedcode/data/freebsd/no_licenses/+COMPACT_MANIFEST.expected index 7f0a830e0e4..f427167b605 100644 --- a/tests/packagedcode/data/freebsd/no_licenses/+COMPACT_MANIFEST.expected +++ b/tests/packagedcode/data/freebsd/no_licenses/+COMPACT_MANIFEST.expected @@ -41,6 +41,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:freebsd/dmidecode@2.12?arch=freebsd:10:x86:64&origin=sysutils/dmidecode", "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/golang/gomod/kingpin/output.expected.json b/tests/packagedcode/data/golang/gomod/kingpin/output.expected.json index 08021a545d5..d2b035d8693 100644 --- a/tests/packagedcode/data/golang/gomod/kingpin/output.expected.json +++ b/tests/packagedcode/data/golang/gomod/kingpin/output.expected.json @@ -70,6 +70,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:golang/github.com/alecthomas/kingpin", "repository_homepage_url": "https://pkg.go.dev/github.com/alecthomas/kingpin", "repository_download_url": null, diff --git a/tests/packagedcode/data/golang/gomod/opencensus-service/output.expected.json b/tests/packagedcode/data/golang/gomod/opencensus-service/output.expected.json index c28e8727b4f..654244fa4b1 100644 --- a/tests/packagedcode/data/golang/gomod/opencensus-service/output.expected.json +++ b/tests/packagedcode/data/golang/gomod/opencensus-service/output.expected.json @@ -1,54 +1,55 @@ [ { - "type": "golang", - "namespace": "github.com/census-instrumentation", - "name": "opencensus-service", - "version": null, - "qualifiers": {}, - "subpath": null, - "primary_language": "Go", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": "https://pkg.go.dev/github.com/census-instrumentation/opencensus-service", - "download_url": null, - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": "https://github.com/census-instrumentation/opencensus-service.git", - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:golang/contrib.go.opencensus.io", - "requirement": "v0.0.0-20181029163544-2befc13012d0", - "scope": "require", - "is_runtime": true, - "is_optional": false, - "is_resolved": false - }, - { - "purl": "pkg:golang/gopkg.in/yaml.v2", - "requirement": "v2.2.5", - "scope": "require", - "is_runtime": true, - "is_optional": false, - "is_resolved": false - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:golang/github.com/census-instrumentation/opencensus-service", - "repository_homepage_url": "https://pkg.go.dev/github.com/census-instrumentation/opencensus-service", - "repository_download_url": null, - "api_data_url": null + "type": "golang", + "namespace": "github.com/census-instrumentation", + "name": "opencensus-service", + "version": null, + "qualifiers": {}, + "subpath": null, + "primary_language": "Go", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": "https://pkg.go.dev/github.com/census-instrumentation/opencensus-service", + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": "https://github.com/census-instrumentation/opencensus-service.git", + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:golang/contrib.go.opencensus.io", + "requirement": "v0.0.0-20181029163544-2befc13012d0", + "scope": "require", + "is_runtime": true, + "is_optional": false, + "is_resolved": false + }, + { + "purl": "pkg:golang/gopkg.in/yaml.v2", + "requirement": "v2.2.5", + "scope": "require", + "is_runtime": true, + "is_optional": false, + "is_resolved": false + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:golang/github.com/census-instrumentation/opencensus-service", + "repository_homepage_url": "https://pkg.go.dev/github.com/census-instrumentation/opencensus-service", + "repository_download_url": null, + "api_data_url": null } ] \ No newline at end of file diff --git a/tests/packagedcode/data/golang/gomod/participle/output.expected.json b/tests/packagedcode/data/golang/gomod/participle/output.expected.json index 86f55ce2fbe..df671f2568a 100644 --- a/tests/packagedcode/data/golang/gomod/participle/output.expected.json +++ b/tests/packagedcode/data/golang/gomod/participle/output.expected.json @@ -54,6 +54,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:golang/github.com/alecthomas/participle", "repository_homepage_url": "https://pkg.go.dev/github.com/alecthomas/participle", "repository_download_url": null, diff --git a/tests/packagedcode/data/golang/gomod/sample/output.expected.json b/tests/packagedcode/data/golang/gomod/sample/output.expected.json index 985c762afa2..d210b4e1cff 100644 --- a/tests/packagedcode/data/golang/gomod/sample/output.expected.json +++ b/tests/packagedcode/data/golang/gomod/sample/output.expected.json @@ -29,11 +29,11 @@ "dependencies": [ { "purl": "pkg:golang/github.com/davecgh/go-spew", - "requirement": "v1.1.1", - "scope": "require", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "requirement": "v1.1.1", + "scope": "require", + "is_runtime": true, + "is_optional": false, + "is_resolved": false }, { "purl": "pkg:golang/github.com/stretchr/testify", @@ -54,6 +54,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:golang/github.com/alecthomas/sample", "repository_homepage_url": "https://pkg.go.dev/github.com/alecthomas/sample", "repository_download_url": null, diff --git a/tests/packagedcode/data/golang/gomod/uap-go/output.expected.json b/tests/packagedcode/data/golang/gomod/uap-go/output.expected.json index 82f48e80d2f..63339b97bae 100644 --- a/tests/packagedcode/data/golang/gomod/uap-go/output.expected.json +++ b/tests/packagedcode/data/golang/gomod/uap-go/output.expected.json @@ -38,6 +38,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:golang/github.com/ua-parser/uap-go", "repository_homepage_url": "https://pkg.go.dev/github.com/ua-parser/uap-go", "repository_download_url": null, diff --git a/tests/packagedcode/data/golang/gomod/user_agent/output.expected.json b/tests/packagedcode/data/golang/gomod/user_agent/output.expected.json index bf6eb5f7b64..03fbecf6a97 100644 --- a/tests/packagedcode/data/golang/gomod/user_agent/output.expected.json +++ b/tests/packagedcode/data/golang/gomod/user_agent/output.expected.json @@ -29,6 +29,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:golang/github.com/mssola/user_agent", "repository_homepage_url": "https://pkg.go.dev/github.com/mssola/user_agent", "repository_download_url": null, diff --git a/tests/packagedcode/data/golang/gosum/sample1/output.expected.json b/tests/packagedcode/data/golang/gosum/sample1/output.expected.json index a03d0b555ff..32b7271b605 100644 --- a/tests/packagedcode/data/golang/gosum/sample1/output.expected.json +++ b/tests/packagedcode/data/golang/gosum/sample1/output.expected.json @@ -46,6 +46,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/golang/gosum/sample2/output.expected.json b/tests/packagedcode/data/golang/gosum/sample2/output.expected.json index e099dd7de20..a19912d1878 100644 --- a/tests/packagedcode/data/golang/gosum/sample2/output.expected.json +++ b/tests/packagedcode/data/golang/gosum/sample2/output.expected.json @@ -38,6 +38,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/golang/gosum/sample3/output.expected.json b/tests/packagedcode/data/golang/gosum/sample3/output.expected.json index 8452927181e..f63bb306aca 100644 --- a/tests/packagedcode/data/golang/gosum/sample3/output.expected.json +++ b/tests/packagedcode/data/golang/gosum/sample3/output.expected.json @@ -46,6 +46,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/golang/gosum/sample4/output.expected.json b/tests/packagedcode/data/golang/gosum/sample4/output.expected.json index 4b5a9019e31..dbddd314edc 100644 --- a/tests/packagedcode/data/golang/gosum/sample4/output.expected.json +++ b/tests/packagedcode/data/golang/gosum/sample4/output.expected.json @@ -62,6 +62,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/golang/gosum/sample5/output.expected.json b/tests/packagedcode/data/golang/gosum/sample5/output.expected.json index c3486f18ca5..178265fba61 100644 --- a/tests/packagedcode/data/golang/gosum/sample5/output.expected.json +++ b/tests/packagedcode/data/golang/gosum/sample5/output.expected.json @@ -46,6 +46,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/golang/gosum/sample6/output.expected.json b/tests/packagedcode/data/golang/gosum/sample6/output.expected.json index 8c08f6cc23b..7cd5e42a5e2 100644 --- a/tests/packagedcode/data/golang/gosum/sample6/output.expected.json +++ b/tests/packagedcode/data/golang/gosum/sample6/output.expected.json @@ -38,6 +38,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/haxe/basic/haxelib.json.expected b/tests/packagedcode/data/haxe/basic/haxelib.json.expected index c0d7ec8eba8..2d7e0db684c 100644 --- a/tests/packagedcode/data/haxe/basic/haxelib.json.expected +++ b/tests/packagedcode/data/haxe/basic/haxelib.json.expected @@ -74,6 +74,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:haxe/haxelib@3.4.0", "repository_homepage_url": "https://lib.haxe.org/p/haxelib", "repository_download_url": "https://lib.haxe.org/p/haxelib/3.4.0/download/", diff --git a/tests/packagedcode/data/haxe/basic2/haxelib.json.expected b/tests/packagedcode/data/haxe/basic2/haxelib.json.expected index 0d4546f28e1..540d3ea7e53 100644 --- a/tests/packagedcode/data/haxe/basic2/haxelib.json.expected +++ b/tests/packagedcode/data/haxe/basic2/haxelib.json.expected @@ -41,6 +41,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:haxe/hxsocketio@0.1.0", "repository_homepage_url": "https://lib.haxe.org/p/hxsocketio", "repository_download_url": "https://lib.haxe.org/p/hxsocketio/0.1.0/download/", diff --git a/tests/packagedcode/data/haxe/deps/haxelib.json.expected b/tests/packagedcode/data/haxe/deps/haxelib.json.expected index 122705088c7..f310b5b8902 100644 --- a/tests/packagedcode/data/haxe/deps/haxelib.json.expected +++ b/tests/packagedcode/data/haxe/deps/haxelib.json.expected @@ -66,6 +66,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:haxe/selecthxml@0.5.1", "repository_homepage_url": "https://lib.haxe.org/p/selecthxml", "repository_download_url": "https://lib.haxe.org/p/selecthxml/0.5.1/download/", diff --git a/tests/packagedcode/data/haxe/tags/haxelib.json.expected b/tests/packagedcode/data/haxe/tags/haxelib.json.expected index 7beb70252a0..6c60619edb4 100644 --- a/tests/packagedcode/data/haxe/tags/haxelib.json.expected +++ b/tests/packagedcode/data/haxe/tags/haxelib.json.expected @@ -46,6 +46,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:haxe/tink_core@1.18.0", "repository_homepage_url": "https://lib.haxe.org/p/tink_core", "repository_download_url": "https://lib.haxe.org/p/tink_core/1.18.0/download/", diff --git a/tests/packagedcode/data/maven2/activemq-camel-pom.xml.package.json b/tests/packagedcode/data/maven2/activemq-camel-pom.xml.package.json index 80c4e00633a..9e882d4dcd8 100644 --- a/tests/packagedcode/data/maven2/activemq-camel-pom.xml.package.json +++ b/tests/packagedcode/data/maven2/activemq-camel-pom.xml.package.json @@ -119,6 +119,7 @@ "source_packages": [ "pkg:maven/org.apache.activemq/activemq-camel@5.4.2?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/org.apache.activemq/activemq-camel@5.4.2", "repository_homepage_url": "https://repo1.maven.org/maven2/org/apache/activemq/activemq-camel/5.4.2/", "repository_download_url": "https://repo1.maven.org/maven2/org/apache/activemq/activemq-camel/5.4.2/activemq-camel-5.4.2.jar", diff --git a/tests/packagedcode/data/maven2/adarwin-1.0.pom.package.json b/tests/packagedcode/data/maven2/adarwin-1.0.pom.package.json index fb2ebbe7698..c87234b8693 100644 --- a/tests/packagedcode/data/maven2/adarwin-1.0.pom.package.json +++ b/tests/packagedcode/data/maven2/adarwin-1.0.pom.package.json @@ -30,6 +30,7 @@ "source_packages": [ "pkg:maven/adarwin/adarwin@1.0?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/adarwin/adarwin@1.0", "repository_homepage_url": "https://repo1.maven.org/maven2/adarwin/adarwin/1.0/", "repository_download_url": "https://repo1.maven.org/maven2/adarwin/adarwin/1.0/adarwin-1.0.jar", diff --git a/tests/packagedcode/data/maven2/ant-jai-1.7.0.pom.package.json b/tests/packagedcode/data/maven2/ant-jai-1.7.0.pom.package.json index 942e03ca419..f06cc832316 100644 --- a/tests/packagedcode/data/maven2/ant-jai-1.7.0.pom.package.json +++ b/tests/packagedcode/data/maven2/ant-jai-1.7.0.pom.package.json @@ -55,6 +55,7 @@ "source_packages": [ "pkg:maven/org.apache.ant/ant-jai@1.7.0?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/org.apache.ant/ant-jai@1.7.0", "repository_homepage_url": "https://repo1.maven.org/maven2/org/apache/ant/ant-jai/1.7.0/", "repository_download_url": "https://repo1.maven.org/maven2/org/apache/ant/ant-jai/1.7.0/ant-jai-1.7.0.jar", diff --git a/tests/packagedcode/data/maven2/ant-jsch-1.7.0.pom.package.json b/tests/packagedcode/data/maven2/ant-jsch-1.7.0.pom.package.json index ab398ff6925..df3e7e5a2eb 100644 --- a/tests/packagedcode/data/maven2/ant-jsch-1.7.0.pom.package.json +++ b/tests/packagedcode/data/maven2/ant-jsch-1.7.0.pom.package.json @@ -47,6 +47,7 @@ "source_packages": [ "pkg:maven/org.apache.ant/ant-jsch@1.7.0?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/org.apache.ant/ant-jsch@1.7.0", "repository_homepage_url": "https://repo1.maven.org/maven2/org/apache/ant/ant-jsch/1.7.0/", "repository_download_url": "https://repo1.maven.org/maven2/org/apache/ant/ant-jsch/1.7.0/ant-jsch-1.7.0.jar", diff --git a/tests/packagedcode/data/maven2/aopalliance-1.0.pom.package.json b/tests/packagedcode/data/maven2/aopalliance-1.0.pom.package.json index d9e5b368446..90c29517250 100644 --- a/tests/packagedcode/data/maven2/aopalliance-1.0.pom.package.json +++ b/tests/packagedcode/data/maven2/aopalliance-1.0.pom.package.json @@ -43,6 +43,7 @@ "source_packages": [ "pkg:maven/aopalliance/aopalliance@1.0?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/aopalliance/aopalliance@1.0", "repository_homepage_url": "https://repo1.maven.org/maven2/aopalliance/aopalliance/1.0/", "repository_download_url": "https://repo1.maven.org/maven2/aopalliance/aopalliance/1.0/aopalliance-1.0.jar", diff --git a/tests/packagedcode/data/maven2/bcel-5.1.pom.package.json b/tests/packagedcode/data/maven2/bcel-5.1.pom.package.json index 1238d2e17ca..b7a28efb67f 100644 --- a/tests/packagedcode/data/maven2/bcel-5.1.pom.package.json +++ b/tests/packagedcode/data/maven2/bcel-5.1.pom.package.json @@ -30,6 +30,7 @@ "source_packages": [ "pkg:maven/bcel/bcel@5.1?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/bcel/bcel@5.1", "repository_homepage_url": "https://repo1.maven.org/maven2/bcel/bcel/5.1/", "repository_download_url": "https://repo1.maven.org/maven2/bcel/bcel/5.1/bcel-5.1.jar", diff --git a/tests/packagedcode/data/maven2/classworlds-1.1-alpha-2.pom.package.json b/tests/packagedcode/data/maven2/classworlds-1.1-alpha-2.pom.package.json index 4384b78f23b..2f0e340cb0d 100644 --- a/tests/packagedcode/data/maven2/classworlds-1.1-alpha-2.pom.package.json +++ b/tests/packagedcode/data/maven2/classworlds-1.1-alpha-2.pom.package.json @@ -59,6 +59,7 @@ "source_packages": [ "pkg:maven/classworlds/classworlds@1.1-alpha-2?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/classworlds/classworlds@1.1-alpha-2", "repository_homepage_url": "https://repo1.maven.org/maven2/classworlds/classworlds/1.1-alpha-2/", "repository_download_url": "https://repo1.maven.org/maven2/classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.jar", diff --git a/tests/packagedcode/data/maven2/commons-fileupload-1.0.pom.package.json b/tests/packagedcode/data/maven2/commons-fileupload-1.0.pom.package.json index c1e3c01af6c..01a8b55d8c2 100644 --- a/tests/packagedcode/data/maven2/commons-fileupload-1.0.pom.package.json +++ b/tests/packagedcode/data/maven2/commons-fileupload-1.0.pom.package.json @@ -97,6 +97,7 @@ "source_packages": [ "pkg:maven/commons-fileupload/commons-fileupload@1.0?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/commons-fileupload/commons-fileupload@1.0", "repository_homepage_url": "https://repo1.maven.org/maven2/commons-fileupload/commons-fileupload/1.0/", "repository_download_url": "https://repo1.maven.org/maven2/commons-fileupload/commons-fileupload/1.0/commons-fileupload-1.0.jar", diff --git a/tests/packagedcode/data/maven2/commons-validator-1.2.0.pom.package.json b/tests/packagedcode/data/maven2/commons-validator-1.2.0.pom.package.json index d29736a7aa6..1a3354c73a1 100644 --- a/tests/packagedcode/data/maven2/commons-validator-1.2.0.pom.package.json +++ b/tests/packagedcode/data/maven2/commons-validator-1.2.0.pom.package.json @@ -311,6 +311,7 @@ "source_packages": [ "pkg:maven/commons-validator/commons-validator@1.2.0?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/commons-validator/commons-validator@1.2.0", "repository_homepage_url": "https://repo1.maven.org/maven2/commons-validator/commons-validator/1.2.0/", "repository_download_url": "https://repo1.maven.org/maven2/commons-validator/commons-validator/1.2.0/commons-validator-1.2.0.jar", diff --git a/tests/packagedcode/data/maven2/dbwebx_pom.xml.package.json b/tests/packagedcode/data/maven2/dbwebx_pom.xml.package.json index 781696e03a3..82acbe5cd44 100644 --- a/tests/packagedcode/data/maven2/dbwebx_pom.xml.package.json +++ b/tests/packagedcode/data/maven2/dbwebx_pom.xml.package.json @@ -30,6 +30,7 @@ "source_packages": [ "pkg:maven/org.dbwebx/tools@0.0.1.SNAPSHOT?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/org.dbwebx/tools@0.0.1.SNAPSHOT", "repository_homepage_url": "https://repo1.maven.org/maven2/org/dbwebx/tools/0.0.1.SNAPSHOT/", "repository_download_url": "https://repo1.maven.org/maven2/org/dbwebx/tools/0.0.1.SNAPSHOT/tools-0.0.1.SNAPSHOT.jar", diff --git a/tests/packagedcode/data/maven2/easyconf-0.9.0.pom.package.json b/tests/packagedcode/data/maven2/easyconf-0.9.0.pom.package.json index 382d7842fa9..21e031fa841 100644 --- a/tests/packagedcode/data/maven2/easyconf-0.9.0.pom.package.json +++ b/tests/packagedcode/data/maven2/easyconf-0.9.0.pom.package.json @@ -211,6 +211,7 @@ "source_packages": [ "pkg:maven/easyconf/easyconf@0.9.0?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/easyconf/easyconf@0.9.0", "repository_homepage_url": "https://repo1.maven.org/maven2/easyconf/easyconf/0.9.0/", "repository_download_url": "https://repo1.maven.org/maven2/easyconf/easyconf/0.9.0/easyconf-0.9.0.jar", diff --git a/tests/packagedcode/data/maven2/findbugs-maven-plugin-1.1.1.pom.package.json b/tests/packagedcode/data/maven2/findbugs-maven-plugin-1.1.1.pom.package.json index 08a6a3a4d79..f969c4b0ce3 100644 --- a/tests/packagedcode/data/maven2/findbugs-maven-plugin-1.1.1.pom.package.json +++ b/tests/packagedcode/data/maven2/findbugs-maven-plugin-1.1.1.pom.package.json @@ -107,6 +107,7 @@ "source_packages": [ "pkg:maven/org.codehaus.mojo/findbugs-maven-plugin@1.1.1?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/org.codehaus.mojo/findbugs-maven-plugin@1.1.1", "repository_homepage_url": "https://repo1.maven.org/maven2/org/codehaus/mojo/findbugs-maven-plugin/1.1.1/", "repository_download_url": "https://repo1.maven.org/maven2/org/codehaus/mojo/findbugs-maven-plugin/1.1.1/findbugs-maven-plugin-1.1.1.jar", diff --git a/tests/packagedcode/data/maven2/fna2_pom.xml.package.json b/tests/packagedcode/data/maven2/fna2_pom.xml.package.json index d3c95619404..327c811a135 100644 --- a/tests/packagedcode/data/maven2/fna2_pom.xml.package.json +++ b/tests/packagedcode/data/maven2/fna2_pom.xml.package.json @@ -111,6 +111,7 @@ "source_packages": [ "pkg:maven/com.adobe.ac.samples.lcds/flex_app@1.0-SNAPSHOT?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/com.adobe.ac.samples.lcds/flex_app@1.0-SNAPSHOT", "repository_homepage_url": "https://repo1.maven.org/maven2/com/adobe/ac/samples/lcds/flex_app/1.0-SNAPSHOT/", "repository_download_url": "https://repo1.maven.org/maven2/com/adobe/ac/samples/lcds/flex_app/1.0-SNAPSHOT/flex_app-1.0-SNAPSHOT.jar", diff --git a/tests/packagedcode/data/maven2/fna_pom_project.xml.package.json b/tests/packagedcode/data/maven2/fna_pom_project.xml.package.json index 99b4d39946e..d132a93f54e 100644 --- a/tests/packagedcode/data/maven2/fna_pom_project.xml.package.json +++ b/tests/packagedcode/data/maven2/fna_pom_project.xml.package.json @@ -87,6 +87,7 @@ "source_packages": [ "pkg:maven/com.adobe.ac.samples.bash/bash_flex_app@1.0?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/com.adobe.ac.samples.bash/bash_flex_app@1.0", "repository_homepage_url": "https://repo1.maven.org/maven2/com/adobe/ac/samples/bash/bash_flex_app/1.0/", "repository_download_url": "https://repo1.maven.org/maven2/com/adobe/ac/samples/bash/bash_flex_app/1.0/bash_flex_app-1.0.jar", diff --git a/tests/packagedcode/data/maven2/foo-pom.xml.package.json b/tests/packagedcode/data/maven2/foo-pom.xml.package.json index c3601fec256..13a4d1b5424 100644 --- a/tests/packagedcode/data/maven2/foo-pom.xml.package.json +++ b/tests/packagedcode/data/maven2/foo-pom.xml.package.json @@ -70,6 +70,7 @@ "source_packages": [ "pkg:maven/com.myco.foo.bar.baz/baz-bar-parent@1.0?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/com.myco.foo.bar.baz/baz-bar-parent@1.0", "repository_homepage_url": "https://repo1.maven.org/maven2/com/myco/foo/bar/baz/baz-bar-parent/1.0/", "repository_download_url": "https://repo1.maven.org/maven2/com/myco/foo/bar/baz/baz-bar-parent/1.0/baz-bar-parent-1.0.jar", diff --git a/tests/packagedcode/data/maven2/gero_pom.xml.package.json b/tests/packagedcode/data/maven2/gero_pom.xml.package.json index 32a412f09c9..6c6d6eb87b3 100644 --- a/tests/packagedcode/data/maven2/gero_pom.xml.package.json +++ b/tests/packagedcode/data/maven2/gero_pom.xml.package.json @@ -39,6 +39,7 @@ "source_packages": [ "pkg:maven/org.apache.geronimo.bundles/axis@1.4_1-SNAPSHOT?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/org.apache.geronimo.bundles/axis@1.4_1-SNAPSHOT", "repository_homepage_url": "https://repo1.maven.org/maven2/org/apache/geronimo/bundles/axis/1.4_1-SNAPSHOT/", "repository_download_url": "https://repo1.maven.org/maven2/org/apache/geronimo/bundles/axis/1.4_1-SNAPSHOT/axis-1.4_1-SNAPSHOT.jar", diff --git a/tests/packagedcode/data/maven2/idega_pom.xml.package.json b/tests/packagedcode/data/maven2/idega_pom.xml.package.json index fb2cf3b793b..c38ac6275a5 100644 --- a/tests/packagedcode/data/maven2/idega_pom.xml.package.json +++ b/tests/packagedcode/data/maven2/idega_pom.xml.package.json @@ -92,6 +92,7 @@ "source_packages": [ "pkg:maven/com.idega.block.addon/com.idega.block.contract@4.1.3-SNAPSHOT?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/com.idega.block.addon/com.idega.block.contract@4.1.3-SNAPSHOT", "repository_homepage_url": "https://repo1.maven.org/maven2/com/idega/block/addon/com.idega.block.contract/4.1.3-SNAPSHOT/", "repository_download_url": "https://repo1.maven.org/maven2/com/idega/block/addon/com.idega.block.contract/4.1.3-SNAPSHOT/com.idega.block.contract-4.1.3-SNAPSHOT.jar", diff --git a/tests/packagedcode/data/maven2/jrecordbind-2.3.4.pom.package.json b/tests/packagedcode/data/maven2/jrecordbind-2.3.4.pom.package.json index fcc69ae189d..d8a699bf593 100644 --- a/tests/packagedcode/data/maven2/jrecordbind-2.3.4.pom.package.json +++ b/tests/packagedcode/data/maven2/jrecordbind-2.3.4.pom.package.json @@ -78,6 +78,7 @@ "source_packages": [ "pkg:maven/it.assist.jrecordbind/jrecordbind%24%7BartifactId.ext%7D@2.3.4?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/it.assist.jrecordbind/jrecordbind%24%7BartifactId.ext%7D@2.3.4", "repository_homepage_url": "https://repo1.maven.org/maven2/it/assist/jrecordbind/jrecordbind${artifactId.ext}/2.3.4/", "repository_download_url": "https://repo1.maven.org/maven2/it/assist/jrecordbind/jrecordbind${artifactId.ext}/2.3.4/jrecordbind${artifactId.ext}-2.3.4.jar", diff --git a/tests/packagedcode/data/maven2/log4j-pom.xml.package.json b/tests/packagedcode/data/maven2/log4j-pom.xml.package.json index 4733dc55974..bbdd382e87a 100644 --- a/tests/packagedcode/data/maven2/log4j-pom.xml.package.json +++ b/tests/packagedcode/data/maven2/log4j-pom.xml.package.json @@ -94,6 +94,7 @@ "source_packages": [ "pkg:maven/log4j/log4j@1.2.15?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/log4j/log4j@1.2.15", "repository_homepage_url": "https://repo1.maven.org/maven2/log4j/log4j/1.2.15/", "repository_download_url": "https://repo1.maven.org/maven2/log4j/log4j/1.2.15/log4j-1.2.15.jar", diff --git a/tests/packagedcode/data/maven2/logback-access.pom.package.json b/tests/packagedcode/data/maven2/logback-access.pom.package.json index 061b89a2935..8f6c7d805e7 100644 --- a/tests/packagedcode/data/maven2/logback-access.pom.package.json +++ b/tests/packagedcode/data/maven2/logback-access.pom.package.json @@ -78,6 +78,7 @@ "source_packages": [ "pkg:maven/ch.qos.logback/logback-access@0.2.5?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/ch.qos.logback/logback-access@0.2.5", "repository_homepage_url": "https://repo1.maven.org/maven2/ch/qos/logback/logback-access/0.2.5/", "repository_download_url": "https://repo1.maven.org/maven2/ch/qos/logback/logback-access/0.2.5/logback-access-0.2.5.jar", diff --git a/tests/packagedcode/data/maven2/plexus-interactivity-api-1.0-alpha-4.pom.package.json b/tests/packagedcode/data/maven2/plexus-interactivity-api-1.0-alpha-4.pom.package.json index ab383a7b9d9..8969f9834b0 100644 --- a/tests/packagedcode/data/maven2/plexus-interactivity-api-1.0-alpha-4.pom.package.json +++ b/tests/packagedcode/data/maven2/plexus-interactivity-api-1.0-alpha-4.pom.package.json @@ -148,6 +148,7 @@ "source_packages": [ "pkg:maven/org.codehaus.plexus/plexus-interactivity-api@1.0-alpha-4?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/org.codehaus.plexus/plexus-interactivity-api@1.0-alpha-4", "repository_homepage_url": "https://repo1.maven.org/maven2/org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/", "repository_download_url": "https://repo1.maven.org/maven2/org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.jar", diff --git a/tests/packagedcode/data/maven2/pom.xml.package.json b/tests/packagedcode/data/maven2/pom.xml.package.json index a99ec14fb87..dc1b0e3f113 100644 --- a/tests/packagedcode/data/maven2/pom.xml.package.json +++ b/tests/packagedcode/data/maven2/pom.xml.package.json @@ -30,6 +30,7 @@ "source_packages": [ "pkg:maven/ur.urwerk.test.modules/main@1.0.0-SNAPSHOT?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/ur.urwerk.test.modules/main@1.0.0-SNAPSHOT", "repository_homepage_url": "https://repo1.maven.org/maven2/ur/urwerk/test/modules/main/1.0.0-SNAPSHOT/", "repository_download_url": "https://repo1.maven.org/maven2/ur/urwerk/test/modules/main/1.0.0-SNAPSHOT/main-1.0.0-SNAPSHOT.jar", diff --git a/tests/packagedcode/data/maven2/proper_pom.xml.package.json b/tests/packagedcode/data/maven2/proper_pom.xml.package.json index 32a412f09c9..6c6d6eb87b3 100644 --- a/tests/packagedcode/data/maven2/proper_pom.xml.package.json +++ b/tests/packagedcode/data/maven2/proper_pom.xml.package.json @@ -39,6 +39,7 @@ "source_packages": [ "pkg:maven/org.apache.geronimo.bundles/axis@1.4_1-SNAPSHOT?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/org.apache.geronimo.bundles/axis@1.4_1-SNAPSHOT", "repository_homepage_url": "https://repo1.maven.org/maven2/org/apache/geronimo/bundles/axis/1.4_1-SNAPSHOT/", "repository_download_url": "https://repo1.maven.org/maven2/org/apache/geronimo/bundles/axis/1.4_1-SNAPSHOT/axis-1.4_1-SNAPSHOT.jar", diff --git a/tests/packagedcode/data/maven2/rel_pom.xml.package.json b/tests/packagedcode/data/maven2/rel_pom.xml.package.json index 95295f3cc51..0ebe1335f41 100644 --- a/tests/packagedcode/data/maven2/rel_pom.xml.package.json +++ b/tests/packagedcode/data/maven2/rel_pom.xml.package.json @@ -103,6 +103,7 @@ "source_packages": [ "pkg:maven/org.modeler/modeler@0.1?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/org.modeler/modeler@0.1", "repository_homepage_url": "https://repo1.maven.org/maven2/org/modeler/modeler/0.1/", "repository_download_url": "https://repo1.maven.org/maven2/org/modeler/modeler/0.1/modeler-0.1.jar", diff --git a/tests/packagedcode/data/maven2/sea_pom.xml.package.json b/tests/packagedcode/data/maven2/sea_pom.xml.package.json index f83ec2934e6..90a71aee49a 100644 --- a/tests/packagedcode/data/maven2/sea_pom.xml.package.json +++ b/tests/packagedcode/data/maven2/sea_pom.xml.package.json @@ -52,6 +52,7 @@ "source_packages": [ "pkg:maven/no.knowit.seam/root@2.2.0-SNAPSHOT?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/no.knowit.seam/root@2.2.0-SNAPSHOT", "repository_homepage_url": "https://repo1.maven.org/maven2/no/knowit/seam/root/2.2.0-SNAPSHOT/", "repository_download_url": "https://repo1.maven.org/maven2/no/knowit/seam/root/2.2.0-SNAPSHOT/root-2.2.0-SNAPSHOT.jar", diff --git a/tests/packagedcode/data/maven2/specs-1.3.pom.package.json b/tests/packagedcode/data/maven2/specs-1.3.pom.package.json index c8af6f3f506..f61a08123ab 100644 --- a/tests/packagedcode/data/maven2/specs-1.3.pom.package.json +++ b/tests/packagedcode/data/maven2/specs-1.3.pom.package.json @@ -39,6 +39,7 @@ "source_packages": [ "pkg:maven/org.apache.geronimo.specs/specs@1.3?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/org.apache.geronimo.specs/specs@1.3", "repository_homepage_url": "https://repo1.maven.org/maven2/org/apache/geronimo/specs/specs/1.3/", "repository_download_url": "https://repo1.maven.org/maven2/org/apache/geronimo/specs/specs/1.3/specs-1.3.jar", diff --git a/tests/packagedcode/data/maven2/spring-2.5.4.pom.package.json b/tests/packagedcode/data/maven2/spring-2.5.4.pom.package.json index 3635962f65f..28bb7f8c9e4 100644 --- a/tests/packagedcode/data/maven2/spring-2.5.4.pom.package.json +++ b/tests/packagedcode/data/maven2/spring-2.5.4.pom.package.json @@ -566,6 +566,7 @@ "source_packages": [ "pkg:maven/org.springframework/spring@2.5.4?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/org.springframework/spring@2.5.4", "repository_homepage_url": "https://repo1.maven.org/maven2/org/springframework/spring/2.5.4/", "repository_download_url": "https://repo1.maven.org/maven2/org/springframework/spring/2.5.4/spring-2.5.4.jar", diff --git a/tests/packagedcode/data/maven2/spring-orm-2.5.3.pom.package.json b/tests/packagedcode/data/maven2/spring-orm-2.5.3.pom.package.json index aadb90577dd..0651c86977a 100644 --- a/tests/packagedcode/data/maven2/spring-orm-2.5.3.pom.package.json +++ b/tests/packagedcode/data/maven2/spring-orm-2.5.3.pom.package.json @@ -174,6 +174,7 @@ "source_packages": [ "pkg:maven/org.springframework/spring-orm@2.5.3?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/org.springframework/spring-orm@2.5.3", "repository_homepage_url": "https://repo1.maven.org/maven2/org/springframework/spring-orm/2.5.3/", "repository_download_url": "https://repo1.maven.org/maven2/org/springframework/spring-orm/2.5.3/spring-orm-2.5.3.jar", diff --git a/tests/packagedcode/data/maven2/spring-webmvc-2.5.3.pom.package.json b/tests/packagedcode/data/maven2/spring-webmvc-2.5.3.pom.package.json index 7c030309b64..be7400186b1 100644 --- a/tests/packagedcode/data/maven2/spring-webmvc-2.5.3.pom.package.json +++ b/tests/packagedcode/data/maven2/spring-webmvc-2.5.3.pom.package.json @@ -222,6 +222,7 @@ "source_packages": [ "pkg:maven/org.springframework/spring-webmvc@2.5.3?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/org.springframework/spring-webmvc@2.5.3", "repository_homepage_url": "https://repo1.maven.org/maven2/org/springframework/spring-webmvc/2.5.3/", "repository_download_url": "https://repo1.maven.org/maven2/org/springframework/spring-webmvc/2.5.3/spring-webmvc-2.5.3.jar", diff --git a/tests/packagedcode/data/maven2/startup-trigger-plugin-0.1.pom.package.json b/tests/packagedcode/data/maven2/startup-trigger-plugin-0.1.pom.package.json index ea6a0ac26eb..5c8637cc54c 100644 --- a/tests/packagedcode/data/maven2/startup-trigger-plugin-0.1.pom.package.json +++ b/tests/packagedcode/data/maven2/startup-trigger-plugin-0.1.pom.package.json @@ -47,6 +47,7 @@ "source_packages": [ "pkg:maven/org.jvnet.hudson.plugins/startup-trigger-plugin@0.1?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/org.jvnet.hudson.plugins/startup-trigger-plugin@0.1", "repository_homepage_url": "https://repo1.maven.org/maven2/org/jvnet/hudson/plugins/startup-trigger-plugin/0.1/", "repository_download_url": "https://repo1.maven.org/maven2/org/jvnet/hudson/plugins/startup-trigger-plugin/0.1/startup-trigger-plugin-0.1.jar", diff --git a/tests/packagedcode/data/maven2/uni_pom.xml.package.json b/tests/packagedcode/data/maven2/uni_pom.xml.package.json index f90e920d4fe..ff09e1acde7 100644 --- a/tests/packagedcode/data/maven2/uni_pom.xml.package.json +++ b/tests/packagedcode/data/maven2/uni_pom.xml.package.json @@ -71,6 +71,7 @@ "source_packages": [ "pkg:maven/de.fzj.unicore.rcp/eclipseSequencePlugin@0.0.1-SNAPSHOT?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/de.fzj.unicore.rcp/eclipseSequencePlugin@0.0.1-SNAPSHOT", "repository_homepage_url": "https://repo1.maven.org/maven2/de/fzj/unicore/rcp/eclipseSequencePlugin/0.0.1-SNAPSHOT/", "repository_download_url": "https://repo1.maven.org/maven2/de/fzj/unicore/rcp/eclipseSequencePlugin/0.0.1-SNAPSHOT/eclipseSequencePlugin-0.0.1-SNAPSHOT.jar", diff --git a/tests/packagedcode/data/maven2/urwerky_pom.xml.package.json b/tests/packagedcode/data/maven2/urwerky_pom.xml.package.json index eb2cc09c8ad..463e1bca029 100644 --- a/tests/packagedcode/data/maven2/urwerky_pom.xml.package.json +++ b/tests/packagedcode/data/maven2/urwerky_pom.xml.package.json @@ -30,6 +30,7 @@ "source_packages": [ "pkg:maven/ur.urwerk.test/ur.urwerk.test.module-y@1.0.0?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/ur.urwerk.test/ur.urwerk.test.module-y@1.0.0", "repository_homepage_url": "https://repo1.maven.org/maven2/ur/urwerk/test/ur.urwerk.test.module-y/1.0.0/", "repository_download_url": "https://repo1.maven.org/maven2/ur/urwerk/test/ur.urwerk.test.module-y/1.0.0/ur.urwerk.test.module-y-1.0.0.jar", diff --git a/tests/packagedcode/data/maven2/webre_pom.xml.package.json b/tests/packagedcode/data/maven2/webre_pom.xml.package.json index 6ada9278ee7..f1b9ed8075f 100644 --- a/tests/packagedcode/data/maven2/webre_pom.xml.package.json +++ b/tests/packagedcode/data/maven2/webre_pom.xml.package.json @@ -30,6 +30,7 @@ "source_packages": [ "pkg:maven/org.webreformatter.wrappers/com.google.gwt.query@0.1.5.SNAPSHOT?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/org.webreformatter.wrappers/com.google.gwt.query@0.1.5.SNAPSHOT", "repository_homepage_url": "https://repo1.maven.org/maven2/org/webreformatter/wrappers/com.google.gwt.query/0.1.5.SNAPSHOT/", "repository_download_url": "https://repo1.maven.org/maven2/org/webreformatter/wrappers/com.google.gwt.query/0.1.5.SNAPSHOT/com.google.gwt.query-0.1.5.SNAPSHOT.jar", diff --git a/tests/packagedcode/data/maven2/xml-format-maven-plugin-3.0.6.pom.package.json b/tests/packagedcode/data/maven2/xml-format-maven-plugin-3.0.6.pom.package.json index ebade607501..fa4f49524ad 100644 --- a/tests/packagedcode/data/maven2/xml-format-maven-plugin-3.0.6.pom.package.json +++ b/tests/packagedcode/data/maven2/xml-format-maven-plugin-3.0.6.pom.package.json @@ -87,6 +87,7 @@ "source_packages": [ "pkg:maven/au.com.acegi/xml-format-maven-plugin@3.0.6?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/au.com.acegi/xml-format-maven-plugin@3.0.6", "repository_homepage_url": "https://repo1.maven.org/maven2/au/com/acegi/xml-format-maven-plugin/3.0.6/", "repository_download_url": "https://repo1.maven.org/maven2/au/com/acegi/xml-format-maven-plugin/3.0.6/xml-format-maven-plugin-3.0.6.jar", diff --git a/tests/packagedcode/data/models/full-expected.json b/tests/packagedcode/data/models/full-expected.json index 7583c872c32..ecdeb9492f6 100644 --- a/tests/packagedcode/data/models/full-expected.json +++ b/tests/packagedcode/data/models/full-expected.json @@ -62,6 +62,7 @@ "source_packages": [ "pkg:maven/aspectj/aspectjtools@1.5.4?classifier=sources" ], + "extra_data": {}, "purl": "pkg:rpm/fedora/Sample@12.2.3?abc=12&this=that#asdasd/asdasd/asdasd", "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/models/simple-expected.json b/tests/packagedcode/data/models/simple-expected.json index 50be2517559..925aff53376 100644 --- a/tests/packagedcode/data/models/simple-expected.json +++ b/tests/packagedcode/data/models/simple-expected.json @@ -39,6 +39,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:rpm/Sample", "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/npm/as_installed/package.json.expected b/tests/packagedcode/data/npm/as_installed/package.json.expected index 2707aff401b..6373f986dc4 100644 --- a/tests/packagedcode/data/npm/as_installed/package.json.expected +++ b/tests/packagedcode/data/npm/as_installed/package.json.expected @@ -2831,6 +2831,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/npm@2.13.5", "repository_homepage_url": "https://www.npmjs.com/package/npm", "repository_download_url": "https://registry.npmjs.org/npm/-/npm-2.13.5.tgz", diff --git a/tests/packagedcode/data/npm/authors_list_dicts/package.json.expected b/tests/packagedcode/data/npm/authors_list_dicts/package.json.expected index f99e4b0ee1c..a29a58e8974 100644 --- a/tests/packagedcode/data/npm/authors_list_dicts/package.json.expected +++ b/tests/packagedcode/data/npm/authors_list_dicts/package.json.expected @@ -111,6 +111,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/grunt-csscomb@3.1.1", "repository_homepage_url": "https://www.npmjs.com/package/grunt-csscomb", "repository_download_url": "https://registry.npmjs.org/grunt-csscomb/-/grunt-csscomb-3.1.1.tgz", diff --git a/tests/packagedcode/data/npm/authors_list_strings/package.json.expected b/tests/packagedcode/data/npm/authors_list_strings/package.json.expected index e49721d7954..f3c1e958c36 100644 --- a/tests/packagedcode/data/npm/authors_list_strings/package.json.expected +++ b/tests/packagedcode/data/npm/authors_list_strings/package.json.expected @@ -354,6 +354,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/react-motion@0.5.2", "repository_homepage_url": "https://www.npmjs.com/package/react-motion", "repository_download_url": "https://registry.npmjs.org/react-motion/-/react-motion-0.5.2.tgz", diff --git a/tests/packagedcode/data/npm/authors_list_strings2/package.json.expected b/tests/packagedcode/data/npm/authors_list_strings2/package.json.expected index b39a32db47a..f97e669e893 100644 --- a/tests/packagedcode/data/npm/authors_list_strings2/package.json.expected +++ b/tests/packagedcode/data/npm/authors_list_strings2/package.json.expected @@ -68,6 +68,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/exif@0.6.0", "repository_homepage_url": "https://www.npmjs.com/package/exif", "repository_download_url": "https://registry.npmjs.org/exif/-/exif-0.6.0.tgz", diff --git a/tests/packagedcode/data/npm/basic/package.json.expected b/tests/packagedcode/data/npm/basic/package.json.expected index 2d05673336d..1cae877c556 100644 --- a/tests/packagedcode/data/npm/basic/package.json.expected +++ b/tests/packagedcode/data/npm/basic/package.json.expected @@ -58,6 +58,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/cookie-signature@1.0.3", "repository_homepage_url": "https://www.npmjs.com/package/cookie-signature", "repository_download_url": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.3.tgz", diff --git a/tests/packagedcode/data/npm/bundledDeps/package.json.expected b/tests/packagedcode/data/npm/bundledDeps/package.json.expected index 5bf9e2540a5..5ca4788fe4f 100644 --- a/tests/packagedcode/data/npm/bundledDeps/package.json.expected +++ b/tests/packagedcode/data/npm/bundledDeps/package.json.expected @@ -54,6 +54,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/pahub@0.4.0", "repository_homepage_url": "https://www.npmjs.com/package/pahub", "repository_download_url": "https://registry.npmjs.org/pahub/-/pahub-0.4.0.tgz", diff --git a/tests/packagedcode/data/npm/casepath/package.json.expected b/tests/packagedcode/data/npm/casepath/package.json.expected index 44727479a68..3d2226331b4 100644 --- a/tests/packagedcode/data/npm/casepath/package.json.expected +++ b/tests/packagedcode/data/npm/casepath/package.json.expected @@ -272,6 +272,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/casesensitivepathswebpackpluginDemo@0.0.1", "repository_homepage_url": "https://www.npmjs.com/package/casesensitivepathswebpackpluginDemo", "repository_download_url": "https://registry.npmjs.org/casesensitivepathswebpackpluginDemo/-/casesensitivepathswebpackpluginDemo-0.0.1.tgz", diff --git a/tests/packagedcode/data/npm/chartist/package.json.expected b/tests/packagedcode/data/npm/chartist/package.json.expected index 1a5e32e2a9b..a2ed868c90e 100644 --- a/tests/packagedcode/data/npm/chartist/package.json.expected +++ b/tests/packagedcode/data/npm/chartist/package.json.expected @@ -293,6 +293,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/chartist@0.11.0", "repository_homepage_url": "https://www.npmjs.com/package/chartist", "repository_download_url": "https://registry.npmjs.org/chartist/-/chartist-0.11.0.tgz", diff --git a/tests/packagedcode/data/npm/dist/package.json.expected b/tests/packagedcode/data/npm/dist/package.json.expected index 134b1e83776..cde1ef8d449 100644 --- a/tests/packagedcode/data/npm/dist/package.json.expected +++ b/tests/packagedcode/data/npm/dist/package.json.expected @@ -80,6 +80,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/angular-compare-validator@0.1.1", "repository_homepage_url": "https://www.npmjs.com/package/angular-compare-validator", "repository_download_url": "https://registry.npmjs.org/angular-compare-validator/-/angular-compare-validator-0.1.1.tgz", diff --git a/tests/packagedcode/data/npm/double_license/package.json.expected b/tests/packagedcode/data/npm/double_license/package.json.expected index c4c59134187..2597368b92e 100644 --- a/tests/packagedcode/data/npm/double_license/package.json.expected +++ b/tests/packagedcode/data/npm/double_license/package.json.expected @@ -126,6 +126,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/grunt-esvm@3.2.8", "repository_homepage_url": "https://www.npmjs.com/package/grunt-esvm", "repository_download_url": "https://registry.npmjs.org/grunt-esvm/-/grunt-esvm-3.2.8.tgz", diff --git a/tests/packagedcode/data/npm/express-jwt-3.4.0/package.json.expected b/tests/packagedcode/data/npm/express-jwt-3.4.0/package.json.expected index 179fa335444..6424cd268f9 100644 --- a/tests/packagedcode/data/npm/express-jwt-3.4.0/package.json.expected +++ b/tests/packagedcode/data/npm/express-jwt-3.4.0/package.json.expected @@ -94,6 +94,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/express-jwt@3.4.0", "repository_homepage_url": "https://www.npmjs.com/package/express-jwt", "repository_download_url": "https://registry.npmjs.org/express-jwt/-/express-jwt-3.4.0.tgz", diff --git a/tests/packagedcode/data/npm/from_npmjs/package.json.expected b/tests/packagedcode/data/npm/from_npmjs/package.json.expected index 3104beb734b..5488577206d 100644 --- a/tests/packagedcode/data/npm/from_npmjs/package.json.expected +++ b/tests/packagedcode/data/npm/from_npmjs/package.json.expected @@ -2831,6 +2831,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/npm@2.13.5", "repository_homepage_url": "https://www.npmjs.com/package/npm", "repository_download_url": "https://registry.npmjs.org/npm/-/npm-2.13.5.tgz", diff --git a/tests/packagedcode/data/npm/from_tarball/package.json.expected b/tests/packagedcode/data/npm/from_tarball/package.json.expected index 304a8eb32df..14aa536b21a 100644 --- a/tests/packagedcode/data/npm/from_tarball/package.json.expected +++ b/tests/packagedcode/data/npm/from_tarball/package.json.expected @@ -653,6 +653,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/npm@2.13.5", "repository_homepage_url": "https://www.npmjs.com/package/npm", "repository_download_url": "https://registry.npmjs.org/npm/-/npm-2.13.5.tgz", diff --git a/tests/packagedcode/data/npm/homepage-as-list/package.json.expected b/tests/packagedcode/data/npm/homepage-as-list/package.json.expected index 35f7d888109..ed33de367dd 100644 --- a/tests/packagedcode/data/npm/homepage-as-list/package.json.expected +++ b/tests/packagedcode/data/npm/homepage-as-list/package.json.expected @@ -106,6 +106,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/npm-research@0.0.1", "repository_homepage_url": "https://www.npmjs.com/package/npm-research", "repository_download_url": "https://registry.npmjs.org/npm-research/-/npm-research-0.0.1.tgz", diff --git a/tests/packagedcode/data/npm/invalid-dep/package.json.expected b/tests/packagedcode/data/npm/invalid-dep/package.json.expected index d2383660bff..4d1791a0e92 100644 --- a/tests/packagedcode/data/npm/invalid-dep/package.json.expected +++ b/tests/packagedcode/data/npm/invalid-dep/package.json.expected @@ -57,6 +57,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/angular2-autosize@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/angular2-autosize", "repository_download_url": "https://registry.npmjs.org/angular2-autosize/-/angular2-autosize-1.0.0.tgz", diff --git a/tests/packagedcode/data/npm/keywords/package.json.expected b/tests/packagedcode/data/npm/keywords/package.json.expected index d6dc66b18cb..a97bebf3293 100644 --- a/tests/packagedcode/data/npm/keywords/package.json.expected +++ b/tests/packagedcode/data/npm/keywords/package.json.expected @@ -72,6 +72,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/lodash.clonedeep@4.3.2", "repository_homepage_url": "https://www.npmjs.com/package/lodash.clonedeep", "repository_download_url": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.3.2.tgz", diff --git a/tests/packagedcode/data/npm/legacy_license_dict/package.json.expected b/tests/packagedcode/data/npm/legacy_license_dict/package.json.expected index fa9d21667a7..b41ef0a5b7e 100644 --- a/tests/packagedcode/data/npm/legacy_license_dict/package.json.expected +++ b/tests/packagedcode/data/npm/legacy_license_dict/package.json.expected @@ -106,6 +106,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/grunt-inline-imgsize@0.0.1", "repository_homepage_url": "https://www.npmjs.com/package/grunt-inline-imgsize", "repository_download_url": "https://registry.npmjs.org/grunt-inline-imgsize/-/grunt-inline-imgsize-0.0.1.tgz", diff --git a/tests/packagedcode/data/npm/mime-1.3.4/package.json.expected b/tests/packagedcode/data/npm/mime-1.3.4/package.json.expected index 489eb4db467..70d8b21e422 100644 --- a/tests/packagedcode/data/npm/mime-1.3.4/package.json.expected +++ b/tests/packagedcode/data/npm/mime-1.3.4/package.json.expected @@ -61,6 +61,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/mime@1.3.4", "repository_homepage_url": "https://www.npmjs.com/package/mime", "repository_download_url": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", diff --git a/tests/packagedcode/data/npm/nodep/package.json.expected b/tests/packagedcode/data/npm/nodep/package.json.expected index 754204d611f..03b00a29641 100644 --- a/tests/packagedcode/data/npm/nodep/package.json.expected +++ b/tests/packagedcode/data/npm/nodep/package.json.expected @@ -230,6 +230,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/etcd-dashboard@0.0.0", "repository_homepage_url": "https://www.npmjs.com/package/etcd-dashboard", "repository_download_url": "https://registry.npmjs.org/etcd-dashboard/-/etcd-dashboard-0.0.0.tgz", diff --git a/tests/packagedcode/data/npm/npm-shrinkwrap/npm-shrinkwrap.json-expected b/tests/packagedcode/data/npm/npm-shrinkwrap/npm-shrinkwrap.json-expected index e2f9ea12c7a..ddcf5ef6f65 100644 --- a/tests/packagedcode/data/npm/npm-shrinkwrap/npm-shrinkwrap.json-expected +++ b/tests/packagedcode/data/npm/npm-shrinkwrap/npm-shrinkwrap.json-expected @@ -3454,6 +3454,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/bootstrap@3.3.7", "repository_homepage_url": "https://www.npmjs.com/package/bootstrap", "repository_download_url": "https://registry.npmjs.org/bootstrap/-/bootstrap-3.3.7.tgz", @@ -3489,6 +3490,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/abbrev@1.0.9", "repository_homepage_url": "https://www.npmjs.com/package/abbrev", "repository_download_url": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", @@ -3524,6 +3526,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/accepts@1.3.3", "repository_homepage_url": "https://www.npmjs.com/package/accepts", "repository_download_url": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", @@ -3559,6 +3562,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/acorn@3.2.0", "repository_homepage_url": "https://www.npmjs.com/package/acorn", "repository_download_url": "https://registry.npmjs.org/acorn/-/acorn-3.2.0.tgz", @@ -3594,6 +3598,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/acorn-globals@3.0.0", "repository_homepage_url": "https://www.npmjs.com/package/acorn-globals", "repository_download_url": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.0.0.tgz", @@ -3638,6 +3643,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/agent-base@2.0.1", "repository_homepage_url": "https://www.npmjs.com/package/agent-base", "repository_download_url": "https://registry.npmjs.org/agent-base/-/agent-base-2.0.1.tgz", @@ -3673,6 +3679,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/align-text@0.1.4", "repository_homepage_url": "https://www.npmjs.com/package/align-text", "repository_download_url": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", @@ -3708,6 +3715,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/amdefine@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/amdefine", "repository_download_url": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz", @@ -3743,6 +3751,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/ansi-regex@2.0.0", "repository_homepage_url": "https://www.npmjs.com/package/ansi-regex", "repository_download_url": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz", @@ -3778,6 +3787,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/ansi-styles@2.2.1", "repository_homepage_url": "https://www.npmjs.com/package/ansi-styles", "repository_download_url": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", @@ -3822,6 +3832,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/archiver@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/archiver", "repository_download_url": "https://registry.npmjs.org/archiver/-/archiver-1.0.0.tgz", @@ -3866,6 +3877,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/archiver-utils@1.2.0", "repository_homepage_url": "https://www.npmjs.com/package/archiver-utils", "repository_download_url": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-1.2.0.tgz", @@ -3901,6 +3913,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/argparse@1.0.7", "repository_homepage_url": "https://www.npmjs.com/package/argparse", "repository_download_url": "https://registry.npmjs.org/argparse/-/argparse-1.0.7.tgz", @@ -3936,6 +3949,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/array-differ@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/array-differ", "repository_download_url": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", @@ -3971,6 +3985,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/array-find-index@1.0.1", "repository_homepage_url": "https://www.npmjs.com/package/array-find-index", "repository_download_url": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.1.tgz", @@ -4006,6 +4021,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/array-union@1.0.2", "repository_homepage_url": "https://www.npmjs.com/package/array-union", "repository_download_url": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", @@ -4041,6 +4057,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/array-uniq@1.0.3", "repository_homepage_url": "https://www.npmjs.com/package/array-uniq", "repository_download_url": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", @@ -4076,6 +4093,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/arrify@1.0.1", "repository_homepage_url": "https://www.npmjs.com/package/arrify", "repository_download_url": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", @@ -4111,6 +4129,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/asap@2.0.4", "repository_homepage_url": "https://www.npmjs.com/package/asap", "repository_download_url": "https://registry.npmjs.org/asap/-/asap-2.0.4.tgz", @@ -4146,6 +4165,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/asn1@0.2.3", "repository_homepage_url": "https://www.npmjs.com/package/asn1", "repository_download_url": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", @@ -4181,6 +4201,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/assert-plus@0.2.0", "repository_homepage_url": "https://www.npmjs.com/package/assert-plus", "repository_download_url": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", @@ -4216,6 +4237,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/async@1.5.2", "repository_homepage_url": "https://www.npmjs.com/package/async", "repository_download_url": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", @@ -4251,6 +4273,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/autoprefixer-core@5.2.1", "repository_homepage_url": "https://www.npmjs.com/package/autoprefixer-core", "repository_download_url": "https://registry.npmjs.org/autoprefixer-core/-/autoprefixer-core-5.2.1.tgz", @@ -4286,6 +4309,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/aws-sign2@0.6.0", "repository_homepage_url": "https://www.npmjs.com/package/aws-sign2", "repository_download_url": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", @@ -4321,6 +4345,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/aws4@1.4.1", "repository_homepage_url": "https://www.npmjs.com/package/aws4", "repository_download_url": "https://registry.npmjs.org/aws4/-/aws4-1.4.1.tgz", @@ -4356,6 +4381,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/babel-runtime@6.9.2", "repository_homepage_url": "https://www.npmjs.com/package/babel-runtime", "repository_download_url": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.9.2.tgz", @@ -4391,6 +4417,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/babylon@6.8.4", "repository_homepage_url": "https://www.npmjs.com/package/babylon", "repository_download_url": "https://registry.npmjs.org/babylon/-/babylon-6.8.4.tgz", @@ -4426,6 +4453,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/balanced-match@0.4.1", "repository_homepage_url": "https://www.npmjs.com/package/balanced-match", "repository_download_url": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.1.tgz", @@ -4461,6 +4489,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/basic-auth@1.0.4", "repository_homepage_url": "https://www.npmjs.com/package/basic-auth", "repository_download_url": "https://registry.npmjs.org/basic-auth/-/basic-auth-1.0.4.tgz", @@ -4496,6 +4525,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/batch@0.5.3", "repository_homepage_url": "https://www.npmjs.com/package/batch", "repository_download_url": "https://registry.npmjs.org/batch/-/batch-0.5.3.tgz", @@ -4540,6 +4570,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/bl@1.1.2", "repository_homepage_url": "https://www.npmjs.com/package/bl", "repository_download_url": "https://registry.npmjs.org/bl/-/bl-1.1.2.tgz", @@ -4592,6 +4623,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/body-parser@1.14.2", "repository_homepage_url": "https://www.npmjs.com/package/body-parser", "repository_download_url": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.2.tgz", @@ -4627,6 +4659,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/boom@2.10.1", "repository_homepage_url": "https://www.npmjs.com/package/boom", "repository_download_url": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", @@ -4662,6 +4695,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/brace-expansion@1.1.5", "repository_homepage_url": "https://www.npmjs.com/package/brace-expansion", "repository_download_url": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.5.tgz", @@ -4697,6 +4731,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/browserify-zlib@0.1.4", "repository_homepage_url": "https://www.npmjs.com/package/browserify-zlib", "repository_download_url": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", @@ -4732,6 +4767,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/browserslist@0.4.0", "repository_homepage_url": "https://www.npmjs.com/package/browserslist", "repository_download_url": "https://registry.npmjs.org/browserslist/-/browserslist-0.4.0.tgz", @@ -4767,6 +4803,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/btoa@1.1.2", "repository_homepage_url": "https://www.npmjs.com/package/btoa", "repository_download_url": "https://registry.npmjs.org/btoa/-/btoa-1.1.2.tgz", @@ -4802,6 +4839,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/buffer-crc32@0.2.5", "repository_homepage_url": "https://www.npmjs.com/package/buffer-crc32", "repository_download_url": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.5.tgz", @@ -4837,6 +4875,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/buffer-shims@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/buffer-shims", "repository_download_url": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", @@ -4872,6 +4911,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/builtin-modules@1.1.1", "repository_homepage_url": "https://www.npmjs.com/package/builtin-modules", "repository_download_url": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", @@ -4907,6 +4947,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/bytes@2.2.0", "repository_homepage_url": "https://www.npmjs.com/package/bytes", "repository_download_url": "https://registry.npmjs.org/bytes/-/bytes-2.2.0.tgz", @@ -4942,6 +4983,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/camel-case@3.0.0", "repository_homepage_url": "https://www.npmjs.com/package/camel-case", "repository_download_url": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", @@ -4977,6 +5019,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/camelcase@2.1.1", "repository_homepage_url": "https://www.npmjs.com/package/camelcase", "repository_download_url": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", @@ -5012,6 +5055,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/camelcase-keys@2.1.0", "repository_homepage_url": "https://www.npmjs.com/package/camelcase-keys", "repository_download_url": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", @@ -5047,6 +5091,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/caniuse-db@1.0.30000506", "repository_homepage_url": "https://www.npmjs.com/package/caniuse-db", "repository_download_url": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000506.tgz", @@ -5082,6 +5127,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/caseless@0.11.0", "repository_homepage_url": "https://www.npmjs.com/package/caseless", "repository_download_url": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", @@ -5117,6 +5163,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/center-align@0.1.3", "repository_homepage_url": "https://www.npmjs.com/package/center-align", "repository_download_url": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", @@ -5152,6 +5199,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/chalk@1.1.3", "repository_homepage_url": "https://www.npmjs.com/package/chalk", "repository_download_url": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", @@ -5187,6 +5235,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/change-case@3.0.0", "repository_homepage_url": "https://www.npmjs.com/package/change-case", "repository_download_url": "https://registry.npmjs.org/change-case/-/change-case-3.0.0.tgz", @@ -5222,6 +5271,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/character-parser@2.2.0", "repository_homepage_url": "https://www.npmjs.com/package/character-parser", "repository_download_url": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", @@ -5257,6 +5307,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/clean-css@3.4.18", "repository_homepage_url": "https://www.npmjs.com/package/clean-css", "repository_download_url": "https://registry.npmjs.org/clean-css/-/clean-css-3.4.18.tgz", @@ -5309,6 +5360,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/cli@0.6.6", "repository_homepage_url": "https://www.npmjs.com/package/cli", "repository_download_url": "https://registry.npmjs.org/cli/-/cli-0.6.6.tgz", @@ -5353,6 +5405,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/cli-table@0.3.1", "repository_homepage_url": "https://www.npmjs.com/package/cli-table", "repository_download_url": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", @@ -5388,6 +5441,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/cliui@2.1.0", "repository_homepage_url": "https://www.npmjs.com/package/cliui", "repository_download_url": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", @@ -5423,6 +5477,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/coffee-script@1.10.0", "repository_homepage_url": "https://www.npmjs.com/package/coffee-script", "repository_download_url": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.10.0.tgz", @@ -5458,6 +5513,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/colors@1.1.2", "repository_homepage_url": "https://www.npmjs.com/package/colors", "repository_download_url": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", @@ -5493,6 +5549,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/combined-stream@1.0.5", "repository_homepage_url": "https://www.npmjs.com/package/combined-stream", "repository_download_url": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", @@ -5528,6 +5585,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/commander@2.8.1", "repository_homepage_url": "https://www.npmjs.com/package/commander", "repository_download_url": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", @@ -5563,6 +5621,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/comment-parser@0.3.1", "repository_homepage_url": "https://www.npmjs.com/package/comment-parser", "repository_download_url": "https://registry.npmjs.org/comment-parser/-/comment-parser-0.3.1.tgz", @@ -5598,6 +5657,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/compress-commons@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/compress-commons", "repository_download_url": "https://registry.npmjs.org/compress-commons/-/compress-commons-1.0.0.tgz", @@ -5633,6 +5693,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/concat-map@0.0.1", "repository_homepage_url": "https://www.npmjs.com/package/concat-map", "repository_download_url": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -5677,6 +5738,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/concat-stream@1.5.1", "repository_homepage_url": "https://www.npmjs.com/package/concat-stream", "repository_download_url": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.1.tgz", @@ -5712,6 +5774,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/connect@3.4.1", "repository_homepage_url": "https://www.npmjs.com/package/connect", "repository_download_url": "https://registry.npmjs.org/connect/-/connect-3.4.1.tgz", @@ -5747,6 +5810,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/connect-livereload@0.5.4", "repository_homepage_url": "https://www.npmjs.com/package/connect-livereload", "repository_download_url": "https://registry.npmjs.org/connect-livereload/-/connect-livereload-0.5.4.tgz", @@ -5782,6 +5846,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/console-browserify@1.1.0", "repository_homepage_url": "https://www.npmjs.com/package/console-browserify", "repository_download_url": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", @@ -5817,6 +5882,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/constant-case@2.0.0", "repository_homepage_url": "https://www.npmjs.com/package/constant-case", "repository_download_url": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz", @@ -5852,6 +5918,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/constantinople@3.1.0", "repository_homepage_url": "https://www.npmjs.com/package/constantinople", "repository_download_url": "https://registry.npmjs.org/constantinople/-/constantinople-3.1.0.tgz", @@ -5887,6 +5954,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/content-type@1.0.2", "repository_homepage_url": "https://www.npmjs.com/package/content-type", "repository_download_url": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz", @@ -5922,6 +5990,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/core-js@2.4.0", "repository_homepage_url": "https://www.npmjs.com/package/core-js", "repository_download_url": "https://registry.npmjs.org/core-js/-/core-js-2.4.0.tgz", @@ -5957,6 +6026,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/core-util-is@1.0.2", "repository_homepage_url": "https://www.npmjs.com/package/core-util-is", "repository_download_url": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", @@ -5992,6 +6062,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/crc32-stream@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/crc32-stream", "repository_download_url": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-1.0.0.tgz", @@ -6027,6 +6098,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/cryptiles@2.0.5", "repository_homepage_url": "https://www.npmjs.com/package/cryptiles", "repository_download_url": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", @@ -6071,6 +6143,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/csscomb@3.1.8", "repository_homepage_url": "https://www.npmjs.com/package/csscomb", "repository_download_url": "https://registry.npmjs.org/csscomb/-/csscomb-3.1.8.tgz", @@ -6115,6 +6188,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/csscomb-core@3.0.0-3.1", "repository_homepage_url": "https://www.npmjs.com/package/csscomb-core", "repository_download_url": "https://registry.npmjs.org/csscomb-core/-/csscomb-core-3.0.0-3.1.tgz", @@ -6150,6 +6224,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/csslint@0.10.0", "repository_homepage_url": "https://www.npmjs.com/package/csslint", "repository_download_url": "https://registry.npmjs.org/csslint/-/csslint-0.10.0.tgz", @@ -6185,6 +6260,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/cst@0.4.4", "repository_homepage_url": "https://www.npmjs.com/package/cst", "repository_download_url": "https://registry.npmjs.org/cst/-/cst-0.4.4.tgz", @@ -6220,6 +6296,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/currently-unhandled@0.4.1", "repository_homepage_url": "https://www.npmjs.com/package/currently-unhandled", "repository_download_url": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", @@ -6255,6 +6332,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/cycle@1.0.3", "repository_homepage_url": "https://www.npmjs.com/package/cycle", "repository_download_url": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", @@ -6299,6 +6377,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/dashdash@1.14.0", "repository_homepage_url": "https://www.npmjs.com/package/dashdash", "repository_download_url": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.0.tgz", @@ -6334,6 +6413,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/date-now@0.1.4", "repository_homepage_url": "https://www.npmjs.com/package/date-now", "repository_download_url": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", @@ -6369,6 +6449,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/date-time@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/date-time", "repository_download_url": "https://registry.npmjs.org/date-time/-/date-time-1.0.0.tgz", @@ -6404,6 +6485,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/dateformat@1.0.12", "repository_homepage_url": "https://www.npmjs.com/package/dateformat", "repository_download_url": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", @@ -6439,6 +6521,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/debug@2.2.0", "repository_homepage_url": "https://www.npmjs.com/package/debug", "repository_download_url": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", @@ -6474,6 +6557,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/decamelize@1.2.0", "repository_homepage_url": "https://www.npmjs.com/package/decamelize", "repository_download_url": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", @@ -6509,6 +6593,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/deep-equal@1.0.1", "repository_homepage_url": "https://www.npmjs.com/package/deep-equal", "repository_download_url": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", @@ -6544,6 +6629,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/delayed-stream@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/delayed-stream", "repository_download_url": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -6579,6 +6665,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/depd@1.1.0", "repository_homepage_url": "https://www.npmjs.com/package/depd", "repository_download_url": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz", @@ -6614,6 +6701,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/destroy@1.0.4", "repository_homepage_url": "https://www.npmjs.com/package/destroy", "repository_download_url": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", @@ -6649,6 +6737,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/diff@1.3.2", "repository_homepage_url": "https://www.npmjs.com/package/diff", "repository_download_url": "https://registry.npmjs.org/diff/-/diff-1.3.2.tgz", @@ -6684,6 +6773,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/doctypes@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/doctypes", "repository_download_url": "https://registry.npmjs.org/doctypes/-/doctypes-1.0.0.tgz", @@ -6736,6 +6826,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/dom-serializer@0.1.0", "repository_homepage_url": "https://www.npmjs.com/package/dom-serializer", "repository_download_url": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", @@ -6771,6 +6862,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/domelementtype@1.3.0", "repository_homepage_url": "https://www.npmjs.com/package/domelementtype", "repository_download_url": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", @@ -6806,6 +6898,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/domhandler@2.3.0", "repository_homepage_url": "https://www.npmjs.com/package/domhandler", "repository_download_url": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", @@ -6841,6 +6934,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/domutils@1.5.1", "repository_homepage_url": "https://www.npmjs.com/package/domutils", "repository_download_url": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", @@ -6876,6 +6970,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/dot-case@2.1.0", "repository_homepage_url": "https://www.npmjs.com/package/dot-case", "repository_download_url": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.0.tgz", @@ -6911,6 +7006,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/ecc-jsbn@0.1.1", "repository_homepage_url": "https://www.npmjs.com/package/ecc-jsbn", "repository_download_url": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", @@ -6946,6 +7042,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/ee-first@1.1.1", "repository_homepage_url": "https://www.npmjs.com/package/ee-first", "repository_download_url": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -6981,6 +7078,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/encodeurl@1.0.1", "repository_homepage_url": "https://www.npmjs.com/package/encodeurl", "repository_download_url": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", @@ -7016,6 +7114,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/end-of-stream@1.1.0", "repository_homepage_url": "https://www.npmjs.com/package/end-of-stream", "repository_download_url": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.1.0.tgz", @@ -7051,6 +7150,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/entities@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/entities", "repository_download_url": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", @@ -7086,6 +7186,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/errno@0.1.4", "repository_homepage_url": "https://www.npmjs.com/package/errno", "repository_download_url": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", @@ -7121,6 +7222,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/error-ex@1.3.0", "repository_homepage_url": "https://www.npmjs.com/package/error-ex", "repository_download_url": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.0.tgz", @@ -7156,6 +7258,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/es6-promise@2.3.0", "repository_homepage_url": "https://www.npmjs.com/package/es6-promise", "repository_download_url": "https://registry.npmjs.org/es6-promise/-/es6-promise-2.3.0.tgz", @@ -7191,6 +7294,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/escape-html@1.0.3", "repository_homepage_url": "https://www.npmjs.com/package/escape-html", "repository_download_url": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -7226,6 +7330,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/escape-string-regexp@1.0.5", "repository_homepage_url": "https://www.npmjs.com/package/escape-string-regexp", "repository_download_url": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -7261,6 +7366,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/esprima@2.7.2", "repository_homepage_url": "https://www.npmjs.com/package/esprima", "repository_download_url": "https://registry.npmjs.org/esprima/-/esprima-2.7.2.tgz", @@ -7296,6 +7402,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/estraverse@4.2.0", "repository_homepage_url": "https://www.npmjs.com/package/estraverse", "repository_download_url": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", @@ -7331,6 +7438,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/etag@1.7.0", "repository_homepage_url": "https://www.npmjs.com/package/etag", "repository_download_url": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz", @@ -7366,6 +7474,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/eventemitter2@0.4.14", "repository_homepage_url": "https://www.npmjs.com/package/eventemitter2", "repository_download_url": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", @@ -7401,6 +7510,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/exit@0.1.2", "repository_homepage_url": "https://www.npmjs.com/package/exit", "repository_download_url": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", @@ -7436,6 +7546,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/extend@3.0.0", "repository_homepage_url": "https://www.npmjs.com/package/extend", "repository_download_url": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz", @@ -7512,6 +7623,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/extract-zip@1.5.0", "repository_homepage_url": "https://www.npmjs.com/package/extract-zip", "repository_download_url": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.5.0.tgz", @@ -7547,6 +7659,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/extsprintf@1.0.2", "repository_homepage_url": "https://www.npmjs.com/package/extsprintf", "repository_download_url": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", @@ -7582,6 +7695,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/eyes@0.1.8", "repository_homepage_url": "https://www.npmjs.com/package/eyes", "repository_download_url": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", @@ -7617,6 +7731,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/faye-websocket@0.10.0", "repository_homepage_url": "https://www.npmjs.com/package/faye-websocket", "repository_download_url": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", @@ -7652,6 +7767,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/fd-slicer@1.0.1", "repository_homepage_url": "https://www.npmjs.com/package/fd-slicer", "repository_download_url": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", @@ -7704,6 +7820,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/fg-lodash@0.0.2", "repository_homepage_url": "https://www.npmjs.com/package/fg-lodash", "repository_download_url": "https://registry.npmjs.org/fg-lodash/-/fg-lodash-0.0.2.tgz", @@ -7739,6 +7856,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/figures@1.7.0", "repository_homepage_url": "https://www.npmjs.com/package/figures", "repository_download_url": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", @@ -7774,6 +7892,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/file-sync-cmp@0.1.1", "repository_homepage_url": "https://www.npmjs.com/package/file-sync-cmp", "repository_download_url": "https://registry.npmjs.org/file-sync-cmp/-/file-sync-cmp-0.1.1.tgz", @@ -7809,6 +7928,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/finalhandler@0.4.1", "repository_homepage_url": "https://www.npmjs.com/package/finalhandler", "repository_download_url": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.4.1.tgz", @@ -7844,6 +7964,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/find-up@1.1.2", "repository_homepage_url": "https://www.npmjs.com/package/find-up", "repository_download_url": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", @@ -7888,6 +8009,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/findup-sync@0.3.0", "repository_homepage_url": "https://www.npmjs.com/package/findup-sync", "repository_download_url": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz", @@ -7923,6 +8045,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/forever-agent@0.6.1", "repository_homepage_url": "https://www.npmjs.com/package/forever-agent", "repository_download_url": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -7958,6 +8081,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/form-data@1.0.0-rc4", "repository_homepage_url": "https://www.npmjs.com/package/form-data", "repository_download_url": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc4.tgz", @@ -7993,6 +8117,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/fresh@0.3.0", "repository_homepage_url": "https://www.npmjs.com/package/fresh", "repository_download_url": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz", @@ -8028,6 +8153,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/fs-extra@0.26.7", "repository_homepage_url": "https://www.npmjs.com/package/fs-extra", "repository_download_url": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.26.7.tgz", @@ -8063,6 +8189,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/fs.realpath@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/fs.realpath", "repository_download_url": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -8098,6 +8225,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/gaze@1.1.0", "repository_homepage_url": "https://www.npmjs.com/package/gaze", "repository_download_url": "https://registry.npmjs.org/gaze/-/gaze-1.1.0.tgz", @@ -8133,6 +8261,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/generate-function@2.0.0", "repository_homepage_url": "https://www.npmjs.com/package/generate-function", "repository_download_url": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", @@ -8168,6 +8297,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/generate-object-property@1.2.0", "repository_homepage_url": "https://www.npmjs.com/package/generate-object-property", "repository_download_url": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", @@ -8203,6 +8333,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/get-stdin@4.0.1", "repository_homepage_url": "https://www.npmjs.com/package/get-stdin", "repository_download_url": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", @@ -8238,6 +8369,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/getobject@0.1.0", "repository_homepage_url": "https://www.npmjs.com/package/getobject", "repository_download_url": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz", @@ -8282,6 +8414,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/getpass@0.1.6", "repository_homepage_url": "https://www.npmjs.com/package/getpass", "repository_download_url": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz", @@ -8317,6 +8450,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/glob@7.0.5", "repository_homepage_url": "https://www.npmjs.com/package/glob", "repository_download_url": "https://registry.npmjs.org/glob/-/glob-7.0.5.tgz", @@ -8361,6 +8495,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/globule@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/globule", "repository_download_url": "https://registry.npmjs.org/globule/-/globule-1.0.0.tgz", @@ -8396,6 +8531,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/gonzales-pe@3.0.0-28", "repository_homepage_url": "https://www.npmjs.com/package/gonzales-pe", "repository_download_url": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-3.0.0-28.tgz", @@ -8431,6 +8567,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/graceful-fs@4.1.4", "repository_homepage_url": "https://www.npmjs.com/package/graceful-fs", "repository_download_url": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.4.tgz", @@ -8466,6 +8603,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/graceful-readlink@1.0.1", "repository_homepage_url": "https://www.npmjs.com/package/graceful-readlink", "repository_download_url": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", @@ -8510,6 +8648,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/grunt@1.0.1", "repository_homepage_url": "https://www.npmjs.com/package/grunt", "repository_download_url": "https://registry.npmjs.org/grunt/-/grunt-1.0.1.tgz", @@ -8586,6 +8725,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/grunt-autoprefixer@3.0.4", "repository_homepage_url": "https://www.npmjs.com/package/grunt-autoprefixer", "repository_download_url": "https://registry.npmjs.org/grunt-autoprefixer/-/grunt-autoprefixer-3.0.4.tgz", @@ -8630,6 +8770,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/grunt-contrib-clean@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/grunt-contrib-clean", "repository_download_url": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-1.0.0.tgz", @@ -8674,6 +8815,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/grunt-contrib-compress@1.3.0", "repository_homepage_url": "https://www.npmjs.com/package/grunt-contrib-compress", "repository_download_url": "https://registry.npmjs.org/grunt-contrib-compress/-/grunt-contrib-compress-1.3.0.tgz", @@ -8718,6 +8860,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/grunt-contrib-concat@1.0.1", "repository_homepage_url": "https://www.npmjs.com/package/grunt-contrib-concat", "repository_download_url": "https://registry.npmjs.org/grunt-contrib-concat/-/grunt-contrib-concat-1.0.1.tgz", @@ -8753,6 +8896,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/grunt-contrib-connect@1.0.2", "repository_homepage_url": "https://www.npmjs.com/package/grunt-contrib-connect", "repository_download_url": "https://registry.npmjs.org/grunt-contrib-connect/-/grunt-contrib-connect-1.0.2.tgz", @@ -8788,6 +8932,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/grunt-contrib-copy@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/grunt-contrib-copy", "repository_download_url": "https://registry.npmjs.org/grunt-contrib-copy/-/grunt-contrib-copy-1.0.0.tgz", @@ -8823,6 +8968,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/grunt-contrib-csslint@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/grunt-contrib-csslint", "repository_download_url": "https://registry.npmjs.org/grunt-contrib-csslint/-/grunt-contrib-csslint-1.0.0.tgz", @@ -8858,6 +9004,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/grunt-contrib-cssmin@1.0.1", "repository_homepage_url": "https://www.npmjs.com/package/grunt-contrib-cssmin", "repository_download_url": "https://registry.npmjs.org/grunt-contrib-cssmin/-/grunt-contrib-cssmin-1.0.1.tgz", @@ -8893,6 +9040,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/grunt-contrib-htmlmin@1.5.0", "repository_homepage_url": "https://www.npmjs.com/package/grunt-contrib-htmlmin", "repository_download_url": "https://registry.npmjs.org/grunt-contrib-htmlmin/-/grunt-contrib-htmlmin-1.5.0.tgz", @@ -8928,6 +9076,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/grunt-contrib-jshint@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/grunt-contrib-jshint", "repository_download_url": "https://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-1.0.0.tgz", @@ -8972,6 +9121,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/grunt-contrib-less@1.3.0", "repository_homepage_url": "https://www.npmjs.com/package/grunt-contrib-less", "repository_download_url": "https://registry.npmjs.org/grunt-contrib-less/-/grunt-contrib-less-1.3.0.tgz", @@ -9007,6 +9157,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/grunt-contrib-pug@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/grunt-contrib-pug", "repository_download_url": "https://registry.npmjs.org/grunt-contrib-pug/-/grunt-contrib-pug-1.0.0.tgz", @@ -9042,6 +9193,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/grunt-contrib-qunit@0.7.0", "repository_homepage_url": "https://www.npmjs.com/package/grunt-contrib-qunit", "repository_download_url": "https://registry.npmjs.org/grunt-contrib-qunit/-/grunt-contrib-qunit-0.7.0.tgz", @@ -9086,6 +9238,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/grunt-contrib-uglify@1.0.1", "repository_homepage_url": "https://www.npmjs.com/package/grunt-contrib-uglify", "repository_download_url": "https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-1.0.1.tgz", @@ -9121,6 +9274,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/grunt-contrib-watch@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/grunt-contrib-watch", "repository_download_url": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-1.0.0.tgz", @@ -9156,6 +9310,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/grunt-csscomb@3.1.1", "repository_homepage_url": "https://www.npmjs.com/package/grunt-csscomb", "repository_download_url": "https://registry.npmjs.org/grunt-csscomb/-/grunt-csscomb-3.1.1.tgz", @@ -9191,6 +9346,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/grunt-exec@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/grunt-exec", "repository_download_url": "https://registry.npmjs.org/grunt-exec/-/grunt-exec-1.0.0.tgz", @@ -9226,6 +9382,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/grunt-html@8.0.2", "repository_homepage_url": "https://www.npmjs.com/package/grunt-html", "repository_download_url": "https://registry.npmjs.org/grunt-html/-/grunt-html-8.0.2.tgz", @@ -9261,6 +9418,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/grunt-jekyll@0.4.4", "repository_homepage_url": "https://www.npmjs.com/package/grunt-jekyll", "repository_download_url": "https://registry.npmjs.org/grunt-jekyll/-/grunt-jekyll-0.4.4.tgz", @@ -9305,6 +9463,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/grunt-jscs@3.0.1", "repository_homepage_url": "https://www.npmjs.com/package/grunt-jscs", "repository_download_url": "https://registry.npmjs.org/grunt-jscs/-/grunt-jscs-3.0.1.tgz", @@ -9340,6 +9499,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/grunt-known-options@1.1.0", "repository_homepage_url": "https://www.npmjs.com/package/grunt-known-options", "repository_download_url": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.0.tgz", @@ -9375,6 +9535,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/grunt-legacy-log@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/grunt-legacy-log", "repository_download_url": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-1.0.0.tgz", @@ -9419,6 +9580,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/grunt-legacy-log-utils@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/grunt-legacy-log-utils", "repository_download_url": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-1.0.0.tgz", @@ -9463,6 +9625,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/grunt-legacy-util@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/grunt-legacy-util", "repository_download_url": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-1.0.0.tgz", @@ -9507,6 +9670,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/grunt-lib-phantomjs@0.6.0", "repository_homepage_url": "https://www.npmjs.com/package/grunt-lib-phantomjs", "repository_download_url": "https://registry.npmjs.org/grunt-lib-phantomjs/-/grunt-lib-phantomjs-0.6.0.tgz", @@ -9551,6 +9715,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/grunt-saucelabs@9.0.0", "repository_homepage_url": "https://www.npmjs.com/package/grunt-saucelabs", "repository_download_url": "https://registry.npmjs.org/grunt-saucelabs/-/grunt-saucelabs-9.0.0.tgz", @@ -9586,6 +9751,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/gzip-size@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/gzip-size", "repository_download_url": "https://registry.npmjs.org/gzip-size/-/gzip-size-1.0.0.tgz", @@ -9630,6 +9796,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/har-validator@2.0.6", "repository_homepage_url": "https://www.npmjs.com/package/har-validator", "repository_download_url": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", @@ -9665,6 +9832,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/has-ansi@2.0.0", "repository_homepage_url": "https://www.npmjs.com/package/has-ansi", "repository_download_url": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", @@ -9700,6 +9868,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/has-color@0.1.7", "repository_homepage_url": "https://www.npmjs.com/package/has-color", "repository_download_url": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz", @@ -9735,6 +9904,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/hasha@2.2.0", "repository_homepage_url": "https://www.npmjs.com/package/hasha", "repository_download_url": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz", @@ -9770,6 +9940,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/hawk@3.1.3", "repository_homepage_url": "https://www.npmjs.com/package/hawk", "repository_download_url": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", @@ -9805,6 +9976,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/he@1.1.0", "repository_homepage_url": "https://www.npmjs.com/package/he", "repository_download_url": "https://registry.npmjs.org/he/-/he-1.1.0.tgz", @@ -9840,6 +10012,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/header-case@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/header-case", "repository_download_url": "https://registry.npmjs.org/header-case/-/header-case-1.0.0.tgz", @@ -9875,6 +10048,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/hoek@2.16.3", "repository_homepage_url": "https://www.npmjs.com/package/hoek", "repository_download_url": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", @@ -9910,6 +10084,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/hooker@0.2.3", "repository_homepage_url": "https://www.npmjs.com/package/hooker", "repository_download_url": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", @@ -9945,6 +10120,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/hosted-git-info@2.1.5", "repository_homepage_url": "https://www.npmjs.com/package/hosted-git-info", "repository_download_url": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.1.5.tgz", @@ -9989,6 +10165,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/html-minifier@2.1.7", "repository_homepage_url": "https://www.npmjs.com/package/html-minifier", "repository_download_url": "https://registry.npmjs.org/html-minifier/-/html-minifier-2.1.7.tgz", @@ -10041,6 +10218,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/htmlparser2@3.8.3", "repository_homepage_url": "https://www.npmjs.com/package/htmlparser2", "repository_download_url": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", @@ -10076,6 +10254,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/http-errors@1.5.0", "repository_homepage_url": "https://www.npmjs.com/package/http-errors", "repository_download_url": "https://registry.npmjs.org/http-errors/-/http-errors-1.5.0.tgz", @@ -10111,6 +10290,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/http-signature@1.1.1", "repository_homepage_url": "https://www.npmjs.com/package/http-signature", "repository_download_url": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", @@ -10146,6 +10326,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/http2@3.3.4", "repository_homepage_url": "https://www.npmjs.com/package/http2", "repository_download_url": "https://registry.npmjs.org/http2/-/http2-3.3.4.tgz", @@ -10181,6 +10362,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/https-proxy-agent@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/https-proxy-agent", "repository_download_url": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz", @@ -10216,6 +10398,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/i@0.3.5", "repository_homepage_url": "https://www.npmjs.com/package/i", "repository_download_url": "https://registry.npmjs.org/i/-/i-0.3.5.tgz", @@ -10251,6 +10434,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/iconv-lite@0.4.13", "repository_homepage_url": "https://www.npmjs.com/package/iconv-lite", "repository_download_url": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz", @@ -10286,6 +10470,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/image-size@0.4.0", "repository_homepage_url": "https://www.npmjs.com/package/image-size", "repository_download_url": "https://registry.npmjs.org/image-size/-/image-size-0.4.0.tgz", @@ -10321,6 +10506,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/indent-string@2.1.0", "repository_homepage_url": "https://www.npmjs.com/package/indent-string", "repository_download_url": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", @@ -10356,6 +10542,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/inflight@1.0.5", "repository_homepage_url": "https://www.npmjs.com/package/inflight", "repository_download_url": "https://registry.npmjs.org/inflight/-/inflight-1.0.5.tgz", @@ -10391,6 +10578,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/inherit@2.2.4", "repository_homepage_url": "https://www.npmjs.com/package/inherit", "repository_download_url": "https://registry.npmjs.org/inherit/-/inherit-2.2.4.tgz", @@ -10426,6 +10614,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/inherits@2.0.1", "repository_homepage_url": "https://www.npmjs.com/package/inherits", "repository_download_url": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", @@ -10461,6 +10650,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/interpret@1.0.1", "repository_homepage_url": "https://www.npmjs.com/package/interpret", "repository_download_url": "https://registry.npmjs.org/interpret/-/interpret-1.0.1.tgz", @@ -10496,6 +10686,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/is-arrayish@0.2.1", "repository_homepage_url": "https://www.npmjs.com/package/is-arrayish", "repository_download_url": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -10531,6 +10722,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/is-buffer@1.1.3", "repository_homepage_url": "https://www.npmjs.com/package/is-buffer", "repository_download_url": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.3.tgz", @@ -10566,6 +10758,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/is-builtin-module@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/is-builtin-module", "repository_download_url": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", @@ -10610,6 +10803,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/is-expression@2.0.1", "repository_homepage_url": "https://www.npmjs.com/package/is-expression", "repository_download_url": "https://registry.npmjs.org/is-expression/-/is-expression-2.0.1.tgz", @@ -10645,6 +10839,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/is-finite@1.0.1", "repository_homepage_url": "https://www.npmjs.com/package/is-finite", "repository_download_url": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.1.tgz", @@ -10680,6 +10875,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/is-lower-case@1.1.3", "repository_homepage_url": "https://www.npmjs.com/package/is-lower-case", "repository_download_url": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", @@ -10715,6 +10911,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/is-my-json-valid@2.13.1", "repository_homepage_url": "https://www.npmjs.com/package/is-my-json-valid", "repository_download_url": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.13.1.tgz", @@ -10750,6 +10947,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/is-promise@2.1.0", "repository_homepage_url": "https://www.npmjs.com/package/is-promise", "repository_download_url": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", @@ -10785,6 +10983,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/is-property@1.0.2", "repository_homepage_url": "https://www.npmjs.com/package/is-property", "repository_download_url": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", @@ -10820,6 +11019,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/is-regex@1.0.3", "repository_homepage_url": "https://www.npmjs.com/package/is-regex", "repository_download_url": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.3.tgz", @@ -10855,6 +11055,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/is-stream@1.1.0", "repository_homepage_url": "https://www.npmjs.com/package/is-stream", "repository_download_url": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", @@ -10890,6 +11091,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/is-typedarray@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/is-typedarray", "repository_download_url": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", @@ -10925,6 +11127,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/is-upper-case@1.1.2", "repository_homepage_url": "https://www.npmjs.com/package/is-upper-case", "repository_download_url": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", @@ -10960,6 +11163,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/is-utf8@0.2.1", "repository_homepage_url": "https://www.npmjs.com/package/is-utf8", "repository_download_url": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", @@ -10995,6 +11199,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/isarray@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/isarray", "repository_download_url": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -11030,6 +11235,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/isexe@1.1.2", "repository_homepage_url": "https://www.npmjs.com/package/isexe", "repository_download_url": "https://registry.npmjs.org/isexe/-/isexe-1.1.2.tgz", @@ -11065,6 +11271,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/isstream@0.1.2", "repository_homepage_url": "https://www.npmjs.com/package/isstream", "repository_download_url": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", @@ -11100,6 +11307,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/jodid25519@1.0.2", "repository_homepage_url": "https://www.npmjs.com/package/jodid25519", "repository_download_url": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", @@ -11135,6 +11343,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/js-base64@2.1.9", "repository_homepage_url": "https://www.npmjs.com/package/js-base64", "repository_download_url": "https://registry.npmjs.org/js-base64/-/js-base64-2.1.9.tgz", @@ -11170,6 +11379,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/js-stringify@1.0.2", "repository_homepage_url": "https://www.npmjs.com/package/js-stringify", "repository_download_url": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", @@ -11205,6 +11415,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/js-yaml@3.5.5", "repository_homepage_url": "https://www.npmjs.com/package/js-yaml", "repository_download_url": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.5.5.tgz", @@ -11240,6 +11451,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/jsbn@0.1.0", "repository_homepage_url": "https://www.npmjs.com/package/jsbn", "repository_download_url": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz", @@ -11324,6 +11536,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/jscs@3.0.7", "repository_homepage_url": "https://www.npmjs.com/package/jscs", "repository_download_url": "https://registry.npmjs.org/jscs/-/jscs-3.0.7.tgz", @@ -11359,6 +11572,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/jscs-jsdoc@2.0.0", "repository_homepage_url": "https://www.npmjs.com/package/jscs-jsdoc", "repository_download_url": "https://registry.npmjs.org/jscs-jsdoc/-/jscs-jsdoc-2.0.0.tgz", @@ -11394,6 +11608,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/jscs-preset-wikimedia@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/jscs-preset-wikimedia", "repository_download_url": "https://registry.npmjs.org/jscs-preset-wikimedia/-/jscs-preset-wikimedia-1.0.0.tgz", @@ -11429,6 +11644,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/jsdoctypeparser@1.2.0", "repository_homepage_url": "https://www.npmjs.com/package/jsdoctypeparser", "repository_download_url": "https://registry.npmjs.org/jsdoctypeparser/-/jsdoctypeparser-1.2.0.tgz", @@ -11489,6 +11705,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/jshint@2.9.2", "repository_homepage_url": "https://www.npmjs.com/package/jshint", "repository_download_url": "https://registry.npmjs.org/jshint/-/jshint-2.9.2.tgz", @@ -11524,6 +11741,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/json-schema@0.2.2", "repository_homepage_url": "https://www.npmjs.com/package/json-schema", "repository_download_url": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.2.tgz", @@ -11559,6 +11777,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/json-stringify-safe@5.0.1", "repository_homepage_url": "https://www.npmjs.com/package/json-stringify-safe", "repository_download_url": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", @@ -11594,6 +11813,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/jsonfile@2.3.1", "repository_homepage_url": "https://www.npmjs.com/package/jsonfile", "repository_download_url": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.3.1.tgz", @@ -11629,6 +11849,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/jsonlint@1.6.2", "repository_homepage_url": "https://www.npmjs.com/package/jsonlint", "repository_download_url": "https://registry.npmjs.org/jsonlint/-/jsonlint-1.6.2.tgz", @@ -11664,6 +11885,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/jsonpointer@2.0.0", "repository_homepage_url": "https://www.npmjs.com/package/jsonpointer", "repository_download_url": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz", @@ -11699,6 +11921,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/jsprim@1.3.0", "repository_homepage_url": "https://www.npmjs.com/package/jsprim", "repository_download_url": "https://registry.npmjs.org/jsprim/-/jsprim-1.3.0.tgz", @@ -11734,6 +11957,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/jstransformer@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/jstransformer", "repository_download_url": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", @@ -11769,6 +11993,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/JSV@4.0.2", "repository_homepage_url": "https://www.npmjs.com/package/JSV", "repository_download_url": "https://registry.npmjs.org/JSV/-/JSV-4.0.2.tgz", @@ -11804,6 +12029,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/kew@0.7.0", "repository_homepage_url": "https://www.npmjs.com/package/kew", "repository_download_url": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz", @@ -11839,6 +12065,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/kind-of@3.0.3", "repository_homepage_url": "https://www.npmjs.com/package/kind-of", "repository_download_url": "https://registry.npmjs.org/kind-of/-/kind-of-3.0.3.tgz", @@ -11874,6 +12101,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/klaw@1.3.0", "repository_homepage_url": "https://www.npmjs.com/package/klaw", "repository_download_url": "https://registry.npmjs.org/klaw/-/klaw-1.3.0.tgz", @@ -11909,6 +12137,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/lazy-cache@1.0.4", "repository_homepage_url": "https://www.npmjs.com/package/lazy-cache", "repository_download_url": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", @@ -11944,6 +12173,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/lazystream@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/lazystream", "repository_download_url": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", @@ -11988,6 +12218,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/less@2.6.1", "repository_homepage_url": "https://www.npmjs.com/package/less", "repository_download_url": "https://registry.npmjs.org/less/-/less-2.6.1.tgz", @@ -12023,6 +12254,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/linkify-it@2.0.0", "repository_homepage_url": "https://www.npmjs.com/package/linkify-it", "repository_download_url": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.0.0.tgz", @@ -12058,6 +12290,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/livereload-js@2.2.2", "repository_homepage_url": "https://www.npmjs.com/package/livereload-js", "repository_download_url": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.2.2.tgz", @@ -12093,6 +12326,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/load-grunt-tasks@3.5.0", "repository_homepage_url": "https://www.npmjs.com/package/load-grunt-tasks", "repository_download_url": "https://registry.npmjs.org/load-grunt-tasks/-/load-grunt-tasks-3.5.0.tgz", @@ -12128,6 +12362,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/load-json-file@1.1.0", "repository_homepage_url": "https://www.npmjs.com/package/load-json-file", "repository_download_url": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", @@ -12163,6 +12398,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/lodash@3.10.1", "repository_homepage_url": "https://www.npmjs.com/package/lodash", "repository_download_url": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", @@ -12198,6 +12434,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/longest@1.0.1", "repository_homepage_url": "https://www.npmjs.com/package/longest", "repository_download_url": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", @@ -12233,6 +12470,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/loud-rejection@1.6.0", "repository_homepage_url": "https://www.npmjs.com/package/loud-rejection", "repository_download_url": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", @@ -12268,6 +12506,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/lower-case@1.1.3", "repository_homepage_url": "https://www.npmjs.com/package/lower-case", "repository_download_url": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.3.tgz", @@ -12303,6 +12542,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/lower-case-first@1.0.2", "repository_homepage_url": "https://www.npmjs.com/package/lower-case-first", "repository_download_url": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", @@ -12338,6 +12578,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/lru-cache@2.7.3", "repository_homepage_url": "https://www.npmjs.com/package/lru-cache", "repository_download_url": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", @@ -12373,6 +12614,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/map-obj@1.0.1", "repository_homepage_url": "https://www.npmjs.com/package/map-obj", "repository_download_url": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", @@ -12417,6 +12659,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/markdown-it@7.0.0", "repository_homepage_url": "https://www.npmjs.com/package/markdown-it", "repository_download_url": "https://registry.npmjs.org/markdown-it/-/markdown-it-7.0.0.tgz", @@ -12461,6 +12704,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/maxmin@1.1.0", "repository_homepage_url": "https://www.npmjs.com/package/maxmin", "repository_download_url": "https://registry.npmjs.org/maxmin/-/maxmin-1.1.0.tgz", @@ -12496,6 +12740,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/mdurl@1.0.1", "repository_homepage_url": "https://www.npmjs.com/package/mdurl", "repository_download_url": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", @@ -12531,6 +12776,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/media-typer@0.3.0", "repository_homepage_url": "https://www.npmjs.com/package/media-typer", "repository_download_url": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -12566,6 +12812,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/meow@3.7.0", "repository_homepage_url": "https://www.npmjs.com/package/meow", "repository_download_url": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", @@ -12601,6 +12848,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/mime@1.3.4", "repository_homepage_url": "https://www.npmjs.com/package/mime", "repository_download_url": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", @@ -12636,6 +12884,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/mime-db@1.23.0", "repository_homepage_url": "https://www.npmjs.com/package/mime-db", "repository_download_url": "https://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz", @@ -12671,6 +12920,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/mime-types@2.1.11", "repository_homepage_url": "https://www.npmjs.com/package/mime-types", "repository_download_url": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz", @@ -12706,6 +12956,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/minimatch@3.0.2", "repository_homepage_url": "https://www.npmjs.com/package/minimatch", "repository_download_url": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.2.tgz", @@ -12741,6 +12992,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/minimist@1.2.0", "repository_homepage_url": "https://www.npmjs.com/package/minimist", "repository_download_url": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", @@ -12785,6 +13037,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/mkdirp@0.5.1", "repository_homepage_url": "https://www.npmjs.com/package/mkdirp", "repository_download_url": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", @@ -12820,6 +13073,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/morgan@1.7.0", "repository_homepage_url": "https://www.npmjs.com/package/morgan", "repository_download_url": "https://registry.npmjs.org/morgan/-/morgan-1.7.0.tgz", @@ -12855,6 +13109,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/ms@0.7.1", "repository_homepage_url": "https://www.npmjs.com/package/ms", "repository_download_url": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", @@ -12890,6 +13145,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/multimatch@2.1.0", "repository_homepage_url": "https://www.npmjs.com/package/multimatch", "repository_download_url": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", @@ -12925,6 +13181,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/mute-stream@0.0.6", "repository_homepage_url": "https://www.npmjs.com/package/mute-stream", "repository_download_url": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.6.tgz", @@ -12960,6 +13217,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/natural-compare@1.2.2", "repository_homepage_url": "https://www.npmjs.com/package/natural-compare", "repository_download_url": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.2.2.tgz", @@ -12995,6 +13253,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/ncname@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/ncname", "repository_download_url": "https://registry.npmjs.org/ncname/-/ncname-1.0.0.tgz", @@ -13030,6 +13289,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/ncp@0.4.2", "repository_homepage_url": "https://www.npmjs.com/package/ncp", "repository_download_url": "https://registry.npmjs.org/ncp/-/ncp-0.4.2.tgz", @@ -13065,6 +13325,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/negotiator@0.6.1", "repository_homepage_url": "https://www.npmjs.com/package/negotiator", "repository_download_url": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", @@ -13100,6 +13361,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/no-case@2.3.0", "repository_homepage_url": "https://www.npmjs.com/package/no-case", "repository_download_url": "https://registry.npmjs.org/no-case/-/no-case-2.3.0.tgz", @@ -13135,6 +13397,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/node-int64@0.4.0", "repository_homepage_url": "https://www.npmjs.com/package/node-int64", "repository_download_url": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -13170,6 +13433,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/node-uuid@1.4.7", "repository_homepage_url": "https://www.npmjs.com/package/node-uuid", "repository_download_url": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz", @@ -13230,6 +13494,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/nomnom@1.8.1", "repository_homepage_url": "https://www.npmjs.com/package/nomnom", "repository_download_url": "https://registry.npmjs.org/nomnom/-/nomnom-1.8.1.tgz", @@ -13265,6 +13530,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/nopt@3.0.6", "repository_homepage_url": "https://www.npmjs.com/package/nopt", "repository_download_url": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", @@ -13300,6 +13566,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/normalize-package-data@2.3.5", "repository_homepage_url": "https://www.npmjs.com/package/normalize-package-data", "repository_download_url": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz", @@ -13335,6 +13602,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/normalize-path@2.0.1", "repository_homepage_url": "https://www.npmjs.com/package/normalize-path", "repository_download_url": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.0.1.tgz", @@ -13370,6 +13638,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/num2fraction@1.2.2", "repository_homepage_url": "https://www.npmjs.com/package/num2fraction", "repository_download_url": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", @@ -13405,6 +13674,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/number-is-nan@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/number-is-nan", "repository_download_url": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.0.tgz", @@ -13440,6 +13710,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/oauth-sign@0.8.2", "repository_homepage_url": "https://www.npmjs.com/package/oauth-sign", "repository_download_url": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", @@ -13475,6 +13746,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/object-assign@4.1.0", "repository_homepage_url": "https://www.npmjs.com/package/object-assign", "repository_download_url": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz", @@ -13510,6 +13782,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/on-finished@2.3.0", "repository_homepage_url": "https://www.npmjs.com/package/on-finished", "repository_download_url": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", @@ -13545,6 +13818,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/on-headers@1.0.1", "repository_homepage_url": "https://www.npmjs.com/package/on-headers", "repository_download_url": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", @@ -13580,6 +13854,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/once@1.3.3", "repository_homepage_url": "https://www.npmjs.com/package/once", "repository_download_url": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", @@ -13615,6 +13890,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/opn@4.0.2", "repository_homepage_url": "https://www.npmjs.com/package/opn", "repository_download_url": "https://registry.npmjs.org/opn/-/opn-4.0.2.tgz", @@ -13650,6 +13926,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/os-tmpdir@1.0.1", "repository_homepage_url": "https://www.npmjs.com/package/os-tmpdir", "repository_download_url": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.1.tgz", @@ -13685,6 +13962,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/package@1.0.1", "repository_homepage_url": "https://www.npmjs.com/package/package", "repository_download_url": "https://registry.npmjs.org/package/-/package-1.0.1.tgz", @@ -13720,6 +13998,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/pako@0.2.8", "repository_homepage_url": "https://www.npmjs.com/package/pako", "repository_download_url": "https://registry.npmjs.org/pako/-/pako-0.2.8.tgz", @@ -13755,6 +14034,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/param-case@2.1.0", "repository_homepage_url": "https://www.npmjs.com/package/param-case", "repository_download_url": "https://registry.npmjs.org/param-case/-/param-case-2.1.0.tgz", @@ -13790,6 +14070,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/parse-json@2.2.0", "repository_homepage_url": "https://www.npmjs.com/package/parse-json", "repository_download_url": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", @@ -13825,6 +14106,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/parse-ms@1.0.1", "repository_homepage_url": "https://www.npmjs.com/package/parse-ms", "repository_download_url": "https://registry.npmjs.org/parse-ms/-/parse-ms-1.0.1.tgz", @@ -13860,6 +14142,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/parserlib@0.2.5", "repository_homepage_url": "https://www.npmjs.com/package/parserlib", "repository_download_url": "https://registry.npmjs.org/parserlib/-/parserlib-0.2.5.tgz", @@ -13895,6 +14178,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/parseurl@1.3.1", "repository_homepage_url": "https://www.npmjs.com/package/parseurl", "repository_download_url": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", @@ -13930,6 +14214,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/pascal-case@2.0.0", "repository_homepage_url": "https://www.npmjs.com/package/pascal-case", "repository_download_url": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.0.tgz", @@ -13965,6 +14250,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/path-case@2.1.0", "repository_homepage_url": "https://www.npmjs.com/package/path-case", "repository_download_url": "https://registry.npmjs.org/path-case/-/path-case-2.1.0.tgz", @@ -14000,6 +14286,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/path-exists@2.1.0", "repository_homepage_url": "https://www.npmjs.com/package/path-exists", "repository_download_url": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", @@ -14035,6 +14322,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/path-is-absolute@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/path-is-absolute", "repository_download_url": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz", @@ -14070,6 +14358,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/path-type@1.1.0", "repository_homepage_url": "https://www.npmjs.com/package/path-type", "repository_download_url": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", @@ -14105,6 +14394,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/pathval@0.1.1", "repository_homepage_url": "https://www.npmjs.com/package/pathval", "repository_download_url": "https://registry.npmjs.org/pathval/-/pathval-0.1.1.tgz", @@ -14140,6 +14430,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/pend@1.2.0", "repository_homepage_url": "https://www.npmjs.com/package/pend", "repository_download_url": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", @@ -14208,6 +14499,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/phantomjs@1.9.20", "repository_homepage_url": "https://www.npmjs.com/package/phantomjs", "repository_download_url": "https://registry.npmjs.org/phantomjs/-/phantomjs-1.9.20.tgz", @@ -14243,6 +14535,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/pify@2.3.0", "repository_homepage_url": "https://www.npmjs.com/package/pify", "repository_download_url": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", @@ -14278,6 +14571,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/pinkie@2.0.4", "repository_homepage_url": "https://www.npmjs.com/package/pinkie", "repository_download_url": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", @@ -14313,6 +14607,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/pinkie-promise@2.0.1", "repository_homepage_url": "https://www.npmjs.com/package/pinkie-promise", "repository_download_url": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", @@ -14348,6 +14643,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/pkg-up@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/pkg-up", "repository_download_url": "https://registry.npmjs.org/pkg-up/-/pkg-up-1.0.0.tgz", @@ -14383,6 +14679,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/pkginfo@0.4.0", "repository_homepage_url": "https://www.npmjs.com/package/pkginfo", "repository_download_url": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.4.0.tgz", @@ -14418,6 +14715,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/plur@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/plur", "repository_download_url": "https://registry.npmjs.org/plur/-/plur-1.0.0.tgz", @@ -14462,6 +14760,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/portscanner@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/portscanner", "repository_download_url": "https://registry.npmjs.org/portscanner/-/portscanner-1.0.0.tgz", @@ -14497,6 +14796,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/postcss@4.1.16", "repository_homepage_url": "https://www.npmjs.com/package/postcss", "repository_download_url": "https://registry.npmjs.org/postcss/-/postcss-4.1.16.tgz", @@ -14532,6 +14832,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/pretty-bytes@3.0.1", "repository_homepage_url": "https://www.npmjs.com/package/pretty-bytes", "repository_download_url": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-3.0.1.tgz", @@ -14567,6 +14868,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/pretty-ms@2.1.0", "repository_homepage_url": "https://www.npmjs.com/package/pretty-ms", "repository_download_url": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-2.1.0.tgz", @@ -14602,6 +14904,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/process-nextick-args@1.0.7", "repository_homepage_url": "https://www.npmjs.com/package/process-nextick-args", "repository_download_url": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", @@ -14637,6 +14940,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/progress@1.1.8", "repository_homepage_url": "https://www.npmjs.com/package/progress", "repository_download_url": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", @@ -14672,6 +14976,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/promise@7.1.1", "repository_homepage_url": "https://www.npmjs.com/package/promise", "repository_download_url": "https://registry.npmjs.org/promise/-/promise-7.1.1.tgz", @@ -14707,6 +15012,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/prompt@0.2.14", "repository_homepage_url": "https://www.npmjs.com/package/prompt", "repository_download_url": "https://registry.npmjs.org/prompt/-/prompt-0.2.14.tgz", @@ -14742,6 +15048,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/prr@0.0.0", "repository_homepage_url": "https://www.npmjs.com/package/prr", "repository_download_url": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", @@ -14777,6 +15084,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/pug@2.0.0-beta3", "repository_homepage_url": "https://www.npmjs.com/package/pug", "repository_download_url": "https://registry.npmjs.org/pug/-/pug-2.0.0-beta3.tgz", @@ -14812,6 +15120,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/pug-attrs@2.0.1", "repository_homepage_url": "https://www.npmjs.com/package/pug-attrs", "repository_download_url": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-2.0.1.tgz", @@ -14847,6 +15156,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/pug-code-gen@0.0.7", "repository_homepage_url": "https://www.npmjs.com/package/pug-code-gen", "repository_download_url": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-0.0.7.tgz", @@ -14882,6 +15192,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/pug-error@1.3.1", "repository_homepage_url": "https://www.npmjs.com/package/pug-error", "repository_download_url": "https://registry.npmjs.org/pug-error/-/pug-error-1.3.1.tgz", @@ -14917,6 +15228,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/pug-filters@1.2.2", "repository_homepage_url": "https://www.npmjs.com/package/pug-filters", "repository_download_url": "https://registry.npmjs.org/pug-filters/-/pug-filters-1.2.2.tgz", @@ -14952,6 +15264,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/pug-lexer@2.0.2", "repository_homepage_url": "https://www.npmjs.com/package/pug-lexer", "repository_download_url": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-2.0.2.tgz", @@ -14987,6 +15300,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/pug-linker@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/pug-linker", "repository_download_url": "https://registry.npmjs.org/pug-linker/-/pug-linker-1.0.0.tgz", @@ -15022,6 +15336,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/pug-load@2.0.0", "repository_homepage_url": "https://www.npmjs.com/package/pug-load", "repository_download_url": "https://registry.npmjs.org/pug-load/-/pug-load-2.0.0.tgz", @@ -15057,6 +15372,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/pug-parser@2.0.1", "repository_homepage_url": "https://www.npmjs.com/package/pug-parser", "repository_download_url": "https://registry.npmjs.org/pug-parser/-/pug-parser-2.0.1.tgz", @@ -15092,6 +15408,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/pug-runtime@2.0.1", "repository_homepage_url": "https://www.npmjs.com/package/pug-runtime", "repository_download_url": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-2.0.1.tgz", @@ -15136,6 +15453,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/pug-strip-comments@0.0.1", "repository_homepage_url": "https://www.npmjs.com/package/pug-strip-comments", "repository_download_url": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-0.0.1.tgz", @@ -15171,6 +15489,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/pug-walk@0.0.3", "repository_homepage_url": "https://www.npmjs.com/package/pug-walk", "repository_download_url": "https://registry.npmjs.org/pug-walk/-/pug-walk-0.0.3.tgz", @@ -15206,6 +15525,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/q@1.4.1", "repository_homepage_url": "https://www.npmjs.com/package/q", "repository_download_url": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", @@ -15241,6 +15561,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/qs@6.2.0", "repository_homepage_url": "https://www.npmjs.com/package/qs", "repository_download_url": "https://registry.npmjs.org/qs/-/qs-6.2.0.tgz", @@ -15276,6 +15597,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/range-parser@1.2.0", "repository_homepage_url": "https://www.npmjs.com/package/range-parser", "repository_download_url": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", @@ -15320,6 +15642,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/raw-body@2.1.7", "repository_homepage_url": "https://www.npmjs.com/package/raw-body", "repository_download_url": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.7.tgz", @@ -15355,6 +15678,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/read@1.0.7", "repository_homepage_url": "https://www.npmjs.com/package/read", "repository_download_url": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", @@ -15390,6 +15714,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/read-pkg@1.1.0", "repository_homepage_url": "https://www.npmjs.com/package/read-pkg", "repository_download_url": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", @@ -15425,6 +15750,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/read-pkg-up@1.0.1", "repository_homepage_url": "https://www.npmjs.com/package/read-pkg-up", "repository_download_url": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", @@ -15460,6 +15786,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/readable-stream@2.1.4", "repository_homepage_url": "https://www.npmjs.com/package/readable-stream", "repository_download_url": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.4.tgz", @@ -15495,6 +15822,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/rechoir@0.6.2", "repository_homepage_url": "https://www.npmjs.com/package/rechoir", "repository_download_url": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", @@ -15530,6 +15858,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/redent@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/redent", "repository_download_url": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", @@ -15565,6 +15894,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/regenerator-runtime@0.9.5", "repository_homepage_url": "https://www.npmjs.com/package/regenerator-runtime", "repository_download_url": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.9.5.tgz", @@ -15600,6 +15930,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/relateurl@0.2.6", "repository_homepage_url": "https://www.npmjs.com/package/relateurl", "repository_download_url": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.6.tgz", @@ -15635,6 +15966,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/repeat-string@1.5.4", "repository_homepage_url": "https://www.npmjs.com/package/repeat-string", "repository_download_url": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.5.4.tgz", @@ -15670,6 +16002,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/repeating@2.0.1", "repository_homepage_url": "https://www.npmjs.com/package/repeating", "repository_download_url": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", @@ -15705,6 +16038,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/request@2.73.0", "repository_homepage_url": "https://www.npmjs.com/package/request", "repository_download_url": "https://registry.npmjs.org/request/-/request-2.73.0.tgz", @@ -15740,6 +16074,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/request-progress@2.0.1", "repository_homepage_url": "https://www.npmjs.com/package/request-progress", "repository_download_url": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz", @@ -15775,6 +16110,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/requestretry@1.9.0", "repository_homepage_url": "https://www.npmjs.com/package/requestretry", "repository_download_url": "https://registry.npmjs.org/requestretry/-/requestretry-1.9.0.tgz", @@ -15810,6 +16146,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/reserved-words@0.1.1", "repository_homepage_url": "https://www.npmjs.com/package/reserved-words", "repository_download_url": "https://registry.npmjs.org/reserved-words/-/reserved-words-0.1.1.tgz", @@ -15845,6 +16182,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/resolve@1.1.7", "repository_homepage_url": "https://www.npmjs.com/package/resolve", "repository_download_url": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", @@ -15880,6 +16218,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/resolve-from@2.0.0", "repository_homepage_url": "https://www.npmjs.com/package/resolve-from", "repository_download_url": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", @@ -15915,6 +16254,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/resolve-pkg@0.1.0", "repository_homepage_url": "https://www.npmjs.com/package/resolve-pkg", "repository_download_url": "https://registry.npmjs.org/resolve-pkg/-/resolve-pkg-0.1.0.tgz", @@ -15950,6 +16290,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/revalidator@0.1.8", "repository_homepage_url": "https://www.npmjs.com/package/revalidator", "repository_download_url": "https://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz", @@ -15985,6 +16326,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/right-align@0.1.3", "repository_homepage_url": "https://www.npmjs.com/package/right-align", "repository_download_url": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", @@ -16020,6 +16362,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/rimraf@2.2.8", "repository_homepage_url": "https://www.npmjs.com/package/rimraf", "repository_download_url": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", @@ -16055,6 +16398,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/sauce-tunnel@2.5.0", "repository_homepage_url": "https://www.npmjs.com/package/sauce-tunnel", "repository_download_url": "https://registry.npmjs.org/sauce-tunnel/-/sauce-tunnel-2.5.0.tgz", @@ -16090,6 +16434,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/saucelabs@1.2.0", "repository_homepage_url": "https://www.npmjs.com/package/saucelabs", "repository_download_url": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.2.0.tgz", @@ -16125,6 +16470,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/semver@5.2.0", "repository_homepage_url": "https://www.npmjs.com/package/semver", "repository_download_url": "https://registry.npmjs.org/semver/-/semver-5.2.0.tgz", @@ -16160,6 +16506,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/send@0.14.1", "repository_homepage_url": "https://www.npmjs.com/package/send", "repository_download_url": "https://registry.npmjs.org/send/-/send-0.14.1.tgz", @@ -16195,6 +16542,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/sentence-case@2.1.0", "repository_homepage_url": "https://www.npmjs.com/package/sentence-case", "repository_download_url": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.0.tgz", @@ -16230,6 +16578,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/serve-index@1.8.0", "repository_homepage_url": "https://www.npmjs.com/package/serve-index", "repository_download_url": "https://registry.npmjs.org/serve-index/-/serve-index-1.8.0.tgz", @@ -16265,6 +16614,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/serve-static@1.11.1", "repository_homepage_url": "https://www.npmjs.com/package/serve-static", "repository_download_url": "https://registry.npmjs.org/serve-static/-/serve-static-1.11.1.tgz", @@ -16300,6 +16650,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/setprototypeof@1.0.1", "repository_homepage_url": "https://www.npmjs.com/package/setprototypeof", "repository_download_url": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.1.tgz", @@ -16335,6 +16686,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/shelljs@0.7.0", "repository_homepage_url": "https://www.npmjs.com/package/shelljs", "repository_download_url": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.0.tgz", @@ -16370,6 +16722,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/shx@0.1.2", "repository_homepage_url": "https://www.npmjs.com/package/shx", "repository_download_url": "https://registry.npmjs.org/shx/-/shx-0.1.2.tgz", @@ -16405,6 +16758,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/sigmund@1.0.1", "repository_homepage_url": "https://www.npmjs.com/package/sigmund", "repository_download_url": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", @@ -16440,6 +16794,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/signal-exit@3.0.0", "repository_homepage_url": "https://www.npmjs.com/package/signal-exit", "repository_download_url": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.0.tgz", @@ -16475,6 +16830,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/snake-case@2.1.0", "repository_homepage_url": "https://www.npmjs.com/package/snake-case", "repository_download_url": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", @@ -16510,6 +16866,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/sntp@1.0.9", "repository_homepage_url": "https://www.npmjs.com/package/sntp", "repository_download_url": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", @@ -16545,6 +16902,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/source-map@0.4.4", "repository_homepage_url": "https://www.npmjs.com/package/source-map", "repository_download_url": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", @@ -16589,6 +16947,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/source-map-support@0.4.1", "repository_homepage_url": "https://www.npmjs.com/package/source-map-support", "repository_download_url": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.1.tgz", @@ -16624,6 +16983,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/spdx-correct@1.0.2", "repository_homepage_url": "https://www.npmjs.com/package/spdx-correct", "repository_download_url": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", @@ -16659,6 +17019,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/spdx-exceptions@1.0.5", "repository_homepage_url": "https://www.npmjs.com/package/spdx-exceptions", "repository_download_url": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-1.0.5.tgz", @@ -16694,6 +17055,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/spdx-expression-parse@1.0.2", "repository_homepage_url": "https://www.npmjs.com/package/spdx-expression-parse", "repository_download_url": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.2.tgz", @@ -16729,6 +17091,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/spdx-license-ids@1.2.1", "repository_homepage_url": "https://www.npmjs.com/package/spdx-license-ids", "repository_download_url": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.1.tgz", @@ -16764,6 +17127,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/split@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/split", "repository_download_url": "https://registry.npmjs.org/split/-/split-1.0.0.tgz", @@ -16799,6 +17163,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/sprintf-js@1.0.3", "repository_homepage_url": "https://www.npmjs.com/package/sprintf-js", "repository_download_url": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -16843,6 +17208,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/sshpk@1.8.3", "repository_homepage_url": "https://www.npmjs.com/package/sshpk", "repository_download_url": "https://registry.npmjs.org/sshpk/-/sshpk-1.8.3.tgz", @@ -16878,6 +17244,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/stack-trace@0.0.9", "repository_homepage_url": "https://www.npmjs.com/package/stack-trace", "repository_download_url": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz", @@ -16913,6 +17280,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/statuses@1.3.0", "repository_homepage_url": "https://www.npmjs.com/package/statuses", "repository_download_url": "https://registry.npmjs.org/statuses/-/statuses-1.3.0.tgz", @@ -16948,6 +17316,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/stream-buffers@2.2.0", "repository_homepage_url": "https://www.npmjs.com/package/stream-buffers", "repository_download_url": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz", @@ -16983,6 +17352,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/string_decoder@0.10.31", "repository_homepage_url": "https://www.npmjs.com/package/string_decoder", "repository_download_url": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", @@ -17018,6 +17388,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/stringstream@0.0.5", "repository_homepage_url": "https://www.npmjs.com/package/stringstream", "repository_download_url": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", @@ -17053,6 +17424,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/strip-ansi@3.0.1", "repository_homepage_url": "https://www.npmjs.com/package/strip-ansi", "repository_download_url": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", @@ -17088,6 +17460,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/strip-bom@2.0.0", "repository_homepage_url": "https://www.npmjs.com/package/strip-bom", "repository_download_url": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", @@ -17123,6 +17496,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/strip-indent@1.0.1", "repository_homepage_url": "https://www.npmjs.com/package/strip-indent", "repository_download_url": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", @@ -17158,6 +17532,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/strip-json-comments@1.0.4", "repository_homepage_url": "https://www.npmjs.com/package/strip-json-comments", "repository_download_url": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", @@ -17193,6 +17568,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/supports-color@2.0.0", "repository_homepage_url": "https://www.npmjs.com/package/supports-color", "repository_download_url": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", @@ -17228,6 +17604,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/swap-case@1.1.2", "repository_homepage_url": "https://www.npmjs.com/package/swap-case", "repository_download_url": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", @@ -17263,6 +17640,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/tar-stream@1.5.2", "repository_homepage_url": "https://www.npmjs.com/package/tar-stream", "repository_download_url": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.2.tgz", @@ -17298,6 +17676,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/temporary@0.0.8", "repository_homepage_url": "https://www.npmjs.com/package/temporary", "repository_download_url": "https://registry.npmjs.org/temporary/-/temporary-0.0.8.tgz", @@ -17333,6 +17712,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/text-table@0.2.0", "repository_homepage_url": "https://www.npmjs.com/package/text-table", "repository_download_url": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -17368,6 +17748,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/throttleit@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/throttleit", "repository_download_url": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz", @@ -17403,6 +17784,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/through@2.3.8", "repository_homepage_url": "https://www.npmjs.com/package/through", "repository_download_url": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -17438,6 +17820,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/time-grunt@1.3.0", "repository_homepage_url": "https://www.npmjs.com/package/time-grunt", "repository_download_url": "https://registry.npmjs.org/time-grunt/-/time-grunt-1.3.0.tgz", @@ -17482,6 +17865,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/tiny-lr@0.2.1", "repository_homepage_url": "https://www.npmjs.com/package/tiny-lr", "repository_download_url": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-0.2.1.tgz", @@ -17517,6 +17901,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/title-case@2.1.0", "repository_homepage_url": "https://www.npmjs.com/package/title-case", "repository_download_url": "https://registry.npmjs.org/title-case/-/title-case-2.1.0.tgz", @@ -17552,6 +17937,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/tmp@0.0.28", "repository_homepage_url": "https://www.npmjs.com/package/tmp", "repository_download_url": "https://registry.npmjs.org/tmp/-/tmp-0.0.28.tgz", @@ -17587,6 +17973,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/to-double-quotes@2.0.0", "repository_homepage_url": "https://www.npmjs.com/package/to-double-quotes", "repository_download_url": "https://registry.npmjs.org/to-double-quotes/-/to-double-quotes-2.0.0.tgz", @@ -17622,6 +18009,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/to-single-quotes@2.0.1", "repository_homepage_url": "https://www.npmjs.com/package/to-single-quotes", "repository_download_url": "https://registry.npmjs.org/to-single-quotes/-/to-single-quotes-2.0.1.tgz", @@ -17657,6 +18045,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/token-stream@0.0.1", "repository_homepage_url": "https://www.npmjs.com/package/token-stream", "repository_download_url": "https://registry.npmjs.org/token-stream/-/token-stream-0.0.1.tgz", @@ -17692,6 +18081,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/tough-cookie@2.2.2", "repository_homepage_url": "https://www.npmjs.com/package/tough-cookie", "repository_download_url": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.2.tgz", @@ -17727,6 +18117,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/trim-newlines@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/trim-newlines", "repository_download_url": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", @@ -17762,6 +18153,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/tunnel-agent@0.4.3", "repository_homepage_url": "https://www.npmjs.com/package/tunnel-agent", "repository_download_url": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", @@ -17797,6 +18189,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/tweetnacl@0.13.3", "repository_homepage_url": "https://www.npmjs.com/package/tweetnacl", "repository_download_url": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.13.3.tgz", @@ -17832,6 +18225,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/type-is@1.6.13", "repository_homepage_url": "https://www.npmjs.com/package/type-is", "repository_download_url": "https://registry.npmjs.org/type-is/-/type-is-1.6.13.tgz", @@ -17867,6 +18261,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/typedarray@0.0.6", "repository_homepage_url": "https://www.npmjs.com/package/typedarray", "repository_download_url": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", @@ -17902,6 +18297,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/uc.micro@1.0.2", "repository_homepage_url": "https://www.npmjs.com/package/uc.micro", "repository_download_url": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.2.tgz", @@ -17954,6 +18350,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/uglify-js@2.6.4", "repository_homepage_url": "https://www.npmjs.com/package/uglify-js", "repository_download_url": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.6.4.tgz", @@ -17989,6 +18386,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/uglify-to-browserify@1.0.2", "repository_homepage_url": "https://www.npmjs.com/package/uglify-to-browserify", "repository_download_url": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", @@ -18024,6 +18422,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/underscore@1.6.0", "repository_homepage_url": "https://www.npmjs.com/package/underscore", "repository_download_url": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", @@ -18059,6 +18458,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/underscore.string@3.2.3", "repository_homepage_url": "https://www.npmjs.com/package/underscore.string", "repository_download_url": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.2.3.tgz", @@ -18094,6 +18494,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/unpipe@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/unpipe", "repository_download_url": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -18129,6 +18530,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/upper-case@1.1.3", "repository_homepage_url": "https://www.npmjs.com/package/upper-case", "repository_download_url": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", @@ -18164,6 +18566,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/upper-case-first@1.1.2", "repository_homepage_url": "https://www.npmjs.com/package/upper-case-first", "repository_download_url": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", @@ -18199,6 +18602,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/uri-path@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/uri-path", "repository_download_url": "https://registry.npmjs.org/uri-path/-/uri-path-1.0.0.tgz", @@ -18234,6 +18638,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/util-deprecate@1.0.2", "repository_homepage_url": "https://www.npmjs.com/package/util-deprecate", "repository_download_url": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -18278,6 +18683,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/utile@0.2.1", "repository_homepage_url": "https://www.npmjs.com/package/utile", "repository_download_url": "https://registry.npmjs.org/utile/-/utile-0.2.1.tgz", @@ -18313,6 +18719,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/utils-merge@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/utils-merge", "repository_download_url": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", @@ -18348,6 +18755,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/uuid@2.0.2", "repository_homepage_url": "https://www.npmjs.com/package/uuid", "repository_download_url": "https://registry.npmjs.org/uuid/-/uuid-2.0.2.tgz", @@ -18383,6 +18791,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/validate-npm-package-license@3.0.1", "repository_homepage_url": "https://www.npmjs.com/package/validate-npm-package-license", "repository_download_url": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", @@ -18418,6 +18827,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/verror@1.3.6", "repository_homepage_url": "https://www.npmjs.com/package/verror", "repository_download_url": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", @@ -18453,6 +18863,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/void-elements@2.0.1", "repository_homepage_url": "https://www.npmjs.com/package/void-elements", "repository_download_url": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", @@ -18488,6 +18899,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/vow@0.4.4", "repository_homepage_url": "https://www.npmjs.com/package/vow", "repository_download_url": "https://registry.npmjs.org/vow/-/vow-0.4.4.tgz", @@ -18548,6 +18960,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/vow-fs@0.3.2", "repository_homepage_url": "https://www.npmjs.com/package/vow-fs", "repository_download_url": "https://registry.npmjs.org/vow-fs/-/vow-fs-0.3.2.tgz", @@ -18583,6 +18996,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/vow-queue@0.3.1", "repository_homepage_url": "https://www.npmjs.com/package/vow-queue", "repository_download_url": "https://registry.npmjs.org/vow-queue/-/vow-queue-0.3.1.tgz", @@ -18618,6 +19032,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/websocket-driver@0.6.5", "repository_homepage_url": "https://www.npmjs.com/package/websocket-driver", "repository_download_url": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", @@ -18653,6 +19068,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/websocket-extensions@0.1.1", "repository_homepage_url": "https://www.npmjs.com/package/websocket-extensions", "repository_download_url": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.1.tgz", @@ -18688,6 +19104,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/when@3.7.7", "repository_homepage_url": "https://www.npmjs.com/package/when", "repository_download_url": "https://registry.npmjs.org/when/-/when-3.7.7.tgz", @@ -18723,6 +19140,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/which@1.2.10", "repository_homepage_url": "https://www.npmjs.com/package/which", "repository_download_url": "https://registry.npmjs.org/which/-/which-1.2.10.tgz", @@ -18758,6 +19176,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/window-size@0.1.0", "repository_homepage_url": "https://www.npmjs.com/package/window-size", "repository_download_url": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", @@ -18818,6 +19237,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/winston@0.8.3", "repository_homepage_url": "https://www.npmjs.com/package/winston", "repository_download_url": "https://registry.npmjs.org/winston/-/winston-0.8.3.tgz", @@ -18853,6 +19273,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/with@5.1.1", "repository_homepage_url": "https://www.npmjs.com/package/with", "repository_download_url": "https://registry.npmjs.org/with/-/with-5.1.1.tgz", @@ -18888,6 +19309,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/wordwrap@0.0.2", "repository_homepage_url": "https://www.npmjs.com/package/wordwrap", "repository_download_url": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", @@ -18923,6 +19345,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/wrappy@1.0.2", "repository_homepage_url": "https://www.npmjs.com/package/wrappy", "repository_download_url": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -18958,6 +19381,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/xml-char-classes@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/xml-char-classes", "repository_download_url": "https://registry.npmjs.org/xml-char-classes/-/xml-char-classes-1.0.0.tgz", @@ -18993,6 +19417,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/xmlbuilder@3.1.0", "repository_homepage_url": "https://www.npmjs.com/package/xmlbuilder", "repository_download_url": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-3.1.0.tgz", @@ -19028,6 +19453,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/xtend@4.0.1", "repository_homepage_url": "https://www.npmjs.com/package/xtend", "repository_download_url": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", @@ -19072,6 +19498,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/yargs@3.10.0", "repository_homepage_url": "https://www.npmjs.com/package/yargs", "repository_download_url": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", @@ -19107,6 +19534,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/yauzl@2.4.1", "repository_homepage_url": "https://www.npmjs.com/package/yauzl", "repository_download_url": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", @@ -19151,6 +19579,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/zip-stream@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/zip-stream", "repository_download_url": "https://registry.npmjs.org/zip-stream/-/zip-stream-1.0.0.tgz", diff --git a/tests/packagedcode/data/npm/old_registry/package.json.expected b/tests/packagedcode/data/npm/old_registry/package.json.expected index 453e76551ac..396e45944f3 100644 --- a/tests/packagedcode/data/npm/old_registry/package.json.expected +++ b/tests/packagedcode/data/npm/old_registry/package.json.expected @@ -51,6 +51,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/automatta@0.0.1", "repository_homepage_url": "https://www.npmjs.com/package/automatta", "repository_download_url": "https://registry.npmjs.org/automatta/-/automatta-0.0.1.tgz", diff --git a/tests/packagedcode/data/npm/package-lock/package-lock.json-expected b/tests/packagedcode/data/npm/package-lock/package-lock.json-expected index b8960f5cc83..ccc17861386 100644 --- a/tests/packagedcode/data/npm/package-lock/package-lock.json-expected +++ b/tests/packagedcode/data/npm/package-lock/package-lock.json-expected @@ -246,6 +246,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/babel-runtime@6.23.0", "repository_homepage_url": "https://www.npmjs.com/package/babel-runtime", "repository_download_url": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", @@ -281,6 +282,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/core-js@2.5.0", "repository_homepage_url": "https://www.npmjs.com/package/core-js", "repository_download_url": "https://registry.npmjs.org/core-js/-/core-js-2.5.0.tgz", @@ -316,6 +318,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/regenerator-runtime@0.11.0", "repository_homepage_url": "https://www.npmjs.com/package/regenerator-runtime", "repository_download_url": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", @@ -351,6 +354,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/ansi-regex@2.1.1", "repository_homepage_url": "https://www.npmjs.com/package/ansi-regex", "repository_download_url": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", @@ -386,6 +390,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/ansi-styles@2.2.1", "repository_homepage_url": "https://www.npmjs.com/package/ansi-styles", "repository_download_url": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", @@ -446,6 +451,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/babel-code-frame@6.22.0", "repository_homepage_url": "https://www.npmjs.com/package/babel-code-frame", "repository_download_url": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz", @@ -498,6 +504,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/babel-helpers@6.24.1", "repository_homepage_url": "https://www.npmjs.com/package/babel-helpers", "repository_download_url": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", @@ -542,6 +549,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/babel-messages@6.23.0", "repository_homepage_url": "https://www.npmjs.com/package/babel-messages", "repository_download_url": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", @@ -586,6 +594,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/babel-plugin-transform-runtime@6.23.0", "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-runtime", "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz", @@ -630,6 +639,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/babel-runtime@6.25.0", "repository_homepage_url": "https://www.npmjs.com/package/babel-runtime", "repository_download_url": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.25.0.tgz", @@ -706,6 +716,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/babel-template@6.25.0", "repository_homepage_url": "https://www.npmjs.com/package/babel-template", "repository_download_url": "https://registry.npmjs.org/babel-template/-/babel-template-6.25.0.tgz", @@ -814,6 +825,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/babel-traverse@6.25.0", "repository_homepage_url": "https://www.npmjs.com/package/babel-traverse", "repository_download_url": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.25.0.tgz", @@ -882,6 +894,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/babel-types@6.25.0", "repository_homepage_url": "https://www.npmjs.com/package/babel-types", "repository_download_url": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz", @@ -917,6 +930,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/babylon@6.18.0", "repository_homepage_url": "https://www.npmjs.com/package/babylon", "repository_download_url": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", @@ -993,6 +1007,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/chalk@1.1.3", "repository_homepage_url": "https://www.npmjs.com/package/chalk", "repository_download_url": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", @@ -1037,6 +1052,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/debug@2.6.8", "repository_homepage_url": "https://www.npmjs.com/package/debug", "repository_download_url": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", @@ -1072,6 +1088,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/escape-string-regexp@1.0.5", "repository_homepage_url": "https://www.npmjs.com/package/escape-string-regexp", "repository_download_url": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -1107,6 +1124,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/esutils@2.0.2", "repository_homepage_url": "https://www.npmjs.com/package/esutils", "repository_download_url": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", @@ -1142,6 +1160,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/globals@9.18.0", "repository_homepage_url": "https://www.npmjs.com/package/globals", "repository_download_url": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", @@ -1186,6 +1205,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/has-ansi@2.0.0", "repository_homepage_url": "https://www.npmjs.com/package/has-ansi", "repository_download_url": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", @@ -1230,6 +1250,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/invariant@2.2.2", "repository_homepage_url": "https://www.npmjs.com/package/invariant", "repository_download_url": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", @@ -1265,6 +1286,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/js-tokens@3.0.2", "repository_homepage_url": "https://www.npmjs.com/package/js-tokens", "repository_download_url": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", @@ -1300,6 +1322,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/lodash@4.17.4", "repository_homepage_url": "https://www.npmjs.com/package/lodash", "repository_download_url": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", @@ -1344,6 +1367,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/loose-envify@1.3.1", "repository_homepage_url": "https://www.npmjs.com/package/loose-envify", "repository_download_url": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", @@ -1379,6 +1403,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/ms@2.0.0", "repository_homepage_url": "https://www.npmjs.com/package/ms", "repository_download_url": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -1423,6 +1448,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/strip-ansi@3.0.1", "repository_homepage_url": "https://www.npmjs.com/package/strip-ansi", "repository_download_url": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", @@ -1458,6 +1484,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/supports-color@2.0.0", "repository_homepage_url": "https://www.npmjs.com/package/supports-color", "repository_download_url": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", @@ -1493,6 +1520,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/to-fast-properties@1.0.3", "repository_homepage_url": "https://www.npmjs.com/package/to-fast-properties", "repository_download_url": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", diff --git a/tests/packagedcode/data/npm/repo_url/package.json.expected b/tests/packagedcode/data/npm/repo_url/package.json.expected index cb3b71f07c5..2272b1cb68b 100644 --- a/tests/packagedcode/data/npm/repo_url/package.json.expected +++ b/tests/packagedcode/data/npm/repo_url/package.json.expected @@ -301,6 +301,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/react-mobile-navigation-modal@0.1.0-rc.3", "repository_homepage_url": "https://www.npmjs.com/package/react-mobile-navigation-modal", "repository_download_url": "https://registry.npmjs.org/react-mobile-navigation-modal/-/react-mobile-navigation-modal-0.1.0-rc.3.tgz", diff --git a/tests/packagedcode/data/npm/scoped1/package.json.expected b/tests/packagedcode/data/npm/scoped1/package.json.expected index 8e892b3cc8e..9bd8da0466d 100644 --- a/tests/packagedcode/data/npm/scoped1/package.json.expected +++ b/tests/packagedcode/data/npm/scoped1/package.json.expected @@ -528,6 +528,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", "repository_homepage_url": "https://www.npmjs.com/package/@ionic/app-scripts", "repository_download_url": "https://registry.npmjs.org/@ionic/app-scripts/-/app-scripts-3.0.1-201710301651.tgz", diff --git a/tests/packagedcode/data/npm/scoped2/package.json.expected b/tests/packagedcode/data/npm/scoped2/package.json.expected index 1629dd38b64..875a65e5d17 100644 --- a/tests/packagedcode/data/npm/scoped2/package.json.expected +++ b/tests/packagedcode/data/npm/scoped2/package.json.expected @@ -136,6 +136,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/%40invisionag/eslint-config-ivx@0.0.2", "repository_homepage_url": "https://www.npmjs.com/package/@invisionag/eslint-config-ivx", "repository_download_url": "https://registry.npmjs.org/@invisionag/eslint-config-ivx/-/eslint-config-ivx-0.0.2.tgz", diff --git a/tests/packagedcode/data/npm/sequelize/package.json.expected b/tests/packagedcode/data/npm/sequelize/package.json.expected index 6059137918d..e4fce08bad1 100644 --- a/tests/packagedcode/data/npm/sequelize/package.json.expected +++ b/tests/packagedcode/data/npm/sequelize/package.json.expected @@ -413,6 +413,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/sequelize@3.30.2", "repository_homepage_url": "https://www.npmjs.com/package/sequelize", "repository_download_url": "https://registry.npmjs.org/sequelize/-/sequelize-3.30.2.tgz", diff --git a/tests/packagedcode/data/npm/uri_vcs/package.json.expected b/tests/packagedcode/data/npm/uri_vcs/package.json.expected index f505d632218..48aebd8e21b 100644 --- a/tests/packagedcode/data/npm/uri_vcs/package.json.expected +++ b/tests/packagedcode/data/npm/uri_vcs/package.json.expected @@ -99,6 +99,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/npm2aur@0.1.3", "repository_homepage_url": "https://www.npmjs.com/package/npm2aur", "repository_download_url": "https://registry.npmjs.org/npm2aur/-/npm2aur-0.1.3.tgz", diff --git a/tests/packagedcode/data/npm/urls_dict/package.json.expected b/tests/packagedcode/data/npm/urls_dict/package.json.expected index 87f0549d0c8..e259a5c7acd 100644 --- a/tests/packagedcode/data/npm/urls_dict/package.json.expected +++ b/tests/packagedcode/data/npm/urls_dict/package.json.expected @@ -56,6 +56,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/jsonp-filter@0.0.3", "repository_homepage_url": "https://www.npmjs.com/package/jsonp-filter", "repository_download_url": "https://registry.npmjs.org/jsonp-filter/-/jsonp-filter-0.0.3.tgz", diff --git a/tests/packagedcode/data/npm/utils-merge-1.0.0/package.json.expected b/tests/packagedcode/data/npm/utils-merge-1.0.0/package.json.expected index f79958094fb..0e8d4f22d47 100644 --- a/tests/packagedcode/data/npm/utils-merge-1.0.0/package.json.expected +++ b/tests/packagedcode/data/npm/utils-merge-1.0.0/package.json.expected @@ -61,6 +61,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/utils-merge@1.0.0", "repository_homepage_url": "https://www.npmjs.com/package/utils-merge", "repository_download_url": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", diff --git a/tests/packagedcode/data/npm/yarn-lock/yarn.lock-expected b/tests/packagedcode/data/npm/yarn-lock/yarn.lock-expected index 3461383762c..d23b913f608 100644 --- a/tests/packagedcode/data/npm/yarn-lock/yarn.lock-expected +++ b/tests/packagedcode/data/npm/yarn-lock/yarn.lock-expected @@ -1,26381 +1,26878 @@ [ - { - "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, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/abbrev@1.0.9", - "requirement": "1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/ansi-align@1.1.0", - "requirement": "^1.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/ansi-regex@2.1.1", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/ansi-styles@2.2.1", - "requirement": "^2.2.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/ansi-styles@1.0.0", - "requirement": "~1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/anymatch@1.3.0", - "requirement": "^1.3.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/aproba@1.0.4", - "requirement": "^1.0.3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/are-we-there-yet@1.1.2", - "requirement": "~1.1.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/arr-diff@2.0.0", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/arr-exclude@1.0.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/arr-flatten@1.0.1", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/array-differ@1.0.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/array-find-index@1.0.2", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/array-union@1.0.2", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/array-uniq@1.0.3", - "requirement": "^1.0.1, ^1.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/array-unique@0.2.1", - "requirement": "^0.2.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/arrify@1.0.1", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/asn1@0.2.3", - "requirement": "~0.2.3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/assert-plus@0.2.0", - "requirement": "^0.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/assert-plus@1.0.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/async-each@1.0.1", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/asynckit@0.4.0", - "requirement": "^0.4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/auto-bind@0.1.0", - "requirement": "^0.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/ava-files@0.2.0", - "requirement": "^0.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/ava-init@0.1.6", - "requirement": "^0.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/ava@0.17.0", - "requirement": "^0.17.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/aws-sign2@0.6.0", - "requirement": "~0.6.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/aws4@1.5.0", - "requirement": "^1.2.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-code-frame@6.20.0", - "requirement": "^6.16.0, ^6.20.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-core@6.21.0", - "requirement": "^6.17.0, ^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-generator@6.21.0", - "requirement": "^6.1.0, ^6.21.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-helper-bindify-decorators@6.18.0", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-helper-builder-binary-assignment-operator-visitor@6.18.0", - "requirement": "^6.8.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-helper-call-delegate@6.18.0", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-helper-define-map@6.18.0", - "requirement": "^6.18.0, ^6.8.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-helper-explode-assignable-expression@6.18.0", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-helper-explode-class@6.18.0", - "requirement": "^6.8.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-helper-function-name@6.18.0", - "requirement": "^6.18.0, ^6.8.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-helper-get-function-arity@6.18.0", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-helper-hoist-variables@6.18.0", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-helper-optimise-call-expression@6.18.0", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-helper-regex@6.18.0", - "requirement": "^6.8.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-helper-remap-async-to-generator@6.20.3", - "requirement": "^6.16.0, ^6.16.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-helper-replace-supers@6.18.0", - "requirement": "^6.18.0, ^6.8.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-helpers@6.16.0", - "requirement": "^6.16.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-messages@6.8.0", - "requirement": "^6.8.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-ava-throws-helper@0.1.0", - "requirement": "^0.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-check-es2015-constants@6.8.0", - "requirement": "^6.3.13", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-detective@2.0.0", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-espower@2.3.2", - "requirement": "^2.3.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-syntax-async-functions@6.13.0", - "requirement": "^6.8.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-syntax-async-generators@6.13.0", - "requirement": "^6.5.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-syntax-class-properties@6.13.0", - "requirement": "^6.8.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-syntax-decorators@6.13.0", - "requirement": "^6.13.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-syntax-dynamic-import@6.18.0", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-syntax-exponentiation-operator@6.13.0", - "requirement": "^6.8.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-syntax-object-rest-spread@6.13.0", - "requirement": "^6.8.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-syntax-trailing-function-commas@6.20.0", - "requirement": "^6.3.13", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-async-generator-functions@6.17.0", - "requirement": "^6.17.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-async-to-generator@6.16.0", - "requirement": "^6.16.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-class-properties@6.19.0", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-decorators@6.13.0", - "requirement": "^6.13.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-arrow-functions@6.8.0", - "requirement": "^6.3.13", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-block-scoped-functions@6.8.0", - "requirement": "^6.3.13", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-block-scoping@6.21.0", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-classes@6.18.0", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-computed-properties@6.8.0", - "requirement": "^6.3.13", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-destructuring@6.19.0", - "requirement": "^6.18.0, ^6.6.5", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-duplicate-keys@6.8.0", - "requirement": "^6.6.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-for-of@6.18.0", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-function-name@6.9.0", - "requirement": "^6.5.0, ^6.9.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-literals@6.8.0", - "requirement": "^6.3.13", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-modules-amd@6.18.0", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-modules-commonjs@6.18.0", - "requirement": "^6.18.0, ^6.7.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-modules-systemjs@6.19.0", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-modules-umd@6.18.0", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-object-super@6.8.0", - "requirement": "^6.3.13", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-parameters@6.21.0", - "requirement": "^6.18.0, ^6.7.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-shorthand-properties@6.18.0", - "requirement": "^6.18.0, ^6.5.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-spread@6.8.0", - "requirement": "^6.3.13, ^6.6.5", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-sticky-regex@6.8.0", - "requirement": "^6.3.13, ^6.5.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-template-literals@6.8.0", - "requirement": "^6.6.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-typeof-symbol@6.18.0", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-unicode-regex@6.11.0", - "requirement": "^6.3.13, ^6.5.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-exponentiation-operator@6.8.0", - "requirement": "^6.3.13", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-object-rest-spread@6.20.2", - "requirement": "^6.16.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-regenerator@6.21.0", - "requirement": "^6.16.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-runtime@6.15.0", - "requirement": "^6.15.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-strict-mode@6.18.0", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-preset-es2015-node4@2.1.1", - "requirement": "^2.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-preset-es2015@6.18.0", - "requirement": "^6.16.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-preset-stage-2@6.18.0", - "requirement": "^6.17.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-preset-stage-3@6.17.0", - "requirement": "^6.17.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-register@6.18.0", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-runtime@6.20.0", - "requirement": "^6.0.0, ^6.11.6, ^6.18.0, ^6.20.0, ^6.9.0, ^6.9.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-template@6.16.0", - "requirement": "^6.14.0, ^6.15.0, ^6.16.0, ^6.7.0, ^6.8.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-traverse@6.21.0", - "requirement": "^6.16.0, ^6.18.0, ^6.20.0, ^6.21.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-types@6.21.0", - "requirement": "^6.13.0, ^6.16.0, ^6.18.0, ^6.19.0, ^6.20.0, ^6.21.0, ^6.7.2, ^6.8.0, ^6.9.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babylon@6.15.0", - "requirement": "^6.1.0, ^6.11.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/balanced-match@0.4.2", - "requirement": "^0.4.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/bcrypt-pbkdf@1.0.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/binary-extensions@1.8.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/block-stream@0.0.9", - "requirement": "*", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/bluebird@3.4.7", - "requirement": "^3.0.0, ^3.4.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/boom@2.10.1", - "requirement": "2.x.x", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/boxen@0.6.0", - "requirement": "^0.6.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/brace-expansion@1.1.6", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/braces@1.8.5", - "requirement": "^1.8.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/browser-stdout@1.3.0", - "requirement": "1.3.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/buf-compare@1.0.1", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/buffer-shims@1.0.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/builtin-modules@1.1.1", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/caching-transform@1.0.1", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/call-matcher@1.0.1", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/call-signature@0.0.2", - "requirement": "0.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/camelcase-keys@2.1.0", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/camelcase@2.1.1", - "requirement": "^2.0.0, ^2.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/capture-stack-trace@1.0.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/caseless@0.11.0", - "requirement": "~0.11.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/chainsaw@0.0.9", - "requirement": ">=0.0.7 <0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/chalk@0.4.0", - "requirement": "^0.4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/chalk@1.1.3", - "requirement": "^1.0.0, ^1.1.0, ^1.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/chokidar@1.6.1", - "requirement": "^1.4.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/ci-info@1.0.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/clean-yaml-object@0.1.0", - "requirement": "^0.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/cli-boxes@1.0.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/cli-cursor@1.0.2", - "requirement": "^1.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/cli-spinners@0.1.2", - "requirement": "^0.1.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/cli-truncate@0.2.1", - "requirement": "^0.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/co-with-promise@4.6.0", - "requirement": "^4.6.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/code-point-at@1.1.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/combined-stream@1.0.5", - "requirement": "^1.0.5, ~1.0.5", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/commander@2.9.0", - "requirement": "2.9.0, ^2.9.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/common-path-prefix@1.0.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/commondir@1.0.1", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/concat-map@0.0.1", - "requirement": "0.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/configstore@2.1.0", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/console-control-strings@1.1.0", - "requirement": "^1.0.0, ~1.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/convert-source-map@1.3.0", - "requirement": "^1.1.0, ^1.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/core-assert@0.2.1", - "requirement": "^0.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/core-js@2.4.1", - "requirement": "^2.0.0, ^2.4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/core-util-is@1.0.2", - "requirement": "~1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/create-error-class@3.0.2", - "requirement": "^3.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/cross-spawn@4.0.2", - "requirement": "^4.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/cryptiles@2.0.5", - "requirement": "2.x.x", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/currently-unhandled@0.4.1", - "requirement": "^0.4.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/dashdash@1.14.1", - "requirement": "^1.12.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/date-time@0.1.1", - "requirement": "^0.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/debug@2.2.0", - "requirement": "2.2.0, ^2.1.1, ^2.2.0, ~2.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/decamelize@1.2.0", - "requirement": "^1.1.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/deep-equal@1.0.1", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/deep-extend@0.4.1", - "requirement": "~0.4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/delayed-stream@1.0.0", - "requirement": "~1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/delegates@1.0.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/detect-indent@4.0.0", - "requirement": "^4.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/diff@1.4.0", - "requirement": "1.4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/dot-prop@3.0.0", - "requirement": "^3.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/duplexer2@0.1.4", - "requirement": "^0.1.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/eastasianwidth@0.1.1", - "requirement": "^0.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/ecc-jsbn@0.1.1", - "requirement": "~0.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/empower-core@0.6.1", - "requirement": "^0.6.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/error-ex@1.3.0", - "requirement": "^1.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/escape-string-regexp@1.0.5", - "requirement": "1.0.5, ^1.0.2, ^1.0.4, ^1.0.5", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/espower-location-detector@1.0.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/espurify@1.6.0", - "requirement": "^1.6.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/estraverse@4.2.0", - "requirement": "^4.0.0, ^4.1.0, ^4.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/esutils@2.0.2", - "requirement": "^2.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/exit-hook@1.1.1", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/expand-brackets@0.1.5", - "requirement": "^0.1.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/expand-range@1.8.2", - "requirement": "^1.8.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/extend@3.0.0", - "requirement": "~3.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/extglob@0.3.2", - "requirement": "^0.3.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/extsprintf@1.0.2", - "requirement": "1.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/figures@1.7.0", - "requirement": "^1.4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/filename-regex@2.0.0", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/fill-range@2.2.3", - "requirement": "^2.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/filled-array@1.1.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/find-cache-dir@0.1.1", - "requirement": "^0.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/find-up@1.1.2", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/findit@0.1.2", - "requirement": "^0.1.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/fn-name@2.0.1", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/for-in@0.1.6", - "requirement": "^0.1.5", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/for-own@0.1.4", - "requirement": "^0.1.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/forever-agent@0.6.1", - "requirement": "~0.6.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/form-data@2.1.2", - "requirement": "~2.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/fs.realpath@1.0.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/fsevents@1.0.17", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/fstream-ignore@1.0.5", - "requirement": "~1.0.5", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/fstream@1.0.10", - "requirement": "^1.0.0, ^1.0.2, ~1.0.10", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/gauge@2.7.2", - "requirement": "~2.7.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/generate-function@2.0.0", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/generate-object-property@1.2.0", - "requirement": "^1.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/gently@0.8.0", - "requirement": "^0.8.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/get-port@2.1.0", - "requirement": "^2.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/get-stdin@4.0.1", - "requirement": "^4.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/getpass@0.1.6", - "requirement": "^0.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/glob-base@0.3.0", - "requirement": "^0.3.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/glob-parent@2.0.0", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/glob@7.0.5", - "requirement": "7.0.5, ^7.0.3, ^7.0.5", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/globals@9.14.0", - "requirement": "^9.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/globby@6.1.0", - "requirement": "^6.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/got@5.7.1", - "requirement": "^5.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/graceful-fs@4.1.11", - "requirement": "^4.1.11, ^4.1.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/graceful-readlink@1.0.1", - "requirement": ">= 1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/growl@1.9.2", - "requirement": "1.9.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/har-validator@2.0.6", - "requirement": "~2.0.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/has-ansi@2.0.0", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/has-color@0.1.7", - "requirement": "~0.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/has-flag@1.0.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/has-flag@2.0.0", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/has-unicode@2.0.1", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/hashish@0.0.4", - "requirement": ">=0.0.2 <0.1, ^0.0.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/hawk@3.1.3", - "requirement": "~3.1.3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/hoek@2.16.3", - "requirement": "2.x.x", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/home-or-tmp@2.0.0", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/hosted-git-info@2.1.5", - "requirement": "^2.1.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/http-signature@1.1.1", - "requirement": "~1.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/ignore-by-default@1.0.1", - "requirement": "^1.0.0, ^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/imurmurhash@0.1.4", - "requirement": "^0.1.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/indent-string@2.1.0", - "requirement": "^2.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/inflight@1.0.6", - "requirement": "^1.0.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/inherits@2.0.3", - "requirement": "2, ^2.0.1, ~2.0.0, ~2.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/ini@1.3.4", - "requirement": "~1.3.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/invariant@2.2.2", - "requirement": "^2.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/irregular-plurals@1.2.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-arrayish@0.2.1", - "requirement": "^0.2.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-binary-path@1.0.1", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-buffer@1.1.4", - "requirement": "^1.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-builtin-module@1.0.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-ci@1.0.10", - "requirement": "^1.0.7", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-dotfile@1.0.2", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-equal-shallow@0.1.3", - "requirement": "^0.1.3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-error@2.2.1", - "requirement": "^2.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-extendable@0.1.1", - "requirement": "^0.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-extglob@1.0.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-finite@1.0.2", - "requirement": "^1.0.0, ^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-fullwidth-code-point@1.0.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-generator-fn@1.0.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-glob@2.0.1", - "requirement": "^2.0.0, ^2.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-my-json-valid@2.15.0", - "requirement": "^2.12.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-npm@1.0.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-number@2.1.0", - "requirement": "^2.0.2, ^2.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-obj@1.0.1", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-observable@0.2.0", - "requirement": "^0.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-plain-obj@1.1.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-posix-bracket@0.1.1", - "requirement": "^0.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-primitive@2.0.0", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-promise@2.1.0", - "requirement": "^2.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-property@1.0.2", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-redirect@1.0.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-retry-allowed@1.1.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-stream@1.1.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-typedarray@1.0.0", - "requirement": "~1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-url@1.2.2", - "requirement": "^1.2.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-utf8@0.2.1", - "requirement": "^0.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/isarray@1.0.0", - "requirement": "1.0.0, ~1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/isexe@1.1.2", - "requirement": "^1.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/isobject@2.1.0", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/isstream@0.1.2", - "requirement": "~0.1.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/jodid25519@1.0.2", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/js-tokens@2.0.0", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/js-tokens@3.0.0", - "requirement": "^3.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/jsbn@0.1.0", - "requirement": "~0.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/jsesc@1.3.0", - "requirement": "^1.3.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/jsesc@0.5.0", - "requirement": "~0.5.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/json-schema@0.2.3", - "requirement": "0.2.3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/json-stringify-safe@5.0.1", - "requirement": "~5.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/json3@3.3.2", - "requirement": "3.3.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/json5@0.5.1", - "requirement": "^0.5.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/jsonpointer@4.0.1", - "requirement": "^4.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/jsprim@1.3.1", - "requirement": "^1.2.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/kind-of@3.1.0", - "requirement": "^3.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/last-line-stream@1.0.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/latest-version@2.0.0", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/lazy-req@1.1.0", - "requirement": "^1.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/load-json-file@1.1.0", - "requirement": "^1.0.0, ^1.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/lodash._baseassign@3.2.0", - "requirement": "^3.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/lodash._basecopy@3.0.1", - "requirement": "^3.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/lodash._basecreate@3.0.3", - "requirement": "^3.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/lodash._getnative@3.9.1", - "requirement": "^3.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/lodash._isiterateecall@3.0.9", - "requirement": "^3.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/lodash.create@3.1.1", - "requirement": "3.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/lodash.debounce@4.0.8", - "requirement": "^4.0.3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/lodash.difference@4.5.0", - "requirement": "^4.3.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/lodash.flatten@4.4.0", - "requirement": "^4.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/lodash.isarguments@3.1.0", - "requirement": "^3.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/lodash.isarray@3.0.4", - "requirement": "^3.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/lodash.isequal@4.5.0", - "requirement": "^4.4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/lodash.keys@3.1.2", - "requirement": "^3.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/lodash@4.17.4", - "requirement": "^4.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/loose-envify@1.3.1", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/loud-rejection@1.6.0", - "requirement": "^1.0.0, ^1.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/lowercase-keys@1.0.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/lru-cache@4.0.2", - "requirement": "^4.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/map-obj@1.0.1", - "requirement": "^1.0.0, ^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/matcher@0.1.2", - "requirement": "^0.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/max-timeout@1.0.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/md5-hex@1.3.0", - "requirement": "^1.2.0, ^1.3.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/md5-o-matic@0.1.1", - "requirement": "^0.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/meow@3.7.0", - "requirement": "^3.7.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/micromatch@2.3.11", - "requirement": "^2.1.5", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/mime-db@1.26.0", - "requirement": "~1.26.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/mime-types@2.1.14", - "requirement": "^2.1.12, ~2.1.7", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/minimatch@3.0.3", - "requirement": "^3.0.0, ^3.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/minimist@0.0.8", - "requirement": "0.0.8", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/minimist@1.2.0", - "requirement": "^1.1.3, ^1.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/mkdirp@0.5.1", - "requirement": "0.5.1, >=0.5 0, ^0.5.0, ^0.5.1, ~0.5.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/mocha@3.2.0", - "requirement": "^3.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/ms@0.7.1", - "requirement": "0.7.1, ^0.7.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/multimatch@2.1.0", - "requirement": "^2.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/nan@2.5.0", - "requirement": "^2.3.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/node-pre-gyp@0.6.32", - "requirement": "^0.6.29", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/node-status-codes@1.0.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/nopt@3.0.6", - "requirement": "~3.0.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/normalize-package-data@2.3.5", - "requirement": "^2.3.2, ^2.3.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/normalize-path@2.0.1", - "requirement": "^2.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/npmlog@4.0.2", - "requirement": "^4.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/number-is-nan@1.0.1", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/oauth-sign@0.8.2", - "requirement": "~0.8.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/object-assign@4.1.1", - "requirement": "^4.0.1, ^4.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/object.omit@2.0.1", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/observable-to-promise@0.4.0", - "requirement": "^0.4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/once@1.4.0", - "requirement": "^1.3.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/once@1.3.3", - "requirement": "~1.3.3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/onetime@1.1.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/option-chain@0.1.1", - "requirement": "^0.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/os-homedir@1.0.2", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/os-tmpdir@1.0.2", - "requirement": "^1.0.0, ^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/osenv@0.1.4", - "requirement": "^0.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/package-hash@1.2.0", - "requirement": "^1.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/package-json@2.4.0", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/parse-glob@3.0.4", - "requirement": "^3.0.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/parse-json@2.2.0", - "requirement": "^2.1.0, ^2.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/parse-ms@0.1.2", - "requirement": "^0.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/parse-ms@1.0.1", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/path-exists@2.1.0", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/path-is-absolute@1.0.1", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/path-type@1.1.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/pify@2.3.0", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/pinkie-promise@1.0.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/pinkie-promise@2.0.1", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/pinkie@1.0.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/pinkie@2.0.4", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/pkg-conf@1.1.3", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/pkg-dir@1.0.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/plur@1.0.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/plur@2.1.2", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/power-assert-context-formatter@1.1.1", - "requirement": "^1.0.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/power-assert-context-traversal@1.1.1", - "requirement": "^1.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/power-assert-renderer-assertion@1.1.1", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/power-assert-renderer-base@1.1.1", - "requirement": "^1.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/power-assert-renderer-diagram@1.1.1", - "requirement": "^1.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/power-assert-renderer-succinct@1.1.1", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/power-assert-util-string-width@1.1.1", - "requirement": "^1.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/prepend-http@1.0.4", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/preserve@0.2.0", - "requirement": "^0.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/pretty-ms@0.2.2", - "requirement": "^0.2.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/pretty-ms@2.1.0", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/private@0.1.6", - "requirement": "^0.1.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/process-nextick-args@1.0.7", - "requirement": "~1.0.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/pseudomap@1.0.2", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/punycode@1.4.1", - "requirement": "^1.4.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/qs@6.3.0", - "requirement": "~6.3.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/randomatic@1.1.6", - "requirement": "^1.1.3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/rc@1.1.6", - "requirement": "^1.0.1, ^1.1.6, ~1.1.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/read-all-stream@3.1.0", - "requirement": "^3.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/read-pkg-up@1.0.1", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/read-pkg@1.1.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/readable-stream@2.2.2", - "requirement": "^2.0.0, ^2.0.0 || ^1.1.13, ^2.0.2, ^2.0.5, ^2.1.5", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/readable-stream@2.1.5", - "requirement": "~2.1.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/readdirp@2.1.0", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/redent@1.0.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/regenerate@1.3.2", - "requirement": "^1.2.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/regenerator-runtime@0.10.1", - "requirement": "^0.10.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/regenerator-transform@0.9.8", - "requirement": "0.9.8", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/regex-cache@0.4.3", - "requirement": "^0.4.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/regexpu-core@2.0.0", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/registry-auth-token@3.1.0", - "requirement": "^3.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/registry-url@3.1.0", - "requirement": "^3.0.3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/regjsgen@0.2.0", - "requirement": "^0.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/regjsparser@0.1.5", - "requirement": "^0.1.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/repeat-element@1.1.2", - "requirement": "^1.1.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/repeat-string@1.6.1", - "requirement": "^1.5.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/repeating@2.0.1", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/request@2.79.0", - "requirement": "^2.11.4, ^2.79.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/require-precompiled@0.1.0", - "requirement": "^0.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/resolve-cwd@1.0.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/resolve-from@2.0.0", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/restore-cursor@1.0.1", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/rimraf@2.5.4", - "requirement": "2, ~2.5.1, ~2.5.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/semver-diff@2.1.0", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/semver@5.3.0", - "requirement": "2 || 3 || 4 || 5, ^5.0.3, ^5.1.0, ^5.3.0, ~5.3.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/seq@0.3.5", - "requirement": ">=0.1.7", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/set-blocking@2.0.0", - "requirement": "~2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/set-immediate-shim@1.0.1", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/signal-exit@3.0.2", - "requirement": "^3.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/slash@1.0.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/slice-ansi@0.0.4", - "requirement": "0.0.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/slide@1.1.6", - "requirement": "^1.1.5", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/sntp@1.0.9", - "requirement": "1.x.x", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/sort-keys@1.1.2", - "requirement": "^1.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/source-map-support@0.4.9", - "requirement": "^0.4.0, ^0.4.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/source-map@0.5.6", - "requirement": "^0.5.0, ^0.5.3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/spdx-correct@1.0.2", - "requirement": "~1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/spdx-expression-parse@1.0.4", - "requirement": "~1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/spdx-license-ids@1.2.2", - "requirement": "^1.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/sshpk@1.10.2", - "requirement": "^1.7.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/stack-utils@0.4.0", - "requirement": "^0.4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/string-width@1.0.2", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/string_decoder@0.10.31", - "requirement": "~0.10.x", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/stringifier@1.3.0", - "requirement": "^1.3.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/stringstream@0.0.5", - "requirement": "~0.0.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/strip-ansi@3.0.1", - "requirement": "^3.0.0, ^3.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/strip-ansi@0.1.1", - "requirement": "~0.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/strip-bom@2.0.0", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/strip-indent@1.0.1", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/strip-json-comments@1.0.4", - "requirement": "~1.0.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/supports-color@3.1.2", - "requirement": "3.1.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/supports-color@0.2.0", - "requirement": "^0.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/supports-color@2.0.0", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/symbol-observable@0.2.4", - "requirement": "^0.2.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/symbol@0.2.3", - "requirement": "^0.2.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/tar-pack@3.3.0", - "requirement": "~3.3.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/tar@2.2.1", - "requirement": "~2.2.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/text-table@0.2.0", - "requirement": "^0.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/the-argv@1.0.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/through2@2.0.3", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/time-require@0.1.2", - "requirement": "^0.1.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/timed-out@3.1.3", - "requirement": "^3.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/to-fast-properties@1.0.2", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/tough-cookie@2.3.2", - "requirement": "~2.3.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/traverse@0.6.6", - "requirement": ">=0.2.4, ^0.6.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/traverse@0.3.9", - "requirement": ">=0.3.0 <0.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/trim-newlines@1.0.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/tunnel-agent@0.4.3", - "requirement": "~0.4.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/tweetnacl@0.14.5", - "requirement": "^0.14.3, ~0.14.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/type-name@2.0.2", - "requirement": "^2.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/uid-number@0.0.6", - "requirement": "~0.0.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/uid2@0.0.3", - "requirement": "0.0.3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/unique-temp-dir@1.0.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/unzip-response@1.0.2", - "requirement": "^1.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/update-notifier@1.0.3", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/url-parse-lax@1.0.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/urun@0.0.6", - "requirement": "^0.0.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/utest@0.0.2", - "requirement": "0.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/utest@0.0.8", - "requirement": "^0.0.8", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/util-deprecate@1.0.2", - "requirement": "~1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/uuid@2.0.3", - "requirement": "^2.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/uuid@3.0.1", - "requirement": "^3.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/validate-npm-package-license@3.0.1", - "requirement": "^3.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/verror@1.3.6", - "requirement": "1.3.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/which@1.2.12", - "requirement": "^1.2.9", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/wide-align@1.1.0", - "requirement": "^1.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/widest-line@1.0.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/wrappy@1.0.2", - "requirement": "1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/write-file-atomic@1.3.1", - "requirement": "^1.1.2, ^1.1.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/write-json-file@1.2.0", - "requirement": "^1.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/write-pkg@1.0.0", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/xdg-basedir@2.0.0", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/xtend@4.0.1", - "requirement": "^4.0.0, ~4.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/yallist@2.0.0", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": null, - "repository_homepage_url": "https://www.npmjs.com/package/None", - "repository_download_url": "https://registry.npmjs.org/None/-/None-None.tgz", - "api_data_url": "https://registry.npmjs.org/None" - }, - { - "type": "npm", - "namespace": null, - "name": "abbrev", - "version": "1.0.9", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/abbrev@1.0.9", - "repository_homepage_url": "https://www.npmjs.com/package/abbrev", - "repository_download_url": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", - "api_data_url": "https://registry.npmjs.org/abbrev/1.0.9" - }, - { - "type": "npm", - "namespace": null, - "name": "ansi-align", - "version": "1.1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/ansi-align/-/ansi-align-1.1.0.tgz#2f0c1658829739add5ebb15e6b0c6e3423f016ba", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/string-width", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/ansi-align@1.1.0", - "repository_homepage_url": "https://www.npmjs.com/package/ansi-align", - "repository_download_url": "https://registry.npmjs.org/ansi-align/-/ansi-align-1.1.0.tgz", - "api_data_url": "https://registry.npmjs.org/ansi-align/1.1.0" - }, - { - "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": "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/ansi-regex@2.1.1", - "repository_homepage_url": "https://www.npmjs.com/package/ansi-regex", - "repository_download_url": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "api_data_url": "https://registry.npmjs.org/ansi-regex/2.1.1" - }, - { - "type": "npm", - "namespace": null, - "name": "ansi-styles", - "version": "2.2.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/ansi-styles@2.2.1", - "repository_homepage_url": "https://www.npmjs.com/package/ansi-styles", - "repository_download_url": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "api_data_url": "https://registry.npmjs.org/ansi-styles/2.2.1" - }, - { - "type": "npm", - "namespace": null, - "name": "ansi-styles", - "version": "1.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/ansi-styles@1.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/ansi-styles", - "repository_download_url": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/ansi-styles/1.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "anymatch", - "version": "1.3.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.0.tgz#a3e52fa39168c825ff57b0248126ce5a8ff95507", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/arrify", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/micromatch", - "requirement": "^2.1.5", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/anymatch@1.3.0", - "repository_homepage_url": "https://www.npmjs.com/package/anymatch", - "repository_download_url": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz", - "api_data_url": "https://registry.npmjs.org/anymatch/1.3.0" - }, - { - "type": "npm", - "namespace": null, - "name": "aproba", - "version": "1.0.4", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/aproba/-/aproba-1.0.4.tgz#2713680775e7614c8ba186c065d4e2e52d1072c0", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/aproba@1.0.4", - "repository_homepage_url": "https://www.npmjs.com/package/aproba", - "repository_download_url": "https://registry.npmjs.org/aproba/-/aproba-1.0.4.tgz", - "api_data_url": "https://registry.npmjs.org/aproba/1.0.4" - }, - { - "type": "npm", - "namespace": null, - "name": "are-we-there-yet", - "version": "1.1.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz#80e470e95a084794fe1899262c5667c6e88de1b3", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/delegates", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/are-we-there-yet@1.1.2", - "repository_homepage_url": "https://www.npmjs.com/package/are-we-there-yet", - "repository_download_url": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz", - "api_data_url": "https://registry.npmjs.org/are-we-there-yet/1.1.2" - }, - { - "type": "npm", - "namespace": null, - "name": "arr-diff", - "version": "2.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/arr-flatten", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/arr-diff@2.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/arr-diff", - "repository_download_url": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/arr-diff/2.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "arr-exclude", - "version": "1.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/arr-exclude/-/arr-exclude-1.0.0.tgz#dfc7c2e552a270723ccda04cf3128c8cbfe5c631", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/arr-exclude@1.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/arr-exclude", - "repository_download_url": "https://registry.npmjs.org/arr-exclude/-/arr-exclude-1.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/arr-exclude/1.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "arr-flatten", - "version": "1.0.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.1.tgz#e5ffe54d45e19f32f216e91eb99c8ce892bb604b", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/arr-flatten@1.0.1", - "repository_homepage_url": "https://www.npmjs.com/package/arr-flatten", - "repository_download_url": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.1.tgz", - "api_data_url": "https://registry.npmjs.org/arr-flatten/1.0.1" - }, - { - "type": "npm", - "namespace": null, - "name": "array-differ", - "version": "1.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/array-differ@1.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/array-differ", - "repository_download_url": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/array-differ/1.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "array-find-index", - "version": "1.0.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/array-find-index@1.0.2", - "repository_homepage_url": "https://www.npmjs.com/package/array-find-index", - "repository_download_url": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "api_data_url": "https://registry.npmjs.org/array-find-index/1.0.2" - }, - { - "type": "npm", - "namespace": null, - "name": "array-union", - "version": "1.0.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/array-uniq", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/array-union@1.0.2", - "repository_homepage_url": "https://www.npmjs.com/package/array-union", - "repository_download_url": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "api_data_url": "https://registry.npmjs.org/array-union/1.0.2" - }, - { - "type": "npm", - "namespace": null, - "name": "array-uniq", - "version": "1.0.3", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/array-uniq@1.0.3", - "repository_homepage_url": "https://www.npmjs.com/package/array-uniq", - "repository_download_url": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "api_data_url": "https://registry.npmjs.org/array-uniq/1.0.3" - }, - { - "type": "npm", - "namespace": null, - "name": "array-unique", - "version": "0.2.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/array-unique@0.2.1", - "repository_homepage_url": "https://www.npmjs.com/package/array-unique", - "repository_download_url": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "api_data_url": "https://registry.npmjs.org/array-unique/0.2.1" - }, - { - "type": "npm", - "namespace": null, - "name": "arrify", - "version": "1.0.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/arrify@1.0.1", - "repository_homepage_url": "https://www.npmjs.com/package/arrify", - "repository_download_url": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "api_data_url": "https://registry.npmjs.org/arrify/1.0.1" - }, - { - "type": "npm", - "namespace": null, - "name": "asn1", - "version": "0.2.3", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/asn1@0.2.3", - "repository_homepage_url": "https://www.npmjs.com/package/asn1", - "repository_download_url": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "api_data_url": "https://registry.npmjs.org/asn1/0.2.3" - }, - { - "type": "npm", - "namespace": null, - "name": "assert-plus", - "version": "0.2.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/assert-plus@0.2.0", - "repository_homepage_url": "https://www.npmjs.com/package/assert-plus", - "repository_download_url": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "api_data_url": "https://registry.npmjs.org/assert-plus/0.2.0" - }, - { - "type": "npm", - "namespace": null, - "name": "assert-plus", - "version": "1.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/assert-plus@1.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/assert-plus", - "repository_download_url": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/assert-plus/1.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "async-each", - "version": "1.0.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/async-each@1.0.1", - "repository_homepage_url": "https://www.npmjs.com/package/async-each", - "repository_download_url": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", - "api_data_url": "https://registry.npmjs.org/async-each/1.0.1" - }, - { - "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": "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/asynckit@0.4.0", - "repository_homepage_url": "https://www.npmjs.com/package/asynckit", - "repository_download_url": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "api_data_url": "https://registry.npmjs.org/asynckit/0.4.0" - }, - { - "type": "npm", - "namespace": null, - "name": "auto-bind", - "version": "0.1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/auto-bind/-/auto-bind-0.1.0.tgz#7a29efc8c2388d3d578e02fc2df531c81ffc1ee1", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/auto-bind@0.1.0", - "repository_homepage_url": "https://www.npmjs.com/package/auto-bind", - "repository_download_url": "https://registry.npmjs.org/auto-bind/-/auto-bind-0.1.0.tgz", - "api_data_url": "https://registry.npmjs.org/auto-bind/0.1.0" - }, - { - "type": "npm", - "namespace": null, - "name": "ava-files", - "version": "0.2.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/ava-files/-/ava-files-0.2.0.tgz#c7b8b6e2e0cea63b57a6e27e0db145c7c19cfe20", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/auto-bind", - "requirement": "^0.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/bluebird", - "requirement": "^3.4.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/globby", - "requirement": "^6.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/ignore-by-default", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/lodash.flatten", - "requirement": "^4.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/multimatch", - "requirement": "^2.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/slash", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/ava-files@0.2.0", - "repository_homepage_url": "https://www.npmjs.com/package/ava-files", - "repository_download_url": "https://registry.npmjs.org/ava-files/-/ava-files-0.2.0.tgz", - "api_data_url": "https://registry.npmjs.org/ava-files/0.2.0" - }, - { - "type": "npm", - "namespace": null, - "name": "ava-init", - "version": "0.1.6", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/ava-init/-/ava-init-0.1.6.tgz#ef19ed0b24b6bf359dad6fbadf1a05d836395c91", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/arr-exclude", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/cross-spawn", - "requirement": "^4.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/pinkie-promise", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/read-pkg-up", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/the-argv", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/write-pkg", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/ava-init@0.1.6", - "repository_homepage_url": "https://www.npmjs.com/package/ava-init", - "repository_download_url": "https://registry.npmjs.org/ava-init/-/ava-init-0.1.6.tgz", - "api_data_url": "https://registry.npmjs.org/ava-init/0.1.6" - }, - { - "type": "npm", - "namespace": null, - "name": "ava", - "version": "0.17.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/ava/-/ava-0.17.0.tgz#359e2a89616801ef03929c3cf10a9d4f8e451d02", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/arr-flatten", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/array-union", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/array-uniq", - "requirement": "^1.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/arrify", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/auto-bind", - "requirement": "^0.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/ava-files", - "requirement": "^0.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/ava-init", - "requirement": "^0.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-code-frame", - "requirement": "^6.16.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-core", - "requirement": "^6.17.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-ava-throws-helper", - "requirement": "^0.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-detective", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-espower", - "requirement": "^2.3.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-runtime", - "requirement": "^6.15.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-preset-es2015", - "requirement": "^6.16.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-preset-es2015-node4", - "requirement": "^2.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-preset-stage-2", - "requirement": "^6.17.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.11.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/bluebird", - "requirement": "^3.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/caching-transform", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/chalk", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/chokidar", - "requirement": "^1.4.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/clean-yaml-object", - "requirement": "^0.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/cli-cursor", - "requirement": "^1.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/cli-spinners", - "requirement": "^0.1.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/cli-truncate", - "requirement": "^0.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/co-with-promise", - "requirement": "^4.6.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/common-path-prefix", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/convert-source-map", - "requirement": "^1.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/core-assert", - "requirement": "^0.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/currently-unhandled", - "requirement": "^0.4.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/debug", - "requirement": "^2.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/empower-core", - "requirement": "^0.6.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/figures", - "requirement": "^1.4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/find-cache-dir", - "requirement": "^0.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/fn-name", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/get-port", - "requirement": "^2.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/has-flag", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/ignore-by-default", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-ci", - "requirement": "^1.0.7", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-generator-fn", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-obj", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-observable", - "requirement": "^0.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-promise", - "requirement": "^2.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/last-line-stream", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/lodash.debounce", - "requirement": "^4.0.3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/lodash.difference", - "requirement": "^4.3.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/lodash.isequal", - "requirement": "^4.4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/loud-rejection", - "requirement": "^1.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/matcher", - "requirement": "^0.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/max-timeout", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/md5-hex", - "requirement": "^1.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/meow", - "requirement": "^3.7.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/ms", - "requirement": "^0.7.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/object-assign", - "requirement": "^4.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/observable-to-promise", - "requirement": "^0.4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/option-chain", - "requirement": "^0.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/package-hash", - "requirement": "^1.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/pkg-conf", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/plur", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/power-assert-context-formatter", - "requirement": "^1.0.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/power-assert-renderer-assertion", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/power-assert-renderer-succinct", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/pretty-ms", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/repeating", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/require-precompiled", - "requirement": "^0.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/resolve-cwd", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/semver", - "requirement": "^5.3.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/set-immediate-shim", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/source-map-support", - "requirement": "^0.4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/stack-utils", - "requirement": "^0.4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/strip-ansi", - "requirement": "^3.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/strip-bom", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/time-require", - "requirement": "^0.1.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/unique-temp-dir", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/update-notifier", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/ava@0.17.0", - "repository_homepage_url": "https://www.npmjs.com/package/ava", - "repository_download_url": "https://registry.npmjs.org/ava/-/ava-0.17.0.tgz", - "api_data_url": "https://registry.npmjs.org/ava/0.17.0" - }, - { - "type": "npm", - "namespace": null, - "name": "aws-sign2", - "version": "0.6.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/aws-sign2@0.6.0", - "repository_homepage_url": "https://www.npmjs.com/package/aws-sign2", - "repository_download_url": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "api_data_url": "https://registry.npmjs.org/aws-sign2/0.6.0" - }, - { - "type": "npm", - "namespace": null, - "name": "aws4", - "version": "1.5.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/aws4/-/aws4-1.5.0.tgz#0a29ffb79c31c9e712eeb087e8e7a64b4a56d755", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/aws4@1.5.0", - "repository_homepage_url": "https://www.npmjs.com/package/aws4", - "repository_download_url": "https://registry.npmjs.org/aws4/-/aws4-1.5.0.tgz", - "api_data_url": "https://registry.npmjs.org/aws4/1.5.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-code-frame", - "version": "6.20.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.20.0.tgz#b968f839090f9a8bc6d41938fb96cb84f7387b26", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/chalk", - "requirement": "^1.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/esutils", - "requirement": "^2.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/js-tokens", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-code-frame@6.20.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-code-frame", - "repository_download_url": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.20.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-code-frame/6.20.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-core", - "version": "6.21.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-core/-/babel-core-6.21.0.tgz#75525480c21c803f826ef3867d22c19f080a3724", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-code-frame", - "requirement": "^6.20.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-generator", - "requirement": "^6.21.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-helpers", - "requirement": "^6.16.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-messages", - "requirement": "^6.8.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-register", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.20.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-template", - "requirement": "^6.16.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-traverse", - "requirement": "^6.21.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-types", - "requirement": "^6.21.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babylon", - "requirement": "^6.11.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/convert-source-map", - "requirement": "^1.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/debug", - "requirement": "^2.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/json5", - "requirement": "^0.5.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/lodash", - "requirement": "^4.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/minimatch", - "requirement": "^3.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/path-is-absolute", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/private", - "requirement": "^0.1.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/slash", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/source-map", - "requirement": "^0.5.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-core@6.21.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-core", - "repository_download_url": "https://registry.npmjs.org/babel-core/-/babel-core-6.21.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-core/6.21.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-generator", - "version": "6.21.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.21.0.tgz#605f1269c489a1c75deeca7ea16d43d4656c8494", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-messages", - "requirement": "^6.8.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.20.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-types", - "requirement": "^6.21.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/detect-indent", - "requirement": "^4.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/jsesc", - "requirement": "^1.3.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/lodash", - "requirement": "^4.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/source-map", - "requirement": "^0.5.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-generator@6.21.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-generator", - "repository_download_url": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.21.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-generator/6.21.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-helper-bindify-decorators", - "version": "6.18.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.18.0.tgz#fc00c573676a6e702fffa00019580892ec8780a5", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-traverse", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-types", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-helper-bindify-decorators@6.18.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-helper-bindify-decorators", - "repository_download_url": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.18.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-helper-bindify-decorators/6.18.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-helper-builder-binary-assignment-operator-visitor", - "version": "6.18.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.18.0.tgz#8ae814989f7a53682152e3401a04fabd0bb333a6", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-helper-explode-assignable-expression", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-types", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-helper-builder-binary-assignment-operator-visitor@6.18.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-helper-builder-binary-assignment-operator-visitor", - "repository_download_url": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.18.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/6.18.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-helper-call-delegate", - "version": "6.18.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.18.0.tgz#05b14aafa430884b034097ef29e9f067ea4133bd", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-helper-hoist-variables", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-traverse", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-types", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-helper-call-delegate@6.18.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-helper-call-delegate", - "repository_download_url": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.18.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-helper-call-delegate/6.18.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-helper-define-map", - "version": "6.18.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.18.0.tgz#8d6c85dc7fbb4c19be3de40474d18e97c3676ec2", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-helper-function-name", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.9.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-types", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/lodash", - "requirement": "^4.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-helper-define-map@6.18.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-helper-define-map", - "repository_download_url": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.18.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-helper-define-map/6.18.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-helper-explode-assignable-expression", - "version": "6.18.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.18.0.tgz#14b8e8c2d03ad735d4b20f1840b24cd1f65239fe", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-traverse", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-types", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-helper-explode-assignable-expression@6.18.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-helper-explode-assignable-expression", - "repository_download_url": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.18.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/6.18.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-helper-explode-class", - "version": "6.18.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-helper-explode-class/-/babel-helper-explode-class-6.18.0.tgz#c44f76f4fa23b9c5d607cbac5d4115e7a76f62cb", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-helper-bindify-decorators", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-traverse", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-types", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-helper-explode-class@6.18.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-helper-explode-class", - "repository_download_url": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.18.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-helper-explode-class/6.18.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-helper-function-name", - "version": "6.18.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.18.0.tgz#68ec71aeba1f3e28b2a6f0730190b754a9bf30e6", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-helper-get-function-arity", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-template", - "requirement": "^6.8.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-traverse", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-types", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-helper-function-name@6.18.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-helper-function-name", - "repository_download_url": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.18.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-helper-function-name/6.18.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-helper-get-function-arity", - "version": "6.18.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.18.0.tgz#a5b19695fd3f9cdfc328398b47dafcd7094f9f24", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-types", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-helper-get-function-arity@6.18.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-helper-get-function-arity", - "repository_download_url": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.18.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-helper-get-function-arity/6.18.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-helper-hoist-variables", - "version": "6.18.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.18.0.tgz#a835b5ab8b46d6de9babefae4d98ea41e866b82a", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-types", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-helper-hoist-variables@6.18.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-helper-hoist-variables", - "repository_download_url": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.18.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-helper-hoist-variables/6.18.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-helper-optimise-call-expression", - "version": "6.18.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.18.0.tgz#9261d0299ee1a4f08a6dd28b7b7c777348fd8f0f", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-types", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-helper-optimise-call-expression@6.18.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-helper-optimise-call-expression", - "repository_download_url": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.18.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-helper-optimise-call-expression/6.18.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-helper-regex", - "version": "6.18.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.18.0.tgz#ae0ebfd77de86cb2f1af258e2cc20b5fe893ecc6", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.9.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-types", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/lodash", - "requirement": "^4.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-helper-regex@6.18.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-helper-regex", - "repository_download_url": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.18.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-helper-regex/6.18.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-helper-remap-async-to-generator", - "version": "6.20.3", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.20.3.tgz#9dd3b396f13e35ef63e538098500adc24c63c4e7", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-helper-function-name", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.20.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-template", - "requirement": "^6.16.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-traverse", - "requirement": "^6.20.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-types", - "requirement": "^6.20.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-helper-remap-async-to-generator@6.20.3", - "repository_homepage_url": "https://www.npmjs.com/package/babel-helper-remap-async-to-generator", - "repository_download_url": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.20.3.tgz", - "api_data_url": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/6.20.3" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-helper-replace-supers", - "version": "6.18.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.18.0.tgz#28ec69877be4144dbd64f4cc3a337e89f29a924e", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-helper-optimise-call-expression", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-messages", - "requirement": "^6.8.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-template", - "requirement": "^6.16.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-traverse", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-types", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-helper-replace-supers@6.18.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-helper-replace-supers", - "repository_download_url": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.18.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-helper-replace-supers/6.18.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-helpers", - "version": "6.16.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.16.0.tgz#1095ec10d99279460553e67eb3eee9973d3867e3", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-template", - "requirement": "^6.16.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-helpers@6.16.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-helpers", - "repository_download_url": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.16.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-helpers/6.16.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-messages", - "version": "6.8.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.8.0.tgz#bf504736ca967e6d65ef0adb5a2a5f947c8e0eb9", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-messages@6.8.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-messages", - "repository_download_url": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.8.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-messages/6.8.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-plugin-ava-throws-helper", - "version": "0.1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-plugin-ava-throws-helper/-/babel-plugin-ava-throws-helper-0.1.0.tgz#951107708a12208026bf8ca4cef18a87bc9b0cfe", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-template", - "requirement": "^6.7.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-types", - "requirement": "^6.7.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-plugin-ava-throws-helper@0.1.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-ava-throws-helper", - "repository_download_url": "https://registry.npmjs.org/babel-plugin-ava-throws-helper/-/babel-plugin-ava-throws-helper-0.1.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-plugin-ava-throws-helper/0.1.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-plugin-check-es2015-constants", - "version": "6.8.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.8.0.tgz#dbf024c32ed37bfda8dee1e76da02386a8d26fe7", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-plugin-check-es2015-constants@6.8.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-check-es2015-constants", - "repository_download_url": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.8.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/6.8.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-plugin-detective", - "version": "2.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-plugin-detective/-/babel-plugin-detective-2.0.0.tgz#6e642e83c22a335279754ebe2d754d2635f49f13", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-plugin-detective@2.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-detective", - "repository_download_url": "https://registry.npmjs.org/babel-plugin-detective/-/babel-plugin-detective-2.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-plugin-detective/2.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-plugin-espower", - "version": "2.3.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-plugin-espower/-/babel-plugin-espower-2.3.2.tgz#5516b8fcdb26c9f0e1d8160749f6e4c65e71271e", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-generator", - "requirement": "^6.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babylon", - "requirement": "^6.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/call-matcher", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/core-js", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/espower-location-detector", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/espurify", - "requirement": "^1.6.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/estraverse", - "requirement": "^4.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-plugin-espower@2.3.2", - "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-espower", - "repository_download_url": "https://registry.npmjs.org/babel-plugin-espower/-/babel-plugin-espower-2.3.2.tgz", - "api_data_url": "https://registry.npmjs.org/babel-plugin-espower/2.3.2" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-plugin-syntax-async-functions", - "version": "6.13.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-plugin-syntax-async-functions@6.13.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-syntax-async-functions", - "repository_download_url": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/6.13.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-plugin-syntax-async-generators", - "version": "6.13.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz#6bc963ebb16eccbae6b92b596eb7f35c342a8b9a", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-plugin-syntax-async-generators@6.13.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-syntax-async-generators", - "repository_download_url": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/6.13.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-plugin-syntax-class-properties", - "version": "6.13.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-plugin-syntax-class-properties@6.13.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-syntax-class-properties", - "repository_download_url": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/6.13.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-plugin-syntax-decorators", - "version": "6.13.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz#312563b4dbde3cc806cee3e416cceeaddd11ac0b", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-plugin-syntax-decorators@6.13.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-syntax-decorators", - "repository_download_url": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-plugin-syntax-decorators/6.13.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-plugin-syntax-dynamic-import", - "version": "6.18.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-plugin-syntax-dynamic-import@6.18.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-syntax-dynamic-import", - "repository_download_url": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/6.18.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-plugin-syntax-exponentiation-operator", - "version": "6.13.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-plugin-syntax-exponentiation-operator@6.13.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-syntax-exponentiation-operator", - "repository_download_url": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/6.13.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-plugin-syntax-object-rest-spread", - "version": "6.13.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-plugin-syntax-object-rest-spread@6.13.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-syntax-object-rest-spread", - "repository_download_url": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/6.13.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-plugin-syntax-trailing-function-commas", - "version": "6.20.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.20.0.tgz#442835e19179f45b87e92d477d70b9f1f18b5c4f", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-plugin-syntax-trailing-function-commas@6.20.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-syntax-trailing-function-commas", - "repository_download_url": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.20.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/6.20.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-plugin-transform-async-generator-functions", - "version": "6.17.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.17.0.tgz#d0b5a2b2f0940f2b245fa20a00519ed7bc6cae54", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-helper-remap-async-to-generator", - "requirement": "^6.16.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-syntax-async-generators", - "requirement": "^6.5.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-plugin-transform-async-generator-functions@6.17.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-async-generator-functions", - "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.17.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/6.17.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-plugin-transform-async-to-generator", - "version": "6.16.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.16.0.tgz#19ec36cb1486b59f9f468adfa42ce13908ca2999", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-helper-remap-async-to-generator", - "requirement": "^6.16.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-syntax-async-functions", - "requirement": "^6.8.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-plugin-transform-async-to-generator@6.16.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-async-to-generator", - "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.16.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/6.16.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-plugin-transform-class-properties", - "version": "6.19.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.19.0.tgz#1274b349abaadc835164e2004f4a2444a2788d5f", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-helper-function-name", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-syntax-class-properties", - "requirement": "^6.8.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.9.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-template", - "requirement": "^6.15.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-plugin-transform-class-properties@6.19.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-class-properties", - "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.19.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-class-properties/6.19.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-plugin-transform-decorators", - "version": "6.13.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.13.0.tgz#82d65c1470ae83e2d13eebecb0a1c2476d62da9d", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-helper-define-map", - "requirement": "^6.8.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-helper-explode-class", - "requirement": "^6.8.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-syntax-decorators", - "requirement": "^6.13.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-template", - "requirement": "^6.8.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-types", - "requirement": "^6.13.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-plugin-transform-decorators@6.13.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-decorators", - "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.13.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-decorators/6.13.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-plugin-transform-es2015-arrow-functions", - "version": "6.8.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.8.0.tgz#5b63afc3181bdc9a8c4d481b5a4f3f7d7fef3d9d", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-plugin-transform-es2015-arrow-functions@6.8.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-es2015-arrow-functions", - "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.8.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/6.8.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-plugin-transform-es2015-block-scoped-functions", - "version": "6.8.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.8.0.tgz#ed95d629c4b5a71ae29682b998f70d9833eb366d", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-plugin-transform-es2015-block-scoped-functions@6.8.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-es2015-block-scoped-functions", - "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.8.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/6.8.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-plugin-transform-es2015-block-scoping", - "version": "6.21.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.21.0.tgz#e840687f922e70fb2c42bb13501838c174a115ed", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.20.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-template", - "requirement": "^6.15.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-traverse", - "requirement": "^6.21.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-types", - "requirement": "^6.21.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/lodash", - "requirement": "^4.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-plugin-transform-es2015-block-scoping@6.21.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-es2015-block-scoping", - "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.21.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/6.21.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-plugin-transform-es2015-classes", - "version": "6.18.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.18.0.tgz#ffe7a17321bf83e494dcda0ae3fc72df48ffd1d9", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-helper-define-map", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-helper-function-name", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-helper-optimise-call-expression", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-helper-replace-supers", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-messages", - "requirement": "^6.8.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.9.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-template", - "requirement": "^6.14.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-traverse", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-types", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-plugin-transform-es2015-classes@6.18.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-es2015-classes", - "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.18.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/6.18.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-plugin-transform-es2015-computed-properties", - "version": "6.8.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.8.0.tgz#f51010fd61b3bd7b6b60a5fdfd307bb7a5279870", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-helper-define-map", - "requirement": "^6.8.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-template", - "requirement": "^6.8.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-plugin-transform-es2015-computed-properties@6.8.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-es2015-computed-properties", - "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.8.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/6.8.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-plugin-transform-es2015-destructuring", - "version": "6.19.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.19.0.tgz#ff1d911c4b3f4cab621bd66702a869acd1900533", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.9.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-plugin-transform-es2015-destructuring@6.19.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-es2015-destructuring", - "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.19.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/6.19.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-plugin-transform-es2015-duplicate-keys", - "version": "6.8.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.8.0.tgz#fd8f7f7171fc108cc1c70c3164b9f15a81c25f7d", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-types", - "requirement": "^6.8.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-plugin-transform-es2015-duplicate-keys@6.8.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-es2015-duplicate-keys", - "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.8.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/6.8.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-plugin-transform-es2015-for-of", - "version": "6.18.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.18.0.tgz#4c517504db64bf8cfc119a6b8f177211f2028a70", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-plugin-transform-es2015-for-of@6.18.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-es2015-for-of", - "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.18.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/6.18.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-plugin-transform-es2015-function-name", - "version": "6.9.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.9.0.tgz#8c135b17dbd064e5bba56ec511baaee2fca82719", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-helper-function-name", - "requirement": "^6.8.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.9.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-types", - "requirement": "^6.9.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-plugin-transform-es2015-function-name@6.9.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-es2015-function-name", - "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.9.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/6.9.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-plugin-transform-es2015-literals", - "version": "6.8.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.8.0.tgz#50aa2e5c7958fc2ab25d74ec117e0cc98f046468", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-plugin-transform-es2015-literals@6.8.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-es2015-literals", - "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.8.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/6.8.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-plugin-transform-es2015-modules-amd", - "version": "6.18.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.18.0.tgz#49a054cbb762bdf9ae2d8a807076cfade6141e40", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-plugin-transform-es2015-modules-commonjs", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-template", - "requirement": "^6.8.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-plugin-transform-es2015-modules-amd@6.18.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-es2015-modules-amd", - "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.18.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/6.18.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-plugin-transform-es2015-modules-commonjs", - "version": "6.18.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.18.0.tgz#c15ae5bb11b32a0abdcc98a5837baa4ee8d67bcc", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-plugin-transform-strict-mode", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-template", - "requirement": "^6.16.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-types", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-plugin-transform-es2015-modules-commonjs@6.18.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-es2015-modules-commonjs", - "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.18.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/6.18.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-plugin-transform-es2015-modules-systemjs", - "version": "6.19.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.19.0.tgz#50438136eba74527efa00a5b0fefaf1dc4071da6", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-helper-hoist-variables", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.11.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-template", - "requirement": "^6.14.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-plugin-transform-es2015-modules-systemjs@6.19.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-es2015-modules-systemjs", - "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.19.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/6.19.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-plugin-transform-es2015-modules-umd", - "version": "6.18.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.18.0.tgz#23351770ece5c1f8e83ed67cb1d7992884491e50", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-plugin-transform-es2015-modules-amd", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-template", - "requirement": "^6.8.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-plugin-transform-es2015-modules-umd@6.18.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-es2015-modules-umd", - "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.18.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/6.18.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-plugin-transform-es2015-object-super", - "version": "6.8.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.8.0.tgz#1b858740a5a4400887c23dcff6f4d56eea4a24c5", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-helper-replace-supers", - "requirement": "^6.8.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-plugin-transform-es2015-object-super@6.8.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-es2015-object-super", - "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.8.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/6.8.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-plugin-transform-es2015-parameters", - "version": "6.21.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.21.0.tgz#46a655e6864ef984091448cdf024d87b60b2a7d8", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-helper-call-delegate", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-helper-get-function-arity", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.9.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-template", - "requirement": "^6.16.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-traverse", - "requirement": "^6.21.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-types", - "requirement": "^6.21.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-plugin-transform-es2015-parameters@6.21.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-es2015-parameters", - "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.21.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/6.21.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-plugin-transform-es2015-shorthand-properties", - "version": "6.18.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.18.0.tgz#e2ede3b7df47bf980151926534d1dd0cbea58f43", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-types", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-plugin-transform-es2015-shorthand-properties@6.18.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-es2015-shorthand-properties", - "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.18.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/6.18.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-plugin-transform-es2015-spread", - "version": "6.8.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.8.0.tgz#0217f737e3b821fa5a669f187c6ed59205f05e9c", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-plugin-transform-es2015-spread@6.8.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-es2015-spread", - "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.8.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/6.8.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-plugin-transform-es2015-sticky-regex", - "version": "6.8.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.8.0.tgz#e73d300a440a35d5c64f5c2a344dc236e3df47be", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-helper-regex", - "requirement": "^6.8.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-types", - "requirement": "^6.8.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-plugin-transform-es2015-sticky-regex@6.8.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-es2015-sticky-regex", - "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.8.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/6.8.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-plugin-transform-es2015-template-literals", - "version": "6.8.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.8.0.tgz#86eb876d0a2c635da4ec048b4f7de9dfc897e66b", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-plugin-transform-es2015-template-literals@6.8.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-es2015-template-literals", - "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.8.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/6.8.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-plugin-transform-es2015-typeof-symbol", - "version": "6.18.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.18.0.tgz#0b14c48629c90ff47a0650077f6aa699bee35798", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-plugin-transform-es2015-typeof-symbol@6.18.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-es2015-typeof-symbol", - "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.18.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/6.18.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-plugin-transform-es2015-unicode-regex", - "version": "6.11.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.11.0.tgz#6298ceabaad88d50a3f4f392d8de997260f6ef2c", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-helper-regex", - "requirement": "^6.8.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/regexpu-core", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-plugin-transform-es2015-unicode-regex@6.11.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-es2015-unicode-regex", - "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.11.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/6.11.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-plugin-transform-exponentiation-operator", - "version": "6.8.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.8.0.tgz#db25742e9339eade676ca9acec46f955599a68a4", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-helper-builder-binary-assignment-operator-visitor", - "requirement": "^6.8.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-syntax-exponentiation-operator", - "requirement": "^6.8.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-plugin-transform-exponentiation-operator@6.8.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-exponentiation-operator", - "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.8.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/6.8.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-plugin-transform-object-rest-spread", - "version": "6.20.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.20.2.tgz#e816c55bba77b14c16365d87e2ae48c8fd18fc2e", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-plugin-syntax-object-rest-spread", - "requirement": "^6.8.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.20.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-plugin-transform-object-rest-spread@6.20.2", - "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-object-rest-spread", - "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.20.2.tgz", - "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/6.20.2" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-plugin-transform-regenerator", - "version": "6.21.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.21.0.tgz#75d0c7e7f84f379358f508451c68a2c5fa5a9703", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/regenerator-transform", - "requirement": "0.9.8", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-plugin-transform-regenerator@6.21.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-regenerator", - "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.21.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-regenerator/6.21.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-plugin-transform-runtime", - "version": "6.15.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.15.0.tgz#3d75b4d949ad81af157570273846fb59aeb0d57c", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.9.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-plugin-transform-runtime@6.15.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-runtime", - "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.15.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-runtime/6.15.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-plugin-transform-strict-mode", - "version": "6.18.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.18.0.tgz#df7cf2991fe046f44163dcd110d5ca43bc652b9d", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-types", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-plugin-transform-strict-mode@6.18.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-strict-mode", - "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.18.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/6.18.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-preset-es2015-node4", - "version": "2.1.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-preset-es2015-node4/-/babel-preset-es2015-node4-2.1.1.tgz#e31f290859b58619c8cfa241d1b0bc900f941cdb", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-plugin-transform-es2015-destructuring", - "requirement": "^6.6.5", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-function-name", - "requirement": "^6.5.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-modules-commonjs", - "requirement": "^6.7.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-parameters", - "requirement": "^6.7.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-shorthand-properties", - "requirement": "^6.5.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-spread", - "requirement": "^6.6.5", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-sticky-regex", - "requirement": "^6.5.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-unicode-regex", - "requirement": "^6.5.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-preset-es2015-node4@2.1.1", - "repository_homepage_url": "https://www.npmjs.com/package/babel-preset-es2015-node4", - "repository_download_url": "https://registry.npmjs.org/babel-preset-es2015-node4/-/babel-preset-es2015-node4-2.1.1.tgz", - "api_data_url": "https://registry.npmjs.org/babel-preset-es2015-node4/2.1.1" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-preset-es2015", - "version": "6.18.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.18.0.tgz#b8c70df84ec948c43dcf2bf770e988eb7da88312", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-plugin-check-es2015-constants", - "requirement": "^6.3.13", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-arrow-functions", - "requirement": "^6.3.13", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-block-scoped-functions", - "requirement": "^6.3.13", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-block-scoping", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-classes", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-computed-properties", - "requirement": "^6.3.13", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-destructuring", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-duplicate-keys", - "requirement": "^6.6.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-for-of", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-function-name", - "requirement": "^6.9.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-literals", - "requirement": "^6.3.13", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-modules-amd", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-modules-commonjs", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-modules-systemjs", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-modules-umd", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-object-super", - "requirement": "^6.3.13", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-parameters", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-shorthand-properties", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-spread", - "requirement": "^6.3.13", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-sticky-regex", - "requirement": "^6.3.13", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-template-literals", - "requirement": "^6.6.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-typeof-symbol", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-es2015-unicode-regex", - "requirement": "^6.3.13", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-regenerator", - "requirement": "^6.16.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-preset-es2015@6.18.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-preset-es2015", - "repository_download_url": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.18.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-preset-es2015/6.18.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-preset-stage-2", - "version": "6.18.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-preset-stage-2/-/babel-preset-stage-2-6.18.0.tgz#9eb7bf9a8e91c68260d5ba7500493caaada4b5b5", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-plugin-syntax-dynamic-import", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-class-properties", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-decorators", - "requirement": "^6.13.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-preset-stage-3", - "requirement": "^6.17.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-preset-stage-2@6.18.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-preset-stage-2", - "repository_download_url": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.18.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-preset-stage-2/6.18.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-preset-stage-3", - "version": "6.17.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-preset-stage-3/-/babel-preset-stage-3-6.17.0.tgz#b6638e46db6e91e3f889013d8ce143917c685e39", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-plugin-syntax-trailing-function-commas", - "requirement": "^6.3.13", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-async-generator-functions", - "requirement": "^6.17.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-async-to-generator", - "requirement": "^6.16.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-exponentiation-operator", - "requirement": "^6.3.13", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-plugin-transform-object-rest-spread", - "requirement": "^6.16.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-preset-stage-3@6.17.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-preset-stage-3", - "repository_download_url": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.17.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-preset-stage-3/6.17.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-register", - "version": "6.18.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-register/-/babel-register-6.18.0.tgz#892e2e03865078dd90ad2c715111ec4449b32a68", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-core", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.11.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/core-js", - "requirement": "^2.4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/home-or-tmp", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/lodash", - "requirement": "^4.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/mkdirp", - "requirement": "^0.5.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/source-map-support", - "requirement": "^0.4.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-register@6.18.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-register", - "repository_download_url": "https://registry.npmjs.org/babel-register/-/babel-register-6.18.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-register/6.18.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-runtime", - "version": "6.20.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.20.0.tgz#87300bdcf4cd770f09bf0048c64204e17806d16f", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/core-js", - "requirement": "^2.4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/regenerator-runtime", - "requirement": "^0.10.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-runtime@6.20.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-runtime", - "repository_download_url": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.20.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-runtime/6.20.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-template", - "version": "6.16.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-template/-/babel-template-6.16.0.tgz#e149dd1a9f03a35f817ddbc4d0481988e7ebc8ca", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.9.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-traverse", - "requirement": "^6.16.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-types", - "requirement": "^6.16.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babylon", - "requirement": "^6.11.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/lodash", - "requirement": "^4.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-template@6.16.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-template", - "repository_download_url": "https://registry.npmjs.org/babel-template/-/babel-template-6.16.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-template/6.16.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-traverse", - "version": "6.21.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.21.0.tgz#69c6365804f1a4f69eb1213f85b00a818b8c21ad", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-code-frame", - "requirement": "^6.20.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-messages", - "requirement": "^6.8.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.20.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-types", - "requirement": "^6.21.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babylon", - "requirement": "^6.11.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/debug", - "requirement": "^2.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/globals", - "requirement": "^9.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/invariant", - "requirement": "^2.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/lodash", - "requirement": "^4.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-traverse@6.21.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-traverse", - "repository_download_url": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.21.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-traverse/6.21.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babel-types", - "version": "6.21.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babel-types/-/babel-types-6.21.0.tgz#314b92168891ef6d3806b7f7a917fdf87c11a4b2", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.20.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/esutils", - "requirement": "^2.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/lodash", - "requirement": "^4.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/to-fast-properties", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babel-types@6.21.0", - "repository_homepage_url": "https://www.npmjs.com/package/babel-types", - "repository_download_url": "https://registry.npmjs.org/babel-types/-/babel-types-6.21.0.tgz", - "api_data_url": "https://registry.npmjs.org/babel-types/6.21.0" - }, - { - "type": "npm", - "namespace": null, - "name": "babylon", - "version": "6.15.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/babylon/-/babylon-6.15.0.tgz#ba65cfa1a80e1759b0e89fb562e27dccae70348e", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/babylon@6.15.0", - "repository_homepage_url": "https://www.npmjs.com/package/babylon", - "repository_download_url": "https://registry.npmjs.org/babylon/-/babylon-6.15.0.tgz", - "api_data_url": "https://registry.npmjs.org/babylon/6.15.0" - }, - { - "type": "npm", - "namespace": null, - "name": "balanced-match", - "version": "0.4.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/balanced-match@0.4.2", - "repository_homepage_url": "https://www.npmjs.com/package/balanced-match", - "repository_download_url": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "api_data_url": "https://registry.npmjs.org/balanced-match/0.4.2" - }, - { - "type": "npm", - "namespace": null, - "name": "bcrypt-pbkdf", - "version": "1.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.0.tgz#3ca76b85241c7170bf7d9703e7b9aa74630040d4", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/tweetnacl", - "requirement": "^0.14.3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/bcrypt-pbkdf@1.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/bcrypt-pbkdf", - "repository_download_url": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/bcrypt-pbkdf/1.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "binary-extensions", - "version": "1.8.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/binary-extensions@1.8.0", - "repository_homepage_url": "https://www.npmjs.com/package/binary-extensions", - "repository_download_url": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.8.0.tgz", - "api_data_url": "https://registry.npmjs.org/binary-extensions/1.8.0" - }, - { - "type": "npm", - "namespace": null, - "name": "block-stream", - "version": "0.0.9", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/inherits", - "requirement": "~2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/block-stream@0.0.9", - "repository_homepage_url": "https://www.npmjs.com/package/block-stream", - "repository_download_url": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "api_data_url": "https://registry.npmjs.org/block-stream/0.0.9" - }, - { - "type": "npm", - "namespace": null, - "name": "bluebird", - "version": "3.4.7", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.7.tgz#f72d760be09b7f76d08ed8fae98b289a8d05fab3", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/bluebird@3.4.7", - "repository_homepage_url": "https://www.npmjs.com/package/bluebird", - "repository_download_url": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", - "api_data_url": "https://registry.npmjs.org/bluebird/3.4.7" - }, - { - "type": "npm", - "namespace": null, - "name": "boom", - "version": "2.10.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/hoek", - "requirement": "2.x.x", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/boom@2.10.1", - "repository_homepage_url": "https://www.npmjs.com/package/boom", - "repository_download_url": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "api_data_url": "https://registry.npmjs.org/boom/2.10.1" - }, - { - "type": "npm", - "namespace": null, - "name": "boxen", - "version": "0.6.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/boxen/-/boxen-0.6.0.tgz#8364d4248ac34ff0ef1b2f2bf49a6c60ce0d81b6", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/ansi-align", - "requirement": "^1.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/camelcase", - "requirement": "^2.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/chalk", - "requirement": "^1.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/cli-boxes", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/filled-array", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/object-assign", - "requirement": "^4.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/repeating", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/string-width", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/widest-line", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/boxen@0.6.0", - "repository_homepage_url": "https://www.npmjs.com/package/boxen", - "repository_download_url": "https://registry.npmjs.org/boxen/-/boxen-0.6.0.tgz", - "api_data_url": "https://registry.npmjs.org/boxen/0.6.0" - }, - { - "type": "npm", - "namespace": null, - "name": "brace-expansion", - "version": "1.1.6", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.6.tgz#7197d7eaa9b87e648390ea61fc66c84427420df9", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/balanced-match", - "requirement": "^0.4.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/concat-map", - "requirement": "0.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/brace-expansion@1.1.6", - "repository_homepage_url": "https://www.npmjs.com/package/brace-expansion", - "repository_download_url": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz", - "api_data_url": "https://registry.npmjs.org/brace-expansion/1.1.6" - }, - { - "type": "npm", - "namespace": null, - "name": "braces", - "version": "1.8.5", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/expand-range", - "requirement": "^1.8.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/preserve", - "requirement": "^0.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/repeat-element", - "requirement": "^1.1.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/braces@1.8.5", - "repository_homepage_url": "https://www.npmjs.com/package/braces", - "repository_download_url": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "api_data_url": "https://registry.npmjs.org/braces/1.8.5" - }, - { - "type": "npm", - "namespace": null, - "name": "browser-stdout", - "version": "1.3.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/browser-stdout@1.3.0", - "repository_homepage_url": "https://www.npmjs.com/package/browser-stdout", - "repository_download_url": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz", - "api_data_url": "https://registry.npmjs.org/browser-stdout/1.3.0" - }, - { - "type": "npm", - "namespace": null, - "name": "buf-compare", - "version": "1.0.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/buf-compare/-/buf-compare-1.0.1.tgz#fef28da8b8113a0a0db4430b0b6467b69730b34a", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/buf-compare@1.0.1", - "repository_homepage_url": "https://www.npmjs.com/package/buf-compare", - "repository_download_url": "https://registry.npmjs.org/buf-compare/-/buf-compare-1.0.1.tgz", - "api_data_url": "https://registry.npmjs.org/buf-compare/1.0.1" - }, - { - "type": "npm", - "namespace": null, - "name": "buffer-shims", - "version": "1.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/buffer-shims@1.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/buffer-shims", - "repository_download_url": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/buffer-shims/1.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "builtin-modules", - "version": "1.1.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/builtin-modules@1.1.1", - "repository_homepage_url": "https://www.npmjs.com/package/builtin-modules", - "repository_download_url": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "api_data_url": "https://registry.npmjs.org/builtin-modules/1.1.1" - }, - { - "type": "npm", - "namespace": null, - "name": "caching-transform", - "version": "1.0.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/caching-transform/-/caching-transform-1.0.1.tgz#6dbdb2f20f8d8fbce79f3e94e9d1742dcdf5c0a1", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/md5-hex", - "requirement": "^1.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/mkdirp", - "requirement": "^0.5.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/write-file-atomic", - "requirement": "^1.1.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/caching-transform@1.0.1", - "repository_homepage_url": "https://www.npmjs.com/package/caching-transform", - "repository_download_url": "https://registry.npmjs.org/caching-transform/-/caching-transform-1.0.1.tgz", - "api_data_url": "https://registry.npmjs.org/caching-transform/1.0.1" - }, - { - "type": "npm", - "namespace": null, - "name": "call-matcher", - "version": "1.0.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/call-matcher/-/call-matcher-1.0.1.tgz#5134d077984f712a54dad3cbf62de28dce416ca8", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/core-js", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/deep-equal", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/espurify", - "requirement": "^1.6.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/estraverse", - "requirement": "^4.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/call-matcher@1.0.1", - "repository_homepage_url": "https://www.npmjs.com/package/call-matcher", - "repository_download_url": "https://registry.npmjs.org/call-matcher/-/call-matcher-1.0.1.tgz", - "api_data_url": "https://registry.npmjs.org/call-matcher/1.0.1" - }, - { - "type": "npm", - "namespace": null, - "name": "call-signature", - "version": "0.0.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/call-signature/-/call-signature-0.0.2.tgz#a84abc825a55ef4cb2b028bd74e205a65b9a4996", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/call-signature@0.0.2", - "repository_homepage_url": "https://www.npmjs.com/package/call-signature", - "repository_download_url": "https://registry.npmjs.org/call-signature/-/call-signature-0.0.2.tgz", - "api_data_url": "https://registry.npmjs.org/call-signature/0.0.2" - }, - { - "type": "npm", - "namespace": null, - "name": "camelcase-keys", - "version": "2.1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/camelcase", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/map-obj", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/camelcase-keys@2.1.0", - "repository_homepage_url": "https://www.npmjs.com/package/camelcase-keys", - "repository_download_url": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "api_data_url": "https://registry.npmjs.org/camelcase-keys/2.1.0" - }, - { - "type": "npm", - "namespace": null, - "name": "camelcase", - "version": "2.1.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/camelcase@2.1.1", - "repository_homepage_url": "https://www.npmjs.com/package/camelcase", - "repository_download_url": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "api_data_url": "https://registry.npmjs.org/camelcase/2.1.1" - }, - { - "type": "npm", - "namespace": null, - "name": "capture-stack-trace", - "version": "1.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/capture-stack-trace@1.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/capture-stack-trace", - "repository_download_url": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/capture-stack-trace/1.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "caseless", - "version": "0.11.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/caseless@0.11.0", - "repository_homepage_url": "https://www.npmjs.com/package/caseless", - "repository_download_url": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", - "api_data_url": "https://registry.npmjs.org/caseless/0.11.0" - }, - { - "type": "npm", - "namespace": null, - "name": "chainsaw", - "version": "0.0.9", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/chainsaw/-/chainsaw-0.0.9.tgz#11a05102d1c4c785b6d0415d336d5a3a1612913e", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/chainsaw@0.0.9", - "repository_homepage_url": "https://www.npmjs.com/package/chainsaw", - "repository_download_url": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.0.9.tgz", - "api_data_url": "https://registry.npmjs.org/chainsaw/0.0.9" - }, - { - "type": "npm", - "namespace": null, - "name": "chalk", - "version": "0.4.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/ansi-styles", - "requirement": "~1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/has-color", - "requirement": "~0.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/strip-ansi", - "requirement": "~0.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/chalk@0.4.0", - "repository_homepage_url": "https://www.npmjs.com/package/chalk", - "repository_download_url": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz", - "api_data_url": "https://registry.npmjs.org/chalk/0.4.0" - }, - { - "type": "npm", - "namespace": null, - "name": "chalk", - "version": "1.1.3", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/ansi-styles", - "requirement": "^2.2.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/escape-string-regexp", - "requirement": "^1.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/has-ansi", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/strip-ansi", - "requirement": "^3.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/supports-color", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/chalk@1.1.3", - "repository_homepage_url": "https://www.npmjs.com/package/chalk", - "repository_download_url": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "api_data_url": "https://registry.npmjs.org/chalk/1.1.3" - }, - { - "type": "npm", - "namespace": null, - "name": "chokidar", - "version": "1.6.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/chokidar/-/chokidar-1.6.1.tgz#2f4447ab5e96e50fb3d789fd90d4c72e0e4c70c2", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/anymatch", - "requirement": "^1.3.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/async-each", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/glob-parent", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/inherits", - "requirement": "^2.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-binary-path", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-glob", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/path-is-absolute", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/readdirp", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/fsevents", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/chokidar@1.6.1", - "repository_homepage_url": "https://www.npmjs.com/package/chokidar", - "repository_download_url": "https://registry.npmjs.org/chokidar/-/chokidar-1.6.1.tgz", - "api_data_url": "https://registry.npmjs.org/chokidar/1.6.1" - }, - { - "type": "npm", - "namespace": null, - "name": "ci-info", - "version": "1.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/ci-info/-/ci-info-1.0.0.tgz#dc5285f2b4e251821683681c381c3388f46ec534", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/ci-info@1.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/ci-info", - "repository_download_url": "https://registry.npmjs.org/ci-info/-/ci-info-1.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/ci-info/1.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "clean-yaml-object", - "version": "0.1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/clean-yaml-object/-/clean-yaml-object-0.1.0.tgz#63fb110dc2ce1a84dc21f6d9334876d010ae8b68", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/clean-yaml-object@0.1.0", - "repository_homepage_url": "https://www.npmjs.com/package/clean-yaml-object", - "repository_download_url": "https://registry.npmjs.org/clean-yaml-object/-/clean-yaml-object-0.1.0.tgz", - "api_data_url": "https://registry.npmjs.org/clean-yaml-object/0.1.0" - }, - { - "type": "npm", - "namespace": null, - "name": "cli-boxes", - "version": "1.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/cli-boxes@1.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/cli-boxes", - "repository_download_url": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/cli-boxes/1.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "cli-cursor", - "version": "1.0.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/restore-cursor", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/cli-cursor@1.0.2", - "repository_homepage_url": "https://www.npmjs.com/package/cli-cursor", - "repository_download_url": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", - "api_data_url": "https://registry.npmjs.org/cli-cursor/1.0.2" - }, - { - "type": "npm", - "namespace": null, - "name": "cli-spinners", - "version": "0.1.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-0.1.2.tgz#bb764d88e185fb9e1e6a2a1f19772318f605e31c", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/cli-spinners@0.1.2", - "repository_homepage_url": "https://www.npmjs.com/package/cli-spinners", - "repository_download_url": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-0.1.2.tgz", - "api_data_url": "https://registry.npmjs.org/cli-spinners/0.1.2" - }, - { - "type": "npm", - "namespace": null, - "name": "cli-truncate", - "version": "0.2.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/slice-ansi", - "requirement": "0.0.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/string-width", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/cli-truncate@0.2.1", - "repository_homepage_url": "https://www.npmjs.com/package/cli-truncate", - "repository_download_url": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", - "api_data_url": "https://registry.npmjs.org/cli-truncate/0.2.1" - }, - { - "type": "npm", - "namespace": null, - "name": "co-with-promise", - "version": "4.6.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/co-with-promise/-/co-with-promise-4.6.0.tgz#413e7db6f5893a60b942cf492c4bec93db415ab7", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/pinkie-promise", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/co-with-promise@4.6.0", - "repository_homepage_url": "https://www.npmjs.com/package/co-with-promise", - "repository_download_url": "https://registry.npmjs.org/co-with-promise/-/co-with-promise-4.6.0.tgz", - "api_data_url": "https://registry.npmjs.org/co-with-promise/4.6.0" - }, - { - "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": "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/code-point-at@1.1.0", - "repository_homepage_url": "https://www.npmjs.com/package/code-point-at", - "repository_download_url": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "api_data_url": "https://registry.npmjs.org/code-point-at/1.1.0" - }, - { - "type": "npm", - "namespace": null, - "name": "combined-stream", - "version": "1.0.5", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/delayed-stream", - "requirement": "~1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/combined-stream@1.0.5", - "repository_homepage_url": "https://www.npmjs.com/package/combined-stream", - "repository_download_url": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "api_data_url": "https://registry.npmjs.org/combined-stream/1.0.5" - }, - { - "type": "npm", - "namespace": null, - "name": "commander", - "version": "2.9.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/commander@2.9.0", - "repository_homepage_url": "https://www.npmjs.com/package/commander", - "repository_download_url": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", - "api_data_url": "https://registry.npmjs.org/commander/2.9.0" - }, - { - "type": "npm", - "namespace": null, - "name": "common-path-prefix", - "version": "1.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-1.0.0.tgz#cd52f6f0712e0baab97d6f9732874f22f47752c0", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/common-path-prefix@1.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/common-path-prefix", - "repository_download_url": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-1.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/common-path-prefix/1.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "commondir", - "version": "1.0.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/commondir@1.0.1", - "repository_homepage_url": "https://www.npmjs.com/package/commondir", - "repository_download_url": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "api_data_url": "https://registry.npmjs.org/commondir/1.0.1" - }, - { - "type": "npm", - "namespace": null, - "name": "concat-map", - "version": "0.0.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/concat-map@0.0.1", - "repository_homepage_url": "https://www.npmjs.com/package/concat-map", - "repository_download_url": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "api_data_url": "https://registry.npmjs.org/concat-map/0.0.1" - }, - { - "type": "npm", - "namespace": null, - "name": "configstore", - "version": "2.1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/configstore/-/configstore-2.1.0.tgz#737a3a7036e9886102aa6099e47bb33ab1aba1a1", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/dot-prop", - "requirement": "^3.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/graceful-fs", - "requirement": "^4.1.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/mkdirp", - "requirement": "^0.5.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/object-assign", - "requirement": "^4.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/os-tmpdir", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/osenv", - "requirement": "^0.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/uuid", - "requirement": "^2.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/write-file-atomic", - "requirement": "^1.1.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/xdg-basedir", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/configstore@2.1.0", - "repository_homepage_url": "https://www.npmjs.com/package/configstore", - "repository_download_url": "https://registry.npmjs.org/configstore/-/configstore-2.1.0.tgz", - "api_data_url": "https://registry.npmjs.org/configstore/2.1.0" - }, - { - "type": "npm", - "namespace": null, - "name": "console-control-strings", - "version": "1.1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/console-control-strings@1.1.0", - "repository_homepage_url": "https://www.npmjs.com/package/console-control-strings", - "repository_download_url": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "api_data_url": "https://registry.npmjs.org/console-control-strings/1.1.0" - }, - { - "type": "npm", - "namespace": null, - "name": "convert-source-map", - "version": "1.3.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.3.0.tgz#e9f3e9c6e2728efc2676696a70eb382f73106a67", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/convert-source-map@1.3.0", - "repository_homepage_url": "https://www.npmjs.com/package/convert-source-map", - "repository_download_url": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.3.0.tgz", - "api_data_url": "https://registry.npmjs.org/convert-source-map/1.3.0" - }, - { - "type": "npm", - "namespace": null, - "name": "core-assert", - "version": "0.2.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/core-assert/-/core-assert-0.2.1.tgz#f85e2cf9bfed28f773cc8b3fa5c5b69bdc02fe3f", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/buf-compare", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-error", - "requirement": "^2.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/core-assert@0.2.1", - "repository_homepage_url": "https://www.npmjs.com/package/core-assert", - "repository_download_url": "https://registry.npmjs.org/core-assert/-/core-assert-0.2.1.tgz", - "api_data_url": "https://registry.npmjs.org/core-assert/0.2.1" - }, - { - "type": "npm", - "namespace": null, - "name": "core-js", - "version": "2.4.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/core-js@2.4.1", - "repository_homepage_url": "https://www.npmjs.com/package/core-js", - "repository_download_url": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "api_data_url": "https://registry.npmjs.org/core-js/2.4.1" - }, - { - "type": "npm", - "namespace": null, - "name": "core-util-is", - "version": "1.0.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/core-util-is@1.0.2", - "repository_homepage_url": "https://www.npmjs.com/package/core-util-is", - "repository_download_url": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "api_data_url": "https://registry.npmjs.org/core-util-is/1.0.2" - }, - { - "type": "npm", - "namespace": null, - "name": "create-error-class", - "version": "3.0.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/capture-stack-trace", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/create-error-class@3.0.2", - "repository_homepage_url": "https://www.npmjs.com/package/create-error-class", - "repository_download_url": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", - "api_data_url": "https://registry.npmjs.org/create-error-class/3.0.2" - }, - { - "type": "npm", - "namespace": null, - "name": "cross-spawn", - "version": "4.0.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/lru-cache", - "requirement": "^4.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/which", - "requirement": "^1.2.9", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/cross-spawn@4.0.2", - "repository_homepage_url": "https://www.npmjs.com/package/cross-spawn", - "repository_download_url": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", - "api_data_url": "https://registry.npmjs.org/cross-spawn/4.0.2" - }, - { - "type": "npm", - "namespace": null, - "name": "cryptiles", - "version": "2.0.5", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/boom", - "requirement": "2.x.x", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/cryptiles@2.0.5", - "repository_homepage_url": "https://www.npmjs.com/package/cryptiles", - "repository_download_url": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "api_data_url": "https://registry.npmjs.org/cryptiles/2.0.5" - }, - { - "type": "npm", - "namespace": null, - "name": "currently-unhandled", - "version": "0.4.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/array-find-index", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/currently-unhandled@0.4.1", - "repository_homepage_url": "https://www.npmjs.com/package/currently-unhandled", - "repository_download_url": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "api_data_url": "https://registry.npmjs.org/currently-unhandled/0.4.1" - }, - { - "type": "npm", - "namespace": null, - "name": "dashdash", - "version": "1.14.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/assert-plus", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/dashdash@1.14.1", - "repository_homepage_url": "https://www.npmjs.com/package/dashdash", - "repository_download_url": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "api_data_url": "https://registry.npmjs.org/dashdash/1.14.1" - }, - { - "type": "npm", - "namespace": null, - "name": "date-time", - "version": "0.1.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/date-time/-/date-time-0.1.1.tgz#ed2f6d93d9790ce2fd66d5b5ff3edd5bbcbf3b07", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/date-time@0.1.1", - "repository_homepage_url": "https://www.npmjs.com/package/date-time", - "repository_download_url": "https://registry.npmjs.org/date-time/-/date-time-0.1.1.tgz", - "api_data_url": "https://registry.npmjs.org/date-time/0.1.1" - }, - { - "type": "npm", - "namespace": null, - "name": "debug", - "version": "2.2.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/ms", - "requirement": "0.7.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/debug@2.2.0", - "repository_homepage_url": "https://www.npmjs.com/package/debug", - "repository_download_url": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "api_data_url": "https://registry.npmjs.org/debug/2.2.0" - }, - { - "type": "npm", - "namespace": null, - "name": "decamelize", - "version": "1.2.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/decamelize@1.2.0", - "repository_homepage_url": "https://www.npmjs.com/package/decamelize", - "repository_download_url": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "api_data_url": "https://registry.npmjs.org/decamelize/1.2.0" - }, - { - "type": "npm", - "namespace": null, - "name": "deep-equal", - "version": "1.0.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/deep-equal@1.0.1", - "repository_homepage_url": "https://www.npmjs.com/package/deep-equal", - "repository_download_url": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "api_data_url": "https://registry.npmjs.org/deep-equal/1.0.1" - }, - { - "type": "npm", - "namespace": null, - "name": "deep-extend", - "version": "0.4.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.1.tgz#efe4113d08085f4e6f9687759810f807469e2253", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/deep-extend@0.4.1", - "repository_homepage_url": "https://www.npmjs.com/package/deep-extend", - "repository_download_url": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.1.tgz", - "api_data_url": "https://registry.npmjs.org/deep-extend/0.4.1" - }, - { - "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": "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/delayed-stream@1.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/delayed-stream", - "repository_download_url": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/delayed-stream/1.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "delegates", - "version": "1.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/delegates@1.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/delegates", - "repository_download_url": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/delegates/1.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "detect-indent", - "version": "4.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/repeating", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/detect-indent@4.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/detect-indent", - "repository_download_url": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/detect-indent/4.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "diff", - "version": "1.4.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/diff/-/diff-1.4.0.tgz#7f28d2eb9ee7b15a97efd89ce63dcfdaa3ccbabf", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/diff@1.4.0", - "repository_homepage_url": "https://www.npmjs.com/package/diff", - "repository_download_url": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz", - "api_data_url": "https://registry.npmjs.org/diff/1.4.0" - }, - { - "type": "npm", - "namespace": null, - "name": "dot-prop", - "version": "3.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/dot-prop/-/dot-prop-3.0.0.tgz#1b708af094a49c9a0e7dbcad790aba539dac1177", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/is-obj", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/dot-prop@3.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/dot-prop", - "repository_download_url": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/dot-prop/3.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "duplexer2", - "version": "0.1.4", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/readable-stream", - "requirement": "^2.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/duplexer2@0.1.4", - "repository_homepage_url": "https://www.npmjs.com/package/duplexer2", - "repository_download_url": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "api_data_url": "https://registry.npmjs.org/duplexer2/0.1.4" - }, - { - "type": "npm", - "namespace": null, - "name": "eastasianwidth", - "version": "0.1.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.1.1.tgz#44d656de9da415694467335365fb3147b8572b7c", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/eastasianwidth@0.1.1", - "repository_homepage_url": "https://www.npmjs.com/package/eastasianwidth", - "repository_download_url": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.1.1.tgz", - "api_data_url": "https://registry.npmjs.org/eastasianwidth/0.1.1" - }, - { - "type": "npm", - "namespace": null, - "name": "ecc-jsbn", - "version": "0.1.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/jsbn", - "requirement": "~0.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/ecc-jsbn@0.1.1", - "repository_homepage_url": "https://www.npmjs.com/package/ecc-jsbn", - "repository_download_url": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "api_data_url": "https://registry.npmjs.org/ecc-jsbn/0.1.1" - }, - { - "type": "npm", - "namespace": null, - "name": "empower-core", - "version": "0.6.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/empower-core/-/empower-core-0.6.1.tgz#6c187f502fcef7554d57933396aac655483772b1", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/call-signature", - "requirement": "0.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/core-js", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/empower-core@0.6.1", - "repository_homepage_url": "https://www.npmjs.com/package/empower-core", - "repository_download_url": "https://registry.npmjs.org/empower-core/-/empower-core-0.6.1.tgz", - "api_data_url": "https://registry.npmjs.org/empower-core/0.6.1" - }, - { - "type": "npm", - "namespace": null, - "name": "error-ex", - "version": "1.3.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.0.tgz#e67b43f3e82c96ea3a584ffee0b9fc3325d802d9", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/is-arrayish", - "requirement": "^0.2.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/error-ex@1.3.0", - "repository_homepage_url": "https://www.npmjs.com/package/error-ex", - "repository_download_url": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.0.tgz", - "api_data_url": "https://registry.npmjs.org/error-ex/1.3.0" - }, - { - "type": "npm", - "namespace": null, - "name": "escape-string-regexp", - "version": "1.0.5", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/escape-string-regexp@1.0.5", - "repository_homepage_url": "https://www.npmjs.com/package/escape-string-regexp", - "repository_download_url": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "api_data_url": "https://registry.npmjs.org/escape-string-regexp/1.0.5" - }, - { - "type": "npm", - "namespace": null, - "name": "espower-location-detector", - "version": "1.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/espower-location-detector/-/espower-location-detector-1.0.0.tgz#a17b7ecc59d30e179e2bef73fb4137704cb331b5", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/is-url", - "requirement": "^1.2.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/path-is-absolute", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/source-map", - "requirement": "^0.5.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/xtend", - "requirement": "^4.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/espower-location-detector@1.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/espower-location-detector", - "repository_download_url": "https://registry.npmjs.org/espower-location-detector/-/espower-location-detector-1.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/espower-location-detector/1.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "espurify", - "version": "1.6.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/espurify/-/espurify-1.6.0.tgz#6cb993582d9422bd6f2d4b258aadb14833f394f0", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/core-js", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/espurify@1.6.0", - "repository_homepage_url": "https://www.npmjs.com/package/espurify", - "repository_download_url": "https://registry.npmjs.org/espurify/-/espurify-1.6.0.tgz", - "api_data_url": "https://registry.npmjs.org/espurify/1.6.0" - }, - { - "type": "npm", - "namespace": null, - "name": "estraverse", - "version": "4.2.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/estraverse@4.2.0", - "repository_homepage_url": "https://www.npmjs.com/package/estraverse", - "repository_download_url": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "api_data_url": "https://registry.npmjs.org/estraverse/4.2.0" - }, - { - "type": "npm", - "namespace": null, - "name": "esutils", - "version": "2.0.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/esutils@2.0.2", - "repository_homepage_url": "https://www.npmjs.com/package/esutils", - "repository_download_url": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "api_data_url": "https://registry.npmjs.org/esutils/2.0.2" - }, - { - "type": "npm", - "namespace": null, - "name": "exit-hook", - "version": "1.1.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/exit-hook@1.1.1", - "repository_homepage_url": "https://www.npmjs.com/package/exit-hook", - "repository_download_url": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", - "api_data_url": "https://registry.npmjs.org/exit-hook/1.1.1" - }, - { - "type": "npm", - "namespace": null, - "name": "expand-brackets", - "version": "0.1.5", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/is-posix-bracket", - "requirement": "^0.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/expand-brackets@0.1.5", - "repository_homepage_url": "https://www.npmjs.com/package/expand-brackets", - "repository_download_url": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "api_data_url": "https://registry.npmjs.org/expand-brackets/0.1.5" - }, - { - "type": "npm", - "namespace": null, - "name": "expand-range", - "version": "1.8.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/fill-range", - "requirement": "^2.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/expand-range@1.8.2", - "repository_homepage_url": "https://www.npmjs.com/package/expand-range", - "repository_download_url": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "api_data_url": "https://registry.npmjs.org/expand-range/1.8.2" - }, - { - "type": "npm", - "namespace": null, - "name": "extend", - "version": "3.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/extend@3.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/extend", - "repository_download_url": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/extend/3.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "extglob", - "version": "0.3.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/is-extglob", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/extglob@0.3.2", - "repository_homepage_url": "https://www.npmjs.com/package/extglob", - "repository_download_url": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "api_data_url": "https://registry.npmjs.org/extglob/0.3.2" - }, - { - "type": "npm", - "namespace": null, - "name": "extsprintf", - "version": "1.0.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/extsprintf@1.0.2", - "repository_homepage_url": "https://www.npmjs.com/package/extsprintf", - "repository_download_url": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", - "api_data_url": "https://registry.npmjs.org/extsprintf/1.0.2" - }, - { - "type": "npm", - "namespace": null, - "name": "figures", - "version": "1.7.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/escape-string-regexp", - "requirement": "^1.0.5", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/object-assign", - "requirement": "^4.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/figures@1.7.0", - "repository_homepage_url": "https://www.npmjs.com/package/figures", - "repository_download_url": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "api_data_url": "https://registry.npmjs.org/figures/1.7.0" - }, - { - "type": "npm", - "namespace": null, - "name": "filename-regex", - "version": "2.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.0.tgz#996e3e80479b98b9897f15a8a58b3d084e926775", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/filename-regex@2.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/filename-regex", - "repository_download_url": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/filename-regex/2.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "fill-range", - "version": "2.2.3", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/is-number", - "requirement": "^2.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/isobject", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/randomatic", - "requirement": "^1.1.3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/repeat-element", - "requirement": "^1.1.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/repeat-string", - "requirement": "^1.5.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/fill-range@2.2.3", - "repository_homepage_url": "https://www.npmjs.com/package/fill-range", - "repository_download_url": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", - "api_data_url": "https://registry.npmjs.org/fill-range/2.2.3" - }, - { - "type": "npm", - "namespace": null, - "name": "filled-array", - "version": "1.1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/filled-array/-/filled-array-1.1.0.tgz#c3c4f6c663b923459a9aa29912d2d031f1507f84", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/filled-array@1.1.0", - "repository_homepage_url": "https://www.npmjs.com/package/filled-array", - "repository_download_url": "https://registry.npmjs.org/filled-array/-/filled-array-1.1.0.tgz", - "api_data_url": "https://registry.npmjs.org/filled-array/1.1.0" - }, - { - "type": "npm", - "namespace": null, - "name": "find-cache-dir", - "version": "0.1.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/commondir", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/mkdirp", - "requirement": "^0.5.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/pkg-dir", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/find-cache-dir@0.1.1", - "repository_homepage_url": "https://www.npmjs.com/package/find-cache-dir", - "repository_download_url": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", - "api_data_url": "https://registry.npmjs.org/find-cache-dir/0.1.1" - }, - { - "type": "npm", - "namespace": null, - "name": "find-up", - "version": "1.1.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/path-exists", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/pinkie-promise", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/find-up@1.1.2", - "repository_homepage_url": "https://www.npmjs.com/package/find-up", - "repository_download_url": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "api_data_url": "https://registry.npmjs.org/find-up/1.1.2" - }, - { - "type": "npm", - "namespace": null, - "name": "findit", - "version": "0.1.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/findit/-/findit-0.1.2.tgz#ac7fe600cd6a32a35672836b74cf6f1dde2e11f8", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/seq", - "requirement": ">=0.1.7", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/findit@0.1.2", - "repository_homepage_url": "https://www.npmjs.com/package/findit", - "repository_download_url": "https://registry.npmjs.org/findit/-/findit-0.1.2.tgz", - "api_data_url": "https://registry.npmjs.org/findit/0.1.2" - }, - { - "type": "npm", - "namespace": null, - "name": "fn-name", - "version": "2.0.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/fn-name/-/fn-name-2.0.1.tgz#5214d7537a4d06a4a301c0cc262feb84188002e7", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/fn-name@2.0.1", - "repository_homepage_url": "https://www.npmjs.com/package/fn-name", - "repository_download_url": "https://registry.npmjs.org/fn-name/-/fn-name-2.0.1.tgz", - "api_data_url": "https://registry.npmjs.org/fn-name/2.0.1" - }, - { - "type": "npm", - "namespace": null, - "name": "for-in", - "version": "0.1.6", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/for-in/-/for-in-0.1.6.tgz#c9f96e89bfad18a545af5ec3ed352a1d9e5b4dc8", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/for-in@0.1.6", - "repository_homepage_url": "https://www.npmjs.com/package/for-in", - "repository_download_url": "https://registry.npmjs.org/for-in/-/for-in-0.1.6.tgz", - "api_data_url": "https://registry.npmjs.org/for-in/0.1.6" - }, - { - "type": "npm", - "namespace": null, - "name": "for-own", - "version": "0.1.4", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/for-own/-/for-own-0.1.4.tgz#0149b41a39088c7515f51ebe1c1386d45f935072", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/for-in", - "requirement": "^0.1.5", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/for-own@0.1.4", - "repository_homepage_url": "https://www.npmjs.com/package/for-own", - "repository_download_url": "https://registry.npmjs.org/for-own/-/for-own-0.1.4.tgz", - "api_data_url": "https://registry.npmjs.org/for-own/0.1.4" - }, - { - "type": "npm", - "namespace": null, - "name": "forever-agent", - "version": "0.6.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/forever-agent@0.6.1", - "repository_homepage_url": "https://www.npmjs.com/package/forever-agent", - "repository_download_url": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "api_data_url": "https://registry.npmjs.org/forever-agent/0.6.1" - }, - { - "type": "npm", - "namespace": null, - "name": "form-data", - "version": "2.1.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/form-data/-/form-data-2.1.2.tgz#89c3534008b97eada4cbb157d58f6f5df025eae4", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/asynckit", - "requirement": "^0.4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/combined-stream", - "requirement": "^1.0.5", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/mime-types", - "requirement": "^2.1.12", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/form-data@2.1.2", - "repository_homepage_url": "https://www.npmjs.com/package/form-data", - "repository_download_url": "https://registry.npmjs.org/form-data/-/form-data-2.1.2.tgz", - "api_data_url": "https://registry.npmjs.org/form-data/2.1.2" - }, - { - "type": "npm", - "namespace": null, - "name": "fs.realpath", - "version": "1.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/fs.realpath@1.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/fs.realpath", - "repository_download_url": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/fs.realpath/1.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "fsevents", - "version": "1.0.17", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/fsevents/-/fsevents-1.0.17.tgz#8537f3f12272678765b4fd6528c0f1f66f8f4558", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/nan", - "requirement": "^2.3.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/node-pre-gyp", - "requirement": "^0.6.29", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/fsevents@1.0.17", - "repository_homepage_url": "https://www.npmjs.com/package/fsevents", - "repository_download_url": "https://registry.npmjs.org/fsevents/-/fsevents-1.0.17.tgz", - "api_data_url": "https://registry.npmjs.org/fsevents/1.0.17" - }, - { - "type": "npm", - "namespace": null, - "name": "fstream-ignore", - "version": "1.0.5", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/fstream", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/inherits", - "requirement": "2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/minimatch", - "requirement": "^3.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/fstream-ignore@1.0.5", - "repository_homepage_url": "https://www.npmjs.com/package/fstream-ignore", - "repository_download_url": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", - "api_data_url": "https://registry.npmjs.org/fstream-ignore/1.0.5" - }, - { - "type": "npm", - "namespace": null, - "name": "fstream", - "version": "1.0.10", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/fstream/-/fstream-1.0.10.tgz#604e8a92fe26ffd9f6fae30399d4984e1ab22822", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/graceful-fs", - "requirement": "^4.1.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/inherits", - "requirement": "~2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/rimraf", - "requirement": "2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/fstream@1.0.10", - "repository_homepage_url": "https://www.npmjs.com/package/fstream", - "repository_download_url": "https://registry.npmjs.org/fstream/-/fstream-1.0.10.tgz", - "api_data_url": "https://registry.npmjs.org/fstream/1.0.10" - }, - { - "type": "npm", - "namespace": null, - "name": "gauge", - "version": "2.7.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/gauge/-/gauge-2.7.2.tgz#15cecc31b02d05345a5d6b0e171cdb3ad2307774", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/aproba", - "requirement": "^1.0.3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/console-control-strings", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/has-unicode", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/object-assign", - "requirement": "^4.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/signal-exit", - "requirement": "^3.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/string-width", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/strip-ansi", - "requirement": "^3.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/supports-color", - "requirement": "^0.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/wide-align", - "requirement": "^1.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/gauge@2.7.2", - "repository_homepage_url": "https://www.npmjs.com/package/gauge", - "repository_download_url": "https://registry.npmjs.org/gauge/-/gauge-2.7.2.tgz", - "api_data_url": "https://registry.npmjs.org/gauge/2.7.2" - }, - { - "type": "npm", - "namespace": null, - "name": "generate-function", - "version": "2.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/generate-function@2.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/generate-function", - "repository_download_url": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/generate-function/2.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "generate-object-property", - "version": "1.2.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/is-property", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/generate-object-property@1.2.0", - "repository_homepage_url": "https://www.npmjs.com/package/generate-object-property", - "repository_download_url": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", - "api_data_url": "https://registry.npmjs.org/generate-object-property/1.2.0" - }, - { - "type": "npm", - "namespace": null, - "name": "gently", - "version": "0.8.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/gently/-/gently-0.8.0.tgz#bc385db99ec1994dd6a44368e0abeb482b192b2c", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/gently@0.8.0", - "repository_homepage_url": "https://www.npmjs.com/package/gently", - "repository_download_url": "https://registry.npmjs.org/gently/-/gently-0.8.0.tgz", - "api_data_url": "https://registry.npmjs.org/gently/0.8.0" - }, - { - "type": "npm", - "namespace": null, - "name": "get-port", - "version": "2.1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/get-port/-/get-port-2.1.0.tgz#8783f9dcebd1eea495a334e1a6a251e78887ab1a", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/pinkie-promise", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/get-port@2.1.0", - "repository_homepage_url": "https://www.npmjs.com/package/get-port", - "repository_download_url": "https://registry.npmjs.org/get-port/-/get-port-2.1.0.tgz", - "api_data_url": "https://registry.npmjs.org/get-port/2.1.0" - }, - { - "type": "npm", - "namespace": null, - "name": "get-stdin", - "version": "4.0.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/get-stdin@4.0.1", - "repository_homepage_url": "https://www.npmjs.com/package/get-stdin", - "repository_download_url": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "api_data_url": "https://registry.npmjs.org/get-stdin/4.0.1" - }, - { - "type": "npm", - "namespace": null, - "name": "getpass", - "version": "0.1.6", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/getpass/-/getpass-0.1.6.tgz#283ffd9fc1256840875311c1b60e8c40187110e6", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/assert-plus", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/getpass@0.1.6", - "repository_homepage_url": "https://www.npmjs.com/package/getpass", - "repository_download_url": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz", - "api_data_url": "https://registry.npmjs.org/getpass/0.1.6" - }, - { - "type": "npm", - "namespace": null, - "name": "glob-base", - "version": "0.3.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/glob-parent", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-glob", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/glob-base@0.3.0", - "repository_homepage_url": "https://www.npmjs.com/package/glob-base", - "repository_download_url": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "api_data_url": "https://registry.npmjs.org/glob-base/0.3.0" - }, - { - "type": "npm", - "namespace": null, - "name": "glob-parent", - "version": "2.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/is-glob", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/glob-parent@2.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/glob-parent", - "repository_download_url": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/glob-parent/2.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "glob", - "version": "7.0.5", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/glob/-/glob-7.0.5.tgz#b4202a69099bbb4d292a7c1b95b6682b67ebdc95", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/fs.realpath", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/inflight", - "requirement": "^1.0.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/inherits", - "requirement": "2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/minimatch", - "requirement": "^3.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/once", - "requirement": "^1.3.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/path-is-absolute", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/glob@7.0.5", - "repository_homepage_url": "https://www.npmjs.com/package/glob", - "repository_download_url": "https://registry.npmjs.org/glob/-/glob-7.0.5.tgz", - "api_data_url": "https://registry.npmjs.org/glob/7.0.5" - }, - { - "type": "npm", - "namespace": null, - "name": "globals", - "version": "9.14.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/globals/-/globals-9.14.0.tgz#8859936af0038741263053b39d0e76ca241e4034", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/globals@9.14.0", - "repository_homepage_url": "https://www.npmjs.com/package/globals", - "repository_download_url": "https://registry.npmjs.org/globals/-/globals-9.14.0.tgz", - "api_data_url": "https://registry.npmjs.org/globals/9.14.0" - }, - { - "type": "npm", - "namespace": null, - "name": "globby", - "version": "6.1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/array-union", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/glob", - "requirement": "^7.0.3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/object-assign", - "requirement": "^4.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/pify", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/pinkie-promise", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/globby@6.1.0", - "repository_homepage_url": "https://www.npmjs.com/package/globby", - "repository_download_url": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "api_data_url": "https://registry.npmjs.org/globby/6.1.0" - }, - { - "type": "npm", - "namespace": null, - "name": "got", - "version": "5.7.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/got/-/got-5.7.1.tgz#5f81635a61e4a6589f180569ea4e381680a51f35", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/create-error-class", - "requirement": "^3.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/duplexer2", - "requirement": "^0.1.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-redirect", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-retry-allowed", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-stream", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/lowercase-keys", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/node-status-codes", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/object-assign", - "requirement": "^4.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/parse-json", - "requirement": "^2.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/pinkie-promise", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/read-all-stream", - "requirement": "^3.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/readable-stream", - "requirement": "^2.0.5", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/timed-out", - "requirement": "^3.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/unzip-response", - "requirement": "^1.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/url-parse-lax", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/got@5.7.1", - "repository_homepage_url": "https://www.npmjs.com/package/got", - "repository_download_url": "https://registry.npmjs.org/got/-/got-5.7.1.tgz", - "api_data_url": "https://registry.npmjs.org/got/5.7.1" - }, - { - "type": "npm", - "namespace": null, - "name": "graceful-fs", - "version": "4.1.11", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/graceful-fs@4.1.11", - "repository_homepage_url": "https://www.npmjs.com/package/graceful-fs", - "repository_download_url": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "api_data_url": "https://registry.npmjs.org/graceful-fs/4.1.11" - }, - { - "type": "npm", - "namespace": null, - "name": "graceful-readlink", - "version": "1.0.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/graceful-readlink@1.0.1", - "repository_homepage_url": "https://www.npmjs.com/package/graceful-readlink", - "repository_download_url": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", - "api_data_url": "https://registry.npmjs.org/graceful-readlink/1.0.1" - }, - { - "type": "npm", - "namespace": null, - "name": "growl", - "version": "1.9.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/growl@1.9.2", - "repository_homepage_url": "https://www.npmjs.com/package/growl", - "repository_download_url": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz", - "api_data_url": "https://registry.npmjs.org/growl/1.9.2" - }, - { - "type": "npm", - "namespace": null, - "name": "har-validator", - "version": "2.0.6", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/chalk", - "requirement": "^1.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/commander", - "requirement": "^2.9.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-my-json-valid", - "requirement": "^2.12.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/pinkie-promise", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/har-validator@2.0.6", - "repository_homepage_url": "https://www.npmjs.com/package/har-validator", - "repository_download_url": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", - "api_data_url": "https://registry.npmjs.org/har-validator/2.0.6" - }, - { - "type": "npm", - "namespace": null, - "name": "has-ansi", - "version": "2.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/ansi-regex", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/has-ansi@2.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/has-ansi", - "repository_download_url": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/has-ansi/2.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "has-color", - "version": "0.1.7", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/has-color@0.1.7", - "repository_homepage_url": "https://www.npmjs.com/package/has-color", - "repository_download_url": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz", - "api_data_url": "https://registry.npmjs.org/has-color/0.1.7" - }, - { - "type": "npm", - "namespace": null, - "name": "has-flag", - "version": "1.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/has-flag@1.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/has-flag", - "repository_download_url": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/has-flag/1.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "has-flag", - "version": "2.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/has-flag@2.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/has-flag", - "repository_download_url": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/has-flag/2.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "has-unicode", - "version": "2.0.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/has-unicode@2.0.1", - "repository_homepage_url": "https://www.npmjs.com/package/has-unicode", - "repository_download_url": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "api_data_url": "https://registry.npmjs.org/has-unicode/2.0.1" - }, - { - "type": "npm", - "namespace": null, - "name": "hashish", - "version": "0.0.4", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/hashish/-/hashish-0.0.4.tgz#6d60bc6ffaf711b6afd60e426d077988014e6554", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/traverse", - "requirement": ">=0.2.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/hashish@0.0.4", - "repository_homepage_url": "https://www.npmjs.com/package/hashish", - "repository_download_url": "https://registry.npmjs.org/hashish/-/hashish-0.0.4.tgz", - "api_data_url": "https://registry.npmjs.org/hashish/0.0.4" - }, - { - "type": "npm", - "namespace": null, - "name": "hawk", - "version": "3.1.3", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/boom", - "requirement": "2.x.x", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/cryptiles", - "requirement": "2.x.x", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/hoek", - "requirement": "2.x.x", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/sntp", - "requirement": "1.x.x", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/hawk@3.1.3", - "repository_homepage_url": "https://www.npmjs.com/package/hawk", - "repository_download_url": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "api_data_url": "https://registry.npmjs.org/hawk/3.1.3" - }, - { - "type": "npm", - "namespace": null, - "name": "hoek", - "version": "2.16.3", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/hoek@2.16.3", - "repository_homepage_url": "https://www.npmjs.com/package/hoek", - "repository_download_url": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "api_data_url": "https://registry.npmjs.org/hoek/2.16.3" - }, - { - "type": "npm", - "namespace": null, - "name": "home-or-tmp", - "version": "2.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/os-homedir", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/os-tmpdir", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/home-or-tmp@2.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/home-or-tmp", - "repository_download_url": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/home-or-tmp/2.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "hosted-git-info", - "version": "2.1.5", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.1.5.tgz#0ba81d90da2e25ab34a332e6ec77936e1598118b", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/hosted-git-info@2.1.5", - "repository_homepage_url": "https://www.npmjs.com/package/hosted-git-info", - "repository_download_url": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.1.5.tgz", - "api_data_url": "https://registry.npmjs.org/hosted-git-info/2.1.5" - }, - { - "type": "npm", - "namespace": null, - "name": "http-signature", - "version": "1.1.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/assert-plus", - "requirement": "^0.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/jsprim", - "requirement": "^1.2.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/sshpk", - "requirement": "^1.7.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/http-signature@1.1.1", - "repository_homepage_url": "https://www.npmjs.com/package/http-signature", - "repository_download_url": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "api_data_url": "https://registry.npmjs.org/http-signature/1.1.1" - }, - { - "type": "npm", - "namespace": null, - "name": "ignore-by-default", - "version": "1.0.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/ignore-by-default@1.0.1", - "repository_homepage_url": "https://www.npmjs.com/package/ignore-by-default", - "repository_download_url": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "api_data_url": "https://registry.npmjs.org/ignore-by-default/1.0.1" - }, - { - "type": "npm", - "namespace": null, - "name": "imurmurhash", - "version": "0.1.4", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/imurmurhash@0.1.4", - "repository_homepage_url": "https://www.npmjs.com/package/imurmurhash", - "repository_download_url": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "api_data_url": "https://registry.npmjs.org/imurmurhash/0.1.4" - }, - { - "type": "npm", - "namespace": null, - "name": "indent-string", - "version": "2.1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/repeating", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/indent-string@2.1.0", - "repository_homepage_url": "https://www.npmjs.com/package/indent-string", - "repository_download_url": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "api_data_url": "https://registry.npmjs.org/indent-string/2.1.0" - }, - { - "type": "npm", - "namespace": null, - "name": "inflight", - "version": "1.0.6", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/once", - "requirement": "^1.3.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/wrappy", - "requirement": "1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/inflight@1.0.6", - "repository_homepage_url": "https://www.npmjs.com/package/inflight", - "repository_download_url": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "api_data_url": "https://registry.npmjs.org/inflight/1.0.6" - }, - { - "type": "npm", - "namespace": null, - "name": "inherits", - "version": "2.0.3", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/inherits@2.0.3", - "repository_homepage_url": "https://www.npmjs.com/package/inherits", - "repository_download_url": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "api_data_url": "https://registry.npmjs.org/inherits/2.0.3" - }, - { - "type": "npm", - "namespace": null, - "name": "ini", - "version": "1.3.4", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/ini@1.3.4", - "repository_homepage_url": "https://www.npmjs.com/package/ini", - "repository_download_url": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", - "api_data_url": "https://registry.npmjs.org/ini/1.3.4" - }, - { - "type": "npm", - "namespace": null, - "name": "invariant", - "version": "2.2.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/loose-envify", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/invariant@2.2.2", - "repository_homepage_url": "https://www.npmjs.com/package/invariant", - "repository_download_url": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", - "api_data_url": "https://registry.npmjs.org/invariant/2.2.2" - }, - { - "type": "npm", - "namespace": null, - "name": "irregular-plurals", - "version": "1.2.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/irregular-plurals/-/irregular-plurals-1.2.0.tgz#38f299834ba8c00c30be9c554e137269752ff3ac", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/irregular-plurals@1.2.0", - "repository_homepage_url": "https://www.npmjs.com/package/irregular-plurals", - "repository_download_url": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-1.2.0.tgz", - "api_data_url": "https://registry.npmjs.org/irregular-plurals/1.2.0" - }, - { - "type": "npm", - "namespace": null, - "name": "is-arrayish", - "version": "0.2.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/is-arrayish@0.2.1", - "repository_homepage_url": "https://www.npmjs.com/package/is-arrayish", - "repository_download_url": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "api_data_url": "https://registry.npmjs.org/is-arrayish/0.2.1" - }, - { - "type": "npm", - "namespace": null, - "name": "is-binary-path", - "version": "1.0.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/binary-extensions", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/is-binary-path@1.0.1", - "repository_homepage_url": "https://www.npmjs.com/package/is-binary-path", - "repository_download_url": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "api_data_url": "https://registry.npmjs.org/is-binary-path/1.0.1" - }, - { - "type": "npm", - "namespace": null, - "name": "is-buffer", - "version": "1.1.4", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.4.tgz#cfc86ccd5dc5a52fa80489111c6920c457e2d98b", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/is-buffer@1.1.4", - "repository_homepage_url": "https://www.npmjs.com/package/is-buffer", - "repository_download_url": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.4.tgz", - "api_data_url": "https://registry.npmjs.org/is-buffer/1.1.4" - }, - { - "type": "npm", - "namespace": null, - "name": "is-builtin-module", - "version": "1.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/builtin-modules", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/is-builtin-module@1.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/is-builtin-module", - "repository_download_url": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/is-builtin-module/1.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "is-ci", - "version": "1.0.10", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/is-ci/-/is-ci-1.0.10.tgz#f739336b2632365061a9d48270cd56ae3369318e", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/ci-info", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/is-ci@1.0.10", - "repository_homepage_url": "https://www.npmjs.com/package/is-ci", - "repository_download_url": "https://registry.npmjs.org/is-ci/-/is-ci-1.0.10.tgz", - "api_data_url": "https://registry.npmjs.org/is-ci/1.0.10" - }, - { - "type": "npm", - "namespace": null, - "name": "is-dotfile", - "version": "1.0.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/is-dotfile@1.0.2", - "repository_homepage_url": "https://www.npmjs.com/package/is-dotfile", - "repository_download_url": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.2.tgz", - "api_data_url": "https://registry.npmjs.org/is-dotfile/1.0.2" - }, - { - "type": "npm", - "namespace": null, - "name": "is-equal-shallow", - "version": "0.1.3", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/is-primitive", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/is-equal-shallow@0.1.3", - "repository_homepage_url": "https://www.npmjs.com/package/is-equal-shallow", - "repository_download_url": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "api_data_url": "https://registry.npmjs.org/is-equal-shallow/0.1.3" - }, - { - "type": "npm", - "namespace": null, - "name": "is-error", - "version": "2.2.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/is-error/-/is-error-2.2.1.tgz#684a96d84076577c98f4cdb40c6d26a5123bf19c", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/is-error@2.2.1", - "repository_homepage_url": "https://www.npmjs.com/package/is-error", - "repository_download_url": "https://registry.npmjs.org/is-error/-/is-error-2.2.1.tgz", - "api_data_url": "https://registry.npmjs.org/is-error/2.2.1" - }, - { - "type": "npm", - "namespace": null, - "name": "is-extendable", - "version": "0.1.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/is-extendable@0.1.1", - "repository_homepage_url": "https://www.npmjs.com/package/is-extendable", - "repository_download_url": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "api_data_url": "https://registry.npmjs.org/is-extendable/0.1.1" - }, - { - "type": "npm", - "namespace": null, - "name": "is-extglob", - "version": "1.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/is-extglob@1.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/is-extglob", - "repository_download_url": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/is-extglob/1.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "is-finite", - "version": "1.0.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/number-is-nan", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/is-finite@1.0.2", - "repository_homepage_url": "https://www.npmjs.com/package/is-finite", - "repository_download_url": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "api_data_url": "https://registry.npmjs.org/is-finite/1.0.2" - }, - { - "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": "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/number-is-nan", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/is-fullwidth-code-point@1.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/is-fullwidth-code-point", - "repository_download_url": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/is-fullwidth-code-point/1.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "is-generator-fn", - "version": "1.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-1.0.0.tgz#969d49e1bb3329f6bb7f09089be26578b2ddd46a", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/is-generator-fn@1.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/is-generator-fn", - "repository_download_url": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-1.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/is-generator-fn/1.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "is-glob", - "version": "2.0.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/is-extglob", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/is-glob@2.0.1", - "repository_homepage_url": "https://www.npmjs.com/package/is-glob", - "repository_download_url": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "api_data_url": "https://registry.npmjs.org/is-glob/2.0.1" - }, - { - "type": "npm", - "namespace": null, - "name": "is-my-json-valid", - "version": "2.15.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz#936edda3ca3c211fd98f3b2d3e08da43f7b2915b", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/generate-function", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/generate-object-property", - "requirement": "^1.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/jsonpointer", - "requirement": "^4.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/xtend", - "requirement": "^4.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/is-my-json-valid@2.15.0", - "repository_homepage_url": "https://www.npmjs.com/package/is-my-json-valid", - "repository_download_url": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz", - "api_data_url": "https://registry.npmjs.org/is-my-json-valid/2.15.0" - }, - { - "type": "npm", - "namespace": null, - "name": "is-npm", - "version": "1.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/is-npm@1.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/is-npm", - "repository_download_url": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/is-npm/1.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "is-number", - "version": "2.1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/kind-of", - "requirement": "^3.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/is-number@2.1.0", - "repository_homepage_url": "https://www.npmjs.com/package/is-number", - "repository_download_url": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "api_data_url": "https://registry.npmjs.org/is-number/2.1.0" - }, - { - "type": "npm", - "namespace": null, - "name": "is-obj", - "version": "1.0.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/is-obj@1.0.1", - "repository_homepage_url": "https://www.npmjs.com/package/is-obj", - "repository_download_url": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "api_data_url": "https://registry.npmjs.org/is-obj/1.0.1" - }, - { - "type": "npm", - "namespace": null, - "name": "is-observable", - "version": "0.2.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/is-observable/-/is-observable-0.2.0.tgz#b361311d83c6e5d726cabf5e250b0237106f5ae2", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/symbol-observable", - "requirement": "^0.2.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/is-observable@0.2.0", - "repository_homepage_url": "https://www.npmjs.com/package/is-observable", - "repository_download_url": "https://registry.npmjs.org/is-observable/-/is-observable-0.2.0.tgz", - "api_data_url": "https://registry.npmjs.org/is-observable/0.2.0" - }, - { - "type": "npm", - "namespace": null, - "name": "is-plain-obj", - "version": "1.1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/is-plain-obj@1.1.0", - "repository_homepage_url": "https://www.npmjs.com/package/is-plain-obj", - "repository_download_url": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "api_data_url": "https://registry.npmjs.org/is-plain-obj/1.1.0" - }, - { - "type": "npm", - "namespace": null, - "name": "is-posix-bracket", - "version": "0.1.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/is-posix-bracket@0.1.1", - "repository_homepage_url": "https://www.npmjs.com/package/is-posix-bracket", - "repository_download_url": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "api_data_url": "https://registry.npmjs.org/is-posix-bracket/0.1.1" - }, - { - "type": "npm", - "namespace": null, - "name": "is-primitive", - "version": "2.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/is-primitive@2.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/is-primitive", - "repository_download_url": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/is-primitive/2.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "is-promise", - "version": "2.1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/is-promise@2.1.0", - "repository_homepage_url": "https://www.npmjs.com/package/is-promise", - "repository_download_url": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "api_data_url": "https://registry.npmjs.org/is-promise/2.1.0" - }, - { - "type": "npm", - "namespace": null, - "name": "is-property", - "version": "1.0.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/is-property@1.0.2", - "repository_homepage_url": "https://www.npmjs.com/package/is-property", - "repository_download_url": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", - "api_data_url": "https://registry.npmjs.org/is-property/1.0.2" - }, - { - "type": "npm", - "namespace": null, - "name": "is-redirect", - "version": "1.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/is-redirect@1.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/is-redirect", - "repository_download_url": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/is-redirect/1.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "is-retry-allowed", - "version": "1.1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/is-retry-allowed@1.1.0", - "repository_homepage_url": "https://www.npmjs.com/package/is-retry-allowed", - "repository_download_url": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", - "api_data_url": "https://registry.npmjs.org/is-retry-allowed/1.1.0" - }, - { - "type": "npm", - "namespace": null, - "name": "is-stream", - "version": "1.1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/is-stream@1.1.0", - "repository_homepage_url": "https://www.npmjs.com/package/is-stream", - "repository_download_url": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "api_data_url": "https://registry.npmjs.org/is-stream/1.1.0" - }, - { - "type": "npm", - "namespace": null, - "name": "is-typedarray", - "version": "1.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/is-typedarray@1.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/is-typedarray", - "repository_download_url": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/is-typedarray/1.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "is-url", - "version": "1.2.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/is-url/-/is-url-1.2.2.tgz#498905a593bf47cc2d9e7f738372bbf7696c7f26", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/is-url@1.2.2", - "repository_homepage_url": "https://www.npmjs.com/package/is-url", - "repository_download_url": "https://registry.npmjs.org/is-url/-/is-url-1.2.2.tgz", - "api_data_url": "https://registry.npmjs.org/is-url/1.2.2" - }, - { - "type": "npm", - "namespace": null, - "name": "is-utf8", - "version": "0.2.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/is-utf8@0.2.1", - "repository_homepage_url": "https://www.npmjs.com/package/is-utf8", - "repository_download_url": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "api_data_url": "https://registry.npmjs.org/is-utf8/0.2.1" - }, - { - "type": "npm", - "namespace": null, - "name": "isarray", - "version": "1.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/isarray@1.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/isarray", - "repository_download_url": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/isarray/1.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "isexe", - "version": "1.1.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/isexe/-/isexe-1.1.2.tgz#36f3e22e60750920f5e7241a476a8c6a42275ad0", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/isexe@1.1.2", - "repository_homepage_url": "https://www.npmjs.com/package/isexe", - "repository_download_url": "https://registry.npmjs.org/isexe/-/isexe-1.1.2.tgz", - "api_data_url": "https://registry.npmjs.org/isexe/1.1.2" - }, - { - "type": "npm", - "namespace": null, - "name": "isobject", - "version": "2.1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/isarray", - "requirement": "1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/isobject@2.1.0", - "repository_homepage_url": "https://www.npmjs.com/package/isobject", - "repository_download_url": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "api_data_url": "https://registry.npmjs.org/isobject/2.1.0" - }, - { - "type": "npm", - "namespace": null, - "name": "isstream", - "version": "0.1.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/isstream@0.1.2", - "repository_homepage_url": "https://www.npmjs.com/package/isstream", - "repository_download_url": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "api_data_url": "https://registry.npmjs.org/isstream/0.1.2" - }, - { - "type": "npm", - "namespace": null, - "name": "jodid25519", - "version": "1.0.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/jodid25519/-/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/jsbn", - "requirement": "~0.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/jodid25519@1.0.2", - "repository_homepage_url": "https://www.npmjs.com/package/jodid25519", - "repository_download_url": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", - "api_data_url": "https://registry.npmjs.org/jodid25519/1.0.2" - }, - { - "type": "npm", - "namespace": null, - "name": "js-tokens", - "version": "2.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/js-tokens/-/js-tokens-2.0.0.tgz#79903f5563ee778cc1162e6dcf1a0027c97f9cb5", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/js-tokens@2.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/js-tokens", - "repository_download_url": "https://registry.npmjs.org/js-tokens/-/js-tokens-2.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/js-tokens/2.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "js-tokens", - "version": "3.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.0.tgz#a2f2a969caae142fb3cd56228358c89366957bd1", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/js-tokens@3.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/js-tokens", - "repository_download_url": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/js-tokens/3.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "jsbn", - "version": "0.1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.0.tgz#650987da0dd74f4ebf5a11377a2aa2d273e97dfd", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/jsbn@0.1.0", - "repository_homepage_url": "https://www.npmjs.com/package/jsbn", - "repository_download_url": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz", - "api_data_url": "https://registry.npmjs.org/jsbn/0.1.0" - }, - { - "type": "npm", - "namespace": null, - "name": "jsesc", - "version": "1.3.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/jsesc@1.3.0", - "repository_homepage_url": "https://www.npmjs.com/package/jsesc", - "repository_download_url": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "api_data_url": "https://registry.npmjs.org/jsesc/1.3.0" - }, - { - "type": "npm", - "namespace": null, - "name": "jsesc", - "version": "0.5.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/jsesc@0.5.0", - "repository_homepage_url": "https://www.npmjs.com/package/jsesc", - "repository_download_url": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "api_data_url": "https://registry.npmjs.org/jsesc/0.5.0" - }, - { - "type": "npm", - "namespace": null, - "name": "json-schema", - "version": "0.2.3", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/json-schema@0.2.3", - "repository_homepage_url": "https://www.npmjs.com/package/json-schema", - "repository_download_url": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "api_data_url": "https://registry.npmjs.org/json-schema/0.2.3" - }, - { - "type": "npm", - "namespace": null, - "name": "json-stringify-safe", - "version": "5.0.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/json-stringify-safe@5.0.1", - "repository_homepage_url": "https://www.npmjs.com/package/json-stringify-safe", - "repository_download_url": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "api_data_url": "https://registry.npmjs.org/json-stringify-safe/5.0.1" - }, - { - "type": "npm", - "namespace": null, - "name": "json3", - "version": "3.3.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/json3@3.3.2", - "repository_homepage_url": "https://www.npmjs.com/package/json3", - "repository_download_url": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", - "api_data_url": "https://registry.npmjs.org/json3/3.3.2" - }, - { - "type": "npm", - "namespace": null, - "name": "json5", - "version": "0.5.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/json5@0.5.1", - "repository_homepage_url": "https://www.npmjs.com/package/json5", - "repository_download_url": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "api_data_url": "https://registry.npmjs.org/json5/0.5.1" - }, - { - "type": "npm", - "namespace": null, - "name": "jsonpointer", - "version": "4.0.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/jsonpointer@4.0.1", - "repository_homepage_url": "https://www.npmjs.com/package/jsonpointer", - "repository_download_url": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", - "api_data_url": "https://registry.npmjs.org/jsonpointer/4.0.1" - }, - { - "type": "npm", - "namespace": null, - "name": "jsprim", - "version": "1.3.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/jsprim/-/jsprim-1.3.1.tgz#2a7256f70412a29ee3670aaca625994c4dcff252", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/extsprintf", - "requirement": "1.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/json-schema", - "requirement": "0.2.3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/verror", - "requirement": "1.3.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/jsprim@1.3.1", - "repository_homepage_url": "https://www.npmjs.com/package/jsprim", - "repository_download_url": "https://registry.npmjs.org/jsprim/-/jsprim-1.3.1.tgz", - "api_data_url": "https://registry.npmjs.org/jsprim/1.3.1" - }, - { - "type": "npm", - "namespace": null, - "name": "kind-of", - "version": "3.1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/kind-of/-/kind-of-3.1.0.tgz#475d698a5e49ff5e53d14e3e732429dc8bf4cf47", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/is-buffer", - "requirement": "^1.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/kind-of@3.1.0", - "repository_homepage_url": "https://www.npmjs.com/package/kind-of", - "repository_download_url": "https://registry.npmjs.org/kind-of/-/kind-of-3.1.0.tgz", - "api_data_url": "https://registry.npmjs.org/kind-of/3.1.0" - }, - { - "type": "npm", - "namespace": null, - "name": "last-line-stream", - "version": "1.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/last-line-stream/-/last-line-stream-1.0.0.tgz#d1b64d69f86ff24af2d04883a2ceee14520a5600", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/through2", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/last-line-stream@1.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/last-line-stream", - "repository_download_url": "https://registry.npmjs.org/last-line-stream/-/last-line-stream-1.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/last-line-stream/1.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "latest-version", - "version": "2.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/latest-version/-/latest-version-2.0.0.tgz#56f8d6139620847b8017f8f1f4d78e211324168b", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/package-json", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/latest-version@2.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/latest-version", - "repository_download_url": "https://registry.npmjs.org/latest-version/-/latest-version-2.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/latest-version/2.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "lazy-req", - "version": "1.1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/lazy-req/-/lazy-req-1.1.0.tgz#bdaebead30f8d824039ce0ce149d4daa07ba1fac", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/lazy-req@1.1.0", - "repository_homepage_url": "https://www.npmjs.com/package/lazy-req", - "repository_download_url": "https://registry.npmjs.org/lazy-req/-/lazy-req-1.1.0.tgz", - "api_data_url": "https://registry.npmjs.org/lazy-req/1.1.0" - }, - { - "type": "npm", - "namespace": null, - "name": "load-json-file", - "version": "1.1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/graceful-fs", - "requirement": "^4.1.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/parse-json", - "requirement": "^2.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/pify", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/pinkie-promise", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/strip-bom", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/load-json-file@1.1.0", - "repository_homepage_url": "https://www.npmjs.com/package/load-json-file", - "repository_download_url": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "api_data_url": "https://registry.npmjs.org/load-json-file/1.1.0" - }, - { - "type": "npm", - "namespace": null, - "name": "lodash._baseassign", - "version": "3.2.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/lodash._basecopy", - "requirement": "^3.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/lodash.keys", - "requirement": "^3.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/lodash._baseassign@3.2.0", - "repository_homepage_url": "https://www.npmjs.com/package/lodash._baseassign", - "repository_download_url": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", - "api_data_url": "https://registry.npmjs.org/lodash._baseassign/3.2.0" - }, - { - "type": "npm", - "namespace": null, - "name": "lodash._basecopy", - "version": "3.0.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/lodash._basecopy@3.0.1", - "repository_homepage_url": "https://www.npmjs.com/package/lodash._basecopy", - "repository_download_url": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", - "api_data_url": "https://registry.npmjs.org/lodash._basecopy/3.0.1" - }, - { - "type": "npm", - "namespace": null, - "name": "lodash._basecreate", - "version": "3.0.3", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz#1bc661614daa7fc311b7d03bf16806a0213cf821", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/lodash._basecreate@3.0.3", - "repository_homepage_url": "https://www.npmjs.com/package/lodash._basecreate", - "repository_download_url": "https://registry.npmjs.org/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz", - "api_data_url": "https://registry.npmjs.org/lodash._basecreate/3.0.3" - }, - { - "type": "npm", - "namespace": null, - "name": "lodash._getnative", - "version": "3.9.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/lodash._getnative@3.9.1", - "repository_homepage_url": "https://www.npmjs.com/package/lodash._getnative", - "repository_download_url": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", - "api_data_url": "https://registry.npmjs.org/lodash._getnative/3.9.1" - }, - { - "type": "npm", - "namespace": null, - "name": "lodash._isiterateecall", - "version": "3.0.9", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/lodash._isiterateecall@3.0.9", - "repository_homepage_url": "https://www.npmjs.com/package/lodash._isiterateecall", - "repository_download_url": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", - "api_data_url": "https://registry.npmjs.org/lodash._isiterateecall/3.0.9" - }, - { - "type": "npm", - "namespace": null, - "name": "lodash.create", - "version": "3.1.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/lodash.create/-/lodash.create-3.1.1.tgz#d7f2849f0dbda7e04682bb8cd72ab022461debe7", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/lodash._baseassign", - "requirement": "^3.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/lodash._basecreate", - "requirement": "^3.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/lodash._isiterateecall", - "requirement": "^3.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/lodash.create@3.1.1", - "repository_homepage_url": "https://www.npmjs.com/package/lodash.create", - "repository_download_url": "https://registry.npmjs.org/lodash.create/-/lodash.create-3.1.1.tgz", - "api_data_url": "https://registry.npmjs.org/lodash.create/3.1.1" - }, - { - "type": "npm", - "namespace": null, - "name": "lodash.debounce", - "version": "4.0.8", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/lodash.debounce@4.0.8", - "repository_homepage_url": "https://www.npmjs.com/package/lodash.debounce", - "repository_download_url": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "api_data_url": "https://registry.npmjs.org/lodash.debounce/4.0.8" - }, - { - "type": "npm", - "namespace": null, - "name": "lodash.difference", - "version": "4.5.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/lodash.difference@4.5.0", - "repository_homepage_url": "https://www.npmjs.com/package/lodash.difference", - "repository_download_url": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", - "api_data_url": "https://registry.npmjs.org/lodash.difference/4.5.0" - }, - { - "type": "npm", - "namespace": null, - "name": "lodash.flatten", - "version": "4.4.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/lodash.flatten@4.4.0", - "repository_homepage_url": "https://www.npmjs.com/package/lodash.flatten", - "repository_download_url": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "api_data_url": "https://registry.npmjs.org/lodash.flatten/4.4.0" - }, - { - "type": "npm", - "namespace": null, - "name": "lodash.isarguments", - "version": "3.1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/lodash.isarguments@3.1.0", - "repository_homepage_url": "https://www.npmjs.com/package/lodash.isarguments", - "repository_download_url": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "api_data_url": "https://registry.npmjs.org/lodash.isarguments/3.1.0" - }, - { - "type": "npm", - "namespace": null, - "name": "lodash.isarray", - "version": "3.0.4", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/lodash.isarray@3.0.4", - "repository_homepage_url": "https://www.npmjs.com/package/lodash.isarray", - "repository_download_url": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", - "api_data_url": "https://registry.npmjs.org/lodash.isarray/3.0.4" - }, - { - "type": "npm", - "namespace": null, - "name": "lodash.isequal", - "version": "4.5.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/lodash.isequal@4.5.0", - "repository_homepage_url": "https://www.npmjs.com/package/lodash.isequal", - "repository_download_url": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "api_data_url": "https://registry.npmjs.org/lodash.isequal/4.5.0" - }, - { - "type": "npm", - "namespace": null, - "name": "lodash.keys", - "version": "3.1.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/lodash._getnative", - "requirement": "^3.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/lodash.isarguments", - "requirement": "^3.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/lodash.isarray", - "requirement": "^3.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/lodash.keys@3.1.2", - "repository_homepage_url": "https://www.npmjs.com/package/lodash.keys", - "repository_download_url": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "api_data_url": "https://registry.npmjs.org/lodash.keys/3.1.2" - }, - { - "type": "npm", - "namespace": null, - "name": "lodash", - "version": "4.17.4", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/lodash@4.17.4", - "repository_homepage_url": "https://www.npmjs.com/package/lodash", - "repository_download_url": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "api_data_url": "https://registry.npmjs.org/lodash/4.17.4" - }, - { - "type": "npm", - "namespace": null, - "name": "loose-envify", - "version": "1.3.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/js-tokens", - "requirement": "^3.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/loose-envify@1.3.1", - "repository_homepage_url": "https://www.npmjs.com/package/loose-envify", - "repository_download_url": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "api_data_url": "https://registry.npmjs.org/loose-envify/1.3.1" - }, - { - "type": "npm", - "namespace": null, - "name": "loud-rejection", - "version": "1.6.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/currently-unhandled", - "requirement": "^0.4.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/signal-exit", - "requirement": "^3.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/loud-rejection@1.6.0", - "repository_homepage_url": "https://www.npmjs.com/package/loud-rejection", - "repository_download_url": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "api_data_url": "https://registry.npmjs.org/loud-rejection/1.6.0" - }, - { - "type": "npm", - "namespace": null, - "name": "lowercase-keys", - "version": "1.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/lowercase-keys@1.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/lowercase-keys", - "repository_download_url": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/lowercase-keys/1.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "lru-cache", - "version": "4.0.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.0.2.tgz#1d17679c069cda5d040991a09dbc2c0db377e55e", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/pseudomap", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/yallist", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/lru-cache@4.0.2", - "repository_homepage_url": "https://www.npmjs.com/package/lru-cache", - "repository_download_url": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.2.tgz", - "api_data_url": "https://registry.npmjs.org/lru-cache/4.0.2" - }, - { - "type": "npm", - "namespace": null, - "name": "map-obj", - "version": "1.0.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/map-obj@1.0.1", - "repository_homepage_url": "https://www.npmjs.com/package/map-obj", - "repository_download_url": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "api_data_url": "https://registry.npmjs.org/map-obj/1.0.1" - }, - { - "type": "npm", - "namespace": null, - "name": "matcher", - "version": "0.1.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/matcher/-/matcher-0.1.2.tgz#ef20cbde64c24c50cc61af5b83ee0b1b8ff00101", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/escape-string-regexp", - "requirement": "^1.0.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/matcher@0.1.2", - "repository_homepage_url": "https://www.npmjs.com/package/matcher", - "repository_download_url": "https://registry.npmjs.org/matcher/-/matcher-0.1.2.tgz", - "api_data_url": "https://registry.npmjs.org/matcher/0.1.2" - }, - { - "type": "npm", - "namespace": null, - "name": "max-timeout", - "version": "1.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/max-timeout/-/max-timeout-1.0.0.tgz#b68f69a2f99e0b476fd4cb23e2059ca750715e1f", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/max-timeout@1.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/max-timeout", - "repository_download_url": "https://registry.npmjs.org/max-timeout/-/max-timeout-1.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/max-timeout/1.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "md5-hex", - "version": "1.3.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/md5-hex/-/md5-hex-1.3.0.tgz#d2c4afe983c4370662179b8cad145219135046c4", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/md5-o-matic", - "requirement": "^0.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/md5-hex@1.3.0", - "repository_homepage_url": "https://www.npmjs.com/package/md5-hex", - "repository_download_url": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", - "api_data_url": "https://registry.npmjs.org/md5-hex/1.3.0" - }, - { - "type": "npm", - "namespace": null, - "name": "md5-o-matic", - "version": "0.1.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/md5-o-matic/-/md5-o-matic-0.1.1.tgz#822bccd65e117c514fab176b25945d54100a03c3", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/md5-o-matic@0.1.1", - "repository_homepage_url": "https://www.npmjs.com/package/md5-o-matic", - "repository_download_url": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz", - "api_data_url": "https://registry.npmjs.org/md5-o-matic/0.1.1" - }, - { - "type": "npm", - "namespace": null, - "name": "meow", - "version": "3.7.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/camelcase-keys", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/decamelize", - "requirement": "^1.1.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/loud-rejection", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/map-obj", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/minimist", - "requirement": "^1.1.3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/normalize-package-data", - "requirement": "^2.3.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/object-assign", - "requirement": "^4.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/read-pkg-up", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/redent", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/trim-newlines", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/meow@3.7.0", - "repository_homepage_url": "https://www.npmjs.com/package/meow", - "repository_download_url": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "api_data_url": "https://registry.npmjs.org/meow/3.7.0" - }, - { - "type": "npm", - "namespace": null, - "name": "micromatch", - "version": "2.3.11", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/arr-diff", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/array-unique", - "requirement": "^0.2.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/braces", - "requirement": "^1.8.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/expand-brackets", - "requirement": "^0.1.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/extglob", - "requirement": "^0.3.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/filename-regex", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-extglob", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-glob", - "requirement": "^2.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/kind-of", - "requirement": "^3.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/normalize-path", - "requirement": "^2.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/object.omit", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/parse-glob", - "requirement": "^3.0.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/regex-cache", - "requirement": "^0.4.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/micromatch@2.3.11", - "repository_homepage_url": "https://www.npmjs.com/package/micromatch", - "repository_download_url": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "api_data_url": "https://registry.npmjs.org/micromatch/2.3.11" - }, - { - "type": "npm", - "namespace": null, - "name": "mime-db", - "version": "1.26.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/mime-db/-/mime-db-1.26.0.tgz#eaffcd0e4fc6935cf8134da246e2e6c35305adff", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/mime-db@1.26.0", - "repository_homepage_url": "https://www.npmjs.com/package/mime-db", - "repository_download_url": "https://registry.npmjs.org/mime-db/-/mime-db-1.26.0.tgz", - "api_data_url": "https://registry.npmjs.org/mime-db/1.26.0" - }, - { - "type": "npm", - "namespace": null, - "name": "mime-types", - "version": "2.1.14", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.14.tgz#f7ef7d97583fcaf3b7d282b6f8b5679dab1e94ee", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/mime-db", - "requirement": "~1.26.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/mime-types@2.1.14", - "repository_homepage_url": "https://www.npmjs.com/package/mime-types", - "repository_download_url": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz", - "api_data_url": "https://registry.npmjs.org/mime-types/2.1.14" - }, - { - "type": "npm", - "namespace": null, - "name": "minimatch", - "version": "3.0.3", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/brace-expansion", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/minimatch@3.0.3", - "repository_homepage_url": "https://www.npmjs.com/package/minimatch", - "repository_download_url": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", - "api_data_url": "https://registry.npmjs.org/minimatch/3.0.3" - }, - { - "type": "npm", - "namespace": null, - "name": "minimist", - "version": "0.0.8", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/minimist@0.0.8", - "repository_homepage_url": "https://www.npmjs.com/package/minimist", - "repository_download_url": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "api_data_url": "https://registry.npmjs.org/minimist/0.0.8" - }, - { - "type": "npm", - "namespace": null, - "name": "minimist", - "version": "1.2.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/minimist@1.2.0", - "repository_homepage_url": "https://www.npmjs.com/package/minimist", - "repository_download_url": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "api_data_url": "https://registry.npmjs.org/minimist/1.2.0" - }, - { - "type": "npm", - "namespace": null, - "name": "mkdirp", - "version": "0.5.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/minimist", - "requirement": "0.0.8", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/mkdirp@0.5.1", - "repository_homepage_url": "https://www.npmjs.com/package/mkdirp", - "repository_download_url": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "api_data_url": "https://registry.npmjs.org/mkdirp/0.5.1" - }, - { - "type": "npm", - "namespace": null, - "name": "mocha", - "version": "3.2.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/mocha/-/mocha-3.2.0.tgz#7dc4f45e5088075171a68896814e6ae9eb7a85e3", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/browser-stdout", - "requirement": "1.3.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/commander", - "requirement": "2.9.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/debug", - "requirement": "2.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/diff", - "requirement": "1.4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/escape-string-regexp", - "requirement": "1.0.5", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/glob", - "requirement": "7.0.5", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/growl", - "requirement": "1.9.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/json3", - "requirement": "3.3.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/lodash.create", - "requirement": "3.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/mkdirp", - "requirement": "0.5.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/supports-color", - "requirement": "3.1.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/mocha@3.2.0", - "repository_homepage_url": "https://www.npmjs.com/package/mocha", - "repository_download_url": "https://registry.npmjs.org/mocha/-/mocha-3.2.0.tgz", - "api_data_url": "https://registry.npmjs.org/mocha/3.2.0" - }, - { - "type": "npm", - "namespace": null, - "name": "ms", - "version": "0.7.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/ms@0.7.1", - "repository_homepage_url": "https://www.npmjs.com/package/ms", - "repository_download_url": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "api_data_url": "https://registry.npmjs.org/ms/0.7.1" - }, - { - "type": "npm", - "namespace": null, - "name": "multimatch", - "version": "2.1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/array-differ", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/array-union", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/arrify", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/minimatch", - "requirement": "^3.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/multimatch@2.1.0", - "repository_homepage_url": "https://www.npmjs.com/package/multimatch", - "repository_download_url": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", - "api_data_url": "https://registry.npmjs.org/multimatch/2.1.0" - }, - { - "type": "npm", - "namespace": null, - "name": "nan", - "version": "2.5.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/nan/-/nan-2.5.0.tgz#aa8f1e34531d807e9e27755b234b4a6ec0c152a8", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/nan@2.5.0", - "repository_homepage_url": "https://www.npmjs.com/package/nan", - "repository_download_url": "https://registry.npmjs.org/nan/-/nan-2.5.0.tgz", - "api_data_url": "https://registry.npmjs.org/nan/2.5.0" - }, - { - "type": "npm", - "namespace": null, - "name": "node-pre-gyp", - "version": "0.6.32", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.32.tgz#fc452b376e7319b3d255f5f34853ef6fd8fe1fd5", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/mkdirp", - "requirement": "~0.5.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/nopt", - "requirement": "~3.0.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/npmlog", - "requirement": "^4.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/rc", - "requirement": "~1.1.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/request", - "requirement": "^2.79.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/rimraf", - "requirement": "~2.5.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/semver", - "requirement": "~5.3.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/tar", - "requirement": "~2.2.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/tar-pack", - "requirement": "~3.3.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/node-pre-gyp@0.6.32", - "repository_homepage_url": "https://www.npmjs.com/package/node-pre-gyp", - "repository_download_url": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.32.tgz", - "api_data_url": "https://registry.npmjs.org/node-pre-gyp/0.6.32" - }, - { - "type": "npm", - "namespace": null, - "name": "node-status-codes", - "version": "1.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/node-status-codes/-/node-status-codes-1.0.0.tgz#5ae5541d024645d32a58fcddc9ceecea7ae3ac2f", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/node-status-codes@1.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/node-status-codes", - "repository_download_url": "https://registry.npmjs.org/node-status-codes/-/node-status-codes-1.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/node-status-codes/1.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "nopt", - "version": "3.0.6", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/abbrev", - "requirement": "1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/nopt@3.0.6", - "repository_homepage_url": "https://www.npmjs.com/package/nopt", - "repository_download_url": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "api_data_url": "https://registry.npmjs.org/nopt/3.0.6" - }, - { - "type": "npm", - "namespace": null, - "name": "normalize-package-data", - "version": "2.3.5", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.5.tgz#8d924f142960e1777e7ffe170543631cc7cb02df", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/hosted-git-info", - "requirement": "^2.1.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-builtin-module", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/validate-npm-package-license", - "requirement": "^3.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/normalize-package-data@2.3.5", - "repository_homepage_url": "https://www.npmjs.com/package/normalize-package-data", - "repository_download_url": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz", - "api_data_url": "https://registry.npmjs.org/normalize-package-data/2.3.5" - }, - { - "type": "npm", - "namespace": null, - "name": "normalize-path", - "version": "2.0.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.0.1.tgz#47886ac1662760d4261b7d979d241709d3ce3f7a", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/normalize-path@2.0.1", - "repository_homepage_url": "https://www.npmjs.com/package/normalize-path", - "repository_download_url": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.0.1.tgz", - "api_data_url": "https://registry.npmjs.org/normalize-path/2.0.1" - }, - { - "type": "npm", - "namespace": null, - "name": "npmlog", - "version": "4.0.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/npmlog/-/npmlog-4.0.2.tgz#d03950e0e78ce1527ba26d2a7592e9348ac3e75f", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/are-we-there-yet", - "requirement": "~1.1.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/console-control-strings", - "requirement": "~1.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/gauge", - "requirement": "~2.7.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/set-blocking", - "requirement": "~2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/npmlog@4.0.2", - "repository_homepage_url": "https://www.npmjs.com/package/npmlog", - "repository_download_url": "https://registry.npmjs.org/npmlog/-/npmlog-4.0.2.tgz", - "api_data_url": "https://registry.npmjs.org/npmlog/4.0.2" - }, - { - "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": "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/number-is-nan@1.0.1", - "repository_homepage_url": "https://www.npmjs.com/package/number-is-nan", - "repository_download_url": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "api_data_url": "https://registry.npmjs.org/number-is-nan/1.0.1" - }, - { - "type": "npm", - "namespace": null, - "name": "oauth-sign", - "version": "0.8.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/oauth-sign@0.8.2", - "repository_homepage_url": "https://www.npmjs.com/package/oauth-sign", - "repository_download_url": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "api_data_url": "https://registry.npmjs.org/oauth-sign/0.8.2" - }, - { - "type": "npm", - "namespace": null, - "name": "object-assign", - "version": "4.1.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/object-assign@4.1.1", - "repository_homepage_url": "https://www.npmjs.com/package/object-assign", - "repository_download_url": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "api_data_url": "https://registry.npmjs.org/object-assign/4.1.1" - }, - { - "type": "npm", - "namespace": null, - "name": "object.omit", - "version": "2.0.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/for-own", - "requirement": "^0.1.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-extendable", - "requirement": "^0.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/object.omit@2.0.1", - "repository_homepage_url": "https://www.npmjs.com/package/object.omit", - "repository_download_url": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "api_data_url": "https://registry.npmjs.org/object.omit/2.0.1" - }, - { - "type": "npm", - "namespace": null, - "name": "observable-to-promise", - "version": "0.4.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/observable-to-promise/-/observable-to-promise-0.4.0.tgz#28afe71645308f2d41d71f47ad3fece1a377e52b", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/is-observable", - "requirement": "^0.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/symbol-observable", - "requirement": "^0.2.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/observable-to-promise@0.4.0", - "repository_homepage_url": "https://www.npmjs.com/package/observable-to-promise", - "repository_download_url": "https://registry.npmjs.org/observable-to-promise/-/observable-to-promise-0.4.0.tgz", - "api_data_url": "https://registry.npmjs.org/observable-to-promise/0.4.0" - }, - { - "type": "npm", - "namespace": null, - "name": "once", - "version": "1.4.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/wrappy", - "requirement": "1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/once@1.4.0", - "repository_homepage_url": "https://www.npmjs.com/package/once", - "repository_download_url": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "api_data_url": "https://registry.npmjs.org/once/1.4.0" - }, - { - "type": "npm", - "namespace": null, - "name": "once", - "version": "1.3.3", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/wrappy", - "requirement": "1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/once@1.3.3", - "repository_homepage_url": "https://www.npmjs.com/package/once", - "repository_download_url": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", - "api_data_url": "https://registry.npmjs.org/once/1.3.3" - }, - { - "type": "npm", - "namespace": null, - "name": "onetime", - "version": "1.1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/onetime@1.1.0", - "repository_homepage_url": "https://www.npmjs.com/package/onetime", - "repository_download_url": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", - "api_data_url": "https://registry.npmjs.org/onetime/1.1.0" - }, - { - "type": "npm", - "namespace": null, - "name": "option-chain", - "version": "0.1.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/option-chain/-/option-chain-0.1.1.tgz#e9b811e006f1c0f54802f28295bfc8970f8dcfbd", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/object-assign", - "requirement": "^4.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/option-chain@0.1.1", - "repository_homepage_url": "https://www.npmjs.com/package/option-chain", - "repository_download_url": "https://registry.npmjs.org/option-chain/-/option-chain-0.1.1.tgz", - "api_data_url": "https://registry.npmjs.org/option-chain/0.1.1" - }, - { - "type": "npm", - "namespace": null, - "name": "os-homedir", - "version": "1.0.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/os-homedir@1.0.2", - "repository_homepage_url": "https://www.npmjs.com/package/os-homedir", - "repository_download_url": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "api_data_url": "https://registry.npmjs.org/os-homedir/1.0.2" - }, - { - "type": "npm", - "namespace": null, - "name": "os-tmpdir", - "version": "1.0.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/os-tmpdir@1.0.2", - "repository_homepage_url": "https://www.npmjs.com/package/os-tmpdir", - "repository_download_url": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "api_data_url": "https://registry.npmjs.org/os-tmpdir/1.0.2" - }, - { - "type": "npm", - "namespace": null, - "name": "osenv", - "version": "0.1.4", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/os-homedir", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/os-tmpdir", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/osenv@0.1.4", - "repository_homepage_url": "https://www.npmjs.com/package/osenv", - "repository_download_url": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", - "api_data_url": "https://registry.npmjs.org/osenv/0.1.4" - }, - { - "type": "npm", - "namespace": null, - "name": "package-hash", - "version": "1.2.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/package-hash/-/package-hash-1.2.0.tgz#003e56cd57b736a6ed6114cc2b81542672770e44", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/md5-hex", - "requirement": "^1.3.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/package-hash@1.2.0", - "repository_homepage_url": "https://www.npmjs.com/package/package-hash", - "repository_download_url": "https://registry.npmjs.org/package-hash/-/package-hash-1.2.0.tgz", - "api_data_url": "https://registry.npmjs.org/package-hash/1.2.0" - }, - { - "type": "npm", - "namespace": null, - "name": "package-json", - "version": "2.4.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/package-json/-/package-json-2.4.0.tgz#0d15bd67d1cbbddbb2ca222ff2edb86bcb31a8bb", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/got", - "requirement": "^5.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/registry-auth-token", - "requirement": "^3.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/registry-url", - "requirement": "^3.0.3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/semver", - "requirement": "^5.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/package-json@2.4.0", - "repository_homepage_url": "https://www.npmjs.com/package/package-json", - "repository_download_url": "https://registry.npmjs.org/package-json/-/package-json-2.4.0.tgz", - "api_data_url": "https://registry.npmjs.org/package-json/2.4.0" - }, - { - "type": "npm", - "namespace": null, - "name": "parse-glob", - "version": "3.0.4", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/glob-base", - "requirement": "^0.3.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-dotfile", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-extglob", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-glob", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/parse-glob@3.0.4", - "repository_homepage_url": "https://www.npmjs.com/package/parse-glob", - "repository_download_url": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "api_data_url": "https://registry.npmjs.org/parse-glob/3.0.4" - }, - { - "type": "npm", - "namespace": null, - "name": "parse-json", - "version": "2.2.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/error-ex", - "requirement": "^1.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/parse-json@2.2.0", - "repository_homepage_url": "https://www.npmjs.com/package/parse-json", - "repository_download_url": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "api_data_url": "https://registry.npmjs.org/parse-json/2.2.0" - }, - { - "type": "npm", - "namespace": null, - "name": "parse-ms", - "version": "0.1.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/parse-ms/-/parse-ms-0.1.2.tgz#dd3fa25ed6c2efc7bdde12ad9b46c163aa29224e", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/parse-ms@0.1.2", - "repository_homepage_url": "https://www.npmjs.com/package/parse-ms", - "repository_download_url": "https://registry.npmjs.org/parse-ms/-/parse-ms-0.1.2.tgz", - "api_data_url": "https://registry.npmjs.org/parse-ms/0.1.2" - }, - { - "type": "npm", - "namespace": null, - "name": "parse-ms", - "version": "1.0.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/parse-ms/-/parse-ms-1.0.1.tgz#56346d4749d78f23430ca0c713850aef91aa361d", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/parse-ms@1.0.1", - "repository_homepage_url": "https://www.npmjs.com/package/parse-ms", - "repository_download_url": "https://registry.npmjs.org/parse-ms/-/parse-ms-1.0.1.tgz", - "api_data_url": "https://registry.npmjs.org/parse-ms/1.0.1" - }, - { - "type": "npm", - "namespace": null, - "name": "path-exists", - "version": "2.1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/pinkie-promise", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/path-exists@2.1.0", - "repository_homepage_url": "https://www.npmjs.com/package/path-exists", - "repository_download_url": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "api_data_url": "https://registry.npmjs.org/path-exists/2.1.0" - }, - { - "type": "npm", - "namespace": null, - "name": "path-is-absolute", - "version": "1.0.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/path-is-absolute@1.0.1", - "repository_homepage_url": "https://www.npmjs.com/package/path-is-absolute", - "repository_download_url": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "api_data_url": "https://registry.npmjs.org/path-is-absolute/1.0.1" - }, - { - "type": "npm", - "namespace": null, - "name": "path-type", - "version": "1.1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/graceful-fs", - "requirement": "^4.1.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/pify", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/pinkie-promise", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/path-type@1.1.0", - "repository_homepage_url": "https://www.npmjs.com/package/path-type", - "repository_download_url": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "api_data_url": "https://registry.npmjs.org/path-type/1.1.0" - }, - { - "type": "npm", - "namespace": null, - "name": "pify", - "version": "2.3.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/pify@2.3.0", - "repository_homepage_url": "https://www.npmjs.com/package/pify", - "repository_download_url": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "api_data_url": "https://registry.npmjs.org/pify/2.3.0" - }, - { - "type": "npm", - "namespace": null, - "name": "pinkie-promise", - "version": "1.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-1.0.0.tgz#d1da67f5482563bb7cf57f286ae2822ecfbf3670", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/pinkie", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/pinkie-promise@1.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/pinkie-promise", - "repository_download_url": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-1.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/pinkie-promise/1.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "pinkie-promise", - "version": "2.0.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/pinkie", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/pinkie-promise@2.0.1", - "repository_homepage_url": "https://www.npmjs.com/package/pinkie-promise", - "repository_download_url": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "api_data_url": "https://registry.npmjs.org/pinkie-promise/2.0.1" - }, - { - "type": "npm", - "namespace": null, - "name": "pinkie", - "version": "1.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/pinkie/-/pinkie-1.0.0.tgz#5a47f28ba1015d0201bda7bf0f358e47bec8c7e4", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/pinkie@1.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/pinkie", - "repository_download_url": "https://registry.npmjs.org/pinkie/-/pinkie-1.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/pinkie/1.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "pinkie", - "version": "2.0.4", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/pinkie@2.0.4", - "repository_homepage_url": "https://www.npmjs.com/package/pinkie", - "repository_download_url": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "api_data_url": "https://registry.npmjs.org/pinkie/2.0.4" - }, - { - "type": "npm", - "namespace": null, - "name": "pkg-conf", - "version": "1.1.3", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-1.1.3.tgz#378e56d6fd13e88bfb6f4a25df7a83faabddba5b", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/find-up", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/load-json-file", - "requirement": "^1.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/object-assign", - "requirement": "^4.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/symbol", - "requirement": "^0.2.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/pkg-conf@1.1.3", - "repository_homepage_url": "https://www.npmjs.com/package/pkg-conf", - "repository_download_url": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-1.1.3.tgz", - "api_data_url": "https://registry.npmjs.org/pkg-conf/1.1.3" - }, - { - "type": "npm", - "namespace": null, - "name": "pkg-dir", - "version": "1.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/find-up", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/pkg-dir@1.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/pkg-dir", - "repository_download_url": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/pkg-dir/1.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "plur", - "version": "1.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/plur/-/plur-1.0.0.tgz#db85c6814f5e5e5a3b49efc28d604fec62975156", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/plur@1.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/plur", - "repository_download_url": "https://registry.npmjs.org/plur/-/plur-1.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/plur/1.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "plur", - "version": "2.1.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/plur/-/plur-2.1.2.tgz#7482452c1a0f508e3e344eaec312c91c29dc655a", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/irregular-plurals", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/plur@2.1.2", - "repository_homepage_url": "https://www.npmjs.com/package/plur", - "repository_download_url": "https://registry.npmjs.org/plur/-/plur-2.1.2.tgz", - "api_data_url": "https://registry.npmjs.org/plur/2.1.2" - }, - { - "type": "npm", - "namespace": null, - "name": "power-assert-context-formatter", - "version": "1.1.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/power-assert-context-formatter/-/power-assert-context-formatter-1.1.1.tgz#edba352d3ed8a603114d667265acce60d689ccdf", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/core-js", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/power-assert-context-traversal", - "requirement": "^1.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/power-assert-context-formatter@1.1.1", - "repository_homepage_url": "https://www.npmjs.com/package/power-assert-context-formatter", - "repository_download_url": "https://registry.npmjs.org/power-assert-context-formatter/-/power-assert-context-formatter-1.1.1.tgz", - "api_data_url": "https://registry.npmjs.org/power-assert-context-formatter/1.1.1" - }, - { - "type": "npm", - "namespace": null, - "name": "power-assert-context-traversal", - "version": "1.1.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/power-assert-context-traversal/-/power-assert-context-traversal-1.1.1.tgz#88cabca0d13b6359f07d3d3e8afa699264577ed9", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/core-js", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/estraverse", - "requirement": "^4.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/power-assert-context-traversal@1.1.1", - "repository_homepage_url": "https://www.npmjs.com/package/power-assert-context-traversal", - "repository_download_url": "https://registry.npmjs.org/power-assert-context-traversal/-/power-assert-context-traversal-1.1.1.tgz", - "api_data_url": "https://registry.npmjs.org/power-assert-context-traversal/1.1.1" - }, - { - "type": "npm", - "namespace": null, - "name": "power-assert-renderer-assertion", - "version": "1.1.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/power-assert-renderer-assertion/-/power-assert-renderer-assertion-1.1.1.tgz#cbfc0e77e0086a8f96af3f1d8e67b9ee7e28ce98", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/power-assert-renderer-base", - "requirement": "^1.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/power-assert-util-string-width", - "requirement": "^1.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/power-assert-renderer-assertion@1.1.1", - "repository_homepage_url": "https://www.npmjs.com/package/power-assert-renderer-assertion", - "repository_download_url": "https://registry.npmjs.org/power-assert-renderer-assertion/-/power-assert-renderer-assertion-1.1.1.tgz", - "api_data_url": "https://registry.npmjs.org/power-assert-renderer-assertion/1.1.1" - }, - { - "type": "npm", - "namespace": null, - "name": "power-assert-renderer-base", - "version": "1.1.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/power-assert-renderer-base/-/power-assert-renderer-base-1.1.1.tgz#96a650c6fd05ee1bc1f66b54ad61442c8b3f63eb", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/power-assert-renderer-base@1.1.1", - "repository_homepage_url": "https://www.npmjs.com/package/power-assert-renderer-base", - "repository_download_url": "https://registry.npmjs.org/power-assert-renderer-base/-/power-assert-renderer-base-1.1.1.tgz", - "api_data_url": "https://registry.npmjs.org/power-assert-renderer-base/1.1.1" - }, - { - "type": "npm", - "namespace": null, - "name": "power-assert-renderer-diagram", - "version": "1.1.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/power-assert-renderer-diagram/-/power-assert-renderer-diagram-1.1.1.tgz#7e0c82cc08a84b155e51b5ae94f59709778a65fb", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/core-js", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/power-assert-renderer-base", - "requirement": "^1.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/power-assert-util-string-width", - "requirement": "^1.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/stringifier", - "requirement": "^1.3.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/power-assert-renderer-diagram@1.1.1", - "repository_homepage_url": "https://www.npmjs.com/package/power-assert-renderer-diagram", - "repository_download_url": "https://registry.npmjs.org/power-assert-renderer-diagram/-/power-assert-renderer-diagram-1.1.1.tgz", - "api_data_url": "https://registry.npmjs.org/power-assert-renderer-diagram/1.1.1" - }, - { - "type": "npm", - "namespace": null, - "name": "power-assert-renderer-succinct", - "version": "1.1.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/power-assert-renderer-succinct/-/power-assert-renderer-succinct-1.1.1.tgz#c2a468b23822abd6f80e2aba5322347b09df476e", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/core-js", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/power-assert-renderer-diagram", - "requirement": "^1.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/power-assert-renderer-succinct@1.1.1", - "repository_homepage_url": "https://www.npmjs.com/package/power-assert-renderer-succinct", - "repository_download_url": "https://registry.npmjs.org/power-assert-renderer-succinct/-/power-assert-renderer-succinct-1.1.1.tgz", - "api_data_url": "https://registry.npmjs.org/power-assert-renderer-succinct/1.1.1" - }, - { - "type": "npm", - "namespace": null, - "name": "power-assert-util-string-width", - "version": "1.1.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/power-assert-util-string-width/-/power-assert-util-string-width-1.1.1.tgz#be659eb7937fdd2e6c9a77268daaf64bd5b7c592", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/eastasianwidth", - "requirement": "^0.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/power-assert-util-string-width@1.1.1", - "repository_homepage_url": "https://www.npmjs.com/package/power-assert-util-string-width", - "repository_download_url": "https://registry.npmjs.org/power-assert-util-string-width/-/power-assert-util-string-width-1.1.1.tgz", - "api_data_url": "https://registry.npmjs.org/power-assert-util-string-width/1.1.1" - }, - { - "type": "npm", - "namespace": null, - "name": "prepend-http", - "version": "1.0.4", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/prepend-http@1.0.4", - "repository_homepage_url": "https://www.npmjs.com/package/prepend-http", - "repository_download_url": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "api_data_url": "https://registry.npmjs.org/prepend-http/1.0.4" - }, - { - "type": "npm", - "namespace": null, - "name": "preserve", - "version": "0.2.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/preserve@0.2.0", - "repository_homepage_url": "https://www.npmjs.com/package/preserve", - "repository_download_url": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "api_data_url": "https://registry.npmjs.org/preserve/0.2.0" - }, - { - "type": "npm", - "namespace": null, - "name": "pretty-ms", - "version": "0.2.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-0.2.2.tgz#da879a682ff33a37011046f13d627f67c73b84f6", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/parse-ms", - "requirement": "^0.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/pretty-ms@0.2.2", - "repository_homepage_url": "https://www.npmjs.com/package/pretty-ms", - "repository_download_url": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-0.2.2.tgz", - "api_data_url": "https://registry.npmjs.org/pretty-ms/0.2.2" - }, - { - "type": "npm", - "namespace": null, - "name": "pretty-ms", - "version": "2.1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-2.1.0.tgz#4257c256df3fb0b451d6affaab021884126981dc", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/is-finite", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/parse-ms", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/plur", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/pretty-ms@2.1.0", - "repository_homepage_url": "https://www.npmjs.com/package/pretty-ms", - "repository_download_url": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-2.1.0.tgz", - "api_data_url": "https://registry.npmjs.org/pretty-ms/2.1.0" - }, - { - "type": "npm", - "namespace": null, - "name": "private", - "version": "0.1.6", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/private/-/private-0.1.6.tgz#55c6a976d0f9bafb9924851350fe47b9b5fbb7c1", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/private@0.1.6", - "repository_homepage_url": "https://www.npmjs.com/package/private", - "repository_download_url": "https://registry.npmjs.org/private/-/private-0.1.6.tgz", - "api_data_url": "https://registry.npmjs.org/private/0.1.6" - }, - { - "type": "npm", - "namespace": null, - "name": "process-nextick-args", - "version": "1.0.7", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/process-nextick-args@1.0.7", - "repository_homepage_url": "https://www.npmjs.com/package/process-nextick-args", - "repository_download_url": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "api_data_url": "https://registry.npmjs.org/process-nextick-args/1.0.7" - }, - { - "type": "npm", - "namespace": null, - "name": "pseudomap", - "version": "1.0.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/pseudomap@1.0.2", - "repository_homepage_url": "https://www.npmjs.com/package/pseudomap", - "repository_download_url": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "api_data_url": "https://registry.npmjs.org/pseudomap/1.0.2" - }, - { - "type": "npm", - "namespace": null, - "name": "punycode", - "version": "1.4.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/punycode@1.4.1", - "repository_homepage_url": "https://www.npmjs.com/package/punycode", - "repository_download_url": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "api_data_url": "https://registry.npmjs.org/punycode/1.4.1" - }, - { - "type": "npm", - "namespace": null, - "name": "qs", - "version": "6.3.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/qs/-/qs-6.3.0.tgz#f403b264f23bc01228c74131b407f18d5ea5d442", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/qs@6.3.0", - "repository_homepage_url": "https://www.npmjs.com/package/qs", - "repository_download_url": "https://registry.npmjs.org/qs/-/qs-6.3.0.tgz", - "api_data_url": "https://registry.npmjs.org/qs/6.3.0" - }, - { - "type": "npm", - "namespace": null, - "name": "randomatic", - "version": "1.1.6", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.6.tgz#110dcabff397e9dcff7c0789ccc0a49adf1ec5bb", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/is-number", - "requirement": "^2.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/kind-of", - "requirement": "^3.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/randomatic@1.1.6", - "repository_homepage_url": "https://www.npmjs.com/package/randomatic", - "repository_download_url": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.6.tgz", - "api_data_url": "https://registry.npmjs.org/randomatic/1.1.6" - }, - { - "type": "npm", - "namespace": null, - "name": "rc", - "version": "1.1.6", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/rc/-/rc-1.1.6.tgz#43651b76b6ae53b5c802f1151fa3fc3b059969c9", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/deep-extend", - "requirement": "~0.4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/ini", - "requirement": "~1.3.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/minimist", - "requirement": "^1.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/strip-json-comments", - "requirement": "~1.0.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/rc@1.1.6", - "repository_homepage_url": "https://www.npmjs.com/package/rc", - "repository_download_url": "https://registry.npmjs.org/rc/-/rc-1.1.6.tgz", - "api_data_url": "https://registry.npmjs.org/rc/1.1.6" - }, - { - "type": "npm", - "namespace": null, - "name": "read-all-stream", - "version": "3.1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/read-all-stream/-/read-all-stream-3.1.0.tgz#35c3e177f2078ef789ee4bfafa4373074eaef4fa", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/pinkie-promise", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/readable-stream", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/read-all-stream@3.1.0", - "repository_homepage_url": "https://www.npmjs.com/package/read-all-stream", - "repository_download_url": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz", - "api_data_url": "https://registry.npmjs.org/read-all-stream/3.1.0" - }, - { - "type": "npm", - "namespace": null, - "name": "read-pkg-up", - "version": "1.0.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/find-up", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/read-pkg", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/read-pkg-up@1.0.1", - "repository_homepage_url": "https://www.npmjs.com/package/read-pkg-up", - "repository_download_url": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "api_data_url": "https://registry.npmjs.org/read-pkg-up/1.0.1" - }, - { - "type": "npm", - "namespace": null, - "name": "read-pkg", - "version": "1.1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/load-json-file", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/normalize-package-data", - "requirement": "^2.3.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/path-type", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/read-pkg@1.1.0", - "repository_homepage_url": "https://www.npmjs.com/package/read-pkg", - "repository_download_url": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "api_data_url": "https://registry.npmjs.org/read-pkg/1.1.0" - }, - { - "type": "npm", - "namespace": null, - "name": "readable-stream", - "version": "2.2.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.2.tgz#a9e6fec3c7dda85f8bb1b3ba7028604556fc825e", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/buffer-shims", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/core-util-is", - "requirement": "~1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/inherits", - "requirement": "~2.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/isarray", - "requirement": "~1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/process-nextick-args", - "requirement": "~1.0.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/string_decoder", - "requirement": "~0.10.x", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/util-deprecate", - "requirement": "~1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/readable-stream@2.2.2", - "repository_homepage_url": "https://www.npmjs.com/package/readable-stream", - "repository_download_url": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz", - "api_data_url": "https://registry.npmjs.org/readable-stream/2.2.2" - }, - { - "type": "npm", - "namespace": null, - "name": "readable-stream", - "version": "2.1.5", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/buffer-shims", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/core-util-is", - "requirement": "~1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/inherits", - "requirement": "~2.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/isarray", - "requirement": "~1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/process-nextick-args", - "requirement": "~1.0.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/string_decoder", - "requirement": "~0.10.x", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/util-deprecate", - "requirement": "~1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/readable-stream@2.1.5", - "repository_homepage_url": "https://www.npmjs.com/package/readable-stream", - "repository_download_url": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.5.tgz", - "api_data_url": "https://registry.npmjs.org/readable-stream/2.1.5" - }, - { - "type": "npm", - "namespace": null, - "name": "readdirp", - "version": "2.1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/graceful-fs", - "requirement": "^4.1.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/minimatch", - "requirement": "^3.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/readable-stream", - "requirement": "^2.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/set-immediate-shim", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/readdirp@2.1.0", - "repository_homepage_url": "https://www.npmjs.com/package/readdirp", - "repository_download_url": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", - "api_data_url": "https://registry.npmjs.org/readdirp/2.1.0" - }, - { - "type": "npm", - "namespace": null, - "name": "redent", - "version": "1.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/indent-string", - "requirement": "^2.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/strip-indent", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/redent@1.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/redent", - "repository_download_url": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/redent/1.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "regenerate", - "version": "1.3.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/regenerate@1.3.2", - "repository_homepage_url": "https://www.npmjs.com/package/regenerate", - "repository_download_url": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz", - "api_data_url": "https://registry.npmjs.org/regenerate/1.3.2" - }, - { - "type": "npm", - "namespace": null, - "name": "regenerator-runtime", - "version": "0.10.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.1.tgz#257f41961ce44558b18f7814af48c17559f9faeb", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/regenerator-runtime@0.10.1", - "repository_homepage_url": "https://www.npmjs.com/package/regenerator-runtime", - "repository_download_url": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.1.tgz", - "api_data_url": "https://registry.npmjs.org/regenerator-runtime/0.10.1" - }, - { - "type": "npm", - "namespace": null, - "name": "regenerator-transform", - "version": "0.9.8", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.9.8.tgz#0f88bb2bc03932ddb7b6b7312e68078f01026d6c", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/babel-runtime", - "requirement": "^6.18.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/babel-types", - "requirement": "^6.19.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/private", - "requirement": "^0.1.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/regenerator-transform@0.9.8", - "repository_homepage_url": "https://www.npmjs.com/package/regenerator-transform", - "repository_download_url": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.9.8.tgz", - "api_data_url": "https://registry.npmjs.org/regenerator-transform/0.9.8" - }, - { - "type": "npm", - "namespace": null, - "name": "regex-cache", - "version": "0.4.3", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/is-equal-shallow", - "requirement": "^0.1.3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-primitive", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/regex-cache@0.4.3", - "repository_homepage_url": "https://www.npmjs.com/package/regex-cache", - "repository_download_url": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz", - "api_data_url": "https://registry.npmjs.org/regex-cache/0.4.3" - }, - { - "type": "npm", - "namespace": null, - "name": "regexpu-core", - "version": "2.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/regenerate", - "requirement": "^1.2.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/regjsgen", - "requirement": "^0.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/regjsparser", - "requirement": "^0.1.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/regexpu-core@2.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/regexpu-core", - "repository_download_url": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/regexpu-core/2.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "registry-auth-token", - "version": "3.1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.1.0.tgz#997c08256e0c7999837b90e944db39d8a790276b", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/rc", - "requirement": "^1.1.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/registry-auth-token@3.1.0", - "repository_homepage_url": "https://www.npmjs.com/package/registry-auth-token", - "repository_download_url": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.1.0.tgz", - "api_data_url": "https://registry.npmjs.org/registry-auth-token/3.1.0" - }, - { - "type": "npm", - "namespace": null, - "name": "registry-url", - "version": "3.1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/rc", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/registry-url@3.1.0", - "repository_homepage_url": "https://www.npmjs.com/package/registry-url", - "repository_download_url": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", - "api_data_url": "https://registry.npmjs.org/registry-url/3.1.0" - }, - { - "type": "npm", - "namespace": null, - "name": "regjsgen", - "version": "0.2.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/regjsgen@0.2.0", - "repository_homepage_url": "https://www.npmjs.com/package/regjsgen", - "repository_download_url": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "api_data_url": "https://registry.npmjs.org/regjsgen/0.2.0" - }, - { - "type": "npm", - "namespace": null, - "name": "regjsparser", - "version": "0.1.5", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/jsesc", - "requirement": "~0.5.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/regjsparser@0.1.5", - "repository_homepage_url": "https://www.npmjs.com/package/regjsparser", - "repository_download_url": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "api_data_url": "https://registry.npmjs.org/regjsparser/0.1.5" - }, - { - "type": "npm", - "namespace": null, - "name": "repeat-element", - "version": "1.1.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/repeat-element@1.1.2", - "repository_homepage_url": "https://www.npmjs.com/package/repeat-element", - "repository_download_url": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "api_data_url": "https://registry.npmjs.org/repeat-element/1.1.2" - }, - { - "type": "npm", - "namespace": null, - "name": "repeat-string", - "version": "1.6.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/repeat-string@1.6.1", - "repository_homepage_url": "https://www.npmjs.com/package/repeat-string", - "repository_download_url": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "api_data_url": "https://registry.npmjs.org/repeat-string/1.6.1" - }, - { - "type": "npm", - "namespace": null, - "name": "repeating", - "version": "2.0.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/is-finite", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/repeating@2.0.1", - "repository_homepage_url": "https://www.npmjs.com/package/repeating", - "repository_download_url": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "api_data_url": "https://registry.npmjs.org/repeating/2.0.1" - }, - { - "type": "npm", - "namespace": null, - "name": "request", - "version": "2.79.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/aws-sign2", - "requirement": "~0.6.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/aws4", - "requirement": "^1.2.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/caseless", - "requirement": "~0.11.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/combined-stream", - "requirement": "~1.0.5", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/extend", - "requirement": "~3.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/forever-agent", - "requirement": "~0.6.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/form-data", - "requirement": "~2.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/har-validator", - "requirement": "~2.0.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/hawk", - "requirement": "~3.1.3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/http-signature", - "requirement": "~1.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-typedarray", - "requirement": "~1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/isstream", - "requirement": "~0.1.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/json-stringify-safe", - "requirement": "~5.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/mime-types", - "requirement": "~2.1.7", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/oauth-sign", - "requirement": "~0.8.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/qs", - "requirement": "~6.3.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/stringstream", - "requirement": "~0.0.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/tough-cookie", - "requirement": "~2.3.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/tunnel-agent", - "requirement": "~0.4.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/uuid", - "requirement": "^3.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/request@2.79.0", - "repository_homepage_url": "https://www.npmjs.com/package/request", - "repository_download_url": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", - "api_data_url": "https://registry.npmjs.org/request/2.79.0" - }, - { - "type": "npm", - "namespace": null, - "name": "require-precompiled", - "version": "0.1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/require-precompiled/-/require-precompiled-0.1.0.tgz#5a1b52eb70ebed43eb982e974c85ab59571e56fa", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/require-precompiled@0.1.0", - "repository_homepage_url": "https://www.npmjs.com/package/require-precompiled", - "repository_download_url": "https://registry.npmjs.org/require-precompiled/-/require-precompiled-0.1.0.tgz", - "api_data_url": "https://registry.npmjs.org/require-precompiled/0.1.0" - }, - { - "type": "npm", - "namespace": null, - "name": "resolve-cwd", - "version": "1.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-1.0.0.tgz#4eaeea41ed040d1702457df64a42b2b07d246f9f", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/resolve-from", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/resolve-cwd@1.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/resolve-cwd", - "repository_download_url": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-1.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/resolve-cwd/1.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "resolve-from", - "version": "2.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/resolve-from@2.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/resolve-from", - "repository_download_url": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/resolve-from/2.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "restore-cursor", - "version": "1.0.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/exit-hook", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/onetime", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/restore-cursor@1.0.1", - "repository_homepage_url": "https://www.npmjs.com/package/restore-cursor", - "repository_download_url": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", - "api_data_url": "https://registry.npmjs.org/restore-cursor/1.0.1" - }, - { - "type": "npm", - "namespace": null, - "name": "rimraf", - "version": "2.5.4", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/glob", - "requirement": "^7.0.5", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/rimraf@2.5.4", - "repository_homepage_url": "https://www.npmjs.com/package/rimraf", - "repository_download_url": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.4.tgz", - "api_data_url": "https://registry.npmjs.org/rimraf/2.5.4" - }, - { - "type": "npm", - "namespace": null, - "name": "semver-diff", - "version": "2.1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/semver", - "requirement": "^5.0.3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/semver-diff@2.1.0", - "repository_homepage_url": "https://www.npmjs.com/package/semver-diff", - "repository_download_url": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", - "api_data_url": "https://registry.npmjs.org/semver-diff/2.1.0" - }, - { - "type": "npm", - "namespace": null, - "name": "semver", - "version": "5.3.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/semver@5.3.0", - "repository_homepage_url": "https://www.npmjs.com/package/semver", - "repository_download_url": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "api_data_url": "https://registry.npmjs.org/semver/5.3.0" - }, - { - "type": "npm", - "namespace": null, - "name": "seq", - "version": "0.3.5", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/seq/-/seq-0.3.5.tgz#ae02af3a424793d8ccbf212d69174e0c54dffe38", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/seq@0.3.5", - "repository_homepage_url": "https://www.npmjs.com/package/seq", - "repository_download_url": "https://registry.npmjs.org/seq/-/seq-0.3.5.tgz", - "api_data_url": "https://registry.npmjs.org/seq/0.3.5" - }, - { - "type": "npm", - "namespace": null, - "name": "set-blocking", - "version": "2.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/set-blocking@2.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/set-blocking", - "repository_download_url": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/set-blocking/2.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "set-immediate-shim", - "version": "1.0.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/set-immediate-shim@1.0.1", - "repository_homepage_url": "https://www.npmjs.com/package/set-immediate-shim", - "repository_download_url": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "api_data_url": "https://registry.npmjs.org/set-immediate-shim/1.0.1" - }, - { - "type": "npm", - "namespace": null, - "name": "signal-exit", - "version": "3.0.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/signal-exit@3.0.2", - "repository_homepage_url": "https://www.npmjs.com/package/signal-exit", - "repository_download_url": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "api_data_url": "https://registry.npmjs.org/signal-exit/3.0.2" - }, - { - "type": "npm", - "namespace": null, - "name": "slash", - "version": "1.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/slash@1.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/slash", - "repository_download_url": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/slash/1.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "slice-ansi", - "version": "0.0.4", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/slice-ansi@0.0.4", - "repository_homepage_url": "https://www.npmjs.com/package/slice-ansi", - "repository_download_url": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", - "api_data_url": "https://registry.npmjs.org/slice-ansi/0.0.4" - }, - { - "type": "npm", - "namespace": null, - "name": "slide", - "version": "1.1.6", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/slide@1.1.6", - "repository_homepage_url": "https://www.npmjs.com/package/slide", - "repository_download_url": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "api_data_url": "https://registry.npmjs.org/slide/1.1.6" - }, - { - "type": "npm", - "namespace": null, - "name": "sntp", - "version": "1.0.9", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/hoek", - "requirement": "2.x.x", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/sntp@1.0.9", - "repository_homepage_url": "https://www.npmjs.com/package/sntp", - "repository_download_url": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "api_data_url": "https://registry.npmjs.org/sntp/1.0.9" - }, - { - "type": "npm", - "namespace": null, - "name": "sort-keys", - "version": "1.1.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/is-plain-obj", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/sort-keys@1.1.2", - "repository_homepage_url": "https://www.npmjs.com/package/sort-keys", - "repository_download_url": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "api_data_url": "https://registry.npmjs.org/sort-keys/1.1.2" - }, - { - "type": "npm", - "namespace": null, - "name": "source-map-support", - "version": "0.4.9", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.9.tgz#45eaa04f067e049d987b27599ed014a37750aaff", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/source-map", - "requirement": "^0.5.3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/source-map-support@0.4.9", - "repository_homepage_url": "https://www.npmjs.com/package/source-map-support", - "repository_download_url": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.9.tgz", - "api_data_url": "https://registry.npmjs.org/source-map-support/0.4.9" - }, - { - "type": "npm", - "namespace": null, - "name": "source-map", - "version": "0.5.6", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/source-map@0.5.6", - "repository_homepage_url": "https://www.npmjs.com/package/source-map", - "repository_download_url": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "api_data_url": "https://registry.npmjs.org/source-map/0.5.6" - }, - { - "type": "npm", - "namespace": null, - "name": "spdx-correct", - "version": "1.0.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/spdx-license-ids", - "requirement": "^1.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/spdx-correct@1.0.2", - "repository_homepage_url": "https://www.npmjs.com/package/spdx-correct", - "repository_download_url": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "api_data_url": "https://registry.npmjs.org/spdx-correct/1.0.2" - }, - { - "type": "npm", - "namespace": null, - "name": "spdx-expression-parse", - "version": "1.0.4", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/spdx-expression-parse@1.0.4", - "repository_homepage_url": "https://www.npmjs.com/package/spdx-expression-parse", - "repository_download_url": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", - "api_data_url": "https://registry.npmjs.org/spdx-expression-parse/1.0.4" - }, - { - "type": "npm", - "namespace": null, - "name": "spdx-license-ids", - "version": "1.2.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/spdx-license-ids@1.2.2", - "repository_homepage_url": "https://www.npmjs.com/package/spdx-license-ids", - "repository_download_url": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", - "api_data_url": "https://registry.npmjs.org/spdx-license-ids/1.2.2" - }, - { - "type": "npm", - "namespace": null, - "name": "sshpk", - "version": "1.10.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/sshpk/-/sshpk-1.10.2.tgz#d5a804ce22695515638e798dbe23273de070a5fa", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/asn1", - "requirement": "~0.2.3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/assert-plus", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/dashdash", - "requirement": "^1.12.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/getpass", - "requirement": "^0.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/bcrypt-pbkdf", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/ecc-jsbn", - "requirement": "~0.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/jodid25519", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/jsbn", - "requirement": "~0.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/tweetnacl", - "requirement": "~0.14.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/sshpk@1.10.2", - "repository_homepage_url": "https://www.npmjs.com/package/sshpk", - "repository_download_url": "https://registry.npmjs.org/sshpk/-/sshpk-1.10.2.tgz", - "api_data_url": "https://registry.npmjs.org/sshpk/1.10.2" - }, - { - "type": "npm", - "namespace": null, - "name": "stack-utils", - "version": "0.4.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/stack-utils/-/stack-utils-0.4.0.tgz#940cb82fccfa84e8ff2f3fdf293fe78016beccd1", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/stack-utils@0.4.0", - "repository_homepage_url": "https://www.npmjs.com/package/stack-utils", - "repository_download_url": "https://registry.npmjs.org/stack-utils/-/stack-utils-0.4.0.tgz", - "api_data_url": "https://registry.npmjs.org/stack-utils/0.4.0" - }, - { - "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": "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/code-point-at", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-fullwidth-code-point", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/strip-ansi", - "requirement": "^3.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/string-width@1.0.2", - "repository_homepage_url": "https://www.npmjs.com/package/string-width", - "repository_download_url": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "api_data_url": "https://registry.npmjs.org/string-width/1.0.2" - }, - { - "type": "npm", - "namespace": null, - "name": "string_decoder", - "version": "0.10.31", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/string_decoder@0.10.31", - "repository_homepage_url": "https://www.npmjs.com/package/string_decoder", - "repository_download_url": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "api_data_url": "https://registry.npmjs.org/string_decoder/0.10.31" - }, - { - "type": "npm", - "namespace": null, - "name": "stringifier", - "version": "1.3.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/stringifier/-/stringifier-1.3.0.tgz#def18342f6933db0f2dbfc9aa02175b448c17959", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/core-js", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/traverse", - "requirement": "^0.6.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/type-name", - "requirement": "^2.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/stringifier@1.3.0", - "repository_homepage_url": "https://www.npmjs.com/package/stringifier", - "repository_download_url": "https://registry.npmjs.org/stringifier/-/stringifier-1.3.0.tgz", - "api_data_url": "https://registry.npmjs.org/stringifier/1.3.0" - }, - { - "type": "npm", - "namespace": null, - "name": "stringstream", - "version": "0.0.5", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/stringstream@0.0.5", - "repository_homepage_url": "https://www.npmjs.com/package/stringstream", - "repository_download_url": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "api_data_url": "https://registry.npmjs.org/stringstream/0.0.5" - }, - { - "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": "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/ansi-regex", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/strip-ansi@3.0.1", - "repository_homepage_url": "https://www.npmjs.com/package/strip-ansi", - "repository_download_url": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "api_data_url": "https://registry.npmjs.org/strip-ansi/3.0.1" - }, - { - "type": "npm", - "namespace": null, - "name": "strip-ansi", - "version": "0.1.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/strip-ansi@0.1.1", - "repository_homepage_url": "https://www.npmjs.com/package/strip-ansi", - "repository_download_url": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz", - "api_data_url": "https://registry.npmjs.org/strip-ansi/0.1.1" - }, - { - "type": "npm", - "namespace": null, - "name": "strip-bom", - "version": "2.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/is-utf8", - "requirement": "^0.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/strip-bom@2.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/strip-bom", - "repository_download_url": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/strip-bom/2.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "strip-indent", - "version": "1.0.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/get-stdin", - "requirement": "^4.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/strip-indent@1.0.1", - "repository_homepage_url": "https://www.npmjs.com/package/strip-indent", - "repository_download_url": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "api_data_url": "https://registry.npmjs.org/strip-indent/1.0.1" - }, - { - "type": "npm", - "namespace": null, - "name": "strip-json-comments", - "version": "1.0.4", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/strip-json-comments@1.0.4", - "repository_homepage_url": "https://www.npmjs.com/package/strip-json-comments", - "repository_download_url": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", - "api_data_url": "https://registry.npmjs.org/strip-json-comments/1.0.4" - }, - { - "type": "npm", - "namespace": null, - "name": "supports-color", - "version": "3.1.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/has-flag", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/supports-color@3.1.2", - "repository_homepage_url": "https://www.npmjs.com/package/supports-color", - "repository_download_url": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz", - "api_data_url": "https://registry.npmjs.org/supports-color/3.1.2" - }, - { - "type": "npm", - "namespace": null, - "name": "supports-color", - "version": "0.2.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/supports-color/-/supports-color-0.2.0.tgz#d92de2694eb3f67323973d7ae3d8b55b4c22190a", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/supports-color@0.2.0", - "repository_homepage_url": "https://www.npmjs.com/package/supports-color", - "repository_download_url": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz", - "api_data_url": "https://registry.npmjs.org/supports-color/0.2.0" - }, - { - "type": "npm", - "namespace": null, - "name": "supports-color", - "version": "2.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/supports-color@2.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/supports-color", - "repository_download_url": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/supports-color/2.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "symbol-observable", - "version": "0.2.4", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-0.2.4.tgz#95a83db26186d6af7e7a18dbd9760a2f86d08f40", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/symbol-observable@0.2.4", - "repository_homepage_url": "https://www.npmjs.com/package/symbol-observable", - "repository_download_url": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-0.2.4.tgz", - "api_data_url": "https://registry.npmjs.org/symbol-observable/0.2.4" - }, - { - "type": "npm", - "namespace": null, - "name": "symbol", - "version": "0.2.3", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/symbol/-/symbol-0.2.3.tgz#3b9873b8a901e47c6efe21526a3ac372ef28bbc7", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/symbol@0.2.3", - "repository_homepage_url": "https://www.npmjs.com/package/symbol", - "repository_download_url": "https://registry.npmjs.org/symbol/-/symbol-0.2.3.tgz", - "api_data_url": "https://registry.npmjs.org/symbol/0.2.3" - }, - { - "type": "npm", - "namespace": null, - "name": "tar-pack", - "version": "3.3.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.3.0.tgz#30931816418f55afc4d21775afdd6720cee45dae", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/debug", - "requirement": "~2.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/fstream", - "requirement": "~1.0.10", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/fstream-ignore", - "requirement": "~1.0.5", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/once", - "requirement": "~1.3.3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/readable-stream", - "requirement": "~2.1.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/rimraf", - "requirement": "~2.5.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/tar", - "requirement": "~2.2.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/uid-number", - "requirement": "~0.0.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/tar-pack@3.3.0", - "repository_homepage_url": "https://www.npmjs.com/package/tar-pack", - "repository_download_url": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.3.0.tgz", - "api_data_url": "https://registry.npmjs.org/tar-pack/3.3.0" - }, - { - "type": "npm", - "namespace": null, - "name": "tar", - "version": "2.2.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/block-stream", - "requirement": "*", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/fstream", - "requirement": "^1.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/inherits", - "requirement": "2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/tar@2.2.1", - "repository_homepage_url": "https://www.npmjs.com/package/tar", - "repository_download_url": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "api_data_url": "https://registry.npmjs.org/tar/2.2.1" - }, - { - "type": "npm", - "namespace": null, - "name": "text-table", - "version": "0.2.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/text-table@0.2.0", - "repository_homepage_url": "https://www.npmjs.com/package/text-table", - "repository_download_url": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "api_data_url": "https://registry.npmjs.org/text-table/0.2.0" - }, - { - "type": "npm", - "namespace": null, - "name": "the-argv", - "version": "1.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/the-argv/-/the-argv-1.0.0.tgz#0084705005730dd84db755253c931ae398db9522", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/the-argv@1.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/the-argv", - "repository_download_url": "https://registry.npmjs.org/the-argv/-/the-argv-1.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/the-argv/1.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "through2", - "version": "2.0.3", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/readable-stream", - "requirement": "^2.1.5", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/xtend", - "requirement": "~4.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/through2@2.0.3", - "repository_homepage_url": "https://www.npmjs.com/package/through2", - "repository_download_url": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "api_data_url": "https://registry.npmjs.org/through2/2.0.3" - }, - { - "type": "npm", - "namespace": null, - "name": "time-require", - "version": "0.1.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/time-require/-/time-require-0.1.2.tgz#f9e12cb370fc2605e11404582ba54ef5ca2b2d98", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/chalk", - "requirement": "^0.4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/date-time", - "requirement": "^0.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/pretty-ms", - "requirement": "^0.2.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/text-table", - "requirement": "^0.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/time-require@0.1.2", - "repository_homepage_url": "https://www.npmjs.com/package/time-require", - "repository_download_url": "https://registry.npmjs.org/time-require/-/time-require-0.1.2.tgz", - "api_data_url": "https://registry.npmjs.org/time-require/0.1.2" - }, - { - "type": "npm", - "namespace": null, - "name": "timed-out", - "version": "3.1.3", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/timed-out/-/timed-out-3.1.3.tgz#95860bfcc5c76c277f8f8326fd0f5b2e20eba217", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/timed-out@3.1.3", - "repository_homepage_url": "https://www.npmjs.com/package/timed-out", - "repository_download_url": "https://registry.npmjs.org/timed-out/-/timed-out-3.1.3.tgz", - "api_data_url": "https://registry.npmjs.org/timed-out/3.1.3" - }, - { - "type": "npm", - "namespace": null, - "name": "to-fast-properties", - "version": "1.0.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.2.tgz#f3f5c0c3ba7299a7ef99427e44633257ade43320", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/to-fast-properties@1.0.2", - "repository_homepage_url": "https://www.npmjs.com/package/to-fast-properties", - "repository_download_url": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.2.tgz", - "api_data_url": "https://registry.npmjs.org/to-fast-properties/1.0.2" - }, - { - "type": "npm", - "namespace": null, - "name": "tough-cookie", - "version": "2.3.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/punycode", - "requirement": "^1.4.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/tough-cookie@2.3.2", - "repository_homepage_url": "https://www.npmjs.com/package/tough-cookie", - "repository_download_url": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "api_data_url": "https://registry.npmjs.org/tough-cookie/2.3.2" - }, - { - "type": "npm", - "namespace": null, - "name": "traverse", - "version": "0.6.6", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/traverse@0.6.6", - "repository_homepage_url": "https://www.npmjs.com/package/traverse", - "repository_download_url": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", - "api_data_url": "https://registry.npmjs.org/traverse/0.6.6" - }, - { - "type": "npm", - "namespace": null, - "name": "traverse", - "version": "0.3.9", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/traverse@0.3.9", - "repository_homepage_url": "https://www.npmjs.com/package/traverse", - "repository_download_url": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", - "api_data_url": "https://registry.npmjs.org/traverse/0.3.9" - }, - { - "type": "npm", - "namespace": null, - "name": "trim-newlines", - "version": "1.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/trim-newlines@1.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/trim-newlines", - "repository_download_url": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/trim-newlines/1.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "tunnel-agent", - "version": "0.4.3", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/tunnel-agent@0.4.3", - "repository_homepage_url": "https://www.npmjs.com/package/tunnel-agent", - "repository_download_url": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", - "api_data_url": "https://registry.npmjs.org/tunnel-agent/0.4.3" - }, - { - "type": "npm", - "namespace": null, - "name": "tweetnacl", - "version": "0.14.5", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/tweetnacl@0.14.5", - "repository_homepage_url": "https://www.npmjs.com/package/tweetnacl", - "repository_download_url": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "api_data_url": "https://registry.npmjs.org/tweetnacl/0.14.5" - }, - { - "type": "npm", - "namespace": null, - "name": "type-name", - "version": "2.0.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/type-name/-/type-name-2.0.2.tgz#efe7d4123d8ac52afff7f40c7e4dec5266008fb4", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/type-name@2.0.2", - "repository_homepage_url": "https://www.npmjs.com/package/type-name", - "repository_download_url": "https://registry.npmjs.org/type-name/-/type-name-2.0.2.tgz", - "api_data_url": "https://registry.npmjs.org/type-name/2.0.2" - }, - { - "type": "npm", - "namespace": null, - "name": "uid-number", - "version": "0.0.6", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/uid-number@0.0.6", - "repository_homepage_url": "https://www.npmjs.com/package/uid-number", - "repository_download_url": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", - "api_data_url": "https://registry.npmjs.org/uid-number/0.0.6" - }, - { - "type": "npm", - "namespace": null, - "name": "uid2", - "version": "0.0.3", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/uid2/-/uid2-0.0.3.tgz#483126e11774df2f71b8b639dcd799c376162b82", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/uid2@0.0.3", - "repository_homepage_url": "https://www.npmjs.com/package/uid2", - "repository_download_url": "https://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz", - "api_data_url": "https://registry.npmjs.org/uid2/0.0.3" - }, - { - "type": "npm", - "namespace": null, - "name": "unique-temp-dir", - "version": "1.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/unique-temp-dir/-/unique-temp-dir-1.0.0.tgz#6dce95b2681ca003eebfb304a415f9cbabcc5385", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/mkdirp", - "requirement": "^0.5.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/os-tmpdir", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/uid2", - "requirement": "0.0.3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/unique-temp-dir@1.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/unique-temp-dir", - "repository_download_url": "https://registry.npmjs.org/unique-temp-dir/-/unique-temp-dir-1.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/unique-temp-dir/1.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "unzip-response", - "version": "1.0.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/unzip-response/-/unzip-response-1.0.2.tgz#b984f0877fc0a89c2c773cc1ef7b5b232b5b06fe", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/unzip-response@1.0.2", - "repository_homepage_url": "https://www.npmjs.com/package/unzip-response", - "repository_download_url": "https://registry.npmjs.org/unzip-response/-/unzip-response-1.0.2.tgz", - "api_data_url": "https://registry.npmjs.org/unzip-response/1.0.2" - }, - { - "type": "npm", - "namespace": null, - "name": "update-notifier", - "version": "1.0.3", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/update-notifier/-/update-notifier-1.0.3.tgz#8f92c515482bd6831b7c93013e70f87552c7cf5a", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/boxen", - "requirement": "^0.6.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/chalk", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/configstore", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/is-npm", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/latest-version", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/lazy-req", - "requirement": "^1.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/semver-diff", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/xdg-basedir", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/update-notifier@1.0.3", - "repository_homepage_url": "https://www.npmjs.com/package/update-notifier", - "repository_download_url": "https://registry.npmjs.org/update-notifier/-/update-notifier-1.0.3.tgz", - "api_data_url": "https://registry.npmjs.org/update-notifier/1.0.3" - }, - { - "type": "npm", - "namespace": null, - "name": "url-parse-lax", - "version": "1.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/prepend-http", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/url-parse-lax@1.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/url-parse-lax", - "repository_download_url": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/url-parse-lax/1.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "urun", - "version": "0.0.6", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/urun/-/urun-0.0.6.tgz#e0fa856980367d86bf146e180bc3890320ab1d2f", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/utest", - "requirement": "0.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/urun@0.0.6", - "repository_homepage_url": "https://www.npmjs.com/package/urun", - "repository_download_url": "https://registry.npmjs.org/urun/-/urun-0.0.6.tgz", - "api_data_url": "https://registry.npmjs.org/urun/0.0.6" - }, - { - "type": "npm", - "namespace": null, - "name": "utest", - "version": "0.0.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/utest/-/utest-0.0.2.tgz#3862e2975309ea5de0940444a6c6ee0179726a16", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/utest@0.0.2", - "repository_homepage_url": "https://www.npmjs.com/package/utest", - "repository_download_url": "https://registry.npmjs.org/utest/-/utest-0.0.2.tgz", - "api_data_url": "https://registry.npmjs.org/utest/0.0.2" - }, - { - "type": "npm", - "namespace": null, - "name": "utest", - "version": "0.0.8", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/utest/-/utest-0.0.8.tgz#fc09451fe697b9008d0c432fe0db439d6cf37914", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/utest@0.0.8", - "repository_homepage_url": "https://www.npmjs.com/package/utest", - "repository_download_url": "https://registry.npmjs.org/utest/-/utest-0.0.8.tgz", - "api_data_url": "https://registry.npmjs.org/utest/0.0.8" - }, - { - "type": "npm", - "namespace": null, - "name": "util-deprecate", - "version": "1.0.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/util-deprecate@1.0.2", - "repository_homepage_url": "https://www.npmjs.com/package/util-deprecate", - "repository_download_url": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "api_data_url": "https://registry.npmjs.org/util-deprecate/1.0.2" - }, - { - "type": "npm", - "namespace": null, - "name": "uuid", - "version": "2.0.3", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/uuid@2.0.3", - "repository_homepage_url": "https://www.npmjs.com/package/uuid", - "repository_download_url": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", - "api_data_url": "https://registry.npmjs.org/uuid/2.0.3" - }, - { - "type": "npm", - "namespace": null, - "name": "uuid", - "version": "3.0.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/uuid@3.0.1", - "repository_homepage_url": "https://www.npmjs.com/package/uuid", - "repository_download_url": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", - "api_data_url": "https://registry.npmjs.org/uuid/3.0.1" - }, - { - "type": "npm", - "namespace": null, - "name": "validate-npm-package-license", - "version": "3.0.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/spdx-correct", - "requirement": "~1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/spdx-expression-parse", - "requirement": "~1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/validate-npm-package-license@3.0.1", - "repository_homepage_url": "https://www.npmjs.com/package/validate-npm-package-license", - "repository_download_url": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", - "api_data_url": "https://registry.npmjs.org/validate-npm-package-license/3.0.1" - }, - { - "type": "npm", - "namespace": null, - "name": "verror", - "version": "1.3.6", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/extsprintf", - "requirement": "1.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/verror@1.3.6", - "repository_homepage_url": "https://www.npmjs.com/package/verror", - "repository_download_url": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", - "api_data_url": "https://registry.npmjs.org/verror/1.3.6" - }, - { - "type": "npm", - "namespace": null, - "name": "which", - "version": "1.2.12", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/which/-/which-1.2.12.tgz#de67b5e450269f194909ef23ece4ebe416fa1192", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/isexe", - "requirement": "^1.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/which@1.2.12", - "repository_homepage_url": "https://www.npmjs.com/package/which", - "repository_download_url": "https://registry.npmjs.org/which/-/which-1.2.12.tgz", - "api_data_url": "https://registry.npmjs.org/which/1.2.12" - }, - { - "type": "npm", - "namespace": null, - "name": "wide-align", - "version": "1.1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.0.tgz#40edde802a71fea1f070da3e62dcda2e7add96ad", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/string-width", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/wide-align@1.1.0", - "repository_homepage_url": "https://www.npmjs.com/package/wide-align", - "repository_download_url": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.0.tgz", - "api_data_url": "https://registry.npmjs.org/wide-align/1.1.0" - }, - { - "type": "npm", - "namespace": null, - "name": "widest-line", - "version": "1.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/widest-line/-/widest-line-1.0.0.tgz#0c09c85c2a94683d0d7eaf8ee097d564bf0e105c", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/string-width", - "requirement": "^1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/widest-line@1.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/widest-line", - "repository_download_url": "https://registry.npmjs.org/widest-line/-/widest-line-1.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/widest-line/1.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "wrappy", - "version": "1.0.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/wrappy@1.0.2", - "repository_homepage_url": "https://www.npmjs.com/package/wrappy", - "repository_download_url": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "api_data_url": "https://registry.npmjs.org/wrappy/1.0.2" - }, - { - "type": "npm", - "namespace": null, - "name": "write-file-atomic", - "version": "1.3.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.1.tgz#7d45ba32316328dd1ec7d90f60ebc0d845bb759a", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/graceful-fs", - "requirement": "^4.1.11", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/imurmurhash", - "requirement": "^0.1.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/slide", - "requirement": "^1.1.5", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/write-file-atomic@1.3.1", - "repository_homepage_url": "https://www.npmjs.com/package/write-file-atomic", - "repository_download_url": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.1.tgz", - "api_data_url": "https://registry.npmjs.org/write-file-atomic/1.3.1" - }, - { - "type": "npm", - "namespace": null, - "name": "write-json-file", - "version": "1.2.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/write-json-file/-/write-json-file-1.2.0.tgz#2d5dfe96abc3c889057c93971aa4005efb548134", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/graceful-fs", - "requirement": "^4.1.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/mkdirp", - "requirement": "^0.5.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/object-assign", - "requirement": "^4.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/pify", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/pinkie-promise", - "requirement": "^2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/sort-keys", - "requirement": "^1.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - }, - { - "purl": "pkg:npm/write-file-atomic", - "requirement": "^1.1.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/write-json-file@1.2.0", - "repository_homepage_url": "https://www.npmjs.com/package/write-json-file", - "repository_download_url": "https://registry.npmjs.org/write-json-file/-/write-json-file-1.2.0.tgz", - "api_data_url": "https://registry.npmjs.org/write-json-file/1.2.0" - }, - { - "type": "npm", - "namespace": null, - "name": "write-pkg", - "version": "1.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/write-pkg/-/write-pkg-1.0.0.tgz#aeb8aa9d4d788e1d893dfb0854968b543a919f57", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/write-json-file", - "requirement": "^1.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/write-pkg@1.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/write-pkg", - "repository_download_url": "https://registry.npmjs.org/write-pkg/-/write-pkg-1.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/write-pkg/1.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "xdg-basedir", - "version": "2.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-2.0.0.tgz#edbc903cc385fc04523d966a335504b5504d1bd2", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:npm/os-homedir", - "requirement": "^1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/xdg-basedir@2.0.0", - "repository_homepage_url": "https://www.npmjs.com/package/xdg-basedir", - "repository_download_url": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-2.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/xdg-basedir/2.0.0" - }, - { - "type": "npm", - "namespace": null, - "name": "xtend", - "version": "4.0.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:npm/xtend@4.0.1", - "repository_homepage_url": "https://www.npmjs.com/package/xtend", - "repository_download_url": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "api_data_url": "https://registry.npmjs.org/xtend/4.0.1" - } + { + "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, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/abbrev@1.0.9", + "requirement": "1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/ansi-align@1.1.0", + "requirement": "^1.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/ansi-regex@2.1.1", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/ansi-styles@2.2.1", + "requirement": "^2.2.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/ansi-styles@1.0.0", + "requirement": "~1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/anymatch@1.3.0", + "requirement": "^1.3.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/aproba@1.0.4", + "requirement": "^1.0.3", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/are-we-there-yet@1.1.2", + "requirement": "~1.1.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/arr-diff@2.0.0", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/arr-exclude@1.0.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/arr-flatten@1.0.1", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/array-differ@1.0.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/array-find-index@1.0.2", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/array-union@1.0.2", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/array-uniq@1.0.3", + "requirement": "^1.0.1, ^1.0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/array-unique@0.2.1", + "requirement": "^0.2.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/arrify@1.0.1", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/asn1@0.2.3", + "requirement": "~0.2.3", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/assert-plus@0.2.0", + "requirement": "^0.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/assert-plus@1.0.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/async-each@1.0.1", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/asynckit@0.4.0", + "requirement": "^0.4.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/auto-bind@0.1.0", + "requirement": "^0.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/ava-files@0.2.0", + "requirement": "^0.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/ava-init@0.1.6", + "requirement": "^0.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/ava@0.17.0", + "requirement": "^0.17.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/aws-sign2@0.6.0", + "requirement": "~0.6.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/aws4@1.5.0", + "requirement": "^1.2.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-code-frame@6.20.0", + "requirement": "^6.16.0, ^6.20.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-core@6.21.0", + "requirement": "^6.17.0, ^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-generator@6.21.0", + "requirement": "^6.1.0, ^6.21.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-helper-bindify-decorators@6.18.0", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-helper-builder-binary-assignment-operator-visitor@6.18.0", + "requirement": "^6.8.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-helper-call-delegate@6.18.0", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-helper-define-map@6.18.0", + "requirement": "^6.18.0, ^6.8.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-helper-explode-assignable-expression@6.18.0", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-helper-explode-class@6.18.0", + "requirement": "^6.8.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-helper-function-name@6.18.0", + "requirement": "^6.18.0, ^6.8.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-helper-get-function-arity@6.18.0", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-helper-hoist-variables@6.18.0", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-helper-optimise-call-expression@6.18.0", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-helper-regex@6.18.0", + "requirement": "^6.8.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-helper-remap-async-to-generator@6.20.3", + "requirement": "^6.16.0, ^6.16.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-helper-replace-supers@6.18.0", + "requirement": "^6.18.0, ^6.8.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-helpers@6.16.0", + "requirement": "^6.16.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-messages@6.8.0", + "requirement": "^6.8.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-ava-throws-helper@0.1.0", + "requirement": "^0.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-check-es2015-constants@6.8.0", + "requirement": "^6.3.13", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-detective@2.0.0", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-espower@2.3.2", + "requirement": "^2.3.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-syntax-async-functions@6.13.0", + "requirement": "^6.8.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-syntax-async-generators@6.13.0", + "requirement": "^6.5.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-syntax-class-properties@6.13.0", + "requirement": "^6.8.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-syntax-decorators@6.13.0", + "requirement": "^6.13.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-syntax-dynamic-import@6.18.0", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-syntax-exponentiation-operator@6.13.0", + "requirement": "^6.8.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-syntax-object-rest-spread@6.13.0", + "requirement": "^6.8.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-syntax-trailing-function-commas@6.20.0", + "requirement": "^6.3.13", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-async-generator-functions@6.17.0", + "requirement": "^6.17.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-async-to-generator@6.16.0", + "requirement": "^6.16.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-class-properties@6.19.0", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-decorators@6.13.0", + "requirement": "^6.13.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-arrow-functions@6.8.0", + "requirement": "^6.3.13", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-block-scoped-functions@6.8.0", + "requirement": "^6.3.13", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-block-scoping@6.21.0", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-classes@6.18.0", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-computed-properties@6.8.0", + "requirement": "^6.3.13", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-destructuring@6.19.0", + "requirement": "^6.18.0, ^6.6.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-duplicate-keys@6.8.0", + "requirement": "^6.6.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-for-of@6.18.0", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-function-name@6.9.0", + "requirement": "^6.5.0, ^6.9.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-literals@6.8.0", + "requirement": "^6.3.13", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-modules-amd@6.18.0", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-modules-commonjs@6.18.0", + "requirement": "^6.18.0, ^6.7.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-modules-systemjs@6.19.0", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-modules-umd@6.18.0", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-object-super@6.8.0", + "requirement": "^6.3.13", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-parameters@6.21.0", + "requirement": "^6.18.0, ^6.7.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-shorthand-properties@6.18.0", + "requirement": "^6.18.0, ^6.5.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-spread@6.8.0", + "requirement": "^6.3.13, ^6.6.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-sticky-regex@6.8.0", + "requirement": "^6.3.13, ^6.5.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-template-literals@6.8.0", + "requirement": "^6.6.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-typeof-symbol@6.18.0", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-unicode-regex@6.11.0", + "requirement": "^6.3.13, ^6.5.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-exponentiation-operator@6.8.0", + "requirement": "^6.3.13", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-object-rest-spread@6.20.2", + "requirement": "^6.16.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-regenerator@6.21.0", + "requirement": "^6.16.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-runtime@6.15.0", + "requirement": "^6.15.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-strict-mode@6.18.0", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-preset-es2015-node4@2.1.1", + "requirement": "^2.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-preset-es2015@6.18.0", + "requirement": "^6.16.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-preset-stage-2@6.18.0", + "requirement": "^6.17.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-preset-stage-3@6.17.0", + "requirement": "^6.17.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-register@6.18.0", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-runtime@6.20.0", + "requirement": "^6.0.0, ^6.11.6, ^6.18.0, ^6.20.0, ^6.9.0, ^6.9.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-template@6.16.0", + "requirement": "^6.14.0, ^6.15.0, ^6.16.0, ^6.7.0, ^6.8.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-traverse@6.21.0", + "requirement": "^6.16.0, ^6.18.0, ^6.20.0, ^6.21.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-types@6.21.0", + "requirement": "^6.13.0, ^6.16.0, ^6.18.0, ^6.19.0, ^6.20.0, ^6.21.0, ^6.7.2, ^6.8.0, ^6.9.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babylon@6.15.0", + "requirement": "^6.1.0, ^6.11.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/balanced-match@0.4.2", + "requirement": "^0.4.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/bcrypt-pbkdf@1.0.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/binary-extensions@1.8.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/block-stream@0.0.9", + "requirement": "*", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/bluebird@3.4.7", + "requirement": "^3.0.0, ^3.4.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/boom@2.10.1", + "requirement": "2.x.x", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/boxen@0.6.0", + "requirement": "^0.6.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/brace-expansion@1.1.6", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/braces@1.8.5", + "requirement": "^1.8.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/browser-stdout@1.3.0", + "requirement": "1.3.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/buf-compare@1.0.1", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/buffer-shims@1.0.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/builtin-modules@1.1.1", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/caching-transform@1.0.1", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/call-matcher@1.0.1", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/call-signature@0.0.2", + "requirement": "0.0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/camelcase-keys@2.1.0", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/camelcase@2.1.1", + "requirement": "^2.0.0, ^2.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/capture-stack-trace@1.0.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/caseless@0.11.0", + "requirement": "~0.11.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/chainsaw@0.0.9", + "requirement": ">=0.0.7 <0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/chalk@0.4.0", + "requirement": "^0.4.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/chalk@1.1.3", + "requirement": "^1.0.0, ^1.1.0, ^1.1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/chokidar@1.6.1", + "requirement": "^1.4.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/ci-info@1.0.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/clean-yaml-object@0.1.0", + "requirement": "^0.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/cli-boxes@1.0.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/cli-cursor@1.0.2", + "requirement": "^1.0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/cli-spinners@0.1.2", + "requirement": "^0.1.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/cli-truncate@0.2.1", + "requirement": "^0.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/co-with-promise@4.6.0", + "requirement": "^4.6.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/code-point-at@1.1.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/combined-stream@1.0.5", + "requirement": "^1.0.5, ~1.0.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/commander@2.9.0", + "requirement": "2.9.0, ^2.9.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/common-path-prefix@1.0.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/commondir@1.0.1", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/concat-map@0.0.1", + "requirement": "0.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/configstore@2.1.0", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/console-control-strings@1.1.0", + "requirement": "^1.0.0, ~1.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/convert-source-map@1.3.0", + "requirement": "^1.1.0, ^1.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/core-assert@0.2.1", + "requirement": "^0.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/core-js@2.4.1", + "requirement": "^2.0.0, ^2.4.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/core-util-is@1.0.2", + "requirement": "~1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/create-error-class@3.0.2", + "requirement": "^3.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/cross-spawn@4.0.2", + "requirement": "^4.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/cryptiles@2.0.5", + "requirement": "2.x.x", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/currently-unhandled@0.4.1", + "requirement": "^0.4.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/dashdash@1.14.1", + "requirement": "^1.12.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/date-time@0.1.1", + "requirement": "^0.1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/debug@2.2.0", + "requirement": "2.2.0, ^2.1.1, ^2.2.0, ~2.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/decamelize@1.2.0", + "requirement": "^1.1.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/deep-equal@1.0.1", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/deep-extend@0.4.1", + "requirement": "~0.4.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/delayed-stream@1.0.0", + "requirement": "~1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/delegates@1.0.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/detect-indent@4.0.0", + "requirement": "^4.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/diff@1.4.0", + "requirement": "1.4.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/dot-prop@3.0.0", + "requirement": "^3.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/duplexer2@0.1.4", + "requirement": "^0.1.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/eastasianwidth@0.1.1", + "requirement": "^0.1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/ecc-jsbn@0.1.1", + "requirement": "~0.1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/empower-core@0.6.1", + "requirement": "^0.6.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/error-ex@1.3.0", + "requirement": "^1.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/escape-string-regexp@1.0.5", + "requirement": "1.0.5, ^1.0.2, ^1.0.4, ^1.0.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/espower-location-detector@1.0.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/espurify@1.6.0", + "requirement": "^1.6.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/estraverse@4.2.0", + "requirement": "^4.0.0, ^4.1.0, ^4.1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/esutils@2.0.2", + "requirement": "^2.0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/exit-hook@1.1.1", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/expand-brackets@0.1.5", + "requirement": "^0.1.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/expand-range@1.8.2", + "requirement": "^1.8.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/extend@3.0.0", + "requirement": "~3.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/extglob@0.3.2", + "requirement": "^0.3.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/extsprintf@1.0.2", + "requirement": "1.0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/figures@1.7.0", + "requirement": "^1.4.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/filename-regex@2.0.0", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/fill-range@2.2.3", + "requirement": "^2.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/filled-array@1.1.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/find-cache-dir@0.1.1", + "requirement": "^0.1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/find-up@1.1.2", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/findit@0.1.2", + "requirement": "^0.1.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/fn-name@2.0.1", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/for-in@0.1.6", + "requirement": "^0.1.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/for-own@0.1.4", + "requirement": "^0.1.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/forever-agent@0.6.1", + "requirement": "~0.6.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/form-data@2.1.2", + "requirement": "~2.1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/fs.realpath@1.0.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/fsevents@1.0.17", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/fstream-ignore@1.0.5", + "requirement": "~1.0.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/fstream@1.0.10", + "requirement": "^1.0.0, ^1.0.2, ~1.0.10", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/gauge@2.7.2", + "requirement": "~2.7.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/generate-function@2.0.0", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/generate-object-property@1.2.0", + "requirement": "^1.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/gently@0.8.0", + "requirement": "^0.8.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/get-port@2.1.0", + "requirement": "^2.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/get-stdin@4.0.1", + "requirement": "^4.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/getpass@0.1.6", + "requirement": "^0.1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/glob-base@0.3.0", + "requirement": "^0.3.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/glob-parent@2.0.0", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/glob@7.0.5", + "requirement": "7.0.5, ^7.0.3, ^7.0.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/globals@9.14.0", + "requirement": "^9.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/globby@6.1.0", + "requirement": "^6.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/got@5.7.1", + "requirement": "^5.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/graceful-fs@4.1.11", + "requirement": "^4.1.11, ^4.1.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/graceful-readlink@1.0.1", + "requirement": ">= 1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/growl@1.9.2", + "requirement": "1.9.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/har-validator@2.0.6", + "requirement": "~2.0.6", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/has-ansi@2.0.0", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/has-color@0.1.7", + "requirement": "~0.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/has-flag@1.0.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/has-flag@2.0.0", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/has-unicode@2.0.1", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/hashish@0.0.4", + "requirement": ">=0.0.2 <0.1, ^0.0.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/hawk@3.1.3", + "requirement": "~3.1.3", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/hoek@2.16.3", + "requirement": "2.x.x", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/home-or-tmp@2.0.0", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/hosted-git-info@2.1.5", + "requirement": "^2.1.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/http-signature@1.1.1", + "requirement": "~1.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/ignore-by-default@1.0.1", + "requirement": "^1.0.0, ^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/imurmurhash@0.1.4", + "requirement": "^0.1.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/indent-string@2.1.0", + "requirement": "^2.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/inflight@1.0.6", + "requirement": "^1.0.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/inherits@2.0.3", + "requirement": "2, ^2.0.1, ~2.0.0, ~2.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/ini@1.3.4", + "requirement": "~1.3.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/invariant@2.2.2", + "requirement": "^2.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/irregular-plurals@1.2.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-arrayish@0.2.1", + "requirement": "^0.2.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-binary-path@1.0.1", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-buffer@1.1.4", + "requirement": "^1.0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-builtin-module@1.0.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-ci@1.0.10", + "requirement": "^1.0.7", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-dotfile@1.0.2", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-equal-shallow@0.1.3", + "requirement": "^0.1.3", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-error@2.2.1", + "requirement": "^2.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-extendable@0.1.1", + "requirement": "^0.1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-extglob@1.0.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-finite@1.0.2", + "requirement": "^1.0.0, ^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-fullwidth-code-point@1.0.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-generator-fn@1.0.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-glob@2.0.1", + "requirement": "^2.0.0, ^2.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-my-json-valid@2.15.0", + "requirement": "^2.12.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-npm@1.0.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-number@2.1.0", + "requirement": "^2.0.2, ^2.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-obj@1.0.1", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-observable@0.2.0", + "requirement": "^0.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-plain-obj@1.1.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-posix-bracket@0.1.1", + "requirement": "^0.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-primitive@2.0.0", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-promise@2.1.0", + "requirement": "^2.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-property@1.0.2", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-redirect@1.0.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-retry-allowed@1.1.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-stream@1.1.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-typedarray@1.0.0", + "requirement": "~1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-url@1.2.2", + "requirement": "^1.2.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-utf8@0.2.1", + "requirement": "^0.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/isarray@1.0.0", + "requirement": "1.0.0, ~1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/isexe@1.1.2", + "requirement": "^1.1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/isobject@2.1.0", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/isstream@0.1.2", + "requirement": "~0.1.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/jodid25519@1.0.2", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/js-tokens@2.0.0", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/js-tokens@3.0.0", + "requirement": "^3.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/jsbn@0.1.0", + "requirement": "~0.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/jsesc@1.3.0", + "requirement": "^1.3.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/jsesc@0.5.0", + "requirement": "~0.5.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/json-schema@0.2.3", + "requirement": "0.2.3", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/json-stringify-safe@5.0.1", + "requirement": "~5.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/json3@3.3.2", + "requirement": "3.3.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/json5@0.5.1", + "requirement": "^0.5.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/jsonpointer@4.0.1", + "requirement": "^4.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/jsprim@1.3.1", + "requirement": "^1.2.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/kind-of@3.1.0", + "requirement": "^3.0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/last-line-stream@1.0.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/latest-version@2.0.0", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/lazy-req@1.1.0", + "requirement": "^1.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/load-json-file@1.1.0", + "requirement": "^1.0.0, ^1.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/lodash._baseassign@3.2.0", + "requirement": "^3.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/lodash._basecopy@3.0.1", + "requirement": "^3.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/lodash._basecreate@3.0.3", + "requirement": "^3.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/lodash._getnative@3.9.1", + "requirement": "^3.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/lodash._isiterateecall@3.0.9", + "requirement": "^3.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/lodash.create@3.1.1", + "requirement": "3.1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/lodash.debounce@4.0.8", + "requirement": "^4.0.3", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/lodash.difference@4.5.0", + "requirement": "^4.3.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/lodash.flatten@4.4.0", + "requirement": "^4.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/lodash.isarguments@3.1.0", + "requirement": "^3.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/lodash.isarray@3.0.4", + "requirement": "^3.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/lodash.isequal@4.5.0", + "requirement": "^4.4.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/lodash.keys@3.1.2", + "requirement": "^3.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/lodash@4.17.4", + "requirement": "^4.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/loose-envify@1.3.1", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/loud-rejection@1.6.0", + "requirement": "^1.0.0, ^1.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/lowercase-keys@1.0.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/lru-cache@4.0.2", + "requirement": "^4.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/map-obj@1.0.1", + "requirement": "^1.0.0, ^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/matcher@0.1.2", + "requirement": "^0.1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/max-timeout@1.0.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/md5-hex@1.3.0", + "requirement": "^1.2.0, ^1.3.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/md5-o-matic@0.1.1", + "requirement": "^0.1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/meow@3.7.0", + "requirement": "^3.7.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/micromatch@2.3.11", + "requirement": "^2.1.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/mime-db@1.26.0", + "requirement": "~1.26.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/mime-types@2.1.14", + "requirement": "^2.1.12, ~2.1.7", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/minimatch@3.0.3", + "requirement": "^3.0.0, ^3.0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/minimist@0.0.8", + "requirement": "0.0.8", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/minimist@1.2.0", + "requirement": "^1.1.3, ^1.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/mkdirp@0.5.1", + "requirement": "0.5.1, >=0.5 0, ^0.5.0, ^0.5.1, ~0.5.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/mocha@3.2.0", + "requirement": "^3.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/ms@0.7.1", + "requirement": "0.7.1, ^0.7.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/multimatch@2.1.0", + "requirement": "^2.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/nan@2.5.0", + "requirement": "^2.3.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/node-pre-gyp@0.6.32", + "requirement": "^0.6.29", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/node-status-codes@1.0.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/nopt@3.0.6", + "requirement": "~3.0.6", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/normalize-package-data@2.3.5", + "requirement": "^2.3.2, ^2.3.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/normalize-path@2.0.1", + "requirement": "^2.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/npmlog@4.0.2", + "requirement": "^4.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/number-is-nan@1.0.1", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/oauth-sign@0.8.2", + "requirement": "~0.8.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/object-assign@4.1.1", + "requirement": "^4.0.1, ^4.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/object.omit@2.0.1", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/observable-to-promise@0.4.0", + "requirement": "^0.4.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/once@1.4.0", + "requirement": "^1.3.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/once@1.3.3", + "requirement": "~1.3.3", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/onetime@1.1.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/option-chain@0.1.1", + "requirement": "^0.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/os-homedir@1.0.2", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/os-tmpdir@1.0.2", + "requirement": "^1.0.0, ^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/osenv@0.1.4", + "requirement": "^0.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/package-hash@1.2.0", + "requirement": "^1.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/package-json@2.4.0", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/parse-glob@3.0.4", + "requirement": "^3.0.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/parse-json@2.2.0", + "requirement": "^2.1.0, ^2.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/parse-ms@0.1.2", + "requirement": "^0.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/parse-ms@1.0.1", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/path-exists@2.1.0", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/path-is-absolute@1.0.1", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/path-type@1.1.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/pify@2.3.0", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/pinkie-promise@1.0.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/pinkie-promise@2.0.1", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/pinkie@1.0.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/pinkie@2.0.4", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/pkg-conf@1.1.3", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/pkg-dir@1.0.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/plur@1.0.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/plur@2.1.2", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/power-assert-context-formatter@1.1.1", + "requirement": "^1.0.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/power-assert-context-traversal@1.1.1", + "requirement": "^1.1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/power-assert-renderer-assertion@1.1.1", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/power-assert-renderer-base@1.1.1", + "requirement": "^1.1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/power-assert-renderer-diagram@1.1.1", + "requirement": "^1.1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/power-assert-renderer-succinct@1.1.1", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/power-assert-util-string-width@1.1.1", + "requirement": "^1.1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/prepend-http@1.0.4", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/preserve@0.2.0", + "requirement": "^0.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/pretty-ms@0.2.2", + "requirement": "^0.2.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/pretty-ms@2.1.0", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/private@0.1.6", + "requirement": "^0.1.6", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/process-nextick-args@1.0.7", + "requirement": "~1.0.6", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/pseudomap@1.0.2", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/punycode@1.4.1", + "requirement": "^1.4.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/qs@6.3.0", + "requirement": "~6.3.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/randomatic@1.1.6", + "requirement": "^1.1.3", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/rc@1.1.6", + "requirement": "^1.0.1, ^1.1.6, ~1.1.6", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/read-all-stream@3.1.0", + "requirement": "^3.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/read-pkg-up@1.0.1", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/read-pkg@1.1.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/readable-stream@2.2.2", + "requirement": "^2.0.0, ^2.0.0 || ^1.1.13, ^2.0.2, ^2.0.5, ^2.1.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/readable-stream@2.1.5", + "requirement": "~2.1.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/readdirp@2.1.0", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/redent@1.0.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/regenerate@1.3.2", + "requirement": "^1.2.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/regenerator-runtime@0.10.1", + "requirement": "^0.10.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/regenerator-transform@0.9.8", + "requirement": "0.9.8", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/regex-cache@0.4.3", + "requirement": "^0.4.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/regexpu-core@2.0.0", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/registry-auth-token@3.1.0", + "requirement": "^3.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/registry-url@3.1.0", + "requirement": "^3.0.3", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/regjsgen@0.2.0", + "requirement": "^0.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/regjsparser@0.1.5", + "requirement": "^0.1.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/repeat-element@1.1.2", + "requirement": "^1.1.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/repeat-string@1.6.1", + "requirement": "^1.5.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/repeating@2.0.1", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/request@2.79.0", + "requirement": "^2.11.4, ^2.79.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/require-precompiled@0.1.0", + "requirement": "^0.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/resolve-cwd@1.0.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/resolve-from@2.0.0", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/restore-cursor@1.0.1", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/rimraf@2.5.4", + "requirement": "2, ~2.5.1, ~2.5.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/semver-diff@2.1.0", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/semver@5.3.0", + "requirement": "2 || 3 || 4 || 5, ^5.0.3, ^5.1.0, ^5.3.0, ~5.3.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/seq@0.3.5", + "requirement": ">=0.1.7", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/set-blocking@2.0.0", + "requirement": "~2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/set-immediate-shim@1.0.1", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/signal-exit@3.0.2", + "requirement": "^3.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/slash@1.0.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/slice-ansi@0.0.4", + "requirement": "0.0.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/slide@1.1.6", + "requirement": "^1.1.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/sntp@1.0.9", + "requirement": "1.x.x", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/sort-keys@1.1.2", + "requirement": "^1.1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/source-map-support@0.4.9", + "requirement": "^0.4.0, ^0.4.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/source-map@0.5.6", + "requirement": "^0.5.0, ^0.5.3", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/spdx-correct@1.0.2", + "requirement": "~1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/spdx-expression-parse@1.0.4", + "requirement": "~1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/spdx-license-ids@1.2.2", + "requirement": "^1.0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/sshpk@1.10.2", + "requirement": "^1.7.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/stack-utils@0.4.0", + "requirement": "^0.4.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/string-width@1.0.2", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/string_decoder@0.10.31", + "requirement": "~0.10.x", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/stringifier@1.3.0", + "requirement": "^1.3.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/stringstream@0.0.5", + "requirement": "~0.0.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/strip-ansi@3.0.1", + "requirement": "^3.0.0, ^3.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/strip-ansi@0.1.1", + "requirement": "~0.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/strip-bom@2.0.0", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/strip-indent@1.0.1", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/strip-json-comments@1.0.4", + "requirement": "~1.0.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/supports-color@3.1.2", + "requirement": "3.1.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/supports-color@0.2.0", + "requirement": "^0.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/supports-color@2.0.0", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/symbol-observable@0.2.4", + "requirement": "^0.2.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/symbol@0.2.3", + "requirement": "^0.2.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/tar-pack@3.3.0", + "requirement": "~3.3.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/tar@2.2.1", + "requirement": "~2.2.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/text-table@0.2.0", + "requirement": "^0.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/the-argv@1.0.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/through2@2.0.3", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/time-require@0.1.2", + "requirement": "^0.1.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/timed-out@3.1.3", + "requirement": "^3.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/to-fast-properties@1.0.2", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/tough-cookie@2.3.2", + "requirement": "~2.3.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/traverse@0.6.6", + "requirement": ">=0.2.4, ^0.6.6", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/traverse@0.3.9", + "requirement": ">=0.3.0 <0.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/trim-newlines@1.0.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/tunnel-agent@0.4.3", + "requirement": "~0.4.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/tweetnacl@0.14.5", + "requirement": "^0.14.3, ~0.14.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/type-name@2.0.2", + "requirement": "^2.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/uid-number@0.0.6", + "requirement": "~0.0.6", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/uid2@0.0.3", + "requirement": "0.0.3", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/unique-temp-dir@1.0.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/unzip-response@1.0.2", + "requirement": "^1.0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/update-notifier@1.0.3", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/url-parse-lax@1.0.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/urun@0.0.6", + "requirement": "^0.0.6", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/utest@0.0.2", + "requirement": "0.0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/utest@0.0.8", + "requirement": "^0.0.8", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/util-deprecate@1.0.2", + "requirement": "~1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/uuid@2.0.3", + "requirement": "^2.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/uuid@3.0.1", + "requirement": "^3.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/validate-npm-package-license@3.0.1", + "requirement": "^3.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/verror@1.3.6", + "requirement": "1.3.6", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/which@1.2.12", + "requirement": "^1.2.9", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/wide-align@1.1.0", + "requirement": "^1.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/widest-line@1.0.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/wrappy@1.0.2", + "requirement": "1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/write-file-atomic@1.3.1", + "requirement": "^1.1.2, ^1.1.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/write-json-file@1.2.0", + "requirement": "^1.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/write-pkg@1.0.0", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/xdg-basedir@2.0.0", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/xtend@4.0.1", + "requirement": "^4.0.0, ~4.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/yallist@2.0.0", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": null, + "repository_homepage_url": "https://www.npmjs.com/package/None", + "repository_download_url": "https://registry.npmjs.org/None/-/None-None.tgz", + "api_data_url": "https://registry.npmjs.org/None" + }, + { + "type": "npm", + "namespace": null, + "name": "abbrev", + "version": "1.0.9", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/abbrev@1.0.9", + "repository_homepage_url": "https://www.npmjs.com/package/abbrev", + "repository_download_url": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", + "api_data_url": "https://registry.npmjs.org/abbrev/1.0.9" + }, + { + "type": "npm", + "namespace": null, + "name": "ansi-align", + "version": "1.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/ansi-align/-/ansi-align-1.1.0.tgz#2f0c1658829739add5ebb15e6b0c6e3423f016ba", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/string-width", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/ansi-align@1.1.0", + "repository_homepage_url": "https://www.npmjs.com/package/ansi-align", + "repository_download_url": "https://registry.npmjs.org/ansi-align/-/ansi-align-1.1.0.tgz", + "api_data_url": "https://registry.npmjs.org/ansi-align/1.1.0" + }, + { + "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": "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/ansi-regex@2.1.1", + "repository_homepage_url": "https://www.npmjs.com/package/ansi-regex", + "repository_download_url": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "api_data_url": "https://registry.npmjs.org/ansi-regex/2.1.1" + }, + { + "type": "npm", + "namespace": null, + "name": "ansi-styles", + "version": "2.2.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/ansi-styles@2.2.1", + "repository_homepage_url": "https://www.npmjs.com/package/ansi-styles", + "repository_download_url": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "api_data_url": "https://registry.npmjs.org/ansi-styles/2.2.1" + }, + { + "type": "npm", + "namespace": null, + "name": "ansi-styles", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/ansi-styles@1.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/ansi-styles", + "repository_download_url": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/ansi-styles/1.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "anymatch", + "version": "1.3.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.0.tgz#a3e52fa39168c825ff57b0248126ce5a8ff95507", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/arrify", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/micromatch", + "requirement": "^2.1.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/anymatch@1.3.0", + "repository_homepage_url": "https://www.npmjs.com/package/anymatch", + "repository_download_url": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz", + "api_data_url": "https://registry.npmjs.org/anymatch/1.3.0" + }, + { + "type": "npm", + "namespace": null, + "name": "aproba", + "version": "1.0.4", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/aproba/-/aproba-1.0.4.tgz#2713680775e7614c8ba186c065d4e2e52d1072c0", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/aproba@1.0.4", + "repository_homepage_url": "https://www.npmjs.com/package/aproba", + "repository_download_url": "https://registry.npmjs.org/aproba/-/aproba-1.0.4.tgz", + "api_data_url": "https://registry.npmjs.org/aproba/1.0.4" + }, + { + "type": "npm", + "namespace": null, + "name": "are-we-there-yet", + "version": "1.1.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz#80e470e95a084794fe1899262c5667c6e88de1b3", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/delegates", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/are-we-there-yet@1.1.2", + "repository_homepage_url": "https://www.npmjs.com/package/are-we-there-yet", + "repository_download_url": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz", + "api_data_url": "https://registry.npmjs.org/are-we-there-yet/1.1.2" + }, + { + "type": "npm", + "namespace": null, + "name": "arr-diff", + "version": "2.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/arr-flatten", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/arr-diff@2.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/arr-diff", + "repository_download_url": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/arr-diff/2.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "arr-exclude", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/arr-exclude/-/arr-exclude-1.0.0.tgz#dfc7c2e552a270723ccda04cf3128c8cbfe5c631", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/arr-exclude@1.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/arr-exclude", + "repository_download_url": "https://registry.npmjs.org/arr-exclude/-/arr-exclude-1.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/arr-exclude/1.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "arr-flatten", + "version": "1.0.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.1.tgz#e5ffe54d45e19f32f216e91eb99c8ce892bb604b", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/arr-flatten@1.0.1", + "repository_homepage_url": "https://www.npmjs.com/package/arr-flatten", + "repository_download_url": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.1.tgz", + "api_data_url": "https://registry.npmjs.org/arr-flatten/1.0.1" + }, + { + "type": "npm", + "namespace": null, + "name": "array-differ", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/array-differ@1.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/array-differ", + "repository_download_url": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/array-differ/1.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "array-find-index", + "version": "1.0.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/array-find-index@1.0.2", + "repository_homepage_url": "https://www.npmjs.com/package/array-find-index", + "repository_download_url": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "api_data_url": "https://registry.npmjs.org/array-find-index/1.0.2" + }, + { + "type": "npm", + "namespace": null, + "name": "array-union", + "version": "1.0.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/array-uniq", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/array-union@1.0.2", + "repository_homepage_url": "https://www.npmjs.com/package/array-union", + "repository_download_url": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "api_data_url": "https://registry.npmjs.org/array-union/1.0.2" + }, + { + "type": "npm", + "namespace": null, + "name": "array-uniq", + "version": "1.0.3", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/array-uniq@1.0.3", + "repository_homepage_url": "https://www.npmjs.com/package/array-uniq", + "repository_download_url": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "api_data_url": "https://registry.npmjs.org/array-uniq/1.0.3" + }, + { + "type": "npm", + "namespace": null, + "name": "array-unique", + "version": "0.2.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/array-unique@0.2.1", + "repository_homepage_url": "https://www.npmjs.com/package/array-unique", + "repository_download_url": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "api_data_url": "https://registry.npmjs.org/array-unique/0.2.1" + }, + { + "type": "npm", + "namespace": null, + "name": "arrify", + "version": "1.0.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/arrify@1.0.1", + "repository_homepage_url": "https://www.npmjs.com/package/arrify", + "repository_download_url": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "api_data_url": "https://registry.npmjs.org/arrify/1.0.1" + }, + { + "type": "npm", + "namespace": null, + "name": "asn1", + "version": "0.2.3", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/asn1@0.2.3", + "repository_homepage_url": "https://www.npmjs.com/package/asn1", + "repository_download_url": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "api_data_url": "https://registry.npmjs.org/asn1/0.2.3" + }, + { + "type": "npm", + "namespace": null, + "name": "assert-plus", + "version": "0.2.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/assert-plus@0.2.0", + "repository_homepage_url": "https://www.npmjs.com/package/assert-plus", + "repository_download_url": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "api_data_url": "https://registry.npmjs.org/assert-plus/0.2.0" + }, + { + "type": "npm", + "namespace": null, + "name": "assert-plus", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/assert-plus@1.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/assert-plus", + "repository_download_url": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/assert-plus/1.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "async-each", + "version": "1.0.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/async-each@1.0.1", + "repository_homepage_url": "https://www.npmjs.com/package/async-each", + "repository_download_url": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "api_data_url": "https://registry.npmjs.org/async-each/1.0.1" + }, + { + "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": "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/asynckit@0.4.0", + "repository_homepage_url": "https://www.npmjs.com/package/asynckit", + "repository_download_url": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "api_data_url": "https://registry.npmjs.org/asynckit/0.4.0" + }, + { + "type": "npm", + "namespace": null, + "name": "auto-bind", + "version": "0.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/auto-bind/-/auto-bind-0.1.0.tgz#7a29efc8c2388d3d578e02fc2df531c81ffc1ee1", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/auto-bind@0.1.0", + "repository_homepage_url": "https://www.npmjs.com/package/auto-bind", + "repository_download_url": "https://registry.npmjs.org/auto-bind/-/auto-bind-0.1.0.tgz", + "api_data_url": "https://registry.npmjs.org/auto-bind/0.1.0" + }, + { + "type": "npm", + "namespace": null, + "name": "ava-files", + "version": "0.2.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/ava-files/-/ava-files-0.2.0.tgz#c7b8b6e2e0cea63b57a6e27e0db145c7c19cfe20", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/auto-bind", + "requirement": "^0.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/bluebird", + "requirement": "^3.4.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/globby", + "requirement": "^6.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/ignore-by-default", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/lodash.flatten", + "requirement": "^4.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/multimatch", + "requirement": "^2.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/slash", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/ava-files@0.2.0", + "repository_homepage_url": "https://www.npmjs.com/package/ava-files", + "repository_download_url": "https://registry.npmjs.org/ava-files/-/ava-files-0.2.0.tgz", + "api_data_url": "https://registry.npmjs.org/ava-files/0.2.0" + }, + { + "type": "npm", + "namespace": null, + "name": "ava-init", + "version": "0.1.6", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/ava-init/-/ava-init-0.1.6.tgz#ef19ed0b24b6bf359dad6fbadf1a05d836395c91", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/arr-exclude", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/cross-spawn", + "requirement": "^4.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/pinkie-promise", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/read-pkg-up", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/the-argv", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/write-pkg", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/ava-init@0.1.6", + "repository_homepage_url": "https://www.npmjs.com/package/ava-init", + "repository_download_url": "https://registry.npmjs.org/ava-init/-/ava-init-0.1.6.tgz", + "api_data_url": "https://registry.npmjs.org/ava-init/0.1.6" + }, + { + "type": "npm", + "namespace": null, + "name": "ava", + "version": "0.17.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/ava/-/ava-0.17.0.tgz#359e2a89616801ef03929c3cf10a9d4f8e451d02", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/arr-flatten", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/array-union", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/array-uniq", + "requirement": "^1.0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/arrify", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/auto-bind", + "requirement": "^0.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/ava-files", + "requirement": "^0.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/ava-init", + "requirement": "^0.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-code-frame", + "requirement": "^6.16.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-core", + "requirement": "^6.17.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-ava-throws-helper", + "requirement": "^0.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-detective", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-espower", + "requirement": "^2.3.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-runtime", + "requirement": "^6.15.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-preset-es2015", + "requirement": "^6.16.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-preset-es2015-node4", + "requirement": "^2.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-preset-stage-2", + "requirement": "^6.17.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.11.6", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/bluebird", + "requirement": "^3.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/caching-transform", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/chalk", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/chokidar", + "requirement": "^1.4.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/clean-yaml-object", + "requirement": "^0.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/cli-cursor", + "requirement": "^1.0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/cli-spinners", + "requirement": "^0.1.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/cli-truncate", + "requirement": "^0.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/co-with-promise", + "requirement": "^4.6.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/common-path-prefix", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/convert-source-map", + "requirement": "^1.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/core-assert", + "requirement": "^0.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/currently-unhandled", + "requirement": "^0.4.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/debug", + "requirement": "^2.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/empower-core", + "requirement": "^0.6.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/figures", + "requirement": "^1.4.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/find-cache-dir", + "requirement": "^0.1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/fn-name", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/get-port", + "requirement": "^2.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/has-flag", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/ignore-by-default", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-ci", + "requirement": "^1.0.7", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-generator-fn", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-obj", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-observable", + "requirement": "^0.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-promise", + "requirement": "^2.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/last-line-stream", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/lodash.debounce", + "requirement": "^4.0.3", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/lodash.difference", + "requirement": "^4.3.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/lodash.isequal", + "requirement": "^4.4.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/loud-rejection", + "requirement": "^1.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/matcher", + "requirement": "^0.1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/max-timeout", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/md5-hex", + "requirement": "^1.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/meow", + "requirement": "^3.7.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/ms", + "requirement": "^0.7.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/object-assign", + "requirement": "^4.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/observable-to-promise", + "requirement": "^0.4.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/option-chain", + "requirement": "^0.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/package-hash", + "requirement": "^1.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/pkg-conf", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/plur", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/power-assert-context-formatter", + "requirement": "^1.0.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/power-assert-renderer-assertion", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/power-assert-renderer-succinct", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/pretty-ms", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/repeating", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/require-precompiled", + "requirement": "^0.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/resolve-cwd", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/semver", + "requirement": "^5.3.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/set-immediate-shim", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/source-map-support", + "requirement": "^0.4.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/stack-utils", + "requirement": "^0.4.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/strip-ansi", + "requirement": "^3.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/strip-bom", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/time-require", + "requirement": "^0.1.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/unique-temp-dir", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/update-notifier", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/ava@0.17.0", + "repository_homepage_url": "https://www.npmjs.com/package/ava", + "repository_download_url": "https://registry.npmjs.org/ava/-/ava-0.17.0.tgz", + "api_data_url": "https://registry.npmjs.org/ava/0.17.0" + }, + { + "type": "npm", + "namespace": null, + "name": "aws-sign2", + "version": "0.6.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/aws-sign2@0.6.0", + "repository_homepage_url": "https://www.npmjs.com/package/aws-sign2", + "repository_download_url": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "api_data_url": "https://registry.npmjs.org/aws-sign2/0.6.0" + }, + { + "type": "npm", + "namespace": null, + "name": "aws4", + "version": "1.5.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/aws4/-/aws4-1.5.0.tgz#0a29ffb79c31c9e712eeb087e8e7a64b4a56d755", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/aws4@1.5.0", + "repository_homepage_url": "https://www.npmjs.com/package/aws4", + "repository_download_url": "https://registry.npmjs.org/aws4/-/aws4-1.5.0.tgz", + "api_data_url": "https://registry.npmjs.org/aws4/1.5.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-code-frame", + "version": "6.20.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.20.0.tgz#b968f839090f9a8bc6d41938fb96cb84f7387b26", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/chalk", + "requirement": "^1.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/esutils", + "requirement": "^2.0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/js-tokens", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-code-frame@6.20.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-code-frame", + "repository_download_url": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.20.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-code-frame/6.20.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-core", + "version": "6.21.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-core/-/babel-core-6.21.0.tgz#75525480c21c803f826ef3867d22c19f080a3724", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-code-frame", + "requirement": "^6.20.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-generator", + "requirement": "^6.21.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-helpers", + "requirement": "^6.16.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-messages", + "requirement": "^6.8.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-register", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.20.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-template", + "requirement": "^6.16.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-traverse", + "requirement": "^6.21.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-types", + "requirement": "^6.21.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babylon", + "requirement": "^6.11.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/convert-source-map", + "requirement": "^1.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/debug", + "requirement": "^2.1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/json5", + "requirement": "^0.5.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/lodash", + "requirement": "^4.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/minimatch", + "requirement": "^3.0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/path-is-absolute", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/private", + "requirement": "^0.1.6", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/slash", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/source-map", + "requirement": "^0.5.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-core@6.21.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-core", + "repository_download_url": "https://registry.npmjs.org/babel-core/-/babel-core-6.21.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-core/6.21.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-generator", + "version": "6.21.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.21.0.tgz#605f1269c489a1c75deeca7ea16d43d4656c8494", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-messages", + "requirement": "^6.8.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.20.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-types", + "requirement": "^6.21.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/detect-indent", + "requirement": "^4.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/jsesc", + "requirement": "^1.3.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/lodash", + "requirement": "^4.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/source-map", + "requirement": "^0.5.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-generator@6.21.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-generator", + "repository_download_url": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.21.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-generator/6.21.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-helper-bindify-decorators", + "version": "6.18.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.18.0.tgz#fc00c573676a6e702fffa00019580892ec8780a5", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-traverse", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-types", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-helper-bindify-decorators@6.18.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-helper-bindify-decorators", + "repository_download_url": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.18.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-helper-bindify-decorators/6.18.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-helper-builder-binary-assignment-operator-visitor", + "version": "6.18.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.18.0.tgz#8ae814989f7a53682152e3401a04fabd0bb333a6", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-helper-explode-assignable-expression", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-types", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-helper-builder-binary-assignment-operator-visitor@6.18.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-helper-builder-binary-assignment-operator-visitor", + "repository_download_url": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.18.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/6.18.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-helper-call-delegate", + "version": "6.18.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.18.0.tgz#05b14aafa430884b034097ef29e9f067ea4133bd", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-helper-hoist-variables", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-traverse", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-types", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-helper-call-delegate@6.18.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-helper-call-delegate", + "repository_download_url": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.18.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-helper-call-delegate/6.18.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-helper-define-map", + "version": "6.18.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.18.0.tgz#8d6c85dc7fbb4c19be3de40474d18e97c3676ec2", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-helper-function-name", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.9.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-types", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/lodash", + "requirement": "^4.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-helper-define-map@6.18.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-helper-define-map", + "repository_download_url": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.18.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-helper-define-map/6.18.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-helper-explode-assignable-expression", + "version": "6.18.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.18.0.tgz#14b8e8c2d03ad735d4b20f1840b24cd1f65239fe", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-traverse", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-types", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-helper-explode-assignable-expression@6.18.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-helper-explode-assignable-expression", + "repository_download_url": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.18.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/6.18.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-helper-explode-class", + "version": "6.18.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-helper-explode-class/-/babel-helper-explode-class-6.18.0.tgz#c44f76f4fa23b9c5d607cbac5d4115e7a76f62cb", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-helper-bindify-decorators", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-traverse", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-types", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-helper-explode-class@6.18.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-helper-explode-class", + "repository_download_url": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.18.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-helper-explode-class/6.18.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-helper-function-name", + "version": "6.18.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.18.0.tgz#68ec71aeba1f3e28b2a6f0730190b754a9bf30e6", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-helper-get-function-arity", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-template", + "requirement": "^6.8.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-traverse", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-types", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-helper-function-name@6.18.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-helper-function-name", + "repository_download_url": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.18.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-helper-function-name/6.18.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-helper-get-function-arity", + "version": "6.18.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.18.0.tgz#a5b19695fd3f9cdfc328398b47dafcd7094f9f24", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-types", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-helper-get-function-arity@6.18.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-helper-get-function-arity", + "repository_download_url": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.18.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-helper-get-function-arity/6.18.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-helper-hoist-variables", + "version": "6.18.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.18.0.tgz#a835b5ab8b46d6de9babefae4d98ea41e866b82a", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-types", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-helper-hoist-variables@6.18.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-helper-hoist-variables", + "repository_download_url": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.18.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-helper-hoist-variables/6.18.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-helper-optimise-call-expression", + "version": "6.18.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.18.0.tgz#9261d0299ee1a4f08a6dd28b7b7c777348fd8f0f", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-types", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-helper-optimise-call-expression@6.18.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-helper-optimise-call-expression", + "repository_download_url": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.18.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-helper-optimise-call-expression/6.18.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-helper-regex", + "version": "6.18.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.18.0.tgz#ae0ebfd77de86cb2f1af258e2cc20b5fe893ecc6", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.9.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-types", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/lodash", + "requirement": "^4.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-helper-regex@6.18.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-helper-regex", + "repository_download_url": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.18.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-helper-regex/6.18.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-helper-remap-async-to-generator", + "version": "6.20.3", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.20.3.tgz#9dd3b396f13e35ef63e538098500adc24c63c4e7", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-helper-function-name", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.20.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-template", + "requirement": "^6.16.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-traverse", + "requirement": "^6.20.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-types", + "requirement": "^6.20.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-helper-remap-async-to-generator@6.20.3", + "repository_homepage_url": "https://www.npmjs.com/package/babel-helper-remap-async-to-generator", + "repository_download_url": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.20.3.tgz", + "api_data_url": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/6.20.3" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-helper-replace-supers", + "version": "6.18.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.18.0.tgz#28ec69877be4144dbd64f4cc3a337e89f29a924e", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-helper-optimise-call-expression", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-messages", + "requirement": "^6.8.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-template", + "requirement": "^6.16.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-traverse", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-types", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-helper-replace-supers@6.18.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-helper-replace-supers", + "repository_download_url": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.18.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-helper-replace-supers/6.18.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-helpers", + "version": "6.16.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.16.0.tgz#1095ec10d99279460553e67eb3eee9973d3867e3", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-template", + "requirement": "^6.16.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-helpers@6.16.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-helpers", + "repository_download_url": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.16.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-helpers/6.16.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-messages", + "version": "6.8.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.8.0.tgz#bf504736ca967e6d65ef0adb5a2a5f947c8e0eb9", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-messages@6.8.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-messages", + "repository_download_url": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.8.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-messages/6.8.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-plugin-ava-throws-helper", + "version": "0.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-plugin-ava-throws-helper/-/babel-plugin-ava-throws-helper-0.1.0.tgz#951107708a12208026bf8ca4cef18a87bc9b0cfe", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-template", + "requirement": "^6.7.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-types", + "requirement": "^6.7.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-plugin-ava-throws-helper@0.1.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-ava-throws-helper", + "repository_download_url": "https://registry.npmjs.org/babel-plugin-ava-throws-helper/-/babel-plugin-ava-throws-helper-0.1.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-plugin-ava-throws-helper/0.1.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-plugin-check-es2015-constants", + "version": "6.8.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.8.0.tgz#dbf024c32ed37bfda8dee1e76da02386a8d26fe7", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-plugin-check-es2015-constants@6.8.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-check-es2015-constants", + "repository_download_url": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.8.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/6.8.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-plugin-detective", + "version": "2.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-plugin-detective/-/babel-plugin-detective-2.0.0.tgz#6e642e83c22a335279754ebe2d754d2635f49f13", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-plugin-detective@2.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-detective", + "repository_download_url": "https://registry.npmjs.org/babel-plugin-detective/-/babel-plugin-detective-2.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-plugin-detective/2.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-plugin-espower", + "version": "2.3.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-plugin-espower/-/babel-plugin-espower-2.3.2.tgz#5516b8fcdb26c9f0e1d8160749f6e4c65e71271e", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-generator", + "requirement": "^6.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babylon", + "requirement": "^6.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/call-matcher", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/core-js", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/espower-location-detector", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/espurify", + "requirement": "^1.6.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/estraverse", + "requirement": "^4.1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-plugin-espower@2.3.2", + "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-espower", + "repository_download_url": "https://registry.npmjs.org/babel-plugin-espower/-/babel-plugin-espower-2.3.2.tgz", + "api_data_url": "https://registry.npmjs.org/babel-plugin-espower/2.3.2" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-plugin-syntax-async-functions", + "version": "6.13.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-plugin-syntax-async-functions@6.13.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-syntax-async-functions", + "repository_download_url": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/6.13.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-plugin-syntax-async-generators", + "version": "6.13.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz#6bc963ebb16eccbae6b92b596eb7f35c342a8b9a", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-plugin-syntax-async-generators@6.13.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-syntax-async-generators", + "repository_download_url": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/6.13.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-plugin-syntax-class-properties", + "version": "6.13.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-plugin-syntax-class-properties@6.13.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-syntax-class-properties", + "repository_download_url": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/6.13.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-plugin-syntax-decorators", + "version": "6.13.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz#312563b4dbde3cc806cee3e416cceeaddd11ac0b", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-plugin-syntax-decorators@6.13.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-syntax-decorators", + "repository_download_url": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-plugin-syntax-decorators/6.13.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-plugin-syntax-dynamic-import", + "version": "6.18.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-plugin-syntax-dynamic-import@6.18.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-syntax-dynamic-import", + "repository_download_url": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/6.18.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-plugin-syntax-exponentiation-operator", + "version": "6.13.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-plugin-syntax-exponentiation-operator@6.13.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-syntax-exponentiation-operator", + "repository_download_url": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/6.13.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-plugin-syntax-object-rest-spread", + "version": "6.13.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-plugin-syntax-object-rest-spread@6.13.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-syntax-object-rest-spread", + "repository_download_url": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/6.13.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-plugin-syntax-trailing-function-commas", + "version": "6.20.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.20.0.tgz#442835e19179f45b87e92d477d70b9f1f18b5c4f", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-plugin-syntax-trailing-function-commas@6.20.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-syntax-trailing-function-commas", + "repository_download_url": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.20.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/6.20.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-plugin-transform-async-generator-functions", + "version": "6.17.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.17.0.tgz#d0b5a2b2f0940f2b245fa20a00519ed7bc6cae54", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-helper-remap-async-to-generator", + "requirement": "^6.16.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-syntax-async-generators", + "requirement": "^6.5.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-plugin-transform-async-generator-functions@6.17.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-async-generator-functions", + "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.17.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/6.17.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-plugin-transform-async-to-generator", + "version": "6.16.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.16.0.tgz#19ec36cb1486b59f9f468adfa42ce13908ca2999", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-helper-remap-async-to-generator", + "requirement": "^6.16.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-syntax-async-functions", + "requirement": "^6.8.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-plugin-transform-async-to-generator@6.16.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-async-to-generator", + "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.16.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/6.16.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-plugin-transform-class-properties", + "version": "6.19.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.19.0.tgz#1274b349abaadc835164e2004f4a2444a2788d5f", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-helper-function-name", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-syntax-class-properties", + "requirement": "^6.8.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.9.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-template", + "requirement": "^6.15.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-plugin-transform-class-properties@6.19.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-class-properties", + "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.19.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-class-properties/6.19.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-plugin-transform-decorators", + "version": "6.13.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.13.0.tgz#82d65c1470ae83e2d13eebecb0a1c2476d62da9d", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-helper-define-map", + "requirement": "^6.8.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-helper-explode-class", + "requirement": "^6.8.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-syntax-decorators", + "requirement": "^6.13.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-template", + "requirement": "^6.8.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-types", + "requirement": "^6.13.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-plugin-transform-decorators@6.13.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-decorators", + "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.13.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-decorators/6.13.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-plugin-transform-es2015-arrow-functions", + "version": "6.8.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.8.0.tgz#5b63afc3181bdc9a8c4d481b5a4f3f7d7fef3d9d", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-plugin-transform-es2015-arrow-functions@6.8.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-es2015-arrow-functions", + "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.8.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/6.8.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-plugin-transform-es2015-block-scoped-functions", + "version": "6.8.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.8.0.tgz#ed95d629c4b5a71ae29682b998f70d9833eb366d", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-plugin-transform-es2015-block-scoped-functions@6.8.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-es2015-block-scoped-functions", + "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.8.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/6.8.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-plugin-transform-es2015-block-scoping", + "version": "6.21.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.21.0.tgz#e840687f922e70fb2c42bb13501838c174a115ed", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.20.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-template", + "requirement": "^6.15.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-traverse", + "requirement": "^6.21.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-types", + "requirement": "^6.21.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/lodash", + "requirement": "^4.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-plugin-transform-es2015-block-scoping@6.21.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-es2015-block-scoping", + "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.21.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/6.21.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-plugin-transform-es2015-classes", + "version": "6.18.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.18.0.tgz#ffe7a17321bf83e494dcda0ae3fc72df48ffd1d9", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-helper-define-map", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-helper-function-name", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-helper-optimise-call-expression", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-helper-replace-supers", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-messages", + "requirement": "^6.8.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.9.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-template", + "requirement": "^6.14.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-traverse", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-types", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-plugin-transform-es2015-classes@6.18.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-es2015-classes", + "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.18.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/6.18.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-plugin-transform-es2015-computed-properties", + "version": "6.8.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.8.0.tgz#f51010fd61b3bd7b6b60a5fdfd307bb7a5279870", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-helper-define-map", + "requirement": "^6.8.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-template", + "requirement": "^6.8.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-plugin-transform-es2015-computed-properties@6.8.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-es2015-computed-properties", + "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.8.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/6.8.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-plugin-transform-es2015-destructuring", + "version": "6.19.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.19.0.tgz#ff1d911c4b3f4cab621bd66702a869acd1900533", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.9.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-plugin-transform-es2015-destructuring@6.19.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-es2015-destructuring", + "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.19.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/6.19.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-plugin-transform-es2015-duplicate-keys", + "version": "6.8.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.8.0.tgz#fd8f7f7171fc108cc1c70c3164b9f15a81c25f7d", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-types", + "requirement": "^6.8.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-plugin-transform-es2015-duplicate-keys@6.8.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-es2015-duplicate-keys", + "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.8.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/6.8.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-plugin-transform-es2015-for-of", + "version": "6.18.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.18.0.tgz#4c517504db64bf8cfc119a6b8f177211f2028a70", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-plugin-transform-es2015-for-of@6.18.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-es2015-for-of", + "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.18.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/6.18.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-plugin-transform-es2015-function-name", + "version": "6.9.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.9.0.tgz#8c135b17dbd064e5bba56ec511baaee2fca82719", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-helper-function-name", + "requirement": "^6.8.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.9.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-types", + "requirement": "^6.9.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-plugin-transform-es2015-function-name@6.9.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-es2015-function-name", + "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.9.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/6.9.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-plugin-transform-es2015-literals", + "version": "6.8.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.8.0.tgz#50aa2e5c7958fc2ab25d74ec117e0cc98f046468", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-plugin-transform-es2015-literals@6.8.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-es2015-literals", + "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.8.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/6.8.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-plugin-transform-es2015-modules-amd", + "version": "6.18.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.18.0.tgz#49a054cbb762bdf9ae2d8a807076cfade6141e40", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-plugin-transform-es2015-modules-commonjs", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-template", + "requirement": "^6.8.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-plugin-transform-es2015-modules-amd@6.18.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-es2015-modules-amd", + "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.18.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/6.18.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-plugin-transform-es2015-modules-commonjs", + "version": "6.18.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.18.0.tgz#c15ae5bb11b32a0abdcc98a5837baa4ee8d67bcc", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-plugin-transform-strict-mode", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-template", + "requirement": "^6.16.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-types", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-plugin-transform-es2015-modules-commonjs@6.18.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-es2015-modules-commonjs", + "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.18.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/6.18.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-plugin-transform-es2015-modules-systemjs", + "version": "6.19.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.19.0.tgz#50438136eba74527efa00a5b0fefaf1dc4071da6", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-helper-hoist-variables", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.11.6", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-template", + "requirement": "^6.14.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-plugin-transform-es2015-modules-systemjs@6.19.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-es2015-modules-systemjs", + "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.19.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/6.19.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-plugin-transform-es2015-modules-umd", + "version": "6.18.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.18.0.tgz#23351770ece5c1f8e83ed67cb1d7992884491e50", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-plugin-transform-es2015-modules-amd", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-template", + "requirement": "^6.8.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-plugin-transform-es2015-modules-umd@6.18.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-es2015-modules-umd", + "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.18.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/6.18.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-plugin-transform-es2015-object-super", + "version": "6.8.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.8.0.tgz#1b858740a5a4400887c23dcff6f4d56eea4a24c5", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-helper-replace-supers", + "requirement": "^6.8.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-plugin-transform-es2015-object-super@6.8.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-es2015-object-super", + "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.8.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/6.8.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-plugin-transform-es2015-parameters", + "version": "6.21.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.21.0.tgz#46a655e6864ef984091448cdf024d87b60b2a7d8", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-helper-call-delegate", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-helper-get-function-arity", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.9.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-template", + "requirement": "^6.16.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-traverse", + "requirement": "^6.21.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-types", + "requirement": "^6.21.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-plugin-transform-es2015-parameters@6.21.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-es2015-parameters", + "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.21.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/6.21.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-plugin-transform-es2015-shorthand-properties", + "version": "6.18.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.18.0.tgz#e2ede3b7df47bf980151926534d1dd0cbea58f43", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-types", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-plugin-transform-es2015-shorthand-properties@6.18.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-es2015-shorthand-properties", + "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.18.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/6.18.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-plugin-transform-es2015-spread", + "version": "6.8.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.8.0.tgz#0217f737e3b821fa5a669f187c6ed59205f05e9c", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-plugin-transform-es2015-spread@6.8.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-es2015-spread", + "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.8.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/6.8.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-plugin-transform-es2015-sticky-regex", + "version": "6.8.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.8.0.tgz#e73d300a440a35d5c64f5c2a344dc236e3df47be", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-helper-regex", + "requirement": "^6.8.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-types", + "requirement": "^6.8.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-plugin-transform-es2015-sticky-regex@6.8.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-es2015-sticky-regex", + "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.8.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/6.8.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-plugin-transform-es2015-template-literals", + "version": "6.8.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.8.0.tgz#86eb876d0a2c635da4ec048b4f7de9dfc897e66b", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-plugin-transform-es2015-template-literals@6.8.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-es2015-template-literals", + "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.8.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/6.8.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-plugin-transform-es2015-typeof-symbol", + "version": "6.18.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.18.0.tgz#0b14c48629c90ff47a0650077f6aa699bee35798", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-plugin-transform-es2015-typeof-symbol@6.18.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-es2015-typeof-symbol", + "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.18.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/6.18.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-plugin-transform-es2015-unicode-regex", + "version": "6.11.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.11.0.tgz#6298ceabaad88d50a3f4f392d8de997260f6ef2c", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-helper-regex", + "requirement": "^6.8.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/regexpu-core", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-plugin-transform-es2015-unicode-regex@6.11.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-es2015-unicode-regex", + "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.11.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/6.11.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-plugin-transform-exponentiation-operator", + "version": "6.8.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.8.0.tgz#db25742e9339eade676ca9acec46f955599a68a4", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-helper-builder-binary-assignment-operator-visitor", + "requirement": "^6.8.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-syntax-exponentiation-operator", + "requirement": "^6.8.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-plugin-transform-exponentiation-operator@6.8.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-exponentiation-operator", + "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.8.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/6.8.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-plugin-transform-object-rest-spread", + "version": "6.20.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.20.2.tgz#e816c55bba77b14c16365d87e2ae48c8fd18fc2e", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-plugin-syntax-object-rest-spread", + "requirement": "^6.8.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.20.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-plugin-transform-object-rest-spread@6.20.2", + "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-object-rest-spread", + "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.20.2.tgz", + "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/6.20.2" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-plugin-transform-regenerator", + "version": "6.21.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.21.0.tgz#75d0c7e7f84f379358f508451c68a2c5fa5a9703", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/regenerator-transform", + "requirement": "0.9.8", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-plugin-transform-regenerator@6.21.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-regenerator", + "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.21.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-regenerator/6.21.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-plugin-transform-runtime", + "version": "6.15.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.15.0.tgz#3d75b4d949ad81af157570273846fb59aeb0d57c", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.9.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-plugin-transform-runtime@6.15.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-runtime", + "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.15.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-runtime/6.15.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-plugin-transform-strict-mode", + "version": "6.18.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.18.0.tgz#df7cf2991fe046f44163dcd110d5ca43bc652b9d", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-types", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-plugin-transform-strict-mode@6.18.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-plugin-transform-strict-mode", + "repository_download_url": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.18.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/6.18.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-preset-es2015-node4", + "version": "2.1.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-preset-es2015-node4/-/babel-preset-es2015-node4-2.1.1.tgz#e31f290859b58619c8cfa241d1b0bc900f941cdb", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-plugin-transform-es2015-destructuring", + "requirement": "^6.6.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-function-name", + "requirement": "^6.5.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-modules-commonjs", + "requirement": "^6.7.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-parameters", + "requirement": "^6.7.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-shorthand-properties", + "requirement": "^6.5.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-spread", + "requirement": "^6.6.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-sticky-regex", + "requirement": "^6.5.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-unicode-regex", + "requirement": "^6.5.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-preset-es2015-node4@2.1.1", + "repository_homepage_url": "https://www.npmjs.com/package/babel-preset-es2015-node4", + "repository_download_url": "https://registry.npmjs.org/babel-preset-es2015-node4/-/babel-preset-es2015-node4-2.1.1.tgz", + "api_data_url": "https://registry.npmjs.org/babel-preset-es2015-node4/2.1.1" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-preset-es2015", + "version": "6.18.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.18.0.tgz#b8c70df84ec948c43dcf2bf770e988eb7da88312", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-plugin-check-es2015-constants", + "requirement": "^6.3.13", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-arrow-functions", + "requirement": "^6.3.13", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-block-scoped-functions", + "requirement": "^6.3.13", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-block-scoping", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-classes", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-computed-properties", + "requirement": "^6.3.13", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-destructuring", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-duplicate-keys", + "requirement": "^6.6.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-for-of", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-function-name", + "requirement": "^6.9.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-literals", + "requirement": "^6.3.13", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-modules-amd", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-modules-commonjs", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-modules-systemjs", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-modules-umd", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-object-super", + "requirement": "^6.3.13", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-parameters", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-shorthand-properties", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-spread", + "requirement": "^6.3.13", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-sticky-regex", + "requirement": "^6.3.13", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-template-literals", + "requirement": "^6.6.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-typeof-symbol", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-es2015-unicode-regex", + "requirement": "^6.3.13", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-regenerator", + "requirement": "^6.16.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-preset-es2015@6.18.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-preset-es2015", + "repository_download_url": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.18.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-preset-es2015/6.18.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-preset-stage-2", + "version": "6.18.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-preset-stage-2/-/babel-preset-stage-2-6.18.0.tgz#9eb7bf9a8e91c68260d5ba7500493caaada4b5b5", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-plugin-syntax-dynamic-import", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-class-properties", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-decorators", + "requirement": "^6.13.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-preset-stage-3", + "requirement": "^6.17.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-preset-stage-2@6.18.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-preset-stage-2", + "repository_download_url": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.18.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-preset-stage-2/6.18.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-preset-stage-3", + "version": "6.17.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-preset-stage-3/-/babel-preset-stage-3-6.17.0.tgz#b6638e46db6e91e3f889013d8ce143917c685e39", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-plugin-syntax-trailing-function-commas", + "requirement": "^6.3.13", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-async-generator-functions", + "requirement": "^6.17.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-async-to-generator", + "requirement": "^6.16.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-exponentiation-operator", + "requirement": "^6.3.13", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-plugin-transform-object-rest-spread", + "requirement": "^6.16.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-preset-stage-3@6.17.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-preset-stage-3", + "repository_download_url": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.17.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-preset-stage-3/6.17.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-register", + "version": "6.18.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-register/-/babel-register-6.18.0.tgz#892e2e03865078dd90ad2c715111ec4449b32a68", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-core", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.11.6", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/core-js", + "requirement": "^2.4.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/home-or-tmp", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/lodash", + "requirement": "^4.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/mkdirp", + "requirement": "^0.5.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/source-map-support", + "requirement": "^0.4.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-register@6.18.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-register", + "repository_download_url": "https://registry.npmjs.org/babel-register/-/babel-register-6.18.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-register/6.18.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-runtime", + "version": "6.20.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.20.0.tgz#87300bdcf4cd770f09bf0048c64204e17806d16f", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/core-js", + "requirement": "^2.4.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/regenerator-runtime", + "requirement": "^0.10.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-runtime@6.20.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-runtime", + "repository_download_url": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.20.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-runtime/6.20.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-template", + "version": "6.16.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-template/-/babel-template-6.16.0.tgz#e149dd1a9f03a35f817ddbc4d0481988e7ebc8ca", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.9.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-traverse", + "requirement": "^6.16.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-types", + "requirement": "^6.16.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babylon", + "requirement": "^6.11.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/lodash", + "requirement": "^4.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-template@6.16.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-template", + "repository_download_url": "https://registry.npmjs.org/babel-template/-/babel-template-6.16.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-template/6.16.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-traverse", + "version": "6.21.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.21.0.tgz#69c6365804f1a4f69eb1213f85b00a818b8c21ad", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-code-frame", + "requirement": "^6.20.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-messages", + "requirement": "^6.8.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.20.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-types", + "requirement": "^6.21.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babylon", + "requirement": "^6.11.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/debug", + "requirement": "^2.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/globals", + "requirement": "^9.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/invariant", + "requirement": "^2.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/lodash", + "requirement": "^4.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-traverse@6.21.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-traverse", + "repository_download_url": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.21.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-traverse/6.21.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babel-types", + "version": "6.21.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babel-types/-/babel-types-6.21.0.tgz#314b92168891ef6d3806b7f7a917fdf87c11a4b2", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.20.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/esutils", + "requirement": "^2.0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/lodash", + "requirement": "^4.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/to-fast-properties", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babel-types@6.21.0", + "repository_homepage_url": "https://www.npmjs.com/package/babel-types", + "repository_download_url": "https://registry.npmjs.org/babel-types/-/babel-types-6.21.0.tgz", + "api_data_url": "https://registry.npmjs.org/babel-types/6.21.0" + }, + { + "type": "npm", + "namespace": null, + "name": "babylon", + "version": "6.15.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/babylon/-/babylon-6.15.0.tgz#ba65cfa1a80e1759b0e89fb562e27dccae70348e", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/babylon@6.15.0", + "repository_homepage_url": "https://www.npmjs.com/package/babylon", + "repository_download_url": "https://registry.npmjs.org/babylon/-/babylon-6.15.0.tgz", + "api_data_url": "https://registry.npmjs.org/babylon/6.15.0" + }, + { + "type": "npm", + "namespace": null, + "name": "balanced-match", + "version": "0.4.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/balanced-match@0.4.2", + "repository_homepage_url": "https://www.npmjs.com/package/balanced-match", + "repository_download_url": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "api_data_url": "https://registry.npmjs.org/balanced-match/0.4.2" + }, + { + "type": "npm", + "namespace": null, + "name": "bcrypt-pbkdf", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.0.tgz#3ca76b85241c7170bf7d9703e7b9aa74630040d4", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/tweetnacl", + "requirement": "^0.14.3", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/bcrypt-pbkdf@1.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/bcrypt-pbkdf", + "repository_download_url": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/bcrypt-pbkdf/1.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "binary-extensions", + "version": "1.8.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/binary-extensions@1.8.0", + "repository_homepage_url": "https://www.npmjs.com/package/binary-extensions", + "repository_download_url": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.8.0.tgz", + "api_data_url": "https://registry.npmjs.org/binary-extensions/1.8.0" + }, + { + "type": "npm", + "namespace": null, + "name": "block-stream", + "version": "0.0.9", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/inherits", + "requirement": "~2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/block-stream@0.0.9", + "repository_homepage_url": "https://www.npmjs.com/package/block-stream", + "repository_download_url": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "api_data_url": "https://registry.npmjs.org/block-stream/0.0.9" + }, + { + "type": "npm", + "namespace": null, + "name": "bluebird", + "version": "3.4.7", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.7.tgz#f72d760be09b7f76d08ed8fae98b289a8d05fab3", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/bluebird@3.4.7", + "repository_homepage_url": "https://www.npmjs.com/package/bluebird", + "repository_download_url": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", + "api_data_url": "https://registry.npmjs.org/bluebird/3.4.7" + }, + { + "type": "npm", + "namespace": null, + "name": "boom", + "version": "2.10.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/hoek", + "requirement": "2.x.x", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/boom@2.10.1", + "repository_homepage_url": "https://www.npmjs.com/package/boom", + "repository_download_url": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "api_data_url": "https://registry.npmjs.org/boom/2.10.1" + }, + { + "type": "npm", + "namespace": null, + "name": "boxen", + "version": "0.6.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/boxen/-/boxen-0.6.0.tgz#8364d4248ac34ff0ef1b2f2bf49a6c60ce0d81b6", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/ansi-align", + "requirement": "^1.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/camelcase", + "requirement": "^2.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/chalk", + "requirement": "^1.1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/cli-boxes", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/filled-array", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/object-assign", + "requirement": "^4.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/repeating", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/string-width", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/widest-line", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/boxen@0.6.0", + "repository_homepage_url": "https://www.npmjs.com/package/boxen", + "repository_download_url": "https://registry.npmjs.org/boxen/-/boxen-0.6.0.tgz", + "api_data_url": "https://registry.npmjs.org/boxen/0.6.0" + }, + { + "type": "npm", + "namespace": null, + "name": "brace-expansion", + "version": "1.1.6", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.6.tgz#7197d7eaa9b87e648390ea61fc66c84427420df9", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/balanced-match", + "requirement": "^0.4.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/concat-map", + "requirement": "0.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/brace-expansion@1.1.6", + "repository_homepage_url": "https://www.npmjs.com/package/brace-expansion", + "repository_download_url": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz", + "api_data_url": "https://registry.npmjs.org/brace-expansion/1.1.6" + }, + { + "type": "npm", + "namespace": null, + "name": "braces", + "version": "1.8.5", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/expand-range", + "requirement": "^1.8.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/preserve", + "requirement": "^0.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/repeat-element", + "requirement": "^1.1.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/braces@1.8.5", + "repository_homepage_url": "https://www.npmjs.com/package/braces", + "repository_download_url": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "api_data_url": "https://registry.npmjs.org/braces/1.8.5" + }, + { + "type": "npm", + "namespace": null, + "name": "browser-stdout", + "version": "1.3.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/browser-stdout@1.3.0", + "repository_homepage_url": "https://www.npmjs.com/package/browser-stdout", + "repository_download_url": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz", + "api_data_url": "https://registry.npmjs.org/browser-stdout/1.3.0" + }, + { + "type": "npm", + "namespace": null, + "name": "buf-compare", + "version": "1.0.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/buf-compare/-/buf-compare-1.0.1.tgz#fef28da8b8113a0a0db4430b0b6467b69730b34a", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/buf-compare@1.0.1", + "repository_homepage_url": "https://www.npmjs.com/package/buf-compare", + "repository_download_url": "https://registry.npmjs.org/buf-compare/-/buf-compare-1.0.1.tgz", + "api_data_url": "https://registry.npmjs.org/buf-compare/1.0.1" + }, + { + "type": "npm", + "namespace": null, + "name": "buffer-shims", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/buffer-shims@1.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/buffer-shims", + "repository_download_url": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/buffer-shims/1.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "builtin-modules", + "version": "1.1.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/builtin-modules@1.1.1", + "repository_homepage_url": "https://www.npmjs.com/package/builtin-modules", + "repository_download_url": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "api_data_url": "https://registry.npmjs.org/builtin-modules/1.1.1" + }, + { + "type": "npm", + "namespace": null, + "name": "caching-transform", + "version": "1.0.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/caching-transform/-/caching-transform-1.0.1.tgz#6dbdb2f20f8d8fbce79f3e94e9d1742dcdf5c0a1", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/md5-hex", + "requirement": "^1.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/mkdirp", + "requirement": "^0.5.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/write-file-atomic", + "requirement": "^1.1.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/caching-transform@1.0.1", + "repository_homepage_url": "https://www.npmjs.com/package/caching-transform", + "repository_download_url": "https://registry.npmjs.org/caching-transform/-/caching-transform-1.0.1.tgz", + "api_data_url": "https://registry.npmjs.org/caching-transform/1.0.1" + }, + { + "type": "npm", + "namespace": null, + "name": "call-matcher", + "version": "1.0.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/call-matcher/-/call-matcher-1.0.1.tgz#5134d077984f712a54dad3cbf62de28dce416ca8", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/core-js", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/deep-equal", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/espurify", + "requirement": "^1.6.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/estraverse", + "requirement": "^4.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/call-matcher@1.0.1", + "repository_homepage_url": "https://www.npmjs.com/package/call-matcher", + "repository_download_url": "https://registry.npmjs.org/call-matcher/-/call-matcher-1.0.1.tgz", + "api_data_url": "https://registry.npmjs.org/call-matcher/1.0.1" + }, + { + "type": "npm", + "namespace": null, + "name": "call-signature", + "version": "0.0.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/call-signature/-/call-signature-0.0.2.tgz#a84abc825a55ef4cb2b028bd74e205a65b9a4996", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/call-signature@0.0.2", + "repository_homepage_url": "https://www.npmjs.com/package/call-signature", + "repository_download_url": "https://registry.npmjs.org/call-signature/-/call-signature-0.0.2.tgz", + "api_data_url": "https://registry.npmjs.org/call-signature/0.0.2" + }, + { + "type": "npm", + "namespace": null, + "name": "camelcase-keys", + "version": "2.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/camelcase", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/map-obj", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/camelcase-keys@2.1.0", + "repository_homepage_url": "https://www.npmjs.com/package/camelcase-keys", + "repository_download_url": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "api_data_url": "https://registry.npmjs.org/camelcase-keys/2.1.0" + }, + { + "type": "npm", + "namespace": null, + "name": "camelcase", + "version": "2.1.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/camelcase@2.1.1", + "repository_homepage_url": "https://www.npmjs.com/package/camelcase", + "repository_download_url": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "api_data_url": "https://registry.npmjs.org/camelcase/2.1.1" + }, + { + "type": "npm", + "namespace": null, + "name": "capture-stack-trace", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/capture-stack-trace@1.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/capture-stack-trace", + "repository_download_url": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/capture-stack-trace/1.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "caseless", + "version": "0.11.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/caseless@0.11.0", + "repository_homepage_url": "https://www.npmjs.com/package/caseless", + "repository_download_url": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", + "api_data_url": "https://registry.npmjs.org/caseless/0.11.0" + }, + { + "type": "npm", + "namespace": null, + "name": "chainsaw", + "version": "0.0.9", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/chainsaw/-/chainsaw-0.0.9.tgz#11a05102d1c4c785b6d0415d336d5a3a1612913e", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/chainsaw@0.0.9", + "repository_homepage_url": "https://www.npmjs.com/package/chainsaw", + "repository_download_url": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.0.9.tgz", + "api_data_url": "https://registry.npmjs.org/chainsaw/0.0.9" + }, + { + "type": "npm", + "namespace": null, + "name": "chalk", + "version": "0.4.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/ansi-styles", + "requirement": "~1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/has-color", + "requirement": "~0.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/strip-ansi", + "requirement": "~0.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/chalk@0.4.0", + "repository_homepage_url": "https://www.npmjs.com/package/chalk", + "repository_download_url": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz", + "api_data_url": "https://registry.npmjs.org/chalk/0.4.0" + }, + { + "type": "npm", + "namespace": null, + "name": "chalk", + "version": "1.1.3", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/ansi-styles", + "requirement": "^2.2.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/escape-string-regexp", + "requirement": "^1.0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/has-ansi", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/strip-ansi", + "requirement": "^3.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/supports-color", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/chalk@1.1.3", + "repository_homepage_url": "https://www.npmjs.com/package/chalk", + "repository_download_url": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "api_data_url": "https://registry.npmjs.org/chalk/1.1.3" + }, + { + "type": "npm", + "namespace": null, + "name": "chokidar", + "version": "1.6.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/chokidar/-/chokidar-1.6.1.tgz#2f4447ab5e96e50fb3d789fd90d4c72e0e4c70c2", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/anymatch", + "requirement": "^1.3.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/async-each", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/glob-parent", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/inherits", + "requirement": "^2.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-binary-path", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-glob", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/path-is-absolute", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/readdirp", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/fsevents", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/chokidar@1.6.1", + "repository_homepage_url": "https://www.npmjs.com/package/chokidar", + "repository_download_url": "https://registry.npmjs.org/chokidar/-/chokidar-1.6.1.tgz", + "api_data_url": "https://registry.npmjs.org/chokidar/1.6.1" + }, + { + "type": "npm", + "namespace": null, + "name": "ci-info", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/ci-info/-/ci-info-1.0.0.tgz#dc5285f2b4e251821683681c381c3388f46ec534", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/ci-info@1.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/ci-info", + "repository_download_url": "https://registry.npmjs.org/ci-info/-/ci-info-1.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/ci-info/1.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "clean-yaml-object", + "version": "0.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/clean-yaml-object/-/clean-yaml-object-0.1.0.tgz#63fb110dc2ce1a84dc21f6d9334876d010ae8b68", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/clean-yaml-object@0.1.0", + "repository_homepage_url": "https://www.npmjs.com/package/clean-yaml-object", + "repository_download_url": "https://registry.npmjs.org/clean-yaml-object/-/clean-yaml-object-0.1.0.tgz", + "api_data_url": "https://registry.npmjs.org/clean-yaml-object/0.1.0" + }, + { + "type": "npm", + "namespace": null, + "name": "cli-boxes", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/cli-boxes@1.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/cli-boxes", + "repository_download_url": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/cli-boxes/1.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "cli-cursor", + "version": "1.0.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/restore-cursor", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/cli-cursor@1.0.2", + "repository_homepage_url": "https://www.npmjs.com/package/cli-cursor", + "repository_download_url": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "api_data_url": "https://registry.npmjs.org/cli-cursor/1.0.2" + }, + { + "type": "npm", + "namespace": null, + "name": "cli-spinners", + "version": "0.1.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-0.1.2.tgz#bb764d88e185fb9e1e6a2a1f19772318f605e31c", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/cli-spinners@0.1.2", + "repository_homepage_url": "https://www.npmjs.com/package/cli-spinners", + "repository_download_url": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-0.1.2.tgz", + "api_data_url": "https://registry.npmjs.org/cli-spinners/0.1.2" + }, + { + "type": "npm", + "namespace": null, + "name": "cli-truncate", + "version": "0.2.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/slice-ansi", + "requirement": "0.0.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/string-width", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/cli-truncate@0.2.1", + "repository_homepage_url": "https://www.npmjs.com/package/cli-truncate", + "repository_download_url": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", + "api_data_url": "https://registry.npmjs.org/cli-truncate/0.2.1" + }, + { + "type": "npm", + "namespace": null, + "name": "co-with-promise", + "version": "4.6.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/co-with-promise/-/co-with-promise-4.6.0.tgz#413e7db6f5893a60b942cf492c4bec93db415ab7", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/pinkie-promise", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/co-with-promise@4.6.0", + "repository_homepage_url": "https://www.npmjs.com/package/co-with-promise", + "repository_download_url": "https://registry.npmjs.org/co-with-promise/-/co-with-promise-4.6.0.tgz", + "api_data_url": "https://registry.npmjs.org/co-with-promise/4.6.0" + }, + { + "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": "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/code-point-at@1.1.0", + "repository_homepage_url": "https://www.npmjs.com/package/code-point-at", + "repository_download_url": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "api_data_url": "https://registry.npmjs.org/code-point-at/1.1.0" + }, + { + "type": "npm", + "namespace": null, + "name": "combined-stream", + "version": "1.0.5", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/delayed-stream", + "requirement": "~1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/combined-stream@1.0.5", + "repository_homepage_url": "https://www.npmjs.com/package/combined-stream", + "repository_download_url": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "api_data_url": "https://registry.npmjs.org/combined-stream/1.0.5" + }, + { + "type": "npm", + "namespace": null, + "name": "commander", + "version": "2.9.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/commander@2.9.0", + "repository_homepage_url": "https://www.npmjs.com/package/commander", + "repository_download_url": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "api_data_url": "https://registry.npmjs.org/commander/2.9.0" + }, + { + "type": "npm", + "namespace": null, + "name": "common-path-prefix", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-1.0.0.tgz#cd52f6f0712e0baab97d6f9732874f22f47752c0", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/common-path-prefix@1.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/common-path-prefix", + "repository_download_url": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-1.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/common-path-prefix/1.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "commondir", + "version": "1.0.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/commondir@1.0.1", + "repository_homepage_url": "https://www.npmjs.com/package/commondir", + "repository_download_url": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "api_data_url": "https://registry.npmjs.org/commondir/1.0.1" + }, + { + "type": "npm", + "namespace": null, + "name": "concat-map", + "version": "0.0.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/concat-map@0.0.1", + "repository_homepage_url": "https://www.npmjs.com/package/concat-map", + "repository_download_url": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "api_data_url": "https://registry.npmjs.org/concat-map/0.0.1" + }, + { + "type": "npm", + "namespace": null, + "name": "configstore", + "version": "2.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/configstore/-/configstore-2.1.0.tgz#737a3a7036e9886102aa6099e47bb33ab1aba1a1", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/dot-prop", + "requirement": "^3.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/graceful-fs", + "requirement": "^4.1.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/mkdirp", + "requirement": "^0.5.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/object-assign", + "requirement": "^4.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/os-tmpdir", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/osenv", + "requirement": "^0.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/uuid", + "requirement": "^2.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/write-file-atomic", + "requirement": "^1.1.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/xdg-basedir", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/configstore@2.1.0", + "repository_homepage_url": "https://www.npmjs.com/package/configstore", + "repository_download_url": "https://registry.npmjs.org/configstore/-/configstore-2.1.0.tgz", + "api_data_url": "https://registry.npmjs.org/configstore/2.1.0" + }, + { + "type": "npm", + "namespace": null, + "name": "console-control-strings", + "version": "1.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/console-control-strings@1.1.0", + "repository_homepage_url": "https://www.npmjs.com/package/console-control-strings", + "repository_download_url": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "api_data_url": "https://registry.npmjs.org/console-control-strings/1.1.0" + }, + { + "type": "npm", + "namespace": null, + "name": "convert-source-map", + "version": "1.3.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.3.0.tgz#e9f3e9c6e2728efc2676696a70eb382f73106a67", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/convert-source-map@1.3.0", + "repository_homepage_url": "https://www.npmjs.com/package/convert-source-map", + "repository_download_url": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.3.0.tgz", + "api_data_url": "https://registry.npmjs.org/convert-source-map/1.3.0" + }, + { + "type": "npm", + "namespace": null, + "name": "core-assert", + "version": "0.2.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/core-assert/-/core-assert-0.2.1.tgz#f85e2cf9bfed28f773cc8b3fa5c5b69bdc02fe3f", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/buf-compare", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-error", + "requirement": "^2.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/core-assert@0.2.1", + "repository_homepage_url": "https://www.npmjs.com/package/core-assert", + "repository_download_url": "https://registry.npmjs.org/core-assert/-/core-assert-0.2.1.tgz", + "api_data_url": "https://registry.npmjs.org/core-assert/0.2.1" + }, + { + "type": "npm", + "namespace": null, + "name": "core-js", + "version": "2.4.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/core-js@2.4.1", + "repository_homepage_url": "https://www.npmjs.com/package/core-js", + "repository_download_url": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", + "api_data_url": "https://registry.npmjs.org/core-js/2.4.1" + }, + { + "type": "npm", + "namespace": null, + "name": "core-util-is", + "version": "1.0.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/core-util-is@1.0.2", + "repository_homepage_url": "https://www.npmjs.com/package/core-util-is", + "repository_download_url": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "api_data_url": "https://registry.npmjs.org/core-util-is/1.0.2" + }, + { + "type": "npm", + "namespace": null, + "name": "create-error-class", + "version": "3.0.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/capture-stack-trace", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/create-error-class@3.0.2", + "repository_homepage_url": "https://www.npmjs.com/package/create-error-class", + "repository_download_url": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", + "api_data_url": "https://registry.npmjs.org/create-error-class/3.0.2" + }, + { + "type": "npm", + "namespace": null, + "name": "cross-spawn", + "version": "4.0.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/lru-cache", + "requirement": "^4.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/which", + "requirement": "^1.2.9", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/cross-spawn@4.0.2", + "repository_homepage_url": "https://www.npmjs.com/package/cross-spawn", + "repository_download_url": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", + "api_data_url": "https://registry.npmjs.org/cross-spawn/4.0.2" + }, + { + "type": "npm", + "namespace": null, + "name": "cryptiles", + "version": "2.0.5", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/boom", + "requirement": "2.x.x", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/cryptiles@2.0.5", + "repository_homepage_url": "https://www.npmjs.com/package/cryptiles", + "repository_download_url": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "api_data_url": "https://registry.npmjs.org/cryptiles/2.0.5" + }, + { + "type": "npm", + "namespace": null, + "name": "currently-unhandled", + "version": "0.4.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/array-find-index", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/currently-unhandled@0.4.1", + "repository_homepage_url": "https://www.npmjs.com/package/currently-unhandled", + "repository_download_url": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "api_data_url": "https://registry.npmjs.org/currently-unhandled/0.4.1" + }, + { + "type": "npm", + "namespace": null, + "name": "dashdash", + "version": "1.14.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/assert-plus", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/dashdash@1.14.1", + "repository_homepage_url": "https://www.npmjs.com/package/dashdash", + "repository_download_url": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "api_data_url": "https://registry.npmjs.org/dashdash/1.14.1" + }, + { + "type": "npm", + "namespace": null, + "name": "date-time", + "version": "0.1.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/date-time/-/date-time-0.1.1.tgz#ed2f6d93d9790ce2fd66d5b5ff3edd5bbcbf3b07", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/date-time@0.1.1", + "repository_homepage_url": "https://www.npmjs.com/package/date-time", + "repository_download_url": "https://registry.npmjs.org/date-time/-/date-time-0.1.1.tgz", + "api_data_url": "https://registry.npmjs.org/date-time/0.1.1" + }, + { + "type": "npm", + "namespace": null, + "name": "debug", + "version": "2.2.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/ms", + "requirement": "0.7.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/debug@2.2.0", + "repository_homepage_url": "https://www.npmjs.com/package/debug", + "repository_download_url": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "api_data_url": "https://registry.npmjs.org/debug/2.2.0" + }, + { + "type": "npm", + "namespace": null, + "name": "decamelize", + "version": "1.2.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/decamelize@1.2.0", + "repository_homepage_url": "https://www.npmjs.com/package/decamelize", + "repository_download_url": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "api_data_url": "https://registry.npmjs.org/decamelize/1.2.0" + }, + { + "type": "npm", + "namespace": null, + "name": "deep-equal", + "version": "1.0.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/deep-equal@1.0.1", + "repository_homepage_url": "https://www.npmjs.com/package/deep-equal", + "repository_download_url": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "api_data_url": "https://registry.npmjs.org/deep-equal/1.0.1" + }, + { + "type": "npm", + "namespace": null, + "name": "deep-extend", + "version": "0.4.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.1.tgz#efe4113d08085f4e6f9687759810f807469e2253", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/deep-extend@0.4.1", + "repository_homepage_url": "https://www.npmjs.com/package/deep-extend", + "repository_download_url": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.1.tgz", + "api_data_url": "https://registry.npmjs.org/deep-extend/0.4.1" + }, + { + "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": "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/delayed-stream@1.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/delayed-stream", + "repository_download_url": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/delayed-stream/1.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "delegates", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/delegates@1.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/delegates", + "repository_download_url": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/delegates/1.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "detect-indent", + "version": "4.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/repeating", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/detect-indent@4.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/detect-indent", + "repository_download_url": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/detect-indent/4.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "diff", + "version": "1.4.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/diff/-/diff-1.4.0.tgz#7f28d2eb9ee7b15a97efd89ce63dcfdaa3ccbabf", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/diff@1.4.0", + "repository_homepage_url": "https://www.npmjs.com/package/diff", + "repository_download_url": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz", + "api_data_url": "https://registry.npmjs.org/diff/1.4.0" + }, + { + "type": "npm", + "namespace": null, + "name": "dot-prop", + "version": "3.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/dot-prop/-/dot-prop-3.0.0.tgz#1b708af094a49c9a0e7dbcad790aba539dac1177", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/is-obj", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/dot-prop@3.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/dot-prop", + "repository_download_url": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/dot-prop/3.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "duplexer2", + "version": "0.1.4", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/readable-stream", + "requirement": "^2.0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/duplexer2@0.1.4", + "repository_homepage_url": "https://www.npmjs.com/package/duplexer2", + "repository_download_url": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "api_data_url": "https://registry.npmjs.org/duplexer2/0.1.4" + }, + { + "type": "npm", + "namespace": null, + "name": "eastasianwidth", + "version": "0.1.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.1.1.tgz#44d656de9da415694467335365fb3147b8572b7c", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/eastasianwidth@0.1.1", + "repository_homepage_url": "https://www.npmjs.com/package/eastasianwidth", + "repository_download_url": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.1.1.tgz", + "api_data_url": "https://registry.npmjs.org/eastasianwidth/0.1.1" + }, + { + "type": "npm", + "namespace": null, + "name": "ecc-jsbn", + "version": "0.1.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/jsbn", + "requirement": "~0.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/ecc-jsbn@0.1.1", + "repository_homepage_url": "https://www.npmjs.com/package/ecc-jsbn", + "repository_download_url": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "api_data_url": "https://registry.npmjs.org/ecc-jsbn/0.1.1" + }, + { + "type": "npm", + "namespace": null, + "name": "empower-core", + "version": "0.6.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/empower-core/-/empower-core-0.6.1.tgz#6c187f502fcef7554d57933396aac655483772b1", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/call-signature", + "requirement": "0.0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/core-js", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/empower-core@0.6.1", + "repository_homepage_url": "https://www.npmjs.com/package/empower-core", + "repository_download_url": "https://registry.npmjs.org/empower-core/-/empower-core-0.6.1.tgz", + "api_data_url": "https://registry.npmjs.org/empower-core/0.6.1" + }, + { + "type": "npm", + "namespace": null, + "name": "error-ex", + "version": "1.3.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.0.tgz#e67b43f3e82c96ea3a584ffee0b9fc3325d802d9", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/is-arrayish", + "requirement": "^0.2.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/error-ex@1.3.0", + "repository_homepage_url": "https://www.npmjs.com/package/error-ex", + "repository_download_url": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.0.tgz", + "api_data_url": "https://registry.npmjs.org/error-ex/1.3.0" + }, + { + "type": "npm", + "namespace": null, + "name": "escape-string-regexp", + "version": "1.0.5", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/escape-string-regexp@1.0.5", + "repository_homepage_url": "https://www.npmjs.com/package/escape-string-regexp", + "repository_download_url": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "api_data_url": "https://registry.npmjs.org/escape-string-regexp/1.0.5" + }, + { + "type": "npm", + "namespace": null, + "name": "espower-location-detector", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/espower-location-detector/-/espower-location-detector-1.0.0.tgz#a17b7ecc59d30e179e2bef73fb4137704cb331b5", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/is-url", + "requirement": "^1.2.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/path-is-absolute", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/source-map", + "requirement": "^0.5.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/xtend", + "requirement": "^4.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/espower-location-detector@1.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/espower-location-detector", + "repository_download_url": "https://registry.npmjs.org/espower-location-detector/-/espower-location-detector-1.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/espower-location-detector/1.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "espurify", + "version": "1.6.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/espurify/-/espurify-1.6.0.tgz#6cb993582d9422bd6f2d4b258aadb14833f394f0", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/core-js", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/espurify@1.6.0", + "repository_homepage_url": "https://www.npmjs.com/package/espurify", + "repository_download_url": "https://registry.npmjs.org/espurify/-/espurify-1.6.0.tgz", + "api_data_url": "https://registry.npmjs.org/espurify/1.6.0" + }, + { + "type": "npm", + "namespace": null, + "name": "estraverse", + "version": "4.2.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/estraverse@4.2.0", + "repository_homepage_url": "https://www.npmjs.com/package/estraverse", + "repository_download_url": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "api_data_url": "https://registry.npmjs.org/estraverse/4.2.0" + }, + { + "type": "npm", + "namespace": null, + "name": "esutils", + "version": "2.0.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/esutils@2.0.2", + "repository_homepage_url": "https://www.npmjs.com/package/esutils", + "repository_download_url": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "api_data_url": "https://registry.npmjs.org/esutils/2.0.2" + }, + { + "type": "npm", + "namespace": null, + "name": "exit-hook", + "version": "1.1.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/exit-hook@1.1.1", + "repository_homepage_url": "https://www.npmjs.com/package/exit-hook", + "repository_download_url": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", + "api_data_url": "https://registry.npmjs.org/exit-hook/1.1.1" + }, + { + "type": "npm", + "namespace": null, + "name": "expand-brackets", + "version": "0.1.5", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/is-posix-bracket", + "requirement": "^0.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/expand-brackets@0.1.5", + "repository_homepage_url": "https://www.npmjs.com/package/expand-brackets", + "repository_download_url": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "api_data_url": "https://registry.npmjs.org/expand-brackets/0.1.5" + }, + { + "type": "npm", + "namespace": null, + "name": "expand-range", + "version": "1.8.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/fill-range", + "requirement": "^2.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/expand-range@1.8.2", + "repository_homepage_url": "https://www.npmjs.com/package/expand-range", + "repository_download_url": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "api_data_url": "https://registry.npmjs.org/expand-range/1.8.2" + }, + { + "type": "npm", + "namespace": null, + "name": "extend", + "version": "3.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/extend@3.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/extend", + "repository_download_url": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/extend/3.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "extglob", + "version": "0.3.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/is-extglob", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/extglob@0.3.2", + "repository_homepage_url": "https://www.npmjs.com/package/extglob", + "repository_download_url": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "api_data_url": "https://registry.npmjs.org/extglob/0.3.2" + }, + { + "type": "npm", + "namespace": null, + "name": "extsprintf", + "version": "1.0.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/extsprintf@1.0.2", + "repository_homepage_url": "https://www.npmjs.com/package/extsprintf", + "repository_download_url": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", + "api_data_url": "https://registry.npmjs.org/extsprintf/1.0.2" + }, + { + "type": "npm", + "namespace": null, + "name": "figures", + "version": "1.7.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/escape-string-regexp", + "requirement": "^1.0.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/object-assign", + "requirement": "^4.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/figures@1.7.0", + "repository_homepage_url": "https://www.npmjs.com/package/figures", + "repository_download_url": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "api_data_url": "https://registry.npmjs.org/figures/1.7.0" + }, + { + "type": "npm", + "namespace": null, + "name": "filename-regex", + "version": "2.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.0.tgz#996e3e80479b98b9897f15a8a58b3d084e926775", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/filename-regex@2.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/filename-regex", + "repository_download_url": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/filename-regex/2.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "fill-range", + "version": "2.2.3", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/is-number", + "requirement": "^2.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/isobject", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/randomatic", + "requirement": "^1.1.3", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/repeat-element", + "requirement": "^1.1.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/repeat-string", + "requirement": "^1.5.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/fill-range@2.2.3", + "repository_homepage_url": "https://www.npmjs.com/package/fill-range", + "repository_download_url": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", + "api_data_url": "https://registry.npmjs.org/fill-range/2.2.3" + }, + { + "type": "npm", + "namespace": null, + "name": "filled-array", + "version": "1.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/filled-array/-/filled-array-1.1.0.tgz#c3c4f6c663b923459a9aa29912d2d031f1507f84", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/filled-array@1.1.0", + "repository_homepage_url": "https://www.npmjs.com/package/filled-array", + "repository_download_url": "https://registry.npmjs.org/filled-array/-/filled-array-1.1.0.tgz", + "api_data_url": "https://registry.npmjs.org/filled-array/1.1.0" + }, + { + "type": "npm", + "namespace": null, + "name": "find-cache-dir", + "version": "0.1.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/commondir", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/mkdirp", + "requirement": "^0.5.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/pkg-dir", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/find-cache-dir@0.1.1", + "repository_homepage_url": "https://www.npmjs.com/package/find-cache-dir", + "repository_download_url": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", + "api_data_url": "https://registry.npmjs.org/find-cache-dir/0.1.1" + }, + { + "type": "npm", + "namespace": null, + "name": "find-up", + "version": "1.1.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/path-exists", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/pinkie-promise", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/find-up@1.1.2", + "repository_homepage_url": "https://www.npmjs.com/package/find-up", + "repository_download_url": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "api_data_url": "https://registry.npmjs.org/find-up/1.1.2" + }, + { + "type": "npm", + "namespace": null, + "name": "findit", + "version": "0.1.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/findit/-/findit-0.1.2.tgz#ac7fe600cd6a32a35672836b74cf6f1dde2e11f8", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/seq", + "requirement": ">=0.1.7", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/findit@0.1.2", + "repository_homepage_url": "https://www.npmjs.com/package/findit", + "repository_download_url": "https://registry.npmjs.org/findit/-/findit-0.1.2.tgz", + "api_data_url": "https://registry.npmjs.org/findit/0.1.2" + }, + { + "type": "npm", + "namespace": null, + "name": "fn-name", + "version": "2.0.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/fn-name/-/fn-name-2.0.1.tgz#5214d7537a4d06a4a301c0cc262feb84188002e7", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/fn-name@2.0.1", + "repository_homepage_url": "https://www.npmjs.com/package/fn-name", + "repository_download_url": "https://registry.npmjs.org/fn-name/-/fn-name-2.0.1.tgz", + "api_data_url": "https://registry.npmjs.org/fn-name/2.0.1" + }, + { + "type": "npm", + "namespace": null, + "name": "for-in", + "version": "0.1.6", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/for-in/-/for-in-0.1.6.tgz#c9f96e89bfad18a545af5ec3ed352a1d9e5b4dc8", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/for-in@0.1.6", + "repository_homepage_url": "https://www.npmjs.com/package/for-in", + "repository_download_url": "https://registry.npmjs.org/for-in/-/for-in-0.1.6.tgz", + "api_data_url": "https://registry.npmjs.org/for-in/0.1.6" + }, + { + "type": "npm", + "namespace": null, + "name": "for-own", + "version": "0.1.4", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/for-own/-/for-own-0.1.4.tgz#0149b41a39088c7515f51ebe1c1386d45f935072", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/for-in", + "requirement": "^0.1.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/for-own@0.1.4", + "repository_homepage_url": "https://www.npmjs.com/package/for-own", + "repository_download_url": "https://registry.npmjs.org/for-own/-/for-own-0.1.4.tgz", + "api_data_url": "https://registry.npmjs.org/for-own/0.1.4" + }, + { + "type": "npm", + "namespace": null, + "name": "forever-agent", + "version": "0.6.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/forever-agent@0.6.1", + "repository_homepage_url": "https://www.npmjs.com/package/forever-agent", + "repository_download_url": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "api_data_url": "https://registry.npmjs.org/forever-agent/0.6.1" + }, + { + "type": "npm", + "namespace": null, + "name": "form-data", + "version": "2.1.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/form-data/-/form-data-2.1.2.tgz#89c3534008b97eada4cbb157d58f6f5df025eae4", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/asynckit", + "requirement": "^0.4.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/combined-stream", + "requirement": "^1.0.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/mime-types", + "requirement": "^2.1.12", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/form-data@2.1.2", + "repository_homepage_url": "https://www.npmjs.com/package/form-data", + "repository_download_url": "https://registry.npmjs.org/form-data/-/form-data-2.1.2.tgz", + "api_data_url": "https://registry.npmjs.org/form-data/2.1.2" + }, + { + "type": "npm", + "namespace": null, + "name": "fs.realpath", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/fs.realpath@1.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/fs.realpath", + "repository_download_url": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/fs.realpath/1.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "fsevents", + "version": "1.0.17", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/fsevents/-/fsevents-1.0.17.tgz#8537f3f12272678765b4fd6528c0f1f66f8f4558", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/nan", + "requirement": "^2.3.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/node-pre-gyp", + "requirement": "^0.6.29", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/fsevents@1.0.17", + "repository_homepage_url": "https://www.npmjs.com/package/fsevents", + "repository_download_url": "https://registry.npmjs.org/fsevents/-/fsevents-1.0.17.tgz", + "api_data_url": "https://registry.npmjs.org/fsevents/1.0.17" + }, + { + "type": "npm", + "namespace": null, + "name": "fstream-ignore", + "version": "1.0.5", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/fstream", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/inherits", + "requirement": "2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/minimatch", + "requirement": "^3.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/fstream-ignore@1.0.5", + "repository_homepage_url": "https://www.npmjs.com/package/fstream-ignore", + "repository_download_url": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", + "api_data_url": "https://registry.npmjs.org/fstream-ignore/1.0.5" + }, + { + "type": "npm", + "namespace": null, + "name": "fstream", + "version": "1.0.10", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/fstream/-/fstream-1.0.10.tgz#604e8a92fe26ffd9f6fae30399d4984e1ab22822", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/graceful-fs", + "requirement": "^4.1.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/inherits", + "requirement": "~2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/rimraf", + "requirement": "2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/fstream@1.0.10", + "repository_homepage_url": "https://www.npmjs.com/package/fstream", + "repository_download_url": "https://registry.npmjs.org/fstream/-/fstream-1.0.10.tgz", + "api_data_url": "https://registry.npmjs.org/fstream/1.0.10" + }, + { + "type": "npm", + "namespace": null, + "name": "gauge", + "version": "2.7.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/gauge/-/gauge-2.7.2.tgz#15cecc31b02d05345a5d6b0e171cdb3ad2307774", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/aproba", + "requirement": "^1.0.3", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/console-control-strings", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/has-unicode", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/object-assign", + "requirement": "^4.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/signal-exit", + "requirement": "^3.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/string-width", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/strip-ansi", + "requirement": "^3.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/supports-color", + "requirement": "^0.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/wide-align", + "requirement": "^1.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/gauge@2.7.2", + "repository_homepage_url": "https://www.npmjs.com/package/gauge", + "repository_download_url": "https://registry.npmjs.org/gauge/-/gauge-2.7.2.tgz", + "api_data_url": "https://registry.npmjs.org/gauge/2.7.2" + }, + { + "type": "npm", + "namespace": null, + "name": "generate-function", + "version": "2.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/generate-function@2.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/generate-function", + "repository_download_url": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/generate-function/2.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "generate-object-property", + "version": "1.2.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/is-property", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/generate-object-property@1.2.0", + "repository_homepage_url": "https://www.npmjs.com/package/generate-object-property", + "repository_download_url": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "api_data_url": "https://registry.npmjs.org/generate-object-property/1.2.0" + }, + { + "type": "npm", + "namespace": null, + "name": "gently", + "version": "0.8.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/gently/-/gently-0.8.0.tgz#bc385db99ec1994dd6a44368e0abeb482b192b2c", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/gently@0.8.0", + "repository_homepage_url": "https://www.npmjs.com/package/gently", + "repository_download_url": "https://registry.npmjs.org/gently/-/gently-0.8.0.tgz", + "api_data_url": "https://registry.npmjs.org/gently/0.8.0" + }, + { + "type": "npm", + "namespace": null, + "name": "get-port", + "version": "2.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/get-port/-/get-port-2.1.0.tgz#8783f9dcebd1eea495a334e1a6a251e78887ab1a", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/pinkie-promise", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/get-port@2.1.0", + "repository_homepage_url": "https://www.npmjs.com/package/get-port", + "repository_download_url": "https://registry.npmjs.org/get-port/-/get-port-2.1.0.tgz", + "api_data_url": "https://registry.npmjs.org/get-port/2.1.0" + }, + { + "type": "npm", + "namespace": null, + "name": "get-stdin", + "version": "4.0.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/get-stdin@4.0.1", + "repository_homepage_url": "https://www.npmjs.com/package/get-stdin", + "repository_download_url": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "api_data_url": "https://registry.npmjs.org/get-stdin/4.0.1" + }, + { + "type": "npm", + "namespace": null, + "name": "getpass", + "version": "0.1.6", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/getpass/-/getpass-0.1.6.tgz#283ffd9fc1256840875311c1b60e8c40187110e6", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/assert-plus", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/getpass@0.1.6", + "repository_homepage_url": "https://www.npmjs.com/package/getpass", + "repository_download_url": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz", + "api_data_url": "https://registry.npmjs.org/getpass/0.1.6" + }, + { + "type": "npm", + "namespace": null, + "name": "glob-base", + "version": "0.3.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/glob-parent", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-glob", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/glob-base@0.3.0", + "repository_homepage_url": "https://www.npmjs.com/package/glob-base", + "repository_download_url": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "api_data_url": "https://registry.npmjs.org/glob-base/0.3.0" + }, + { + "type": "npm", + "namespace": null, + "name": "glob-parent", + "version": "2.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/is-glob", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/glob-parent@2.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/glob-parent", + "repository_download_url": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/glob-parent/2.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "glob", + "version": "7.0.5", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/glob/-/glob-7.0.5.tgz#b4202a69099bbb4d292a7c1b95b6682b67ebdc95", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/fs.realpath", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/inflight", + "requirement": "^1.0.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/inherits", + "requirement": "2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/minimatch", + "requirement": "^3.0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/once", + "requirement": "^1.3.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/path-is-absolute", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/glob@7.0.5", + "repository_homepage_url": "https://www.npmjs.com/package/glob", + "repository_download_url": "https://registry.npmjs.org/glob/-/glob-7.0.5.tgz", + "api_data_url": "https://registry.npmjs.org/glob/7.0.5" + }, + { + "type": "npm", + "namespace": null, + "name": "globals", + "version": "9.14.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/globals/-/globals-9.14.0.tgz#8859936af0038741263053b39d0e76ca241e4034", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/globals@9.14.0", + "repository_homepage_url": "https://www.npmjs.com/package/globals", + "repository_download_url": "https://registry.npmjs.org/globals/-/globals-9.14.0.tgz", + "api_data_url": "https://registry.npmjs.org/globals/9.14.0" + }, + { + "type": "npm", + "namespace": null, + "name": "globby", + "version": "6.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/array-union", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/glob", + "requirement": "^7.0.3", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/object-assign", + "requirement": "^4.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/pify", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/pinkie-promise", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/globby@6.1.0", + "repository_homepage_url": "https://www.npmjs.com/package/globby", + "repository_download_url": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "api_data_url": "https://registry.npmjs.org/globby/6.1.0" + }, + { + "type": "npm", + "namespace": null, + "name": "got", + "version": "5.7.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/got/-/got-5.7.1.tgz#5f81635a61e4a6589f180569ea4e381680a51f35", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/create-error-class", + "requirement": "^3.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/duplexer2", + "requirement": "^0.1.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-redirect", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-retry-allowed", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-stream", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/lowercase-keys", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/node-status-codes", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/object-assign", + "requirement": "^4.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/parse-json", + "requirement": "^2.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/pinkie-promise", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/read-all-stream", + "requirement": "^3.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/readable-stream", + "requirement": "^2.0.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/timed-out", + "requirement": "^3.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/unzip-response", + "requirement": "^1.0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/url-parse-lax", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/got@5.7.1", + "repository_homepage_url": "https://www.npmjs.com/package/got", + "repository_download_url": "https://registry.npmjs.org/got/-/got-5.7.1.tgz", + "api_data_url": "https://registry.npmjs.org/got/5.7.1" + }, + { + "type": "npm", + "namespace": null, + "name": "graceful-fs", + "version": "4.1.11", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/graceful-fs@4.1.11", + "repository_homepage_url": "https://www.npmjs.com/package/graceful-fs", + "repository_download_url": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "api_data_url": "https://registry.npmjs.org/graceful-fs/4.1.11" + }, + { + "type": "npm", + "namespace": null, + "name": "graceful-readlink", + "version": "1.0.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/graceful-readlink@1.0.1", + "repository_homepage_url": "https://www.npmjs.com/package/graceful-readlink", + "repository_download_url": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "api_data_url": "https://registry.npmjs.org/graceful-readlink/1.0.1" + }, + { + "type": "npm", + "namespace": null, + "name": "growl", + "version": "1.9.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/growl@1.9.2", + "repository_homepage_url": "https://www.npmjs.com/package/growl", + "repository_download_url": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz", + "api_data_url": "https://registry.npmjs.org/growl/1.9.2" + }, + { + "type": "npm", + "namespace": null, + "name": "har-validator", + "version": "2.0.6", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/chalk", + "requirement": "^1.1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/commander", + "requirement": "^2.9.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-my-json-valid", + "requirement": "^2.12.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/pinkie-promise", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/har-validator@2.0.6", + "repository_homepage_url": "https://www.npmjs.com/package/har-validator", + "repository_download_url": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", + "api_data_url": "https://registry.npmjs.org/har-validator/2.0.6" + }, + { + "type": "npm", + "namespace": null, + "name": "has-ansi", + "version": "2.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/ansi-regex", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/has-ansi@2.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/has-ansi", + "repository_download_url": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/has-ansi/2.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "has-color", + "version": "0.1.7", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/has-color@0.1.7", + "repository_homepage_url": "https://www.npmjs.com/package/has-color", + "repository_download_url": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz", + "api_data_url": "https://registry.npmjs.org/has-color/0.1.7" + }, + { + "type": "npm", + "namespace": null, + "name": "has-flag", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/has-flag@1.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/has-flag", + "repository_download_url": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/has-flag/1.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "has-flag", + "version": "2.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/has-flag@2.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/has-flag", + "repository_download_url": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/has-flag/2.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "has-unicode", + "version": "2.0.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/has-unicode@2.0.1", + "repository_homepage_url": "https://www.npmjs.com/package/has-unicode", + "repository_download_url": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "api_data_url": "https://registry.npmjs.org/has-unicode/2.0.1" + }, + { + "type": "npm", + "namespace": null, + "name": "hashish", + "version": "0.0.4", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/hashish/-/hashish-0.0.4.tgz#6d60bc6ffaf711b6afd60e426d077988014e6554", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/traverse", + "requirement": ">=0.2.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/hashish@0.0.4", + "repository_homepage_url": "https://www.npmjs.com/package/hashish", + "repository_download_url": "https://registry.npmjs.org/hashish/-/hashish-0.0.4.tgz", + "api_data_url": "https://registry.npmjs.org/hashish/0.0.4" + }, + { + "type": "npm", + "namespace": null, + "name": "hawk", + "version": "3.1.3", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/boom", + "requirement": "2.x.x", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/cryptiles", + "requirement": "2.x.x", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/hoek", + "requirement": "2.x.x", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/sntp", + "requirement": "1.x.x", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/hawk@3.1.3", + "repository_homepage_url": "https://www.npmjs.com/package/hawk", + "repository_download_url": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "api_data_url": "https://registry.npmjs.org/hawk/3.1.3" + }, + { + "type": "npm", + "namespace": null, + "name": "hoek", + "version": "2.16.3", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/hoek@2.16.3", + "repository_homepage_url": "https://www.npmjs.com/package/hoek", + "repository_download_url": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "api_data_url": "https://registry.npmjs.org/hoek/2.16.3" + }, + { + "type": "npm", + "namespace": null, + "name": "home-or-tmp", + "version": "2.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/os-homedir", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/os-tmpdir", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/home-or-tmp@2.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/home-or-tmp", + "repository_download_url": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/home-or-tmp/2.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "hosted-git-info", + "version": "2.1.5", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.1.5.tgz#0ba81d90da2e25ab34a332e6ec77936e1598118b", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/hosted-git-info@2.1.5", + "repository_homepage_url": "https://www.npmjs.com/package/hosted-git-info", + "repository_download_url": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.1.5.tgz", + "api_data_url": "https://registry.npmjs.org/hosted-git-info/2.1.5" + }, + { + "type": "npm", + "namespace": null, + "name": "http-signature", + "version": "1.1.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/assert-plus", + "requirement": "^0.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/jsprim", + "requirement": "^1.2.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/sshpk", + "requirement": "^1.7.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/http-signature@1.1.1", + "repository_homepage_url": "https://www.npmjs.com/package/http-signature", + "repository_download_url": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "api_data_url": "https://registry.npmjs.org/http-signature/1.1.1" + }, + { + "type": "npm", + "namespace": null, + "name": "ignore-by-default", + "version": "1.0.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/ignore-by-default@1.0.1", + "repository_homepage_url": "https://www.npmjs.com/package/ignore-by-default", + "repository_download_url": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "api_data_url": "https://registry.npmjs.org/ignore-by-default/1.0.1" + }, + { + "type": "npm", + "namespace": null, + "name": "imurmurhash", + "version": "0.1.4", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/imurmurhash@0.1.4", + "repository_homepage_url": "https://www.npmjs.com/package/imurmurhash", + "repository_download_url": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "api_data_url": "https://registry.npmjs.org/imurmurhash/0.1.4" + }, + { + "type": "npm", + "namespace": null, + "name": "indent-string", + "version": "2.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/repeating", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/indent-string@2.1.0", + "repository_homepage_url": "https://www.npmjs.com/package/indent-string", + "repository_download_url": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "api_data_url": "https://registry.npmjs.org/indent-string/2.1.0" + }, + { + "type": "npm", + "namespace": null, + "name": "inflight", + "version": "1.0.6", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/once", + "requirement": "^1.3.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/wrappy", + "requirement": "1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/inflight@1.0.6", + "repository_homepage_url": "https://www.npmjs.com/package/inflight", + "repository_download_url": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "api_data_url": "https://registry.npmjs.org/inflight/1.0.6" + }, + { + "type": "npm", + "namespace": null, + "name": "inherits", + "version": "2.0.3", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/inherits@2.0.3", + "repository_homepage_url": "https://www.npmjs.com/package/inherits", + "repository_download_url": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "api_data_url": "https://registry.npmjs.org/inherits/2.0.3" + }, + { + "type": "npm", + "namespace": null, + "name": "ini", + "version": "1.3.4", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/ini@1.3.4", + "repository_homepage_url": "https://www.npmjs.com/package/ini", + "repository_download_url": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", + "api_data_url": "https://registry.npmjs.org/ini/1.3.4" + }, + { + "type": "npm", + "namespace": null, + "name": "invariant", + "version": "2.2.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/loose-envify", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/invariant@2.2.2", + "repository_homepage_url": "https://www.npmjs.com/package/invariant", + "repository_download_url": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "api_data_url": "https://registry.npmjs.org/invariant/2.2.2" + }, + { + "type": "npm", + "namespace": null, + "name": "irregular-plurals", + "version": "1.2.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/irregular-plurals/-/irregular-plurals-1.2.0.tgz#38f299834ba8c00c30be9c554e137269752ff3ac", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/irregular-plurals@1.2.0", + "repository_homepage_url": "https://www.npmjs.com/package/irregular-plurals", + "repository_download_url": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-1.2.0.tgz", + "api_data_url": "https://registry.npmjs.org/irregular-plurals/1.2.0" + }, + { + "type": "npm", + "namespace": null, + "name": "is-arrayish", + "version": "0.2.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/is-arrayish@0.2.1", + "repository_homepage_url": "https://www.npmjs.com/package/is-arrayish", + "repository_download_url": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "api_data_url": "https://registry.npmjs.org/is-arrayish/0.2.1" + }, + { + "type": "npm", + "namespace": null, + "name": "is-binary-path", + "version": "1.0.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/binary-extensions", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/is-binary-path@1.0.1", + "repository_homepage_url": "https://www.npmjs.com/package/is-binary-path", + "repository_download_url": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "api_data_url": "https://registry.npmjs.org/is-binary-path/1.0.1" + }, + { + "type": "npm", + "namespace": null, + "name": "is-buffer", + "version": "1.1.4", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.4.tgz#cfc86ccd5dc5a52fa80489111c6920c457e2d98b", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/is-buffer@1.1.4", + "repository_homepage_url": "https://www.npmjs.com/package/is-buffer", + "repository_download_url": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.4.tgz", + "api_data_url": "https://registry.npmjs.org/is-buffer/1.1.4" + }, + { + "type": "npm", + "namespace": null, + "name": "is-builtin-module", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/builtin-modules", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/is-builtin-module@1.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/is-builtin-module", + "repository_download_url": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/is-builtin-module/1.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "is-ci", + "version": "1.0.10", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/is-ci/-/is-ci-1.0.10.tgz#f739336b2632365061a9d48270cd56ae3369318e", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/ci-info", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/is-ci@1.0.10", + "repository_homepage_url": "https://www.npmjs.com/package/is-ci", + "repository_download_url": "https://registry.npmjs.org/is-ci/-/is-ci-1.0.10.tgz", + "api_data_url": "https://registry.npmjs.org/is-ci/1.0.10" + }, + { + "type": "npm", + "namespace": null, + "name": "is-dotfile", + "version": "1.0.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/is-dotfile@1.0.2", + "repository_homepage_url": "https://www.npmjs.com/package/is-dotfile", + "repository_download_url": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.2.tgz", + "api_data_url": "https://registry.npmjs.org/is-dotfile/1.0.2" + }, + { + "type": "npm", + "namespace": null, + "name": "is-equal-shallow", + "version": "0.1.3", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/is-primitive", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/is-equal-shallow@0.1.3", + "repository_homepage_url": "https://www.npmjs.com/package/is-equal-shallow", + "repository_download_url": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "api_data_url": "https://registry.npmjs.org/is-equal-shallow/0.1.3" + }, + { + "type": "npm", + "namespace": null, + "name": "is-error", + "version": "2.2.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/is-error/-/is-error-2.2.1.tgz#684a96d84076577c98f4cdb40c6d26a5123bf19c", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/is-error@2.2.1", + "repository_homepage_url": "https://www.npmjs.com/package/is-error", + "repository_download_url": "https://registry.npmjs.org/is-error/-/is-error-2.2.1.tgz", + "api_data_url": "https://registry.npmjs.org/is-error/2.2.1" + }, + { + "type": "npm", + "namespace": null, + "name": "is-extendable", + "version": "0.1.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/is-extendable@0.1.1", + "repository_homepage_url": "https://www.npmjs.com/package/is-extendable", + "repository_download_url": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "api_data_url": "https://registry.npmjs.org/is-extendable/0.1.1" + }, + { + "type": "npm", + "namespace": null, + "name": "is-extglob", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/is-extglob@1.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/is-extglob", + "repository_download_url": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/is-extglob/1.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "is-finite", + "version": "1.0.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/number-is-nan", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/is-finite@1.0.2", + "repository_homepage_url": "https://www.npmjs.com/package/is-finite", + "repository_download_url": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "api_data_url": "https://registry.npmjs.org/is-finite/1.0.2" + }, + { + "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": "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/number-is-nan", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/is-fullwidth-code-point@1.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/is-fullwidth-code-point", + "repository_download_url": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/is-fullwidth-code-point/1.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "is-generator-fn", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-1.0.0.tgz#969d49e1bb3329f6bb7f09089be26578b2ddd46a", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/is-generator-fn@1.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/is-generator-fn", + "repository_download_url": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-1.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/is-generator-fn/1.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "is-glob", + "version": "2.0.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/is-extglob", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/is-glob@2.0.1", + "repository_homepage_url": "https://www.npmjs.com/package/is-glob", + "repository_download_url": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "api_data_url": "https://registry.npmjs.org/is-glob/2.0.1" + }, + { + "type": "npm", + "namespace": null, + "name": "is-my-json-valid", + "version": "2.15.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz#936edda3ca3c211fd98f3b2d3e08da43f7b2915b", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/generate-function", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/generate-object-property", + "requirement": "^1.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/jsonpointer", + "requirement": "^4.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/xtend", + "requirement": "^4.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/is-my-json-valid@2.15.0", + "repository_homepage_url": "https://www.npmjs.com/package/is-my-json-valid", + "repository_download_url": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz", + "api_data_url": "https://registry.npmjs.org/is-my-json-valid/2.15.0" + }, + { + "type": "npm", + "namespace": null, + "name": "is-npm", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/is-npm@1.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/is-npm", + "repository_download_url": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/is-npm/1.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "is-number", + "version": "2.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/kind-of", + "requirement": "^3.0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/is-number@2.1.0", + "repository_homepage_url": "https://www.npmjs.com/package/is-number", + "repository_download_url": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "api_data_url": "https://registry.npmjs.org/is-number/2.1.0" + }, + { + "type": "npm", + "namespace": null, + "name": "is-obj", + "version": "1.0.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/is-obj@1.0.1", + "repository_homepage_url": "https://www.npmjs.com/package/is-obj", + "repository_download_url": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "api_data_url": "https://registry.npmjs.org/is-obj/1.0.1" + }, + { + "type": "npm", + "namespace": null, + "name": "is-observable", + "version": "0.2.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/is-observable/-/is-observable-0.2.0.tgz#b361311d83c6e5d726cabf5e250b0237106f5ae2", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/symbol-observable", + "requirement": "^0.2.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/is-observable@0.2.0", + "repository_homepage_url": "https://www.npmjs.com/package/is-observable", + "repository_download_url": "https://registry.npmjs.org/is-observable/-/is-observable-0.2.0.tgz", + "api_data_url": "https://registry.npmjs.org/is-observable/0.2.0" + }, + { + "type": "npm", + "namespace": null, + "name": "is-plain-obj", + "version": "1.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/is-plain-obj@1.1.0", + "repository_homepage_url": "https://www.npmjs.com/package/is-plain-obj", + "repository_download_url": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "api_data_url": "https://registry.npmjs.org/is-plain-obj/1.1.0" + }, + { + "type": "npm", + "namespace": null, + "name": "is-posix-bracket", + "version": "0.1.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/is-posix-bracket@0.1.1", + "repository_homepage_url": "https://www.npmjs.com/package/is-posix-bracket", + "repository_download_url": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "api_data_url": "https://registry.npmjs.org/is-posix-bracket/0.1.1" + }, + { + "type": "npm", + "namespace": null, + "name": "is-primitive", + "version": "2.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/is-primitive@2.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/is-primitive", + "repository_download_url": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/is-primitive/2.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "is-promise", + "version": "2.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/is-promise@2.1.0", + "repository_homepage_url": "https://www.npmjs.com/package/is-promise", + "repository_download_url": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "api_data_url": "https://registry.npmjs.org/is-promise/2.1.0" + }, + { + "type": "npm", + "namespace": null, + "name": "is-property", + "version": "1.0.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/is-property@1.0.2", + "repository_homepage_url": "https://www.npmjs.com/package/is-property", + "repository_download_url": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "api_data_url": "https://registry.npmjs.org/is-property/1.0.2" + }, + { + "type": "npm", + "namespace": null, + "name": "is-redirect", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/is-redirect@1.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/is-redirect", + "repository_download_url": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/is-redirect/1.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "is-retry-allowed", + "version": "1.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/is-retry-allowed@1.1.0", + "repository_homepage_url": "https://www.npmjs.com/package/is-retry-allowed", + "repository_download_url": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", + "api_data_url": "https://registry.npmjs.org/is-retry-allowed/1.1.0" + }, + { + "type": "npm", + "namespace": null, + "name": "is-stream", + "version": "1.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/is-stream@1.1.0", + "repository_homepage_url": "https://www.npmjs.com/package/is-stream", + "repository_download_url": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "api_data_url": "https://registry.npmjs.org/is-stream/1.1.0" + }, + { + "type": "npm", + "namespace": null, + "name": "is-typedarray", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/is-typedarray@1.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/is-typedarray", + "repository_download_url": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/is-typedarray/1.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "is-url", + "version": "1.2.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/is-url/-/is-url-1.2.2.tgz#498905a593bf47cc2d9e7f738372bbf7696c7f26", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/is-url@1.2.2", + "repository_homepage_url": "https://www.npmjs.com/package/is-url", + "repository_download_url": "https://registry.npmjs.org/is-url/-/is-url-1.2.2.tgz", + "api_data_url": "https://registry.npmjs.org/is-url/1.2.2" + }, + { + "type": "npm", + "namespace": null, + "name": "is-utf8", + "version": "0.2.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/is-utf8@0.2.1", + "repository_homepage_url": "https://www.npmjs.com/package/is-utf8", + "repository_download_url": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "api_data_url": "https://registry.npmjs.org/is-utf8/0.2.1" + }, + { + "type": "npm", + "namespace": null, + "name": "isarray", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/isarray@1.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/isarray", + "repository_download_url": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/isarray/1.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "isexe", + "version": "1.1.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/isexe/-/isexe-1.1.2.tgz#36f3e22e60750920f5e7241a476a8c6a42275ad0", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/isexe@1.1.2", + "repository_homepage_url": "https://www.npmjs.com/package/isexe", + "repository_download_url": "https://registry.npmjs.org/isexe/-/isexe-1.1.2.tgz", + "api_data_url": "https://registry.npmjs.org/isexe/1.1.2" + }, + { + "type": "npm", + "namespace": null, + "name": "isobject", + "version": "2.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/isarray", + "requirement": "1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/isobject@2.1.0", + "repository_homepage_url": "https://www.npmjs.com/package/isobject", + "repository_download_url": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "api_data_url": "https://registry.npmjs.org/isobject/2.1.0" + }, + { + "type": "npm", + "namespace": null, + "name": "isstream", + "version": "0.1.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/isstream@0.1.2", + "repository_homepage_url": "https://www.npmjs.com/package/isstream", + "repository_download_url": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "api_data_url": "https://registry.npmjs.org/isstream/0.1.2" + }, + { + "type": "npm", + "namespace": null, + "name": "jodid25519", + "version": "1.0.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/jodid25519/-/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/jsbn", + "requirement": "~0.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/jodid25519@1.0.2", + "repository_homepage_url": "https://www.npmjs.com/package/jodid25519", + "repository_download_url": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", + "api_data_url": "https://registry.npmjs.org/jodid25519/1.0.2" + }, + { + "type": "npm", + "namespace": null, + "name": "js-tokens", + "version": "2.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/js-tokens/-/js-tokens-2.0.0.tgz#79903f5563ee778cc1162e6dcf1a0027c97f9cb5", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/js-tokens@2.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/js-tokens", + "repository_download_url": "https://registry.npmjs.org/js-tokens/-/js-tokens-2.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/js-tokens/2.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "js-tokens", + "version": "3.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.0.tgz#a2f2a969caae142fb3cd56228358c89366957bd1", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/js-tokens@3.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/js-tokens", + "repository_download_url": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/js-tokens/3.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "jsbn", + "version": "0.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.0.tgz#650987da0dd74f4ebf5a11377a2aa2d273e97dfd", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/jsbn@0.1.0", + "repository_homepage_url": "https://www.npmjs.com/package/jsbn", + "repository_download_url": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz", + "api_data_url": "https://registry.npmjs.org/jsbn/0.1.0" + }, + { + "type": "npm", + "namespace": null, + "name": "jsesc", + "version": "1.3.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/jsesc@1.3.0", + "repository_homepage_url": "https://www.npmjs.com/package/jsesc", + "repository_download_url": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "api_data_url": "https://registry.npmjs.org/jsesc/1.3.0" + }, + { + "type": "npm", + "namespace": null, + "name": "jsesc", + "version": "0.5.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/jsesc@0.5.0", + "repository_homepage_url": "https://www.npmjs.com/package/jsesc", + "repository_download_url": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "api_data_url": "https://registry.npmjs.org/jsesc/0.5.0" + }, + { + "type": "npm", + "namespace": null, + "name": "json-schema", + "version": "0.2.3", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/json-schema@0.2.3", + "repository_homepage_url": "https://www.npmjs.com/package/json-schema", + "repository_download_url": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "api_data_url": "https://registry.npmjs.org/json-schema/0.2.3" + }, + { + "type": "npm", + "namespace": null, + "name": "json-stringify-safe", + "version": "5.0.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/json-stringify-safe@5.0.1", + "repository_homepage_url": "https://www.npmjs.com/package/json-stringify-safe", + "repository_download_url": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "api_data_url": "https://registry.npmjs.org/json-stringify-safe/5.0.1" + }, + { + "type": "npm", + "namespace": null, + "name": "json3", + "version": "3.3.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/json3@3.3.2", + "repository_homepage_url": "https://www.npmjs.com/package/json3", + "repository_download_url": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", + "api_data_url": "https://registry.npmjs.org/json3/3.3.2" + }, + { + "type": "npm", + "namespace": null, + "name": "json5", + "version": "0.5.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/json5@0.5.1", + "repository_homepage_url": "https://www.npmjs.com/package/json5", + "repository_download_url": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "api_data_url": "https://registry.npmjs.org/json5/0.5.1" + }, + { + "type": "npm", + "namespace": null, + "name": "jsonpointer", + "version": "4.0.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/jsonpointer@4.0.1", + "repository_homepage_url": "https://www.npmjs.com/package/jsonpointer", + "repository_download_url": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", + "api_data_url": "https://registry.npmjs.org/jsonpointer/4.0.1" + }, + { + "type": "npm", + "namespace": null, + "name": "jsprim", + "version": "1.3.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/jsprim/-/jsprim-1.3.1.tgz#2a7256f70412a29ee3670aaca625994c4dcff252", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/extsprintf", + "requirement": "1.0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/json-schema", + "requirement": "0.2.3", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/verror", + "requirement": "1.3.6", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/jsprim@1.3.1", + "repository_homepage_url": "https://www.npmjs.com/package/jsprim", + "repository_download_url": "https://registry.npmjs.org/jsprim/-/jsprim-1.3.1.tgz", + "api_data_url": "https://registry.npmjs.org/jsprim/1.3.1" + }, + { + "type": "npm", + "namespace": null, + "name": "kind-of", + "version": "3.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/kind-of/-/kind-of-3.1.0.tgz#475d698a5e49ff5e53d14e3e732429dc8bf4cf47", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/is-buffer", + "requirement": "^1.0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/kind-of@3.1.0", + "repository_homepage_url": "https://www.npmjs.com/package/kind-of", + "repository_download_url": "https://registry.npmjs.org/kind-of/-/kind-of-3.1.0.tgz", + "api_data_url": "https://registry.npmjs.org/kind-of/3.1.0" + }, + { + "type": "npm", + "namespace": null, + "name": "last-line-stream", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/last-line-stream/-/last-line-stream-1.0.0.tgz#d1b64d69f86ff24af2d04883a2ceee14520a5600", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/through2", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/last-line-stream@1.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/last-line-stream", + "repository_download_url": "https://registry.npmjs.org/last-line-stream/-/last-line-stream-1.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/last-line-stream/1.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "latest-version", + "version": "2.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/latest-version/-/latest-version-2.0.0.tgz#56f8d6139620847b8017f8f1f4d78e211324168b", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/package-json", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/latest-version@2.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/latest-version", + "repository_download_url": "https://registry.npmjs.org/latest-version/-/latest-version-2.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/latest-version/2.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "lazy-req", + "version": "1.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/lazy-req/-/lazy-req-1.1.0.tgz#bdaebead30f8d824039ce0ce149d4daa07ba1fac", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/lazy-req@1.1.0", + "repository_homepage_url": "https://www.npmjs.com/package/lazy-req", + "repository_download_url": "https://registry.npmjs.org/lazy-req/-/lazy-req-1.1.0.tgz", + "api_data_url": "https://registry.npmjs.org/lazy-req/1.1.0" + }, + { + "type": "npm", + "namespace": null, + "name": "load-json-file", + "version": "1.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/graceful-fs", + "requirement": "^4.1.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/parse-json", + "requirement": "^2.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/pify", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/pinkie-promise", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/strip-bom", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/load-json-file@1.1.0", + "repository_homepage_url": "https://www.npmjs.com/package/load-json-file", + "repository_download_url": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "api_data_url": "https://registry.npmjs.org/load-json-file/1.1.0" + }, + { + "type": "npm", + "namespace": null, + "name": "lodash._baseassign", + "version": "3.2.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/lodash._basecopy", + "requirement": "^3.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/lodash.keys", + "requirement": "^3.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/lodash._baseassign@3.2.0", + "repository_homepage_url": "https://www.npmjs.com/package/lodash._baseassign", + "repository_download_url": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", + "api_data_url": "https://registry.npmjs.org/lodash._baseassign/3.2.0" + }, + { + "type": "npm", + "namespace": null, + "name": "lodash._basecopy", + "version": "3.0.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/lodash._basecopy@3.0.1", + "repository_homepage_url": "https://www.npmjs.com/package/lodash._basecopy", + "repository_download_url": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", + "api_data_url": "https://registry.npmjs.org/lodash._basecopy/3.0.1" + }, + { + "type": "npm", + "namespace": null, + "name": "lodash._basecreate", + "version": "3.0.3", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz#1bc661614daa7fc311b7d03bf16806a0213cf821", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/lodash._basecreate@3.0.3", + "repository_homepage_url": "https://www.npmjs.com/package/lodash._basecreate", + "repository_download_url": "https://registry.npmjs.org/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz", + "api_data_url": "https://registry.npmjs.org/lodash._basecreate/3.0.3" + }, + { + "type": "npm", + "namespace": null, + "name": "lodash._getnative", + "version": "3.9.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/lodash._getnative@3.9.1", + "repository_homepage_url": "https://www.npmjs.com/package/lodash._getnative", + "repository_download_url": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "api_data_url": "https://registry.npmjs.org/lodash._getnative/3.9.1" + }, + { + "type": "npm", + "namespace": null, + "name": "lodash._isiterateecall", + "version": "3.0.9", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/lodash._isiterateecall@3.0.9", + "repository_homepage_url": "https://www.npmjs.com/package/lodash._isiterateecall", + "repository_download_url": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", + "api_data_url": "https://registry.npmjs.org/lodash._isiterateecall/3.0.9" + }, + { + "type": "npm", + "namespace": null, + "name": "lodash.create", + "version": "3.1.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/lodash.create/-/lodash.create-3.1.1.tgz#d7f2849f0dbda7e04682bb8cd72ab022461debe7", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/lodash._baseassign", + "requirement": "^3.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/lodash._basecreate", + "requirement": "^3.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/lodash._isiterateecall", + "requirement": "^3.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/lodash.create@3.1.1", + "repository_homepage_url": "https://www.npmjs.com/package/lodash.create", + "repository_download_url": "https://registry.npmjs.org/lodash.create/-/lodash.create-3.1.1.tgz", + "api_data_url": "https://registry.npmjs.org/lodash.create/3.1.1" + }, + { + "type": "npm", + "namespace": null, + "name": "lodash.debounce", + "version": "4.0.8", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/lodash.debounce@4.0.8", + "repository_homepage_url": "https://www.npmjs.com/package/lodash.debounce", + "repository_download_url": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "api_data_url": "https://registry.npmjs.org/lodash.debounce/4.0.8" + }, + { + "type": "npm", + "namespace": null, + "name": "lodash.difference", + "version": "4.5.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/lodash.difference@4.5.0", + "repository_homepage_url": "https://www.npmjs.com/package/lodash.difference", + "repository_download_url": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", + "api_data_url": "https://registry.npmjs.org/lodash.difference/4.5.0" + }, + { + "type": "npm", + "namespace": null, + "name": "lodash.flatten", + "version": "4.4.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/lodash.flatten@4.4.0", + "repository_homepage_url": "https://www.npmjs.com/package/lodash.flatten", + "repository_download_url": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "api_data_url": "https://registry.npmjs.org/lodash.flatten/4.4.0" + }, + { + "type": "npm", + "namespace": null, + "name": "lodash.isarguments", + "version": "3.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/lodash.isarguments@3.1.0", + "repository_homepage_url": "https://www.npmjs.com/package/lodash.isarguments", + "repository_download_url": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "api_data_url": "https://registry.npmjs.org/lodash.isarguments/3.1.0" + }, + { + "type": "npm", + "namespace": null, + "name": "lodash.isarray", + "version": "3.0.4", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/lodash.isarray@3.0.4", + "repository_homepage_url": "https://www.npmjs.com/package/lodash.isarray", + "repository_download_url": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", + "api_data_url": "https://registry.npmjs.org/lodash.isarray/3.0.4" + }, + { + "type": "npm", + "namespace": null, + "name": "lodash.isequal", + "version": "4.5.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/lodash.isequal@4.5.0", + "repository_homepage_url": "https://www.npmjs.com/package/lodash.isequal", + "repository_download_url": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "api_data_url": "https://registry.npmjs.org/lodash.isequal/4.5.0" + }, + { + "type": "npm", + "namespace": null, + "name": "lodash.keys", + "version": "3.1.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/lodash._getnative", + "requirement": "^3.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/lodash.isarguments", + "requirement": "^3.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/lodash.isarray", + "requirement": "^3.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/lodash.keys@3.1.2", + "repository_homepage_url": "https://www.npmjs.com/package/lodash.keys", + "repository_download_url": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", + "api_data_url": "https://registry.npmjs.org/lodash.keys/3.1.2" + }, + { + "type": "npm", + "namespace": null, + "name": "lodash", + "version": "4.17.4", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/lodash@4.17.4", + "repository_homepage_url": "https://www.npmjs.com/package/lodash", + "repository_download_url": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "api_data_url": "https://registry.npmjs.org/lodash/4.17.4" + }, + { + "type": "npm", + "namespace": null, + "name": "loose-envify", + "version": "1.3.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/js-tokens", + "requirement": "^3.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/loose-envify@1.3.1", + "repository_homepage_url": "https://www.npmjs.com/package/loose-envify", + "repository_download_url": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "api_data_url": "https://registry.npmjs.org/loose-envify/1.3.1" + }, + { + "type": "npm", + "namespace": null, + "name": "loud-rejection", + "version": "1.6.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/currently-unhandled", + "requirement": "^0.4.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/signal-exit", + "requirement": "^3.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/loud-rejection@1.6.0", + "repository_homepage_url": "https://www.npmjs.com/package/loud-rejection", + "repository_download_url": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "api_data_url": "https://registry.npmjs.org/loud-rejection/1.6.0" + }, + { + "type": "npm", + "namespace": null, + "name": "lowercase-keys", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/lowercase-keys@1.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/lowercase-keys", + "repository_download_url": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/lowercase-keys/1.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "lru-cache", + "version": "4.0.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.0.2.tgz#1d17679c069cda5d040991a09dbc2c0db377e55e", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/pseudomap", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/yallist", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/lru-cache@4.0.2", + "repository_homepage_url": "https://www.npmjs.com/package/lru-cache", + "repository_download_url": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.2.tgz", + "api_data_url": "https://registry.npmjs.org/lru-cache/4.0.2" + }, + { + "type": "npm", + "namespace": null, + "name": "map-obj", + "version": "1.0.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/map-obj@1.0.1", + "repository_homepage_url": "https://www.npmjs.com/package/map-obj", + "repository_download_url": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "api_data_url": "https://registry.npmjs.org/map-obj/1.0.1" + }, + { + "type": "npm", + "namespace": null, + "name": "matcher", + "version": "0.1.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/matcher/-/matcher-0.1.2.tgz#ef20cbde64c24c50cc61af5b83ee0b1b8ff00101", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/escape-string-regexp", + "requirement": "^1.0.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/matcher@0.1.2", + "repository_homepage_url": "https://www.npmjs.com/package/matcher", + "repository_download_url": "https://registry.npmjs.org/matcher/-/matcher-0.1.2.tgz", + "api_data_url": "https://registry.npmjs.org/matcher/0.1.2" + }, + { + "type": "npm", + "namespace": null, + "name": "max-timeout", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/max-timeout/-/max-timeout-1.0.0.tgz#b68f69a2f99e0b476fd4cb23e2059ca750715e1f", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/max-timeout@1.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/max-timeout", + "repository_download_url": "https://registry.npmjs.org/max-timeout/-/max-timeout-1.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/max-timeout/1.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "md5-hex", + "version": "1.3.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/md5-hex/-/md5-hex-1.3.0.tgz#d2c4afe983c4370662179b8cad145219135046c4", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/md5-o-matic", + "requirement": "^0.1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/md5-hex@1.3.0", + "repository_homepage_url": "https://www.npmjs.com/package/md5-hex", + "repository_download_url": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", + "api_data_url": "https://registry.npmjs.org/md5-hex/1.3.0" + }, + { + "type": "npm", + "namespace": null, + "name": "md5-o-matic", + "version": "0.1.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/md5-o-matic/-/md5-o-matic-0.1.1.tgz#822bccd65e117c514fab176b25945d54100a03c3", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/md5-o-matic@0.1.1", + "repository_homepage_url": "https://www.npmjs.com/package/md5-o-matic", + "repository_download_url": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz", + "api_data_url": "https://registry.npmjs.org/md5-o-matic/0.1.1" + }, + { + "type": "npm", + "namespace": null, + "name": "meow", + "version": "3.7.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/camelcase-keys", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/decamelize", + "requirement": "^1.1.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/loud-rejection", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/map-obj", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/minimist", + "requirement": "^1.1.3", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/normalize-package-data", + "requirement": "^2.3.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/object-assign", + "requirement": "^4.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/read-pkg-up", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/redent", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/trim-newlines", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/meow@3.7.0", + "repository_homepage_url": "https://www.npmjs.com/package/meow", + "repository_download_url": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "api_data_url": "https://registry.npmjs.org/meow/3.7.0" + }, + { + "type": "npm", + "namespace": null, + "name": "micromatch", + "version": "2.3.11", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/arr-diff", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/array-unique", + "requirement": "^0.2.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/braces", + "requirement": "^1.8.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/expand-brackets", + "requirement": "^0.1.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/extglob", + "requirement": "^0.3.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/filename-regex", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-extglob", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-glob", + "requirement": "^2.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/kind-of", + "requirement": "^3.0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/normalize-path", + "requirement": "^2.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/object.omit", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/parse-glob", + "requirement": "^3.0.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/regex-cache", + "requirement": "^0.4.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/micromatch@2.3.11", + "repository_homepage_url": "https://www.npmjs.com/package/micromatch", + "repository_download_url": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "api_data_url": "https://registry.npmjs.org/micromatch/2.3.11" + }, + { + "type": "npm", + "namespace": null, + "name": "mime-db", + "version": "1.26.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/mime-db/-/mime-db-1.26.0.tgz#eaffcd0e4fc6935cf8134da246e2e6c35305adff", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/mime-db@1.26.0", + "repository_homepage_url": "https://www.npmjs.com/package/mime-db", + "repository_download_url": "https://registry.npmjs.org/mime-db/-/mime-db-1.26.0.tgz", + "api_data_url": "https://registry.npmjs.org/mime-db/1.26.0" + }, + { + "type": "npm", + "namespace": null, + "name": "mime-types", + "version": "2.1.14", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.14.tgz#f7ef7d97583fcaf3b7d282b6f8b5679dab1e94ee", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/mime-db", + "requirement": "~1.26.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/mime-types@2.1.14", + "repository_homepage_url": "https://www.npmjs.com/package/mime-types", + "repository_download_url": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz", + "api_data_url": "https://registry.npmjs.org/mime-types/2.1.14" + }, + { + "type": "npm", + "namespace": null, + "name": "minimatch", + "version": "3.0.3", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/brace-expansion", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/minimatch@3.0.3", + "repository_homepage_url": "https://www.npmjs.com/package/minimatch", + "repository_download_url": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", + "api_data_url": "https://registry.npmjs.org/minimatch/3.0.3" + }, + { + "type": "npm", + "namespace": null, + "name": "minimist", + "version": "0.0.8", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/minimist@0.0.8", + "repository_homepage_url": "https://www.npmjs.com/package/minimist", + "repository_download_url": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "api_data_url": "https://registry.npmjs.org/minimist/0.0.8" + }, + { + "type": "npm", + "namespace": null, + "name": "minimist", + "version": "1.2.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/minimist@1.2.0", + "repository_homepage_url": "https://www.npmjs.com/package/minimist", + "repository_download_url": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "api_data_url": "https://registry.npmjs.org/minimist/1.2.0" + }, + { + "type": "npm", + "namespace": null, + "name": "mkdirp", + "version": "0.5.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/minimist", + "requirement": "0.0.8", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/mkdirp@0.5.1", + "repository_homepage_url": "https://www.npmjs.com/package/mkdirp", + "repository_download_url": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "api_data_url": "https://registry.npmjs.org/mkdirp/0.5.1" + }, + { + "type": "npm", + "namespace": null, + "name": "mocha", + "version": "3.2.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/mocha/-/mocha-3.2.0.tgz#7dc4f45e5088075171a68896814e6ae9eb7a85e3", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/browser-stdout", + "requirement": "1.3.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/commander", + "requirement": "2.9.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/debug", + "requirement": "2.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/diff", + "requirement": "1.4.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/escape-string-regexp", + "requirement": "1.0.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/glob", + "requirement": "7.0.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/growl", + "requirement": "1.9.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/json3", + "requirement": "3.3.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/lodash.create", + "requirement": "3.1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/mkdirp", + "requirement": "0.5.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/supports-color", + "requirement": "3.1.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/mocha@3.2.0", + "repository_homepage_url": "https://www.npmjs.com/package/mocha", + "repository_download_url": "https://registry.npmjs.org/mocha/-/mocha-3.2.0.tgz", + "api_data_url": "https://registry.npmjs.org/mocha/3.2.0" + }, + { + "type": "npm", + "namespace": null, + "name": "ms", + "version": "0.7.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/ms@0.7.1", + "repository_homepage_url": "https://www.npmjs.com/package/ms", + "repository_download_url": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "api_data_url": "https://registry.npmjs.org/ms/0.7.1" + }, + { + "type": "npm", + "namespace": null, + "name": "multimatch", + "version": "2.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/array-differ", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/array-union", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/arrify", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/minimatch", + "requirement": "^3.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/multimatch@2.1.0", + "repository_homepage_url": "https://www.npmjs.com/package/multimatch", + "repository_download_url": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", + "api_data_url": "https://registry.npmjs.org/multimatch/2.1.0" + }, + { + "type": "npm", + "namespace": null, + "name": "nan", + "version": "2.5.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/nan/-/nan-2.5.0.tgz#aa8f1e34531d807e9e27755b234b4a6ec0c152a8", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/nan@2.5.0", + "repository_homepage_url": "https://www.npmjs.com/package/nan", + "repository_download_url": "https://registry.npmjs.org/nan/-/nan-2.5.0.tgz", + "api_data_url": "https://registry.npmjs.org/nan/2.5.0" + }, + { + "type": "npm", + "namespace": null, + "name": "node-pre-gyp", + "version": "0.6.32", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.32.tgz#fc452b376e7319b3d255f5f34853ef6fd8fe1fd5", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/mkdirp", + "requirement": "~0.5.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/nopt", + "requirement": "~3.0.6", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/npmlog", + "requirement": "^4.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/rc", + "requirement": "~1.1.6", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/request", + "requirement": "^2.79.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/rimraf", + "requirement": "~2.5.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/semver", + "requirement": "~5.3.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/tar", + "requirement": "~2.2.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/tar-pack", + "requirement": "~3.3.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/node-pre-gyp@0.6.32", + "repository_homepage_url": "https://www.npmjs.com/package/node-pre-gyp", + "repository_download_url": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.32.tgz", + "api_data_url": "https://registry.npmjs.org/node-pre-gyp/0.6.32" + }, + { + "type": "npm", + "namespace": null, + "name": "node-status-codes", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/node-status-codes/-/node-status-codes-1.0.0.tgz#5ae5541d024645d32a58fcddc9ceecea7ae3ac2f", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/node-status-codes@1.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/node-status-codes", + "repository_download_url": "https://registry.npmjs.org/node-status-codes/-/node-status-codes-1.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/node-status-codes/1.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "nopt", + "version": "3.0.6", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/abbrev", + "requirement": "1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/nopt@3.0.6", + "repository_homepage_url": "https://www.npmjs.com/package/nopt", + "repository_download_url": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "api_data_url": "https://registry.npmjs.org/nopt/3.0.6" + }, + { + "type": "npm", + "namespace": null, + "name": "normalize-package-data", + "version": "2.3.5", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.5.tgz#8d924f142960e1777e7ffe170543631cc7cb02df", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/hosted-git-info", + "requirement": "^2.1.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-builtin-module", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/validate-npm-package-license", + "requirement": "^3.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/normalize-package-data@2.3.5", + "repository_homepage_url": "https://www.npmjs.com/package/normalize-package-data", + "repository_download_url": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz", + "api_data_url": "https://registry.npmjs.org/normalize-package-data/2.3.5" + }, + { + "type": "npm", + "namespace": null, + "name": "normalize-path", + "version": "2.0.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.0.1.tgz#47886ac1662760d4261b7d979d241709d3ce3f7a", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/normalize-path@2.0.1", + "repository_homepage_url": "https://www.npmjs.com/package/normalize-path", + "repository_download_url": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.0.1.tgz", + "api_data_url": "https://registry.npmjs.org/normalize-path/2.0.1" + }, + { + "type": "npm", + "namespace": null, + "name": "npmlog", + "version": "4.0.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/npmlog/-/npmlog-4.0.2.tgz#d03950e0e78ce1527ba26d2a7592e9348ac3e75f", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/are-we-there-yet", + "requirement": "~1.1.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/console-control-strings", + "requirement": "~1.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/gauge", + "requirement": "~2.7.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/set-blocking", + "requirement": "~2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/npmlog@4.0.2", + "repository_homepage_url": "https://www.npmjs.com/package/npmlog", + "repository_download_url": "https://registry.npmjs.org/npmlog/-/npmlog-4.0.2.tgz", + "api_data_url": "https://registry.npmjs.org/npmlog/4.0.2" + }, + { + "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": "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/number-is-nan@1.0.1", + "repository_homepage_url": "https://www.npmjs.com/package/number-is-nan", + "repository_download_url": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "api_data_url": "https://registry.npmjs.org/number-is-nan/1.0.1" + }, + { + "type": "npm", + "namespace": null, + "name": "oauth-sign", + "version": "0.8.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/oauth-sign@0.8.2", + "repository_homepage_url": "https://www.npmjs.com/package/oauth-sign", + "repository_download_url": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "api_data_url": "https://registry.npmjs.org/oauth-sign/0.8.2" + }, + { + "type": "npm", + "namespace": null, + "name": "object-assign", + "version": "4.1.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/object-assign@4.1.1", + "repository_homepage_url": "https://www.npmjs.com/package/object-assign", + "repository_download_url": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "api_data_url": "https://registry.npmjs.org/object-assign/4.1.1" + }, + { + "type": "npm", + "namespace": null, + "name": "object.omit", + "version": "2.0.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/for-own", + "requirement": "^0.1.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-extendable", + "requirement": "^0.1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/object.omit@2.0.1", + "repository_homepage_url": "https://www.npmjs.com/package/object.omit", + "repository_download_url": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "api_data_url": "https://registry.npmjs.org/object.omit/2.0.1" + }, + { + "type": "npm", + "namespace": null, + "name": "observable-to-promise", + "version": "0.4.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/observable-to-promise/-/observable-to-promise-0.4.0.tgz#28afe71645308f2d41d71f47ad3fece1a377e52b", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/is-observable", + "requirement": "^0.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/symbol-observable", + "requirement": "^0.2.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/observable-to-promise@0.4.0", + "repository_homepage_url": "https://www.npmjs.com/package/observable-to-promise", + "repository_download_url": "https://registry.npmjs.org/observable-to-promise/-/observable-to-promise-0.4.0.tgz", + "api_data_url": "https://registry.npmjs.org/observable-to-promise/0.4.0" + }, + { + "type": "npm", + "namespace": null, + "name": "once", + "version": "1.4.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/wrappy", + "requirement": "1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/once@1.4.0", + "repository_homepage_url": "https://www.npmjs.com/package/once", + "repository_download_url": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "api_data_url": "https://registry.npmjs.org/once/1.4.0" + }, + { + "type": "npm", + "namespace": null, + "name": "once", + "version": "1.3.3", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/wrappy", + "requirement": "1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/once@1.3.3", + "repository_homepage_url": "https://www.npmjs.com/package/once", + "repository_download_url": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "api_data_url": "https://registry.npmjs.org/once/1.3.3" + }, + { + "type": "npm", + "namespace": null, + "name": "onetime", + "version": "1.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/onetime@1.1.0", + "repository_homepage_url": "https://www.npmjs.com/package/onetime", + "repository_download_url": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "api_data_url": "https://registry.npmjs.org/onetime/1.1.0" + }, + { + "type": "npm", + "namespace": null, + "name": "option-chain", + "version": "0.1.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/option-chain/-/option-chain-0.1.1.tgz#e9b811e006f1c0f54802f28295bfc8970f8dcfbd", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/object-assign", + "requirement": "^4.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/option-chain@0.1.1", + "repository_homepage_url": "https://www.npmjs.com/package/option-chain", + "repository_download_url": "https://registry.npmjs.org/option-chain/-/option-chain-0.1.1.tgz", + "api_data_url": "https://registry.npmjs.org/option-chain/0.1.1" + }, + { + "type": "npm", + "namespace": null, + "name": "os-homedir", + "version": "1.0.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/os-homedir@1.0.2", + "repository_homepage_url": "https://www.npmjs.com/package/os-homedir", + "repository_download_url": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "api_data_url": "https://registry.npmjs.org/os-homedir/1.0.2" + }, + { + "type": "npm", + "namespace": null, + "name": "os-tmpdir", + "version": "1.0.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/os-tmpdir@1.0.2", + "repository_homepage_url": "https://www.npmjs.com/package/os-tmpdir", + "repository_download_url": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "api_data_url": "https://registry.npmjs.org/os-tmpdir/1.0.2" + }, + { + "type": "npm", + "namespace": null, + "name": "osenv", + "version": "0.1.4", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/os-homedir", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/os-tmpdir", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/osenv@0.1.4", + "repository_homepage_url": "https://www.npmjs.com/package/osenv", + "repository_download_url": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", + "api_data_url": "https://registry.npmjs.org/osenv/0.1.4" + }, + { + "type": "npm", + "namespace": null, + "name": "package-hash", + "version": "1.2.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/package-hash/-/package-hash-1.2.0.tgz#003e56cd57b736a6ed6114cc2b81542672770e44", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/md5-hex", + "requirement": "^1.3.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/package-hash@1.2.0", + "repository_homepage_url": "https://www.npmjs.com/package/package-hash", + "repository_download_url": "https://registry.npmjs.org/package-hash/-/package-hash-1.2.0.tgz", + "api_data_url": "https://registry.npmjs.org/package-hash/1.2.0" + }, + { + "type": "npm", + "namespace": null, + "name": "package-json", + "version": "2.4.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/package-json/-/package-json-2.4.0.tgz#0d15bd67d1cbbddbb2ca222ff2edb86bcb31a8bb", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/got", + "requirement": "^5.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/registry-auth-token", + "requirement": "^3.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/registry-url", + "requirement": "^3.0.3", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/semver", + "requirement": "^5.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/package-json@2.4.0", + "repository_homepage_url": "https://www.npmjs.com/package/package-json", + "repository_download_url": "https://registry.npmjs.org/package-json/-/package-json-2.4.0.tgz", + "api_data_url": "https://registry.npmjs.org/package-json/2.4.0" + }, + { + "type": "npm", + "namespace": null, + "name": "parse-glob", + "version": "3.0.4", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/glob-base", + "requirement": "^0.3.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-dotfile", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-extglob", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-glob", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/parse-glob@3.0.4", + "repository_homepage_url": "https://www.npmjs.com/package/parse-glob", + "repository_download_url": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "api_data_url": "https://registry.npmjs.org/parse-glob/3.0.4" + }, + { + "type": "npm", + "namespace": null, + "name": "parse-json", + "version": "2.2.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/error-ex", + "requirement": "^1.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/parse-json@2.2.0", + "repository_homepage_url": "https://www.npmjs.com/package/parse-json", + "repository_download_url": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "api_data_url": "https://registry.npmjs.org/parse-json/2.2.0" + }, + { + "type": "npm", + "namespace": null, + "name": "parse-ms", + "version": "0.1.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/parse-ms/-/parse-ms-0.1.2.tgz#dd3fa25ed6c2efc7bdde12ad9b46c163aa29224e", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/parse-ms@0.1.2", + "repository_homepage_url": "https://www.npmjs.com/package/parse-ms", + "repository_download_url": "https://registry.npmjs.org/parse-ms/-/parse-ms-0.1.2.tgz", + "api_data_url": "https://registry.npmjs.org/parse-ms/0.1.2" + }, + { + "type": "npm", + "namespace": null, + "name": "parse-ms", + "version": "1.0.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/parse-ms/-/parse-ms-1.0.1.tgz#56346d4749d78f23430ca0c713850aef91aa361d", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/parse-ms@1.0.1", + "repository_homepage_url": "https://www.npmjs.com/package/parse-ms", + "repository_download_url": "https://registry.npmjs.org/parse-ms/-/parse-ms-1.0.1.tgz", + "api_data_url": "https://registry.npmjs.org/parse-ms/1.0.1" + }, + { + "type": "npm", + "namespace": null, + "name": "path-exists", + "version": "2.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/pinkie-promise", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/path-exists@2.1.0", + "repository_homepage_url": "https://www.npmjs.com/package/path-exists", + "repository_download_url": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "api_data_url": "https://registry.npmjs.org/path-exists/2.1.0" + }, + { + "type": "npm", + "namespace": null, + "name": "path-is-absolute", + "version": "1.0.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/path-is-absolute@1.0.1", + "repository_homepage_url": "https://www.npmjs.com/package/path-is-absolute", + "repository_download_url": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "api_data_url": "https://registry.npmjs.org/path-is-absolute/1.0.1" + }, + { + "type": "npm", + "namespace": null, + "name": "path-type", + "version": "1.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/graceful-fs", + "requirement": "^4.1.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/pify", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/pinkie-promise", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/path-type@1.1.0", + "repository_homepage_url": "https://www.npmjs.com/package/path-type", + "repository_download_url": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "api_data_url": "https://registry.npmjs.org/path-type/1.1.0" + }, + { + "type": "npm", + "namespace": null, + "name": "pify", + "version": "2.3.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/pify@2.3.0", + "repository_homepage_url": "https://www.npmjs.com/package/pify", + "repository_download_url": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "api_data_url": "https://registry.npmjs.org/pify/2.3.0" + }, + { + "type": "npm", + "namespace": null, + "name": "pinkie-promise", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-1.0.0.tgz#d1da67f5482563bb7cf57f286ae2822ecfbf3670", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/pinkie", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/pinkie-promise@1.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/pinkie-promise", + "repository_download_url": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-1.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/pinkie-promise/1.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "pinkie-promise", + "version": "2.0.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/pinkie", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/pinkie-promise@2.0.1", + "repository_homepage_url": "https://www.npmjs.com/package/pinkie-promise", + "repository_download_url": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "api_data_url": "https://registry.npmjs.org/pinkie-promise/2.0.1" + }, + { + "type": "npm", + "namespace": null, + "name": "pinkie", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/pinkie/-/pinkie-1.0.0.tgz#5a47f28ba1015d0201bda7bf0f358e47bec8c7e4", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/pinkie@1.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/pinkie", + "repository_download_url": "https://registry.npmjs.org/pinkie/-/pinkie-1.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/pinkie/1.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "pinkie", + "version": "2.0.4", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/pinkie@2.0.4", + "repository_homepage_url": "https://www.npmjs.com/package/pinkie", + "repository_download_url": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "api_data_url": "https://registry.npmjs.org/pinkie/2.0.4" + }, + { + "type": "npm", + "namespace": null, + "name": "pkg-conf", + "version": "1.1.3", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-1.1.3.tgz#378e56d6fd13e88bfb6f4a25df7a83faabddba5b", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/find-up", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/load-json-file", + "requirement": "^1.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/object-assign", + "requirement": "^4.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/symbol", + "requirement": "^0.2.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/pkg-conf@1.1.3", + "repository_homepage_url": "https://www.npmjs.com/package/pkg-conf", + "repository_download_url": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-1.1.3.tgz", + "api_data_url": "https://registry.npmjs.org/pkg-conf/1.1.3" + }, + { + "type": "npm", + "namespace": null, + "name": "pkg-dir", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/find-up", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/pkg-dir@1.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/pkg-dir", + "repository_download_url": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/pkg-dir/1.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "plur", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/plur/-/plur-1.0.0.tgz#db85c6814f5e5e5a3b49efc28d604fec62975156", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/plur@1.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/plur", + "repository_download_url": "https://registry.npmjs.org/plur/-/plur-1.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/plur/1.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "plur", + "version": "2.1.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/plur/-/plur-2.1.2.tgz#7482452c1a0f508e3e344eaec312c91c29dc655a", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/irregular-plurals", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/plur@2.1.2", + "repository_homepage_url": "https://www.npmjs.com/package/plur", + "repository_download_url": "https://registry.npmjs.org/plur/-/plur-2.1.2.tgz", + "api_data_url": "https://registry.npmjs.org/plur/2.1.2" + }, + { + "type": "npm", + "namespace": null, + "name": "power-assert-context-formatter", + "version": "1.1.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/power-assert-context-formatter/-/power-assert-context-formatter-1.1.1.tgz#edba352d3ed8a603114d667265acce60d689ccdf", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/core-js", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/power-assert-context-traversal", + "requirement": "^1.1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/power-assert-context-formatter@1.1.1", + "repository_homepage_url": "https://www.npmjs.com/package/power-assert-context-formatter", + "repository_download_url": "https://registry.npmjs.org/power-assert-context-formatter/-/power-assert-context-formatter-1.1.1.tgz", + "api_data_url": "https://registry.npmjs.org/power-assert-context-formatter/1.1.1" + }, + { + "type": "npm", + "namespace": null, + "name": "power-assert-context-traversal", + "version": "1.1.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/power-assert-context-traversal/-/power-assert-context-traversal-1.1.1.tgz#88cabca0d13b6359f07d3d3e8afa699264577ed9", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/core-js", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/estraverse", + "requirement": "^4.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/power-assert-context-traversal@1.1.1", + "repository_homepage_url": "https://www.npmjs.com/package/power-assert-context-traversal", + "repository_download_url": "https://registry.npmjs.org/power-assert-context-traversal/-/power-assert-context-traversal-1.1.1.tgz", + "api_data_url": "https://registry.npmjs.org/power-assert-context-traversal/1.1.1" + }, + { + "type": "npm", + "namespace": null, + "name": "power-assert-renderer-assertion", + "version": "1.1.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/power-assert-renderer-assertion/-/power-assert-renderer-assertion-1.1.1.tgz#cbfc0e77e0086a8f96af3f1d8e67b9ee7e28ce98", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/power-assert-renderer-base", + "requirement": "^1.1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/power-assert-util-string-width", + "requirement": "^1.1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/power-assert-renderer-assertion@1.1.1", + "repository_homepage_url": "https://www.npmjs.com/package/power-assert-renderer-assertion", + "repository_download_url": "https://registry.npmjs.org/power-assert-renderer-assertion/-/power-assert-renderer-assertion-1.1.1.tgz", + "api_data_url": "https://registry.npmjs.org/power-assert-renderer-assertion/1.1.1" + }, + { + "type": "npm", + "namespace": null, + "name": "power-assert-renderer-base", + "version": "1.1.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/power-assert-renderer-base/-/power-assert-renderer-base-1.1.1.tgz#96a650c6fd05ee1bc1f66b54ad61442c8b3f63eb", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/power-assert-renderer-base@1.1.1", + "repository_homepage_url": "https://www.npmjs.com/package/power-assert-renderer-base", + "repository_download_url": "https://registry.npmjs.org/power-assert-renderer-base/-/power-assert-renderer-base-1.1.1.tgz", + "api_data_url": "https://registry.npmjs.org/power-assert-renderer-base/1.1.1" + }, + { + "type": "npm", + "namespace": null, + "name": "power-assert-renderer-diagram", + "version": "1.1.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/power-assert-renderer-diagram/-/power-assert-renderer-diagram-1.1.1.tgz#7e0c82cc08a84b155e51b5ae94f59709778a65fb", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/core-js", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/power-assert-renderer-base", + "requirement": "^1.1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/power-assert-util-string-width", + "requirement": "^1.1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/stringifier", + "requirement": "^1.3.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/power-assert-renderer-diagram@1.1.1", + "repository_homepage_url": "https://www.npmjs.com/package/power-assert-renderer-diagram", + "repository_download_url": "https://registry.npmjs.org/power-assert-renderer-diagram/-/power-assert-renderer-diagram-1.1.1.tgz", + "api_data_url": "https://registry.npmjs.org/power-assert-renderer-diagram/1.1.1" + }, + { + "type": "npm", + "namespace": null, + "name": "power-assert-renderer-succinct", + "version": "1.1.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/power-assert-renderer-succinct/-/power-assert-renderer-succinct-1.1.1.tgz#c2a468b23822abd6f80e2aba5322347b09df476e", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/core-js", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/power-assert-renderer-diagram", + "requirement": "^1.1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/power-assert-renderer-succinct@1.1.1", + "repository_homepage_url": "https://www.npmjs.com/package/power-assert-renderer-succinct", + "repository_download_url": "https://registry.npmjs.org/power-assert-renderer-succinct/-/power-assert-renderer-succinct-1.1.1.tgz", + "api_data_url": "https://registry.npmjs.org/power-assert-renderer-succinct/1.1.1" + }, + { + "type": "npm", + "namespace": null, + "name": "power-assert-util-string-width", + "version": "1.1.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/power-assert-util-string-width/-/power-assert-util-string-width-1.1.1.tgz#be659eb7937fdd2e6c9a77268daaf64bd5b7c592", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/eastasianwidth", + "requirement": "^0.1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/power-assert-util-string-width@1.1.1", + "repository_homepage_url": "https://www.npmjs.com/package/power-assert-util-string-width", + "repository_download_url": "https://registry.npmjs.org/power-assert-util-string-width/-/power-assert-util-string-width-1.1.1.tgz", + "api_data_url": "https://registry.npmjs.org/power-assert-util-string-width/1.1.1" + }, + { + "type": "npm", + "namespace": null, + "name": "prepend-http", + "version": "1.0.4", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/prepend-http@1.0.4", + "repository_homepage_url": "https://www.npmjs.com/package/prepend-http", + "repository_download_url": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "api_data_url": "https://registry.npmjs.org/prepend-http/1.0.4" + }, + { + "type": "npm", + "namespace": null, + "name": "preserve", + "version": "0.2.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/preserve@0.2.0", + "repository_homepage_url": "https://www.npmjs.com/package/preserve", + "repository_download_url": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "api_data_url": "https://registry.npmjs.org/preserve/0.2.0" + }, + { + "type": "npm", + "namespace": null, + "name": "pretty-ms", + "version": "0.2.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-0.2.2.tgz#da879a682ff33a37011046f13d627f67c73b84f6", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/parse-ms", + "requirement": "^0.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/pretty-ms@0.2.2", + "repository_homepage_url": "https://www.npmjs.com/package/pretty-ms", + "repository_download_url": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-0.2.2.tgz", + "api_data_url": "https://registry.npmjs.org/pretty-ms/0.2.2" + }, + { + "type": "npm", + "namespace": null, + "name": "pretty-ms", + "version": "2.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-2.1.0.tgz#4257c256df3fb0b451d6affaab021884126981dc", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/is-finite", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/parse-ms", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/plur", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/pretty-ms@2.1.0", + "repository_homepage_url": "https://www.npmjs.com/package/pretty-ms", + "repository_download_url": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-2.1.0.tgz", + "api_data_url": "https://registry.npmjs.org/pretty-ms/2.1.0" + }, + { + "type": "npm", + "namespace": null, + "name": "private", + "version": "0.1.6", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/private/-/private-0.1.6.tgz#55c6a976d0f9bafb9924851350fe47b9b5fbb7c1", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/private@0.1.6", + "repository_homepage_url": "https://www.npmjs.com/package/private", + "repository_download_url": "https://registry.npmjs.org/private/-/private-0.1.6.tgz", + "api_data_url": "https://registry.npmjs.org/private/0.1.6" + }, + { + "type": "npm", + "namespace": null, + "name": "process-nextick-args", + "version": "1.0.7", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/process-nextick-args@1.0.7", + "repository_homepage_url": "https://www.npmjs.com/package/process-nextick-args", + "repository_download_url": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "api_data_url": "https://registry.npmjs.org/process-nextick-args/1.0.7" + }, + { + "type": "npm", + "namespace": null, + "name": "pseudomap", + "version": "1.0.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/pseudomap@1.0.2", + "repository_homepage_url": "https://www.npmjs.com/package/pseudomap", + "repository_download_url": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "api_data_url": "https://registry.npmjs.org/pseudomap/1.0.2" + }, + { + "type": "npm", + "namespace": null, + "name": "punycode", + "version": "1.4.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/punycode@1.4.1", + "repository_homepage_url": "https://www.npmjs.com/package/punycode", + "repository_download_url": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "api_data_url": "https://registry.npmjs.org/punycode/1.4.1" + }, + { + "type": "npm", + "namespace": null, + "name": "qs", + "version": "6.3.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/qs/-/qs-6.3.0.tgz#f403b264f23bc01228c74131b407f18d5ea5d442", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/qs@6.3.0", + "repository_homepage_url": "https://www.npmjs.com/package/qs", + "repository_download_url": "https://registry.npmjs.org/qs/-/qs-6.3.0.tgz", + "api_data_url": "https://registry.npmjs.org/qs/6.3.0" + }, + { + "type": "npm", + "namespace": null, + "name": "randomatic", + "version": "1.1.6", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.6.tgz#110dcabff397e9dcff7c0789ccc0a49adf1ec5bb", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/is-number", + "requirement": "^2.0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/kind-of", + "requirement": "^3.0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/randomatic@1.1.6", + "repository_homepage_url": "https://www.npmjs.com/package/randomatic", + "repository_download_url": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.6.tgz", + "api_data_url": "https://registry.npmjs.org/randomatic/1.1.6" + }, + { + "type": "npm", + "namespace": null, + "name": "rc", + "version": "1.1.6", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/rc/-/rc-1.1.6.tgz#43651b76b6ae53b5c802f1151fa3fc3b059969c9", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/deep-extend", + "requirement": "~0.4.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/ini", + "requirement": "~1.3.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/minimist", + "requirement": "^1.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/strip-json-comments", + "requirement": "~1.0.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/rc@1.1.6", + "repository_homepage_url": "https://www.npmjs.com/package/rc", + "repository_download_url": "https://registry.npmjs.org/rc/-/rc-1.1.6.tgz", + "api_data_url": "https://registry.npmjs.org/rc/1.1.6" + }, + { + "type": "npm", + "namespace": null, + "name": "read-all-stream", + "version": "3.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/read-all-stream/-/read-all-stream-3.1.0.tgz#35c3e177f2078ef789ee4bfafa4373074eaef4fa", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/pinkie-promise", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/readable-stream", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/read-all-stream@3.1.0", + "repository_homepage_url": "https://www.npmjs.com/package/read-all-stream", + "repository_download_url": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz", + "api_data_url": "https://registry.npmjs.org/read-all-stream/3.1.0" + }, + { + "type": "npm", + "namespace": null, + "name": "read-pkg-up", + "version": "1.0.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/find-up", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/read-pkg", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/read-pkg-up@1.0.1", + "repository_homepage_url": "https://www.npmjs.com/package/read-pkg-up", + "repository_download_url": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "api_data_url": "https://registry.npmjs.org/read-pkg-up/1.0.1" + }, + { + "type": "npm", + "namespace": null, + "name": "read-pkg", + "version": "1.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/load-json-file", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/normalize-package-data", + "requirement": "^2.3.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/path-type", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/read-pkg@1.1.0", + "repository_homepage_url": "https://www.npmjs.com/package/read-pkg", + "repository_download_url": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "api_data_url": "https://registry.npmjs.org/read-pkg/1.1.0" + }, + { + "type": "npm", + "namespace": null, + "name": "readable-stream", + "version": "2.2.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.2.tgz#a9e6fec3c7dda85f8bb1b3ba7028604556fc825e", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/buffer-shims", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/core-util-is", + "requirement": "~1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/inherits", + "requirement": "~2.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/isarray", + "requirement": "~1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/process-nextick-args", + "requirement": "~1.0.6", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/string_decoder", + "requirement": "~0.10.x", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/util-deprecate", + "requirement": "~1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/readable-stream@2.2.2", + "repository_homepage_url": "https://www.npmjs.com/package/readable-stream", + "repository_download_url": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz", + "api_data_url": "https://registry.npmjs.org/readable-stream/2.2.2" + }, + { + "type": "npm", + "namespace": null, + "name": "readable-stream", + "version": "2.1.5", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/buffer-shims", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/core-util-is", + "requirement": "~1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/inherits", + "requirement": "~2.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/isarray", + "requirement": "~1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/process-nextick-args", + "requirement": "~1.0.6", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/string_decoder", + "requirement": "~0.10.x", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/util-deprecate", + "requirement": "~1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/readable-stream@2.1.5", + "repository_homepage_url": "https://www.npmjs.com/package/readable-stream", + "repository_download_url": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.5.tgz", + "api_data_url": "https://registry.npmjs.org/readable-stream/2.1.5" + }, + { + "type": "npm", + "namespace": null, + "name": "readdirp", + "version": "2.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/graceful-fs", + "requirement": "^4.1.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/minimatch", + "requirement": "^3.0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/readable-stream", + "requirement": "^2.0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/set-immediate-shim", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/readdirp@2.1.0", + "repository_homepage_url": "https://www.npmjs.com/package/readdirp", + "repository_download_url": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", + "api_data_url": "https://registry.npmjs.org/readdirp/2.1.0" + }, + { + "type": "npm", + "namespace": null, + "name": "redent", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/indent-string", + "requirement": "^2.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/strip-indent", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/redent@1.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/redent", + "repository_download_url": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/redent/1.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "regenerate", + "version": "1.3.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/regenerate@1.3.2", + "repository_homepage_url": "https://www.npmjs.com/package/regenerate", + "repository_download_url": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz", + "api_data_url": "https://registry.npmjs.org/regenerate/1.3.2" + }, + { + "type": "npm", + "namespace": null, + "name": "regenerator-runtime", + "version": "0.10.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.1.tgz#257f41961ce44558b18f7814af48c17559f9faeb", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/regenerator-runtime@0.10.1", + "repository_homepage_url": "https://www.npmjs.com/package/regenerator-runtime", + "repository_download_url": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.1.tgz", + "api_data_url": "https://registry.npmjs.org/regenerator-runtime/0.10.1" + }, + { + "type": "npm", + "namespace": null, + "name": "regenerator-transform", + "version": "0.9.8", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.9.8.tgz#0f88bb2bc03932ddb7b6b7312e68078f01026d6c", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/babel-runtime", + "requirement": "^6.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/babel-types", + "requirement": "^6.19.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/private", + "requirement": "^0.1.6", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/regenerator-transform@0.9.8", + "repository_homepage_url": "https://www.npmjs.com/package/regenerator-transform", + "repository_download_url": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.9.8.tgz", + "api_data_url": "https://registry.npmjs.org/regenerator-transform/0.9.8" + }, + { + "type": "npm", + "namespace": null, + "name": "regex-cache", + "version": "0.4.3", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/is-equal-shallow", + "requirement": "^0.1.3", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-primitive", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/regex-cache@0.4.3", + "repository_homepage_url": "https://www.npmjs.com/package/regex-cache", + "repository_download_url": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz", + "api_data_url": "https://registry.npmjs.org/regex-cache/0.4.3" + }, + { + "type": "npm", + "namespace": null, + "name": "regexpu-core", + "version": "2.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/regenerate", + "requirement": "^1.2.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/regjsgen", + "requirement": "^0.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/regjsparser", + "requirement": "^0.1.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/regexpu-core@2.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/regexpu-core", + "repository_download_url": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/regexpu-core/2.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "registry-auth-token", + "version": "3.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.1.0.tgz#997c08256e0c7999837b90e944db39d8a790276b", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/rc", + "requirement": "^1.1.6", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/registry-auth-token@3.1.0", + "repository_homepage_url": "https://www.npmjs.com/package/registry-auth-token", + "repository_download_url": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.1.0.tgz", + "api_data_url": "https://registry.npmjs.org/registry-auth-token/3.1.0" + }, + { + "type": "npm", + "namespace": null, + "name": "registry-url", + "version": "3.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/rc", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/registry-url@3.1.0", + "repository_homepage_url": "https://www.npmjs.com/package/registry-url", + "repository_download_url": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", + "api_data_url": "https://registry.npmjs.org/registry-url/3.1.0" + }, + { + "type": "npm", + "namespace": null, + "name": "regjsgen", + "version": "0.2.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/regjsgen@0.2.0", + "repository_homepage_url": "https://www.npmjs.com/package/regjsgen", + "repository_download_url": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "api_data_url": "https://registry.npmjs.org/regjsgen/0.2.0" + }, + { + "type": "npm", + "namespace": null, + "name": "regjsparser", + "version": "0.1.5", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/jsesc", + "requirement": "~0.5.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/regjsparser@0.1.5", + "repository_homepage_url": "https://www.npmjs.com/package/regjsparser", + "repository_download_url": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "api_data_url": "https://registry.npmjs.org/regjsparser/0.1.5" + }, + { + "type": "npm", + "namespace": null, + "name": "repeat-element", + "version": "1.1.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/repeat-element@1.1.2", + "repository_homepage_url": "https://www.npmjs.com/package/repeat-element", + "repository_download_url": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "api_data_url": "https://registry.npmjs.org/repeat-element/1.1.2" + }, + { + "type": "npm", + "namespace": null, + "name": "repeat-string", + "version": "1.6.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/repeat-string@1.6.1", + "repository_homepage_url": "https://www.npmjs.com/package/repeat-string", + "repository_download_url": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "api_data_url": "https://registry.npmjs.org/repeat-string/1.6.1" + }, + { + "type": "npm", + "namespace": null, + "name": "repeating", + "version": "2.0.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/is-finite", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/repeating@2.0.1", + "repository_homepage_url": "https://www.npmjs.com/package/repeating", + "repository_download_url": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "api_data_url": "https://registry.npmjs.org/repeating/2.0.1" + }, + { + "type": "npm", + "namespace": null, + "name": "request", + "version": "2.79.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/aws-sign2", + "requirement": "~0.6.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/aws4", + "requirement": "^1.2.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/caseless", + "requirement": "~0.11.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/combined-stream", + "requirement": "~1.0.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/extend", + "requirement": "~3.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/forever-agent", + "requirement": "~0.6.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/form-data", + "requirement": "~2.1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/har-validator", + "requirement": "~2.0.6", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/hawk", + "requirement": "~3.1.3", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/http-signature", + "requirement": "~1.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-typedarray", + "requirement": "~1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/isstream", + "requirement": "~0.1.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/json-stringify-safe", + "requirement": "~5.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/mime-types", + "requirement": "~2.1.7", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/oauth-sign", + "requirement": "~0.8.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/qs", + "requirement": "~6.3.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/stringstream", + "requirement": "~0.0.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/tough-cookie", + "requirement": "~2.3.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/tunnel-agent", + "requirement": "~0.4.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/uuid", + "requirement": "^3.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/request@2.79.0", + "repository_homepage_url": "https://www.npmjs.com/package/request", + "repository_download_url": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", + "api_data_url": "https://registry.npmjs.org/request/2.79.0" + }, + { + "type": "npm", + "namespace": null, + "name": "require-precompiled", + "version": "0.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/require-precompiled/-/require-precompiled-0.1.0.tgz#5a1b52eb70ebed43eb982e974c85ab59571e56fa", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/require-precompiled@0.1.0", + "repository_homepage_url": "https://www.npmjs.com/package/require-precompiled", + "repository_download_url": "https://registry.npmjs.org/require-precompiled/-/require-precompiled-0.1.0.tgz", + "api_data_url": "https://registry.npmjs.org/require-precompiled/0.1.0" + }, + { + "type": "npm", + "namespace": null, + "name": "resolve-cwd", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-1.0.0.tgz#4eaeea41ed040d1702457df64a42b2b07d246f9f", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/resolve-from", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/resolve-cwd@1.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/resolve-cwd", + "repository_download_url": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-1.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/resolve-cwd/1.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "resolve-from", + "version": "2.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/resolve-from@2.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/resolve-from", + "repository_download_url": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/resolve-from/2.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "restore-cursor", + "version": "1.0.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/exit-hook", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/onetime", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/restore-cursor@1.0.1", + "repository_homepage_url": "https://www.npmjs.com/package/restore-cursor", + "repository_download_url": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "api_data_url": "https://registry.npmjs.org/restore-cursor/1.0.1" + }, + { + "type": "npm", + "namespace": null, + "name": "rimraf", + "version": "2.5.4", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/glob", + "requirement": "^7.0.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/rimraf@2.5.4", + "repository_homepage_url": "https://www.npmjs.com/package/rimraf", + "repository_download_url": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.4.tgz", + "api_data_url": "https://registry.npmjs.org/rimraf/2.5.4" + }, + { + "type": "npm", + "namespace": null, + "name": "semver-diff", + "version": "2.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/semver", + "requirement": "^5.0.3", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/semver-diff@2.1.0", + "repository_homepage_url": "https://www.npmjs.com/package/semver-diff", + "repository_download_url": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", + "api_data_url": "https://registry.npmjs.org/semver-diff/2.1.0" + }, + { + "type": "npm", + "namespace": null, + "name": "semver", + "version": "5.3.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/semver@5.3.0", + "repository_homepage_url": "https://www.npmjs.com/package/semver", + "repository_download_url": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "api_data_url": "https://registry.npmjs.org/semver/5.3.0" + }, + { + "type": "npm", + "namespace": null, + "name": "seq", + "version": "0.3.5", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/seq/-/seq-0.3.5.tgz#ae02af3a424793d8ccbf212d69174e0c54dffe38", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/seq@0.3.5", + "repository_homepage_url": "https://www.npmjs.com/package/seq", + "repository_download_url": "https://registry.npmjs.org/seq/-/seq-0.3.5.tgz", + "api_data_url": "https://registry.npmjs.org/seq/0.3.5" + }, + { + "type": "npm", + "namespace": null, + "name": "set-blocking", + "version": "2.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/set-blocking@2.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/set-blocking", + "repository_download_url": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/set-blocking/2.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "set-immediate-shim", + "version": "1.0.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/set-immediate-shim@1.0.1", + "repository_homepage_url": "https://www.npmjs.com/package/set-immediate-shim", + "repository_download_url": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "api_data_url": "https://registry.npmjs.org/set-immediate-shim/1.0.1" + }, + { + "type": "npm", + "namespace": null, + "name": "signal-exit", + "version": "3.0.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/signal-exit@3.0.2", + "repository_homepage_url": "https://www.npmjs.com/package/signal-exit", + "repository_download_url": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "api_data_url": "https://registry.npmjs.org/signal-exit/3.0.2" + }, + { + "type": "npm", + "namespace": null, + "name": "slash", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/slash@1.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/slash", + "repository_download_url": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/slash/1.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "slice-ansi", + "version": "0.0.4", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/slice-ansi@0.0.4", + "repository_homepage_url": "https://www.npmjs.com/package/slice-ansi", + "repository_download_url": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", + "api_data_url": "https://registry.npmjs.org/slice-ansi/0.0.4" + }, + { + "type": "npm", + "namespace": null, + "name": "slide", + "version": "1.1.6", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/slide@1.1.6", + "repository_homepage_url": "https://www.npmjs.com/package/slide", + "repository_download_url": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "api_data_url": "https://registry.npmjs.org/slide/1.1.6" + }, + { + "type": "npm", + "namespace": null, + "name": "sntp", + "version": "1.0.9", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/hoek", + "requirement": "2.x.x", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/sntp@1.0.9", + "repository_homepage_url": "https://www.npmjs.com/package/sntp", + "repository_download_url": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "api_data_url": "https://registry.npmjs.org/sntp/1.0.9" + }, + { + "type": "npm", + "namespace": null, + "name": "sort-keys", + "version": "1.1.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/is-plain-obj", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/sort-keys@1.1.2", + "repository_homepage_url": "https://www.npmjs.com/package/sort-keys", + "repository_download_url": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "api_data_url": "https://registry.npmjs.org/sort-keys/1.1.2" + }, + { + "type": "npm", + "namespace": null, + "name": "source-map-support", + "version": "0.4.9", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.9.tgz#45eaa04f067e049d987b27599ed014a37750aaff", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/source-map", + "requirement": "^0.5.3", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/source-map-support@0.4.9", + "repository_homepage_url": "https://www.npmjs.com/package/source-map-support", + "repository_download_url": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.9.tgz", + "api_data_url": "https://registry.npmjs.org/source-map-support/0.4.9" + }, + { + "type": "npm", + "namespace": null, + "name": "source-map", + "version": "0.5.6", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/source-map@0.5.6", + "repository_homepage_url": "https://www.npmjs.com/package/source-map", + "repository_download_url": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "api_data_url": "https://registry.npmjs.org/source-map/0.5.6" + }, + { + "type": "npm", + "namespace": null, + "name": "spdx-correct", + "version": "1.0.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/spdx-license-ids", + "requirement": "^1.0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/spdx-correct@1.0.2", + "repository_homepage_url": "https://www.npmjs.com/package/spdx-correct", + "repository_download_url": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "api_data_url": "https://registry.npmjs.org/spdx-correct/1.0.2" + }, + { + "type": "npm", + "namespace": null, + "name": "spdx-expression-parse", + "version": "1.0.4", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/spdx-expression-parse@1.0.4", + "repository_homepage_url": "https://www.npmjs.com/package/spdx-expression-parse", + "repository_download_url": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", + "api_data_url": "https://registry.npmjs.org/spdx-expression-parse/1.0.4" + }, + { + "type": "npm", + "namespace": null, + "name": "spdx-license-ids", + "version": "1.2.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/spdx-license-ids@1.2.2", + "repository_homepage_url": "https://www.npmjs.com/package/spdx-license-ids", + "repository_download_url": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", + "api_data_url": "https://registry.npmjs.org/spdx-license-ids/1.2.2" + }, + { + "type": "npm", + "namespace": null, + "name": "sshpk", + "version": "1.10.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/sshpk/-/sshpk-1.10.2.tgz#d5a804ce22695515638e798dbe23273de070a5fa", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/asn1", + "requirement": "~0.2.3", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/assert-plus", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/dashdash", + "requirement": "^1.12.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/getpass", + "requirement": "^0.1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/bcrypt-pbkdf", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/ecc-jsbn", + "requirement": "~0.1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/jodid25519", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/jsbn", + "requirement": "~0.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/tweetnacl", + "requirement": "~0.14.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/sshpk@1.10.2", + "repository_homepage_url": "https://www.npmjs.com/package/sshpk", + "repository_download_url": "https://registry.npmjs.org/sshpk/-/sshpk-1.10.2.tgz", + "api_data_url": "https://registry.npmjs.org/sshpk/1.10.2" + }, + { + "type": "npm", + "namespace": null, + "name": "stack-utils", + "version": "0.4.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/stack-utils/-/stack-utils-0.4.0.tgz#940cb82fccfa84e8ff2f3fdf293fe78016beccd1", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/stack-utils@0.4.0", + "repository_homepage_url": "https://www.npmjs.com/package/stack-utils", + "repository_download_url": "https://registry.npmjs.org/stack-utils/-/stack-utils-0.4.0.tgz", + "api_data_url": "https://registry.npmjs.org/stack-utils/0.4.0" + }, + { + "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": "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/code-point-at", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-fullwidth-code-point", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/strip-ansi", + "requirement": "^3.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/string-width@1.0.2", + "repository_homepage_url": "https://www.npmjs.com/package/string-width", + "repository_download_url": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "api_data_url": "https://registry.npmjs.org/string-width/1.0.2" + }, + { + "type": "npm", + "namespace": null, + "name": "string_decoder", + "version": "0.10.31", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/string_decoder@0.10.31", + "repository_homepage_url": "https://www.npmjs.com/package/string_decoder", + "repository_download_url": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "api_data_url": "https://registry.npmjs.org/string_decoder/0.10.31" + }, + { + "type": "npm", + "namespace": null, + "name": "stringifier", + "version": "1.3.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/stringifier/-/stringifier-1.3.0.tgz#def18342f6933db0f2dbfc9aa02175b448c17959", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/core-js", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/traverse", + "requirement": "^0.6.6", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/type-name", + "requirement": "^2.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/stringifier@1.3.0", + "repository_homepage_url": "https://www.npmjs.com/package/stringifier", + "repository_download_url": "https://registry.npmjs.org/stringifier/-/stringifier-1.3.0.tgz", + "api_data_url": "https://registry.npmjs.org/stringifier/1.3.0" + }, + { + "type": "npm", + "namespace": null, + "name": "stringstream", + "version": "0.0.5", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/stringstream@0.0.5", + "repository_homepage_url": "https://www.npmjs.com/package/stringstream", + "repository_download_url": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "api_data_url": "https://registry.npmjs.org/stringstream/0.0.5" + }, + { + "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": "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/ansi-regex", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/strip-ansi@3.0.1", + "repository_homepage_url": "https://www.npmjs.com/package/strip-ansi", + "repository_download_url": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "api_data_url": "https://registry.npmjs.org/strip-ansi/3.0.1" + }, + { + "type": "npm", + "namespace": null, + "name": "strip-ansi", + "version": "0.1.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/strip-ansi@0.1.1", + "repository_homepage_url": "https://www.npmjs.com/package/strip-ansi", + "repository_download_url": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz", + "api_data_url": "https://registry.npmjs.org/strip-ansi/0.1.1" + }, + { + "type": "npm", + "namespace": null, + "name": "strip-bom", + "version": "2.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/is-utf8", + "requirement": "^0.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/strip-bom@2.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/strip-bom", + "repository_download_url": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/strip-bom/2.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "strip-indent", + "version": "1.0.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/get-stdin", + "requirement": "^4.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/strip-indent@1.0.1", + "repository_homepage_url": "https://www.npmjs.com/package/strip-indent", + "repository_download_url": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "api_data_url": "https://registry.npmjs.org/strip-indent/1.0.1" + }, + { + "type": "npm", + "namespace": null, + "name": "strip-json-comments", + "version": "1.0.4", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/strip-json-comments@1.0.4", + "repository_homepage_url": "https://www.npmjs.com/package/strip-json-comments", + "repository_download_url": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", + "api_data_url": "https://registry.npmjs.org/strip-json-comments/1.0.4" + }, + { + "type": "npm", + "namespace": null, + "name": "supports-color", + "version": "3.1.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/has-flag", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/supports-color@3.1.2", + "repository_homepage_url": "https://www.npmjs.com/package/supports-color", + "repository_download_url": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz", + "api_data_url": "https://registry.npmjs.org/supports-color/3.1.2" + }, + { + "type": "npm", + "namespace": null, + "name": "supports-color", + "version": "0.2.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/supports-color/-/supports-color-0.2.0.tgz#d92de2694eb3f67323973d7ae3d8b55b4c22190a", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/supports-color@0.2.0", + "repository_homepage_url": "https://www.npmjs.com/package/supports-color", + "repository_download_url": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz", + "api_data_url": "https://registry.npmjs.org/supports-color/0.2.0" + }, + { + "type": "npm", + "namespace": null, + "name": "supports-color", + "version": "2.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/supports-color@2.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/supports-color", + "repository_download_url": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/supports-color/2.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "symbol-observable", + "version": "0.2.4", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-0.2.4.tgz#95a83db26186d6af7e7a18dbd9760a2f86d08f40", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/symbol-observable@0.2.4", + "repository_homepage_url": "https://www.npmjs.com/package/symbol-observable", + "repository_download_url": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-0.2.4.tgz", + "api_data_url": "https://registry.npmjs.org/symbol-observable/0.2.4" + }, + { + "type": "npm", + "namespace": null, + "name": "symbol", + "version": "0.2.3", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/symbol/-/symbol-0.2.3.tgz#3b9873b8a901e47c6efe21526a3ac372ef28bbc7", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/symbol@0.2.3", + "repository_homepage_url": "https://www.npmjs.com/package/symbol", + "repository_download_url": "https://registry.npmjs.org/symbol/-/symbol-0.2.3.tgz", + "api_data_url": "https://registry.npmjs.org/symbol/0.2.3" + }, + { + "type": "npm", + "namespace": null, + "name": "tar-pack", + "version": "3.3.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.3.0.tgz#30931816418f55afc4d21775afdd6720cee45dae", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/debug", + "requirement": "~2.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/fstream", + "requirement": "~1.0.10", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/fstream-ignore", + "requirement": "~1.0.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/once", + "requirement": "~1.3.3", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/readable-stream", + "requirement": "~2.1.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/rimraf", + "requirement": "~2.5.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/tar", + "requirement": "~2.2.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/uid-number", + "requirement": "~0.0.6", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/tar-pack@3.3.0", + "repository_homepage_url": "https://www.npmjs.com/package/tar-pack", + "repository_download_url": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.3.0.tgz", + "api_data_url": "https://registry.npmjs.org/tar-pack/3.3.0" + }, + { + "type": "npm", + "namespace": null, + "name": "tar", + "version": "2.2.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/block-stream", + "requirement": "*", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/fstream", + "requirement": "^1.0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/inherits", + "requirement": "2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/tar@2.2.1", + "repository_homepage_url": "https://www.npmjs.com/package/tar", + "repository_download_url": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "api_data_url": "https://registry.npmjs.org/tar/2.2.1" + }, + { + "type": "npm", + "namespace": null, + "name": "text-table", + "version": "0.2.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/text-table@0.2.0", + "repository_homepage_url": "https://www.npmjs.com/package/text-table", + "repository_download_url": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "api_data_url": "https://registry.npmjs.org/text-table/0.2.0" + }, + { + "type": "npm", + "namespace": null, + "name": "the-argv", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/the-argv/-/the-argv-1.0.0.tgz#0084705005730dd84db755253c931ae398db9522", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/the-argv@1.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/the-argv", + "repository_download_url": "https://registry.npmjs.org/the-argv/-/the-argv-1.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/the-argv/1.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "through2", + "version": "2.0.3", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/readable-stream", + "requirement": "^2.1.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/xtend", + "requirement": "~4.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/through2@2.0.3", + "repository_homepage_url": "https://www.npmjs.com/package/through2", + "repository_download_url": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "api_data_url": "https://registry.npmjs.org/through2/2.0.3" + }, + { + "type": "npm", + "namespace": null, + "name": "time-require", + "version": "0.1.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/time-require/-/time-require-0.1.2.tgz#f9e12cb370fc2605e11404582ba54ef5ca2b2d98", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/chalk", + "requirement": "^0.4.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/date-time", + "requirement": "^0.1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/pretty-ms", + "requirement": "^0.2.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/text-table", + "requirement": "^0.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/time-require@0.1.2", + "repository_homepage_url": "https://www.npmjs.com/package/time-require", + "repository_download_url": "https://registry.npmjs.org/time-require/-/time-require-0.1.2.tgz", + "api_data_url": "https://registry.npmjs.org/time-require/0.1.2" + }, + { + "type": "npm", + "namespace": null, + "name": "timed-out", + "version": "3.1.3", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/timed-out/-/timed-out-3.1.3.tgz#95860bfcc5c76c277f8f8326fd0f5b2e20eba217", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/timed-out@3.1.3", + "repository_homepage_url": "https://www.npmjs.com/package/timed-out", + "repository_download_url": "https://registry.npmjs.org/timed-out/-/timed-out-3.1.3.tgz", + "api_data_url": "https://registry.npmjs.org/timed-out/3.1.3" + }, + { + "type": "npm", + "namespace": null, + "name": "to-fast-properties", + "version": "1.0.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.2.tgz#f3f5c0c3ba7299a7ef99427e44633257ade43320", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/to-fast-properties@1.0.2", + "repository_homepage_url": "https://www.npmjs.com/package/to-fast-properties", + "repository_download_url": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.2.tgz", + "api_data_url": "https://registry.npmjs.org/to-fast-properties/1.0.2" + }, + { + "type": "npm", + "namespace": null, + "name": "tough-cookie", + "version": "2.3.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/punycode", + "requirement": "^1.4.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/tough-cookie@2.3.2", + "repository_homepage_url": "https://www.npmjs.com/package/tough-cookie", + "repository_download_url": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", + "api_data_url": "https://registry.npmjs.org/tough-cookie/2.3.2" + }, + { + "type": "npm", + "namespace": null, + "name": "traverse", + "version": "0.6.6", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/traverse@0.6.6", + "repository_homepage_url": "https://www.npmjs.com/package/traverse", + "repository_download_url": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", + "api_data_url": "https://registry.npmjs.org/traverse/0.6.6" + }, + { + "type": "npm", + "namespace": null, + "name": "traverse", + "version": "0.3.9", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/traverse@0.3.9", + "repository_homepage_url": "https://www.npmjs.com/package/traverse", + "repository_download_url": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", + "api_data_url": "https://registry.npmjs.org/traverse/0.3.9" + }, + { + "type": "npm", + "namespace": null, + "name": "trim-newlines", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/trim-newlines@1.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/trim-newlines", + "repository_download_url": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/trim-newlines/1.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "tunnel-agent", + "version": "0.4.3", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/tunnel-agent@0.4.3", + "repository_homepage_url": "https://www.npmjs.com/package/tunnel-agent", + "repository_download_url": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "api_data_url": "https://registry.npmjs.org/tunnel-agent/0.4.3" + }, + { + "type": "npm", + "namespace": null, + "name": "tweetnacl", + "version": "0.14.5", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/tweetnacl@0.14.5", + "repository_homepage_url": "https://www.npmjs.com/package/tweetnacl", + "repository_download_url": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "api_data_url": "https://registry.npmjs.org/tweetnacl/0.14.5" + }, + { + "type": "npm", + "namespace": null, + "name": "type-name", + "version": "2.0.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/type-name/-/type-name-2.0.2.tgz#efe7d4123d8ac52afff7f40c7e4dec5266008fb4", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/type-name@2.0.2", + "repository_homepage_url": "https://www.npmjs.com/package/type-name", + "repository_download_url": "https://registry.npmjs.org/type-name/-/type-name-2.0.2.tgz", + "api_data_url": "https://registry.npmjs.org/type-name/2.0.2" + }, + { + "type": "npm", + "namespace": null, + "name": "uid-number", + "version": "0.0.6", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/uid-number@0.0.6", + "repository_homepage_url": "https://www.npmjs.com/package/uid-number", + "repository_download_url": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", + "api_data_url": "https://registry.npmjs.org/uid-number/0.0.6" + }, + { + "type": "npm", + "namespace": null, + "name": "uid2", + "version": "0.0.3", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/uid2/-/uid2-0.0.3.tgz#483126e11774df2f71b8b639dcd799c376162b82", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/uid2@0.0.3", + "repository_homepage_url": "https://www.npmjs.com/package/uid2", + "repository_download_url": "https://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz", + "api_data_url": "https://registry.npmjs.org/uid2/0.0.3" + }, + { + "type": "npm", + "namespace": null, + "name": "unique-temp-dir", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/unique-temp-dir/-/unique-temp-dir-1.0.0.tgz#6dce95b2681ca003eebfb304a415f9cbabcc5385", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/mkdirp", + "requirement": "^0.5.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/os-tmpdir", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/uid2", + "requirement": "0.0.3", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/unique-temp-dir@1.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/unique-temp-dir", + "repository_download_url": "https://registry.npmjs.org/unique-temp-dir/-/unique-temp-dir-1.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/unique-temp-dir/1.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "unzip-response", + "version": "1.0.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/unzip-response/-/unzip-response-1.0.2.tgz#b984f0877fc0a89c2c773cc1ef7b5b232b5b06fe", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/unzip-response@1.0.2", + "repository_homepage_url": "https://www.npmjs.com/package/unzip-response", + "repository_download_url": "https://registry.npmjs.org/unzip-response/-/unzip-response-1.0.2.tgz", + "api_data_url": "https://registry.npmjs.org/unzip-response/1.0.2" + }, + { + "type": "npm", + "namespace": null, + "name": "update-notifier", + "version": "1.0.3", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/update-notifier/-/update-notifier-1.0.3.tgz#8f92c515482bd6831b7c93013e70f87552c7cf5a", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/boxen", + "requirement": "^0.6.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/chalk", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/configstore", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/is-npm", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/latest-version", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/lazy-req", + "requirement": "^1.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/semver-diff", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/xdg-basedir", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/update-notifier@1.0.3", + "repository_homepage_url": "https://www.npmjs.com/package/update-notifier", + "repository_download_url": "https://registry.npmjs.org/update-notifier/-/update-notifier-1.0.3.tgz", + "api_data_url": "https://registry.npmjs.org/update-notifier/1.0.3" + }, + { + "type": "npm", + "namespace": null, + "name": "url-parse-lax", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/prepend-http", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/url-parse-lax@1.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/url-parse-lax", + "repository_download_url": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/url-parse-lax/1.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "urun", + "version": "0.0.6", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/urun/-/urun-0.0.6.tgz#e0fa856980367d86bf146e180bc3890320ab1d2f", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/utest", + "requirement": "0.0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/urun@0.0.6", + "repository_homepage_url": "https://www.npmjs.com/package/urun", + "repository_download_url": "https://registry.npmjs.org/urun/-/urun-0.0.6.tgz", + "api_data_url": "https://registry.npmjs.org/urun/0.0.6" + }, + { + "type": "npm", + "namespace": null, + "name": "utest", + "version": "0.0.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/utest/-/utest-0.0.2.tgz#3862e2975309ea5de0940444a6c6ee0179726a16", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/utest@0.0.2", + "repository_homepage_url": "https://www.npmjs.com/package/utest", + "repository_download_url": "https://registry.npmjs.org/utest/-/utest-0.0.2.tgz", + "api_data_url": "https://registry.npmjs.org/utest/0.0.2" + }, + { + "type": "npm", + "namespace": null, + "name": "utest", + "version": "0.0.8", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/utest/-/utest-0.0.8.tgz#fc09451fe697b9008d0c432fe0db439d6cf37914", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/utest@0.0.8", + "repository_homepage_url": "https://www.npmjs.com/package/utest", + "repository_download_url": "https://registry.npmjs.org/utest/-/utest-0.0.8.tgz", + "api_data_url": "https://registry.npmjs.org/utest/0.0.8" + }, + { + "type": "npm", + "namespace": null, + "name": "util-deprecate", + "version": "1.0.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/util-deprecate@1.0.2", + "repository_homepage_url": "https://www.npmjs.com/package/util-deprecate", + "repository_download_url": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "api_data_url": "https://registry.npmjs.org/util-deprecate/1.0.2" + }, + { + "type": "npm", + "namespace": null, + "name": "uuid", + "version": "2.0.3", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/uuid@2.0.3", + "repository_homepage_url": "https://www.npmjs.com/package/uuid", + "repository_download_url": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", + "api_data_url": "https://registry.npmjs.org/uuid/2.0.3" + }, + { + "type": "npm", + "namespace": null, + "name": "uuid", + "version": "3.0.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/uuid@3.0.1", + "repository_homepage_url": "https://www.npmjs.com/package/uuid", + "repository_download_url": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", + "api_data_url": "https://registry.npmjs.org/uuid/3.0.1" + }, + { + "type": "npm", + "namespace": null, + "name": "validate-npm-package-license", + "version": "3.0.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/spdx-correct", + "requirement": "~1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/spdx-expression-parse", + "requirement": "~1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/validate-npm-package-license@3.0.1", + "repository_homepage_url": "https://www.npmjs.com/package/validate-npm-package-license", + "repository_download_url": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "api_data_url": "https://registry.npmjs.org/validate-npm-package-license/3.0.1" + }, + { + "type": "npm", + "namespace": null, + "name": "verror", + "version": "1.3.6", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/extsprintf", + "requirement": "1.0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/verror@1.3.6", + "repository_homepage_url": "https://www.npmjs.com/package/verror", + "repository_download_url": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", + "api_data_url": "https://registry.npmjs.org/verror/1.3.6" + }, + { + "type": "npm", + "namespace": null, + "name": "which", + "version": "1.2.12", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/which/-/which-1.2.12.tgz#de67b5e450269f194909ef23ece4ebe416fa1192", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/isexe", + "requirement": "^1.1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/which@1.2.12", + "repository_homepage_url": "https://www.npmjs.com/package/which", + "repository_download_url": "https://registry.npmjs.org/which/-/which-1.2.12.tgz", + "api_data_url": "https://registry.npmjs.org/which/1.2.12" + }, + { + "type": "npm", + "namespace": null, + "name": "wide-align", + "version": "1.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.0.tgz#40edde802a71fea1f070da3e62dcda2e7add96ad", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/string-width", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/wide-align@1.1.0", + "repository_homepage_url": "https://www.npmjs.com/package/wide-align", + "repository_download_url": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.0.tgz", + "api_data_url": "https://registry.npmjs.org/wide-align/1.1.0" + }, + { + "type": "npm", + "namespace": null, + "name": "widest-line", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/widest-line/-/widest-line-1.0.0.tgz#0c09c85c2a94683d0d7eaf8ee097d564bf0e105c", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/string-width", + "requirement": "^1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/widest-line@1.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/widest-line", + "repository_download_url": "https://registry.npmjs.org/widest-line/-/widest-line-1.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/widest-line/1.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "wrappy", + "version": "1.0.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/wrappy@1.0.2", + "repository_homepage_url": "https://www.npmjs.com/package/wrappy", + "repository_download_url": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "api_data_url": "https://registry.npmjs.org/wrappy/1.0.2" + }, + { + "type": "npm", + "namespace": null, + "name": "write-file-atomic", + "version": "1.3.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.1.tgz#7d45ba32316328dd1ec7d90f60ebc0d845bb759a", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/graceful-fs", + "requirement": "^4.1.11", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/imurmurhash", + "requirement": "^0.1.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/slide", + "requirement": "^1.1.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/write-file-atomic@1.3.1", + "repository_homepage_url": "https://www.npmjs.com/package/write-file-atomic", + "repository_download_url": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.1.tgz", + "api_data_url": "https://registry.npmjs.org/write-file-atomic/1.3.1" + }, + { + "type": "npm", + "namespace": null, + "name": "write-json-file", + "version": "1.2.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/write-json-file/-/write-json-file-1.2.0.tgz#2d5dfe96abc3c889057c93971aa4005efb548134", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/graceful-fs", + "requirement": "^4.1.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/mkdirp", + "requirement": "^0.5.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/object-assign", + "requirement": "^4.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/pify", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/pinkie-promise", + "requirement": "^2.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/sort-keys", + "requirement": "^1.1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:npm/write-file-atomic", + "requirement": "^1.1.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/write-json-file@1.2.0", + "repository_homepage_url": "https://www.npmjs.com/package/write-json-file", + "repository_download_url": "https://registry.npmjs.org/write-json-file/-/write-json-file-1.2.0.tgz", + "api_data_url": "https://registry.npmjs.org/write-json-file/1.2.0" + }, + { + "type": "npm", + "namespace": null, + "name": "write-pkg", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/write-pkg/-/write-pkg-1.0.0.tgz#aeb8aa9d4d788e1d893dfb0854968b543a919f57", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/write-json-file", + "requirement": "^1.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/write-pkg@1.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/write-pkg", + "repository_download_url": "https://registry.npmjs.org/write-pkg/-/write-pkg-1.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/write-pkg/1.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "xdg-basedir", + "version": "2.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-2.0.0.tgz#edbc903cc385fc04523d966a335504b5504d1bd2", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:npm/os-homedir", + "requirement": "^1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/xdg-basedir@2.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/xdg-basedir", + "repository_download_url": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-2.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/xdg-basedir/2.0.0" + }, + { + "type": "npm", + "namespace": null, + "name": "xtend", + "version": "4.0.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/xtend@4.0.1", + "repository_homepage_url": "https://www.npmjs.com/package/xtend", + "repository_download_url": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "api_data_url": "https://registry.npmjs.org/xtend/4.0.1" + }, + { + "type": "npm", + "namespace": null, + "name": "yallist", + "version": "2.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.yarnpkg.com/yallist/-/yallist-2.0.0.tgz#306c543835f09ee1a4cb23b7bce9ab341c91cdd4", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:npm/yallist@2.0.0", + "repository_homepage_url": "https://www.npmjs.com/package/yallist", + "repository_download_url": "https://registry.npmjs.org/yallist/-/yallist-2.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/yallist/2.0.0" + } ] \ No newline at end of file diff --git a/tests/packagedcode/data/nuget/Castle.Core.nuspec.json.expected b/tests/packagedcode/data/nuget/Castle.Core.nuspec.json.expected index 81da21b2661..74eeb22f65e 100644 --- a/tests/packagedcode/data/nuget/Castle.Core.nuspec.json.expected +++ b/tests/packagedcode/data/nuget/Castle.Core.nuspec.json.expected @@ -43,6 +43,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:nuget/Castle.Core@4.2.1", "repository_homepage_url": "https://www.nuget.org/packages/Castle.Core/4.2.1", "repository_download_url": "https://www.nuget.org/api/v2/package/Castle.Core/4.2.1", diff --git a/tests/packagedcode/data/nuget/EntityFramework.nuspec.json.expected b/tests/packagedcode/data/nuget/EntityFramework.nuspec.json.expected index fcdad2c50e1..8c1cb38b5ae 100644 --- a/tests/packagedcode/data/nuget/EntityFramework.nuspec.json.expected +++ b/tests/packagedcode/data/nuget/EntityFramework.nuspec.json.expected @@ -43,6 +43,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:nuget/EntityFramework@6.1.3", "repository_homepage_url": "https://www.nuget.org/packages/EntityFramework/6.1.3", "repository_download_url": "https://www.nuget.org/api/v2/package/EntityFramework/6.1.3", diff --git a/tests/packagedcode/data/nuget/Microsoft.AspNet.Mvc.nuspec.json.expected b/tests/packagedcode/data/nuget/Microsoft.AspNet.Mvc.nuspec.json.expected index 75e1eece999..f5ce8536bfa 100644 --- a/tests/packagedcode/data/nuget/Microsoft.AspNet.Mvc.nuspec.json.expected +++ b/tests/packagedcode/data/nuget/Microsoft.AspNet.Mvc.nuspec.json.expected @@ -43,6 +43,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:nuget/Microsoft.AspNet.Mvc@6.0.0-beta7", "repository_homepage_url": "https://www.nuget.org/packages/Microsoft.AspNet.Mvc/6.0.0-beta7", "repository_download_url": "https://www.nuget.org/api/v2/package/Microsoft.AspNet.Mvc/6.0.0-beta7", diff --git a/tests/packagedcode/data/nuget/Microsoft.Net.Http.nuspec.json.expected b/tests/packagedcode/data/nuget/Microsoft.Net.Http.nuspec.json.expected index 2bf3f43a072..409b3e0d9ca 100644 --- a/tests/packagedcode/data/nuget/Microsoft.Net.Http.nuspec.json.expected +++ b/tests/packagedcode/data/nuget/Microsoft.Net.Http.nuspec.json.expected @@ -43,6 +43,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:nuget/Microsoft.Net.Http@2.2.29", "repository_homepage_url": "https://www.nuget.org/packages/Microsoft.Net.Http/2.2.29", "repository_download_url": "https://www.nuget.org/api/v2/package/Microsoft.Net.Http/2.2.29", diff --git a/tests/packagedcode/data/nuget/bootstrap.nuspec.json.expected b/tests/packagedcode/data/nuget/bootstrap.nuspec.json.expected index 550020cb0f4..f140fbcd50f 100644 --- a/tests/packagedcode/data/nuget/bootstrap.nuspec.json.expected +++ b/tests/packagedcode/data/nuget/bootstrap.nuspec.json.expected @@ -43,6 +43,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:nuget/bootstrap@4.0.0-alpha", "repository_homepage_url": "https://www.nuget.org/packages/bootstrap/4.0.0-alpha", "repository_download_url": "https://www.nuget.org/api/v2/package/bootstrap/4.0.0-alpha", diff --git a/tests/packagedcode/data/nuget/jQuery.UI.Combined.nuspec.json.expected b/tests/packagedcode/data/nuget/jQuery.UI.Combined.nuspec.json.expected index 933382a2a83..6096bde1e33 100644 --- a/tests/packagedcode/data/nuget/jQuery.UI.Combined.nuspec.json.expected +++ b/tests/packagedcode/data/nuget/jQuery.UI.Combined.nuspec.json.expected @@ -43,6 +43,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:nuget/jQuery.UI.Combined@1.11.4", "repository_homepage_url": "https://www.nuget.org/packages/jQuery.UI.Combined/1.11.4", "repository_download_url": "https://www.nuget.org/api/v2/package/jQuery.UI.Combined/1.11.4", diff --git a/tests/packagedcode/data/opam/sample1/output.opam.expected b/tests/packagedcode/data/opam/sample1/output.opam.expected index a2334468c02..97633b601ec 100644 --- a/tests/packagedcode/data/opam/sample1/output.opam.expected +++ b/tests/packagedcode/data/opam/sample1/output.opam.expected @@ -194,8 +194,9 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, "api_data_url": null -} +} \ No newline at end of file diff --git a/tests/packagedcode/data/opam/sample2/output.opam.expected b/tests/packagedcode/data/opam/sample2/output.opam.expected index 87a1f8eaeab..3c2d3043111 100644 --- a/tests/packagedcode/data/opam/sample2/output.opam.expected +++ b/tests/packagedcode/data/opam/sample2/output.opam.expected @@ -92,8 +92,9 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:opam/js_of_ocaml", "repository_homepage_url": "https://opam.ocaml.org/packages/js_of_ocaml", "repository_download_url": null, "api_data_url": null -} +} \ No newline at end of file diff --git a/tests/packagedcode/data/opam/sample3/output.opam.expected b/tests/packagedcode/data/opam/sample3/output.opam.expected index c221bbef12e..4581799aadf 100644 --- a/tests/packagedcode/data/opam/sample3/output.opam.expected +++ b/tests/packagedcode/data/opam/sample3/output.opam.expected @@ -82,8 +82,9 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, "api_data_url": null -} +} \ No newline at end of file diff --git a/tests/packagedcode/data/opam/sample4/output.opam.expected b/tests/packagedcode/data/opam/sample4/output.opam.expected index 28d9249c4bd..a31d55b28a6 100644 --- a/tests/packagedcode/data/opam/sample4/output.opam.expected +++ b/tests/packagedcode/data/opam/sample4/output.opam.expected @@ -83,8 +83,9 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, "api_data_url": null -} +} \ No newline at end of file diff --git a/tests/packagedcode/data/opam/sample5/output.opam.expected b/tests/packagedcode/data/opam/sample5/output.opam.expected index 64a234049e4..60de56123a1 100644 --- a/tests/packagedcode/data/opam/sample5/output.opam.expected +++ b/tests/packagedcode/data/opam/sample5/output.opam.expected @@ -84,8 +84,9 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:opam/bap-elf@1.0.0", "repository_homepage_url": "https://opam.ocaml.org/packages/bap-elf", "repository_download_url": null, "api_data_url": "https://github.com/ocaml/opam-repository/blob/master/packages/bap-elf/bap-elf.1.0.0/opam" -} +} \ No newline at end of file diff --git a/tests/packagedcode/data/opam/sample6/output.opam.expected b/tests/packagedcode/data/opam/sample6/output.opam.expected index eebac0435ac..c8621f8aef9 100644 --- a/tests/packagedcode/data/opam/sample6/output.opam.expected +++ b/tests/packagedcode/data/opam/sample6/output.opam.expected @@ -52,6 +52,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/opam/sample7/output.opam.expected b/tests/packagedcode/data/opam/sample7/output.opam.expected index c8bdcc5d058..1dc86bf2912 100644 --- a/tests/packagedcode/data/opam/sample7/output.opam.expected +++ b/tests/packagedcode/data/opam/sample7/output.opam.expected @@ -83,6 +83,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/opam/sample8/output.opam.expected b/tests/packagedcode/data/opam/sample8/output.opam.expected index 16ebc4603ac..a31d55b28a6 100644 --- a/tests/packagedcode/data/opam/sample8/output.opam.expected +++ b/tests/packagedcode/data/opam/sample8/output.opam.expected @@ -83,6 +83,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/phpcomposer/a-timer/composer.json.expected b/tests/packagedcode/data/phpcomposer/a-timer/composer.json.expected index f91b09f9c44..f28bd66ad32 100644 --- a/tests/packagedcode/data/phpcomposer/a-timer/composer.json.expected +++ b/tests/packagedcode/data/phpcomposer/a-timer/composer.json.expected @@ -69,6 +69,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:composer/jandreasn/a-timer", "repository_homepage_url": "https://packagist.org/packages/jandreasn/a-timer", "repository_download_url": null, diff --git a/tests/packagedcode/data/phpcomposer/composer.lock-expected.json b/tests/packagedcode/data/phpcomposer/composer.lock-expected.json index b389924b5d6..a3fe3134e1d 100644 --- a/tests/packagedcode/data/phpcomposer/composer.lock-expected.json +++ b/tests/packagedcode/data/phpcomposer/composer.lock-expected.json @@ -270,6 +270,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": "https://packagist.org/packages/None", "repository_download_url": null, @@ -391,6 +392,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:composer/doctrine/cache@v1.6.2", "repository_homepage_url": "https://packagist.org/packages/doctrine/cache", "repository_download_url": null, @@ -476,6 +478,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:composer/guzzlehttp/cache-subscriber@0.2.0", "repository_homepage_url": "https://packagist.org/packages/guzzlehttp/cache-subscriber", "repository_download_url": null, @@ -569,6 +572,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:composer/guzzlehttp/guzzle@5.3.3", "repository_homepage_url": "https://packagist.org/packages/guzzlehttp/guzzle", "repository_download_url": null, @@ -670,6 +674,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:composer/guzzlehttp/ringphp@1.1.1", "repository_homepage_url": "https://packagist.org/packages/guzzlehttp/ringphp", "repository_download_url": null, @@ -739,6 +744,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:composer/guzzlehttp/streams@3.0.0", "repository_homepage_url": "https://packagist.org/packages/guzzlehttp/streams", "repository_download_url": null, @@ -903,6 +909,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:composer/prestashop/circuit-breaker@v3.0.0", "repository_homepage_url": "https://packagist.org/packages/prestashop/circuit-breaker", "repository_download_url": null, @@ -972,6 +979,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:composer/react/promise@v2.7.1", "repository_homepage_url": "https://packagist.org/packages/react/promise", "repository_download_url": null, @@ -1047,6 +1055,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:composer/symfony/css-selector@v3.4.31", "repository_homepage_url": "https://packagist.org/packages/symfony/css-selector", "repository_download_url": null, @@ -1138,6 +1147,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:composer/composer/semver@1.5.0", "repository_homepage_url": "https://packagist.org/packages/composer/semver", "repository_download_url": null, @@ -1215,6 +1225,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:composer/composer/xdebug-handler@1.3.3", "repository_homepage_url": "https://packagist.org/packages/composer/xdebug-handler", "repository_download_url": null, @@ -1328,6 +1339,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:composer/doctrine/annotations@v1.4.0", "repository_homepage_url": "https://packagist.org/packages/doctrine/annotations", "repository_download_url": null, @@ -1411,6 +1423,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:composer/doctrine/lexer@1.0.2", "repository_homepage_url": "https://packagist.org/packages/doctrine/lexer", "repository_download_url": null, @@ -1727,6 +1740,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:composer/friendsofphp/php-cs-fixer@v2.15.3", "repository_homepage_url": "https://packagist.org/packages/friendsofphp/php-cs-fixer", "repository_download_url": null, @@ -1804,6 +1818,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:composer/paragonie/random_compat@v2.0.18", "repository_homepage_url": "https://packagist.org/packages/paragonie/random_compat", "repository_download_url": null, @@ -1895,6 +1910,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:composer/php-cs-fixer/diff@v1.3.0", "repository_homepage_url": "https://packagist.org/packages/php-cs-fixer/diff", "repository_download_url": null, @@ -1981,6 +1997,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:composer/prestashop/php-coding-standards@dev-master", "repository_homepage_url": "https://packagist.org/packages/prestashop/php-coding-standards", "repository_download_url": null, @@ -2042,6 +2059,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:composer/psr/log@1.1.0", "repository_homepage_url": "https://packagist.org/packages/psr/log", "repository_download_url": null, @@ -2135,6 +2153,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:composer/squizlabs/php_codesniffer@3.4.2", "repository_homepage_url": "https://packagist.org/packages/squizlabs/php_codesniffer", "repository_download_url": null, @@ -2323,6 +2342,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:composer/symfony/console@v3.4.31", "repository_homepage_url": "https://packagist.org/packages/symfony/console", "repository_download_url": null, @@ -2415,6 +2435,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:composer/symfony/debug@v3.4.31", "repository_homepage_url": "https://packagist.org/packages/symfony/debug", "repository_download_url": null, @@ -2547,6 +2568,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:composer/symfony/event-dispatcher@v3.4.31", "repository_homepage_url": "https://packagist.org/packages/symfony/event-dispatcher", "repository_download_url": null, @@ -2623,6 +2645,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:composer/symfony/filesystem@v3.4.31", "repository_homepage_url": "https://packagist.org/packages/symfony/filesystem", "repository_download_url": null, @@ -2691,6 +2714,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:composer/symfony/finder@v3.4.31", "repository_homepage_url": "https://packagist.org/packages/symfony/finder", "repository_download_url": null, @@ -2759,6 +2783,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:composer/symfony/options-resolver@v3.4.31", "repository_homepage_url": "https://packagist.org/packages/symfony/options-resolver", "repository_download_url": null, @@ -2835,6 +2860,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:composer/symfony/polyfill-ctype@v1.12.0", "repository_homepage_url": "https://packagist.org/packages/symfony/polyfill-ctype", "repository_download_url": null, @@ -2911,6 +2937,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:composer/symfony/polyfill-mbstring@v1.12.0", "repository_homepage_url": "https://packagist.org/packages/symfony/polyfill-mbstring", "repository_download_url": null, @@ -2987,6 +3014,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:composer/symfony/polyfill-php70@v1.12.0", "repository_homepage_url": "https://packagist.org/packages/symfony/polyfill-php70", "repository_download_url": null, @@ -3055,6 +3083,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:composer/symfony/polyfill-php72@v1.12.0", "repository_homepage_url": "https://packagist.org/packages/symfony/polyfill-php72", "repository_download_url": null, @@ -3123,6 +3152,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:composer/symfony/process@v3.4.31", "repository_homepage_url": "https://packagist.org/packages/symfony/process", "repository_download_url": null, @@ -3191,6 +3221,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:composer/symfony/stopwatch@v3.4.31", "repository_homepage_url": "https://packagist.org/packages/symfony/stopwatch", "repository_download_url": null, diff --git a/tests/packagedcode/data/phpcomposer/fake/composer.json.expected b/tests/packagedcode/data/phpcomposer/fake/composer.json.expected index 6a7ac72e31c..18ab58a90c3 100644 --- a/tests/packagedcode/data/phpcomposer/fake/composer.json.expected +++ b/tests/packagedcode/data/phpcomposer/fake/composer.json.expected @@ -69,6 +69,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:composer/fake/fake", "repository_homepage_url": "https://packagist.org/packages/fake/fake", "repository_download_url": null, diff --git a/tests/packagedcode/data/phpcomposer/fake2/composer.json.expected b/tests/packagedcode/data/phpcomposer/fake2/composer.json.expected index ad5e5dd81fd..85829f33fe2 100644 --- a/tests/packagedcode/data/phpcomposer/fake2/composer.json.expected +++ b/tests/packagedcode/data/phpcomposer/fake2/composer.json.expected @@ -72,6 +72,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:composer/fake/fake", "repository_homepage_url": "https://packagist.org/packages/fake/fake", "repository_download_url": null, diff --git a/tests/packagedcode/data/phpcomposer/framework/composer.json.expected b/tests/packagedcode/data/phpcomposer/framework/composer.json.expected index ac13a934a5d..5584d24bdc1 100644 --- a/tests/packagedcode/data/phpcomposer/framework/composer.json.expected +++ b/tests/packagedcode/data/phpcomposer/framework/composer.json.expected @@ -1165,6 +1165,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:composer/narrowspark/framework", "repository_homepage_url": "https://packagist.org/packages/narrowspark/framework", "repository_download_url": null, diff --git a/tests/packagedcode/data/phpcomposer/modern/composer.json.expected b/tests/packagedcode/data/phpcomposer/modern/composer.json.expected index ce0bc8e55dc..4edf3826fe5 100644 --- a/tests/packagedcode/data/phpcomposer/modern/composer.json.expected +++ b/tests/packagedcode/data/phpcomposer/modern/composer.json.expected @@ -278,6 +278,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:composer/integration-hub", "repository_homepage_url": "https://packagist.org/packages/integration-hub", "repository_download_url": null, diff --git a/tests/packagedcode/data/phpcomposer/slim/composer.json.expected b/tests/packagedcode/data/phpcomposer/slim/composer.json.expected index 4ab6db1d7b5..ad733ee0905 100644 --- a/tests/packagedcode/data/phpcomposer/slim/composer.json.expected +++ b/tests/packagedcode/data/phpcomposer/slim/composer.json.expected @@ -130,6 +130,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:composer/slim/slim", "repository_homepage_url": "https://packagist.org/packages/slim/slim", "repository_download_url": null, diff --git a/tests/packagedcode/data/plugin/about-package-expected.json b/tests/packagedcode/data/plugin/about-package-expected.json index b4cdda44e39..06e78907f2d 100644 --- a/tests/packagedcode/data/plugin/about-package-expected.json +++ b/tests/packagedcode/data/plugin/about-package-expected.json @@ -60,6 +60,9 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": { + "about_resource": "apipkg-1.4-py2.py3-none-any.whl" + }, "purl": "pkg:about/apipkg@1.4", "repository_homepage_url": null, "repository_download_url": null, @@ -116,6 +119,9 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": { + "about_resource": "appdirs-1.4.3-py2.py3-none-any.whl" + }, "purl": "pkg:about/appdirs@1.4.3", "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/plugin/bower-package-expected.json b/tests/packagedcode/data/plugin/bower-package-expected.json index 48adbeefc95..521aae107d3 100644 --- a/tests/packagedcode/data/plugin/bower-package-expected.json +++ b/tests/packagedcode/data/plugin/bower-package-expected.json @@ -91,6 +91,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:bower/blue-leaf", "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/plugin/cargo-package-expected.json b/tests/packagedcode/data/plugin/cargo-package-expected.json index 7674658a276..5c1af58685e 100644 --- a/tests/packagedcode/data/plugin/cargo-package-expected.json +++ b/tests/packagedcode/data/plugin/cargo-package-expected.json @@ -60,6 +60,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:cargo/clap@2.32.0", "repository_homepage_url": "https://crates.io/crates/clap", "repository_download_url": "https://crates.io/api/v1/crates/clap/2.32.0/download", diff --git a/tests/packagedcode/data/plugin/chef-package-expected.json b/tests/packagedcode/data/plugin/chef-package-expected.json index 0d178e98d79..504c9440d70 100644 --- a/tests/packagedcode/data/plugin/chef-package-expected.json +++ b/tests/packagedcode/data/plugin/chef-package-expected.json @@ -75,6 +75,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:chef/301@0.1.0", "repository_homepage_url": null, "repository_download_url": "https://supermarket.chef.io/cookbooks/301/versions/0.1.0/download", diff --git a/tests/packagedcode/data/plugin/conda-package-expected.json b/tests/packagedcode/data/plugin/conda-package-expected.json index 84d2071def5..a859ede81f2 100644 --- a/tests/packagedcode/data/plugin/conda-package-expected.json +++ b/tests/packagedcode/data/plugin/conda-package-expected.json @@ -95,6 +95,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:conda/requests-kerberos@0.8.0", "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/plugin/freebsd-package-expected.json b/tests/packagedcode/data/plugin/freebsd-package-expected.json index c109258ede9..c39ab1311db 100644 --- a/tests/packagedcode/data/plugin/freebsd-package-expected.json +++ b/tests/packagedcode/data/plugin/freebsd-package-expected.json @@ -70,6 +70,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:freebsd/dmidecode@2.12?arch=freebsd:10:x86:64&origin=sysutils/dmidecode", "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/plugin/haxe-package-expected.json b/tests/packagedcode/data/plugin/haxe-package-expected.json index 22a93859000..51ae0dd85bd 100644 --- a/tests/packagedcode/data/plugin/haxe-package-expected.json +++ b/tests/packagedcode/data/plugin/haxe-package-expected.json @@ -65,6 +65,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:haxe/hxsocketio@0.1.0", "repository_homepage_url": "https://lib.haxe.org/p/hxsocketio", "repository_download_url": "https://lib.haxe.org/p/hxsocketio/0.1.0/download/", diff --git a/tests/packagedcode/data/plugin/maven-package-expected.json b/tests/packagedcode/data/plugin/maven-package-expected.json index 681a3738b3d..748b49a61f2 100644 --- a/tests/packagedcode/data/plugin/maven-package-expected.json +++ b/tests/packagedcode/data/plugin/maven-package-expected.json @@ -72,6 +72,7 @@ "source_packages": [ "pkg:maven/adarwin/adarwin@1.0?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/adarwin/adarwin@1.0", "repository_homepage_url": "https://repo1.maven.org/maven2/adarwin/adarwin/1.0/", "repository_download_url": "https://repo1.maven.org/maven2/adarwin/adarwin/1.0/adarwin-1.0.jar", @@ -153,6 +154,7 @@ "source_packages": [ "pkg:maven/org.apache.ant/ant-jai@1.7.0?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/org.apache.ant/ant-jai@1.7.0", "repository_homepage_url": "https://repo1.maven.org/maven2/org/apache/ant/ant-jai/1.7.0/", "repository_download_url": "https://repo1.maven.org/maven2/org/apache/ant/ant-jai/1.7.0/ant-jai-1.7.0.jar", @@ -226,6 +228,7 @@ "source_packages": [ "pkg:maven/org.apache.ant/ant-jsch@1.7.0?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/org.apache.ant/ant-jsch@1.7.0", "repository_homepage_url": "https://repo1.maven.org/maven2/org/apache/ant/ant-jsch/1.7.0/", "repository_download_url": "https://repo1.maven.org/maven2/org/apache/ant/ant-jsch/1.7.0/ant-jsch-1.7.0.jar", @@ -295,6 +298,7 @@ "source_packages": [ "pkg:maven/aopalliance/aopalliance@1.0?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/aopalliance/aopalliance@1.0", "repository_homepage_url": "https://repo1.maven.org/maven2/aopalliance/aopalliance/1.0/", "repository_download_url": "https://repo1.maven.org/maven2/aopalliance/aopalliance/1.0/aopalliance-1.0.jar", @@ -351,6 +355,7 @@ "source_packages": [ "pkg:maven/bcel/bcel@5.1?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/bcel/bcel@5.1", "repository_homepage_url": "https://repo1.maven.org/maven2/bcel/bcel/5.1/", "repository_download_url": "https://repo1.maven.org/maven2/bcel/bcel/5.1/bcel-5.1.jar", @@ -436,6 +441,7 @@ "source_packages": [ "pkg:maven/classworlds/classworlds@1.1-alpha-2?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/classworlds/classworlds@1.1-alpha-2", "repository_homepage_url": "https://repo1.maven.org/maven2/classworlds/classworlds/1.1-alpha-2/", "repository_download_url": "https://repo1.maven.org/maven2/classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.jar", @@ -559,6 +565,7 @@ "source_packages": [ "pkg:maven/commons-fileupload/commons-fileupload@1.0?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/commons-fileupload/commons-fileupload@1.0", "repository_homepage_url": "https://repo1.maven.org/maven2/commons-fileupload/commons-fileupload/1.0/", "repository_download_url": "https://repo1.maven.org/maven2/commons-fileupload/commons-fileupload/1.0/commons-fileupload-1.0.jar", @@ -896,6 +903,7 @@ "source_packages": [ "pkg:maven/commons-validator/commons-validator@1.2.0?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/commons-validator/commons-validator@1.2.0", "repository_homepage_url": "https://repo1.maven.org/maven2/commons-validator/commons-validator/1.2.0/", "repository_download_url": "https://repo1.maven.org/maven2/commons-validator/commons-validator/1.2.0/commons-validator-1.2.0.jar", @@ -1151,6 +1159,7 @@ "source_packages": [ "pkg:maven/easyconf/easyconf@0.9.0?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/easyconf/easyconf@0.9.0", "repository_homepage_url": "https://repo1.maven.org/maven2/easyconf/easyconf/0.9.0/", "repository_download_url": "https://repo1.maven.org/maven2/easyconf/easyconf/0.9.0/easyconf-0.9.0.jar", @@ -1284,6 +1293,7 @@ "source_packages": [ "pkg:maven/org.codehaus.mojo/findbugs-maven-plugin@1.1.1?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/org.codehaus.mojo/findbugs-maven-plugin@1.1.1", "repository_homepage_url": "https://repo1.maven.org/maven2/org/codehaus/mojo/findbugs-maven-plugin/1.1.1/", "repository_download_url": "https://repo1.maven.org/maven2/org/codehaus/mojo/findbugs-maven-plugin/1.1.1/findbugs-maven-plugin-1.1.1.jar", @@ -1478,6 +1488,7 @@ "source_packages": [ "pkg:maven/it.assist.jrecordbind/jrecordbind%24%7BartifactId.ext%7D@2.3.4?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/it.assist.jrecordbind/jrecordbind%24%7BartifactId.ext%7D@2.3.4", "repository_homepage_url": "https://repo1.maven.org/maven2/it/assist/jrecordbind/jrecordbind${artifactId.ext}/2.3.4/", "repository_download_url": "https://repo1.maven.org/maven2/it/assist/jrecordbind/jrecordbind${artifactId.ext}/2.3.4/jrecordbind${artifactId.ext}-2.3.4.jar", @@ -1600,6 +1611,7 @@ "source_packages": [ "pkg:maven/ch.qos.logback/logback-access@0.2.5?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/ch.qos.logback/logback-access@0.2.5", "repository_homepage_url": "https://repo1.maven.org/maven2/ch/qos/logback/logback-access/0.2.5/", "repository_download_url": "https://repo1.maven.org/maven2/ch/qos/logback/logback-access/0.2.5/logback-access-0.2.5.jar", @@ -1774,6 +1786,7 @@ "source_packages": [ "pkg:maven/org.codehaus.plexus/plexus-interactivity-api@1.0-alpha-4?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/org.codehaus.plexus/plexus-interactivity-api@1.0-alpha-4", "repository_homepage_url": "https://repo1.maven.org/maven2/org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/", "repository_download_url": "https://repo1.maven.org/maven2/org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.jar", @@ -1830,6 +1843,7 @@ "source_packages": [ "pkg:maven/ur.urwerk.test.modules/main@1.0.0-SNAPSHOT?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/ur.urwerk.test.modules/main@1.0.0-SNAPSHOT", "repository_homepage_url": "https://repo1.maven.org/maven2/ur/urwerk/test/modules/main/1.0.0-SNAPSHOT/", "repository_download_url": "https://repo1.maven.org/maven2/ur/urwerk/test/modules/main/1.0.0-SNAPSHOT/main-1.0.0-SNAPSHOT.jar", @@ -1949,6 +1963,7 @@ "source_packages": [ "pkg:maven/org.apache.geronimo.specs/specs@1.3?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/org.apache.geronimo.specs/specs@1.3", "repository_homepage_url": "https://repo1.maven.org/maven2/org/apache/geronimo/specs/specs/1.3/", "repository_download_url": "https://repo1.maven.org/maven2/org/apache/geronimo/specs/specs/1.3/specs-1.3.jar", @@ -2541,6 +2556,7 @@ "source_packages": [ "pkg:maven/org.springframework/spring@2.5.4?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/org.springframework/spring@2.5.4", "repository_homepage_url": "https://repo1.maven.org/maven2/org/springframework/spring/2.5.4/", "repository_download_url": "https://repo1.maven.org/maven2/org/springframework/spring/2.5.4/spring-2.5.4.jar", @@ -2741,6 +2757,7 @@ "source_packages": [ "pkg:maven/org.springframework/spring-orm@2.5.3?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/org.springframework/spring-orm@2.5.3", "repository_homepage_url": "https://repo1.maven.org/maven2/org/springframework/spring-orm/2.5.3/", "repository_download_url": "https://repo1.maven.org/maven2/org/springframework/spring-orm/2.5.3/spring-orm-2.5.3.jar", @@ -2989,6 +3006,7 @@ "source_packages": [ "pkg:maven/org.springframework/spring-webmvc@2.5.3?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/org.springframework/spring-webmvc@2.5.3", "repository_homepage_url": "https://repo1.maven.org/maven2/org/springframework/spring-webmvc/2.5.3/", "repository_download_url": "https://repo1.maven.org/maven2/org/springframework/spring-webmvc/2.5.3/spring-webmvc-2.5.3.jar", @@ -3062,6 +3080,7 @@ "source_packages": [ "pkg:maven/org.jvnet.hudson.plugins/startup-trigger-plugin@0.1?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/org.jvnet.hudson.plugins/startup-trigger-plugin@0.1", "repository_homepage_url": "https://repo1.maven.org/maven2/org/jvnet/hudson/plugins/startup-trigger-plugin/0.1/", "repository_download_url": "https://repo1.maven.org/maven2/org/jvnet/hudson/plugins/startup-trigger-plugin/0.1/startup-trigger-plugin-0.1.jar", @@ -3229,6 +3248,7 @@ "source_packages": [ "pkg:maven/au.com.acegi/xml-format-maven-plugin@3.0.6?classifier=sources" ], + "extra_data": {}, "purl": "pkg:maven/au.com.acegi/xml-format-maven-plugin@3.0.6", "repository_homepage_url": "https://repo1.maven.org/maven2/au/com/acegi/xml-format-maven-plugin/3.0.6/", "repository_download_url": "https://repo1.maven.org/maven2/au/com/acegi/xml-format-maven-plugin/3.0.6/xml-format-maven-plugin-3.0.6.jar", diff --git a/tests/packagedcode/data/plugin/npm-package-expected.json b/tests/packagedcode/data/plugin/npm-package-expected.json index c7183f7c943..1239a7df5a4 100644 --- a/tests/packagedcode/data/plugin/npm-package-expected.json +++ b/tests/packagedcode/data/plugin/npm-package-expected.json @@ -81,6 +81,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/cookie-signature@1.0.3", "repository_homepage_url": "https://www.npmjs.com/package/cookie-signature", "repository_download_url": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.3.tgz", diff --git a/tests/packagedcode/data/plugin/nuget-package-expected.json b/tests/packagedcode/data/plugin/nuget-package-expected.json index a673ad94241..122953b435a 100644 --- a/tests/packagedcode/data/plugin/nuget-package-expected.json +++ b/tests/packagedcode/data/plugin/nuget-package-expected.json @@ -67,6 +67,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:nuget/Castle.Core@4.2.1", "repository_homepage_url": "https://www.nuget.org/packages/Castle.Core/4.2.1", "repository_download_url": "https://www.nuget.org/api/v2/package/Castle.Core/4.2.1", diff --git a/tests/packagedcode/data/plugin/opam-package-expected.json b/tests/packagedcode/data/plugin/opam-package-expected.json index df90404aa20..19c76ec6550 100644 --- a/tests/packagedcode/data/plugin/opam-package-expected.json +++ b/tests/packagedcode/data/plugin/opam-package-expected.json @@ -135,6 +135,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, @@ -144,4 +145,4 @@ "scan_errors": [] } ] -} +} \ No newline at end of file diff --git a/tests/packagedcode/data/plugin/phpcomposer-package-expected.json b/tests/packagedcode/data/plugin/phpcomposer-package-expected.json index e4e99fb5f6f..78ef6e886fb 100644 --- a/tests/packagedcode/data/plugin/phpcomposer-package-expected.json +++ b/tests/packagedcode/data/plugin/phpcomposer-package-expected.json @@ -92,6 +92,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:composer/jandreasn/a-timer", "repository_homepage_url": "https://packagist.org/packages/jandreasn/a-timer", "repository_download_url": null, diff --git a/tests/packagedcode/data/plugin/python-package-expected.json b/tests/packagedcode/data/plugin/python-package-expected.json index 1de0242401a..18bfbe31aec 100644 --- a/tests/packagedcode/data/plugin/python-package-expected.json +++ b/tests/packagedcode/data/plugin/python-package-expected.json @@ -74,6 +74,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:pypi/ticketimport@0.7a", "repository_homepage_url": "https://pypi.org/project/TicketImport", "repository_download_url": "https://pypi.io/packages/source/T/TicketImport/TicketImport-0.7a.tar.gz", @@ -137,6 +138,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:pypi/atomicwrites@1.2.1", "repository_homepage_url": "https://pypi.org/project/atomicwrites", "repository_download_url": "https://pypi.io/packages/source/a/atomicwrites/atomicwrites-1.2.1.tar.gz", @@ -198,6 +200,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:pypi/six@1.10.0", "repository_homepage_url": "https://pypi.org/project/six", "repository_download_url": "https://pypi.io/packages/source/s/six/six-1.10.0.tar.gz", @@ -251,6 +254,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:pypi/arpy@0.1.1", "repository_homepage_url": "https://pypi.org/project/arpy", "repository_download_url": "https://pypi.io/packages/source/a/arpy/arpy-0.1.1.tar.gz", diff --git a/tests/packagedcode/data/plugin/rpm-package-expected.json b/tests/packagedcode/data/plugin/rpm-package-expected.json index ef425608c07..f9242955418 100644 --- a/tests/packagedcode/data/plugin/rpm-package-expected.json +++ b/tests/packagedcode/data/plugin/rpm-package-expected.json @@ -54,6 +54,7 @@ "source_packages": [ "pkg:rpm/alfandega@2.0-1.7.3?arch=src" ], + "extra_data": {}, "purl": "pkg:rpm/alfandega@2.0-1.7.3", "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/plugin/rubygems-package-expected.json b/tests/packagedcode/data/plugin/rubygems-package-expected.json index 30f099ff0a6..1b8b262fb60 100644 --- a/tests/packagedcode/data/plugin/rubygems-package-expected.json +++ b/tests/packagedcode/data/plugin/rubygems-package-expected.json @@ -188,6 +188,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/m2r@2.1.0", "repository_homepage_url": "https://rubygems.org/gems/m2r/versions/2.1.0", "repository_download_url": "https://rubygems.org/downloads/m2r-2.1.0.gem", diff --git a/tests/packagedcode/data/pypi/pipfile.lock/sample1/output.expected.json b/tests/packagedcode/data/pypi/pipfile.lock/sample1/output.expected.json index f860483a870..535d08d85a1 100644 --- a/tests/packagedcode/data/pypi/pipfile.lock/sample1/output.expected.json +++ b/tests/packagedcode/data/pypi/pipfile.lock/sample1/output.expected.json @@ -89,7 +89,7 @@ "is_runtime": true, "is_optional": false, "is_resolved": true - }, + }, { "purl": "pkg:pypi/simplejson@2.4.0", "requirement": "==2.4.0", @@ -101,6 +101,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/pypi/pipfile.lock/sample2/output.expected.json b/tests/packagedcode/data/pypi/pipfile.lock/sample2/output.expected.json index 153a17849e5..477e71760cb 100644 --- a/tests/packagedcode/data/pypi/pipfile.lock/sample2/output.expected.json +++ b/tests/packagedcode/data/pypi/pipfile.lock/sample2/output.expected.json @@ -165,6 +165,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/pypi/pipfile.lock/sample3/output.expected.json b/tests/packagedcode/data/pypi/pipfile.lock/sample3/output.expected.json index a572e4fb553..7579c989e5c 100644 --- a/tests/packagedcode/data/pypi/pipfile.lock/sample3/output.expected.json +++ b/tests/packagedcode/data/pypi/pipfile.lock/sample3/output.expected.json @@ -37,6 +37,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/pypi/pipfile.lock/sample4/output.expected.json b/tests/packagedcode/data/pypi/pipfile.lock/sample4/output.expected.json index 474e32a20e2..a4ca3b3dc7c 100644 --- a/tests/packagedcode/data/pypi/pipfile.lock/sample4/output.expected.json +++ b/tests/packagedcode/data/pypi/pipfile.lock/sample4/output.expected.json @@ -133,6 +133,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/pypi/pipfile.lock/sample5/output.expected.json b/tests/packagedcode/data/pypi/pipfile.lock/sample5/output.expected.json index 46eaaf989d2..535d08d85a1 100644 --- a/tests/packagedcode/data/pypi/pipfile.lock/sample5/output.expected.json +++ b/tests/packagedcode/data/pypi/pipfile.lock/sample5/output.expected.json @@ -101,6 +101,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/pypi/requirements_txt/sample1/output.expected.json b/tests/packagedcode/data/pypi/requirements_txt/sample1/output.expected.json index dfe616a4c33..04af7f3ed96 100644 --- a/tests/packagedcode/data/pypi/requirements_txt/sample1/output.expected.json +++ b/tests/packagedcode/data/pypi/requirements_txt/sample1/output.expected.json @@ -53,6 +53,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/pypi/requirements_txt/sample10/output.expected.json b/tests/packagedcode/data/pypi/requirements_txt/sample10/output.expected.json index 98992efb56a..234eed59464 100644 --- a/tests/packagedcode/data/pypi/requirements_txt/sample10/output.expected.json +++ b/tests/packagedcode/data/pypi/requirements_txt/sample10/output.expected.json @@ -28,6 +28,7 @@ "dependencies": null, "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/pypi/requirements_txt/sample11/output.expected.json b/tests/packagedcode/data/pypi/requirements_txt/sample11/output.expected.json index 99e42e003a4..d483a777567 100644 --- a/tests/packagedcode/data/pypi/requirements_txt/sample11/output.expected.json +++ b/tests/packagedcode/data/pypi/requirements_txt/sample11/output.expected.json @@ -45,6 +45,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/pypi/requirements_txt/sample13/output.expected.json b/tests/packagedcode/data/pypi/requirements_txt/sample13/output.expected.json index 98992efb56a..234eed59464 100644 --- a/tests/packagedcode/data/pypi/requirements_txt/sample13/output.expected.json +++ b/tests/packagedcode/data/pypi/requirements_txt/sample13/output.expected.json @@ -28,6 +28,7 @@ "dependencies": null, "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/pypi/requirements_txt/sample14/output.expected.json b/tests/packagedcode/data/pypi/requirements_txt/sample14/output.expected.json index 98992efb56a..234eed59464 100644 --- a/tests/packagedcode/data/pypi/requirements_txt/sample14/output.expected.json +++ b/tests/packagedcode/data/pypi/requirements_txt/sample14/output.expected.json @@ -28,6 +28,7 @@ "dependencies": null, "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/pypi/requirements_txt/sample15/output.expected.json b/tests/packagedcode/data/pypi/requirements_txt/sample15/output.expected.json index 98992efb56a..234eed59464 100644 --- a/tests/packagedcode/data/pypi/requirements_txt/sample15/output.expected.json +++ b/tests/packagedcode/data/pypi/requirements_txt/sample15/output.expected.json @@ -28,6 +28,7 @@ "dependencies": null, "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/pypi/requirements_txt/sample16/output.expected.json b/tests/packagedcode/data/pypi/requirements_txt/sample16/output.expected.json index 15d9cd16e51..8d13e604aa6 100644 --- a/tests/packagedcode/data/pypi/requirements_txt/sample16/output.expected.json +++ b/tests/packagedcode/data/pypi/requirements_txt/sample16/output.expected.json @@ -53,6 +53,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/pypi/requirements_txt/sample17/output.expected.json b/tests/packagedcode/data/pypi/requirements_txt/sample17/output.expected.json index 03dc90de6aa..4c63e17c01e 100644 --- a/tests/packagedcode/data/pypi/requirements_txt/sample17/output.expected.json +++ b/tests/packagedcode/data/pypi/requirements_txt/sample17/output.expected.json @@ -37,6 +37,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/pypi/requirements_txt/sample18/output.expected.json b/tests/packagedcode/data/pypi/requirements_txt/sample18/output.expected.json index 8bbe3a3cde1..bf5ce33cebd 100644 --- a/tests/packagedcode/data/pypi/requirements_txt/sample18/output.expected.json +++ b/tests/packagedcode/data/pypi/requirements_txt/sample18/output.expected.json @@ -35,10 +35,11 @@ "is_resolved": true } ], - "contains_source_code": null, - "source_packages": [], - "purl": null, - "repository_homepage_url": null, - "repository_download_url": null, - "api_data_url": null + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": null, + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null } \ No newline at end of file diff --git a/tests/packagedcode/data/pypi/requirements_txt/sample19/output.expected.json b/tests/packagedcode/data/pypi/requirements_txt/sample19/output.expected.json index 98992efb56a..234eed59464 100644 --- a/tests/packagedcode/data/pypi/requirements_txt/sample19/output.expected.json +++ b/tests/packagedcode/data/pypi/requirements_txt/sample19/output.expected.json @@ -28,6 +28,7 @@ "dependencies": null, "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/pypi/requirements_txt/sample2/output.expected.json b/tests/packagedcode/data/pypi/requirements_txt/sample2/output.expected.json index a5a15d0c959..4d4536d0010 100644 --- a/tests/packagedcode/data/pypi/requirements_txt/sample2/output.expected.json +++ b/tests/packagedcode/data/pypi/requirements_txt/sample2/output.expected.json @@ -53,6 +53,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/pypi/requirements_txt/sample20/output.expected.json b/tests/packagedcode/data/pypi/requirements_txt/sample20/output.expected.json index 98992efb56a..234eed59464 100644 --- a/tests/packagedcode/data/pypi/requirements_txt/sample20/output.expected.json +++ b/tests/packagedcode/data/pypi/requirements_txt/sample20/output.expected.json @@ -28,6 +28,7 @@ "dependencies": null, "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/pypi/requirements_txt/sample21/output.expected.json b/tests/packagedcode/data/pypi/requirements_txt/sample21/output.expected.json index 98992efb56a..234eed59464 100644 --- a/tests/packagedcode/data/pypi/requirements_txt/sample21/output.expected.json +++ b/tests/packagedcode/data/pypi/requirements_txt/sample21/output.expected.json @@ -28,6 +28,7 @@ "dependencies": null, "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/pypi/requirements_txt/sample3/output.expected.json b/tests/packagedcode/data/pypi/requirements_txt/sample3/output.expected.json index 2b98ed36c62..d1db2a7825e 100644 --- a/tests/packagedcode/data/pypi/requirements_txt/sample3/output.expected.json +++ b/tests/packagedcode/data/pypi/requirements_txt/sample3/output.expected.json @@ -53,6 +53,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/pypi/requirements_txt/sample4/output.expected.json b/tests/packagedcode/data/pypi/requirements_txt/sample4/output.expected.json index ace4248299d..4b90017c922 100644 --- a/tests/packagedcode/data/pypi/requirements_txt/sample4/output.expected.json +++ b/tests/packagedcode/data/pypi/requirements_txt/sample4/output.expected.json @@ -45,6 +45,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/pypi/requirements_txt/sample5/output.expected.json b/tests/packagedcode/data/pypi/requirements_txt/sample5/output.expected.json index 2b98ed36c62..d1db2a7825e 100644 --- a/tests/packagedcode/data/pypi/requirements_txt/sample5/output.expected.json +++ b/tests/packagedcode/data/pypi/requirements_txt/sample5/output.expected.json @@ -53,6 +53,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/pypi/requirements_txt/sample6/output.expected.json b/tests/packagedcode/data/pypi/requirements_txt/sample6/output.expected.json index 2b98ed36c62..d1db2a7825e 100644 --- a/tests/packagedcode/data/pypi/requirements_txt/sample6/output.expected.json +++ b/tests/packagedcode/data/pypi/requirements_txt/sample6/output.expected.json @@ -53,6 +53,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/pypi/requirements_txt/sample7/output.expected.json b/tests/packagedcode/data/pypi/requirements_txt/sample7/output.expected.json index a5a15d0c959..4d4536d0010 100644 --- a/tests/packagedcode/data/pypi/requirements_txt/sample7/output.expected.json +++ b/tests/packagedcode/data/pypi/requirements_txt/sample7/output.expected.json @@ -53,6 +53,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/pypi/requirements_txt/sample8/output.expected.json b/tests/packagedcode/data/pypi/requirements_txt/sample8/output.expected.json index 1e47f925f96..5c7ccbdcdad 100644 --- a/tests/packagedcode/data/pypi/requirements_txt/sample8/output.expected.json +++ b/tests/packagedcode/data/pypi/requirements_txt/sample8/output.expected.json @@ -37,6 +37,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/pypi/requirements_txt/sample9/output.expected.json b/tests/packagedcode/data/pypi/requirements_txt/sample9/output.expected.json index f9fb817a7bc..2b6e20e934d 100644 --- a/tests/packagedcode/data/pypi/requirements_txt/sample9/output.expected.json +++ b/tests/packagedcode/data/pypi/requirements_txt/sample9/output.expected.json @@ -45,6 +45,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/pypi/setup.py/arpy_setup.py-expected.json b/tests/packagedcode/data/pypi/setup.py/arpy_setup.py-expected.json index 4ff1239b227..f54fb7c70eb 100644 --- a/tests/packagedcode/data/pypi/setup.py/arpy_setup.py-expected.json +++ b/tests/packagedcode/data/pypi/setup.py/arpy_setup.py-expected.json @@ -39,6 +39,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:pypi/arpy@0.1.1", "repository_homepage_url": "https://pypi.org/project/arpy", "repository_download_url": "https://pypi.io/packages/source/a/arpy/arpy-0.1.1.tar.gz", diff --git a/tests/packagedcode/data/pypi/setup.py/boolean2_py_setup.py-expected.json b/tests/packagedcode/data/pypi/setup.py/boolean2_py_setup.py-expected.json index 6ebbc47fe6b..10cee8699c5 100644 --- a/tests/packagedcode/data/pypi/setup.py/boolean2_py_setup.py-expected.json +++ b/tests/packagedcode/data/pypi/setup.py/boolean2_py_setup.py-expected.json @@ -52,8 +52,9 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:pypi/boolean.py@1.2", "repository_homepage_url": "https://pypi.org/project/boolean.py", "repository_download_url": "https://pypi.io/packages/source/b/boolean.py/boolean.py-1.2.tar.gz", "api_data_url": "http://pypi.python.org/pypi/boolean.py/1.2/json" -} +} \ No newline at end of file diff --git a/tests/packagedcode/data/pypi/setup.py/container_check_setup.py-expected.json b/tests/packagedcode/data/pypi/setup.py/container_check_setup.py-expected.json index b792457b2e2..a706c277f6b 100644 --- a/tests/packagedcode/data/pypi/setup.py/container_check_setup.py-expected.json +++ b/tests/packagedcode/data/pypi/setup.py/container_check_setup.py-expected.json @@ -51,6 +51,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:pypi/container-check@1.0.6", "repository_homepage_url": "https://pypi.org/project/container-check", "repository_download_url": "https://pypi.io/packages/source/c/container-check/container-check-1.0.6.tar.gz", diff --git a/tests/packagedcode/data/pypi/setup.py/fb303_py_setup.py-expected.json b/tests/packagedcode/data/pypi/setup.py/fb303_py_setup.py-expected.json index d6e524d85dd..ce6162e06a3 100644 --- a/tests/packagedcode/data/pypi/setup.py/fb303_py_setup.py-expected.json +++ b/tests/packagedcode/data/pypi/setup.py/fb303_py_setup.py-expected.json @@ -51,6 +51,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:pypi/thrift-fb303@0.10.0", "repository_homepage_url": "https://pypi.org/project/thrift_fb303", "repository_download_url": "https://pypi.io/packages/source/t/thrift_fb303/thrift_fb303-0.10.0.tar.gz", diff --git a/tests/packagedcode/data/pypi/setup.py/frell_src_setup.py-expected.json b/tests/packagedcode/data/pypi/setup.py/frell_src_setup.py-expected.json index 12131a1e769..b7898e872cd 100644 --- a/tests/packagedcode/data/pypi/setup.py/frell_src_setup.py-expected.json +++ b/tests/packagedcode/data/pypi/setup.py/frell_src_setup.py-expected.json @@ -39,6 +39,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:pypi/%40name%40", "repository_homepage_url": "https://pypi.org/project/@NAME@", "repository_download_url": null, diff --git a/tests/packagedcode/data/pypi/setup.py/gyp_setup.py-expected.json b/tests/packagedcode/data/pypi/setup.py/gyp_setup.py-expected.json index 799860c7e88..d1f7ffaaeaa 100644 --- a/tests/packagedcode/data/pypi/setup.py/gyp_setup.py-expected.json +++ b/tests/packagedcode/data/pypi/setup.py/gyp_setup.py-expected.json @@ -39,6 +39,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:pypi/gyp@0.1", "repository_homepage_url": "https://pypi.org/project/gyp", "repository_download_url": "https://pypi.io/packages/source/g/gyp/gyp-0.1.tar.gz", diff --git a/tests/packagedcode/data/pypi/setup.py/interlap_setup.py-expected.json b/tests/packagedcode/data/pypi/setup.py/interlap_setup.py-expected.json index 0587785592e..56aeb441366 100644 --- a/tests/packagedcode/data/pypi/setup.py/interlap_setup.py-expected.json +++ b/tests/packagedcode/data/pypi/setup.py/interlap_setup.py-expected.json @@ -52,6 +52,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:pypi/interlap", "repository_homepage_url": "https://pypi.org/project/interlap", "repository_download_url": null, diff --git a/tests/packagedcode/data/pypi/setup.py/mb_setup.py-expected.json b/tests/packagedcode/data/pypi/setup.py/mb_setup.py-expected.json index c806e017aa2..3bc384c08ac 100644 --- a/tests/packagedcode/data/pypi/setup.py/mb_setup.py-expected.json +++ b/tests/packagedcode/data/pypi/setup.py/mb_setup.py-expected.json @@ -39,6 +39,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:pypi/mb@2.19.0", "repository_homepage_url": "https://pypi.org/project/mb", "repository_download_url": "https://pypi.io/packages/source/m/mb/mb-2.19.0.tar.gz", diff --git a/tests/packagedcode/data/pypi/setup.py/ntfs_setup.py-expected.json b/tests/packagedcode/data/pypi/setup.py/ntfs_setup.py-expected.json index 4be74784b2c..1bec0bc1a1f 100644 --- a/tests/packagedcode/data/pypi/setup.py/ntfs_setup.py-expected.json +++ b/tests/packagedcode/data/pypi/setup.py/ntfs_setup.py-expected.json @@ -48,6 +48,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:pypi/ntfsutils", "repository_homepage_url": "https://pypi.org/project/ntfsutils", "repository_download_url": null, diff --git a/tests/packagedcode/data/pypi/setup.py/nvchecker_setup.py-expected.json b/tests/packagedcode/data/pypi/setup.py/nvchecker_setup.py-expected.json index c40fb28f0cf..c8ea727ade7 100644 --- a/tests/packagedcode/data/pypi/setup.py/nvchecker_setup.py-expected.json +++ b/tests/packagedcode/data/pypi/setup.py/nvchecker_setup.py-expected.json @@ -58,6 +58,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:pypi/nvchecker", "repository_homepage_url": "https://pypi.org/project/nvchecker", "repository_download_url": null, diff --git a/tests/packagedcode/data/pypi/setup.py/oi_agents_common_code_setup.py-expected.json b/tests/packagedcode/data/pypi/setup.py/oi_agents_common_code_setup.py-expected.json index a6e36b38364..8a3932cf096 100644 --- a/tests/packagedcode/data/pypi/setup.py/oi_agents_common_code_setup.py-expected.json +++ b/tests/packagedcode/data/pypi/setup.py/oi_agents_common_code_setup.py-expected.json @@ -50,6 +50,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:pypi/agents-common", "repository_homepage_url": "https://pypi.org/project/agents_common", "repository_download_url": null, diff --git a/tests/packagedcode/data/pypi/setup.py/packageurl_python_setup.py-expected.json b/tests/packagedcode/data/pypi/setup.py/packageurl_python_setup.py-expected.json index 3be6b52e177..e7514bda558 100644 --- a/tests/packagedcode/data/pypi/setup.py/packageurl_python_setup.py-expected.json +++ b/tests/packagedcode/data/pypi/setup.py/packageurl_python_setup.py-expected.json @@ -52,6 +52,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:pypi/packageurl-python@0.8.5", "repository_homepage_url": "https://pypi.org/project/packageurl-python", "repository_download_url": "https://pypi.io/packages/source/p/packageurl-python/packageurl-python-0.8.5.tar.gz", diff --git a/tests/packagedcode/data/pypi/setup.py/pipdeptree_setup.py-expected.json b/tests/packagedcode/data/pypi/setup.py/pipdeptree_setup.py-expected.json index cc8132aa7db..f96c84af549 100644 --- a/tests/packagedcode/data/pypi/setup.py/pipdeptree_setup.py-expected.json +++ b/tests/packagedcode/data/pypi/setup.py/pipdeptree_setup.py-expected.json @@ -51,6 +51,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:pypi/pipdeptree", "repository_homepage_url": "https://pypi.org/project/pipdeptree", "repository_download_url": null, diff --git a/tests/packagedcode/data/pypi/setup.py/pydep_setup.py-expected.json b/tests/packagedcode/data/pypi/setup.py/pydep_setup.py-expected.json index fdf9e6d8f6a..b72c2c3d88f 100644 --- a/tests/packagedcode/data/pypi/setup.py/pydep_setup.py-expected.json +++ b/tests/packagedcode/data/pypi/setup.py/pydep_setup.py-expected.json @@ -39,6 +39,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:pypi/pydep@0.0", "repository_homepage_url": "https://pypi.org/project/pydep", "repository_download_url": "https://pypi.io/packages/source/p/pydep/pydep-0.0.tar.gz", diff --git a/tests/packagedcode/data/pypi/setup.py/pyrpm_2_setup.py-expected.json b/tests/packagedcode/data/pypi/setup.py/pyrpm_2_setup.py-expected.json index 7e560ccb585..2b11f37835d 100644 --- a/tests/packagedcode/data/pypi/setup.py/pyrpm_2_setup.py-expected.json +++ b/tests/packagedcode/data/pypi/setup.py/pyrpm_2_setup.py-expected.json @@ -53,6 +53,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:pypi/pyrpm-02strich@0.5.3", "repository_homepage_url": "https://pypi.org/project/pyrpm-02strich", "repository_download_url": "https://pypi.io/packages/source/p/pyrpm-02strich/pyrpm-02strich-0.5.3.tar.gz", diff --git a/tests/packagedcode/data/pypi/setup.py/python_publicsuffix_setup.py-expected.json b/tests/packagedcode/data/pypi/setup.py/python_publicsuffix_setup.py-expected.json index 9b5e50ba7cb..fdf451cd7fb 100644 --- a/tests/packagedcode/data/pypi/setup.py/python_publicsuffix_setup.py-expected.json +++ b/tests/packagedcode/data/pypi/setup.py/python_publicsuffix_setup.py-expected.json @@ -46,6 +46,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:pypi/publicsuffix@1.1.1", "repository_homepage_url": "https://pypi.org/project/publicsuffix", "repository_download_url": "https://pypi.io/packages/source/p/publicsuffix/publicsuffix-1.1.1.tar.gz", diff --git a/tests/packagedcode/data/pypi/setup.py/repology_py_libversion_setup.py-expected.json b/tests/packagedcode/data/pypi/setup.py/repology_py_libversion_setup.py-expected.json index 5dd12183a15..dcf19084115 100644 --- a/tests/packagedcode/data/pypi/setup.py/repology_py_libversion_setup.py-expected.json +++ b/tests/packagedcode/data/pypi/setup.py/repology_py_libversion_setup.py-expected.json @@ -51,6 +51,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:pypi/libversion", "repository_homepage_url": "https://pypi.org/project/libversion", "repository_download_url": null, diff --git a/tests/packagedcode/data/pypi/setup.py/saneyaml_setup.py-expected.json b/tests/packagedcode/data/pypi/setup.py/saneyaml_setup.py-expected.json index 3897ae52cd0..79e4b479340 100644 --- a/tests/packagedcode/data/pypi/setup.py/saneyaml_setup.py-expected.json +++ b/tests/packagedcode/data/pypi/setup.py/saneyaml_setup.py-expected.json @@ -52,6 +52,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:pypi/saneyaml@0.2dev", "repository_homepage_url": "https://pypi.org/project/saneyaml", "repository_download_url": "https://pypi.io/packages/source/s/saneyaml/saneyaml-0.2dev.tar.gz", diff --git a/tests/packagedcode/data/pypi/setup.py/setup.py-expected.json b/tests/packagedcode/data/pypi/setup.py/setup.py-expected.json index da25bdae84c..55ebd898ad0 100644 --- a/tests/packagedcode/data/pypi/setup.py/setup.py-expected.json +++ b/tests/packagedcode/data/pypi/setup.py/setup.py-expected.json @@ -48,6 +48,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:pypi/scancode-toolkit@1.5.0", "repository_homepage_url": "https://pypi.org/project/scancode-toolkit", "repository_download_url": "https://pypi.io/packages/source/s/scancode-toolkit/scancode-toolkit-1.5.0.tar.gz", diff --git a/tests/packagedcode/data/pypi/setup.py/setuppycheck_setup.py-expected.json b/tests/packagedcode/data/pypi/setup.py/setuppycheck_setup.py-expected.json index 3b482b6de4a..282eeee828d 100644 --- a/tests/packagedcode/data/pypi/setup.py/setuppycheck_setup.py-expected.json +++ b/tests/packagedcode/data/pypi/setup.py/setuppycheck_setup.py-expected.json @@ -39,6 +39,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:pypi/setuppycheck", "repository_homepage_url": "https://pypi.org/project/setuppycheck", "repository_download_url": null, diff --git a/tests/packagedcode/data/pypi/setup.py/url_py_setup.py-expected.json b/tests/packagedcode/data/pypi/setup.py/url_py_setup.py-expected.json index be70d407790..9d8d0b53bf6 100644 --- a/tests/packagedcode/data/pypi/setup.py/url_py_setup.py-expected.json +++ b/tests/packagedcode/data/pypi/setup.py/url_py_setup.py-expected.json @@ -46,6 +46,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:pypi/urlpy@0.2.0.2", "repository_homepage_url": "https://pypi.org/project/urlpy", "repository_download_url": "https://pypi.io/packages/source/u/urlpy/urlpy-0.2.0.2.tar.gz", diff --git a/tests/packagedcode/data/pypi/setup.py/venv_setup.py-expected.json b/tests/packagedcode/data/pypi/setup.py/venv_setup.py-expected.json index dbf5e3b9451..c6019fcbc46 100644 --- a/tests/packagedcode/data/pypi/setup.py/venv_setup.py-expected.json +++ b/tests/packagedcode/data/pypi/setup.py/venv_setup.py-expected.json @@ -51,6 +51,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:pypi/virtualenv", "repository_homepage_url": "https://pypi.org/project/virtualenv", "repository_download_url": null, diff --git a/tests/packagedcode/data/pypi/setup.py/xmltodict_setup.py-expected.json b/tests/packagedcode/data/pypi/setup.py/xmltodict_setup.py-expected.json index fc9584c81ce..fb0e5a0a6e0 100644 --- a/tests/packagedcode/data/pypi/setup.py/xmltodict_setup.py-expected.json +++ b/tests/packagedcode/data/pypi/setup.py/xmltodict_setup.py-expected.json @@ -57,6 +57,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:pypi/xmltodict", "repository_homepage_url": "https://pypi.org/project/xmltodict", "repository_download_url": null, diff --git a/tests/packagedcode/data/pypi/unpackage_source_parser-expected.json b/tests/packagedcode/data/pypi/unpackage_source_parser-expected.json index 2c75d4ff7d7..993a67b6c27 100644 --- a/tests/packagedcode/data/pypi/unpackage_source_parser-expected.json +++ b/tests/packagedcode/data/pypi/unpackage_source_parser-expected.json @@ -38,6 +38,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:pypi/ticketimport@0.7a", "repository_homepage_url": "https://pypi.org/project/TicketImport", "repository_download_url": "https://pypi.io/packages/source/T/TicketImport/TicketImport-0.7a.tar.gz", diff --git a/tests/packagedcode/data/pypi/wheel/parse-wheel-expected.json b/tests/packagedcode/data/pypi/wheel/parse-wheel-expected.json index 89bf6b7dcb6..491e2c9e4fc 100644 --- a/tests/packagedcode/data/pypi/wheel/parse-wheel-expected.json +++ b/tests/packagedcode/data/pypi/wheel/parse-wheel-expected.json @@ -49,6 +49,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:pypi/atomicwrites@1.2.1", "repository_homepage_url": "https://pypi.org/project/atomicwrites", "repository_download_url": "https://pypi.io/packages/source/a/atomicwrites/atomicwrites-1.2.1.tar.gz", diff --git a/tests/packagedcode/data/rubygems/gem/a_okay-0.1.0.gem.json b/tests/packagedcode/data/rubygems/gem/a_okay-0.1.0.gem.json index 36a6e5f0e34..912c6f170fc 100644 --- a/tests/packagedcode/data/rubygems/gem/a_okay-0.1.0.gem.json +++ b/tests/packagedcode/data/rubygems/gem/a_okay-0.1.0.gem.json @@ -1,45 +1,46 @@ [ { - "type": "gem", - "namespace": null, - "name": "a_okay", - "version": "0.1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": "A simple controller that just returns if everything is 'a okay'!", - "release_date": "2009-11-15", + "type": "gem", + "namespace": null, + "name": "a_okay", + "version": "0.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Ruby", + "description": "A simple controller that just returns if everything is 'a okay'!", + "release_date": "2009-11-15", "parties": [ { - "type": null, - "role": "author", - "name": "Richard Hart", - "email": null, + "type": null, + "role": "author", + "name": "Richard Hart", + "email": null, "url": null } - ], - "keywords": [], - "homepage_url": "http://github.com/hates/a_okay", - "download_url": "https://rubygems.org/downloads/a_okay-0.1.0.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": [], - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:gem/a_okay@0.1.0", - "repository_homepage_url": "https://rubygems.org/gems/a_okay/versions/0.1.0", - "repository_download_url": "https://rubygems.org/downloads/a_okay-0.1.0.gem", + ], + "keywords": [], + "homepage_url": "http://github.com/hates/a_okay", + "download_url": "https://rubygems.org/downloads/a_okay-0.1.0.gem", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": [], + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:gem/a_okay@0.1.0", + "repository_homepage_url": "https://rubygems.org/gems/a_okay/versions/0.1.0", + "repository_download_url": "https://rubygems.org/downloads/a_okay-0.1.0.gem", "api_data_url": "https://rubygems.org/api/v2/rubygems/a_okay/versions/0.1.0.json" } ] \ No newline at end of file diff --git a/tests/packagedcode/data/rubygems/gem/action_tracker-1.0.2.gem.json b/tests/packagedcode/data/rubygems/gem/action_tracker-1.0.2.gem.json index 3741bf60cff..8ac6276aeef 100644 --- a/tests/packagedcode/data/rubygems/gem/action_tracker-1.0.2.gem.json +++ b/tests/packagedcode/data/rubygems/gem/action_tracker-1.0.2.gem.json @@ -1,135 +1,136 @@ [ { - "type": "gem", - "namespace": null, - "name": "action_tracker", - "version": "1.0.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": "Easy way to track actions in your application.\nEasy way to track actions in your application without adding unnecessary code to your controllers.", - "release_date": "2016-11-21", + "type": "gem", + "namespace": null, + "name": "action_tracker", + "version": "1.0.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "Ruby", + "description": "Easy way to track actions in your application.\nEasy way to track actions in your application without adding unnecessary code to your controllers.", + "release_date": "2016-11-21", "parties": [ { - "type": null, - "role": "author", - "name": "Andr\u00e9 Taiar", - "email": null, + "type": null, + "role": "author", + "name": "Andr\u00e9 Taiar", + "email": null, "url": null - }, + }, { - "type": null, - "role": "author", - "name": "Jo\u00e3o Fraga", - "email": null, + "type": null, + "role": "author", + "name": "Jo\u00e3o Fraga", + "email": null, "url": null } - ], - "keywords": [], - "homepage_url": "http://coders.appprova.com.br/", - "download_url": "https://rubygems.org/downloads/action_tracker-1.0.2.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": "mit", + ], + "keywords": [], + "homepage_url": "http://coders.appprova.com.br/", + "download_url": "https://rubygems.org/downloads/action_tracker-1.0.2.gem", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": "mit", "declared_license": [ "MIT" - ], - "notice_text": null, - "root_path": null, + ], + "notice_text": null, + "root_path": null, "dependencies": [ { - "purl": "pkg:gem/activesupport", - "requirement": ">= 3.2, < 6.0", - "scope": "runtime", - "is_runtime": true, - "is_optional": false, + "purl": "pkg:gem/activesupport", + "requirement": ">= 3.2, < 6.0", + "scope": "runtime", + "is_runtime": true, + "is_optional": false, "is_resolved": false - }, + }, { - "purl": "pkg:gem/devise", - "requirement": "~> 4", - "scope": "runtime", - "is_runtime": true, - "is_optional": false, + "purl": "pkg:gem/devise", + "requirement": "~> 4", + "scope": "runtime", + "is_runtime": true, + "is_optional": false, "is_resolved": false - }, + }, { - "purl": "pkg:gem/bundler", - "requirement": "~> 1.11", - "scope": "development", - "is_runtime": false, - "is_optional": true, + "purl": "pkg:gem/bundler", + "requirement": "~> 1.11", + "scope": "development", + "is_runtime": false, + "is_optional": true, "is_resolved": false - }, + }, { - "purl": "pkg:gem/rake", - "requirement": "~> 10.0", - "scope": "development", - "is_runtime": false, - "is_optional": true, + "purl": "pkg:gem/rake", + "requirement": "~> 10.0", + "scope": "development", + "is_runtime": false, + "is_optional": true, "is_resolved": false - }, + }, { - "purl": "pkg:gem/rspec-rails", - "requirement": "~> 3.0", - "scope": "development", - "is_runtime": false, - "is_optional": true, + "purl": "pkg:gem/rspec-rails", + "requirement": "~> 3.0", + "scope": "development", + "is_runtime": false, + "is_optional": true, "is_resolved": false - }, + }, { - "purl": "pkg:gem/rails", - "requirement": ">= 3.2, < 6.0", - "scope": "development", - "is_runtime": false, - "is_optional": true, + "purl": "pkg:gem/rails", + "requirement": ">= 3.2, < 6.0", + "scope": "development", + "is_runtime": false, + "is_optional": true, "is_resolved": false - }, + }, { - "purl": "pkg:gem/guard", - "requirement": "~> 2.13", - "scope": "development", - "is_runtime": false, - "is_optional": true, + "purl": "pkg:gem/guard", + "requirement": "~> 2.13", + "scope": "development", + "is_runtime": false, + "is_optional": true, "is_resolved": false - }, + }, { - "purl": "pkg:gem/byebug", - "requirement": "~> 5.0", - "scope": "development", - "is_runtime": false, - "is_optional": true, + "purl": "pkg:gem/byebug", + "requirement": "~> 5.0", + "scope": "development", + "is_runtime": false, + "is_optional": true, "is_resolved": false - }, + }, { - "purl": "pkg:gem/guard-rspec", - "requirement": "~> 4.6", - "scope": "development", - "is_runtime": false, - "is_optional": true, + "purl": "pkg:gem/guard-rspec", + "requirement": "~> 4.6", + "scope": "development", + "is_runtime": false, + "is_optional": true, "is_resolved": false - }, + }, { - "purl": "pkg:gem/jasmine", - "requirement": "~> 2.4", - "scope": "development", - "is_runtime": false, - "is_optional": true, + "purl": "pkg:gem/jasmine", + "requirement": "~> 2.4", + "scope": "development", + "is_runtime": false, + "is_optional": true, "is_resolved": false } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:gem/action_tracker@1.0.2", - "repository_homepage_url": "https://rubygems.org/gems/action_tracker/versions/1.0.2", - "repository_download_url": "https://rubygems.org/downloads/action_tracker-1.0.2.gem", + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:gem/action_tracker@1.0.2", + "repository_homepage_url": "https://rubygems.org/gems/action_tracker/versions/1.0.2", + "repository_download_url": "https://rubygems.org/downloads/action_tracker-1.0.2.gem", "api_data_url": "https://rubygems.org/api/v2/rubygems/action_tracker/versions/1.0.2.json" } ] \ No newline at end of file diff --git a/tests/packagedcode/data/rubygems/gem/archive-tar-minitar-0.5.2.gem.json b/tests/packagedcode/data/rubygems/gem/archive-tar-minitar-0.5.2.gem.json index 0d18a7195b4..b4d20ce2e6b 100644 --- a/tests/packagedcode/data/rubygems/gem/archive-tar-minitar-0.5.2.gem.json +++ b/tests/packagedcode/data/rubygems/gem/archive-tar-minitar-0.5.2.gem.json @@ -1,45 +1,46 @@ [ { - "type": "gem", - "namespace": null, - "name": "archive-tar-minitar", - "version": "0.5.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": "Provides POSIX tarchive management from Ruby programs.\nArchive::Tar::Minitar is a pure-Ruby library and command-line utility that provides the ability to deal with POSIX tar(1) archive files. The implementation is based heavily on Mauricio Ferna'ndez's implementation in rpa-base, but has been reorganised to promote reuse in other projects.", - "release_date": "2008-02-26", + "type": "gem", + "namespace": null, + "name": "archive-tar-minitar", + "version": "0.5.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "Ruby", + "description": "Provides POSIX tarchive management from Ruby programs.\nArchive::Tar::Minitar is a pure-Ruby library and command-line utility that provides the ability to deal with POSIX tar(1) archive files. The implementation is based heavily on Mauricio Ferna'ndez's implementation in rpa-base, but has been reorganised to promote reuse in other projects.", + "release_date": "2008-02-26", "parties": [ { - "type": null, - "role": "author", - "name": "Austin Ziegler, Mauricio Ferna'ndez", - "email": null, + "type": null, + "role": "author", + "name": "Austin Ziegler, Mauricio Ferna'ndez", + "email": null, "url": null } - ], - "keywords": [], - "homepage_url": "http://rubyforge.org/projects/ruwiki/", - "download_url": "https://rubygems.org/downloads/archive-tar-minitar-0.5.2.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": [], - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:gem/archive-tar-minitar@0.5.2", - "repository_homepage_url": "https://rubygems.org/gems/archive-tar-minitar/versions/0.5.2", - "repository_download_url": "https://rubygems.org/downloads/archive-tar-minitar-0.5.2.gem", + ], + "keywords": [], + "homepage_url": "http://rubyforge.org/projects/ruwiki/", + "download_url": "https://rubygems.org/downloads/archive-tar-minitar-0.5.2.gem", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": [], + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:gem/archive-tar-minitar@0.5.2", + "repository_homepage_url": "https://rubygems.org/gems/archive-tar-minitar/versions/0.5.2", + "repository_download_url": "https://rubygems.org/downloads/archive-tar-minitar-0.5.2.gem", "api_data_url": "https://rubygems.org/api/v2/rubygems/archive-tar-minitar/versions/0.5.2.json" } ] \ No newline at end of file diff --git a/tests/packagedcode/data/rubygems/gem/blankslate-3.1.3.gem.json b/tests/packagedcode/data/rubygems/gem/blankslate-3.1.3.gem.json index d1c0ebcd501..a8d8ea02b8c 100644 --- a/tests/packagedcode/data/rubygems/gem/blankslate-3.1.3.gem.json +++ b/tests/packagedcode/data/rubygems/gem/blankslate-3.1.3.gem.json @@ -1,76 +1,77 @@ [ { - "type": "gem", - "namespace": null, - "name": "blankslate", - "version": "3.1.3", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": "BlankSlate extracted from Builder.", - "release_date": "2014-06-18", + "type": "gem", + "namespace": null, + "name": "blankslate", + "version": "3.1.3", + "qualifiers": {}, + "subpath": null, + "primary_language": "Ruby", + "description": "BlankSlate extracted from Builder.", + "release_date": "2014-06-18", "parties": [ { - "type": null, - "role": "author", - "name": "Jim Weirich", - "email": null, + "type": null, + "role": "author", + "name": "Jim Weirich", + "email": null, "url": null - }, + }, { - "type": null, - "role": "author", - "name": "David Masover", - "email": null, + "type": null, + "role": "author", + "name": "David Masover", + "email": null, "url": null - }, + }, { - "type": null, - "role": "author", - "name": "Jack Danger Canty", - "email": null, + "type": null, + "role": "author", + "name": "Jack Danger Canty", + "email": null, "url": null } - ], - "keywords": [], - "homepage_url": "http://github.com/masover/blankslate", - "download_url": "https://rubygems.org/downloads/blankslate-3.1.3.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": [], - "notice_text": null, - "root_path": null, + ], + "keywords": [], + "homepage_url": "http://github.com/masover/blankslate", + "download_url": "https://rubygems.org/downloads/blankslate-3.1.3.gem", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": [], + "notice_text": null, + "root_path": null, "dependencies": [ { - "purl": "pkg:gem/rspec", - "requirement": null, - "scope": "development", - "is_runtime": false, - "is_optional": true, + "purl": "pkg:gem/rspec", + "requirement": null, + "scope": "development", + "is_runtime": false, + "is_optional": true, "is_resolved": false - }, + }, { - "purl": "pkg:gem/bundler", - "requirement": null, - "scope": "development", - "is_runtime": false, - "is_optional": true, + "purl": "pkg:gem/bundler", + "requirement": null, + "scope": "development", + "is_runtime": false, + "is_optional": true, "is_resolved": false } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:gem/blankslate@3.1.3", - "repository_homepage_url": "https://rubygems.org/gems/blankslate/versions/3.1.3", - "repository_download_url": "https://rubygems.org/downloads/blankslate-3.1.3.gem", + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:gem/blankslate@3.1.3", + "repository_homepage_url": "https://rubygems.org/gems/blankslate/versions/3.1.3", + "repository_download_url": "https://rubygems.org/downloads/blankslate-3.1.3.gem", "api_data_url": "https://rubygems.org/api/v2/rubygems/blankslate/versions/3.1.3.json" } ] \ No newline at end of file diff --git a/tests/packagedcode/data/rubygems/gem/m2r-2.1.0.gem.json b/tests/packagedcode/data/rubygems/gem/m2r-2.1.0.gem.json index e67a03cd1b6..0f4ca0941bf 100644 --- a/tests/packagedcode/data/rubygems/gem/m2r-2.1.0.gem.json +++ b/tests/packagedcode/data/rubygems/gem/m2r-2.1.0.gem.json @@ -1,173 +1,174 @@ [ { - "type": "gem", - "namespace": null, - "name": "m2r", - "version": "2.1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": "Mongrel2 interface and handler library for Ruby.\nMongrel2 Rack handler and pure handler. Works with Rack, so it works with Rails!", - "release_date": "2013-10-29", + "type": "gem", + "namespace": null, + "name": "m2r", + "version": "2.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Ruby", + "description": "Mongrel2 interface and handler library for Ruby.\nMongrel2 Rack handler and pure handler. Works with Rack, so it works with Rails!", + "release_date": "2013-10-29", "parties": [ { - "type": null, - "role": "author", - "name": "Colin Curtin", - "email": null, + "type": null, + "role": "author", + "name": "Colin Curtin", + "email": null, "url": null - }, + }, { - "type": null, - "role": "author", - "name": "Pradeep Elankumaran", - "email": null, + "type": null, + "role": "author", + "name": "Pradeep Elankumaran", + "email": null, "url": null - }, + }, { - "type": null, - "role": "author", - "name": "Pawel Pacana", - "email": null, + "type": null, + "role": "author", + "name": "Pawel Pacana", + "email": null, "url": null - }, + }, { - "type": null, - "role": "author", - "name": "Robert Pankowecki", - "email": null, + "type": null, + "role": "author", + "name": "Robert Pankowecki", + "email": null, "url": null } - ], - "keywords": [], - "homepage_url": "http://github.com/perplexes/m2r", - "download_url": "https://rubygems.org/downloads/m2r-2.1.0.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": "mit", + ], + "keywords": [], + "homepage_url": "http://github.com/perplexes/m2r", + "download_url": "https://rubygems.org/downloads/m2r-2.1.0.gem", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": "mit", "declared_license": [ "MIT" - ], - "notice_text": null, - "root_path": null, + ], + "notice_text": null, + "root_path": null, "dependencies": [ { - "purl": "pkg:gem/ffi-rzmq", - "requirement": ">= 1.0.1", - "scope": "runtime", - "is_runtime": true, - "is_optional": false, + "purl": "pkg:gem/ffi-rzmq", + "requirement": ">= 1.0.1", + "scope": "runtime", + "is_runtime": true, + "is_optional": false, "is_resolved": false - }, + }, { - "purl": "pkg:gem/ffi", - "requirement": ">= 1.0.0", - "scope": "runtime", - "is_runtime": true, - "is_optional": false, + "purl": "pkg:gem/ffi", + "requirement": ">= 1.0.0", + "scope": "runtime", + "is_runtime": true, + "is_optional": false, "is_resolved": false - }, + }, { - "purl": "pkg:gem/multi_json", - "requirement": null, - "scope": "runtime", - "is_runtime": true, - "is_optional": false, + "purl": "pkg:gem/multi_json", + "requirement": null, + "scope": "runtime", + "is_runtime": true, + "is_optional": false, "is_resolved": false - }, + }, { - "purl": "pkg:gem/tnetstring", - "requirement": null, - "scope": "runtime", - "is_runtime": true, - "is_optional": false, + "purl": "pkg:gem/tnetstring", + "requirement": null, + "scope": "runtime", + "is_runtime": true, + "is_optional": false, "is_resolved": false - }, + }, { - "purl": "pkg:gem/rack", - "requirement": null, - "scope": "development", - "is_runtime": false, - "is_optional": true, + "purl": "pkg:gem/rack", + "requirement": null, + "scope": "development", + "is_runtime": false, + "is_optional": true, "is_resolved": false - }, + }, { - "purl": "pkg:gem/rake", - "requirement": null, - "scope": "development", - "is_runtime": false, - "is_optional": true, + "purl": "pkg:gem/rake", + "requirement": null, + "scope": "development", + "is_runtime": false, + "is_optional": true, "is_resolved": false - }, + }, { - "purl": "pkg:gem/minitest", - "requirement": "= 3.2.0", - "scope": "development", - "is_runtime": false, - "is_optional": true, + "purl": "pkg:gem/minitest", + "requirement": "= 3.2.0", + "scope": "development", + "is_runtime": false, + "is_optional": true, "is_resolved": true - }, + }, { - "purl": "pkg:gem/mocha", - "requirement": ">= 0.14.0", - "scope": "development", - "is_runtime": false, - "is_optional": true, + "purl": "pkg:gem/mocha", + "requirement": ">= 0.14.0", + "scope": "development", + "is_runtime": false, + "is_optional": true, "is_resolved": false - }, + }, { - "purl": "pkg:gem/bbq", - "requirement": "= 0.0.4", - "scope": "development", - "is_runtime": false, - "is_optional": true, + "purl": "pkg:gem/bbq", + "requirement": "= 0.0.4", + "scope": "development", + "is_runtime": false, + "is_optional": true, "is_resolved": true - }, + }, { - "purl": "pkg:gem/capybara-mechanize", - "requirement": "= 0.3.0", - "scope": "development", - "is_runtime": false, - "is_optional": true, + "purl": "pkg:gem/capybara-mechanize", + "requirement": "= 0.3.0", + "scope": "development", + "is_runtime": false, + "is_optional": true, "is_resolved": true - }, + }, { - "purl": "pkg:gem/activesupport", - "requirement": "~> 3.2.7", - "scope": "development", - "is_runtime": false, - "is_optional": true, + "purl": "pkg:gem/activesupport", + "requirement": "~> 3.2.7", + "scope": "development", + "is_runtime": false, + "is_optional": true, "is_resolved": false - }, + }, { - "purl": "pkg:gem/yard", - "requirement": "~> 0.8.2", - "scope": "development", - "is_runtime": false, - "is_optional": true, + "purl": "pkg:gem/yard", + "requirement": "~> 0.8.2", + "scope": "development", + "is_runtime": false, + "is_optional": true, "is_resolved": false - }, + }, { - "purl": "pkg:gem/kramdown", - "requirement": "~> 0.13.7", - "scope": "development", - "is_runtime": false, - "is_optional": true, + "purl": "pkg:gem/kramdown", + "requirement": "~> 0.13.7", + "scope": "development", + "is_runtime": false, + "is_optional": true, "is_resolved": false } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:gem/m2r@2.1.0", - "repository_homepage_url": "https://rubygems.org/gems/m2r/versions/2.1.0", - "repository_download_url": "https://rubygems.org/downloads/m2r-2.1.0.gem", + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:gem/m2r@2.1.0", + "repository_homepage_url": "https://rubygems.org/gems/m2r/versions/2.1.0", + "repository_download_url": "https://rubygems.org/downloads/m2r-2.1.0.gem", "api_data_url": "https://rubygems.org/api/v2/rubygems/m2r/versions/2.1.0.json" } ] \ No newline at end of file diff --git a/tests/packagedcode/data/rubygems/gem/mysmallidea-address_standardization-0.4.1.gem.json b/tests/packagedcode/data/rubygems/gem/mysmallidea-address_standardization-0.4.1.gem.json index e1707a8ce46..a3938b9474d 100644 --- a/tests/packagedcode/data/rubygems/gem/mysmallidea-address_standardization-0.4.1.gem.json +++ b/tests/packagedcode/data/rubygems/gem/mysmallidea-address_standardization-0.4.1.gem.json @@ -1,70 +1,71 @@ [ { - "type": "gem", - "namespace": null, - "name": "mysmallidea-address_standardization", - "version": "0.4.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": "A tiny Ruby library to quickly standardize a postal address", - "release_date": "2010-02-01", + "type": "gem", + "namespace": null, + "name": "mysmallidea-address_standardization", + "version": "0.4.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "Ruby", + "description": "A tiny Ruby library to quickly standardize a postal address", + "release_date": "2010-02-01", "parties": [ { - "type": null, - "role": "author", - "name": "Elliot Winkler", - "email": null, + "type": null, + "role": "author", + "name": "Elliot Winkler", + "email": null, "url": null } - ], - "keywords": [], - "homepage_url": "http://github.com/mcmire/address_standardization", - "download_url": "https://rubygems.org/downloads/mysmallidea-address_standardization-0.4.1.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": [], - "notice_text": null, - "root_path": null, + ], + "keywords": [], + "homepage_url": "http://github.com/mcmire/address_standardization", + "download_url": "https://rubygems.org/downloads/mysmallidea-address_standardization-0.4.1.gem", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": [], + "notice_text": null, + "root_path": null, "dependencies": [ { - "purl": "pkg:gem/mechanize", - "requirement": null, - "scope": "runtime", - "is_runtime": true, - "is_optional": false, + "purl": "pkg:gem/mechanize", + "requirement": null, + "scope": "runtime", + "is_runtime": true, + "is_optional": false, "is_resolved": false - }, + }, { - "purl": "pkg:gem/mcmire-context", - "requirement": null, - "scope": "development", - "is_runtime": false, - "is_optional": true, + "purl": "pkg:gem/mcmire-context", + "requirement": null, + "scope": "development", + "is_runtime": false, + "is_optional": true, "is_resolved": false - }, + }, { - "purl": "pkg:gem/mcmire-matchy", - "requirement": null, - "scope": "development", - "is_runtime": false, - "is_optional": true, + "purl": "pkg:gem/mcmire-matchy", + "requirement": null, + "scope": "development", + "is_runtime": false, + "is_optional": true, "is_resolved": false } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:gem/mysmallidea-address_standardization@0.4.1", - "repository_homepage_url": "https://rubygems.org/gems/mysmallidea-address_standardization/versions/0.4.1", - "repository_download_url": "https://rubygems.org/downloads/mysmallidea-address_standardization-0.4.1.gem", + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:gem/mysmallidea-address_standardization@0.4.1", + "repository_homepage_url": "https://rubygems.org/gems/mysmallidea-address_standardization/versions/0.4.1", + "repository_download_url": "https://rubygems.org/downloads/mysmallidea-address_standardization-0.4.1.gem", "api_data_url": "https://rubygems.org/api/v2/rubygems/mysmallidea-address_standardization/versions/0.4.1.json" } ] \ No newline at end of file diff --git a/tests/packagedcode/data/rubygems/gem/mysmallidea-mad_mimi_mailer-0.0.9.gem.json b/tests/packagedcode/data/rubygems/gem/mysmallidea-mad_mimi_mailer-0.0.9.gem.json index 8291ac417ad..723ac123134 100644 --- a/tests/packagedcode/data/rubygems/gem/mysmallidea-mad_mimi_mailer-0.0.9.gem.json +++ b/tests/packagedcode/data/rubygems/gem/mysmallidea-mad_mimi_mailer-0.0.9.gem.json @@ -1,45 +1,46 @@ [ { - "type": "gem", - "namespace": null, - "name": "mysmallidea-mad_mimi_mailer", - "version": "0.0.9", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": "Extending ActionMailer::Base for Mad Mimi integration.\nUse Mad Mimi to send beautiful HTML emails using the ActionMailer API.", - "release_date": "2010-04-09", + "type": "gem", + "namespace": null, + "name": "mysmallidea-mad_mimi_mailer", + "version": "0.0.9", + "qualifiers": {}, + "subpath": null, + "primary_language": "Ruby", + "description": "Extending ActionMailer::Base for Mad Mimi integration.\nUse Mad Mimi to send beautiful HTML emails using the ActionMailer API.", + "release_date": "2010-04-09", "parties": [ { - "type": null, - "role": "author", - "name": "Dave Hoover", - "email": null, + "type": null, + "role": "author", + "name": "Dave Hoover", + "email": null, "url": null } - ], - "keywords": [], - "homepage_url": "http://developer.madmimi.com/", - "download_url": "https://rubygems.org/downloads/mysmallidea-mad_mimi_mailer-0.0.9.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": [], - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:gem/mysmallidea-mad_mimi_mailer@0.0.9", - "repository_homepage_url": "https://rubygems.org/gems/mysmallidea-mad_mimi_mailer/versions/0.0.9", - "repository_download_url": "https://rubygems.org/downloads/mysmallidea-mad_mimi_mailer-0.0.9.gem", + ], + "keywords": [], + "homepage_url": "http://developer.madmimi.com/", + "download_url": "https://rubygems.org/downloads/mysmallidea-mad_mimi_mailer-0.0.9.gem", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": [], + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:gem/mysmallidea-mad_mimi_mailer@0.0.9", + "repository_homepage_url": "https://rubygems.org/gems/mysmallidea-mad_mimi_mailer/versions/0.0.9", + "repository_download_url": "https://rubygems.org/downloads/mysmallidea-mad_mimi_mailer-0.0.9.gem", "api_data_url": "https://rubygems.org/api/v2/rubygems/mysmallidea-mad_mimi_mailer/versions/0.0.9.json" } ] \ No newline at end of file diff --git a/tests/packagedcode/data/rubygems/gem/new/dependabot-omnibus-0.87.15.gem.json b/tests/packagedcode/data/rubygems/gem/new/dependabot-omnibus-0.87.15.gem.json index 2a07b28e3f3..831120f7aeb 100644 --- a/tests/packagedcode/data/rubygems/gem/new/dependabot-omnibus-0.87.15.gem.json +++ b/tests/packagedcode/data/rubygems/gem/new/dependabot-omnibus-0.87.15.gem.json @@ -1,136 +1,137 @@ [ { - "type": "gem", - "namespace": null, - "name": "dependabot-omnibus", - "version": "0.87.15", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": "Meta-package that depends on all core dependabot-core package managers\nAutomated dependency management for Ruby, JavaScript, Python, PHP, Elixir, Rust, Java, .NET, Elm and Go", - "release_date": "2019-01-09", + "type": "gem", + "namespace": null, + "name": "dependabot-omnibus", + "version": "0.87.15", + "qualifiers": {}, + "subpath": null, + "primary_language": "Ruby", + "description": "Meta-package that depends on all core dependabot-core package managers\nAutomated dependency management for Ruby, JavaScript, Python, PHP, Elixir, Rust, Java, .NET, Elm and Go", + "release_date": "2019-01-09", "parties": [ { - "type": null, - "role": "author", - "name": "Dependabot", - "email": null, + "type": null, + "role": "author", + "name": "Dependabot", + "email": null, "url": null } - ], - "keywords": [], - "homepage_url": "https://github.com/dependabot/dependabot-core", - "download_url": "https://rubygems.org/downloads/dependabot-omnibus-0.87.15.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": "unknown", + ], + "keywords": [], + "homepage_url": "https://github.com/dependabot/dependabot-core", + "download_url": "https://rubygems.org/downloads/dependabot-omnibus-0.87.15.gem", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": "unknown", "declared_license": [ "Nonstandard" - ], - "notice_text": null, - "root_path": null, + ], + "notice_text": null, + "root_path": null, "dependencies": [ { - "purl": "pkg:gem/dependabot-cargo", - "requirement": "= 0.87.15", - "scope": "runtime", - "is_runtime": true, - "is_optional": false, + "purl": "pkg:gem/dependabot-cargo", + "requirement": "= 0.87.15", + "scope": "runtime", + "is_runtime": true, + "is_optional": false, "is_resolved": true - }, + }, { - "purl": "pkg:gem/dependabot-core", - "requirement": "= 0.87.15", - "scope": "runtime", - "is_runtime": true, - "is_optional": false, + "purl": "pkg:gem/dependabot-core", + "requirement": "= 0.87.15", + "scope": "runtime", + "is_runtime": true, + "is_optional": false, "is_resolved": true - }, + }, { - "purl": "pkg:gem/dependabot-docker", - "requirement": "= 0.87.15", - "scope": "runtime", - "is_runtime": true, - "is_optional": false, + "purl": "pkg:gem/dependabot-docker", + "requirement": "= 0.87.15", + "scope": "runtime", + "is_runtime": true, + "is_optional": false, "is_resolved": true - }, + }, { - "purl": "pkg:gem/dependabot-elm", - "requirement": "= 0.87.15", - "scope": "runtime", - "is_runtime": true, - "is_optional": false, + "purl": "pkg:gem/dependabot-elm", + "requirement": "= 0.87.15", + "scope": "runtime", + "is_runtime": true, + "is_optional": false, "is_resolved": true - }, + }, { - "purl": "pkg:gem/dependabot-git_submodules", - "requirement": "= 0.87.15", - "scope": "runtime", - "is_runtime": true, - "is_optional": false, + "purl": "pkg:gem/dependabot-git_submodules", + "requirement": "= 0.87.15", + "scope": "runtime", + "is_runtime": true, + "is_optional": false, "is_resolved": true - }, + }, { - "purl": "pkg:gem/dependabot-go_modules", - "requirement": "= 0.87.15", - "scope": "runtime", - "is_runtime": true, - "is_optional": false, + "purl": "pkg:gem/dependabot-go_modules", + "requirement": "= 0.87.15", + "scope": "runtime", + "is_runtime": true, + "is_optional": false, "is_resolved": true - }, + }, { - "purl": "pkg:gem/dependabot-gradle", - "requirement": "= 0.87.15", - "scope": "runtime", - "is_runtime": true, - "is_optional": false, + "purl": "pkg:gem/dependabot-gradle", + "requirement": "= 0.87.15", + "scope": "runtime", + "is_runtime": true, + "is_optional": false, "is_resolved": true - }, + }, { - "purl": "pkg:gem/dependabot-maven", - "requirement": "= 0.87.15", - "scope": "runtime", - "is_runtime": true, - "is_optional": false, + "purl": "pkg:gem/dependabot-maven", + "requirement": "= 0.87.15", + "scope": "runtime", + "is_runtime": true, + "is_optional": false, "is_resolved": true - }, + }, { - "purl": "pkg:gem/dependabot-nuget", - "requirement": "= 0.87.15", - "scope": "runtime", - "is_runtime": true, - "is_optional": false, + "purl": "pkg:gem/dependabot-nuget", + "requirement": "= 0.87.15", + "scope": "runtime", + "is_runtime": true, + "is_optional": false, "is_resolved": true - }, + }, { - "purl": "pkg:gem/dependabot-python", - "requirement": "= 0.87.15", - "scope": "runtime", - "is_runtime": true, - "is_optional": false, + "purl": "pkg:gem/dependabot-python", + "requirement": "= 0.87.15", + "scope": "runtime", + "is_runtime": true, + "is_optional": false, "is_resolved": true - }, + }, { - "purl": "pkg:gem/dependabot-terraform", - "requirement": "= 0.87.15", - "scope": "runtime", - "is_runtime": true, - "is_optional": false, + "purl": "pkg:gem/dependabot-terraform", + "requirement": "= 0.87.15", + "scope": "runtime", + "is_runtime": true, + "is_optional": false, "is_resolved": true } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:gem/dependabot-omnibus@0.87.15", - "repository_homepage_url": "https://rubygems.org/gems/dependabot-omnibus/versions/0.87.15", - "repository_download_url": "https://rubygems.org/downloads/dependabot-omnibus-0.87.15.gem", + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:gem/dependabot-omnibus@0.87.15", + "repository_homepage_url": "https://rubygems.org/gems/dependabot-omnibus/versions/0.87.15", + "repository_download_url": "https://rubygems.org/downloads/dependabot-omnibus-0.87.15.gem", "api_data_url": "https://rubygems.org/api/v2/rubygems/dependabot-omnibus/versions/0.87.15.json" } ] \ No newline at end of file diff --git a/tests/packagedcode/data/rubygems/gem/new/hiredis-0.6.3-java.gem.json b/tests/packagedcode/data/rubygems/gem/new/hiredis-0.6.3-java.gem.json index 3d258d2f8b5..572abedfb94 100644 --- a/tests/packagedcode/data/rubygems/gem/new/hiredis-0.6.3-java.gem.json +++ b/tests/packagedcode/data/rubygems/gem/new/hiredis-0.6.3-java.gem.json @@ -1,74 +1,75 @@ [ { - "type": "gem", - "namespace": null, - "name": "hiredis", - "version": "0.6.3", + "type": "gem", + "namespace": null, + "name": "hiredis", + "version": "0.6.3", "qualifiers": { "platform": "java" - }, - "subpath": null, - "primary_language": "Ruby", - "description": "Ruby wrapper for hiredis (protocol serialization/deserialization and blocking I/O)", - "release_date": "2018-11-08", + }, + "subpath": null, + "primary_language": "Ruby", + "description": "Ruby wrapper for hiredis (protocol serialization/deserialization and blocking I/O)", + "release_date": "2018-11-08", "parties": [ { - "type": null, - "role": "author", - "name": "Pieter Noordhuis", - "email": null, + "type": null, + "role": "author", + "name": "Pieter Noordhuis", + "email": null, "url": null } - ], - "keywords": [], - "homepage_url": "http://github.com/redis/hiredis-rb", - "download_url": "https://rubygems.org/downloads/hiredis-0.6.3-java.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": "bsd-new", + ], + "keywords": [], + "homepage_url": "http://github.com/redis/hiredis-rb", + "download_url": "https://rubygems.org/downloads/hiredis-0.6.3-java.gem", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": "bsd-new", "declared_license": [ "BSD-3-Clause" - ], - "notice_text": null, - "root_path": null, + ], + "notice_text": null, + "root_path": null, "dependencies": [ { - "purl": "pkg:gem/rake", - "requirement": "= 10.0", - "scope": "development", - "is_runtime": false, - "is_optional": true, + "purl": "pkg:gem/rake", + "requirement": "= 10.0", + "scope": "development", + "is_runtime": false, + "is_optional": true, "is_resolved": true - }, + }, { - "purl": "pkg:gem/rake-compiler", - "requirement": "~> 0.7.1", - "scope": "development", - "is_runtime": false, - "is_optional": true, + "purl": "pkg:gem/rake-compiler", + "requirement": "~> 0.7.1", + "scope": "development", + "is_runtime": false, + "is_optional": true, "is_resolved": false - }, + }, { - "purl": "pkg:gem/minitest", - "requirement": "~> 5.5.1", - "scope": "development", - "is_runtime": false, - "is_optional": true, + "purl": "pkg:gem/minitest", + "requirement": "~> 5.5.1", + "scope": "development", + "is_runtime": false, + "is_optional": true, "is_resolved": false } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:gem/hiredis@0.6.3?platform=java", - "repository_homepage_url": "https://rubygems.org/gems/hiredis/versions/0.6.3", - "repository_download_url": "https://rubygems.org/downloads/hiredis-0.6.3-java.gem", + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:gem/hiredis@0.6.3?platform=java", + "repository_homepage_url": "https://rubygems.org/gems/hiredis/versions/0.6.3", + "repository_download_url": "https://rubygems.org/downloads/hiredis-0.6.3-java.gem", "api_data_url": "https://rubygems.org/api/v2/rubygems/hiredis/versions/0.6.3.json" } ] \ No newline at end of file diff --git a/tests/packagedcode/data/rubygems/gem/new/int_time-0.0.2.gem.json b/tests/packagedcode/data/rubygems/gem/new/int_time-0.0.2.gem.json index b2f9762ac30..1e2b448ff9c 100644 --- a/tests/packagedcode/data/rubygems/gem/new/int_time-0.0.2.gem.json +++ b/tests/packagedcode/data/rubygems/gem/new/int_time-0.0.2.gem.json @@ -1,47 +1,48 @@ [ { - "type": "gem", - "namespace": null, - "name": "int_time", - "version": "0.0.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": "Integer Time Class\nA value class for time", - "release_date": "2018-12-26", + "type": "gem", + "namespace": null, + "name": "int_time", + "version": "0.0.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "Ruby", + "description": "Integer Time Class\nA value class for time", + "release_date": "2018-12-26", "parties": [ { - "type": null, - "role": "author", - "name": "Liren Tu", - "email": null, + "type": null, + "role": "author", + "name": "Liren Tu", + "email": null, "url": null } - ], - "keywords": [], - "homepage_url": "https://rubygems.org/gems/int_time", - "download_url": "https://rubygems.org/downloads/int_time-0.0.2.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": "mit", + ], + "keywords": [], + "homepage_url": "https://rubygems.org/gems/int_time", + "download_url": "https://rubygems.org/downloads/int_time-0.0.2.gem", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": "mit", "declared_license": [ "MIT" - ], - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:gem/int_time@0.0.2", - "repository_homepage_url": "https://rubygems.org/gems/int_time/versions/0.0.2", - "repository_download_url": "https://rubygems.org/downloads/int_time-0.0.2.gem", + ], + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:gem/int_time@0.0.2", + "repository_homepage_url": "https://rubygems.org/gems/int_time/versions/0.0.2", + "repository_download_url": "https://rubygems.org/downloads/int_time-0.0.2.gem", "api_data_url": "https://rubygems.org/api/v2/rubygems/int_time/versions/0.0.2.json" } ] \ No newline at end of file diff --git a/tests/packagedcode/data/rubygems/gem/new/jaro_winkler-1.5.1-java.gem.json b/tests/packagedcode/data/rubygems/gem/new/jaro_winkler-1.5.1-java.gem.json index 5f3a1144e2e..e30112f07ce 100644 --- a/tests/packagedcode/data/rubygems/gem/new/jaro_winkler-1.5.1-java.gem.json +++ b/tests/packagedcode/data/rubygems/gem/new/jaro_winkler-1.5.1-java.gem.json @@ -1,82 +1,83 @@ [ { - "type": "gem", - "namespace": null, - "name": "jaro_winkler", - "version": "1.5.1", + "type": "gem", + "namespace": null, + "name": "jaro_winkler", + "version": "1.5.1", "qualifiers": { "platform": "java" - }, - "subpath": null, - "primary_language": "Ruby", - "description": "An implementation of Jaro-Winkler distance algorithm written \\ in C extension which supports any kind of string encoding.\njaro_winkler is an implementation of Jaro-Winkler \\\n distance algorithm which is written in C extension and will fallback to pure \\\n Ruby version in platforms other than MRI/KRI like JRuby or Rubinius. Both of \\\n C and Ruby implementation support any kind of string encoding, such as \\\n UTF-8, EUC-JP, Big5, etc.", - "release_date": "2018-06-13", + }, + "subpath": null, + "primary_language": "Ruby", + "description": "An implementation of Jaro-Winkler distance algorithm written \\ in C extension which supports any kind of string encoding.\njaro_winkler is an implementation of Jaro-Winkler \\\n distance algorithm which is written in C extension and will fallback to pure \\\n Ruby version in platforms other than MRI/KRI like JRuby or Rubinius. Both of \\\n C and Ruby implementation support any kind of string encoding, such as \\\n UTF-8, EUC-JP, Big5, etc.", + "release_date": "2018-06-13", "parties": [ { - "type": null, - "role": "author", - "name": "Jian Weihang", - "email": null, + "type": null, + "role": "author", + "name": "Jian Weihang", + "email": null, "url": null } - ], - "keywords": [], - "homepage_url": "https://github.com/tonytonyjan/jaro_winkler", - "download_url": "https://rubygems.org/downloads/jaro_winkler-1.5.1-java.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": "mit", + ], + "keywords": [], + "homepage_url": "https://github.com/tonytonyjan/jaro_winkler", + "download_url": "https://rubygems.org/downloads/jaro_winkler-1.5.1-java.gem", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": "mit", "declared_license": [ "MIT" - ], - "notice_text": null, - "root_path": null, + ], + "notice_text": null, + "root_path": null, "dependencies": [ { - "purl": "pkg:gem/bundler", - "requirement": "~> 1.7", - "scope": "development", - "is_runtime": false, - "is_optional": true, + "purl": "pkg:gem/bundler", + "requirement": "~> 1.7", + "scope": "development", + "is_runtime": false, + "is_optional": true, "is_resolved": false - }, + }, { - "purl": "pkg:gem/rake", - "requirement": "~> 12.0", - "scope": "development", - "is_runtime": false, - "is_optional": true, + "purl": "pkg:gem/rake", + "requirement": "~> 12.0", + "scope": "development", + "is_runtime": false, + "is_optional": true, "is_resolved": false - }, + }, { - "purl": "pkg:gem/rake-compiler", - "requirement": null, - "scope": "development", - "is_runtime": false, - "is_optional": true, + "purl": "pkg:gem/rake-compiler", + "requirement": null, + "scope": "development", + "is_runtime": false, + "is_optional": true, "is_resolved": false - }, + }, { - "purl": "pkg:gem/minitest", - "requirement": null, - "scope": "development", - "is_runtime": false, - "is_optional": true, + "purl": "pkg:gem/minitest", + "requirement": null, + "scope": "development", + "is_runtime": false, + "is_optional": true, "is_resolved": false } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:gem/jaro_winkler@1.5.1?platform=java", - "repository_homepage_url": "https://rubygems.org/gems/jaro_winkler/versions/1.5.1", - "repository_download_url": "https://rubygems.org/downloads/jaro_winkler-1.5.1-java.gem", + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:gem/jaro_winkler@1.5.1?platform=java", + "repository_homepage_url": "https://rubygems.org/gems/jaro_winkler/versions/1.5.1", + "repository_download_url": "https://rubygems.org/downloads/jaro_winkler-1.5.1-java.gem", "api_data_url": "https://rubygems.org/api/v2/rubygems/jaro_winkler/versions/1.5.1.json" } ] \ No newline at end of file diff --git a/tests/packagedcode/data/rubygems/gem/new/rubocop-0.62.0.gem.json b/tests/packagedcode/data/rubygems/gem/new/rubocop-0.62.0.gem.json index 8a58caef56f..697b361fe99 100644 --- a/tests/packagedcode/data/rubygems/gem/new/rubocop-0.62.0.gem.json +++ b/tests/packagedcode/data/rubygems/gem/new/rubocop-0.62.0.gem.json @@ -1,134 +1,135 @@ [ { - "type": "gem", - "namespace": null, - "name": "rubocop", - "version": "0.62.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": "Automatic Ruby code style checking tool.\n Automatic Ruby code style checking tool.\n Aims to enforce the community-driven Ruby Style Guide.\n", - "release_date": "2019-01-01", + "type": "gem", + "namespace": null, + "name": "rubocop", + "version": "0.62.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Ruby", + "description": "Automatic Ruby code style checking tool.\n Automatic Ruby code style checking tool.\n Aims to enforce the community-driven Ruby Style Guide.\n", + "release_date": "2019-01-01", "parties": [ { - "type": null, - "role": "author", - "name": "Bozhidar Batsov", - "email": null, + "type": null, + "role": "author", + "name": "Bozhidar Batsov", + "email": null, "url": null - }, + }, { - "type": null, - "role": "author", - "name": "Jonas Arvidsson", - "email": null, + "type": null, + "role": "author", + "name": "Jonas Arvidsson", + "email": null, "url": null - }, + }, { - "type": null, - "role": "author", - "name": "Yuji Nakayama", - "email": null, + "type": null, + "role": "author", + "name": "Yuji Nakayama", + "email": null, "url": null } - ], - "keywords": [], - "homepage_url": "https://github.com/rubocop-hq/rubocop", - "download_url": "https://rubygems.org/downloads/rubocop-0.62.0.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": "https://github.com/rubocop-hq/rubocop/", - "vcs_url": null, - "copyright": null, - "license_expression": "mit", + ], + "keywords": [], + "homepage_url": "https://github.com/rubocop-hq/rubocop", + "download_url": "https://rubygems.org/downloads/rubocop-0.62.0.gem", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": "https://github.com/rubocop-hq/rubocop/", + "vcs_url": null, + "copyright": null, + "license_expression": "mit", "declared_license": [ "MIT" - ], - "notice_text": null, - "root_path": null, + ], + "notice_text": null, + "root_path": null, "dependencies": [ { - "purl": "pkg:gem/jaro_winkler", - "requirement": "~> 1.5.1", - "scope": "runtime", - "is_runtime": true, - "is_optional": false, + "purl": "pkg:gem/jaro_winkler", + "requirement": "~> 1.5.1", + "scope": "runtime", + "is_runtime": true, + "is_optional": false, "is_resolved": false - }, + }, { - "purl": "pkg:gem/parallel", - "requirement": "~> 1.10", - "scope": "runtime", - "is_runtime": true, - "is_optional": false, + "purl": "pkg:gem/parallel", + "requirement": "~> 1.10", + "scope": "runtime", + "is_runtime": true, + "is_optional": false, "is_resolved": false - }, + }, { - "purl": "pkg:gem/parser", - "requirement": ">= 2.5, != 2.5.1.1", - "scope": "runtime", - "is_runtime": true, - "is_optional": false, + "purl": "pkg:gem/parser", + "requirement": ">= 2.5, != 2.5.1.1", + "scope": "runtime", + "is_runtime": true, + "is_optional": false, "is_resolved": false - }, + }, { - "purl": "pkg:gem/powerpack", - "requirement": "~> 0.1", - "scope": "runtime", - "is_runtime": true, - "is_optional": false, + "purl": "pkg:gem/powerpack", + "requirement": "~> 0.1", + "scope": "runtime", + "is_runtime": true, + "is_optional": false, "is_resolved": false - }, + }, { - "purl": "pkg:gem/rainbow", - "requirement": ">= 2.2.2, < 4.0", - "scope": "runtime", - "is_runtime": true, - "is_optional": false, + "purl": "pkg:gem/rainbow", + "requirement": ">= 2.2.2, < 4.0", + "scope": "runtime", + "is_runtime": true, + "is_optional": false, "is_resolved": false - }, + }, { - "purl": "pkg:gem/ruby-progressbar", - "requirement": "~> 1.7", - "scope": "runtime", - "is_runtime": true, - "is_optional": false, + "purl": "pkg:gem/ruby-progressbar", + "requirement": "~> 1.7", + "scope": "runtime", + "is_runtime": true, + "is_optional": false, "is_resolved": false - }, + }, { - "purl": "pkg:gem/unicode-display_width", - "requirement": "~> 1.4.0", - "scope": "runtime", - "is_runtime": true, - "is_optional": false, + "purl": "pkg:gem/unicode-display_width", + "requirement": "~> 1.4.0", + "scope": "runtime", + "is_runtime": true, + "is_optional": false, "is_resolved": false - }, + }, { - "purl": "pkg:gem/bundler", - "requirement": ">= 1.3.0, < 3.0", - "scope": "development", - "is_runtime": false, - "is_optional": true, + "purl": "pkg:gem/bundler", + "requirement": ">= 1.3.0, < 3.0", + "scope": "development", + "is_runtime": false, + "is_optional": true, "is_resolved": false - }, + }, { - "purl": "pkg:gem/rack", - "requirement": ">= 2.0", - "scope": "development", - "is_runtime": false, - "is_optional": true, + "purl": "pkg:gem/rack", + "requirement": ">= 2.0", + "scope": "development", + "is_runtime": false, + "is_optional": true, "is_resolved": false } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:gem/rubocop@0.62.0", - "repository_homepage_url": "https://rubygems.org/gems/rubocop/versions/0.62.0", - "repository_download_url": "https://rubygems.org/downloads/rubocop-0.62.0.gem", + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:gem/rubocop@0.62.0", + "repository_homepage_url": "https://rubygems.org/gems/rubocop/versions/0.62.0", + "repository_download_url": "https://rubygems.org/downloads/rubocop-0.62.0.gem", "api_data_url": "https://rubygems.org/api/v2/rubygems/rubocop/versions/0.62.0.json" } ] \ No newline at end of file diff --git a/tests/packagedcode/data/rubygems/gem/ng-rails-csrf-0.1.0.gem.json b/tests/packagedcode/data/rubygems/gem/ng-rails-csrf-0.1.0.gem.json index b810fe150fb..f86bd475e2a 100644 --- a/tests/packagedcode/data/rubygems/gem/ng-rails-csrf-0.1.0.gem.json +++ b/tests/packagedcode/data/rubygems/gem/ng-rails-csrf-0.1.0.gem.json @@ -1,45 +1,46 @@ [ { - "type": "gem", - "namespace": null, - "name": "ng-rails-csrf", - "version": "0.1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": "AngularJS rails gem which you can load into any rails project to make sure CSRF token is used with Angular http requests\nAngularJS for using CSRF token with http requests", - "release_date": "2013-06-18", + "type": "gem", + "namespace": null, + "name": "ng-rails-csrf", + "version": "0.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Ruby", + "description": "AngularJS rails gem which you can load into any rails project to make sure CSRF token is used with Angular http requests\nAngularJS for using CSRF token with http requests", + "release_date": "2013-06-18", "parties": [ { - "type": null, - "role": "author", - "name": "Chris Dawson", - "email": null, + "type": null, + "role": "author", + "name": "Chris Dawson", + "email": null, "url": null } - ], - "keywords": [], - "homepage_url": "https://rubygems.org/gems/ng-rails-csrf/versions/0.1.0", - "download_url": "https://rubygems.org/downloads/ng-rails-csrf-0.1.0.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": [], - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:gem/ng-rails-csrf@0.1.0", - "repository_homepage_url": "https://rubygems.org/gems/ng-rails-csrf/versions/0.1.0", - "repository_download_url": "https://rubygems.org/downloads/ng-rails-csrf-0.1.0.gem", + ], + "keywords": [], + "homepage_url": "https://rubygems.org/gems/ng-rails-csrf/versions/0.1.0", + "download_url": "https://rubygems.org/downloads/ng-rails-csrf-0.1.0.gem", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": [], + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:gem/ng-rails-csrf@0.1.0", + "repository_homepage_url": "https://rubygems.org/gems/ng-rails-csrf/versions/0.1.0", + "repository_download_url": "https://rubygems.org/downloads/ng-rails-csrf-0.1.0.gem", "api_data_url": "https://rubygems.org/api/v2/rubygems/ng-rails-csrf/versions/0.1.0.json" } ] \ No newline at end of file diff --git a/tests/packagedcode/data/rubygems/gem/small-0.2.gem.json b/tests/packagedcode/data/rubygems/gem/small-0.2.gem.json index 035ac38d8eb..d6fb4a98364 100644 --- a/tests/packagedcode/data/rubygems/gem/small-0.2.gem.json +++ b/tests/packagedcode/data/rubygems/gem/small-0.2.gem.json @@ -1,45 +1,46 @@ [ { - "type": "gem", - "namespace": null, - "name": "small", - "version": "0.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": "A small collection of useful Ruby utilities", - "release_date": "2012-04-23", + "type": "gem", + "namespace": null, + "name": "small", + "version": "0.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "Ruby", + "description": "A small collection of useful Ruby utilities", + "release_date": "2012-04-23", "parties": [ { - "type": null, - "role": "author", - "name": "Bryan Goines", - "email": null, + "type": null, + "role": "author", + "name": "Bryan Goines", + "email": null, "url": null } - ], - "keywords": [], - "homepage_url": "https://github.com/bry4n/small", - "download_url": "https://rubygems.org/downloads/small-0.2.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": [], - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:gem/small@0.2", - "repository_homepage_url": "https://rubygems.org/gems/small/versions/0.2", - "repository_download_url": "https://rubygems.org/downloads/small-0.2.gem", + ], + "keywords": [], + "homepage_url": "https://github.com/bry4n/small", + "download_url": "https://rubygems.org/downloads/small-0.2.gem", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": [], + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:gem/small@0.2", + "repository_homepage_url": "https://rubygems.org/gems/small/versions/0.2", + "repository_download_url": "https://rubygems.org/downloads/small-0.2.gem", "api_data_url": "https://rubygems.org/api/v2/rubygems/small/versions/0.2.json" } ] \ No newline at end of file diff --git a/tests/packagedcode/data/rubygems/gem/small_wonder-0.1.10.gem.json b/tests/packagedcode/data/rubygems/gem/small_wonder-0.1.10.gem.json index d4c66dce661..5bd280a5489 100644 --- a/tests/packagedcode/data/rubygems/gem/small_wonder-0.1.10.gem.json +++ b/tests/packagedcode/data/rubygems/gem/small_wonder-0.1.10.gem.json @@ -1,134 +1,135 @@ [ { - "type": "gem", - "namespace": null, - "name": "small_wonder", - "version": "0.1.10", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": "A Deployment Tool", - "release_date": "2014-02-04", + "type": "gem", + "namespace": null, + "name": "small_wonder", + "version": "0.1.10", + "qualifiers": {}, + "subpath": null, + "primary_language": "Ruby", + "description": "A Deployment Tool", + "release_date": "2014-02-04", "parties": [ { - "type": null, - "role": "author", - "name": "Joe Williams", - "email": null, + "type": null, + "role": "author", + "name": "Joe Williams", + "email": null, "url": null } - ], - "keywords": [], - "homepage_url": "https://github.com/boundary/small_wonder", - "download_url": "https://rubygems.org/downloads/small_wonder-0.1.10.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": [], - "notice_text": null, - "root_path": null, + ], + "keywords": [], + "homepage_url": "https://github.com/boundary/small_wonder", + "download_url": "https://rubygems.org/downloads/small_wonder-0.1.10.gem", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": [], + "notice_text": null, + "root_path": null, "dependencies": [ { - "purl": "pkg:gem/mixlib-config", - "requirement": null, - "scope": "runtime", - "is_runtime": true, - "is_optional": false, + "purl": "pkg:gem/mixlib-config", + "requirement": null, + "scope": "runtime", + "is_runtime": true, + "is_optional": false, "is_resolved": false - }, + }, { - "purl": "pkg:gem/mixlib-cli", - "requirement": null, - "scope": "runtime", - "is_runtime": true, - "is_optional": false, + "purl": "pkg:gem/mixlib-cli", + "requirement": null, + "scope": "runtime", + "is_runtime": true, + "is_optional": false, "is_resolved": false - }, + }, { - "purl": "pkg:gem/mixlib-log", - "requirement": null, - "scope": "runtime", - "is_runtime": true, - "is_optional": false, + "purl": "pkg:gem/mixlib-log", + "requirement": null, + "scope": "runtime", + "is_runtime": true, + "is_optional": false, "is_resolved": false - }, + }, { - "purl": "pkg:gem/excon", - "requirement": null, - "scope": "runtime", - "is_runtime": true, - "is_optional": false, + "purl": "pkg:gem/excon", + "requirement": null, + "scope": "runtime", + "is_runtime": true, + "is_optional": false, "is_resolved": false - }, + }, { - "purl": "pkg:gem/yajl-ruby", - "requirement": null, - "scope": "runtime", - "is_runtime": true, - "is_optional": false, + "purl": "pkg:gem/yajl-ruby", + "requirement": null, + "scope": "runtime", + "is_runtime": true, + "is_optional": false, "is_resolved": false - }, + }, { - "purl": "pkg:gem/chef", - "requirement": null, - "scope": "runtime", - "is_runtime": true, - "is_optional": false, + "purl": "pkg:gem/chef", + "requirement": null, + "scope": "runtime", + "is_runtime": true, + "is_optional": false, "is_resolved": false - }, + }, { - "purl": "pkg:gem/highline", - "requirement": null, - "scope": "runtime", - "is_runtime": true, - "is_optional": false, + "purl": "pkg:gem/highline", + "requirement": null, + "scope": "runtime", + "is_runtime": true, + "is_optional": false, "is_resolved": false - }, + }, { - "purl": "pkg:gem/salticid", - "requirement": null, - "scope": "runtime", - "is_runtime": true, - "is_optional": false, + "purl": "pkg:gem/salticid", + "requirement": null, + "scope": "runtime", + "is_runtime": true, + "is_optional": false, "is_resolved": false - }, + }, { - "purl": "pkg:gem/net-ssh", - "requirement": null, - "scope": "runtime", - "is_runtime": true, - "is_optional": false, + "purl": "pkg:gem/net-ssh", + "requirement": null, + "scope": "runtime", + "is_runtime": true, + "is_optional": false, "is_resolved": false - }, + }, { - "purl": "pkg:gem/net-scp", - "requirement": null, - "scope": "runtime", - "is_runtime": true, - "is_optional": false, + "purl": "pkg:gem/net-scp", + "requirement": null, + "scope": "runtime", + "is_runtime": true, + "is_optional": false, "is_resolved": false - }, + }, { - "purl": "pkg:gem/colorize", - "requirement": null, - "scope": "runtime", - "is_runtime": true, - "is_optional": false, + "purl": "pkg:gem/colorize", + "requirement": null, + "scope": "runtime", + "is_runtime": true, + "is_optional": false, "is_resolved": false } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:gem/small_wonder@0.1.10", - "repository_homepage_url": "https://rubygems.org/gems/small_wonder/versions/0.1.10", - "repository_download_url": "https://rubygems.org/downloads/small_wonder-0.1.10.gem", + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:gem/small_wonder@0.1.10", + "repository_homepage_url": "https://rubygems.org/gems/small_wonder/versions/0.1.10", + "repository_download_url": "https://rubygems.org/downloads/small_wonder-0.1.10.gem", "api_data_url": "https://rubygems.org/api/v2/rubygems/small_wonder/versions/0.1.10.json" } ] \ No newline at end of file diff --git a/tests/packagedcode/data/rubygems/gem/sprockets-vendor_gems-0.1.3.gem.json b/tests/packagedcode/data/rubygems/gem/sprockets-vendor_gems-0.1.3.gem.json index 39aaf987a43..026f3673c8d 100644 --- a/tests/packagedcode/data/rubygems/gem/sprockets-vendor_gems-0.1.3.gem.json +++ b/tests/packagedcode/data/rubygems/gem/sprockets-vendor_gems-0.1.3.gem.json @@ -1,86 +1,87 @@ [ { - "type": "gem", - "namespace": null, - "name": "sprockets-vendor_gems", - "version": "0.1.3", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": "Get the vendored assets paths in gems.", - "release_date": "2012-08-03", + "type": "gem", + "namespace": null, + "name": "sprockets-vendor_gems", + "version": "0.1.3", + "qualifiers": {}, + "subpath": null, + "primary_language": "Ruby", + "description": "Get the vendored assets paths in gems.", + "release_date": "2012-08-03", "parties": [ { - "type": null, - "role": "author", - "name": "John Bintz", - "email": null, + "type": null, + "role": "author", + "name": "John Bintz", + "email": null, "url": null } - ], - "keywords": [], - "homepage_url": "https://rubygems.org/gems/sprockets-vendor_gems/versions/0.1.3", - "download_url": "https://rubygems.org/downloads/sprockets-vendor_gems-0.1.3.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": [], - "notice_text": null, - "root_path": null, + ], + "keywords": [], + "homepage_url": "https://rubygems.org/gems/sprockets-vendor_gems/versions/0.1.3", + "download_url": "https://rubygems.org/downloads/sprockets-vendor_gems-0.1.3.gem", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": [], + "notice_text": null, + "root_path": null, "dependencies": [ { - "purl": "pkg:gem/sprockets", - "requirement": null, - "scope": "runtime", - "is_runtime": true, - "is_optional": false, + "purl": "pkg:gem/sprockets", + "requirement": null, + "scope": "runtime", + "is_runtime": true, + "is_optional": false, "is_resolved": false - }, + }, { - "purl": "pkg:gem/rake", - "requirement": null, - "scope": "development", - "is_runtime": false, - "is_optional": true, + "purl": "pkg:gem/rake", + "requirement": null, + "scope": "development", + "is_runtime": false, + "is_optional": true, "is_resolved": false - }, + }, { - "purl": "pkg:gem/rspec", - "requirement": null, - "scope": "development", - "is_runtime": false, - "is_optional": true, + "purl": "pkg:gem/rspec", + "requirement": null, + "scope": "development", + "is_runtime": false, + "is_optional": true, "is_resolved": false - }, + }, { - "purl": "pkg:gem/mocha", - "requirement": null, - "scope": "development", - "is_runtime": false, - "is_optional": true, + "purl": "pkg:gem/mocha", + "requirement": null, + "scope": "development", + "is_runtime": false, + "is_optional": true, "is_resolved": false - }, + }, { - "purl": "pkg:gem/fakefs", - "requirement": null, - "scope": "development", - "is_runtime": false, - "is_optional": true, + "purl": "pkg:gem/fakefs", + "requirement": null, + "scope": "development", + "is_runtime": false, + "is_optional": true, "is_resolved": false } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:gem/sprockets-vendor_gems@0.1.3", - "repository_homepage_url": "https://rubygems.org/gems/sprockets-vendor_gems/versions/0.1.3", - "repository_download_url": "https://rubygems.org/downloads/sprockets-vendor_gems-0.1.3.gem", + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:gem/sprockets-vendor_gems@0.1.3", + "repository_homepage_url": "https://rubygems.org/gems/sprockets-vendor_gems/versions/0.1.3", + "repository_download_url": "https://rubygems.org/downloads/sprockets-vendor_gems-0.1.3.gem", "api_data_url": "https://rubygems.org/api/v2/rubygems/sprockets-vendor_gems/versions/0.1.3.json" } ] \ No newline at end of file diff --git a/tests/packagedcode/data/rubygems/gemfile-lock/Gemfile.lock.expected b/tests/packagedcode/data/rubygems/gemfile-lock/Gemfile.lock.expected index 53e4e86b04f..dddfa5f1c6b 100644 --- a/tests/packagedcode/data/rubygems/gemfile-lock/Gemfile.lock.expected +++ b/tests/packagedcode/data/rubygems/gemfile-lock/Gemfile.lock.expected @@ -542,6 +542,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, @@ -602,6 +603,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/actioncable@5.0.6", "repository_homepage_url": "https://rubygems.org/gems/actioncable/versions/5.0.6", "repository_download_url": "https://rubygems.org/downloads/actioncable-5.0.6.gem", @@ -686,6 +688,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/actionpack@5.0.6", "repository_homepage_url": "https://rubygems.org/gems/actionpack/versions/5.0.6", "repository_download_url": "https://rubygems.org/downloads/actionpack-5.0.6.gem", @@ -721,6 +724,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/nio4r@2.1.0", "repository_homepage_url": "https://rubygems.org/gems/nio4r/versions/2.1.0", "repository_download_url": "https://rubygems.org/downloads/nio4r-2.1.0.gem", @@ -765,6 +769,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/websocket-driver@0.6.5", "repository_homepage_url": "https://rubygems.org/gems/websocket-driver/versions/0.6.5", "repository_download_url": "https://rubygems.org/downloads/websocket-driver-0.6.5.gem", @@ -841,6 +846,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/actionmailer@5.0.6", "repository_homepage_url": "https://rubygems.org/gems/actionmailer/versions/5.0.6", "repository_download_url": "https://rubygems.org/downloads/actionmailer-5.0.6.gem", @@ -917,6 +923,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/actionview@5.0.6", "repository_homepage_url": "https://rubygems.org/gems/actionview/versions/5.0.6", "repository_download_url": "https://rubygems.org/downloads/actionview-5.0.6.gem", @@ -969,6 +976,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/activejob@5.0.6", "repository_homepage_url": "https://rubygems.org/gems/activejob/versions/5.0.6", "repository_download_url": "https://rubygems.org/downloads/activejob-5.0.6.gem", @@ -1013,6 +1021,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/mail@2.6.6", "repository_homepage_url": "https://rubygems.org/gems/mail/versions/2.6.6", "repository_download_url": "https://rubygems.org/downloads/mail-2.6.6.gem", @@ -1065,6 +1074,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/rails-dom-testing@2.0.3", "repository_homepage_url": "https://rubygems.org/gems/rails-dom-testing/versions/2.0.3", "repository_download_url": "https://rubygems.org/downloads/rails-dom-testing-2.0.3.gem", @@ -1133,6 +1143,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/activesupport@5.0.6", "repository_homepage_url": "https://rubygems.org/gems/activesupport/versions/5.0.6", "repository_download_url": "https://rubygems.org/downloads/activesupport-5.0.6.gem", @@ -1168,6 +1179,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/rack@2.0.3", "repository_homepage_url": "https://rubygems.org/gems/rack/versions/2.0.3", "repository_download_url": "https://rubygems.org/downloads/rack-2.0.3.gem", @@ -1212,6 +1224,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/rack-test@0.6.3", "repository_homepage_url": "https://rubygems.org/gems/rack-test/versions/0.6.3", "repository_download_url": "https://rubygems.org/downloads/rack-test-0.6.3.gem", @@ -1256,6 +1269,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/rails-html-sanitizer@1.0.3", "repository_homepage_url": "https://rubygems.org/gems/rails-html-sanitizer/versions/1.0.3", "repository_download_url": "https://rubygems.org/downloads/rails-html-sanitizer-1.0.3.gem", @@ -1291,6 +1305,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/builder@3.2.3", "repository_homepage_url": "https://rubygems.org/gems/builder/versions/3.2.3", "repository_download_url": "https://rubygems.org/downloads/builder-3.2.3.gem", @@ -1326,6 +1341,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/erubis@2.7.0", "repository_homepage_url": "https://rubygems.org/gems/erubis/versions/2.7.0", "repository_download_url": "https://rubygems.org/downloads/erubis-2.7.0.gem", @@ -1370,6 +1386,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/globalid@0.4.0", "repository_homepage_url": "https://rubygems.org/gems/globalid/versions/0.4.0", "repository_download_url": "https://rubygems.org/downloads/globalid-0.4.0.gem", @@ -1414,6 +1431,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/activemodel@5.0.6", "repository_homepage_url": "https://rubygems.org/gems/activemodel/versions/5.0.6", "repository_download_url": "https://rubygems.org/downloads/activemodel-5.0.6.gem", @@ -1474,6 +1492,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/activerecord@5.0.6", "repository_homepage_url": "https://rubygems.org/gems/activerecord/versions/5.0.6", "repository_download_url": "https://rubygems.org/downloads/activerecord-5.0.6.gem", @@ -1509,6 +1528,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/arel@7.1.4", "repository_homepage_url": "https://rubygems.org/gems/arel/versions/7.1.4", "repository_download_url": "https://rubygems.org/downloads/arel-7.1.4.gem", @@ -1544,6 +1564,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/concurrent-ruby@1.0.5", "repository_homepage_url": "https://rubygems.org/gems/concurrent-ruby/versions/1.0.5", "repository_download_url": "https://rubygems.org/downloads/concurrent-ruby-1.0.5.gem", @@ -1579,6 +1600,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/i18n@0.8.6", "repository_homepage_url": "https://rubygems.org/gems/i18n/versions/0.8.6", "repository_download_url": "https://rubygems.org/downloads/i18n-0.8.6.gem", @@ -1614,6 +1636,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/minitest@5.10.3", "repository_homepage_url": "https://rubygems.org/gems/minitest/versions/5.10.3", "repository_download_url": "https://rubygems.org/downloads/minitest-5.10.3.gem", @@ -1658,6 +1681,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/tzinfo@1.2.3", "repository_homepage_url": "https://rubygems.org/gems/tzinfo/versions/1.2.3", "repository_download_url": "https://rubygems.org/downloads/tzinfo-1.2.3.gem", @@ -1693,6 +1717,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/bindex@0.5.0", "repository_homepage_url": "https://rubygems.org/gems/bindex/versions/0.5.0", "repository_download_url": "https://rubygems.org/downloads/bindex-0.5.0.gem", @@ -1728,6 +1753,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/byebug@9.1.0", "repository_homepage_url": "https://rubygems.org/gems/byebug/versions/9.1.0", "repository_download_url": "https://rubygems.org/downloads/byebug-9.1.0.gem", @@ -1780,6 +1806,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/coffee-rails@4.2.2", "repository_homepage_url": "https://rubygems.org/gems/coffee-rails/versions/4.2.2", "repository_download_url": "https://rubygems.org/downloads/coffee-rails-4.2.2.gem", @@ -1832,6 +1859,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/coffee-script@2.4.1", "repository_homepage_url": "https://rubygems.org/gems/coffee-script/versions/2.4.1", "repository_download_url": "https://rubygems.org/downloads/coffee-script-2.4.1.gem", @@ -1908,6 +1936,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/railties@5.0.6", "repository_homepage_url": "https://rubygems.org/gems/railties/versions/5.0.6", "repository_download_url": "https://rubygems.org/downloads/railties-5.0.6.gem", @@ -1943,6 +1972,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/coffee-script-source@1.12.2", "repository_homepage_url": "https://rubygems.org/gems/coffee-script-source/versions/1.12.2", "repository_download_url": "https://rubygems.org/downloads/coffee-script-source-1.12.2.gem", @@ -1978,6 +2008,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/execjs@2.7.0", "repository_homepage_url": "https://rubygems.org/gems/execjs/versions/2.7.0", "repository_download_url": "https://rubygems.org/downloads/execjs-2.7.0.gem", @@ -2013,6 +2044,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/crass@1.0.2", "repository_homepage_url": "https://rubygems.org/gems/crass/versions/1.0.2", "repository_download_url": "https://rubygems.org/downloads/crass-1.0.2.gem", @@ -2048,6 +2080,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/ffi@1.9.18", "repository_homepage_url": "https://rubygems.org/gems/ffi/versions/1.9.18", "repository_download_url": "https://rubygems.org/downloads/ffi-1.9.18.gem", @@ -2100,6 +2133,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/jbuilder@2.7.0", "repository_homepage_url": "https://rubygems.org/gems/jbuilder/versions/2.7.0", "repository_download_url": "https://rubygems.org/downloads/jbuilder-2.7.0.gem", @@ -2135,6 +2169,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/multi_json@1.12.2", "repository_homepage_url": "https://rubygems.org/gems/multi_json/versions/1.12.2", "repository_download_url": "https://rubygems.org/downloads/multi_json-1.12.2.gem", @@ -2195,6 +2230,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/jquery-rails@4.3.1", "repository_homepage_url": "https://rubygems.org/gems/jquery-rails/versions/4.3.1", "repository_download_url": "https://rubygems.org/downloads/jquery-rails-4.3.1.gem", @@ -2230,6 +2266,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/thor@0.20.0", "repository_homepage_url": "https://rubygems.org/gems/thor/versions/0.20.0", "repository_download_url": "https://rubygems.org/downloads/thor-0.20.0.gem", @@ -2282,6 +2319,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/listen@3.0.8", "repository_homepage_url": "https://rubygems.org/gems/listen/versions/3.0.8", "repository_download_url": "https://rubygems.org/downloads/listen-3.0.8.gem", @@ -2317,6 +2355,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/rb-fsevent@0.10.2", "repository_homepage_url": "https://rubygems.org/gems/rb-fsevent/versions/0.10.2", "repository_download_url": "https://rubygems.org/downloads/rb-fsevent-0.10.2.gem", @@ -2361,6 +2400,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/rb-inotify@0.9.10", "repository_homepage_url": "https://rubygems.org/gems/rb-inotify/versions/0.9.10", "repository_download_url": "https://rubygems.org/downloads/rb-inotify-0.9.10.gem", @@ -2413,6 +2453,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/loofah@2.1.1", "repository_homepage_url": "https://rubygems.org/gems/loofah/versions/2.1.1", "repository_download_url": "https://rubygems.org/downloads/loofah-2.1.1.gem", @@ -2457,6 +2498,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/nokogiri@1.8.1", "repository_homepage_url": "https://rubygems.org/gems/nokogiri/versions/1.8.1", "repository_download_url": "https://rubygems.org/downloads/nokogiri-1.8.1.gem", @@ -2501,6 +2543,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/mime-types@3.1", "repository_homepage_url": "https://rubygems.org/gems/mime-types/versions/3.1", "repository_download_url": "https://rubygems.org/downloads/mime-types-3.1.gem", @@ -2536,6 +2579,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/method_source@0.9.0", "repository_homepage_url": "https://rubygems.org/gems/method_source/versions/0.9.0", "repository_download_url": "https://rubygems.org/downloads/method_source-0.9.0.gem", @@ -2571,6 +2615,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/mime-types-data@3.2016.0521", "repository_homepage_url": "https://rubygems.org/gems/mime-types-data/versions/3.2016.0521", "repository_download_url": "https://rubygems.org/downloads/mime-types-data-3.2016.0521.gem", @@ -2606,6 +2651,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/mini_portile2@2.3.0", "repository_homepage_url": "https://rubygems.org/gems/mini_portile2/versions/2.3.0", "repository_download_url": "https://rubygems.org/downloads/mini_portile2-2.3.0.gem", @@ -2641,6 +2687,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/puma@3.10.0", "repository_homepage_url": "https://rubygems.org/gems/puma/versions/3.10.0", "repository_download_url": "https://rubygems.org/downloads/puma-3.10.0.gem", @@ -2757,6 +2804,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/rails@5.0.6", "repository_homepage_url": "https://rubygems.org/gems/rails/versions/5.0.6", "repository_download_url": "https://rubygems.org/downloads/rails-5.0.6.gem", @@ -2817,6 +2865,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/sprockets-rails@3.2.1", "repository_homepage_url": "https://rubygems.org/gems/sprockets-rails/versions/3.2.1", "repository_download_url": "https://rubygems.org/downloads/sprockets-rails-3.2.1.gem", @@ -2852,6 +2901,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/rake@12.1.0", "repository_homepage_url": "https://rubygems.org/gems/rake/versions/12.1.0", "repository_download_url": "https://rubygems.org/downloads/rake-12.1.0.gem", @@ -2896,6 +2946,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/sass@3.5.2", "repository_homepage_url": "https://rubygems.org/gems/sass/versions/3.5.2", "repository_download_url": "https://rubygems.org/downloads/sass-3.5.2.gem", @@ -2948,6 +2999,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/sass-listen@4.0.0", "repository_homepage_url": "https://rubygems.org/gems/sass-listen/versions/4.0.0", "repository_download_url": "https://rubygems.org/downloads/sass-listen-4.0.0.gem", @@ -3024,6 +3076,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/sass-rails@5.0.6", "repository_homepage_url": "https://rubygems.org/gems/sass-rails/versions/5.0.6", "repository_download_url": "https://rubygems.org/downloads/sass-rails-5.0.6.gem", @@ -3076,6 +3129,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/sprockets@3.7.1", "repository_homepage_url": "https://rubygems.org/gems/sprockets/versions/3.7.1", "repository_download_url": "https://rubygems.org/downloads/sprockets-3.7.1.gem", @@ -3111,6 +3165,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/tilt@2.0.8", "repository_homepage_url": "https://rubygems.org/gems/tilt/versions/2.0.8", "repository_download_url": "https://rubygems.org/downloads/tilt-2.0.8.gem", @@ -3155,6 +3210,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/spring@2.0.2", "repository_homepage_url": "https://rubygems.org/gems/spring/versions/2.0.2", "repository_download_url": "https://rubygems.org/downloads/spring-2.0.2.gem", @@ -3207,6 +3263,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/spring-watcher-listen@2.0.1", "repository_homepage_url": "https://rubygems.org/gems/spring-watcher-listen/versions/2.0.1", "repository_download_url": "https://rubygems.org/downloads/spring-watcher-listen-2.0.1.gem", @@ -3242,6 +3299,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/sqlite3@1.3.13", "repository_homepage_url": "https://rubygems.org/gems/sqlite3/versions/1.3.13", "repository_download_url": "https://rubygems.org/downloads/sqlite3-1.3.13.gem", @@ -3277,6 +3335,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/thread_safe@0.3.6", "repository_homepage_url": "https://rubygems.org/gems/thread_safe/versions/0.3.6", "repository_download_url": "https://rubygems.org/downloads/thread_safe-0.3.6.gem", @@ -3321,6 +3380,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/turbolinks@5.0.1", "repository_homepage_url": "https://rubygems.org/gems/turbolinks/versions/5.0.1", "repository_download_url": "https://rubygems.org/downloads/turbolinks-5.0.1.gem", @@ -3356,6 +3416,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/turbolinks-source@5.0.3", "repository_homepage_url": "https://rubygems.org/gems/turbolinks-source/versions/5.0.3", "repository_download_url": "https://rubygems.org/downloads/turbolinks-source-5.0.3.gem", @@ -3400,6 +3461,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/uglifier@3.2.0", "repository_homepage_url": "https://rubygems.org/gems/uglifier/versions/3.2.0", "repository_download_url": "https://rubygems.org/downloads/uglifier-3.2.0.gem", @@ -3468,6 +3530,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/web-console@3.5.1", "repository_homepage_url": "https://rubygems.org/gems/web-console/versions/3.5.1", "repository_download_url": "https://rubygems.org/downloads/web-console-3.5.1.gem", @@ -3503,6 +3566,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/websocket-extensions@0.1.2", "repository_homepage_url": "https://rubygems.org/gems/websocket-extensions/versions/0.1.2", "repository_download_url": "https://rubygems.org/downloads/websocket-extensions-0.1.2.gem", @@ -3538,6 +3602,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/tzinfo-data", "repository_homepage_url": "https://rubygems.org/gems/tzinfo-data", "repository_download_url": null, diff --git a/tests/packagedcode/data/rubygems/gemspec/address_standardization.gemspec.expected.json b/tests/packagedcode/data/rubygems/gemspec/address_standardization.gemspec.expected.json index d3320b4ae69..60450c06add 100644 --- a/tests/packagedcode/data/rubygems/gemspec/address_standardization.gemspec.expected.json +++ b/tests/packagedcode/data/rubygems/gemspec/address_standardization.gemspec.expected.json @@ -69,6 +69,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/mysmallidea-address_standardization@0.4.1", "repository_homepage_url": "https://rubygems.org/gems/mysmallidea-address_standardization/versions/0.4.1", "repository_download_url": "https://rubygems.org/downloads/mysmallidea-address_standardization-0.4.1.gem", diff --git a/tests/packagedcode/data/rubygems/gemspec/arel.gemspec.expected.json b/tests/packagedcode/data/rubygems/gemspec/arel.gemspec.expected.json index adec2fe27c7..9277396da82 100644 --- a/tests/packagedcode/data/rubygems/gemspec/arel.gemspec.expected.json +++ b/tests/packagedcode/data/rubygems/gemspec/arel.gemspec.expected.json @@ -103,6 +103,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:gem/arel@2.0.7.beta.20110429111451", "repository_homepage_url": "https://rubygems.org/gems/arel/versions/2.0.7.beta.20110429111451", "repository_download_url": "https://rubygems.org/downloads/arel-2.0.7.beta.20110429111451.gem", diff --git a/tests/packagedcode/data/rubygems/gemspec/cat.gemspec.expected.json b/tests/packagedcode/data/rubygems/gemspec/cat.gemspec.expected.json index 4e4d6f54d43..b807876c4c4 100644 --- a/tests/packagedcode/data/rubygems/gemspec/cat.gemspec.expected.json +++ b/tests/packagedcode/data/rubygems/gemspec/cat.gemspec.expected.json @@ -1,101 +1,102 @@ [ { - "type": "gem", - "namespace": null, - "name": "cat_", - "version": "12", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": "The loading cat generator.", - "release_date": null, - "parties": [ - { - "type": "person", - "role": "author", - "name": "\u84bc\u6642\u5f26\u4e5f", - "email": null, - "url": null - }, - { - "type": "person", - "role": "email", - "name": null, - "email": "elct9620@frost.tw", - "url": null - } - ], - "keywords": [], - "homepage_url": "https://github.com/elct9620/.cat", - "download_url": null, - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:gem/bundler", - "requirement": "~> 1.13", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false - }, - { - "purl": "pkg:gem/rake", - "requirement": "~> 10.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false - }, - { - "purl": "pkg:gem/rspec", - "requirement": "~> 3.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false - }, - { - "purl": "pkg:gem/rack", - "requirement": "", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false - }, - { - "purl": "pkg:gem/sassc", - "requirement": "", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false - }, - { - "purl": "pkg:gem/slim", - "requirement": "", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:gem/cat_@12", - "repository_homepage_url": "https://rubygems.org/gems/cat_/versions/12", - "repository_download_url": "https://rubygems.org/downloads/cat_-12.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/cat_/versions/12.json" + "type": "gem", + "namespace": null, + "name": "cat_", + "version": "12", + "qualifiers": {}, + "subpath": null, + "primary_language": "Ruby", + "description": "The loading cat generator.", + "release_date": null, + "parties": [ + { + "type": "person", + "role": "author", + "name": "\u84bc\u6642\u5f26\u4e5f", + "email": null, + "url": null + }, + { + "type": "person", + "role": "email", + "name": null, + "email": "elct9620@frost.tw", + "url": null + } + ], + "keywords": [], + "homepage_url": "https://github.com/elct9620/.cat", + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:gem/bundler", + "requirement": "~> 1.13", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false + }, + { + "purl": "pkg:gem/rake", + "requirement": "~> 10.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false + }, + { + "purl": "pkg:gem/rspec", + "requirement": "~> 3.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false + }, + { + "purl": "pkg:gem/rack", + "requirement": "", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false + }, + { + "purl": "pkg:gem/sassc", + "requirement": "", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false + }, + { + "purl": "pkg:gem/slim", + "requirement": "", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:gem/cat_@12", + "repository_homepage_url": "https://rubygems.org/gems/cat_/versions/12", + "repository_download_url": "https://rubygems.org/downloads/cat_-12.gem", + "api_data_url": "https://rubygems.org/api/v2/rubygems/cat_/versions/12.json" } ] \ No newline at end of file diff --git a/tests/packagedcode/data/rubygems/gemspec/github.gemspec.expected.json b/tests/packagedcode/data/rubygems/gemspec/github.gemspec.expected.json index b2ec1e617b2..df8c0d44dee 100644 --- a/tests/packagedcode/data/rubygems/gemspec/github.gemspec.expected.json +++ b/tests/packagedcode/data/rubygems/gemspec/github.gemspec.expected.json @@ -1,138 +1,139 @@ [ { - "type": "gem", - "namespace": null, - "name": "github", - "version": "GitHub::VERSION", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": "The official `github` command line helper for simplifying your GitHub experience.", - "release_date": null, - "parties": [ - { - "type": "person", - "role": "author", - "name": "Chris Wanstrath", - "email": null, - "url": null - }, - { - "type": "person", - "role": "author", - "name": " Kevin Ballard", - "email": null, - "url": null - }, - { - "type": "person", - "role": "author", - "name": " Scott Chacon", - "email": null, - "url": null - }, - { - "type": "person", - "role": "author", - "name": " Dr Nic Williams", - "email": null, - "url": null - }, - { - "type": "person", - "role": "email", - "name": null, - "email": "drnicwilliams@gmail.com", - "url": null - } - ], - "keywords": [], - "homepage_url": "https://github.com/defunkt/github-gem", - "download_url": null, - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:gem/rake", - "requirement": "", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false - }, - { - "purl": "pkg:gem/rspec", - "requirement": "~>1.3.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false - }, - { - "purl": "pkg:gem/activerecord", - "requirement": "~>3.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false - }, - { - "purl": "pkg:gem/text-hyphen", - "requirement": "1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false - }, - { - "purl": "pkg:gem/text-format", - "requirement": "1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false - }, - { - "purl": "pkg:gem/highline", - "requirement": "~> 1.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false - }, - { - "purl": "pkg:gem/json_pure", - "requirement": "~> 1.5.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false - }, - { - "purl": "pkg:gem/launchy", - "requirement": "~> 2.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:gem/github@GitHub::VERSION", - "repository_homepage_url": "https://rubygems.org/gems/github/versions/GitHub::VERSION", - "repository_download_url": "https://rubygems.org/downloads/github-GitHub::VERSION.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/github/versions/GitHub::VERSION.json" + "type": "gem", + "namespace": null, + "name": "github", + "version": "GitHub::VERSION", + "qualifiers": {}, + "subpath": null, + "primary_language": "Ruby", + "description": "The official `github` command line helper for simplifying your GitHub experience.", + "release_date": null, + "parties": [ + { + "type": "person", + "role": "author", + "name": "Chris Wanstrath", + "email": null, + "url": null + }, + { + "type": "person", + "role": "author", + "name": " Kevin Ballard", + "email": null, + "url": null + }, + { + "type": "person", + "role": "author", + "name": " Scott Chacon", + "email": null, + "url": null + }, + { + "type": "person", + "role": "author", + "name": " Dr Nic Williams", + "email": null, + "url": null + }, + { + "type": "person", + "role": "email", + "name": null, + "email": "drnicwilliams@gmail.com", + "url": null + } + ], + "keywords": [], + "homepage_url": "https://github.com/defunkt/github-gem", + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:gem/rake", + "requirement": "", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false + }, + { + "purl": "pkg:gem/rspec", + "requirement": "~>1.3.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false + }, + { + "purl": "pkg:gem/activerecord", + "requirement": "~>3.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false + }, + { + "purl": "pkg:gem/text-hyphen", + "requirement": "1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false + }, + { + "purl": "pkg:gem/text-format", + "requirement": "1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false + }, + { + "purl": "pkg:gem/highline", + "requirement": "~> 1.6", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false + }, + { + "purl": "pkg:gem/json_pure", + "requirement": "~> 1.5.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false + }, + { + "purl": "pkg:gem/launchy", + "requirement": "~> 2.0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:gem/github@GitHub::VERSION", + "repository_homepage_url": "https://rubygems.org/gems/github/versions/GitHub::VERSION", + "repository_download_url": "https://rubygems.org/downloads/github-GitHub::VERSION.gem", + "api_data_url": "https://rubygems.org/api/v2/rubygems/github/versions/GitHub::VERSION.json" } ] \ No newline at end of file diff --git a/tests/packagedcode/data/rubygems/gemspec/mecab-ruby.gemspec.expected.json b/tests/packagedcode/data/rubygems/gemspec/mecab-ruby.gemspec.expected.json index 9efe0a01382..25e2690b1c9 100644 --- a/tests/packagedcode/data/rubygems/gemspec/mecab-ruby.gemspec.expected.json +++ b/tests/packagedcode/data/rubygems/gemspec/mecab-ruby.gemspec.expected.json @@ -1,52 +1,53 @@ [ { - "type": "gem", - "namespace": null, - "name": "mecab-ruby", - "version": "0.99", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": "Ruby bindings for MeCab, a morphological analyzer.", - "release_date": null, - "parties": [ - { - "type": "person", - "role": "author", - "name": "Taku Kudo", - "email": null, - "url": null - }, - { - "type": "person", - "role": "email", - "name": null, - "email": "taku@chasen.org", - "url": null - } - ], - "keywords": [], - "homepage_url": "http://mecab.sourceforge.net/", - "download_url": null, - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:gem/mecab-ruby@0.99", - "repository_homepage_url": "https://rubygems.org/gems/mecab-ruby/versions/0.99", - "repository_download_url": "https://rubygems.org/downloads/mecab-ruby-0.99.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/mecab-ruby/versions/0.99.json" + "type": "gem", + "namespace": null, + "name": "mecab-ruby", + "version": "0.99", + "qualifiers": {}, + "subpath": null, + "primary_language": "Ruby", + "description": "Ruby bindings for MeCab, a morphological analyzer.", + "release_date": null, + "parties": [ + { + "type": "person", + "role": "author", + "name": "Taku Kudo", + "email": null, + "url": null + }, + { + "type": "person", + "role": "email", + "name": null, + "email": "taku@chasen.org", + "url": null + } + ], + "keywords": [], + "homepage_url": "http://mecab.sourceforge.net/", + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:gem/mecab-ruby@0.99", + "repository_homepage_url": "https://rubygems.org/gems/mecab-ruby/versions/0.99", + "repository_download_url": "https://rubygems.org/downloads/mecab-ruby-0.99.gem", + "api_data_url": "https://rubygems.org/api/v2/rubygems/mecab-ruby/versions/0.99.json" } ] \ No newline at end of file diff --git a/tests/packagedcode/data/rubygems/gemspec/oj.gemspec.expected.json b/tests/packagedcode/data/rubygems/gemspec/oj.gemspec.expected.json index 138456eba1d..abe339dcdbe 100644 --- a/tests/packagedcode/data/rubygems/gemspec/oj.gemspec.expected.json +++ b/tests/packagedcode/data/rubygems/gemspec/oj.gemspec.expected.json @@ -1,85 +1,86 @@ [ { - "type": "gem", - "namespace": null, - "name": "oj", - "version": "::Oj::VERSION", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": "The fastest JSON parser and object serializer.", - "release_date": null, - "parties": [ - { - "type": "person", - "role": "author", - "name": "Peter Ohler", - "email": null, - "url": null - }, - { - "type": "person", - "role": "email", - "name": null, - "email": "peter@ohler.com", - "url": null - } - ], - "keywords": [], - "homepage_url": "http://www.ohler.com/oj", - "download_url": null, - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:gem/rake-compiler", - "requirement": ">= 0.9, < 2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false - }, - { - "purl": "pkg:gem/minitest", - "requirement": "~> 5", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false - }, - { - "purl": "pkg:gem/test-unit", - "requirement": "~> 3.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false - }, - { - "purl": "pkg:gem/wwtd", - "requirement": "~> 0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:gem/oj@::Oj::VERSION", - "repository_homepage_url": "https://rubygems.org/gems/oj/versions/::Oj::VERSION", - "repository_download_url": "https://rubygems.org/downloads/oj-::Oj::VERSION.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/oj/versions/::Oj::VERSION.json" + "type": "gem", + "namespace": null, + "name": "oj", + "version": "::Oj::VERSION", + "qualifiers": {}, + "subpath": null, + "primary_language": "Ruby", + "description": "The fastest JSON parser and object serializer.", + "release_date": null, + "parties": [ + { + "type": "person", + "role": "author", + "name": "Peter Ohler", + "email": null, + "url": null + }, + { + "type": "person", + "role": "email", + "name": null, + "email": "peter@ohler.com", + "url": null + } + ], + "keywords": [], + "homepage_url": "http://www.ohler.com/oj", + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:gem/rake-compiler", + "requirement": ">= 0.9, < 2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false + }, + { + "purl": "pkg:gem/minitest", + "requirement": "~> 5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false + }, + { + "purl": "pkg:gem/test-unit", + "requirement": "~> 3.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false + }, + { + "purl": "pkg:gem/wwtd", + "requirement": "~> 0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:gem/oj@::Oj::VERSION", + "repository_homepage_url": "https://rubygems.org/gems/oj/versions/::Oj::VERSION", + "repository_download_url": "https://rubygems.org/downloads/oj-::Oj::VERSION.gem", + "api_data_url": "https://rubygems.org/api/v2/rubygems/oj/versions/::Oj::VERSION.json" } ] \ No newline at end of file diff --git a/tests/packagedcode/data/rubygems/gemspec/rubocop.gemspec.expected.json b/tests/packagedcode/data/rubygems/gemspec/rubocop.gemspec.expected.json index 6af1b30844e..8c0734037df 100644 --- a/tests/packagedcode/data/rubygems/gemspec/rubocop.gemspec.expected.json +++ b/tests/packagedcode/data/rubygems/gemspec/rubocop.gemspec.expected.json @@ -1,139 +1,140 @@ [ { - "type": "gem", - "namespace": null, - "name": "rubocop", - "version": "RuboCop::Version::STRING", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": "Automatic Ruby code style checking tool. Aims to enforce the community-driven Ruby Style Guide.", - "release_date": null, - "parties": [ - { - "type": "person", - "role": "author", - "name": "Bozhidar Batsov", - "email": null, - "url": null - }, - { - "type": "person", - "role": "author", - "name": " Jonas Arvidsson", - "email": null, - "url": null - }, - { - "type": "person", - "role": "author", - "name": " Yuji Nakayama", - "email": null, - "url": null - }, - { - "type": "person", - "role": "email", - "name": null, - "email": "rubocop@googlegroups.com", - "url": null - } - ], - "keywords": [], - "homepage_url": "https://github.com/rubocop-hq/rubocop", - "download_url": null, - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:gem/bundler", - "requirement": ">= 1.3.0, < 3.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false - }, - { - "purl": "pkg:gem/rack", - "requirement": ">= 2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false - }, - { - "purl": "pkg:gem/jaro_winkler", - "requirement": "~> 1.5.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false - }, - { - "purl": "pkg:gem/parallel", - "requirement": "~> 1.10", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false - }, - { - "purl": "pkg:gem/parser", - "requirement": ">= 2.5", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false - }, - { - "purl": "pkg:gem/powerpack", - "requirement": "~> 0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false - }, - { - "purl": "pkg:gem/rainbow", - "requirement": ">= 2.2.2, < 4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false - }, - { - "purl": "pkg:gem/ruby-progressbar", - "requirement": "~> 1.7", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false - }, - { - "purl": "pkg:gem/unicode-display_width", - "requirement": "~> 1.4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:gem/rubocop@RuboCop::Version::STRING", - "repository_homepage_url": "https://rubygems.org/gems/rubocop/versions/RuboCop::Version::STRING", - "repository_download_url": "https://rubygems.org/downloads/rubocop-RuboCop::Version::STRING.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/rubocop/versions/RuboCop::Version::STRING.json" + "type": "gem", + "namespace": null, + "name": "rubocop", + "version": "RuboCop::Version::STRING", + "qualifiers": {}, + "subpath": null, + "primary_language": "Ruby", + "description": "Automatic Ruby code style checking tool. Aims to enforce the community-driven Ruby Style Guide.", + "release_date": null, + "parties": [ + { + "type": "person", + "role": "author", + "name": "Bozhidar Batsov", + "email": null, + "url": null + }, + { + "type": "person", + "role": "author", + "name": " Jonas Arvidsson", + "email": null, + "url": null + }, + { + "type": "person", + "role": "author", + "name": " Yuji Nakayama", + "email": null, + "url": null + }, + { + "type": "person", + "role": "email", + "name": null, + "email": "rubocop@googlegroups.com", + "url": null + } + ], + "keywords": [], + "homepage_url": "https://github.com/rubocop-hq/rubocop", + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:gem/bundler", + "requirement": ">= 1.3.0, < 3.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false + }, + { + "purl": "pkg:gem/rack", + "requirement": ">= 2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false + }, + { + "purl": "pkg:gem/jaro_winkler", + "requirement": "~> 1.5.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false + }, + { + "purl": "pkg:gem/parallel", + "requirement": "~> 1.10", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false + }, + { + "purl": "pkg:gem/parser", + "requirement": ">= 2.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false + }, + { + "purl": "pkg:gem/powerpack", + "requirement": "~> 0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false + }, + { + "purl": "pkg:gem/rainbow", + "requirement": ">= 2.2.2, < 4.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false + }, + { + "purl": "pkg:gem/ruby-progressbar", + "requirement": "~> 1.7", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false + }, + { + "purl": "pkg:gem/unicode-display_width", + "requirement": "~> 1.4.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:gem/rubocop@RuboCop::Version::STRING", + "repository_homepage_url": "https://rubygems.org/gems/rubocop/versions/RuboCop::Version::STRING", + "repository_download_url": "https://rubygems.org/downloads/rubocop-RuboCop::Version::STRING.gem", + "api_data_url": "https://rubygems.org/api/v2/rubygems/rubocop/versions/RuboCop::Version::STRING.json" } ] \ No newline at end of file diff --git a/tests/packagedcode/data/rubygems/gemspec/with_variables.gemspec.expected.json b/tests/packagedcode/data/rubygems/gemspec/with_variables.gemspec.expected.json index 036d15f6daa..e2d81ecc11d 100644 --- a/tests/packagedcode/data/rubygems/gemspec/with_variables.gemspec.expected.json +++ b/tests/packagedcode/data/rubygems/gemspec/with_variables.gemspec.expected.json @@ -1,125 +1,126 @@ [ { - "type": "gem", - "namespace": null, - "name": "ProviderDSL::GemDescription::NAME", - "version": "ProviderDSL::GemDescription::VERSION", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": "See the project home page for more information", - "release_date": null, - "parties": [ - { - "type": "person", - "role": "author", - "name": "ProviderDSL::GemDescription::AUTHORS", - "email": null, - "url": null - }, - { - "type": "person", - "role": "email", - "name": null, - "email": "ProviderDSL::GemDescription::EMAIL", - "url": null - } - ], - "keywords": [], - "homepage_url": "ProviderDSL::GemDescription::PAGE", - "download_url": null, - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "root_path": null, - "dependencies": [ - { - "purl": "pkg:gem/rake", - "requirement": "~> 11.3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false - }, - { - "purl": "pkg:gem/rubocop", - "requirement": "~> 0.44.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false - }, - { - "purl": "pkg:gem/rspec", - "requirement": "~> 3.5", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false - }, - { - "purl": "pkg:gem/rspec-mocks", - "requirement": "~> 3.5", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false - }, - { - "purl": "pkg:gem/ipaddress", - "requirement": "~> 0.8.3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false - }, - { - "purl": "pkg:gem/gandi", - "requirement": "~> 3.3, >= 3.3.27", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false - }, - { - "purl": "pkg:gem/gcloud", - "requirement": "~> 0.21.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false - }, - { - "purl": "pkg:gem/google-cloud-error_reporting", - "requirement": "~> 0.21.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false - }, - { - "purl": "pkg:gem/map", - "requirement": "~> 6.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false - } - ], - "contains_source_code": null, - "source_packages": [], - "purl": "pkg:gem/ProviderDSL::GemDescription::NAME@ProviderDSL::GemDescription::VERSION", - "repository_homepage_url": "https://rubygems.org/gems/ProviderDSL::GemDescription::NAME/versions/ProviderDSL::GemDescription::VERSION", - "repository_download_url": "https://rubygems.org/downloads/ProviderDSL::GemDescription::NAME-ProviderDSL::GemDescription::VERSION.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/ProviderDSL::GemDescription::NAME/versions/ProviderDSL::GemDescription::VERSION.json" + "type": "gem", + "namespace": null, + "name": "ProviderDSL::GemDescription::NAME", + "version": "ProviderDSL::GemDescription::VERSION", + "qualifiers": {}, + "subpath": null, + "primary_language": "Ruby", + "description": "See the project home page for more information", + "release_date": null, + "parties": [ + { + "type": "person", + "role": "author", + "name": "ProviderDSL::GemDescription::AUTHORS", + "email": null, + "url": null + }, + { + "type": "person", + "role": "email", + "name": null, + "email": "ProviderDSL::GemDescription::EMAIL", + "url": null + } + ], + "keywords": [], + "homepage_url": "ProviderDSL::GemDescription::PAGE", + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:gem/rake", + "requirement": "~> 11.3", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false + }, + { + "purl": "pkg:gem/rubocop", + "requirement": "~> 0.44.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false + }, + { + "purl": "pkg:gem/rspec", + "requirement": "~> 3.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false + }, + { + "purl": "pkg:gem/rspec-mocks", + "requirement": "~> 3.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false + }, + { + "purl": "pkg:gem/ipaddress", + "requirement": "~> 0.8.3", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false + }, + { + "purl": "pkg:gem/gandi", + "requirement": "~> 3.3, >= 3.3.27", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false + }, + { + "purl": "pkg:gem/gcloud", + "requirement": "~> 0.21.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false + }, + { + "purl": "pkg:gem/google-cloud-error_reporting", + "requirement": "~> 0.21.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false + }, + { + "purl": "pkg:gem/map", + "requirement": "~> 6.6", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": "pkg:gem/ProviderDSL::GemDescription::NAME@ProviderDSL::GemDescription::VERSION", + "repository_homepage_url": "https://rubygems.org/gems/ProviderDSL::GemDescription::NAME/versions/ProviderDSL::GemDescription::VERSION", + "repository_download_url": "https://rubygems.org/downloads/ProviderDSL::GemDescription::NAME-ProviderDSL::GemDescription::VERSION.gem", + "api_data_url": "https://rubygems.org/api/v2/rubygems/ProviderDSL::GemDescription::NAME/versions/ProviderDSL::GemDescription::VERSION.json" } ] \ No newline at end of file diff --git a/tests/packagedcode/data/win_pe/Microsoft.Practices.EnterpriseLibrary.Caching.dll.package-expected.json b/tests/packagedcode/data/win_pe/Microsoft.Practices.EnterpriseLibrary.Caching.dll.package-expected.json index 3e5c4ef5b20..26c008226b3 100644 --- a/tests/packagedcode/data/win_pe/Microsoft.Practices.EnterpriseLibrary.Caching.dll.package-expected.json +++ b/tests/packagedcode/data/win_pe/Microsoft.Practices.EnterpriseLibrary.Caching.dll.package-expected.json @@ -40,6 +40,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:winexe/Microsoft%20Enterprise%20Library%20for%20.NET@2.0.0.0", "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/win_pe/Moq.Silverlight.dll.package-expected.json b/tests/packagedcode/data/win_pe/Moq.Silverlight.dll.package-expected.json index 82700fecf45..8e9714c4a11 100644 --- a/tests/packagedcode/data/win_pe/Moq.Silverlight.dll.package-expected.json +++ b/tests/packagedcode/data/win_pe/Moq.Silverlight.dll.package-expected.json @@ -40,6 +40,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:winexe/Moq@4.2.1507.0118", "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/win_pe/_ctypes_test.pyd.package-expected.json b/tests/packagedcode/data/win_pe/_ctypes_test.pyd.package-expected.json index 1a66274a018..3287b345d48 100644 --- a/tests/packagedcode/data/win_pe/_ctypes_test.pyd.package-expected.json +++ b/tests/packagedcode/data/win_pe/_ctypes_test.pyd.package-expected.json @@ -32,6 +32,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/win_pe/euc-jp.so.package-expected.json b/tests/packagedcode/data/win_pe/euc-jp.so.package-expected.json index 1a66274a018..3287b345d48 100644 --- a/tests/packagedcode/data/win_pe/euc-jp.so.package-expected.json +++ b/tests/packagedcode/data/win_pe/euc-jp.so.package-expected.json @@ -32,6 +32,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": null, "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/win_pe/file.exe.package-expected.json b/tests/packagedcode/data/win_pe/file.exe.package-expected.json index 85da92c5730..93fc4327c06 100644 --- a/tests/packagedcode/data/win_pe/file.exe.package-expected.json +++ b/tests/packagedcode/data/win_pe/file.exe.package-expected.json @@ -40,6 +40,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:winexe/File@5.03.3414.16721", "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/win_pe/libiconv2.dll.package-expected.json b/tests/packagedcode/data/win_pe/libiconv2.dll.package-expected.json index 26d6e8745ae..e525e894e7d 100644 --- a/tests/packagedcode/data/win_pe/libiconv2.dll.package-expected.json +++ b/tests/packagedcode/data/win_pe/libiconv2.dll.package-expected.json @@ -40,6 +40,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:winexe/LibIconv@1.9.2.1519", "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/win_pe/libintl3.dll.package-expected.json b/tests/packagedcode/data/win_pe/libintl3.dll.package-expected.json index 0bceb30c661..3cdf034e221 100644 --- a/tests/packagedcode/data/win_pe/libintl3.dll.package-expected.json +++ b/tests/packagedcode/data/win_pe/libintl3.dll.package-expected.json @@ -40,6 +40,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:winexe/GetText@0.14.4.1952", "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/win_pe/tre4.dll.package-expected.json b/tests/packagedcode/data/win_pe/tre4.dll.package-expected.json index 307d764c444..55d9860b82b 100644 --- a/tests/packagedcode/data/win_pe/tre4.dll.package-expected.json +++ b/tests/packagedcode/data/win_pe/tre4.dll.package-expected.json @@ -40,6 +40,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:winexe/Tre@0.7.5.3276", "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/data/win_pe/zlib1.dll.package-expected.json b/tests/packagedcode/data/win_pe/zlib1.dll.package-expected.json index 8bca2704d9b..f69c17947d1 100644 --- a/tests/packagedcode/data/win_pe/zlib1.dll.package-expected.json +++ b/tests/packagedcode/data/win_pe/zlib1.dll.package-expected.json @@ -40,6 +40,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:winexe/Zlib@1.2.3.2532", "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/packagedcode/test_package_models.py b/tests/packagedcode/test_package_models.py index 56e2dbb723a..a523c8a666c 100644 --- a/tests/packagedcode/test_package_models.py +++ b/tests/packagedcode/test_package_models.py @@ -71,6 +71,7 @@ def test_Package_creation_and_dump(self): ('dependencies', []), ('contains_source_code', None), ('source_packages', []), + ('extra_data', OrderedDict()), ('purl', u'pkg:android/someAndroidPAcakge'), ('repository_homepage_url', None), ('repository_download_url', None), diff --git a/tests/packagedcode/test_rpm.py b/tests/packagedcode/test_rpm.py index d3390f85f78..fcde8d9aba1 100644 --- a/tests/packagedcode/test_rpm.py +++ b/tests/packagedcode/test_rpm.py @@ -85,6 +85,7 @@ def test_parse_to_package(self): ('dependencies', []), ('contains_source_code', None), ('source_packages', [ 'pkg:rpm/libproxy@0.3.0-4.el6_3?arch=src']), + ('extra_data', OrderedDict()), ('purl', 'pkg:rpm/libproxy-bin@0.3.0-4.el6_3'), ('repository_homepage_url', None), ('repository_download_url', None), diff --git a/tests/scancode/data/composer/composer.expected.json b/tests/scancode/data/composer/composer.expected.json index fe4fb39850b..e5d96a812ec 100644 --- a/tests/scancode/data/composer/composer.expected.json +++ b/tests/scancode/data/composer/composer.expected.json @@ -123,6 +123,7 @@ ], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:composer/laravel/laravel", "repository_homepage_url": "https://packagist.org/packages/laravel/laravel", "repository_download_url": null, diff --git a/tests/scancode/data/rpm/fping-2.4-0.b2.rhfc1.dag.i386.rpm.expected.json b/tests/scancode/data/rpm/fping-2.4-0.b2.rhfc1.dag.i386.rpm.expected.json index c02e9f6541a..a670ba570dd 100644 --- a/tests/scancode/data/rpm/fping-2.4-0.b2.rhfc1.dag.i386.rpm.expected.json +++ b/tests/scancode/data/rpm/fping-2.4-0.b2.rhfc1.dag.i386.rpm.expected.json @@ -60,6 +60,7 @@ "source_packages": [ "pkg:rpm/fping@2.4-0.b2.rhfc1.dag?arch=src" ], + "extra_data": {}, "purl": "pkg:rpm/fping@2.4-0.b2.rhfc1.dag", "repository_homepage_url": null, "repository_download_url": null, diff --git a/tests/summarycode/data/plugin_consolidate/component-package-build-expected.json b/tests/summarycode/data/plugin_consolidate/component-package-build-expected.json index c158945340f..ce188654054 100644 --- a/tests/summarycode/data/plugin_consolidate/component-package-build-expected.json +++ b/tests/summarycode/data/plugin_consolidate/component-package-build-expected.json @@ -98,6 +98,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/test-package@0.0.1", "repository_homepage_url": "https://www.npmjs.com/package/test-package", "repository_download_url": "https://registry.npmjs.org/test-package/-/test-package-0.0.1.tgz", @@ -244,6 +245,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:buck/demo", "repository_homepage_url": null, "repository_download_url": null, @@ -756,6 +758,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/test-package@0.0.1", "repository_homepage_url": "https://www.npmjs.com/package/test-package", "repository_download_url": "https://registry.npmjs.org/test-package/-/test-package-0.0.1.tgz", diff --git a/tests/summarycode/data/plugin_consolidate/component-package-expected.json b/tests/summarycode/data/plugin_consolidate/component-package-expected.json index d6ae9ff3d90..3cb2860be2a 100644 --- a/tests/summarycode/data/plugin_consolidate/component-package-expected.json +++ b/tests/summarycode/data/plugin_consolidate/component-package-expected.json @@ -86,6 +86,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/test-package@0.0.1", "repository_homepage_url": "https://www.npmjs.com/package/test-package", "repository_download_url": "https://registry.npmjs.org/test-package/-/test-package-0.0.1.tgz", @@ -640,6 +641,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/test-package@0.0.1", "repository_homepage_url": "https://www.npmjs.com/package/test-package", "repository_download_url": "https://registry.npmjs.org/test-package/-/test-package-0.0.1.tgz", diff --git a/tests/summarycode/data/plugin_consolidate/package-files-not-counted-in-license-holders-expected.json b/tests/summarycode/data/plugin_consolidate/package-files-not-counted-in-license-holders-expected.json index 14b2c3b7933..b34a941137d 100644 --- a/tests/summarycode/data/plugin_consolidate/package-files-not-counted-in-license-holders-expected.json +++ b/tests/summarycode/data/plugin_consolidate/package-files-not-counted-in-license-holders-expected.json @@ -70,6 +70,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/test-package@0.0.1", "repository_homepage_url": "https://www.npmjs.com/package/test-package", "repository_download_url": "https://registry.npmjs.org/test-package/-/test-package-0.0.1.tgz", @@ -265,6 +266,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/test-package@0.0.1", "repository_homepage_url": "https://www.npmjs.com/package/test-package", "repository_download_url": "https://registry.npmjs.org/test-package/-/test-package-0.0.1.tgz", diff --git a/tests/summarycode/data/plugin_consolidate/package-fileset-expected.json b/tests/summarycode/data/plugin_consolidate/package-fileset-expected.json index d318035bc90..462c21b2f7d 100644 --- a/tests/summarycode/data/plugin_consolidate/package-fileset-expected.json +++ b/tests/summarycode/data/plugin_consolidate/package-fileset-expected.json @@ -53,6 +53,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/test-package@0.0.1", "repository_homepage_url": "https://www.npmjs.com/package/test-package", "repository_download_url": "https://registry.npmjs.org/test-package/-/test-package-0.0.1.tgz", @@ -200,6 +201,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/test-package@0.0.1", "repository_homepage_url": "https://www.npmjs.com/package/test-package", "repository_download_url": "https://registry.npmjs.org/test-package/-/test-package-0.0.1.tgz", diff --git a/tests/summarycode/data/plugin_consolidate/package-manifest-expected.json b/tests/summarycode/data/plugin_consolidate/package-manifest-expected.json index fdb5366b79d..62cef52908c 100644 --- a/tests/summarycode/data/plugin_consolidate/package-manifest-expected.json +++ b/tests/summarycode/data/plugin_consolidate/package-manifest-expected.json @@ -53,6 +53,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/test-package@0.0.1", "repository_homepage_url": "https://www.npmjs.com/package/test-package", "repository_download_url": "https://registry.npmjs.org/test-package/-/test-package-0.0.1.tgz", @@ -196,6 +197,7 @@ "dependencies": [], "contains_source_code": null, "source_packages": [], + "extra_data": {}, "purl": "pkg:npm/test-package@0.0.1", "repository_homepage_url": "https://www.npmjs.com/package/test-package", "repository_download_url": "https://registry.npmjs.org/test-package/-/test-package-0.0.1.tgz", From 01feb75a37db3211dfc615fafe140ed99b605ca2 Mon Sep 17 00:00:00 2001 From: alpianon Date: Tue, 8 Dec 2020 14:54:01 +0100 Subject: [PATCH 424/709] added DocumentNamespace tag DocumentNamespace is mandatory according to SPDX specs Signed-off-by: Alberto Pianon --- src/formattedcode/output_spdx.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/formattedcode/output_spdx.py b/src/formattedcode/output_spdx.py index dac4878c385..e68b107dd6b 100644 --- a/src/formattedcode/output_spdx.py +++ b/src/formattedcode/output_spdx.py @@ -32,6 +32,7 @@ from os.path import dirname from os.path import isdir import sys +import uuid from io import BytesIO try: @@ -207,6 +208,7 @@ def write_spdx(output_file, files, tool_name, tool_version, notice, input_file, doc = Document(Version(2, 1), License.from_identifier('CC0-1.0')) doc.comment = notice + doc.namespace = f'http://spdx.org/spdxdocs/{basename(input_path)}-{uuid.uuid4()}' tool_name = tool_name or 'ScanCode' doc.creation_info.add_creator(Tool(tool_name + ' ' + tool_version)) doc.creation_info.set_created_now() From 215323ee869fe6b8d9cd4a495202e8d3bbb69cc6 Mon Sep 17 00:00:00 2001 From: Mathias Ertl Date: Fri, 25 Dec 2020 13:34:02 +0100 Subject: [PATCH 425/709] consider trailing whitespace a part of the prompt, making copy/paste more straight forward --- pygments/lexers/shell.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 713d432111a..daef1f39acd 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -232,7 +232,7 @@ class BashSessionLexer(ShellSessionBaseLexer): _innerLexerCls = BashLexer _ps1rgx = re.compile( r'^((?:(?:\[.*?\])|(?:\(\S+\))?(?:| |sh\S*?|\w+\S+[@:]\S+(?:\s+\S+)' \ - r'?|\[\S+[@:][^\n]+\].+))\s*[$#%])(.*\n?)') + r'?|\[\S+[@:][^\n]+\].+))\s*[$#%]\s*)(.*\n?)') _ps2 = '>' From 68a6c69a717447ee539364ded39472bed60dee1e Mon Sep 17 00:00:00 2001 From: 15b3 <30496251+15b3@users.noreply.github.com> Date: Sat, 12 Dec 2020 18:33:34 +0900 Subject: [PATCH 426/709] add my name on AUTHORS (#1611) --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index f209a8acba4..7989e472a36 100644 --- a/AUTHORS +++ b/AUTHORS @@ -234,5 +234,6 @@ Other contributors, listed alphabetically, are: * Rob Zimmerman -- Kal lexer * Vincent Zurczak -- Roboconf lexer * Hubert Gruniaux -- C and C++ lexer improvements +* 15b3 -- Image Formatter improvements Many thanks for all contributions! From 26ac927f5526824f77698136eae721d8b372981e Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Mon, 28 Dec 2020 10:03:50 +0100 Subject: [PATCH 427/709] re-alphabetize AUTHORS --- AUTHORS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index 7989e472a36..a5c9fb5030f 100644 --- a/AUTHORS +++ b/AUTHORS @@ -78,6 +78,7 @@ Other contributors, listed alphabetically, are: * Michał Górny -- vim modeline support * Alex Gosse -- TrafficScript lexer * Patrick Gotthardt -- PHP namespaces support +* Hubert Gruniaux -- C and C++ lexer improvements * Olivier Guibe -- Asymptote lexer * Phil Hagelberg -- Fennel lexer * Florian Hahn -- Boogie lexer @@ -233,7 +234,6 @@ Other contributors, listed alphabetically, are: * Alex Zimin -- Nemerle lexer * Rob Zimmerman -- Kal lexer * Vincent Zurczak -- Roboconf lexer -* Hubert Gruniaux -- C and C++ lexer improvements * 15b3 -- Image Formatter improvements Many thanks for all contributions! From c2895774aae3557408b548f066bef78885e12df9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matth=C3=A4us=20G=2E=20Chajdas?= Date: Tue, 29 Dec 2020 09:48:53 +0100 Subject: [PATCH 428/709] Fix #1652. in is a keyword in Bash, ZSH, and KSH. --- pygments/lexers/shell.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index daef1f39acd..e9dd3796817 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -57,7 +57,7 @@ class BashLexer(RegexLexer): (r'\$', Text), ], 'basic': [ - (r'\b(if|fi|else|while|do|done|for|then|return|function|case|' + (r'\b(if|fi|else|while|in|do|done|for|then|return|function|case|' r'select|continue|until|esac|elif)(\s*)\b', bygroups(Keyword, Text)), (r'\b(alias|bg|bind|break|builtin|caller|cd|command|compgen|' From eed8b4363e8a4bfb094335c08c73514375949cf3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matth=C3=A4us=20G=2E=20Chajdas?= Date: Sun, 3 Jan 2021 18:03:23 +0100 Subject: [PATCH 429/709] Bump copyright year. --- LICENSE | 2 +- pygments/lexers/shell.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/LICENSE b/LICENSE index 085810ec6dd..e1b15663d95 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2006-2020 by the respective authors (see AUTHORS file). +Copyright (c) 2006-2021 by the respective authors (see AUTHORS file). All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index e9dd3796817..d918b70ae08 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -5,7 +5,7 @@ Lexers for various shells. - :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS. + :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. """ From 807953ea2ae7d2df0fcd18a14f564340922518bc Mon Sep 17 00:00:00 2001 From: Mathias Ertl Date: Sun, 10 Jan 2021 13:09:13 +0100 Subject: [PATCH 430/709] make PS2 contain a space --- pygments/lexers/shell.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index d918b70ae08..09868403f77 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -233,7 +233,7 @@ class BashSessionLexer(ShellSessionBaseLexer): _ps1rgx = re.compile( r'^((?:(?:\[.*?\])|(?:\(\S+\))?(?:| |sh\S*?|\w+\S+[@:]\S+(?:\s+\S+)' \ r'?|\[\S+[@:][^\n]+\].+))\s*[$#%]\s*)(.*\n?)') - _ps2 = '>' + _ps2 = '> ' class BatchLexer(RegexLexer): From 1b95c629e9c55f4542419e0ae15d7e8176c78f4c Mon Sep 17 00:00:00 2001 From: Mathias Ertl Date: Sun, 10 Jan 2021 13:42:14 +0100 Subject: [PATCH 431/709] only print PS2 prompt if backslash continuation is enabled --- pygments/lexers/shell.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 09868403f77..58173df18be 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -169,10 +169,6 @@ def get_tokens_unprocessed(self, text): for match in line_re.finditer(text): line = match.group() - if backslash_continuation: - curcode += line - backslash_continuation = curcode.endswith('\\\n') - continue venv_match = self._venv.match(line) if venv_match: @@ -197,7 +193,7 @@ def get_tokens_unprocessed(self, text): [(0, Generic.Prompt, m.group(1))])) curcode += m.group(2) backslash_continuation = curcode.endswith('\\\n') - elif line.startswith(self._ps2): + elif line.startswith(self._ps2) and backslash_continuation: insertions.append((len(curcode), [(0, Generic.Prompt, line[:len(self._ps2)])])) curcode += line[len(self._ps2):] From 74f3a68ecddde596795b21af1f389e8d005530fe Mon Sep 17 00:00:00 2001 From: Jon Dufresne Date: Sun, 17 Jan 2021 07:44:58 -0800 Subject: [PATCH 432/709] Run pyupgrade across codebase to modernize syntax and patterns (#1622) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit pyupgrade is a tool to automatically upgrade syntax for newer versions of the Python language. The project has been Python 3 only since 35544e2fc6eed0ce4a27ec7285aac71ff0ddc473, allowing for several cleanups: - Remove unnecessary "-*- coding: utf-8 -*-" cookie. Python 3 reads all source files as utf-8 by default. - Replace IOError/EnvironmentError with OSError. Python 3 unified these exceptions. The old names are aliases only. - Use the Python 3 shorter super() syntax. - Remove "utf8" argument form encode/decode. In Python 3, this value is the default. - Remove "r" from open() calls. In Python 3, this value is the default. - Remove u prefix from Unicode strings. In Python 3, all strings are Unicode. - Replace io.open() with builtin open(). In Python 3, these functions are functionally equivalent. Co-authored-by: Matthäus G. Chajdas --- pygments/lexers/shell.py | 1 - 1 file changed, 1 deletion(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index d918b70ae08..1f433b8fa2b 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- """ pygments.lexers.shell ~~~~~~~~~~~~~~~~~~~~~ From da40064b7ade0ffc541149f7cae3c4f1ddd7c22c Mon Sep 17 00:00:00 2001 From: Oleh Prypin Date: Mon, 18 Jan 2021 20:39:02 +0100 Subject: [PATCH 433/709] Replace tests that assert on token output with auto-updatable samples (#1649) --- tests/conftest.py | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 tests/conftest.py diff --git a/tests/conftest.py b/tests/conftest.py new file mode 100644 index 00000000000..def1b770445 --- /dev/null +++ b/tests/conftest.py @@ -0,0 +1,5 @@ +import pytest + + +def pytest_addoption(parser): + parser.addoption('--update-goldens', action='store_true', help='reset golden master benchmarks') From 6ce650686a8828013d70ee3bc08159cac4a5c1d4 Mon Sep 17 00:00:00 2001 From: Oleh Prypin Date: Wed, 20 Jan 2021 10:48:45 +0100 Subject: [PATCH 434/709] Also add auto-updatable output-based tests to examplefiles (#1689) Co-authored-by: Georg Brandl --- tests/conftest.py | 108 + tests/examplefiles/bash/example.sh | 22 + tests/examplefiles/bash/example.sh.output | 128 + tests/examplefiles/bash/ltmain.sh | 2849 +++ tests/examplefiles/bash/ltmain.sh.output | 17757 ++++++++++++++++ tests/examplefiles/bash/stripheredoc.sh | 3 + .../examplefiles/bash/stripheredoc.sh.output | 4 + tests/examplefiles/conftest.py | 31 + 8 files changed, 20902 insertions(+) create mode 100644 tests/examplefiles/bash/example.sh create mode 100644 tests/examplefiles/bash/example.sh.output create mode 100644 tests/examplefiles/bash/ltmain.sh create mode 100644 tests/examplefiles/bash/ltmain.sh.output create mode 100644 tests/examplefiles/bash/stripheredoc.sh create mode 100644 tests/examplefiles/bash/stripheredoc.sh.output create mode 100644 tests/examplefiles/conftest.py diff --git a/tests/conftest.py b/tests/conftest.py index def1b770445..7ff5ff18c2c 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,5 +1,113 @@ +""" + Generated lexer tests + ~~~~~~~~~~~~~~~~~~~~~ + + Checks that lexers output the expected tokens for each sample + under lexers/*/test_*.txt. + + After making a change, rather than updating the samples manually, + run `pytest --update-goldens tests/lexers tests/examplefiles`. + + To add a new sample, create a new file matching this pattern. + The directory must match the alias of the lexer to be used. + Populate only the input, then just `--update-goldens`. + + :copyright: Copyright 2021 by the Pygments team, see AUTHORS. + :license: BSD, see LICENSE for details. +""" +from pathlib import Path + import pytest +import pygments.lexers + def pytest_addoption(parser): parser.addoption('--update-goldens', action='store_true', help='reset golden master benchmarks') + + +class LexerTestItem(pytest.Item): + def __init__(self, name, parent): + super().__init__(name, parent) + self.lexer = Path(str(self.fspath)).parent.name + self.actual = None + + @classmethod + def _prettyprint_tokens(cls, tokens): + for tok, val in tokens: + yield '{!r:<13} {}'.format(val, str(tok)[6:]) + if val.endswith('\n'): + yield '' + + def runtest(self): + lexer = pygments.lexers.get_lexer_by_name(self.lexer) + tokens = lexer.get_tokens(self.input) + self.actual = '\n'.join(self._prettyprint_tokens(tokens)).rstrip('\n') + '\n' + if not self.config.getoption('--update-goldens'): + assert self.actual == self.expected + + def _test_file_rel_path(self): + return Path(str(self.fspath)).relative_to(Path(__file__).parent.parent) + + def repr_failure(self, excinfo): + if isinstance(excinfo.value, AssertionError): + rel_path = self._test_file_rel_path() + message = ( + 'The tokens produced by the "{}" lexer differ from the ' + 'expected ones in the file "{}".\n' + 'Run `pytest {} --update-goldens` to update it.' + ).format(self.lexer, rel_path, Path(*rel_path.parts[:2])) + diff = str(excinfo.value).split('\n', 1)[-1] + return message + '\n\n' + diff + + def reportinfo(self): + return self.fspath, None, str(self._test_file_rel_path()) + + def maybe_overwrite(self): + if self.actual is not None and self.config.getoption('--update-goldens'): + self.overwrite() + + +class LexerSeparateTestItem(LexerTestItem): + def __init__(self, name, parent): + super().__init__(name, parent) + + self.input = self.fspath.read_binary() + output_path = self.fspath + '.output' + if output_path.check(): + self.expected = output_path.read_text(encoding='utf-8') + else: + self.expected = '' + + def overwrite(self): + output_path = self.fspath + '.output' + output_path.write_text(self.actual, encoding='utf-8') + + +class LexerInlineTestItem(LexerTestItem): + def __init__(self, name, parent): + super().__init__(name, parent) + + content = self.fspath.read_text('utf-8') + content, _, self.expected = content.partition('\n---tokens---\n') + if content.startswith('---input---\n'): + content = '\n' + content + self.comment, _, self.input = content.rpartition('\n---input---\n') + if not self.input.endswith('\n'): + self.input += '\n' + self.comment = self.comment.strip() + + def overwrite(self): + with self.fspath.open('w', encoding='utf-8') as f: + f.write(self.comment) + if self.comment: + f.write('\n\n') + f.write('---input---\n') + f.write(self.input) + f.write('\n---tokens---\n') + f.write(self.actual) + + +def pytest_runtest_teardown(item, nextitem): + if isinstance(item, LexerTestItem): + item.maybe_overwrite() diff --git a/tests/examplefiles/bash/example.sh b/tests/examplefiles/bash/example.sh new file mode 100644 index 00000000000..2112cdd10db --- /dev/null +++ b/tests/examplefiles/bash/example.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +printf "%d %s\n" 10 "foo" +printf "%d %s\n" $((10#1)) "bar" + +let "m = 10#${1:1:2}" +echo $m + +m=$((10#${1:4:3} + 10#${1:1:3})) +echo $m + +m=$((10#${1:4:3})) +echo $m + +m=$((10#$1)) +echo $m + +m=$((10#1)) +echo $m + +m=$((10)) +echo $m diff --git a/tests/examplefiles/bash/example.sh.output b/tests/examplefiles/bash/example.sh.output new file mode 100644 index 00000000000..ccfc2e71088 --- /dev/null +++ b/tests/examplefiles/bash/example.sh.output @@ -0,0 +1,128 @@ +'#!/bin/bash\n' Comment.Hashbang + +'\n' Text + +'printf' Name.Builtin +' ' Text +'"%d %s\\n"' Literal.String.Double +' ' Text +'10' Literal.Number +' ' Text +'"foo"' Literal.String.Double +'\n' Text + +'printf' Name.Builtin +' ' Text +'"%d %s\\n"' Literal.String.Double +' ' Text +'$((' Keyword +'10#1' Literal.Number +'))' Keyword +' ' Text +'"bar"' Literal.String.Double +'\n\n' Text + +'let' Name.Builtin +' ' Text +'"' Literal.String.Double +'m = 10#' Literal.String.Double +'${' Literal.String.Interpol +'1' Name.Variable +':' Punctuation +'1' Name.Variable +':' Punctuation +'2' Name.Variable +'}' Literal.String.Interpol +'"' Literal.String.Double +'\n' Text + +'echo' Name.Builtin +' ' Text +'$m' Name.Variable +'\n\n' Text + +'m' Name.Variable +'=' Operator +'$((' Keyword +'10#' Literal.Number +'${' Literal.String.Interpol +'1' Name.Variable +':' Punctuation +'4' Name.Variable +':' Punctuation +'3' Name.Variable +'}' Literal.String.Interpol +' ' Text +'+' Operator +' ' Text +'10#' Literal.Number +'${' Literal.String.Interpol +'1' Name.Variable +':' Punctuation +'1' Name.Variable +':' Punctuation +'3' Name.Variable +'}' Literal.String.Interpol +'))' Keyword +'\n' Text + +'echo' Name.Builtin +' ' Text +'$m' Name.Variable +'\n\n' Text + +'m' Name.Variable +'=' Operator +'$((' Keyword +'10#' Literal.Number +'${' Literal.String.Interpol +'1' Name.Variable +':' Punctuation +'4' Name.Variable +':' Punctuation +'3' Name.Variable +'}' Literal.String.Interpol +'))' Keyword +'\n' Text + +'echo' Name.Builtin +' ' Text +'$m' Name.Variable +'\n\n' Text + +'m' Name.Variable +'=' Operator +'$((' Keyword +'10#' Literal.Number +'$1' Name.Variable +'))' Keyword +'\n' Text + +'echo' Name.Builtin +' ' Text +'$m' Name.Variable +'\n\n' Text + +'m' Name.Variable +'=' Operator +'$((' Keyword +'10#1' Literal.Number +'))' Keyword +'\n' Text + +'echo' Name.Builtin +' ' Text +'$m' Name.Variable +'\n\n' Text + +'m' Name.Variable +'=' Operator +'$((' Keyword +'10' Literal.Number +'))' Keyword +'\n' Text + +'echo' Name.Builtin +' ' Text +'$m' Name.Variable +'\n' Text diff --git a/tests/examplefiles/bash/ltmain.sh b/tests/examplefiles/bash/ltmain.sh new file mode 100644 index 00000000000..5b5f845f2cd --- /dev/null +++ b/tests/examplefiles/bash/ltmain.sh @@ -0,0 +1,2849 @@ +# ltmain.sh - Provide generalized library-building support services. +# NOTE: Changing this file will not affect anything until you rerun configure. +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005 +# Free Software Foundation, Inc. +# Originally by Gordon Matzigkeit , 1996 +# +# This program 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 Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +basename="s,^.*/,,g" + +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +# is ksh but when the shell is invoked as "sh" and the current value of +# the _XPG environment variable is not equal to 1 (one), the special +# positional parameter $0, within a function call, is the name of the +# function. +progpath="$0" + +# define SED for historic ltconfig's generated by Libtool 1.3 +test -z "$SED" && SED=sed + +# The name of this program: +progname=`echo "$progpath" | $SED $basename` +modename="$progname" + +# Global variables: +EXIT_SUCCESS=0 +EXIT_FAILURE=1 + +PROGRAM=ltmain.sh +PACKAGE=libtool +VERSION=1.5.22 +TIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)" + +# See if we are running on zsh, and set the options which allow our +# commands through without removal of \ escapes. +if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi +# Same for EGREP, and just to be sure, do LTCC as well +if test "X$EGREP" = X ; then + EGREP=egrep +fi +if test "X$LTCC" = X ; then + LTCC=${CC-gcc} +fi + +# Check that we have a working $echo. +if test "X$1" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift +elif test "X$1" = X--fallback-echo; then + # Avoid inline document here, it may be left over + : +elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then + # Yippee, $echo works! + : +else + # Restart under the correct shell, and then maybe $echo will work. + exec $SHELL "$progpath" --no-reexec ${1+"$@"} +fi + +if test "X$1" = X--fallback-echo; then + # used as fallback echo + shift + cat <&2 + $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 + exit $EXIT_FAILURE +fi + +# Global variables. +mode=$default_mode +nonopt= +prev= +prevopt= +run= +show="$echo" +show_help= +execute_dlfiles= +duplicate_deps=no +preserve_args= +lo2o="s/\\.lo\$/.${objext}/" +o2lo="s/\\.${objext}\$/.lo/" + +if test -z "$max_cmd_len"; then + i=0 + testring="ABCD" + new_result= + + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while (test "X"`$SHELL $0 --fallback-echo "X$testring" 2>/dev/null` \ + = "XX$testring") >/dev/null 2>&1 && + new_result=`expr "X$testring" : ".*" 2>&1` && + max_cmd_len="$new_result" && + test "$i" != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + testring="$testring$testring" + done + testring= + # Add a significant safety factor because C++ compilers can tack on massive + # amounts of additional arguments before passing them to the linker. + # It appears as though 1/2 is a usable value. + max_cmd_len=`expr $max_cmd_len \/ 2` +fi + +##################################### +# Shell function definitions: +# This seems to be the best place for them + +# func_mktempdir [string] +# Make a temporary directory that won't clash with other running +# libtool processes, and avoids race conditions if possible. If +# given, STRING is the basename for that directory. +func_mktempdir () +{ + my_template="${TMPDIR-/tmp}/${1-$progname}" + + if test "$run" = ":"; then + # Return a directory name, but don't create it in dry-run mode + my_tmpdir="${my_template}-$$" + else + + # If mktemp works, use that first and foremost + my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` + + if test ! -d "$my_tmpdir"; then + # Failing that, at least try and use $RANDOM to avoid a race + my_tmpdir="${my_template}-${RANDOM-0}$$" + + save_mktempdir_umask=`umask` + umask 0077 + $mkdir "$my_tmpdir" + umask $save_mktempdir_umask + fi + + # If we're not in dry-run mode, bomb out on failure + test -d "$my_tmpdir" || { + $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2 + exit $EXIT_FAILURE + } + fi + + $echo "X$my_tmpdir" | $Xsed +} + + +# func_win32_libid arg +# return the library type of file 'arg' +# +# Need a lot of goo to handle *both* DLLs and import libs +# Has to be a shell function in order to 'eat' the argument +# that is supplied when $file_magic_command is called. +func_win32_libid () +{ + win32_libid_type="unknown" + win32_fileres=`file -L $1 2>/dev/null` + case $win32_fileres in + *ar\ archive\ import\ library*) # definitely import + win32_libid_type="x86 archive import" + ;; + *ar\ archive*) # could be an import, or static + if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ + $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then + win32_nmres=`eval $NM -f posix -A $1 | \ + $SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'` + case $win32_nmres in + import*) win32_libid_type="x86 archive import";; + *) win32_libid_type="x86 archive static";; + esac + fi + ;; + *DLL*) + win32_libid_type="x86 DLL" + ;; + *executable*) # but shell scripts are "executable" too... + case $win32_fileres in + *MS\ Windows\ PE\ Intel*) + win32_libid_type="x86 DLL" + ;; + esac + ;; + esac + $echo $win32_libid_type +} + + +# func_infer_tag arg +# Infer tagged configuration to use if any are available and +# if one wasn't chosen via the "--tag" command line option. +# Only attempt this if the compiler in the base compile +# command doesn't match the default compiler. +# arg is usually of the form 'gcc ...' +func_infer_tag () +{ + if test -n "$available_tags" && test -z "$tagname"; then + CC_quoted= + for arg in $CC; do + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + CC_quoted="$CC_quoted $arg" + done + case $@ in + # Blanks in the command may have been stripped by the calling shell, + # but not from the CC environment variable when configure was run. + " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; + # Blanks at the start of $base_compile will cause this to fail + # if we don't check for them as well. + *) + for z in $available_tags; do + if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then + # Evaluate the configuration. + eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" + CC_quoted= + for arg in $CC; do + # Double-quote args containing other shell metacharacters. + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + CC_quoted="$CC_quoted $arg" + done + # user sometimes does CC=-gcc so we need to match that to 'gcc' + trimedcc=`echo ${CC} | $SED -e "s/${host}-//g"` + # and sometimes libtool has CC=-gcc but user does CC=gcc + extendcc=${host}-${CC} + # and sometimes libtool has CC=-gcc but user has CC=-gcc + # (Gentoo-specific hack because we always export $CHOST) + mungedcc=${CHOST-${host}}-${trimedcc} + case "$@ " in + "cc "* | " cc "* | "${host}-cc "* | " ${host}-cc "*|\ + "gcc "* | " gcc "* | "${host}-gcc "* | " ${host}-gcc "*) + tagname=CC + break ;; + "$trimedcc "* | " $trimedcc "* | "`$echo $trimedcc` "* | " `$echo $trimedcc` "*|\ + "$extendcc "* | " $extendcc "* | "`$echo $extendcc` "* | " `$echo $extendcc` "*|\ + "$mungedcc "* | " $mungedcc "* | "`$echo $mungedcc` "* | " `$echo $mungedcc` "*|\ + " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) + # The compiler in the base compile command matches + # the one in the tagged configuration. + # Assume this is the tagged configuration we want. + tagname=$z + break + ;; + esac + fi + done + # If $tagname still isn't set, then no tagged configuration + # was found and let the user know that the "--tag" command + # line option must be used. + if test -z "$tagname"; then + $echo "$modename: unable to infer tagged configuration" + $echo "$modename: specify a tag with \`--tag'" 1>&2 + exit $EXIT_FAILURE +# else +# $echo "$modename: using $tagname tagged configuration" + fi + ;; + esac + fi +} + + +# func_extract_an_archive dir oldlib +func_extract_an_archive () +{ + f_ex_an_ar_dir="$1"; shift + f_ex_an_ar_oldlib="$1" + + $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)" + $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $? + if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then + : + else + $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2 + exit $EXIT_FAILURE + fi +} + +# func_extract_archives gentop oldlib ... +func_extract_archives () +{ + my_gentop="$1"; shift + my_oldlibs=${1+"$@"} + my_oldobjs="" + my_xlib="" + my_xabs="" + my_xdir="" + my_status="" + + $show "${rm}r $my_gentop" + $run ${rm}r "$my_gentop" + $show "$mkdir $my_gentop" + $run $mkdir "$my_gentop" + my_status=$? + if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then + exit $my_status + fi + + for my_xlib in $my_oldlibs; do + # Extract the objects. + case $my_xlib in + [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; + *) my_xabs=`pwd`"/$my_xlib" ;; + esac + my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` + my_xdir="$my_gentop/$my_xlib" + + $show "${rm}r $my_xdir" + $run ${rm}r "$my_xdir" + $show "$mkdir $my_xdir" + $run $mkdir "$my_xdir" + exit_status=$? + if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then + exit $exit_status + fi + case $host in + *-darwin*) + $show "Extracting $my_xabs" + # Do not bother doing anything if just a dry run + if test -z "$run"; then + darwin_orig_dir=`pwd` + cd $my_xdir || exit $? + darwin_archive=$my_xabs + darwin_curdir=`pwd` + darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'` + darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null` + if test -n "$darwin_arches"; then + darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` + darwin_arch= + $show "$darwin_base_archive has multiple architectures $darwin_arches" + for darwin_arch in $darwin_arches ; do + mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}" + lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" + cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" + func_extract_an_archive "`pwd`" "${darwin_base_archive}" + cd "$darwin_curdir" + $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" + done # $darwin_arches + ## Okay now we have a bunch of thin objects, gotta fatten them up :) + darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP` + darwin_file= + darwin_files= + for darwin_file in $darwin_filelist; do + darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` + lipo -create -output "$darwin_file" $darwin_files + done # $darwin_filelist + ${rm}r unfat-$$ + cd "$darwin_orig_dir" + else + cd "$darwin_orig_dir" + func_extract_an_archive "$my_xdir" "$my_xabs" + fi # $darwin_arches + fi # $run + ;; + *) + func_extract_an_archive "$my_xdir" "$my_xabs" + ;; + esac + my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` + done + func_extract_archives_result="$my_oldobjs" +} +# End of Shell function definitions +##################################### + +# Darwin sucks +eval std_shrext=\"$shrext_cmds\" + +disable_libs=no + +# Parse our command line options once, thoroughly. +while test "$#" -gt 0 +do + arg="$1" + shift + + case $arg in + -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; + *) optarg= ;; + esac + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + case $prev in + execute_dlfiles) + execute_dlfiles="$execute_dlfiles $arg" + ;; + tag) + tagname="$arg" + preserve_args="${preserve_args}=$arg" + + # Check whether tagname contains only valid characters + case $tagname in + *[!-_A-Za-z0-9,/]*) + $echo "$progname: invalid tag name: $tagname" 1>&2 + exit $EXIT_FAILURE + ;; + esac + + case $tagname in + CC) + # Don't test for the "default" C tag, as we know, it's there, but + # not specially marked. + ;; + *) + if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then + taglist="$taglist $tagname" + # Evaluate the configuration. + eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" + else + $echo "$progname: ignoring unknown tag $tagname" 1>&2 + fi + ;; + esac + ;; + *) + eval "$prev=\$arg" + ;; + esac + + prev= + prevopt= + continue + fi + + # Have we seen a non-optional argument yet? + case $arg in + --help) + show_help=yes + ;; + + --version) + $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" + $echo + $echo "Copyright (C) 2005 Free Software Foundation, Inc." + $echo "This is free software; see the source for copying conditions. There is NO" + $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + exit $? + ;; + + --config) + ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath + # Now print the configurations for the tags. + for tagname in $taglist; do + ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" + done + exit $? + ;; + + --debug) + $echo "$progname: enabling shell trace mode" + set -x + preserve_args="$preserve_args $arg" + ;; + + --dry-run | -n) + run=: + ;; + + --features) + $echo "host: $host" + if test "$build_libtool_libs" = yes; then + $echo "enable shared libraries" + else + $echo "disable shared libraries" + fi + if test "$build_old_libs" = yes; then + $echo "enable static libraries" + else + $echo "disable static libraries" + fi + exit $? + ;; + + --finish) mode="finish" ;; + + --mode) prevopt="--mode" prev=mode ;; + --mode=*) mode="$optarg" ;; + + --preserve-dup-deps) duplicate_deps="yes" ;; + + --quiet | --silent) + show=: + preserve_args="$preserve_args $arg" + ;; + + --tag) + prevopt="--tag" + prev=tag + preserve_args="$preserve_args --tag" + ;; + --tag=*) + set tag "$optarg" ${1+"$@"} + shift + prev=tag + preserve_args="$preserve_args --tag" + ;; + + -dlopen) + prevopt="-dlopen" + prev=execute_dlfiles + ;; + + -*) + $echo "$modename: unrecognized option \`$arg'" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + ;; + + *) + nonopt="$arg" + break + ;; + esac +done + +if test -n "$prevopt"; then + $echo "$modename: option \`$prevopt' requires an argument" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE +fi + +case $disable_libs in +no) + ;; +shared) + build_libtool_libs=no + build_old_libs=yes + ;; +static) + build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` + ;; +esac + +# If this variable is set in any of the actions, the command in it +# will be execed at the end. This prevents here-documents from being +# left over by shells. +exec_cmd= + +if test -z "$show_help"; then + + # Infer the operation mode. + if test -z "$mode"; then + $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 + $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2 + case $nonopt in + *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) + mode=link + for arg + do + case $arg in + -c) + mode=compile + break + ;; + esac + done + ;; + *db | *dbx | *strace | *truss) + mode=execute + ;; + *install*|cp|mv) + mode=install + ;; + *rm) + mode=uninstall + ;; + *) + # If we have no mode, but dlfiles were specified, then do execute mode. + test -n "$execute_dlfiles" && mode=execute + + # Just use the default operation mode. + if test -z "$mode"; then + if test -n "$nonopt"; then + $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 + else + $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 + fi + fi + ;; + esac + fi + + # Only execute mode is allowed to have -dlopen flags. + if test -n "$execute_dlfiles" && test "$mode" != execute; then + $echo "$modename: unrecognized option \`-dlopen'" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Change the help message to a mode-specific one. + generic_help="$help" + help="Try \`$modename --help --mode=$mode' for more information." + + # These modes are in order of execution frequency so that they run quickly. + case $mode in + # libtool compile mode + compile) + modename="$modename: compile" + # Get the compilation command and the source file. + base_compile= + srcfile="$nonopt" # always keep a non-empty value in "srcfile" + suppress_opt=yes + suppress_output= + arg_mode=normal + libobj= + later= + + for arg + do + case $arg_mode in + arg ) + # do not "continue". Instead, add this to base_compile + lastarg="$arg" + arg_mode=normal + ;; + + target ) + libobj="$arg" + arg_mode=normal + continue + ;; + + normal ) + # Accept any command-line options. + case $arg in + -o) + if test -n "$libobj" ; then + $echo "$modename: you cannot specify \`-o' more than once" 1>&2 + exit $EXIT_FAILURE + fi + arg_mode=target + continue + ;; + + -static | -prefer-pic | -prefer-non-pic) + later="$later $arg" + continue + ;; + + -no-suppress) + suppress_opt=no + continue + ;; + + -Xcompiler) + arg_mode=arg # the next one goes into the "base_compile" arg list + continue # The current "srcfile" will either be retained or + ;; # replaced later. I would guess that would be a bug. + + -Wc,*) + args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` + lastarg= + save_ifs="$IFS"; IFS=',' + for arg in $args; do + IFS="$save_ifs" + + # Double-quote args containing other shell metacharacters. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + lastarg="$lastarg $arg" + done + IFS="$save_ifs" + lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` + + # Add the arguments to base_compile. + base_compile="$base_compile $lastarg" + continue + ;; + + * ) + # Accept the current argument as the source file. + # The previous "srcfile" becomes the current argument. + # + lastarg="$srcfile" + srcfile="$arg" + ;; + esac # case $arg + ;; + esac # case $arg_mode + + # Aesthetically quote the previous argument. + lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` + + case $lastarg in + # Double-quote args containing other shell metacharacters. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, and some SunOS ksh mistreat backslash-escaping + # in scan sets (worked around with variable expansion), + # and furthermore cannot handle '|' '&' '(' ')' in scan sets + # at all, so we specify them separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + lastarg="\"$lastarg\"" + ;; + esac + + base_compile="$base_compile $lastarg" + done # for arg + + case $arg_mode in + arg) + $echo "$modename: you must specify an argument for -Xcompile" + exit $EXIT_FAILURE + ;; + target) + $echo "$modename: you must specify a target with \`-o'" 1>&2 + exit $EXIT_FAILURE + ;; + *) + # Get the name of the library object. + [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` + ;; + esac + + # Recognize several different file suffixes. + # If the user specifies -o file.o, it is replaced with file.lo + xform='[cCFSifmso]' + case $libobj in + *.ada) xform=ada ;; + *.adb) xform=adb ;; + *.ads) xform=ads ;; + *.asm) xform=asm ;; + *.c++) xform=c++ ;; + *.cc) xform=cc ;; + *.ii) xform=ii ;; + *.class) xform=class ;; + *.cpp) xform=cpp ;; + *.cxx) xform=cxx ;; + *.f90) xform=f90 ;; + *.for) xform=for ;; + *.java) xform=java ;; + esac + + libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` + + case $libobj in + *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; + *) + $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 + exit $EXIT_FAILURE + ;; + esac + + func_infer_tag $base_compile + + for arg in $later; do + case $arg in + -static) + build_old_libs=yes + continue + ;; + + -prefer-pic) + pic_mode=yes + continue + ;; + + -prefer-non-pic) + pic_mode=no + continue + ;; + esac + done + + qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"` + case $qlibobj in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + qlibobj="\"$qlibobj\"" ;; + esac + test "X$libobj" != "X$qlibobj" \ + && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \ + && $echo "$modename: libobj name \`$libobj' may not contain shell special characters." + objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` + xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$obj"; then + xdir= + else + xdir=$xdir/ + fi + lobj=${xdir}$objdir/$objname + + if test -z "$base_compile"; then + $echo "$modename: you must specify a compilation command" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Delete any leftover library objects. + if test "$build_old_libs" = yes; then + removelist="$obj $lobj $libobj ${libobj}T" + else + removelist="$lobj $libobj ${libobj}T" + fi + + $run $rm $removelist + trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 + + # On Cygwin there's no "real" PIC flag so we must build both object types + case $host_os in + cygwin* | mingw* | pw32* | os2*) + pic_mode=default + ;; + esac + if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then + # non-PIC code in shared libraries is not supported + pic_mode=default + fi + + # Calculate the filename of the output object if compiler does + # not support -o with -c + if test "$compiler_c_o" = no; then + output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} + lockfile="$output_obj.lock" + removelist="$removelist $output_obj $lockfile" + trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 + else + output_obj= + need_locks=no + lockfile= + fi + + # Lock this critical section if it is needed + # We use this script file to make the link, it avoids creating a new file + if test "$need_locks" = yes; then + until $run ln "$srcfile" "$lockfile" 2>/dev/null; do + $show "Waiting for $lockfile to be removed" + sleep 2 + done + elif test "$need_locks" = warn; then + if test -f "$lockfile"; then + $echo "\ +*** ERROR, $lockfile exists and contains: +`cat $lockfile 2>/dev/null` + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $run $rm $removelist + exit $EXIT_FAILURE + fi + $echo "$srcfile" > "$lockfile" + fi + + if test -n "$fix_srcfile_path"; then + eval srcfile=\"$fix_srcfile_path\" + fi + qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"` + case $qsrcfile in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + qsrcfile="\"$qsrcfile\"" ;; + esac + + $run $rm "$libobj" "${libobj}T" + + # Create a libtool object file (analogous to a ".la" file), + # but don't create it if we're doing a dry run. + test -z "$run" && cat > ${libobj}T </dev/null`" != "X$srcfile"; then + $echo "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $run $rm $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed, then go on to compile the next one + if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then + $show "$mv $output_obj $lobj" + if $run $mv $output_obj $lobj; then : + else + error=$? + $run $rm $removelist + exit $error + fi + fi + + # Append the name of the PIC object to the libtool object file. + test -z "$run" && cat >> ${libobj}T <> ${libobj}T </dev/null`" != "X$srcfile"; then + $echo "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $run $rm $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed + if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then + $show "$mv $output_obj $obj" + if $run $mv $output_obj $obj; then : + else + error=$? + $run $rm $removelist + exit $error + fi + fi + + # Append the name of the non-PIC object the libtool object file. + # Only append if the libtool object file exists. + test -z "$run" && cat >> ${libobj}T <> ${libobj}T <&2 + fi + if test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + else + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=built + fi + build_libtool_libs=no + build_old_libs=yes + break + ;; + esac + done + + # See if our shared archives depend on static archives. + test -n "$old_archive_from_new_cmds" && build_old_libs=yes + + # Go through the arguments, transforming them on the way. + while test "$#" -gt 0; do + arg="$1" + shift + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test + ;; + *) qarg=$arg ;; + esac + libtool_args="$libtool_args $qarg" + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + case $prev in + output) + compile_command="$compile_command @OUTPUT@" + finalize_command="$finalize_command @OUTPUT@" + ;; + esac + + case $prev in + dlfiles|dlprefiles) + if test "$preload" = no; then + # Add the symbol object into the linking commands. + compile_command="$compile_command @SYMFILE@" + finalize_command="$finalize_command @SYMFILE@" + preload=yes + fi + case $arg in + *.la | *.lo) ;; # We handle these cases below. + force) + if test "$dlself" = no; then + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + self) + if test "$prev" = dlprefiles; then + dlself=yes + elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then + dlself=yes + else + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + *) + if test "$prev" = dlfiles; then + dlfiles="$dlfiles $arg" + else + dlprefiles="$dlprefiles $arg" + fi + prev= + continue + ;; + esac + ;; + expsyms) + export_symbols="$arg" + if test ! -f "$arg"; then + $echo "$modename: symbol file \`$arg' does not exist" + exit $EXIT_FAILURE + fi + prev= + continue + ;; + expsyms_regex) + export_symbols_regex="$arg" + prev= + continue + ;; + inst_prefix) + inst_prefix_dir="$arg" + prev= + continue + ;; + precious_regex) + precious_files_regex="$arg" + prev= + continue + ;; + release) + release="-$arg" + prev= + continue + ;; + objectlist) + if test -f "$arg"; then + save_arg=$arg + moreargs= + for fil in `cat $save_arg` + do +# moreargs="$moreargs $fil" + arg=$fil + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + pic_object= + non_pic_object= + + # Read the .lo file + # If there is no directory component, then add one. + case $arg in + */* | *\\*) . $arg ;; + *) . ./$arg ;; + esac + + if test -z "$pic_object" || \ + test -z "$non_pic_object" || + test "$pic_object" = none && \ + test "$non_pic_object" = none; then + $echo "$modename: cannot find name of object for \`$arg'" 1>&2 + exit $EXIT_FAILURE + fi + + # Extract subdirectory from the argument. + xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$arg"; then + xdir= + else + xdir="$xdir/" + fi + + if test "$pic_object" != none; then + # Prepend the subdirectory the object is found in. + pic_object="$xdir$pic_object" + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + dlfiles="$dlfiles $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. + dlprefiles="$dlprefiles $pic_object" + prev= + fi + + # A PIC object. + libobjs="$libobjs $pic_object" + arg="$pic_object" + fi + + # Non-PIC object. + if test "$non_pic_object" != none; then + # Prepend the subdirectory the object is found in. + non_pic_object="$xdir$non_pic_object" + + # A standard non-PIC object + non_pic_objects="$non_pic_objects $non_pic_object" + if test -z "$pic_object" || test "$pic_object" = none ; then + arg="$non_pic_object" + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object="$pic_object" + non_pic_objects="$non_pic_objects $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if test -z "$run"; then + $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 + exit $EXIT_FAILURE + else + # Dry-run case. + + # Extract subdirectory from the argument. + xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$arg"; then + xdir= + else + xdir="$xdir/" + fi + + pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` + non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` + libobjs="$libobjs $pic_object" + non_pic_objects="$non_pic_objects $non_pic_object" + fi + fi + done + else + $echo "$modename: link input file \`$save_arg' does not exist" + exit $EXIT_FAILURE + fi + arg=$save_arg + prev= + continue + ;; + rpath | xrpath) + # We need an absolute path. + case $arg in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + $echo "$modename: only absolute run-paths are allowed" 1>&2 + exit $EXIT_FAILURE + ;; + esac + if test "$prev" = rpath; then + case "$rpath " in + *" $arg "*) ;; + *) rpath="$rpath $arg" ;; + esac + else + case "$xrpath " in + *" $arg "*) ;; + *) xrpath="$xrpath $arg" ;; + esac + fi + prev= + continue + ;; + xcompiler) + compiler_flags="$compiler_flags $qarg" + prev= + compile_command="$compile_command $qarg" + finalize_command="$finalize_command $qarg" + continue + ;; + xlinker) + linker_flags="$linker_flags $qarg" + compiler_flags="$compiler_flags $wl$qarg" + prev= + compile_command="$compile_command $wl$qarg" + finalize_command="$finalize_command $wl$qarg" + continue + ;; + xcclinker) + linker_flags="$linker_flags $qarg" + compiler_flags="$compiler_flags $qarg" + prev= + compile_command="$compile_command $qarg" + finalize_command="$finalize_command $qarg" + continue + ;; + shrext) + shrext_cmds="$arg" + prev= + continue + ;; + darwin_framework|darwin_framework_skip) + test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg" + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + prev= + continue + ;; + *) + eval "$prev=\"\$arg\"" + prev= + continue + ;; + esac + fi # test -n "$prev" + + prevarg="$arg" + + case $arg in + -all-static) + if test -n "$link_static_flag"; then + compile_command="$compile_command $link_static_flag" + finalize_command="$finalize_command $link_static_flag" + fi + continue + ;; + + -allow-undefined) + # FIXME: remove this flag sometime in the future. + $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 + continue + ;; + + -avoid-version) + avoid_version=yes + continue + ;; + + -dlopen) + prev=dlfiles + continue + ;; + + -dlpreopen) + prev=dlprefiles + continue + ;; + + -export-dynamic) + export_dynamic=yes + continue + ;; + + -export-symbols | -export-symbols-regex) + if test -n "$export_symbols" || test -n "$export_symbols_regex"; then + $echo "$modename: more than one -exported-symbols argument is not allowed" + exit $EXIT_FAILURE + fi + if test "X$arg" = "X-export-symbols"; then + prev=expsyms + else + prev=expsyms_regex + fi + continue + ;; + + -framework|-arch|-isysroot) + case " $CC " in + *" ${arg} ${1} "* | *" ${arg} ${1} "*) + prev=darwin_framework_skip ;; + *) compiler_flags="$compiler_flags $arg" + prev=darwin_framework ;; + esac + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + continue + ;; + + -inst-prefix-dir) + prev=inst_prefix + continue + ;; + + # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* + # so, if we see these flags be careful not to treat them like -L + -L[A-Z][A-Z]*:*) + case $with_gcc/$host in + no/*-*-irix* | /*-*-irix*) + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + ;; + esac + continue + ;; + + -L*) + dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + absdir=`cd "$dir" && pwd` + if test -z "$absdir"; then + $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 + absdir="$dir" + notinst_path="$notinst_path $dir" + fi + dir="$absdir" + ;; + esac + case "$deplibs " in + *" -L$dir "*) ;; + *) + deplibs="$deplibs -L$dir" + lib_search_path="$lib_search_path $dir" + ;; + esac + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) + testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$dir:"*) ;; + *) dllsearchpath="$dllsearchpath:$dir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + *) dllsearchpath="$dllsearchpath:$testbindir";; + esac + ;; + esac + continue + ;; + + -l*) + if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) + # These systems don't actually have a C or math library (as such) + continue + ;; + *-*-os2*) + # These systems don't actually have a C library (as such) + test "X$arg" = "X-lc" && continue + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc due to us having libc/libc_r. + test "X$arg" = "X-lc" && continue + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C and math libraries are in the System framework + deplibs="$deplibs -framework System" + continue + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + test "X$arg" = "X-lc" && continue + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + test "X$arg" = "X-lc" && continue + ;; + esac + elif test "X$arg" = "X-lc_r"; then + case $host in + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc_r directly, use -pthread flag. + continue + ;; + esac + fi + deplibs="$deplibs $arg" + continue + ;; + + # Tru64 UNIX uses -model [arg] to determine the layout of C++ + # classes, name mangling, and exception handling. + -model) + compile_command="$compile_command $arg" + compiler_flags="$compiler_flags $arg" + finalize_command="$finalize_command $arg" + prev=xcompiler + continue + ;; + + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) + compiler_flags="$compiler_flags $arg" + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + continue + ;; + + -module) + module=yes + continue + ;; + + # -64, -mips[0-9] enable 64-bit mode on the SGI compiler + # -r[0-9][0-9]* specifies the processor on the SGI compiler + # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler + # +DA*, +DD* enable 64-bit mode on the HP compiler + # -q* pass through compiler args for the IBM compiler + # -m* pass through architecture-specific compiler args for GCC + # -m*, -t[45]*, -txscale* pass through architecture-specific + # compiler args for GCC + # -pg pass through profiling flag for GCC + # @file GCC response files + -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \ + -t[45]*|-txscale*|@*) + + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + compiler_flags="$compiler_flags $arg" + continue + ;; + + -shrext) + prev=shrext + continue + ;; + + -no-fast-install) + fast_install=no + continue + ;; + + -no-install) + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) + # The PATH hackery in wrapper scripts is required on Windows + # in order for the loader to find any dlls it needs. + $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 + $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 + fast_install=no + ;; + *) no_install=yes ;; + esac + continue + ;; + + -no-undefined) + allow_undefined=no + continue + ;; + + -objectlist) + prev=objectlist + continue + ;; + + -o) prev=output ;; + + -precious-files-regex) + prev=precious_regex + continue + ;; + + -release) + prev=release + continue + ;; + + -rpath) + prev=rpath + continue + ;; + + -R) + prev=xrpath + continue + ;; + + -R*) + dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + $echo "$modename: only absolute run-paths are allowed" 1>&2 + exit $EXIT_FAILURE + ;; + esac + case "$xrpath " in + *" $dir "*) ;; + *) xrpath="$xrpath $dir" ;; + esac + continue + ;; + + -static) + # The effects of -static are defined in a previous loop. + # We used to do the same as -all-static on platforms that + # didn't have a PIC flag, but the assumption that the effects + # would be equivalent was wrong. It would break on at least + # Digital Unix and AIX. + continue + ;; + + -thread-safe) + thread_safe=yes + continue + ;; + + -version-info) + prev=vinfo + continue + ;; + -version-number) + prev=vinfo + vinfo_number=yes + continue + ;; + + -Wc,*) + args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` + arg= + save_ifs="$IFS"; IFS=',' + for flag in $args; do + IFS="$save_ifs" + case $flag in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + flag="\"$flag\"" + ;; + esac + arg="$arg $wl$flag" + compiler_flags="$compiler_flags $flag" + done + IFS="$save_ifs" + arg=`$echo "X$arg" | $Xsed -e "s/^ //"` + ;; + + -Wl,*) + args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` + arg= + save_ifs="$IFS"; IFS=',' + for flag in $args; do + IFS="$save_ifs" + case $flag in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + flag="\"$flag\"" + ;; + esac + arg="$arg $wl$flag" + compiler_flags="$compiler_flags $wl$flag" + linker_flags="$linker_flags $flag" + done + IFS="$save_ifs" + arg=`$echo "X$arg" | $Xsed -e "s/^ //"` + ;; + + -Xcompiler) + prev=xcompiler + continue + ;; + + -Xlinker) + prev=xlinker + continue + ;; + + -XCClinker) + prev=xcclinker + continue + ;; + + # Some other compiler flag. + -* | +*) + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + ;; + + *.$objext) + # A standard object. + objs="$objs $arg" + ;; + + *.lo) + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + pic_object= + non_pic_object= + + # Read the .lo file + # If there is no directory component, then add one. + case $arg in + */* | *\\*) . $arg ;; + *) . ./$arg ;; + esac + + if test -z "$pic_object" || \ + test -z "$non_pic_object" || + test "$pic_object" = none && \ + test "$non_pic_object" = none; then + $echo "$modename: cannot find name of object for \`$arg'" 1>&2 + exit $EXIT_FAILURE + fi + + # Extract subdirectory from the argument. + xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$arg"; then + xdir= + else + xdir="$xdir/" + fi + + if test "$pic_object" != none; then + # Prepend the subdirectory the object is found in. + pic_object="$xdir$pic_object" + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + dlfiles="$dlfiles $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. + dlprefiles="$dlprefiles $pic_object" + prev= + fi + + # A PIC object. + libobjs="$libobjs $pic_object" + arg="$pic_object" + fi + + # Non-PIC object. + if test "$non_pic_object" != none; then + # Prepend the subdirectory the object is found in. + non_pic_object="$xdir$non_pic_object" + + # A standard non-PIC object + non_pic_objects="$non_pic_objects $non_pic_object" + if test -z "$pic_object" || test "$pic_object" = none ; then + arg="$non_pic_object" + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object="$pic_object" + non_pic_objects="$non_pic_objects $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if test -z "$run"; then + $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 + exit $EXIT_FAILURE + else + # Dry-run case. + + # Extract subdirectory from the argument. + xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$arg"; then + xdir= + else + xdir="$xdir/" + fi + + pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` + non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` + libobjs="$libobjs $pic_object" + non_pic_objects="$non_pic_objects $non_pic_object" + fi + fi + ;; + + *.$libext) + # An archive. + deplibs="$deplibs $arg" + old_deplibs="$old_deplibs $arg" + continue + ;; + + *.la) + # A libtool-controlled library. + + if test "$prev" = dlfiles; then + # This library was specified with -dlopen. + dlfiles="$dlfiles $arg" + prev= + elif test "$prev" = dlprefiles; then + # The library was specified with -dlpreopen. + dlprefiles="$dlprefiles $arg" + prev= + else + deplibs="$deplibs $arg" + fi + continue + ;; + + # Some other compiler argument. + *) + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + ;; + esac # arg + + # Now actually substitute the argument into the commands. + if test -n "$arg"; then + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + fi + done # argument parsing loop + + if test -n "$prev"; then + $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then + eval arg=\"$export_dynamic_flag_spec\" + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + fi + + oldlibs= + # calculate the name of the file, without its directory + outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` + libobjs_save="$libobjs" + + if test -n "$shlibpath_var"; then + # get the directories listed in $shlibpath_var + eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` + else + shlib_search_path= + fi + eval sys_lib_search_path=\"$sys_lib_search_path_spec\" + eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" + + output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` + if test "X$output_objdir" = "X$output"; then + output_objdir="$objdir" + else + output_objdir="$output_objdir/$objdir" + fi + # Create the object directory. + if test ! -d "$output_objdir"; then + $show "$mkdir $output_objdir" + $run $mkdir $output_objdir + exit_status=$? + if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then + exit $exit_status + fi + fi + + # Determine the type of output + case $output in + "") + $echo "$modename: you must specify an output file" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + ;; + *.$libext) linkmode=oldlib ;; + *.lo | *.$objext) linkmode=obj ;; + *.la) linkmode=lib ;; + *) linkmode=prog ;; # Anything else should be a program. + esac + + case $host in + *cygwin* | *mingw* | *pw32*) + # don't eliminate duplications in $postdeps and $predeps + duplicate_compiler_generated_deps=yes + ;; + *) + duplicate_compiler_generated_deps=$duplicate_deps + ;; + esac + specialdeplibs= + + libs= + # Find all interdependent deplibs by searching for libraries + # that are linked more than once (e.g. -la -lb -la) + for deplib in $deplibs; do + if test "X$duplicate_deps" = "Xyes" ; then + case "$libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi + libs="$libs $deplib" + done + + if test "$linkmode" = lib; then + libs="$predeps $libs $compiler_lib_search_path $postdeps" + + # Compute libraries that are listed more than once in $predeps + # $postdeps and mark them as special (i.e., whose duplicates are + # not to be eliminated). + pre_post_deps= + if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then + for pre_post_dep in $predeps $postdeps; do + case "$pre_post_deps " in + *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; + esac + pre_post_deps="$pre_post_deps $pre_post_dep" + done + fi + pre_post_deps= + fi + + deplibs= + newdependency_libs= + newlib_search_path= + need_relink=no # whether we're linking any uninstalled libtool libraries + notinst_deplibs= # not-installed libtool libraries + case $linkmode in + lib) + passes="conv link" + for file in $dlfiles $dlprefiles; do + case $file in + *.la) ;; + *) + $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 + exit $EXIT_FAILURE + ;; + esac + done + ;; + prog) + compile_deplibs= + finalize_deplibs= + alldeplibs=no + newdlfiles= + newdlprefiles= + passes="conv scan dlopen dlpreopen link" + ;; + *) passes="conv" + ;; + esac + for pass in $passes; do + if test "$linkmode,$pass" = "lib,link" || + test "$linkmode,$pass" = "prog,scan"; then + libs="$deplibs" + deplibs= + fi + if test "$linkmode" = prog; then + case $pass in + dlopen) libs="$dlfiles" ;; + dlpreopen) libs="$dlprefiles" ;; + link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; + esac + fi + if test "$pass" = dlopen; then + # Collect dlpreopened libraries + save_deplibs="$deplibs" + deplibs= + fi + for deplib in $libs; do + lib= + found=no + case $deplib in + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + compiler_flags="$compiler_flags $deplib" + fi + continue + ;; + -l*) + if test "$linkmode" != lib && test "$linkmode" != prog; then + $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 + continue + fi + name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` + for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do + for search_ext in .la $std_shrext .so .a; do + # Search the libtool library + lib="$searchdir/lib${name}${search_ext}" + if test -f "$lib"; then + if test "$search_ext" = ".la"; then + found=yes + else + found=no + fi + break 2 + fi + done + done + if test "$found" != yes; then + # deplib doesn't seem to be a libtool library + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" + fi + continue + else # deplib is a libtool library + # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, + # We need to do some special things here, and not later. + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $deplib "*) + if (${SED} -e '2q' $lib | + grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + library_names= + old_library= + case $lib in + */* | *\\*) . $lib ;; + *) . ./$lib ;; + esac + for l in $old_library $library_names; do + ll="$l" + done + if test "X$ll" = "X$old_library" ; then # only static version available + found=no + ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` + test "X$ladir" = "X$lib" && ladir="." + lib=$ladir/$old_library + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + fi + ;; + *) ;; + esac + fi + fi + ;; # -l + -L*) + case $linkmode in + lib) + deplibs="$deplib $deplibs" + test "$pass" = conv && continue + newdependency_libs="$deplib $newdependency_libs" + newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` + ;; + prog) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + continue + fi + if test "$pass" = scan; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` + ;; + *) + $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 + ;; + esac # linkmode + continue + ;; # -L + -R*) + if test "$pass" = link; then + dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` + # Make sure the xrpath contains only unique directories. + case "$xrpath " in + *" $dir "*) ;; + *) xrpath="$xrpath $dir" ;; + esac + fi + deplibs="$deplib $deplibs" + continue + ;; + *.la) lib="$deplib" ;; + *.$libext) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + continue + fi + case $linkmode in + lib) + valid_a_lib=no + case $deplibs_check_method in + match_pattern*) + set dummy $deplibs_check_method + match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` + if eval $echo \"$deplib\" 2>/dev/null \ + | $SED 10q \ + | $EGREP "$match_pattern_regex" > /dev/null; then + valid_a_lib=yes + fi + ;; + pass_all) + valid_a_lib=yes + ;; + esac + if test "$valid_a_lib" != yes; then + $echo + $echo "*** Warning: Trying to link with static lib archive $deplib." + $echo "*** I have the capability to make that library automatically link in when" + $echo "*** you link to this library. But I can only do this if you have a" + $echo "*** shared version of the library, which you do not appear to have" + $echo "*** because the file extensions .$libext of this argument makes me believe" + $echo "*** that it is just a static archive that I should not used here." + else + $echo + $echo "*** Warning: Linking the shared library $output against the" + $echo "*** static library $deplib is not portable!" + deplibs="$deplib $deplibs" + fi + continue + ;; + prog) + if test "$pass" != link; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + continue + ;; + esac # linkmode + ;; # *.$libext + *.lo | *.$objext) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + elif test "$linkmode" = prog; then + if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then + # If there is no dlopen support or we're linking statically, + # we need to preload. + newdlprefiles="$newdlprefiles $deplib" + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + newdlfiles="$newdlfiles $deplib" + fi + fi + continue + ;; + %DEPLIBS%) + alldeplibs=yes + continue + ;; + esac # case $deplib + if test "$found" = yes || test -f "$lib"; then : + else + $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2 + exit $EXIT_FAILURE + fi + + # Check to see that this really is a libtool archive. + if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : + else + $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 + exit $EXIT_FAILURE + fi + + ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` + test "X$ladir" = "X$lib" && ladir="." + + dlname= + dlopen= + dlpreopen= + libdir= + library_names= + old_library= + # If the library was installed with an old release of libtool, + # it will not redefine variables installed, or shouldnotlink + installed=yes + shouldnotlink=no + avoidtemprpath= + + + # Read the .la file + case $lib in + */* | *\\*) . $lib ;; + *) . ./$lib ;; + esac + + if test "$linkmode,$pass" = "lib,link" || + test "$linkmode,$pass" = "prog,scan" || + { test "$linkmode" != prog && test "$linkmode" != lib; }; then + test -n "$dlopen" && dlfiles="$dlfiles $dlopen" + test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" + fi + + if test "$pass" = conv; then + # Only check for convenience libraries + deplibs="$lib $deplibs" + if test -z "$libdir"; then + if test -z "$old_library"; then + $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 + exit $EXIT_FAILURE + fi + # It is a libtool convenience library, so add in its objects. + convenience="$convenience $ladir/$objdir/$old_library" + old_convenience="$old_convenience $ladir/$objdir/$old_library" + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" + if test "X$duplicate_deps" = "Xyes" ; then + case "$tmp_libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi + tmp_libs="$tmp_libs $deplib" + done + elif test "$linkmode" != prog && test "$linkmode" != lib; then + $echo "$modename: \`$lib' is not a convenience library" 1>&2 + exit $EXIT_FAILURE + fi + continue + fi # $pass = conv + + + # Get the name of the library we link against. + linklib= + for l in $old_library $library_names; do + linklib="$l" + done + if test -z "$linklib"; then + $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 + exit $EXIT_FAILURE + fi + + # This library was specified with -dlopen. + if test "$pass" = dlopen; then + if test -z "$libdir"; then + $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 + exit $EXIT_FAILURE + fi + if test -z "$dlname" || + test "$dlopen_support" != yes || + test "$build_libtool_libs" = no; then + # If there is no dlname, no dlopen support or we're linking + # statically, we need to preload. We also need to preload any + # dependent libraries so libltdl's deplib preloader doesn't + # bomb out in the load deplibs phase. + dlprefiles="$dlprefiles $lib $dependency_libs" + else + newdlfiles="$newdlfiles $lib" + fi + continue + fi # $pass = dlopen + + # We need an absolute path. + case $ladir in + [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; + *) + abs_ladir=`cd "$ladir" && pwd` + if test -z "$abs_ladir"; then + $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 + $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 + abs_ladir="$ladir" + fi + ;; + esac + laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` + + # Find the relevant object directory and library name. + if test "X$installed" = Xyes; then + if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then + $echo "$modename: warning: library \`$lib' was moved." 1>&2 + dir="$ladir" + absdir="$abs_ladir" + libdir="$abs_ladir" + else + dir="$libdir" + absdir="$libdir" + fi + test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes + else + if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then + dir="$ladir" + absdir="$abs_ladir" + # Remove this search path later + notinst_path="$notinst_path $abs_ladir" + else + dir="$ladir/$objdir" + absdir="$abs_ladir/$objdir" + # Remove this search path later + notinst_path="$notinst_path $abs_ladir" + fi + fi # $installed = yes + name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` + + # This library was specified with -dlpreopen. + if test "$pass" = dlpreopen; then + if test -z "$libdir"; then + $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 + exit $EXIT_FAILURE + fi + # Prefer using a static library (so that no silly _DYNAMIC symbols + # are required to link). + if test -n "$old_library"; then + newdlprefiles="$newdlprefiles $dir/$old_library" + # Otherwise, use the dlname, so that lt_dlopen finds it. + elif test -n "$dlname"; then + newdlprefiles="$newdlprefiles $dir/$dlname" + else + newdlprefiles="$newdlprefiles $dir/$linklib" + fi + fi # $pass = dlpreopen + + if test -z "$libdir"; then + # Link the convenience library + if test "$linkmode" = lib; then + deplibs="$dir/$old_library $deplibs" + elif test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$dir/$old_library $compile_deplibs" + finalize_deplibs="$dir/$old_library $finalize_deplibs" + else + deplibs="$lib $deplibs" # used for prog,scan pass + fi + continue + fi + + + if test "$linkmode" = prog && test "$pass" != link; then + newlib_search_path="$newlib_search_path $ladir" + deplibs="$lib $deplibs" + + linkalldeplibs=no + if test "$link_all_deplibs" != no || test -z "$library_names" || + test "$build_libtool_libs" = no; then + linkalldeplibs=yes + fi + + tmp_libs= + for deplib in $dependency_libs; do + case $deplib in + -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test + esac + # Need to link against all dependency_libs? + if test "$linkalldeplibs" = yes; then + deplibs="$deplib $deplibs" + else + # Need to hardcode shared library paths + # or/and link against static libraries + newdependency_libs="$deplib $newdependency_libs" + fi + if test "X$duplicate_deps" = "Xyes" ; then + case "$tmp_libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi + tmp_libs="$tmp_libs $deplib" + done # for deplib + continue + fi # $linkmode = prog... + + if test "$linkmode,$pass" = "prog,link"; then + if test -n "$library_names" && + { test "$prefer_static_libs" = no || test -z "$old_library"; }; then + # We need to hardcode the library path + if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then + # Make sure the rpath contains only unique directories. + case "$temp_rpath " in + *" $dir "*) ;; + *" $absdir "*) ;; + *) temp_rpath="$temp_rpath $absdir" ;; + esac + fi + + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) compile_rpath="$compile_rpath $absdir" + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" + esac + ;; + esac + fi # $linkmode,$pass = prog,link... + + if test "$alldeplibs" = yes && + { test "$deplibs_check_method" = pass_all || + { test "$build_libtool_libs" = yes && + test -n "$library_names"; }; }; then + # We only need to search for static libraries + continue + fi + fi + + link_static=no # Whether the deplib will be linked statically + use_static_libs=$prefer_static_libs + if test "$use_static_libs" = built && test "$installed" = yes ; then + use_static_libs=no + fi + if test -n "$library_names" && + { test "$use_static_libs" = no || test -z "$old_library"; }; then + if test "$installed" = no; then + notinst_deplibs="$notinst_deplibs $lib" + need_relink=yes + fi + # This is a shared library + + # Warn about portability, can't link against -module's on + # some systems (darwin) + if test "$shouldnotlink" = yes && test "$pass" = link ; then + $echo + if test "$linkmode" = prog; then + $echo "*** Warning: Linking the executable $output against the loadable module" + else + $echo "*** Warning: Linking the shared library $output against the loadable module" + fi + $echo "*** $linklib is not portable!" + fi + if test "$linkmode" = lib && + test "$hardcode_into_libs" = yes; then + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) compile_rpath="$compile_rpath $absdir" + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" + esac + ;; + esac + fi + + if test -n "$old_archive_from_expsyms_cmds"; then + # figure out the soname + set dummy $library_names + realname="$2" + shift; shift + libname=`eval \\$echo \"$libname_spec\"` + # use dlname if we got it. it's perfectly good, no? + if test -n "$dlname"; then + soname="$dlname" + elif test -n "$soname_spec"; then + # bleh windows + case $host in + *cygwin* | mingw*) + major=`expr $current - $age` + versuffix="-$major" + ;; + esac + eval soname=\"$soname_spec\" + else + soname="$realname" + fi + + # Make a new name for the extract_expsyms_cmds to use + soroot="$soname" + soname=`$echo $soroot | ${SED} -e 's/^.*\///'` + newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" + + # If the library has no export list, then create one now + if test -f "$output_objdir/$soname-def"; then : + else + $show "extracting exported symbol list from \`$soname'" + save_ifs="$IFS"; IFS='~' + cmds=$extract_expsyms_cmds + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + fi + + # Create $newlib + if test -f "$output_objdir/$newlib"; then :; else + $show "generating import library for \`$soname'" + save_ifs="$IFS"; IFS='~' + cmds=$old_archive_from_expsyms_cmds + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + fi + # make sure the library variables are pointing to the new library + dir=$output_objdir + linklib=$newlib + fi # test -n "$old_archive_from_expsyms_cmds" + + if test "$linkmode" = prog || test "$mode" != relink; then + add_shlibpath= + add_dir= + add= + lib_linked=yes + case $hardcode_action in + immediate | unsupported) + if test "$hardcode_direct" = no; then + add="$dir/$linklib" + case $host in + *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; + *-*-sysv4*uw2*) add_dir="-L$dir" ;; + *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ + *-*-unixware7*) add_dir="-L$dir" ;; + *-*-darwin* ) + # if the lib is a module then we can not link against + # it, someone is ignoring the new warnings I added + if /usr/bin/file -L $add 2> /dev/null | + $EGREP ": [^:]* bundle" >/dev/null ; then + $echo "** Warning, lib $linklib is a module, not a shared library" + if test -z "$old_library" ; then + $echo + $echo "** And there doesn't seem to be a static archive available" + $echo "** The link will probably fail, sorry" + else + add="$dir/$old_library" + fi + fi + esac + elif test "$hardcode_minus_L" = no; then + case $host in + *-*-sunos*) add_shlibpath="$dir" ;; + esac + add_dir="-L$dir" + add="-l$name" + elif test "$hardcode_shlibpath_var" = no; then + add_shlibpath="$dir" + add="-l$name" + else + lib_linked=no + fi + ;; + relink) + if test "$hardcode_direct" = yes; then + add="$dir/$linklib" + elif test "$hardcode_minus_L" = yes; then + add_dir="-L$dir" + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + add_dir="$add_dir -L$inst_prefix_dir$libdir" + ;; + esac + fi + add="-l$name" + elif test "$hardcode_shlibpath_var" = yes; then + add_shlibpath="$dir" + add="-l$name" + else + lib_linked=no + fi + ;; + *) lib_linked=no ;; + esac + + if test "$lib_linked" != yes; then + $echo "$modename: configuration error: unsupported hardcode properties" + exit $EXIT_FAILURE + fi + + if test -n "$add_shlibpath"; then + case :$compile_shlibpath: in + *":$add_shlibpath:"*) ;; + *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; + esac + fi + if test "$linkmode" = prog; then + test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" + test -n "$add" && compile_deplibs="$add $compile_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + if test "$hardcode_direct" != yes && \ + test "$hardcode_minus_L" != yes && \ + test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; + esac + fi + fi + fi + + if test "$linkmode" = prog || test "$mode" = relink; then + add_shlibpath= + add_dir= + add= + # Finalize command for both is simple: just hardcode it. + if test "$hardcode_direct" = yes; then + add="$libdir/$linklib" + elif test "$hardcode_minus_L" = yes; then + add_dir="-L$libdir" + add="-l$name" + elif test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; + esac + add="-l$name" + elif test "$hardcode_automatic" = yes; then + if test -n "$inst_prefix_dir" && + test -f "$inst_prefix_dir$libdir/$linklib" ; then + add="$inst_prefix_dir$libdir/$linklib" + else + add="$libdir/$linklib" + fi + else + # We cannot seem to hardcode it, guess we'll fake it. + add_dir="-L$libdir" + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + add_dir="$add_dir -L$inst_prefix_dir$libdir" + ;; + esac + fi + add="-l$name" + fi + + if test "$linkmode" = prog; then + test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" + test -n "$add" && finalize_deplibs="$add $finalize_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + fi + fi + elif test "$linkmode" = prog; then + # Here we assume that one of hardcode_direct or hardcode_minus_L + # is not unsupported. This is valid on all known static and + # shared platforms. + if test "$hardcode_direct" != unsupported; then + test -n "$old_library" && linklib="$old_library" + compile_deplibs="$dir/$linklib $compile_deplibs" + finalize_deplibs="$dir/$linklib $finalize_deplibs" + else + compile_deplibs="-l$name -L$dir $compile_deplibs" + finalize_deplibs="-l$name -L$dir $finalize_deplibs" + fi + elif test "$build_libtool_libs" = yes; then + # Not a shared library + if test "$deplibs_check_method" != pass_all; then + # We're trying link a shared library against a static one + # but the system doesn't support it. + diff --git a/tests/examplefiles/bash/ltmain.sh.output b/tests/examplefiles/bash/ltmain.sh.output new file mode 100644 index 00000000000..dde06906c73 --- /dev/null +++ b/tests/examplefiles/bash/ltmain.sh.output @@ -0,0 +1,17757 @@ +'# ltmain.sh - Provide generalized library-building support services.\n' Comment.Single + +'# NOTE: Changing this file will not affect anything until you rerun configure.\n' Comment.Single + +'#\n' Comment.Single + +'# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005\n' Comment.Single + +'# Free Software Foundation, Inc.\n' Comment.Single + +'# Originally by Gordon Matzigkeit , 1996\n' Comment.Single + +'#\n' Comment.Single + +'# This program is free software; you can redistribute it and/or modify\n' Comment.Single + +'# it under the terms of the GNU General Public License as published by\n' Comment.Single + +'# the Free Software Foundation; either version 2 of the License, or\n' Comment.Single + +'# (at your option) any later version.\n' Comment.Single + +'#\n' Comment.Single + +'# This program is distributed in the hope that it will be useful, but\n' Comment.Single + +'# WITHOUT ANY WARRANTY; without even the implied warranty of\n' Comment.Single + +'# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n' Comment.Single + +'# General Public License for more details.\n' Comment.Single + +'#\n' Comment.Single + +'# You should have received a copy of the GNU General Public License\n' Comment.Single + +'# along with this program; if not, write to the Free Software\n' Comment.Single + +'# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n' Comment.Single + +'#\n' Comment.Single + +'# As a special exception to the GNU General Public License, if you\n' Comment.Single + +'# distribute this file as part of a program that contains a\n' Comment.Single + +'# configuration script generated by Autoconf, you may include it under\n' Comment.Single + +'# the same distribution terms that you use for the rest of that program.\n' Comment.Single + +'\n' Text + +'basename' Name.Variable +'=' Operator +'"s,^.*/,,g"' Literal.String.Double +'\n\n' Text + +'# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh\n' Comment.Single + +'# is ksh but when the shell is invoked as "sh" and the current value of\n' Comment.Single + +'# the _XPG environment variable is not equal to 1 (one), the special\n' Comment.Single + +'# positional parameter $0, within a function call, is the name of the\n' Comment.Single + +'# function.\n' Comment.Single + +'progpath' Name.Variable +'=' Operator +'"' Literal.String.Double +'$0' Name.Variable +'"' Literal.String.Double +'\n\n' Text + +"# define SED for historic ltconfig's generated by Libtool 1.3\n" Comment.Single + +'test' Name.Builtin +' ' Text +'-z' Text +' ' Text +'"' Literal.String.Double +'$SED' Name.Variable +'"' Literal.String.Double +' ' Text +'&&' Operator +' ' Text +'SED' Name.Variable +'=' Operator +'sed' Text +'\n\n' Text + +'# The name of this program:\n' Comment.Single + +'progname' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'echo' Name.Builtin +' ' Text +'"' Literal.String.Double +'$progpath' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$SED' Name.Variable +' ' Text +'$basename' Name.Variable +'`' Literal.String.Backtick +'\n' Text + +'modename' Name.Variable +'=' Operator +'"' Literal.String.Double +'$progname' Name.Variable +'"' Literal.String.Double +'\n\n' Text + +'# Global variables:\n' Comment.Single + +'EXIT_SUCCESS' Name.Variable +'=' Operator +'0' Literal.Number +'\n' Text + +'EXIT_FAILURE' Name.Variable +'=' Operator +'1' Literal.Number +'\n\n' Text + +'PROGRAM' Name.Variable +'=' Operator +'ltmain.sh' Text +'\n' Text + +'PACKAGE' Name.Variable +'=' Operator +'libtool' Text +'\n' Text + +'VERSION' Name.Variable +'=' Operator +'1' Literal.Number +'.5.22' Text +'\n' Text + +'TIMESTAMP' Name.Variable +'=' Operator +'" (1.1220.2.365 2005/12/18 22:14:06)"' Literal.String.Double +'\n\n' Text + +'# See if we are running on zsh, and set the options which allow our\n' Comment.Single + +'# commands through without removal of \\ escapes.\n' Comment.Single + +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'${' Literal.String.Interpol +'ZSH_VERSION' Name.Variable +'+set' Punctuation +'}' Literal.String.Interpol +'"' Literal.String.Double +' ' Text +';' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'setopt' Text +' ' Text +'NO_GLOB_SUBST' Text +'\n' Text + +'fi' Keyword +'\n' Text + +'# Same for EGREP, and just to be sure, do LTCC as well\n' Comment.Single + +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$EGREP' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'X' Text +' ' Text +';' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'EGREP' Name.Variable +'=' Operator +'egrep' Text +'\n' Text + +'fi' Keyword +'\n' Text + +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$LTCC' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'X' Text +' ' Text +';' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'LTCC' Name.Variable +'=' Operator +'${' Literal.String.Interpol +'CC' Name.Variable +'-gcc' Punctuation +'}' Literal.String.Interpol +'\n' Text + +'fi' Keyword +'\n\n' Text + +'# Check that we have a working $echo.\n' Comment.Single + +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$1' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'X--no-reexec' Text +';' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'# Discard the --no-reexec flag, and continue.\n' Comment.Single + +' ' Text +'shift' Name.Builtin +'\n' Text + +'elif' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$1' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'X--fallback-echo' Text +';' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'# Avoid inline document here, it may be left over\n' Comment.Single + +' ' Text +':' Text +'\n' Text + +'elif' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'X`(' Literal.String.Double +'$echo' Name.Variable +" '\\t') 2>/dev/null`" Literal.String.Double +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +"'X\\t'" Literal.String.Single +';' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'# Yippee, $echo works!\n' Comment.Single + +' ' Text +':' Text +'\n' Text + +'else' Keyword +'\n ' Text +'# Restart under the correct shell, and then maybe $echo will work.\n' Comment.Single + +' ' Text +'exec' Name.Builtin +' ' Text +'$SHELL' Name.Variable +' ' Text +'"' Literal.String.Double +'$progpath' Name.Variable +'"' Literal.String.Double +' ' Text +'--no-reexec' Text +' ' Text +'${' Literal.String.Interpol +'1' Name.Variable +'+' Punctuation +'"' Literal.String.Double +'$@' Name.Variable +'"' Literal.String.Double +'}' Literal.String.Interpol +'\n' Text + +'fi' Keyword +'\n\n' Text + +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$1' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'X--fallback-echo' Text +';' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'# used as fallback echo\n' Comment.Single + +' ' Text +'shift' Name.Builtin +'\n ' Text +'cat' Text +' ' Text +'<' Text +'&' Punctuation +'2' Literal.Number +'\n ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'Fatal configuration error. See the ' Literal.String.Double +'$PACKAGE' Name.Variable +' docs for more information.' Literal.String.Double +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n ' Text +'exit' Name.Builtin +' ' Text +'$EXIT_FAILURE' Name.Variable +'\n' Text + +'fi' Keyword +'\n\n' Text + +'# Global variables.\n' Comment.Single + +'mode' Name.Variable +'=' Operator +'$default_mode' Name.Variable +'\n' Text + +'nonopt' Name.Variable +'=' Operator +'\n' Text + +'prev' Name.Variable +'=' Operator +'\n' Text + +'prevopt' Name.Variable +'=' Operator +'\n' Text + +'run' Name.Variable +'=' Operator +'\n' Text + +'show' Name.Variable +'=' Operator +'"' Literal.String.Double +'$echo' Name.Variable +'"' Literal.String.Double +'\n' Text + +'show_help' Name.Variable +'=' Operator +'\n' Text + +'execute_dlfiles' Name.Variable +'=' Operator +'\n' Text + +'duplicate_deps' Name.Variable +'=' Operator +'no' Text +'\n' Text + +'preserve_args' Name.Variable +'=' Operator +'\n' Text + +'lo2o' Name.Variable +'=' Operator +'"' Literal.String.Double +'s/\\\\.lo\\$/.' Literal.String.Double +'${' Literal.String.Interpol +'objext' Name.Variable +'}' Literal.String.Interpol +'/' Literal.String.Double +'"' Literal.String.Double +'\n' Text + +'o2lo' Name.Variable +'=' Operator +'"' Literal.String.Double +'s/\\\\.' Literal.String.Double +'${' Literal.String.Interpol +'objext' Name.Variable +'}' Literal.String.Interpol +'\\$/.lo/' Literal.String.Double +'"' Literal.String.Double +'\n\n' Text + +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-z' Text +' ' Text +'"' Literal.String.Double +'$max_cmd_len' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'i' Name.Variable +'=' Operator +'0' Literal.Number +'\n ' Text +'testring' Name.Variable +'=' Operator +'"ABCD"' Literal.String.Double +'\n ' Text +'new_result' Name.Variable +'=' Operator +'\n \n ' Text +"# If test is not a shell built-in, we'll probably end up computing a\n" Comment.Single + +' ' Text +'# maximum length that is only half of the actual maximum length, but\n' Comment.Single + +' ' Text +"# we can't tell.\n" Comment.Single + +' ' Text +'while' Keyword +' ' Text +'(' Operator +'test' Name.Builtin +' ' Text +'"X"' Literal.String.Double +'`' Literal.String.Backtick +'$SHELL' Name.Variable +' ' Text +'$0' Name.Variable +' ' Text +'--fallback-echo' Text +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$testring' Name.Variable +'"' Literal.String.Double +' ' Text +'2' Literal.Number +'>/dev/null' Text +'`' Literal.String.Backtick +' ' Text +'\\\n' Literal.String.Escape + +' ' Text +'=' Operator +' ' Text +'"' Literal.String.Double +'XX' Literal.String.Double +'$testring' Name.Variable +'"' Literal.String.Double +')' Operator +' ' Text +'>/dev/null' Text +' ' Text +'2' Literal.Number +'>' Text +'&' Punctuation +'1' Literal.Number +' ' Text +'&&' Operator +'\n ' Text +'new_result' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'expr' Text +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$testring' Name.Variable +'"' Literal.String.Double +' ' Text +':' Text +' ' Text +'".*"' Literal.String.Double +' ' Text +'2' Literal.Number +'>' Text +'&' Punctuation +'1' Literal.Number +'`' Literal.String.Backtick +' ' Text +'&&' Operator +'\n ' Text +'max_cmd_len' Name.Variable +'=' Operator +'"' Literal.String.Double +'$new_result' Name.Variable +'"' Literal.String.Double +' ' Text +'&&' Operator +'\n ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$i' Name.Variable +'"' Literal.String.Double +' ' Text +'!' Text +'=' Operator +' ' Text +'17' Literal.Number +' ' Text +'# 1/2 MB should be enough\n' Comment.Single + +' ' Text +'do' Keyword +'\n ' Text +'i' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'expr' Text +' ' Text +'$i' Name.Variable +' ' Text +'+' Text +' ' Text +'1' Literal.Number +'`' Literal.String.Backtick +'\n ' Text +'testring' Name.Variable +'=' Operator +'"' Literal.String.Double +'$testring' Name.Variable +'$testring' Name.Variable +'"' Literal.String.Double +'\n ' Text +'done' Keyword +'\n ' Text +'testring' Name.Variable +'=' Operator +'\n ' Text +'# Add a significant safety factor because C++ compilers can tack on massive\n' Comment.Single + +' ' Text +'# amounts of additional arguments before passing them to the linker.\n' Comment.Single + +' ' Text +'# It appears as though 1/2 is a usable value.\n' Comment.Single + +' ' Text +'max_cmd_len' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'expr' Text +' ' Text +'$max_cmd_len' Name.Variable +' ' Text +'\\/' Literal.String.Escape +' ' Text +'2' Literal.Number +'`' Literal.String.Backtick +'\n' Text + +'fi' Keyword +'\n\n' Text + +'#####################################\n' Comment.Single + +'# Shell function definitions:\n' Comment.Single + +'# This seems to be the best place for them\n' Comment.Single + +'\n' Text + +'# func_mktempdir [string]\n' Comment.Single + +"# Make a temporary directory that won't clash with other running\n" Comment.Single + +'# libtool processes, and avoids race conditions if possible. If\n' Comment.Single + +'# given, STRING is the basename for that directory.\n' Comment.Single + +'func_mktempdir' Text +' ' Text +'(' Operator +')' Operator +'\n' Text + +'{' Operator +'\n ' Text +'my_template' Name.Variable +'=' Operator +'"' Literal.String.Double +'${' Literal.String.Interpol +'TMPDIR' Name.Variable +'-/tmp' Punctuation +'}' Literal.String.Interpol +'/' Literal.String.Double +'${' Literal.String.Interpol +'1' Name.Variable +'-' Punctuation +'$progname' Name.Variable +'}' Literal.String.Interpol +'"' Literal.String.Double +'\n\n ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$run' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'":"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n ' Text +"# Return a directory name, but don't create it in dry-run mode\n" Comment.Single + +' ' Text +'my_tmpdir' Name.Variable +'=' Operator +'"' Literal.String.Double +'${' Literal.String.Interpol +'my_template' Name.Variable +'}' Literal.String.Interpol +'-' Literal.String.Double +'$$' Name.Variable +'"' Literal.String.Double +'\n ' Text +'else' Keyword +'\n\n ' Text +'# If mktemp works, use that first and foremost\n' Comment.Single + +' ' Text +'my_tmpdir' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'mktemp' Text +' ' Text +'-d' Text +' ' Text +'"' Literal.String.Double +'${' Literal.String.Interpol +'my_template' Name.Variable +'}' Literal.String.Interpol +'-XXXXXXXX' Literal.String.Double +'"' Literal.String.Double +' ' Text +'2' Literal.Number +'>/dev/null' Text +'`' Literal.String.Backtick +'\n\n ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'!' Text +' ' Text +'-d' Text +' ' Text +'"' Literal.String.Double +'$my_tmpdir' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t' Text +'# Failing that, at least try and use $RANDOM to avoid a race\n' Comment.Single + +'\t' Text +'my_tmpdir' Name.Variable +'=' Operator +'"' Literal.String.Double +'${' Literal.String.Interpol +'my_template' Name.Variable +'}' Literal.String.Interpol +'-' Literal.String.Double +'${' Literal.String.Interpol +'RANDOM' Name.Variable +'-0' Punctuation +'}' Literal.String.Interpol +'$$' Name.Variable +'"' Literal.String.Double +'\n\n\t' Text +'save_mktempdir_umask' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'umask' Name.Builtin +'`' Literal.String.Backtick +'\n\t' Text +'umask' Name.Builtin +' ' Text +'0077' Literal.Number +'\n\t' Text +'$mkdir' Name.Variable +' ' Text +'"' Literal.String.Double +'$my_tmpdir' Name.Variable +'"' Literal.String.Double +'\n\t' Text +'umask' Name.Builtin +' ' Text +'$save_mktempdir_umask' Name.Variable +'\n ' Text +'fi' Keyword +'\n\n ' Text +"# If we're not in dry-run mode, bomb out on failure\n" Comment.Single + +' ' Text +'test' Name.Builtin +' ' Text +'-d' Text +' ' Text +'"' Literal.String.Double +'$my_tmpdir' Name.Variable +'"' Literal.String.Double +' ' Text +'||' Operator +' ' Text +'{' Operator +'\n ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'cannot create temporary directory \\`' Literal.String.Double +'$my_tmpdir' Name.Variable +"'" Literal.String.Double +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n\t' Text +'exit' Name.Builtin +' ' Text +'$EXIT_FAILURE' Name.Variable +'\n ' Text +'}' Operator +'\n ' Text +'fi' Keyword +'\n\n ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$my_tmpdir' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +'\n' Text + +'}' Operator +'\n\n\n' Text + +'# func_win32_libid arg\n' Comment.Single + +"# return the library type of file 'arg'\n" Comment.Single + +'#\n' Comment.Single + +'# Need a lot of goo to handle *both* DLLs and import libs\n' Comment.Single + +"# Has to be a shell function in order to 'eat' the argument\n" Comment.Single + +'# that is supplied when $file_magic_command is called.\n' Comment.Single + +'func_win32_libid' Text +' ' Text +'(' Operator +')' Operator +'\n' Text + +'{' Operator +'\n ' Text +'win32_libid_type' Name.Variable +'=' Operator +'"unknown"' Literal.String.Double +'\n ' Text +'win32_fileres' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'file' Text +' ' Text +'-L' Text +' ' Text +'$1' Name.Variable +' ' Text +'2' Literal.Number +'>/dev/null' Text +'`' Literal.String.Backtick +'\n ' Text +'case' Keyword +' ' Text +'$win32_fileres' Name.Variable +' ' Text +'in' Keyword +'\n ' Text +'*ar' Text +'\\ ' Literal.String.Escape +'archive' Text +'\\ ' Literal.String.Escape +'import' Text +'\\ ' Literal.String.Escape +'library*' Text +')' Operator +' ' Text +'# definitely import\n' Comment.Single + +' ' Text +'win32_libid_type' Name.Variable +'=' Operator +'"x86 archive import"' Literal.String.Double +'\n ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'*ar' Text +'\\ ' Literal.String.Escape +'archive*' Text +')' Operator +' ' Text +'# could be an import, or static\n' Comment.Single + +' ' Text +'if' Keyword +' ' Text +'eval' Name.Builtin +' ' Text +'$OBJDUMP' Name.Variable +' ' Text +'-f' Text +' ' Text +'$1' Name.Variable +' ' Text +'|' Punctuation +' ' Text +'$SED' Name.Variable +' ' Text +'-e' Text +' ' Text +"'10q'" Literal.String.Single +' ' Text +'2' Literal.Number +'>/dev/null' Text +' ' Text +'|' Punctuation +' ' Text +'\\\n' Literal.String.Escape + +' ' Text +'$EGREP' Name.Variable +' ' Text +'-e' Text +' ' Text +"'file format pe-i386(.*architecture: i386)?'" Literal.String.Single +' ' Text +'>/dev/null' Text +' ' Text +';' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'win32_nmres' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'eval' Name.Builtin +' ' Text +'$NM' Name.Variable +' ' Text +'-f' Text +' ' Text +'posix' Text +' ' Text +'-A' Text +' ' Text +'$1' Name.Variable +' ' Text +'|' Punctuation +' ' Text +'\\\n' Literal.String.Escape + +'\t' Text +'$SED' Name.Variable +' ' Text +'-n' Text +' ' Text +'-e' Text +' ' Text +"'1,100{/ I /{s,.*,import,;p;q;};}'" Literal.String.Single +'`' Literal.String.Backtick +'\n ' Text +'case' Keyword +' ' Text +'$win32_nmres' Name.Variable +' ' Text +'in' Keyword +'\n ' Text +'import*' Text +')' Operator +' ' Text +'win32_libid_type' Name.Variable +'=' Operator +'"x86 archive import"' Literal.String.Double +';' Punctuation +';' Punctuation +'\n ' Text +'*' Text +')' Operator +' ' Text +'win32_libid_type' Name.Variable +'=' Operator +'"x86 archive static"' Literal.String.Double +';' Punctuation +';' Punctuation +'\n ' Text +'esac' Keyword +'\n ' Text +'fi' Keyword +'\n ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'*DLL*' Text +')' Operator +'\n ' Text +'win32_libid_type' Name.Variable +'=' Operator +'"x86 DLL"' Literal.String.Double +'\n ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'*executable*' Text +')' Operator +' ' Text +'# but shell scripts are "executable" too...\n' Comment.Single + +' ' Text +'case' Keyword +' ' Text +'$win32_fileres' Name.Variable +' ' Text +'in' Keyword +'\n ' Text +'*MS' Text +'\\ ' Literal.String.Escape +'Windows' Text +'\\ ' Literal.String.Escape +'PE' Text +'\\ ' Literal.String.Escape +'Intel*' Text +')' Operator +'\n ' Text +'win32_libid_type' Name.Variable +'=' Operator +'"x86 DLL"' Literal.String.Double +'\n ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'esac' Keyword +'\n ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'esac' Keyword +'\n ' Text +'$echo' Name.Variable +' ' Text +'$win32_libid_type' Name.Variable +'\n' Text + +'}' Operator +'\n\n\n' Text + +'# func_infer_tag arg\n' Comment.Single + +'# Infer tagged configuration to use if any are available and\n' Comment.Single + +'# if one wasn\'t chosen via the "--tag" command line option.\n' Comment.Single + +'# Only attempt this if the compiler in the base compile\n' Comment.Single + +"# command doesn't match the default compiler.\n" Comment.Single + +"# arg is usually of the form 'gcc ...'\n" Comment.Single + +'func_infer_tag' Text +' ' Text +'(' Operator +')' Operator +'\n' Text + +'{' Operator +'\n ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$available_tags' Name.Variable +'"' Literal.String.Double +' ' Text +'&&' Operator +' ' Text +'test' Name.Builtin +' ' Text +'-z' Text +' ' Text +'"' Literal.String.Double +'$tagname' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'CC_quoted' Name.Variable +'=' Operator +'\n ' Text +'for' Keyword +' ' Text +'arg' Text +' ' Text +'in' Keyword +' ' Text +'$CC' Name.Variable +';' Punctuation +' ' Text +'do' Keyword +'\n\t' Text +'case' Keyword +' ' Text +'$arg' Name.Variable +' ' Text +'in' Keyword +'\n\t ' Text +'*' Text +'[' Operator +'\\[' Literal.String.Escape +'\\~' Literal.String.Escape +'\\#' Literal.String.Escape +'\\^' Literal.String.Escape +'\\&' Literal.String.Escape +'\\*' Literal.String.Escape +'\\(' Literal.String.Escape +'\\)' Literal.String.Escape +'\\{' Literal.String.Escape +'\\}' Literal.String.Escape +'\\|' Literal.String.Escape +'\\;' Literal.String.Escape +'\\<' Literal.String.Escape +'\\>' Literal.String.Escape +'\\?' Literal.String.Escape +"\\'" Literal.String.Escape +'\\ ' Literal.String.Escape +'\\\t' Literal.String.Escape +']' Operator +'*' Text +'|' Punctuation +'*' Text +']' Operator +'*' Text +'|' Punctuation +'""' Literal.String.Double +')' Operator +'\n\t ' Text +'arg' Name.Variable +'=' Operator +'"' Literal.String.Double +'\\"' Literal.String.Double +'$arg' Name.Variable +'\\"' Literal.String.Double +'"' Literal.String.Double +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'esac' Keyword +'\n\t' Text +'CC_quoted' Name.Variable +'=' Operator +'"' Literal.String.Double +'$CC_quoted' Name.Variable +' ' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n ' Text +'done' Keyword +'\n ' Text +'case' Keyword +' ' Text +'$@' Name.Variable +' ' Text +'in' Keyword +'\n ' Text +'# Blanks in the command may have been stripped by the calling shell,\n' Comment.Single + +' ' Text +'# but not from the CC environment variable when configure was run.\n' Comment.Single + +' ' Text +'"' Literal.String.Double +' ' Literal.String.Double +'$CC' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +'*' Text +' ' Text +'|' Punctuation +' ' Text +'"' Literal.String.Double +'$CC' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +'*' Text +' ' Text +'|' Punctuation +' ' Text +'"' Literal.String.Double +' `' Literal.String.Double +'$echo' Name.Variable +' ' Literal.String.Double +'$CC' Name.Variable +'` ' Literal.String.Double +'"' Literal.String.Double +'*' Text +' ' Text +'|' Punctuation +' ' Text +'"' Literal.String.Double +'`' Literal.String.Double +'$echo' Name.Variable +' ' Literal.String.Double +'$CC' Name.Variable +'` ' Literal.String.Double +'"' Literal.String.Double +'*' Text +' ' Text +'|' Punctuation +' ' Text +'"' Literal.String.Double +' ' Literal.String.Double +'$CC_quoted' Name.Variable +'"' Literal.String.Double +'*' Text +' ' Text +'|' Punctuation +' ' Text +'"' Literal.String.Double +'$CC_quoted' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +'*' Text +' ' Text +'|' Punctuation +' ' Text +'"' Literal.String.Double +' `' Literal.String.Double +'$echo' Name.Variable +' ' Literal.String.Double +'$CC_quoted' Name.Variable +'` ' Literal.String.Double +'"' Literal.String.Double +'*' Text +' ' Text +'|' Punctuation +' ' Text +'"' Literal.String.Double +'`' Literal.String.Double +'$echo' Name.Variable +' ' Literal.String.Double +'$CC_quoted' Name.Variable +'` ' Literal.String.Double +'"' Literal.String.Double +'*' Text +')' Operator +' ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'# Blanks at the start of $base_compile will cause this to fail\n' Comment.Single + +' ' Text +"# if we don't check for them as well.\n" Comment.Single + +' ' Text +'*' Text +')' Operator +'\n\t' Text +'for' Keyword +' ' Text +'z' Text +' ' Text +'in' Keyword +' ' Text +'$available_tags' Name.Variable +';' Punctuation +' ' Text +'do' Keyword +'\n\t ' Text +'if' Keyword +' ' Text +'grep' Text +' ' Text +'"' Literal.String.Double +'^# ### BEGIN LIBTOOL TAG CONFIG: ' Literal.String.Double +'$z' Name.Variable +'$' Text +'"' Literal.String.Double +' ' Text +'<' Text +' ' Text +'"' Literal.String.Double +'$progpath' Name.Variable +'"' Literal.String.Double +' ' Text +'>' Text +' ' Text +'/dev/null' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'# Evaluate the configuration.\n' Comment.Single + +'\t ' Text +'eval' Name.Builtin +' ' Text +'"' Literal.String.Double +'`' Literal.String.Double +'${' Literal.String.Interpol +'SED' Name.Variable +'}' Literal.String.Interpol +" -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '" Literal.String.Double +'$z' Name.Variable +"'" Literal.String.Double +'$' Text +"/,/^# ### END LIBTOOL TAG CONFIG: '" Literal.String.Double +'$z' Name.Variable +"'" Literal.String.Double +'$' Text +"/p' < " Literal.String.Double +'$progpath' Name.Variable +'`' Literal.String.Double +'"' Literal.String.Double +'\n\t ' Text +'CC_quoted' Name.Variable +'=' Operator +'\n\t ' Text +'for' Keyword +' ' Text +'arg' Text +' ' Text +'in' Keyword +' ' Text +'$CC' Name.Variable +';' Punctuation +' ' Text +'do' Keyword +'\n\t ' Text +'# Double-quote args containing other shell metacharacters.\n' Comment.Single + +'\t ' Text +'case' Keyword +' ' Text +'$arg' Name.Variable +' ' Text +'in' Keyword +'\n\t ' Text +'*' Text +'[' Operator +'\\[' Literal.String.Escape +'\\~' Literal.String.Escape +'\\#' Literal.String.Escape +'\\^' Literal.String.Escape +'\\&' Literal.String.Escape +'\\*' Literal.String.Escape +'\\(' Literal.String.Escape +'\\)' Literal.String.Escape +'\\{' Literal.String.Escape +'\\}' Literal.String.Escape +'\\|' Literal.String.Escape +'\\;' Literal.String.Escape +'\\<' Literal.String.Escape +'\\>' Literal.String.Escape +'\\?' Literal.String.Escape +"\\'" Literal.String.Escape +'\\ ' Literal.String.Escape +'\\\t' Literal.String.Escape +']' Operator +'*' Text +'|' Punctuation +'*' Text +']' Operator +'*' Text +'|' Punctuation +'""' Literal.String.Double +')' Operator +'\n\t ' Text +'arg' Name.Variable +'=' Operator +'"' Literal.String.Double +'\\"' Literal.String.Double +'$arg' Name.Variable +'\\"' Literal.String.Double +'"' Literal.String.Double +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'esac' Keyword +'\n\t ' Text +'CC_quoted' Name.Variable +'=' Operator +'"' Literal.String.Double +'$CC_quoted' Name.Variable +' ' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'done' Keyword +'\n\t ' Text +"# user sometimes does CC=-gcc so we need to match that to 'gcc'\n" Comment.Single + +'\t ' Text +'trimedcc' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'echo' Name.Builtin +' ' Text +'${' Literal.String.Interpol +'CC' Name.Variable +'}' Literal.String.Interpol +' ' Text +'|' Punctuation +' ' Text +'$SED' Name.Variable +' ' Text +'-e' Text +' ' Text +'"' Literal.String.Double +'s/' Literal.String.Double +'${' Literal.String.Interpol +'host' Name.Variable +'}' Literal.String.Interpol +'-//g' Literal.String.Double +'"' Literal.String.Double +'`' Literal.String.Backtick +'\n\t ' Text +'# and sometimes libtool has CC=-gcc but user does CC=gcc\n' Comment.Single + +'\t ' Text +'extendcc' Name.Variable +'=' Operator +'${' Literal.String.Interpol +'host' Name.Variable +'}' Literal.String.Interpol +'-' Text +'${' Literal.String.Interpol +'CC' Name.Variable +'}' Literal.String.Interpol +'\n\t ' Text +'# and sometimes libtool has CC=-gcc but user has CC=-gcc \n' Comment.Single + +'\t ' Text +'# (Gentoo-specific hack because we always export $CHOST)\n' Comment.Single + +'\t ' Text +'mungedcc' Name.Variable +'=' Operator +'${' Literal.String.Interpol +'CHOST' Name.Variable +'-' Punctuation +'${' Literal.String.Interpol +'host' Name.Variable +'}' Literal.String.Interpol +'}' Literal.String.Interpol +'-' Text +'${' Literal.String.Interpol +'trimedcc' Name.Variable +'}' Literal.String.Interpol +'\n\t ' Text +'case' Keyword +' ' Text +'"' Literal.String.Double +'$@' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +' ' Text +'in' Keyword +'\n\t ' Text +'"cc "' Literal.String.Double +'*' Text +' ' Text +'|' Punctuation +' ' Text +'" cc "' Literal.String.Double +'*' Text +' ' Text +'|' Punctuation +' ' Text +'"' Literal.String.Double +'${' Literal.String.Interpol +'host' Name.Variable +'}' Literal.String.Interpol +'-cc ' Literal.String.Double +'"' Literal.String.Double +'*' Text +' ' Text +'|' Punctuation +' ' Text +'"' Literal.String.Double +' ' Literal.String.Double +'${' Literal.String.Interpol +'host' Name.Variable +'}' Literal.String.Interpol +'-cc ' Literal.String.Double +'"' Literal.String.Double +'*' Text +'|' Punctuation +'\\\n' Literal.String.Escape + +'\t ' Text +'"gcc "' Literal.String.Double +'*' Text +' ' Text +'|' Punctuation +' ' Text +'" gcc "' Literal.String.Double +'*' Text +' ' Text +'|' Punctuation +' ' Text +'"' Literal.String.Double +'${' Literal.String.Interpol +'host' Name.Variable +'}' Literal.String.Interpol +'-gcc ' Literal.String.Double +'"' Literal.String.Double +'*' Text +' ' Text +'|' Punctuation +' ' Text +'"' Literal.String.Double +' ' Literal.String.Double +'${' Literal.String.Interpol +'host' Name.Variable +'}' Literal.String.Interpol +'-gcc ' Literal.String.Double +'"' Literal.String.Double +'*' Text +')' Operator +'\n\t ' Text +'tagname' Name.Variable +'=' Operator +'CC' Text +'\n\t ' Text +'break' Name.Builtin +' ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'"' Literal.String.Double +'$trimedcc' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +'*' Text +' ' Text +'|' Punctuation +' ' Text +'"' Literal.String.Double +' ' Literal.String.Double +'$trimedcc' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +'*' Text +' ' Text +'|' Punctuation +' ' Text +'"' Literal.String.Double +'`' Literal.String.Double +'$echo' Name.Variable +' ' Literal.String.Double +'$trimedcc' Name.Variable +'` ' Literal.String.Double +'"' Literal.String.Double +'*' Text +' ' Text +'|' Punctuation +' ' Text +'"' Literal.String.Double +' `' Literal.String.Double +'$echo' Name.Variable +' ' Literal.String.Double +'$trimedcc' Name.Variable +'` ' Literal.String.Double +'"' Literal.String.Double +'*' Text +'|' Punctuation +'\\\n' Literal.String.Escape + +'\t ' Text +'"' Literal.String.Double +'$extendcc' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +'*' Text +' ' Text +'|' Punctuation +' ' Text +'"' Literal.String.Double +' ' Literal.String.Double +'$extendcc' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +'*' Text +' ' Text +'|' Punctuation +' ' Text +'"' Literal.String.Double +'`' Literal.String.Double +'$echo' Name.Variable +' ' Literal.String.Double +'$extendcc' Name.Variable +'` ' Literal.String.Double +'"' Literal.String.Double +'*' Text +' ' Text +'|' Punctuation +' ' Text +'"' Literal.String.Double +' `' Literal.String.Double +'$echo' Name.Variable +' ' Literal.String.Double +'$extendcc' Name.Variable +'` ' Literal.String.Double +'"' Literal.String.Double +'*' Text +'|' Punctuation +'\\\n' Literal.String.Escape + +'\t ' Text +'"' Literal.String.Double +'$mungedcc' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +'*' Text +' ' Text +'|' Punctuation +' ' Text +'"' Literal.String.Double +' ' Literal.String.Double +'$mungedcc' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +'*' Text +' ' Text +'|' Punctuation +' ' Text +'"' Literal.String.Double +'`' Literal.String.Double +'$echo' Name.Variable +' ' Literal.String.Double +'$mungedcc' Name.Variable +'` ' Literal.String.Double +'"' Literal.String.Double +'*' Text +' ' Text +'|' Punctuation +' ' Text +'"' Literal.String.Double +' `' Literal.String.Double +'$echo' Name.Variable +' ' Literal.String.Double +'$mungedcc' Name.Variable +'` ' Literal.String.Double +'"' Literal.String.Double +'*' Text +'|' Punctuation +'\\\n' Literal.String.Escape + +'\t ' Text +'"' Literal.String.Double +' ' Literal.String.Double +'$CC' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +'*' Text +' ' Text +'|' Punctuation +' ' Text +'"' Literal.String.Double +'$CC' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +'*' Text +' ' Text +'|' Punctuation +' ' Text +'"' Literal.String.Double +' `' Literal.String.Double +'$echo' Name.Variable +' ' Literal.String.Double +'$CC' Name.Variable +'` ' Literal.String.Double +'"' Literal.String.Double +'*' Text +' ' Text +'|' Punctuation +' ' Text +'"' Literal.String.Double +'`' Literal.String.Double +'$echo' Name.Variable +' ' Literal.String.Double +'$CC' Name.Variable +'` ' Literal.String.Double +'"' Literal.String.Double +'*' Text +' ' Text +'|' Punctuation +' ' Text +'"' Literal.String.Double +' ' Literal.String.Double +'$CC_quoted' Name.Variable +'"' Literal.String.Double +'*' Text +' ' Text +'|' Punctuation +' ' Text +'"' Literal.String.Double +'$CC_quoted' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +'*' Text +' ' Text +'|' Punctuation +' ' Text +'"' Literal.String.Double +' `' Literal.String.Double +'$echo' Name.Variable +' ' Literal.String.Double +'$CC_quoted' Name.Variable +'` ' Literal.String.Double +'"' Literal.String.Double +'*' Text +' ' Text +'|' Punctuation +' ' Text +'"' Literal.String.Double +'`' Literal.String.Double +'$echo' Name.Variable +' ' Literal.String.Double +'$CC_quoted' Name.Variable +'` ' Literal.String.Double +'"' Literal.String.Double +'*' Text +')' Operator +'\n\t ' Text +'# The compiler in the base compile command matches\n' Comment.Single + +'\t ' Text +'# the one in the tagged configuration.\n' Comment.Single + +'\t ' Text +'# Assume this is the tagged configuration we want.\n' Comment.Single + +'\t ' Text +'tagname' Name.Variable +'=' Operator +'$z' Name.Variable +'\n\t ' Text +'break' Name.Builtin +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'esac' Keyword +'\n\t ' Text +'fi' Keyword +'\n\t' Text +'done' Keyword +'\n\t' Text +"# If $tagname still isn't set, then no tagged configuration\n" Comment.Single + +'\t' Text +'# was found and let the user know that the "--tag" command\n' Comment.Single + +'\t' Text +'# line option must be used.\n' Comment.Single + +'\t' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-z' Text +' ' Text +'"' Literal.String.Double +'$tagname' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$modename' Name.Variable +': unable to infer tagged configuration' Literal.String.Double +'"' Literal.String.Double +'\n\t ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$modename' Name.Variable +": specify a tag with \\`--tag'" Literal.String.Double +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n\t ' Text +'exit' Name.Builtin +' ' Text +'$EXIT_FAILURE' Name.Variable +'\n' Text + +'# else\n' Comment.Single + +'# $echo "$modename: using $tagname tagged configuration"\n' Comment.Single + +'\t' Text +'fi' Keyword +'\n\t' Text +';' Punctuation +';' Punctuation +'\n ' Text +'esac' Keyword +'\n ' Text +'fi' Keyword +'\n' Text + +'}' Operator +'\n\n\n' Text + +'# func_extract_an_archive dir oldlib\n' Comment.Single + +'func_extract_an_archive' Text +' ' Text +'(' Operator +')' Operator +'\n' Text + +'{' Operator +'\n ' Text +'f_ex_an_ar_dir' Name.Variable +'=' Operator +'"' Literal.String.Double +'$1' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'shift' Name.Builtin +'\n ' Text +'f_ex_an_ar_oldlib' Name.Variable +'=' Operator +'"' Literal.String.Double +'$1' Name.Variable +'"' Literal.String.Double +'\n\n ' Text +'$show' Name.Variable +' ' Text +'"' Literal.String.Double +'(cd ' Literal.String.Double +'$f_ex_an_ar_dir' Name.Variable +' && ' Literal.String.Double +'$AR' Name.Variable +' x ' Literal.String.Double +'$f_ex_an_ar_oldlib' Name.Variable +')' Literal.String.Double +'"' Literal.String.Double +'\n ' Text +'$run' Name.Variable +' ' Text +'eval' Name.Builtin +' ' Text +'"' Literal.String.Double +'(cd \\$f_ex_an_ar_dir && ' Literal.String.Double +'$AR' Name.Variable +' x \\$f_ex_an_ar_oldlib)' Literal.String.Double +'"' Literal.String.Double +' ' Text +'||' Operator +' ' Text +'exit' Name.Builtin +' ' Text +'$?' Name.Variable +'\n ' Text +'if' Keyword +' ' Text +'(' Operator +'$AR' Name.Variable +' ' Text +'t' Text +' ' Text +'"' Literal.String.Double +'$f_ex_an_ar_oldlib' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'sort' Text +' ' Text +'|' Punctuation +' ' Text +'sort' Text +' ' Text +'-uc' Text +' ' Text +'>/dev/null' Text +' ' Text +'2' Literal.Number +'>' Text +'&' Punctuation +'1' Literal.Number +')' Operator +';' Punctuation +' ' Text +'then' Keyword +'\n ' Text +':' Text +'\n ' Text +'else' Keyword +'\n ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$modename' Name.Variable +': ERROR: object name conflicts: ' Literal.String.Double +'$f_ex_an_ar_dir' Name.Variable +'/' Literal.String.Double +'$f_ex_an_ar_oldlib' Name.Variable +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n ' Text +'exit' Name.Builtin +' ' Text +'$EXIT_FAILURE' Name.Variable +'\n ' Text +'fi' Keyword +'\n' Text + +'}' Operator +'\n\n' Text + +'# func_extract_archives gentop oldlib ...\n' Comment.Single + +'func_extract_archives' Text +' ' Text +'(' Operator +')' Operator +'\n' Text + +'{' Operator +'\n ' Text +'my_gentop' Name.Variable +'=' Operator +'"' Literal.String.Double +'$1' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'shift' Name.Builtin +'\n ' Text +'my_oldlibs' Name.Variable +'=' Operator +'${' Literal.String.Interpol +'1' Name.Variable +'+' Punctuation +'"' Literal.String.Double +'$@' Name.Variable +'"' Literal.String.Double +'}' Literal.String.Interpol +'\n ' Text +'my_oldobjs' Name.Variable +'=' Operator +'""' Literal.String.Double +'\n ' Text +'my_xlib' Name.Variable +'=' Operator +'""' Literal.String.Double +'\n ' Text +'my_xabs' Name.Variable +'=' Operator +'""' Literal.String.Double +'\n ' Text +'my_xdir' Name.Variable +'=' Operator +'""' Literal.String.Double +'\n ' Text +'my_status' Name.Variable +'=' Operator +'""' Literal.String.Double +'\n\n ' Text +'$show' Name.Variable +' ' Text +'"' Literal.String.Double +'${' Literal.String.Interpol +'rm' Name.Variable +'}' Literal.String.Interpol +'r ' Literal.String.Double +'$my_gentop' Name.Variable +'"' Literal.String.Double +'\n ' Text +'$run' Name.Variable +' ' Text +'${' Literal.String.Interpol +'rm' Name.Variable +'}' Literal.String.Interpol +'r' Text +' ' Text +'"' Literal.String.Double +'$my_gentop' Name.Variable +'"' Literal.String.Double +'\n ' Text +'$show' Name.Variable +' ' Text +'"' Literal.String.Double +'$mkdir' Name.Variable +' ' Literal.String.Double +'$my_gentop' Name.Variable +'"' Literal.String.Double +'\n ' Text +'$run' Name.Variable +' ' Text +'$mkdir' Name.Variable +' ' Text +'"' Literal.String.Double +'$my_gentop' Name.Variable +'"' Literal.String.Double +'\n ' Text +'my_status' Name.Variable +'=' Operator +'$?' Name.Variable +'\n ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$my_status' Name.Variable +'"' Literal.String.Double +' ' Text +'-ne' Text +' ' Text +'0' Literal.Number +' ' Text +'&&' Operator +' ' Text +'test' Name.Builtin +' ' Text +'!' Text +' ' Text +'-d' Text +' ' Text +'"' Literal.String.Double +'$my_gentop' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'exit' Name.Builtin +' ' Text +'$my_status' Name.Variable +'\n ' Text +'fi' Keyword +'\n\n ' Text +'for' Keyword +' ' Text +'my_xlib' Text +' ' Text +'in' Keyword +' ' Text +'$my_oldlibs' Name.Variable +';' Punctuation +' ' Text +'do' Keyword +'\n ' Text +'# Extract the objects.\n' Comment.Single + +' ' Text +'case' Keyword +' ' Text +'$my_xlib' Name.Variable +' ' Text +'in' Keyword +'\n\t' Text +'[' Operator +'\\\\' Literal.String.Escape +'/' Text +']' Operator +'*' Text +' ' Text +'|' Punctuation +' ' Text +'[' Operator +'A-Za-z' Text +']' Operator +':' Text +'[' Operator +'\\\\' Literal.String.Escape +'/' Text +']' Operator +'*' Text +')' Operator +' ' Text +'my_xabs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$my_xlib' Name.Variable +'"' Literal.String.Double +' ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'*' Text +')' Operator +' ' Text +'my_xabs' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'pwd' Name.Builtin +'`' Literal.String.Backtick +'"' Literal.String.Double +'/' Literal.String.Double +'$my_xlib' Name.Variable +'"' Literal.String.Double +' ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'esac' Keyword +'\n ' Text +'my_xlib' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$my_xlib' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +' ' Text +'-e' Text +' ' Text +"'s%^.*/%%'" Literal.String.Single +'`' Literal.String.Backtick +'\n ' Text +'my_xdir' Name.Variable +'=' Operator +'"' Literal.String.Double +'$my_gentop' Name.Variable +'/' Literal.String.Double +'$my_xlib' Name.Variable +'"' Literal.String.Double +'\n\n ' Text +'$show' Name.Variable +' ' Text +'"' Literal.String.Double +'${' Literal.String.Interpol +'rm' Name.Variable +'}' Literal.String.Interpol +'r ' Literal.String.Double +'$my_xdir' Name.Variable +'"' Literal.String.Double +'\n ' Text +'$run' Name.Variable +' ' Text +'${' Literal.String.Interpol +'rm' Name.Variable +'}' Literal.String.Interpol +'r' Text +' ' Text +'"' Literal.String.Double +'$my_xdir' Name.Variable +'"' Literal.String.Double +'\n ' Text +'$show' Name.Variable +' ' Text +'"' Literal.String.Double +'$mkdir' Name.Variable +' ' Literal.String.Double +'$my_xdir' Name.Variable +'"' Literal.String.Double +'\n ' Text +'$run' Name.Variable +' ' Text +'$mkdir' Name.Variable +' ' Text +'"' Literal.String.Double +'$my_xdir' Name.Variable +'"' Literal.String.Double +'\n ' Text +'exit_status' Name.Variable +'=' Operator +'$?' Name.Variable +'\n ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$exit_status' Name.Variable +'"' Literal.String.Double +' ' Text +'-ne' Text +' ' Text +'0' Literal.Number +' ' Text +'&&' Operator +' ' Text +'test' Name.Builtin +' ' Text +'!' Text +' ' Text +'-d' Text +' ' Text +'"' Literal.String.Double +'$my_xdir' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t' Text +'exit' Name.Builtin +' ' Text +'$exit_status' Name.Variable +'\n ' Text +'fi' Keyword +'\n ' Text +'case' Keyword +' ' Text +'$host' Name.Variable +' ' Text +'in' Keyword +'\n ' Text +'*-darwin*' Text +')' Operator +'\n\t' Text +'$show' Name.Variable +' ' Text +'"' Literal.String.Double +'Extracting ' Literal.String.Double +'$my_xabs' Name.Variable +'"' Literal.String.Double +'\n\t' Text +'# Do not bother doing anything if just a dry run\n' Comment.Single + +'\t' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-z' Text +' ' Text +'"' Literal.String.Double +'$run' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'darwin_orig_dir' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'pwd' Name.Builtin +'`' Literal.String.Backtick +'\n\t ' Text +'cd' Name.Builtin +' ' Text +'$my_xdir' Name.Variable +' ' Text +'||' Operator +' ' Text +'exit' Name.Builtin +' ' Text +'$?' Name.Variable +'\n\t ' Text +'darwin_archive' Name.Variable +'=' Operator +'$my_xabs' Name.Variable +'\n\t ' Text +'darwin_curdir' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'pwd' Name.Builtin +'`' Literal.String.Backtick +'\n\t ' Text +'darwin_base_archive' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$darwin_archive' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +' ' Text +'-e' Text +' ' Text +"'s%^.*/%%'" Literal.String.Single +'`' Literal.String.Backtick +'\n\t ' Text +'darwin_arches' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'lipo' Text +' ' Text +'-info' Text +' ' Text +'"' Literal.String.Double +'$darwin_archive' Name.Variable +'"' Literal.String.Double +' ' Text +'2' Literal.Number +'>/dev/null' Text +' ' Text +'|' Punctuation +' ' Text +'$EGREP' Name.Variable +' ' Text +'Architectures' Text +' ' Text +'2' Literal.Number +'>/dev/null' Text +'`' Literal.String.Backtick +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$darwin_arches' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +' \n\t ' Text +'darwin_arches' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'echo' Name.Builtin +' ' Text +'"' Literal.String.Double +'$darwin_arches' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$SED' Name.Variable +' ' Text +'-e' Text +' ' Text +"'s/.*are://'" Literal.String.Single +'`' Literal.String.Backtick +'\n\t ' Text +'darwin_arch' Name.Variable +'=' Operator +'\n\t ' Text +'$show' Name.Variable +' ' Text +'"' Literal.String.Double +'$darwin_base_archive' Name.Variable +' has multiple architectures ' Literal.String.Double +'$darwin_arches' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'for' Keyword +' ' Text +'darwin_arch' Text +' ' Text +'in' Keyword +' ' Text +'$darwin_arches' Name.Variable +' ' Text +';' Punctuation +' ' Text +'do' Keyword +'\n\t ' Text +'mkdir' Text +' ' Text +'-p' Text +' ' Text +'"' Literal.String.Double +'unfat-' Literal.String.Double +'$$' Name.Variable +'/' Literal.String.Double +'${' Literal.String.Interpol +'darwin_base_archive' Name.Variable +'}' Literal.String.Interpol +'-' Literal.String.Double +'${' Literal.String.Interpol +'darwin_arch' Name.Variable +'}' Literal.String.Interpol +'"' Literal.String.Double +'\n\t ' Text +'lipo' Text +' ' Text +'-thin' Text +' ' Text +'$darwin_arch' Name.Variable +' ' Text +'-output' Text +' ' Text +'"' Literal.String.Double +'unfat-' Literal.String.Double +'$$' Name.Variable +'/' Literal.String.Double +'${' Literal.String.Interpol +'darwin_base_archive' Name.Variable +'}' Literal.String.Interpol +'-' Literal.String.Double +'${' Literal.String.Interpol +'darwin_arch' Name.Variable +'}' Literal.String.Interpol +'/' Literal.String.Double +'${' Literal.String.Interpol +'darwin_base_archive' Name.Variable +'}' Literal.String.Interpol +'"' Literal.String.Double +' ' Text +'"' Literal.String.Double +'${' Literal.String.Interpol +'darwin_archive' Name.Variable +'}' Literal.String.Interpol +'"' Literal.String.Double +'\n\t ' Text +'cd' Name.Builtin +' ' Text +'"' Literal.String.Double +'unfat-' Literal.String.Double +'$$' Name.Variable +'/' Literal.String.Double +'${' Literal.String.Interpol +'darwin_base_archive' Name.Variable +'}' Literal.String.Interpol +'-' Literal.String.Double +'${' Literal.String.Interpol +'darwin_arch' Name.Variable +'}' Literal.String.Interpol +'"' Literal.String.Double +'\n\t ' Text +'func_extract_an_archive' Text +' ' Text +'"`pwd`"' Literal.String.Double +' ' Text +'"' Literal.String.Double +'${' Literal.String.Interpol +'darwin_base_archive' Name.Variable +'}' Literal.String.Interpol +'"' Literal.String.Double +'\n\t ' Text +'cd' Name.Builtin +' ' Text +'"' Literal.String.Double +'$darwin_curdir' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'$rm' Name.Variable +' ' Text +'"' Literal.String.Double +'unfat-' Literal.String.Double +'$$' Name.Variable +'/' Literal.String.Double +'${' Literal.String.Interpol +'darwin_base_archive' Name.Variable +'}' Literal.String.Interpol +'-' Literal.String.Double +'${' Literal.String.Interpol +'darwin_arch' Name.Variable +'}' Literal.String.Interpol +'/' Literal.String.Double +'${' Literal.String.Interpol +'darwin_base_archive' Name.Variable +'}' Literal.String.Interpol +'"' Literal.String.Double +'\n\t ' Text +'done' Keyword +' ' Text +'# $darwin_arches\n' Comment.Single + +' ' Text +'## Okay now we have a bunch of thin objects, gotta fatten them up :)\n' Comment.Single + +'\t ' Text +'darwin_filelist' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'find' Text +' ' Text +'unfat-' Text +'$$' Name.Variable +' ' Text +'-type' Text +' ' Text +'f' Text +' ' Text +'-name' Text +' ' Text +'\\*' Literal.String.Escape +'.o' Text +' ' Text +'-print' Text +' ' Text +'-o' Text +' ' Text +'-name' Text +' ' Text +'\\*' Literal.String.Escape +'.lo' Text +' ' Text +'-print' Text +'|' Punctuation +' ' Text +'xargs' Text +' ' Text +'basename' Text +' ' Text +'|' Punctuation +' ' Text +'sort' Text +' ' Text +'-u' Text +' ' Text +'|' Punctuation +' ' Text +'$NL2SP' Name.Variable +'`' Literal.String.Backtick +'\n\t ' Text +'darwin_file' Name.Variable +'=' Operator +'\n\t ' Text +'darwin_files' Name.Variable +'=' Operator +'\n\t ' Text +'for' Keyword +' ' Text +'darwin_file' Text +' ' Text +'in' Keyword +' ' Text +'$darwin_filelist' Name.Variable +';' Punctuation +' ' Text +'do' Keyword +'\n\t ' Text +'darwin_files' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'find' Text +' ' Text +'unfat-' Text +'$$' Name.Variable +' ' Text +'-name' Text +' ' Text +'$darwin_file' Name.Variable +' ' Text +'-print' Text +' ' Text +'|' Punctuation +' ' Text +'$NL2SP' Name.Variable +'`' Literal.String.Backtick +'\n\t ' Text +'lipo' Text +' ' Text +'-create' Text +' ' Text +'-output' Text +' ' Text +'"' Literal.String.Double +'$darwin_file' Name.Variable +'"' Literal.String.Double +' ' Text +'$darwin_files' Name.Variable +'\n\t ' Text +'done' Keyword +' ' Text +'# $darwin_filelist\n' Comment.Single + +'\t ' Text +'${' Literal.String.Interpol +'rm' Name.Variable +'}' Literal.String.Interpol +'r' Text +' ' Text +'unfat-' Text +'$$' Name.Variable +'\n\t ' Text +'cd' Name.Builtin +' ' Text +'"' Literal.String.Double +'$darwin_orig_dir' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'else' Keyword +'\n\t ' Text +'cd' Name.Builtin +' ' Text +'"' Literal.String.Double +'$darwin_orig_dir' Name.Variable +'"' Literal.String.Double +'\n \t ' Text +'func_extract_an_archive' Text +' ' Text +'"' Literal.String.Double +'$my_xdir' Name.Variable +'"' Literal.String.Double +' ' Text +'"' Literal.String.Double +'$my_xabs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'fi' Keyword +' ' Text +'# $darwin_arches\n' Comment.Single + +'\t' Text +'fi' Keyword +' ' Text +'# $run\n' Comment.Single + +'\t' Text +';' Punctuation +';' Punctuation +'\n ' Text +'*' Text +')' Operator +'\n ' Text +'func_extract_an_archive' Text +' ' Text +'"' Literal.String.Double +'$my_xdir' Name.Variable +'"' Literal.String.Double +' ' Text +'"' Literal.String.Double +'$my_xabs' Name.Variable +'"' Literal.String.Double +'\n ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'esac' Keyword +'\n ' Text +'my_oldobjs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$my_oldobjs' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +'`' Literal.String.Backtick +'find' Text +' ' Text +'$my_xdir' Name.Variable +' ' Text +'-name' Text +' ' Text +'\\*' Literal.String.Escape +'.' Text +'$objext' Name.Variable +' ' Text +'-print' Text +' ' Text +'-o' Text +' ' Text +'-name' Text +' ' Text +'\\*' Literal.String.Escape +'.lo' Text +' ' Text +'-print' Text +' ' Text +'|' Punctuation +' ' Text +'$NL2SP' Name.Variable +'`' Literal.String.Backtick +'\n ' Text +'done' Keyword +'\n ' Text +'func_extract_archives_result' Name.Variable +'=' Operator +'"' Literal.String.Double +'$my_oldobjs' Name.Variable +'"' Literal.String.Double +'\n' Text + +'}' Operator +'\n' Text + +'# End of Shell function definitions\n' Comment.Single + +'#####################################\n' Comment.Single + +'\n' Text + +'# Darwin sucks\n' Comment.Single + +'eval' Name.Builtin +' ' Text +'std_shrext' Name.Variable +'=' Operator +'\\"' Literal.String.Escape +'$shrext_cmds' Name.Variable +'\\"' Literal.String.Escape +'\n\n' Text + +'disable_libs' Name.Variable +'=' Operator +'no' Text +'\n\n' Text + +'# Parse our command line options once, thoroughly.\n' Comment.Single + +'while' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$#' Name.Variable +'"' Literal.String.Double +' ' Text +'-gt' Text +' ' Text +'0' Literal.Number +'\n' Text + +'do' Keyword +'\n ' Text +'arg' Name.Variable +'=' Operator +'"' Literal.String.Double +'$1' Name.Variable +'"' Literal.String.Double +'\n ' Text +'shift' Name.Builtin +'\n\n ' Text +'case' Keyword +' ' Text +'$arg' Name.Variable +' ' Text +'in' Keyword +'\n ' Text +'-*' Text +'=' Operator +'*' Text +')' Operator +' ' Text +'optarg' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +' ' Text +'-e' Text +' ' Text +"'s/[-_a-zA-Z0-9]*=//'" Literal.String.Single +'`' Literal.String.Backtick +' ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'*' Text +')' Operator +' ' Text +'optarg' Name.Variable +'=' Operator +' ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'esac' Keyword +'\n\n ' Text +'# If the previous option needs an argument, assign it.\n' Comment.Single + +' ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$prev' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'case' Keyword +' ' Text +'$prev' Name.Variable +' ' Text +'in' Keyword +'\n ' Text +'execute_dlfiles' Text +')' Operator +'\n ' Text +'execute_dlfiles' Name.Variable +'=' Operator +'"' Literal.String.Double +'$execute_dlfiles' Name.Variable +' ' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'tag' Text +')' Operator +'\n ' Text +'tagname' Name.Variable +'=' Operator +'"' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n ' Text +'preserve_args' Name.Variable +'=' Operator +'"' Literal.String.Double +'${' Literal.String.Interpol +'preserve_args' Name.Variable +'}' Literal.String.Interpol +'=' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n\n ' Text +'# Check whether tagname contains only valid characters\n' Comment.Single + +' ' Text +'case' Keyword +' ' Text +'$tagname' Name.Variable +' ' Text +'in' Keyword +'\n ' Text +'*' Text +'[' Operator +'!-_A-Za-z0-9,/' Text +']' Operator +'*' Text +')' Operator +'\n\t' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$progname' Name.Variable +': invalid tag name: ' Literal.String.Double +'$tagname' Name.Variable +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n\t' Text +'exit' Name.Builtin +' ' Text +'$EXIT_FAILURE' Name.Variable +'\n\t' Text +';' Punctuation +';' Punctuation +'\n ' Text +'esac' Keyword +'\n\n ' Text +'case' Keyword +' ' Text +'$tagname' Name.Variable +' ' Text +'in' Keyword +'\n ' Text +'CC' Text +')' Operator +'\n\t' Text +'# Don\'t test for the "default" C tag, as we know, it\'s there, but\n' Comment.Single + +'\t' Text +'# not specially marked.\n' Comment.Single + +'\t' Text +';' Punctuation +';' Punctuation +'\n ' Text +'*' Text +')' Operator +'\n\t' Text +'if' Keyword +' ' Text +'grep' Text +' ' Text +'"' Literal.String.Double +'^# ### BEGIN LIBTOOL TAG CONFIG: ' Literal.String.Double +'$tagname' Name.Variable +'$' Text +'"' Literal.String.Double +' ' Text +'<' Text +' ' Text +'"' Literal.String.Double +'$progpath' Name.Variable +'"' Literal.String.Double +' ' Text +'>' Text +' ' Text +'/dev/null' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'taglist' Name.Variable +'=' Operator +'"' Literal.String.Double +'$taglist' Name.Variable +' ' Literal.String.Double +'$tagname' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'# Evaluate the configuration.\n' Comment.Single + +'\t ' Text +'eval' Name.Builtin +' ' Text +'"' Literal.String.Double +'`' Literal.String.Double +'${' Literal.String.Interpol +'SED' Name.Variable +'}' Literal.String.Interpol +" -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '" Literal.String.Double +'$tagname' Name.Variable +"'" Literal.String.Double +'$' Text +"/,/^# ### END LIBTOOL TAG CONFIG: '" Literal.String.Double +'$tagname' Name.Variable +"'" Literal.String.Double +'$' Text +"/p' < " Literal.String.Double +'$progpath' Name.Variable +'`' Literal.String.Double +'"' Literal.String.Double +'\n\t' Text +'else' Keyword +'\n\t ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$progname' Name.Variable +': ignoring unknown tag ' Literal.String.Double +'$tagname' Name.Variable +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n\t' Text +'fi' Keyword +'\n\t' Text +';' Punctuation +';' Punctuation +'\n ' Text +'esac' Keyword +'\n ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'*' Text +')' Operator +'\n ' Text +'eval' Name.Builtin +' ' Text +'"' Literal.String.Double +'$prev' Name.Variable +'=\\$arg' Literal.String.Double +'"' Literal.String.Double +'\n ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'esac' Keyword +'\n\n ' Text +'prev' Name.Variable +'=' Operator +'\n ' Text +'prevopt' Name.Variable +'=' Operator +'\n ' Text +'continue' Keyword +'\n ' Text +'fi' Keyword +'\n\n ' Text +'# Have we seen a non-optional argument yet?\n' Comment.Single + +' ' Text +'case' Keyword +' ' Text +'$arg' Name.Variable +' ' Text +'in' Keyword +'\n ' Text +'--help' Text +')' Operator +'\n ' Text +'show_help' Name.Variable +'=' Operator +'yes' Text +'\n ' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'--version' Text +')' Operator +'\n ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$PROGRAM' Name.Variable +' (GNU ' Literal.String.Double +'$PACKAGE' Name.Variable +') ' Literal.String.Double +'$VERSION' Name.Variable +'$TIMESTAMP' Name.Variable +'"' Literal.String.Double +'\n ' Text +'$echo' Name.Variable +'\n ' Text +'$echo' Name.Variable +' ' Text +'"Copyright (C) 2005 Free Software Foundation, Inc."' Literal.String.Double +'\n ' Text +'$echo' Name.Variable +' ' Text +'"This is free software; see the source for copying conditions. There is NO"' Literal.String.Double +'\n ' Text +'$echo' Name.Variable +' ' Text +'"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."' Literal.String.Double +'\n ' Text +'exit' Name.Builtin +' ' Text +'$?' Name.Variable +'\n ' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'--config' Text +')' Operator +'\n ' Text +'${' Literal.String.Interpol +'SED' Name.Variable +'}' Literal.String.Interpol +' ' Text +'-e' Text +' ' Text +"'1,/^# ### BEGIN LIBTOOL CONFIG/d'" Literal.String.Single +' ' Text +'-e' Text +' ' Text +"'/^# ### END LIBTOOL CONFIG/,$d'" Literal.String.Single +' ' Text +'$progpath' Name.Variable +'\n ' Text +'# Now print the configurations for the tags.\n' Comment.Single + +' ' Text +'for' Keyword +' ' Text +'tagname' Text +' ' Text +'in' Keyword +' ' Text +'$taglist' Name.Variable +';' Punctuation +' ' Text +'do' Keyword +'\n ' Text +'${' Literal.String.Interpol +'SED' Name.Variable +'}' Literal.String.Interpol +' ' Text +'-n' Text +' ' Text +'-e' Text +' ' Text +'"' Literal.String.Double +'/^# ### BEGIN LIBTOOL TAG CONFIG: ' Literal.String.Double +'$tagname' Name.Variable +'$' Text +'/,/^# ### END LIBTOOL TAG CONFIG: ' Literal.String.Double +'$tagname' Name.Variable +'$' Text +'/p' Literal.String.Double +'"' Literal.String.Double +' ' Text +'<' Text +' ' Text +'"' Literal.String.Double +'$progpath' Name.Variable +'"' Literal.String.Double +'\n ' Text +'done' Keyword +'\n ' Text +'exit' Name.Builtin +' ' Text +'$?' Name.Variable +'\n ' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'--debug' Text +')' Operator +'\n ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$progname' Name.Variable +': enabling shell trace mode' Literal.String.Double +'"' Literal.String.Double +'\n ' Text +'set' Name.Builtin +' ' Text +'-x' Text +'\n ' Text +'preserve_args' Name.Variable +'=' Operator +'"' Literal.String.Double +'$preserve_args' Name.Variable +' ' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n ' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'--dry-run' Text +' ' Text +'|' Punctuation +' ' Text +'-n' Text +')' Operator +'\n ' Text +'run' Name.Variable +'=' Operator +':' Text +'\n ' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'--features' Text +')' Operator +'\n ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'host: ' Literal.String.Double +'$host' Name.Variable +'"' Literal.String.Double +'\n ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$build_libtool_libs' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'yes' Text +';' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'$echo' Name.Variable +' ' Text +'"enable shared libraries"' Literal.String.Double +'\n ' Text +'else' Keyword +'\n ' Text +'$echo' Name.Variable +' ' Text +'"disable shared libraries"' Literal.String.Double +'\n ' Text +'fi' Keyword +'\n ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$build_old_libs' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'yes' Text +';' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'$echo' Name.Variable +' ' Text +'"enable static libraries"' Literal.String.Double +'\n ' Text +'else' Keyword +'\n ' Text +'$echo' Name.Variable +' ' Text +'"disable static libraries"' Literal.String.Double +'\n ' Text +'fi' Keyword +'\n ' Text +'exit' Name.Builtin +' ' Text +'$?' Name.Variable +'\n ' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'--finish' Text +')' Operator +' ' Text +'mode' Name.Variable +'=' Operator +'"finish"' Literal.String.Double +' ' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'--mode' Text +')' Operator +' ' Text +'prevopt' Name.Variable +'=' Operator +'"--mode"' Literal.String.Double +' ' Text +'prev' Name.Variable +'=' Operator +'mode' Text +' ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'--mode' Text +'=' Operator +'*' Text +')' Operator +' ' Text +'mode' Name.Variable +'=' Operator +'"' Literal.String.Double +'$optarg' Name.Variable +'"' Literal.String.Double +' ' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'--preserve-dup-deps' Text +')' Operator +' ' Text +'duplicate_deps' Name.Variable +'=' Operator +'"yes"' Literal.String.Double +' ' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'--quiet' Text +' ' Text +'|' Punctuation +' ' Text +'--silent' Text +')' Operator +'\n ' Text +'show' Name.Variable +'=' Operator +':' Text +'\n ' Text +'preserve_args' Name.Variable +'=' Operator +'"' Literal.String.Double +'$preserve_args' Name.Variable +' ' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n ' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'--tag' Text +')' Operator +'\n ' Text +'prevopt' Name.Variable +'=' Operator +'"--tag"' Literal.String.Double +'\n ' Text +'prev' Name.Variable +'=' Operator +'tag' Text +'\n ' Text +'preserve_args' Name.Variable +'=' Operator +'"' Literal.String.Double +'$preserve_args' Name.Variable +' --tag' Literal.String.Double +'"' Literal.String.Double +'\n ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'--tag' Text +'=' Operator +'*' Text +')' Operator +'\n ' Text +'set' Name.Builtin +' ' Text +'tag' Text +' ' Text +'"' Literal.String.Double +'$optarg' Name.Variable +'"' Literal.String.Double +' ' Text +'${' Literal.String.Interpol +'1' Name.Variable +'+' Punctuation +'"' Literal.String.Double +'$@' Name.Variable +'"' Literal.String.Double +'}' Literal.String.Interpol +'\n ' Text +'shift' Name.Builtin +'\n ' Text +'prev' Name.Variable +'=' Operator +'tag' Text +'\n ' Text +'preserve_args' Name.Variable +'=' Operator +'"' Literal.String.Double +'$preserve_args' Name.Variable +' --tag' Literal.String.Double +'"' Literal.String.Double +'\n ' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'-dlopen' Text +')' Operator +'\n ' Text +'prevopt' Name.Variable +'=' Operator +'"-dlopen"' Literal.String.Double +'\n ' Text +'prev' Name.Variable +'=' Operator +'execute_dlfiles' Text +'\n ' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'-*' Text +')' Operator +'\n ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$modename' Name.Variable +': unrecognized option \\`' Literal.String.Double +'$arg' Name.Variable +"'" Literal.String.Double +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$help' Name.Variable +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n ' Text +'exit' Name.Builtin +' ' Text +'$EXIT_FAILURE' Name.Variable +'\n ' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'*' Text +')' Operator +'\n ' Text +'nonopt' Name.Variable +'=' Operator +'"' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n ' Text +'break' Name.Builtin +'\n ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'esac' Keyword +'\n' Text + +'done' Keyword +'\n\n' Text + +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$prevopt' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$modename' Name.Variable +': option \\`' Literal.String.Double +'$prevopt' Name.Variable +"' requires an argument" Literal.String.Double +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$help' Name.Variable +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n ' Text +'exit' Name.Builtin +' ' Text +'$EXIT_FAILURE' Name.Variable +'\n' Text + +'fi' Keyword +'\n\n' Text + +'case' Keyword +' ' Text +'$disable_libs' Name.Variable +' ' Text +'in' Keyword +'\n' Text + +'no' Text +')' Operator +' \n ' Text +';' Punctuation +';' Punctuation +'\n' Text + +'shared' Text +')' Operator +'\n ' Text +'build_libtool_libs' Name.Variable +'=' Operator +'no' Text +'\n ' Text +'build_old_libs' Name.Variable +'=' Operator +'yes' Text +'\n ' Text +';' Punctuation +';' Punctuation +'\n' Text + +'static' Text +')' Operator +'\n ' Text +'build_old_libs' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'case' Keyword +' ' Text +'$build_libtool_libs' Name.Variable +' ' Text +'in' Keyword +' ' Text +'yes' Text +')' Operator +' ' Text +'echo' Name.Builtin +' ' Text +'no' Text +';' Punctuation +';' Punctuation +' ' Text +'*' Text +')' Operator +' ' Text +'echo' Name.Builtin +' ' Text +'yes' Text +';' Punctuation +';' Punctuation +' ' Text +'esac' Keyword +'`' Literal.String.Backtick +'\n ' Text +';' Punctuation +';' Punctuation +'\n' Text + +'esac' Keyword +'\n\n' Text + +'# If this variable is set in any of the actions, the command in it\n' Comment.Single + +'# will be execed at the end. This prevents here-documents from being\n' Comment.Single + +'# left over by shells.\n' Comment.Single + +'exec_cmd' Name.Variable +'=' Operator +'\n\n' Text + +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-z' Text +' ' Text +'"' Literal.String.Double +'$show_help' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\n ' Text +'# Infer the operation mode.\n' Comment.Single + +' ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-z' Text +' ' Text +'"' Literal.String.Double +'$mode' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'$echo' Name.Variable +' ' Text +'"*** Warning: inferring the mode of operation is deprecated."' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n ' Text +'$echo' Name.Variable +' ' Text +'"*** Future versions of Libtool will require --mode=MODE be specified."' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n ' Text +'case' Keyword +' ' Text +'$nonopt' Name.Variable +' ' Text +'in' Keyword +'\n ' Text +'*cc' Text +' ' Text +'|' Punctuation +' ' Text +'cc*' Text +' ' Text +'|' Punctuation +' ' Text +'*++' Text +' ' Text +'|' Punctuation +' ' Text +'gcc*' Text +' ' Text +'|' Punctuation +' ' Text +'*-gcc*' Text +' ' Text +'|' Punctuation +' ' Text +'g++*' Text +' ' Text +'|' Punctuation +' ' Text +'xlc*' Text +')' Operator +'\n ' Text +'mode' Name.Variable +'=' Operator +'link' Text +'\n ' Text +'for' Keyword +' ' Text +'arg' Text +'\n ' Text +'do' Keyword +'\n\t' Text +'case' Keyword +' ' Text +'$arg' Name.Variable +' ' Text +'in' Keyword +'\n\t' Text +'-c' Text +')' Operator +'\n\t ' Text +'mode' Name.Variable +'=' Operator +'compile' Text +'\n\t ' Text +'break' Name.Builtin +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'esac' Keyword +'\n ' Text +'done' Keyword +'\n ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'*db' Text +' ' Text +'|' Punctuation +' ' Text +'*dbx' Text +' ' Text +'|' Punctuation +' ' Text +'*strace' Text +' ' Text +'|' Punctuation +' ' Text +'*truss' Text +')' Operator +'\n ' Text +'mode' Name.Variable +'=' Operator +'execute' Text +'\n ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'*install*' Text +'|' Punctuation +'cp' Text +'|' Punctuation +'mv' Text +')' Operator +'\n ' Text +'mode' Name.Variable +'=' Operator +'install' Text +'\n ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'*rm' Text +')' Operator +'\n ' Text +'mode' Name.Variable +'=' Operator +'uninstall' Text +'\n ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'*' Text +')' Operator +'\n ' Text +'# If we have no mode, but dlfiles were specified, then do execute mode.\n' Comment.Single + +' ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$execute_dlfiles' Name.Variable +'"' Literal.String.Double +' ' Text +'&&' Operator +' ' Text +'mode' Name.Variable +'=' Operator +'execute' Text +'\n\n ' Text +'# Just use the default operation mode.\n' Comment.Single + +' ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-z' Text +' ' Text +'"' Literal.String.Double +'$mode' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$nonopt' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$modename' Name.Variable +': warning: cannot infer operation mode from \\`' Literal.String.Double +'$nonopt' Name.Variable +"'" Literal.String.Double +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n\t' Text +'else' Keyword +'\n\t ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$modename' Name.Variable +': warning: cannot infer operation mode without MODE-ARGS' Literal.String.Double +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n\t' Text +'fi' Keyword +'\n ' Text +'fi' Keyword +'\n ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'esac' Keyword +'\n ' Text +'fi' Keyword +'\n\n ' Text +'# Only execute mode is allowed to have -dlopen flags.\n' Comment.Single + +' ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$execute_dlfiles' Name.Variable +'"' Literal.String.Double +' ' Text +'&&' Operator +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$mode' Name.Variable +'"' Literal.String.Double +' ' Text +'!' Text +'=' Operator +' ' Text +'execute' Text +';' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$modename' Name.Variable +": unrecognized option \\`-dlopen'" Literal.String.Double +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$help' Name.Variable +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n ' Text +'exit' Name.Builtin +' ' Text +'$EXIT_FAILURE' Name.Variable +'\n ' Text +'fi' Keyword +'\n\n ' Text +'# Change the help message to a mode-specific one.\n' Comment.Single + +' ' Text +'generic_help' Name.Variable +'=' Operator +'"' Literal.String.Double +'$help' Name.Variable +'"' Literal.String.Double +'\n ' Text +'help' Name.Variable +'=' Operator +'"' Literal.String.Double +'Try \\`' Literal.String.Double +'$modename' Name.Variable +' --help --mode=' Literal.String.Double +'$mode' Name.Variable +"' for more information." Literal.String.Double +'"' Literal.String.Double +'\n\n ' Text +'# These modes are in order of execution frequency so that they run quickly.\n' Comment.Single + +' ' Text +'case' Keyword +' ' Text +'$mode' Name.Variable +' ' Text +'in' Keyword +'\n ' Text +'# libtool compile mode\n' Comment.Single + +' ' Text +'compile' Text +')' Operator +'\n ' Text +'modename' Name.Variable +'=' Operator +'"' Literal.String.Double +'$modename' Name.Variable +': compile' Literal.String.Double +'"' Literal.String.Double +'\n ' Text +'# Get the compilation command and the source file.\n' Comment.Single + +' ' Text +'base_compile' Name.Variable +'=' Operator +'\n ' Text +'srcfile' Name.Variable +'=' Operator +'"' Literal.String.Double +'$nonopt' Name.Variable +'"' Literal.String.Double +' ' Text +'# always keep a non-empty value in "srcfile"\n' Comment.Single + +' ' Text +'suppress_opt' Name.Variable +'=' Operator +'yes' Text +'\n ' Text +'suppress_output' Name.Variable +'=' Operator +'\n ' Text +'arg_mode' Name.Variable +'=' Operator +'normal' Text +'\n ' Text +'libobj' Name.Variable +'=' Operator +'\n ' Text +'later' Name.Variable +'=' Operator +'\n\n ' Text +'for' Keyword +' ' Text +'arg' Text +'\n ' Text +'do' Keyword +'\n ' Text +'case' Keyword +' ' Text +'$arg_mode' Name.Variable +' ' Text +'in' Keyword +'\n ' Text +'arg' Text +' ' Text +')' Operator +'\n\t' Text +'# do not "continue". Instead, add this to base_compile\n' Comment.Single + +'\t' Text +'lastarg' Name.Variable +'=' Operator +'"' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n\t' Text +'arg_mode' Name.Variable +'=' Operator +'normal' Text +'\n\t' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'target' Text +' ' Text +')' Operator +'\n\t' Text +'libobj' Name.Variable +'=' Operator +'"' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n\t' Text +'arg_mode' Name.Variable +'=' Operator +'normal' Text +'\n\t' Text +'continue' Keyword +'\n\t' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'normal' Text +' ' Text +')' Operator +'\n\t' Text +'# Accept any command-line options.\n' Comment.Single + +'\t' Text +'case' Keyword +' ' Text +'$arg' Name.Variable +' ' Text +'in' Keyword +'\n\t' Text +'-o' Text +')' Operator +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$libobj' Name.Variable +'"' Literal.String.Double +' ' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$modename' Name.Variable +": you cannot specify \\`-o' more than once" Literal.String.Double +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n\t ' Text +'exit' Name.Builtin +' ' Text +'$EXIT_FAILURE' Name.Variable +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'arg_mode' Name.Variable +'=' Operator +'target' Text +'\n\t ' Text +'continue' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\n\t' Text +'-static' Text +' ' Text +'|' Punctuation +' ' Text +'-prefer-pic' Text +' ' Text +'|' Punctuation +' ' Text +'-prefer-non-pic' Text +')' Operator +'\n\t ' Text +'later' Name.Variable +'=' Operator +'"' Literal.String.Double +'$later' Name.Variable +' ' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'continue' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\n\t' Text +'-no-suppress' Text +')' Operator +'\n\t ' Text +'suppress_opt' Name.Variable +'=' Operator +'no' Text +'\n\t ' Text +'continue' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\n\t' Text +'-Xcompiler' Text +')' Operator +'\n\t ' Text +'arg_mode' Name.Variable +'=' Operator +'arg' Text +' ' Text +'# the next one goes into the "base_compile" arg list\n' Comment.Single + +'\t ' Text +'continue' Keyword +' ' Text +'# The current "srcfile" will either be retained or\n' Comment.Single + +'\t ' Text +';' Punctuation +';' Punctuation +' ' Text +'# replaced later. I would guess that would be a bug.\n' Comment.Single + +'\n\t' Text +'-Wc,*' Text +')' Operator +'\n\t ' Text +'args' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +' ' Text +'-e' Text +' ' Text +'"s/^-Wc,//"' Literal.String.Double +'`' Literal.String.Backtick +'\n\t ' Text +'lastarg' Name.Variable +'=' Operator +'\n\t ' Text +'save_ifs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$IFS' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'IFS' Name.Variable +'=' Operator +"','" Literal.String.Single +'\n \t ' Text +'for' Keyword +' ' Text +'arg' Text +' ' Text +'in' Keyword +' ' Text +'$args' Name.Variable +';' Punctuation +' ' Text +'do' Keyword +'\n\t ' Text +'IFS' Name.Variable +'=' Operator +'"' Literal.String.Double +'$save_ifs' Name.Variable +'"' Literal.String.Double +'\n\n\t ' Text +'# Double-quote args containing other shell metacharacters.\n' Comment.Single + +'\t ' Text +'# Many Bourne shells cannot handle close brackets correctly\n' Comment.Single + +'\t ' Text +'# in scan sets, so we specify it separately.\n' Comment.Single + +'\t ' Text +'case' Keyword +' ' Text +'$arg' Name.Variable +' ' Text +'in' Keyword +'\n\t ' Text +'*' Text +'[' Operator +'\\[' Literal.String.Escape +'\\~' Literal.String.Escape +'\\#' Literal.String.Escape +'\\^' Literal.String.Escape +'\\&' Literal.String.Escape +'\\*' Literal.String.Escape +'\\(' Literal.String.Escape +'\\)' Literal.String.Escape +'\\{' Literal.String.Escape +'\\}' Literal.String.Escape +'\\|' Literal.String.Escape +'\\;' Literal.String.Escape +'\\<' Literal.String.Escape +'\\>' Literal.String.Escape +'\\?' Literal.String.Escape +"\\'" Literal.String.Escape +'\\ ' Literal.String.Escape +'\\\t' Literal.String.Escape +']' Operator +'*' Text +'|' Punctuation +'*' Text +']' Operator +'*' Text +'|' Punctuation +'""' Literal.String.Double +')' Operator +'\n\t ' Text +'arg' Name.Variable +'=' Operator +'"' Literal.String.Double +'\\"' Literal.String.Double +'$arg' Name.Variable +'\\"' Literal.String.Double +'"' Literal.String.Double +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'esac' Keyword +'\n\t ' Text +'lastarg' Name.Variable +'=' Operator +'"' Literal.String.Double +'$lastarg' Name.Variable +' ' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'done' Keyword +'\n\t ' Text +'IFS' Name.Variable +'=' Operator +'"' Literal.String.Double +'$save_ifs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'lastarg' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$lastarg' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +' ' Text +'-e' Text +' ' Text +'"s/^ //"' Literal.String.Double +'`' Literal.String.Backtick +'\n\n\t ' Text +'# Add the arguments to base_compile.\n' Comment.Single + +'\t ' Text +'base_compile' Name.Variable +'=' Operator +'"' Literal.String.Double +'$base_compile' Name.Variable +' ' Literal.String.Double +'$lastarg' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'continue' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\n\t' Text +'*' Text +' ' Text +')' Operator +'\n\t ' Text +'# Accept the current argument as the source file.\n' Comment.Single + +'\t ' Text +'# The previous "srcfile" becomes the current argument.\n' Comment.Single + +'\t ' Text +'#\n' Comment.Single + +'\t ' Text +'lastarg' Name.Variable +'=' Operator +'"' Literal.String.Double +'$srcfile' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'srcfile' Name.Variable +'=' Operator +'"' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'esac' Keyword +' ' Text +'# case $arg\n' Comment.Single + +'\t' Text +';' Punctuation +';' Punctuation +'\n ' Text +'esac' Keyword +' ' Text +'# case $arg_mode\n' Comment.Single + +'\n ' Text +'# Aesthetically quote the previous argument.\n' Comment.Single + +' ' Text +'lastarg' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$lastarg' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +' ' Text +'-e' Text +' ' Text +'"' Literal.String.Double +'$sed_quote_subst' Name.Variable +'"' Literal.String.Double +'`' Literal.String.Backtick +'\n\n ' Text +'case' Keyword +' ' Text +'$lastarg' Name.Variable +' ' Text +'in' Keyword +'\n ' Text +'# Double-quote args containing other shell metacharacters.\n' Comment.Single + +' ' Text +'# Many Bourne shells cannot handle close brackets correctly\n' Comment.Single + +' ' Text +'# in scan sets, and some SunOS ksh mistreat backslash-escaping\n' Comment.Single + +' ' Text +'# in scan sets (worked around with variable expansion),\n' Comment.Single + +' ' Text +"# and furthermore cannot handle '|' '&' '(' ')' in scan sets \n" Comment.Single + +' ' Text +'# at all, so we specify them separately.\n' Comment.Single + +' ' Text +'*' Text +'[' Operator +'\\[' Literal.String.Escape +'\\~' Literal.String.Escape +'\\#' Literal.String.Escape +'\\^' Literal.String.Escape +'\\&' Literal.String.Escape +'\\*' Literal.String.Escape +'\\(' Literal.String.Escape +'\\)' Literal.String.Escape +'\\{' Literal.String.Escape +'\\}' Literal.String.Escape +'\\|' Literal.String.Escape +'\\;' Literal.String.Escape +'\\<' Literal.String.Escape +'\\>' Literal.String.Escape +'\\?' Literal.String.Escape +"\\'" Literal.String.Escape +'\\ ' Literal.String.Escape +'\\\t' Literal.String.Escape +']' Operator +'*' Text +'|' Punctuation +'*' Text +']' Operator +'*' Text +'|' Punctuation +'""' Literal.String.Double +')' Operator +'\n\t' Text +'lastarg' Name.Variable +'=' Operator +'"' Literal.String.Double +'\\"' Literal.String.Double +'$lastarg' Name.Variable +'\\"' Literal.String.Double +'"' Literal.String.Double +'\n\t' Text +';' Punctuation +';' Punctuation +'\n ' Text +'esac' Keyword +'\n\n ' Text +'base_compile' Name.Variable +'=' Operator +'"' Literal.String.Double +'$base_compile' Name.Variable +' ' Literal.String.Double +'$lastarg' Name.Variable +'"' Literal.String.Double +'\n ' Text +'done' Keyword +' ' Text +'# for arg\n' Comment.Single + +'\n ' Text +'case' Keyword +' ' Text +'$arg_mode' Name.Variable +' ' Text +'in' Keyword +'\n ' Text +'arg' Text +')' Operator +'\n ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$modename' Name.Variable +': you must specify an argument for -Xcompile' Literal.String.Double +'"' Literal.String.Double +'\n ' Text +'exit' Name.Builtin +' ' Text +'$EXIT_FAILURE' Name.Variable +'\n ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'target' Text +')' Operator +'\n ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$modename' Name.Variable +": you must specify a target with \\`-o'" Literal.String.Double +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n ' Text +'exit' Name.Builtin +' ' Text +'$EXIT_FAILURE' Name.Variable +'\n ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'*' Text +')' Operator +'\n ' Text +'# Get the name of the library object.\n' Comment.Single + +' ' Text +'[' Operator +' ' Text +'-z' Text +' ' Text +'"' Literal.String.Double +'$libobj' Name.Variable +'"' Literal.String.Double +' ' Text +']' Operator +' ' Text +'&&' Operator +' ' Text +'libobj' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$srcfile' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +' ' Text +'-e' Text +' ' Text +"'s%^.*/%%'" Literal.String.Single +'`' Literal.String.Backtick +'\n ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'esac' Keyword +'\n\n ' Text +'# Recognize several different file suffixes.\n' Comment.Single + +' ' Text +'# If the user specifies -o file.o, it is replaced with file.lo\n' Comment.Single + +' ' Text +'xform' Name.Variable +'=' Operator +"'[cCFSifmso]'" Literal.String.Single +'\n ' Text +'case' Keyword +' ' Text +'$libobj' Name.Variable +' ' Text +'in' Keyword +'\n ' Text +'*.ada' Text +')' Operator +' ' Text +'xform' Name.Variable +'=' Operator +'ada' Text +' ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'*.adb' Text +')' Operator +' ' Text +'xform' Name.Variable +'=' Operator +'adb' Text +' ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'*.ads' Text +')' Operator +' ' Text +'xform' Name.Variable +'=' Operator +'ads' Text +' ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'*.asm' Text +')' Operator +' ' Text +'xform' Name.Variable +'=' Operator +'asm' Text +' ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'*.c++' Text +')' Operator +' ' Text +'xform' Name.Variable +'=' Operator +'c++' Text +' ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'*.cc' Text +')' Operator +' ' Text +'xform' Name.Variable +'=' Operator +'cc' Text +' ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'*.ii' Text +')' Operator +' ' Text +'xform' Name.Variable +'=' Operator +'ii' Text +' ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'*.class' Text +')' Operator +' ' Text +'xform' Name.Variable +'=' Operator +'class' Text +' ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'*.cpp' Text +')' Operator +' ' Text +'xform' Name.Variable +'=' Operator +'cpp' Text +' ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'*.cxx' Text +')' Operator +' ' Text +'xform' Name.Variable +'=' Operator +'cxx' Text +' ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'*.f90' Text +')' Operator +' ' Text +'xform' Name.Variable +'=' Operator +'f90' Text +' ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'*.for' Text +')' Operator +' ' Text +'xform' Name.Variable +'=' Operator +'for' Keyword +' ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'*.java' Text +')' Operator +' ' Text +'xform' Name.Variable +'=' Operator +'java' Text +' ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'esac' Keyword +'\n\n ' Text +'libobj' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$libobj' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +' ' Text +'-e' Text +' ' Text +'"' Literal.String.Double +'s/\\.' Literal.String.Double +'$xform' Name.Variable +'$' Text +'/.lo/' Literal.String.Double +'"' Literal.String.Double +'`' Literal.String.Backtick +'\n\n ' Text +'case' Keyword +' ' Text +'$libobj' Name.Variable +' ' Text +'in' Keyword +'\n ' Text +'*.lo' Text +')' Operator +' ' Text +'obj' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$libobj' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +' ' Text +'-e' Text +' ' Text +'"' Literal.String.Double +'$lo2o' Name.Variable +'"' Literal.String.Double +'`' Literal.String.Backtick +' ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'*' Text +')' Operator +'\n ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$modename' Name.Variable +': cannot determine name of library object from \\`' Literal.String.Double +'$libobj' Name.Variable +"'" Literal.String.Double +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n ' Text +'exit' Name.Builtin +' ' Text +'$EXIT_FAILURE' Name.Variable +'\n ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'esac' Keyword +'\n\n ' Text +'func_infer_tag' Text +' ' Text +'$base_compile' Name.Variable +'\n\n ' Text +'for' Keyword +' ' Text +'arg' Text +' ' Text +'in' Keyword +' ' Text +'$later' Name.Variable +';' Punctuation +' ' Text +'do' Keyword +'\n ' Text +'case' Keyword +' ' Text +'$arg' Name.Variable +' ' Text +'in' Keyword +'\n ' Text +'-static' Text +')' Operator +'\n\t' Text +'build_old_libs' Name.Variable +'=' Operator +'yes' Text +'\n\t' Text +'continue' Keyword +'\n\t' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'-prefer-pic' Text +')' Operator +'\n\t' Text +'pic_mode' Name.Variable +'=' Operator +'yes' Text +'\n\t' Text +'continue' Keyword +'\n\t' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'-prefer-non-pic' Text +')' Operator +'\n\t' Text +'pic_mode' Name.Variable +'=' Operator +'no' Text +'\n\t' Text +'continue' Keyword +'\n\t' Text +';' Punctuation +';' Punctuation +'\n ' Text +'esac' Keyword +'\n ' Text +'done' Keyword +'\n\n ' Text +'qlibobj' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$libobj' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +' ' Text +'-e' Text +' ' Text +'"' Literal.String.Double +'$sed_quote_subst' Name.Variable +'"' Literal.String.Double +'`' Literal.String.Backtick +'\n ' Text +'case' Keyword +' ' Text +'$qlibobj' Name.Variable +' ' Text +'in' Keyword +'\n ' Text +'*' Text +'[' Operator +'\\[' Literal.String.Escape +'\\~' Literal.String.Escape +'\\#' Literal.String.Escape +'\\^' Literal.String.Escape +'\\&' Literal.String.Escape +'\\*' Literal.String.Escape +'\\(' Literal.String.Escape +'\\)' Literal.String.Escape +'\\{' Literal.String.Escape +'\\}' Literal.String.Escape +'\\|' Literal.String.Escape +'\\;' Literal.String.Escape +'\\<' Literal.String.Escape +'\\>' Literal.String.Escape +'\\?' Literal.String.Escape +"\\'" Literal.String.Escape +'\\ ' Literal.String.Escape +'\\\t' Literal.String.Escape +']' Operator +'*' Text +'|' Punctuation +'*' Text +']' Operator +'*' Text +'|' Punctuation +'""' Literal.String.Double +')' Operator +'\n\t' Text +'qlibobj' Name.Variable +'=' Operator +'"' Literal.String.Double +'\\"' Literal.String.Double +'$qlibobj' Name.Variable +'\\"' Literal.String.Double +'"' Literal.String.Double +' ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'esac' Keyword +'\n ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$libobj' Name.Variable +'"' Literal.String.Double +' ' Text +'!' Text +'=' Operator +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$qlibobj' Name.Variable +'"' Literal.String.Double +' ' Text +'\\\n' Literal.String.Escape + +'\t' Text +'&&' Operator +' ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$libobj' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'grep' Text +' ' Text +'\'[]~#^*{};<>?"\'' Literal.String.Single +'"\'"' Literal.String.Double +"' \t&()|`$[]'" Literal.String.Single +' ' Text +'\\\n' Literal.String.Escape + +'\t' Text +'&&' Operator +' ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$modename' Name.Variable +': libobj name \\`' Literal.String.Double +'$libobj' Name.Variable +"' may not contain shell special characters." Literal.String.Double +'"' Literal.String.Double +'\n ' Text +'objname' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$obj' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +' ' Text +'-e' Text +' ' Text +"'s%^.*/%%'" Literal.String.Single +'`' Literal.String.Backtick +'\n ' Text +'xdir' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$obj' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +' ' Text +'-e' Text +' ' Text +"'s%/[^/]*$%%'" Literal.String.Single +'`' Literal.String.Backtick +'\n ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$xdir' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$obj' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'xdir' Name.Variable +'=' Operator +'\n ' Text +'else' Keyword +'\n ' Text +'xdir' Name.Variable +'=' Operator +'$xdir' Name.Variable +'/' Text +'\n ' Text +'fi' Keyword +'\n ' Text +'lobj' Name.Variable +'=' Operator +'${' Literal.String.Interpol +'xdir' Name.Variable +'}' Literal.String.Interpol +'$objdir' Name.Variable +'/' Text +'$objname' Name.Variable +'\n\n ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-z' Text +' ' Text +'"' Literal.String.Double +'$base_compile' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$modename' Name.Variable +': you must specify a compilation command' Literal.String.Double +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$help' Name.Variable +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n ' Text +'exit' Name.Builtin +' ' Text +'$EXIT_FAILURE' Name.Variable +'\n ' Text +'fi' Keyword +'\n\n ' Text +'# Delete any leftover library objects.\n' Comment.Single + +' ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$build_old_libs' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'yes' Text +';' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'removelist' Name.Variable +'=' Operator +'"' Literal.String.Double +'$obj' Name.Variable +' ' Literal.String.Double +'$lobj' Name.Variable +' ' Literal.String.Double +'$libobj' Name.Variable +' ' Literal.String.Double +'${' Literal.String.Interpol +'libobj' Name.Variable +'}' Literal.String.Interpol +'T' Literal.String.Double +'"' Literal.String.Double +'\n ' Text +'else' Keyword +'\n ' Text +'removelist' Name.Variable +'=' Operator +'"' Literal.String.Double +'$lobj' Name.Variable +' ' Literal.String.Double +'$libobj' Name.Variable +' ' Literal.String.Double +'${' Literal.String.Interpol +'libobj' Name.Variable +'}' Literal.String.Interpol +'T' Literal.String.Double +'"' Literal.String.Double +'\n ' Text +'fi' Keyword +'\n\n ' Text +'$run' Name.Variable +' ' Text +'$rm' Name.Variable +' ' Text +'$removelist' Name.Variable +'\n ' Text +'trap' Name.Builtin +' ' Text +'"' Literal.String.Double +'$run' Name.Variable +' ' Literal.String.Double +'$rm' Name.Variable +' ' Literal.String.Double +'$removelist' Name.Variable +'; exit ' Literal.String.Double +'$EXIT_FAILURE' Name.Variable +'"' Literal.String.Double +' ' Text +'1' Literal.Number +' ' Text +'2' Literal.Number +' ' Text +'15' Literal.Number +'\n\n ' Text +'# On Cygwin there\'s no "real" PIC flag so we must build both object types\n' Comment.Single + +' ' Text +'case' Keyword +' ' Text +'$host_os' Name.Variable +' ' Text +'in' Keyword +'\n ' Text +'cygwin*' Text +' ' Text +'|' Punctuation +' ' Text +'mingw*' Text +' ' Text +'|' Punctuation +' ' Text +'pw32*' Text +' ' Text +'|' Punctuation +' ' Text +'os2*' Text +')' Operator +'\n ' Text +'pic_mode' Name.Variable +'=' Operator +'default' Text +'\n ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'esac' Keyword +'\n ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$pic_mode' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'no' Text +' ' Text +'&&' Operator +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$deplibs_check_method' Name.Variable +'"' Literal.String.Double +' ' Text +'!' Text +'=' Operator +' ' Text +'pass_all' Text +';' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'# non-PIC code in shared libraries is not supported\n' Comment.Single + +' ' Text +'pic_mode' Name.Variable +'=' Operator +'default' Text +'\n ' Text +'fi' Keyword +'\n\n ' Text +'# Calculate the filename of the output object if compiler does\n' Comment.Single + +' ' Text +'# not support -o with -c\n' Comment.Single + +' ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$compiler_c_o' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'no' Text +';' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'output_obj' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$srcfile' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +' ' Text +'-e' Text +' ' Text +"'s%^.*/%%'" Literal.String.Single +' ' Text +'-e' Text +' ' Text +"'s%\\.[^.]*$%%'" Literal.String.Single +'`' Literal.String.Backtick +'.' Text +'${' Literal.String.Interpol +'objext' Name.Variable +'}' Literal.String.Interpol +'\n ' Text +'lockfile' Name.Variable +'=' Operator +'"' Literal.String.Double +'$output_obj' Name.Variable +'.lock' Literal.String.Double +'"' Literal.String.Double +'\n ' Text +'removelist' Name.Variable +'=' Operator +'"' Literal.String.Double +'$removelist' Name.Variable +' ' Literal.String.Double +'$output_obj' Name.Variable +' ' Literal.String.Double +'$lockfile' Name.Variable +'"' Literal.String.Double +'\n ' Text +'trap' Name.Builtin +' ' Text +'"' Literal.String.Double +'$run' Name.Variable +' ' Literal.String.Double +'$rm' Name.Variable +' ' Literal.String.Double +'$removelist' Name.Variable +'; exit ' Literal.String.Double +'$EXIT_FAILURE' Name.Variable +'"' Literal.String.Double +' ' Text +'1' Literal.Number +' ' Text +'2' Literal.Number +' ' Text +'15' Literal.Number +'\n ' Text +'else' Keyword +'\n ' Text +'output_obj' Name.Variable +'=' Operator +'\n ' Text +'need_locks' Name.Variable +'=' Operator +'no' Text +'\n ' Text +'lockfile' Name.Variable +'=' Operator +'\n ' Text +'fi' Keyword +'\n\n ' Text +'# Lock this critical section if it is needed\n' Comment.Single + +' ' Text +'# We use this script file to make the link, it avoids creating a new file\n' Comment.Single + +' ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$need_locks' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'yes' Text +';' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'until' Keyword +' ' Text +'$run' Name.Variable +' ' Text +'ln' Text +' ' Text +'"' Literal.String.Double +'$srcfile' Name.Variable +'"' Literal.String.Double +' ' Text +'"' Literal.String.Double +'$lockfile' Name.Variable +'"' Literal.String.Double +' ' Text +'2' Literal.Number +'>/dev/null' Text +';' Punctuation +' ' Text +'do' Keyword +'\n\t' Text +'$show' Name.Variable +' ' Text +'"' Literal.String.Double +'Waiting for ' Literal.String.Double +'$lockfile' Name.Variable +' to be removed' Literal.String.Double +'"' Literal.String.Double +'\n\t' Text +'sleep' Text +' ' Text +'2' Literal.Number +'\n ' Text +'done' Keyword +'\n ' Text +'elif' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$need_locks' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'warn' Text +';' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-f' Text +' ' Text +'"' Literal.String.Double +'$lockfile' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'\\\n*** ERROR, ' Literal.String.Double +'$lockfile' Name.Variable +' exists and contains:\n`cat ' Literal.String.Double +'$lockfile' Name.Variable +" 2>/dev/null`\n\nThis indicates that another process is trying to use the same\ntemporary object file, and libtool could not work around it because\nyour compiler does not support \\`-c' and \\`-o' together. If you\nrepeat this compilation, it may succeed, by chance, but you had better\navoid parallel builds (make -j) in this platform, or get a better\ncompiler." Literal.String.Double +'"' Literal.String.Double +'\n\n\t' Text +'$run' Name.Variable +' ' Text +'$rm' Name.Variable +' ' Text +'$removelist' Name.Variable +'\n\t' Text +'exit' Name.Builtin +' ' Text +'$EXIT_FAILURE' Name.Variable +'\n ' Text +'fi' Keyword +'\n ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$srcfile' Name.Variable +'"' Literal.String.Double +' ' Text +'>' Text +' ' Text +'"' Literal.String.Double +'$lockfile' Name.Variable +'"' Literal.String.Double +'\n ' Text +'fi' Keyword +'\n\n ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$fix_srcfile_path' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'eval' Name.Builtin +' ' Text +'srcfile' Name.Variable +'=' Operator +'\\"' Literal.String.Escape +'$fix_srcfile_path' Name.Variable +'\\"' Literal.String.Escape +'\n ' Text +'fi' Keyword +'\n ' Text +'qsrcfile' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$srcfile' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +' ' Text +'-e' Text +' ' Text +'"' Literal.String.Double +'$sed_quote_subst' Name.Variable +'"' Literal.String.Double +'`' Literal.String.Backtick +'\n ' Text +'case' Keyword +' ' Text +'$qsrcfile' Name.Variable +' ' Text +'in' Keyword +'\n ' Text +'*' Text +'[' Operator +'\\[' Literal.String.Escape +'\\~' Literal.String.Escape +'\\#' Literal.String.Escape +'\\^' Literal.String.Escape +'\\&' Literal.String.Escape +'\\*' Literal.String.Escape +'\\(' Literal.String.Escape +'\\)' Literal.String.Escape +'\\{' Literal.String.Escape +'\\}' Literal.String.Escape +'\\|' Literal.String.Escape +'\\;' Literal.String.Escape +'\\<' Literal.String.Escape +'\\>' Literal.String.Escape +'\\?' Literal.String.Escape +"\\'" Literal.String.Escape +'\\ ' Literal.String.Escape +'\\\t' Literal.String.Escape +']' Operator +'*' Text +'|' Punctuation +'*' Text +']' Operator +'*' Text +'|' Punctuation +'""' Literal.String.Double +')' Operator +'\n ' Text +'qsrcfile' Name.Variable +'=' Operator +'"' Literal.String.Double +'\\"' Literal.String.Double +'$qsrcfile' Name.Variable +'\\"' Literal.String.Double +'"' Literal.String.Double +' ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'esac' Keyword +'\n\n ' Text +'$run' Name.Variable +' ' Text +'$rm' Name.Variable +' ' Text +'"' Literal.String.Double +'$libobj' Name.Variable +'"' Literal.String.Double +' ' Text +'"' Literal.String.Double +'${' Literal.String.Interpol +'libobj' Name.Variable +'}' Literal.String.Interpol +'T' Literal.String.Double +'"' Literal.String.Double +'\n\n ' Text +'# Create a libtool object file (analogous to a ".la" file),\n' Comment.Single + +' ' Text +"# but don't create it if we're doing a dry run.\n" Comment.Single + +' ' Text +'test' Name.Builtin +' ' Text +'-z' Text +' ' Text +'"' Literal.String.Double +'$run' Name.Variable +'"' Literal.String.Double +' ' Text +'&&' Operator +' ' Text +'cat' Text +' ' Text +'>' Text +' ' Text +'${' Literal.String.Interpol +'libobj' Name.Variable +'}' Literal.String.Interpol +'T' Text +' ' Text +'</dev/null`' Literal.String.Double +'"' Literal.String.Double +' ' Text +'!' Text +'=' Operator +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$srcfile' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'\\\n*** ERROR, ' Literal.String.Double +'$lockfile' Name.Variable +' contains:\n`cat ' Literal.String.Double +'$lockfile' Name.Variable +' 2>/dev/null`\n\nbut it should contain:\n' Literal.String.Double + +'$srcfile' Name.Variable +"\n\nThis indicates that another process is trying to use the same\ntemporary object file, and libtool could not work around it because\nyour compiler does not support \\`-c' and \\`-o' together. If you\nrepeat this compilation, it may succeed, by chance, but you had better\navoid parallel builds (make -j) in this platform, or get a better\ncompiler." Literal.String.Double +'"' Literal.String.Double +'\n\n\t' Text +'$run' Name.Variable +' ' Text +'$rm' Name.Variable +' ' Text +'$removelist' Name.Variable +'\n\t' Text +'exit' Name.Builtin +' ' Text +'$EXIT_FAILURE' Name.Variable +'\n ' Text +'fi' Keyword +'\n\n ' Text +'# Just move the object if needed, then go on to compile the next one\n' Comment.Single + +' ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$output_obj' Name.Variable +'"' Literal.String.Double +' ' Text +'&&' Operator +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$output_obj' Name.Variable +'"' Literal.String.Double +' ' Text +'!' Text +'=' Operator +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$lobj' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t' Text +'$show' Name.Variable +' ' Text +'"' Literal.String.Double +'$mv' Name.Variable +' ' Literal.String.Double +'$output_obj' Name.Variable +' ' Literal.String.Double +'$lobj' Name.Variable +'"' Literal.String.Double +'\n\t' Text +'if' Keyword +' ' Text +'$run' Name.Variable +' ' Text +'$mv' Name.Variable +' ' Text +'$output_obj' Name.Variable +' ' Text +'$lobj' Name.Variable +';' Punctuation +' ' Text +'then' Keyword +' ' Text +':' Text +'\n\t' Text +'else' Keyword +'\n\t ' Text +'error' Name.Variable +'=' Operator +'$?' Name.Variable +'\n\t ' Text +'$run' Name.Variable +' ' Text +'$rm' Name.Variable +' ' Text +'$removelist' Name.Variable +'\n\t ' Text +'exit' Name.Builtin +' ' Text +'$error' Name.Variable +'\n\t' Text +'fi' Keyword +'\n ' Text +'fi' Keyword +'\n\n ' Text +'# Append the name of the PIC object to the libtool object file.\n' Comment.Single + +' ' Text +'test' Name.Builtin +' ' Text +'-z' Text +' ' Text +'"' Literal.String.Double +'$run' Name.Variable +'"' Literal.String.Double +' ' Text +'&&' Operator +' ' Text +'cat' Text +' ' Text +'>>' Text +' ' Text +'${' Literal.String.Interpol +'libobj' Name.Variable +'}' Literal.String.Interpol +'T' Text +' ' Text +"</dev/null 2>&1'" Literal.String.Single +'\n ' Text +'fi' Keyword +'\n ' Text +'else' Keyword +'\n ' Text +"# No PIC object so indicate it doesn't exist in the libtool\n" Comment.Single + +' ' Text +'# object file.\n' Comment.Single + +' ' Text +'test' Name.Builtin +' ' Text +'-z' Text +' ' Text +'"' Literal.String.Double +'$run' Name.Variable +'"' Literal.String.Double +' ' Text +'&&' Operator +' ' Text +'cat' Text +' ' Text +'>>' Text +' ' Text +'${' Literal.String.Interpol +'libobj' Name.Variable +'}' Literal.String.Interpol +'T' Text +' ' Text +'</dev/null`' Literal.String.Double +'"' Literal.String.Double +' ' Text +'!' Text +'=' Operator +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$srcfile' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'\\\n*** ERROR, ' Literal.String.Double +'$lockfile' Name.Variable +' contains:\n`cat ' Literal.String.Double +'$lockfile' Name.Variable +' 2>/dev/null`\n\nbut it should contain:\n' Literal.String.Double + +'$srcfile' Name.Variable +"\n\nThis indicates that another process is trying to use the same\ntemporary object file, and libtool could not work around it because\nyour compiler does not support \\`-c' and \\`-o' together. If you\nrepeat this compilation, it may succeed, by chance, but you had better\navoid parallel builds (make -j) in this platform, or get a better\ncompiler." Literal.String.Double +'"' Literal.String.Double +'\n\n\t' Text +'$run' Name.Variable +' ' Text +'$rm' Name.Variable +' ' Text +'$removelist' Name.Variable +'\n\t' Text +'exit' Name.Builtin +' ' Text +'$EXIT_FAILURE' Name.Variable +'\n ' Text +'fi' Keyword +'\n\n ' Text +'# Just move the object if needed\n' Comment.Single + +' ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$output_obj' Name.Variable +'"' Literal.String.Double +' ' Text +'&&' Operator +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$output_obj' Name.Variable +'"' Literal.String.Double +' ' Text +'!' Text +'=' Operator +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$obj' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t' Text +'$show' Name.Variable +' ' Text +'"' Literal.String.Double +'$mv' Name.Variable +' ' Literal.String.Double +'$output_obj' Name.Variable +' ' Literal.String.Double +'$obj' Name.Variable +'"' Literal.String.Double +'\n\t' Text +'if' Keyword +' ' Text +'$run' Name.Variable +' ' Text +'$mv' Name.Variable +' ' Text +'$output_obj' Name.Variable +' ' Text +'$obj' Name.Variable +';' Punctuation +' ' Text +'then' Keyword +' ' Text +':' Text +'\n\t' Text +'else' Keyword +'\n\t ' Text +'error' Name.Variable +'=' Operator +'$?' Name.Variable +'\n\t ' Text +'$run' Name.Variable +' ' Text +'$rm' Name.Variable +' ' Text +'$removelist' Name.Variable +'\n\t ' Text +'exit' Name.Builtin +' ' Text +'$error' Name.Variable +'\n\t' Text +'fi' Keyword +'\n ' Text +'fi' Keyword +'\n\n ' Text +'# Append the name of the non-PIC object the libtool object file.\n' Comment.Single + +' ' Text +'# Only append if the libtool object file exists.\n' Comment.Single + +' ' Text +'test' Name.Builtin +' ' Text +'-z' Text +' ' Text +'"' Literal.String.Double +'$run' Name.Variable +'"' Literal.String.Double +' ' Text +'&&' Operator +' ' Text +'cat' Text +' ' Text +'>>' Text +' ' Text +'${' Literal.String.Interpol +'libobj' Name.Variable +'}' Literal.String.Interpol +'T' Text +' ' Text +"<>' Text +' ' Text +'${' Literal.String.Interpol +'libobj' Name.Variable +'}' Literal.String.Interpol +'T' Text +' ' Text +'<' Text +'&' Punctuation +'2' Literal.Number +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$link_static_flag' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'dlopen_self' Name.Variable +'=' Operator +'$dlopen_self_static' Name.Variable +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'prefer_static_libs' Name.Variable +'=' Operator +'yes' Text +'\n\t' Text +'else' Keyword +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-z' Text +' ' Text +'"' Literal.String.Double +'$pic_flag' Name.Variable +'"' Literal.String.Double +' ' Text +'&&' Operator +' ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$link_static_flag' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'dlopen_self' Name.Variable +'=' Operator +'$dlopen_self_static' Name.Variable +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'prefer_static_libs' Name.Variable +'=' Operator +'built' Text +'\n\t' Text +'fi' Keyword +'\n\t' Text +'build_libtool_libs' Name.Variable +'=' Operator +'no' Text +'\n\t' Text +'build_old_libs' Name.Variable +'=' Operator +'yes' Text +'\n\t' Text +'break' Name.Builtin +'\n\t' Text +';' Punctuation +';' Punctuation +'\n ' Text +'esac' Keyword +'\n ' Text +'done' Keyword +'\n\n ' Text +'# See if our shared archives depend on static archives.\n' Comment.Single + +' ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$old_archive_from_new_cmds' Name.Variable +'"' Literal.String.Double +' ' Text +'&&' Operator +' ' Text +'build_old_libs' Name.Variable +'=' Operator +'yes' Text +'\n\n ' Text +'# Go through the arguments, transforming them on the way.\n' Comment.Single + +' ' Text +'while' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$#' Name.Variable +'"' Literal.String.Double +' ' Text +'-gt' Text +' ' Text +'0' Literal.Number +';' Punctuation +' ' Text +'do' Keyword +'\n ' Text +'arg' Name.Variable +'=' Operator +'"' Literal.String.Double +'$1' Name.Variable +'"' Literal.String.Double +'\n ' Text +'shift' Name.Builtin +'\n ' Text +'case' Keyword +' ' Text +'$arg' Name.Variable +' ' Text +'in' Keyword +'\n ' Text +'*' Text +'[' Operator +'\\[' Literal.String.Escape +'\\~' Literal.String.Escape +'\\#' Literal.String.Escape +'\\^' Literal.String.Escape +'\\&' Literal.String.Escape +'\\*' Literal.String.Escape +'\\(' Literal.String.Escape +'\\)' Literal.String.Escape +'\\{' Literal.String.Escape +'\\}' Literal.String.Escape +'\\|' Literal.String.Escape +'\\;' Literal.String.Escape +'\\<' Literal.String.Escape +'\\>' Literal.String.Escape +'\\?' Literal.String.Escape +"\\'" Literal.String.Escape +'\\ ' Literal.String.Escape +'\\\t' Literal.String.Escape +']' Operator +'*' Text +'|' Punctuation +'*' Text +']' Operator +'*' Text +'|' Punctuation +'""' Literal.String.Double +')' Operator +'\n\t' Text +'qarg' Name.Variable +'=' Operator +'\\"' Literal.String.Escape +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +' ' Text +'-e' Text +' ' Text +'"' Literal.String.Double +'$sed_quote_subst' Name.Variable +'"' Literal.String.Double +'`' Literal.String.Backtick +'\\"' Literal.String.Escape +' ' Text +'### testsuite: skip nested quoting test\n' Comment.Single + +'\t' Text +';' Punctuation +';' Punctuation +'\n ' Text +'*' Text +')' Operator +' ' Text +'qarg' Name.Variable +'=' Operator +'$arg' Name.Variable +' ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'esac' Keyword +'\n ' Text +'libtool_args' Name.Variable +'=' Operator +'"' Literal.String.Double +'$libtool_args' Name.Variable +' ' Literal.String.Double +'$qarg' Name.Variable +'"' Literal.String.Double +'\n\n ' Text +'# If the previous option needs an argument, assign it.\n' Comment.Single + +' ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$prev' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t' Text +'case' Keyword +' ' Text +'$prev' Name.Variable +' ' Text +'in' Keyword +'\n\t' Text +'output' Text +')' Operator +'\n\t ' Text +'compile_command' Name.Variable +'=' Operator +'"' Literal.String.Double +'$compile_command' Name.Variable +' @OUTPUT@' Literal.String.Double +'"' Literal.String.Double +'\n\t ' Text +'finalize_command' Name.Variable +'=' Operator +'"' Literal.String.Double +'$finalize_command' Name.Variable +' @OUTPUT@' Literal.String.Double +'"' Literal.String.Double +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'esac' Keyword +'\n\n\t' Text +'case' Keyword +' ' Text +'$prev' Name.Variable +' ' Text +'in' Keyword +'\n\t' Text +'dlfiles' Text +'|' Punctuation +'dlprefiles' Text +')' Operator +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$preload' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'no' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'# Add the symbol object into the linking commands.\n' Comment.Single + +'\t ' Text +'compile_command' Name.Variable +'=' Operator +'"' Literal.String.Double +'$compile_command' Name.Variable +' @SYMFILE@' Literal.String.Double +'"' Literal.String.Double +'\n\t ' Text +'finalize_command' Name.Variable +'=' Operator +'"' Literal.String.Double +'$finalize_command' Name.Variable +' @SYMFILE@' Literal.String.Double +'"' Literal.String.Double +'\n\t ' Text +'preload' Name.Variable +'=' Operator +'yes' Text +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'case' Keyword +' ' Text +'$arg' Name.Variable +' ' Text +'in' Keyword +'\n\t ' Text +'*.la' Text +' ' Text +'|' Punctuation +' ' Text +'*.lo' Text +')' Operator +' ' Text +';' Punctuation +';' Punctuation +' ' Text +'# We handle these cases below.\n' Comment.Single + +'\t ' Text +'force' Text +')' Operator +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$dlself' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'no' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'dlself' Name.Variable +'=' Operator +'needless' Text +'\n\t ' Text +'export_dynamic' Name.Variable +'=' Operator +'yes' Text +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'prev' Name.Variable +'=' Operator +'\n\t ' Text +'continue' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'self' Text +')' Operator +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$prev' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'dlprefiles' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'dlself' Name.Variable +'=' Operator +'yes' Text +'\n\t ' Text +'elif' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$prev' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'dlfiles' Text +' ' Text +'&&' Operator +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$dlopen_self' Name.Variable +'"' Literal.String.Double +' ' Text +'!' Text +'=' Operator +' ' Text +'yes' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'dlself' Name.Variable +'=' Operator +'yes' Text +'\n\t ' Text +'else' Keyword +'\n\t ' Text +'dlself' Name.Variable +'=' Operator +'needless' Text +'\n\t ' Text +'export_dynamic' Name.Variable +'=' Operator +'yes' Text +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'prev' Name.Variable +'=' Operator +'\n\t ' Text +'continue' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'*' Text +')' Operator +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$prev' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'dlfiles' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'dlfiles' Name.Variable +'=' Operator +'"' Literal.String.Double +'$dlfiles' Name.Variable +' ' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'else' Keyword +'\n\t ' Text +'dlprefiles' Name.Variable +'=' Operator +'"' Literal.String.Double +'$dlprefiles' Name.Variable +' ' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'prev' Name.Variable +'=' Operator +'\n\t ' Text +'continue' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'esac' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'expsyms' Text +')' Operator +'\n\t ' Text +'export_symbols' Name.Variable +'=' Operator +'"' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'!' Text +' ' Text +'-f' Text +' ' Text +'"' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$modename' Name.Variable +': symbol file \\`' Literal.String.Double +'$arg' Name.Variable +"' does not exist" Literal.String.Double +'"' Literal.String.Double +'\n\t ' Text +'exit' Name.Builtin +' ' Text +'$EXIT_FAILURE' Name.Variable +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'prev' Name.Variable +'=' Operator +'\n\t ' Text +'continue' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'expsyms_regex' Text +')' Operator +'\n\t ' Text +'export_symbols_regex' Name.Variable +'=' Operator +'"' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'prev' Name.Variable +'=' Operator +'\n\t ' Text +'continue' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'inst_prefix' Text +')' Operator +'\n\t ' Text +'inst_prefix_dir' Name.Variable +'=' Operator +'"' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'prev' Name.Variable +'=' Operator +'\n\t ' Text +'continue' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'precious_regex' Text +')' Operator +'\n\t ' Text +'precious_files_regex' Name.Variable +'=' Operator +'"' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'prev' Name.Variable +'=' Operator +'\n\t ' Text +'continue' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'release' Text +')' Operator +'\n\t ' Text +'release' Name.Variable +'=' Operator +'"' Literal.String.Double +'-' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'prev' Name.Variable +'=' Operator +'\n\t ' Text +'continue' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'objectlist' Text +')' Operator +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-f' Text +' ' Text +'"' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'save_arg' Name.Variable +'=' Operator +'$arg' Name.Variable +'\n\t ' Text +'moreargs' Name.Variable +'=' Operator +'\n\t ' Text +'for' Keyword +' ' Text +'fil' Text +' ' Text +'in' Keyword +' ' Text +'`' Literal.String.Backtick +'cat' Text +' ' Text +'$save_arg' Name.Variable +'`' Literal.String.Backtick +'\n\t ' Text +'do' Keyword +'\n' Text + +'#\t moreargs="$moreargs $fil"\n' Comment.Single + +'\t ' Text +'arg' Name.Variable +'=' Operator +'$fil' Name.Variable +'\n\t ' Text +'# A libtool-controlled object.\n' Comment.Single + +'\n\t ' Text +'# Check to see that this really is a libtool object.\n' Comment.Single + +'\t ' Text +'if' Keyword +' ' Text +'(' Operator +'${' Literal.String.Interpol +'SED' Name.Variable +'}' Literal.String.Interpol +' ' Text +'-e' Text +' ' Text +"'2q'" Literal.String.Single +' ' Text +'$arg' Name.Variable +' ' Text +'|' Punctuation +' ' Text +'grep' Text +' ' Text +'"' Literal.String.Double +'^# Generated by .*' Literal.String.Double +'$PACKAGE' Name.Variable +'"' Literal.String.Double +')' Operator +' ' Text +'>/dev/null' Text +' ' Text +'2' Literal.Number +'>' Text +'&' Punctuation +'1' Literal.Number +';' Punctuation +' ' Text +'then' Keyword +'\n\t\t' Text +'pic_object' Name.Variable +'=' Operator +'\n\t\t' Text +'non_pic_object' Name.Variable +'=' Operator +'\n\n\t\t' Text +'# Read the .lo file\n' Comment.Single + +'\t\t' Text +'# If there is no directory component, then add one.\n' Comment.Single + +'\t\t' Text +'case' Keyword +' ' Text +'$arg' Name.Variable +' ' Text +'in' Keyword +'\n\t\t' Text +'*/*' Text +' ' Text +'|' Punctuation +' ' Text +'*' Text +'\\\\' Literal.String.Escape +'*' Text +')' Operator +' ' Text +'.' Text +' ' Text +'$arg' Name.Variable +' ' Text +';' Punctuation +';' Punctuation +'\n\t\t' Text +'*' Text +')' Operator +' ' Text +'.' Text +' ' Text +'./' Text +'$arg' Name.Variable +' ' Text +';' Punctuation +';' Punctuation +'\n\t\t' Text +'esac' Keyword +'\n\n\t\t' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-z' Text +' ' Text +'"' Literal.String.Double +'$pic_object' Name.Variable +'"' Literal.String.Double +' ' Text +'||' Operator +' ' Text +'\\\n' Literal.String.Escape + +'\t\t ' Text +'test' Name.Builtin +' ' Text +'-z' Text +' ' Text +'"' Literal.String.Double +'$non_pic_object' Name.Variable +'"' Literal.String.Double +' ' Text +'||' Operator +'\n\t\t ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$pic_object' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'none' Text +' ' Text +'&&' Operator +' ' Text +'\\\n' Literal.String.Escape + +'\t\t ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$non_pic_object' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'none' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t\t ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$modename' Name.Variable +': cannot find name of object for \\`' Literal.String.Double +'$arg' Name.Variable +"'" Literal.String.Double +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n\t\t ' Text +'exit' Name.Builtin +' ' Text +'$EXIT_FAILURE' Name.Variable +'\n\t\t' Text +'fi' Keyword +'\n\n\t\t' Text +'# Extract subdirectory from the argument.\n' Comment.Single + +'\t\t' Text +'xdir' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +' ' Text +'-e' Text +' ' Text +"'s%/[^/]*$%%'" Literal.String.Single +'`' Literal.String.Backtick +'\n\t\t' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$xdir' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t\t ' Text +'xdir' Name.Variable +'=' Operator +'\n\t\t' Text +'else' Keyword +'\n\t\t ' Text +'xdir' Name.Variable +'=' Operator +'"' Literal.String.Double +'$xdir' Name.Variable +'/' Literal.String.Double +'"' Literal.String.Double +'\n\t\t' Text +'fi' Keyword +'\n\n\t\t' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$pic_object' Name.Variable +'"' Literal.String.Double +' ' Text +'!' Text +'=' Operator +' ' Text +'none' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t\t ' Text +'# Prepend the subdirectory the object is found in.\n' Comment.Single + +'\t\t ' Text +'pic_object' Name.Variable +'=' Operator +'"' Literal.String.Double +'$xdir' Name.Variable +'$pic_object' Name.Variable +'"' Literal.String.Double +'\n\n\t\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$prev' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'dlfiles' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$build_libtool_libs' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'yes' Text +' ' Text +'&&' Operator +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$dlopen_support' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'yes' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t\t ' Text +'dlfiles' Name.Variable +'=' Operator +'"' Literal.String.Double +'$dlfiles' Name.Variable +' ' Literal.String.Double +'$pic_object' Name.Variable +'"' Literal.String.Double +'\n\t\t ' Text +'prev' Name.Variable +'=' Operator +'\n\t\t ' Text +'continue' Keyword +'\n\t\t ' Text +'else' Keyword +'\n\t\t ' Text +'# If libtool objects are unsupported, then we need to preload.\n' Comment.Single + +'\t\t ' Text +'prev' Name.Variable +'=' Operator +'dlprefiles' Text +'\n\t\t ' Text +'fi' Keyword +'\n\t\t ' Text +'fi' Keyword +'\n\n\t\t ' Text +'# CHECK ME: I think I busted this. -Ossama\n' Comment.Single + +'\t\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$prev' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'dlprefiles' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t\t ' Text +'# Preload the old-style object.\n' Comment.Single + +'\t\t ' Text +'dlprefiles' Name.Variable +'=' Operator +'"' Literal.String.Double +'$dlprefiles' Name.Variable +' ' Literal.String.Double +'$pic_object' Name.Variable +'"' Literal.String.Double +'\n\t\t ' Text +'prev' Name.Variable +'=' Operator +'\n\t\t ' Text +'fi' Keyword +'\n\n\t\t ' Text +'# A PIC object.\n' Comment.Single + +'\t\t ' Text +'libobjs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$libobjs' Name.Variable +' ' Literal.String.Double +'$pic_object' Name.Variable +'"' Literal.String.Double +'\n\t\t ' Text +'arg' Name.Variable +'=' Operator +'"' Literal.String.Double +'$pic_object' Name.Variable +'"' Literal.String.Double +'\n\t\t' Text +'fi' Keyword +'\n\n\t\t' Text +'# Non-PIC object.\n' Comment.Single + +'\t\t' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$non_pic_object' Name.Variable +'"' Literal.String.Double +' ' Text +'!' Text +'=' Operator +' ' Text +'none' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t\t ' Text +'# Prepend the subdirectory the object is found in.\n' Comment.Single + +'\t\t ' Text +'non_pic_object' Name.Variable +'=' Operator +'"' Literal.String.Double +'$xdir' Name.Variable +'$non_pic_object' Name.Variable +'"' Literal.String.Double +'\n\n\t\t ' Text +'# A standard non-PIC object\n' Comment.Single + +'\t\t ' Text +'non_pic_objects' Name.Variable +'=' Operator +'"' Literal.String.Double +'$non_pic_objects' Name.Variable +' ' Literal.String.Double +'$non_pic_object' Name.Variable +'"' Literal.String.Double +'\n\t\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-z' Text +' ' Text +'"' Literal.String.Double +'$pic_object' Name.Variable +'"' Literal.String.Double +' ' Text +'||' Operator +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$pic_object' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'none' Text +' ' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t\t ' Text +'arg' Name.Variable +'=' Operator +'"' Literal.String.Double +'$non_pic_object' Name.Variable +'"' Literal.String.Double +'\n\t\t ' Text +'fi' Keyword +'\n\t\t' Text +'else' Keyword +'\n\t\t ' Text +'# If the PIC object exists, use it instead.\n' Comment.Single + +'\t\t ' Text +'# $xdir was prepended to $pic_object above.\n' Comment.Single + +'\t\t ' Text +'non_pic_object' Name.Variable +'=' Operator +'"' Literal.String.Double +'$pic_object' Name.Variable +'"' Literal.String.Double +'\n\t\t ' Text +'non_pic_objects' Name.Variable +'=' Operator +'"' Literal.String.Double +'$non_pic_objects' Name.Variable +' ' Literal.String.Double +'$non_pic_object' Name.Variable +'"' Literal.String.Double +'\n\t\t' Text +'fi' Keyword +'\n\t ' Text +'else' Keyword +'\n\t\t' Text +'# Only an error if not doing a dry-run.\n' Comment.Single + +'\t\t' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-z' Text +' ' Text +'"' Literal.String.Double +'$run' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t\t ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$modename' Name.Variable +': \\`' Literal.String.Double +'$arg' Name.Variable +"' is not a valid libtool object" Literal.String.Double +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n\t\t ' Text +'exit' Name.Builtin +' ' Text +'$EXIT_FAILURE' Name.Variable +'\n\t\t' Text +'else' Keyword +'\n\t\t ' Text +'# Dry-run case.\n' Comment.Single + +'\n\t\t ' Text +'# Extract subdirectory from the argument.\n' Comment.Single + +'\t\t ' Text +'xdir' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +' ' Text +'-e' Text +' ' Text +"'s%/[^/]*$%%'" Literal.String.Single +'`' Literal.String.Backtick +'\n\t\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$xdir' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t\t ' Text +'xdir' Name.Variable +'=' Operator +'\n\t\t ' Text +'else' Keyword +'\n\t\t ' Text +'xdir' Name.Variable +'=' Operator +'"' Literal.String.Double +'$xdir' Name.Variable +'/' Literal.String.Double +'"' Literal.String.Double +'\n\t\t ' Text +'fi' Keyword +'\n\n\t\t ' Text +'pic_object' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'${' Literal.String.Interpol +'xdir' Name.Variable +'}' Literal.String.Interpol +'${' Literal.String.Interpol +'objdir' Name.Variable +'}' Literal.String.Interpol +'/' Literal.String.Double +'${' Literal.String.Interpol +'arg' Name.Variable +'}' Literal.String.Interpol +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +' ' Text +'-e' Text +' ' Text +'"' Literal.String.Double +'$lo2o' Name.Variable +'"' Literal.String.Double +'`' Literal.String.Backtick +'\n\t\t ' Text +'non_pic_object' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'${' Literal.String.Interpol +'xdir' Name.Variable +'}' Literal.String.Interpol +'${' Literal.String.Interpol +'arg' Name.Variable +'}' Literal.String.Interpol +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +' ' Text +'-e' Text +' ' Text +'"' Literal.String.Double +'$lo2o' Name.Variable +'"' Literal.String.Double +'`' Literal.String.Backtick +'\n\t\t ' Text +'libobjs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$libobjs' Name.Variable +' ' Literal.String.Double +'$pic_object' Name.Variable +'"' Literal.String.Double +'\n\t\t ' Text +'non_pic_objects' Name.Variable +'=' Operator +'"' Literal.String.Double +'$non_pic_objects' Name.Variable +' ' Literal.String.Double +'$non_pic_object' Name.Variable +'"' Literal.String.Double +'\n\t\t' Text +'fi' Keyword +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'done' Keyword +'\n\t ' Text +'else' Keyword +'\n\t ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$modename' Name.Variable +': link input file \\`' Literal.String.Double +'$save_arg' Name.Variable +"' does not exist" Literal.String.Double +'"' Literal.String.Double +'\n\t ' Text +'exit' Name.Builtin +' ' Text +'$EXIT_FAILURE' Name.Variable +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'arg' Name.Variable +'=' Operator +'$save_arg' Name.Variable +'\n\t ' Text +'prev' Name.Variable +'=' Operator +'\n\t ' Text +'continue' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'rpath' Text +' ' Text +'|' Punctuation +' ' Text +'xrpath' Text +')' Operator +'\n\t ' Text +'# We need an absolute path.\n' Comment.Single + +'\t ' Text +'case' Keyword +' ' Text +'$arg' Name.Variable +' ' Text +'in' Keyword +'\n\t ' Text +'[' Operator +'\\\\' Literal.String.Escape +'/' Text +']' Operator +'*' Text +' ' Text +'|' Punctuation +' ' Text +'[' Operator +'A-Za-z' Text +']' Operator +':' Text +'[' Operator +'\\\\' Literal.String.Escape +'/' Text +']' Operator +'*' Text +')' Operator +' ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'*' Text +')' Operator +'\n\t ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$modename' Name.Variable +': only absolute run-paths are allowed' Literal.String.Double +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n\t ' Text +'exit' Name.Builtin +' ' Text +'$EXIT_FAILURE' Name.Variable +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'esac' Keyword +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$prev' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'rpath' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'case' Keyword +' ' Text +'"' Literal.String.Double +'$rpath' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +' ' Text +'in' Keyword +'\n\t ' Text +'*' Text +'"' Literal.String.Double +' ' Literal.String.Double +'$arg' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +'*' Text +')' Operator +' ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'*' Text +')' Operator +' ' Text +'rpath' Name.Variable +'=' Operator +'"' Literal.String.Double +'$rpath' Name.Variable +' ' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +' ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'esac' Keyword +'\n\t ' Text +'else' Keyword +'\n\t ' Text +'case' Keyword +' ' Text +'"' Literal.String.Double +'$xrpath' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +' ' Text +'in' Keyword +'\n\t ' Text +'*' Text +'"' Literal.String.Double +' ' Literal.String.Double +'$arg' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +'*' Text +')' Operator +' ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'*' Text +')' Operator +' ' Text +'xrpath' Name.Variable +'=' Operator +'"' Literal.String.Double +'$xrpath' Name.Variable +' ' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +' ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'esac' Keyword +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'prev' Name.Variable +'=' Operator +'\n\t ' Text +'continue' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'xcompiler' Text +')' Operator +'\n\t ' Text +'compiler_flags' Name.Variable +'=' Operator +'"' Literal.String.Double +'$compiler_flags' Name.Variable +' ' Literal.String.Double +'$qarg' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'prev' Name.Variable +'=' Operator +'\n\t ' Text +'compile_command' Name.Variable +'=' Operator +'"' Literal.String.Double +'$compile_command' Name.Variable +' ' Literal.String.Double +'$qarg' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'finalize_command' Name.Variable +'=' Operator +'"' Literal.String.Double +'$finalize_command' Name.Variable +' ' Literal.String.Double +'$qarg' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'continue' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'xlinker' Text +')' Operator +'\n\t ' Text +'linker_flags' Name.Variable +'=' Operator +'"' Literal.String.Double +'$linker_flags' Name.Variable +' ' Literal.String.Double +'$qarg' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'compiler_flags' Name.Variable +'=' Operator +'"' Literal.String.Double +'$compiler_flags' Name.Variable +' ' Literal.String.Double +'$wl' Name.Variable +'$qarg' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'prev' Name.Variable +'=' Operator +'\n\t ' Text +'compile_command' Name.Variable +'=' Operator +'"' Literal.String.Double +'$compile_command' Name.Variable +' ' Literal.String.Double +'$wl' Name.Variable +'$qarg' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'finalize_command' Name.Variable +'=' Operator +'"' Literal.String.Double +'$finalize_command' Name.Variable +' ' Literal.String.Double +'$wl' Name.Variable +'$qarg' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'continue' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'xcclinker' Text +')' Operator +'\n\t ' Text +'linker_flags' Name.Variable +'=' Operator +'"' Literal.String.Double +'$linker_flags' Name.Variable +' ' Literal.String.Double +'$qarg' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'compiler_flags' Name.Variable +'=' Operator +'"' Literal.String.Double +'$compiler_flags' Name.Variable +' ' Literal.String.Double +'$qarg' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'prev' Name.Variable +'=' Operator +'\n\t ' Text +'compile_command' Name.Variable +'=' Operator +'"' Literal.String.Double +'$compile_command' Name.Variable +' ' Literal.String.Double +'$qarg' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'finalize_command' Name.Variable +'=' Operator +'"' Literal.String.Double +'$finalize_command' Name.Variable +' ' Literal.String.Double +'$qarg' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'continue' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'shrext' Text +')' Operator +'\n \t ' Text +'shrext_cmds' Name.Variable +'=' Operator +'"' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'prev' Name.Variable +'=' Operator +'\n\t ' Text +'continue' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'darwin_framework' Text +'|' Punctuation +'darwin_framework_skip' Text +')' Operator +'\n\t ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$prev' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'"darwin_framework"' Literal.String.Double +' ' Text +'&&' Operator +' ' Text +'compiler_flags' Name.Variable +'=' Operator +'"' Literal.String.Double +'$compiler_flags' Name.Variable +' ' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'compile_command' Name.Variable +'=' Operator +'"' Literal.String.Double +'$compile_command' Name.Variable +' ' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'finalize_command' Name.Variable +'=' Operator +'"' Literal.String.Double +'$finalize_command' Name.Variable +' ' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'prev' Name.Variable +'=' Operator +'\n\t ' Text +'continue' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'*' Text +')' Operator +'\n\t ' Text +'eval' Name.Builtin +' ' Text +'"' Literal.String.Double +'$prev' Name.Variable +'=\\"\\$arg\\"' Literal.String.Double +'"' Literal.String.Double +'\n\t ' Text +'prev' Name.Variable +'=' Operator +'\n\t ' Text +'continue' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'esac' Keyword +'\n ' Text +'fi' Keyword +' ' Text +'# test -n "$prev"\n' Comment.Single + +'\n ' Text +'prevarg' Name.Variable +'=' Operator +'"' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n\n ' Text +'case' Keyword +' ' Text +'$arg' Name.Variable +' ' Text +'in' Keyword +'\n ' Text +'-all-static' Text +')' Operator +'\n\t' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$link_static_flag' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'compile_command' Name.Variable +'=' Operator +'"' Literal.String.Double +'$compile_command' Name.Variable +' ' Literal.String.Double +'$link_static_flag' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'finalize_command' Name.Variable +'=' Operator +'"' Literal.String.Double +'$finalize_command' Name.Variable +' ' Literal.String.Double +'$link_static_flag' Name.Variable +'"' Literal.String.Double +'\n\t' Text +'fi' Keyword +'\n\t' Text +'continue' Keyword +'\n\t' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'-allow-undefined' Text +')' Operator +'\n\t' Text +'# FIXME: remove this flag sometime in the future.\n' Comment.Single + +'\t' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$modename' Name.Variable +": \\`-allow-undefined' is deprecated because it is the default" Literal.String.Double +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n\t' Text +'continue' Keyword +'\n\t' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'-avoid-version' Text +')' Operator +'\n\t' Text +'avoid_version' Name.Variable +'=' Operator +'yes' Text +'\n\t' Text +'continue' Keyword +'\n\t' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'-dlopen' Text +')' Operator +'\n\t' Text +'prev' Name.Variable +'=' Operator +'dlfiles' Text +'\n\t' Text +'continue' Keyword +'\n\t' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'-dlpreopen' Text +')' Operator +'\n\t' Text +'prev' Name.Variable +'=' Operator +'dlprefiles' Text +'\n\t' Text +'continue' Keyword +'\n\t' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'-export-dynamic' Text +')' Operator +'\n\t' Text +'export_dynamic' Name.Variable +'=' Operator +'yes' Text +'\n\t' Text +'continue' Keyword +'\n\t' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'-export-symbols' Text +' ' Text +'|' Punctuation +' ' Text +'-export-symbols-regex' Text +')' Operator +'\n\t' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$export_symbols' Name.Variable +'"' Literal.String.Double +' ' Text +'||' Operator +' ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$export_symbols_regex' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$modename' Name.Variable +': more than one -exported-symbols argument is not allowed' Literal.String.Double +'"' Literal.String.Double +'\n\t ' Text +'exit' Name.Builtin +' ' Text +'$EXIT_FAILURE' Name.Variable +'\n\t' Text +'fi' Keyword +'\n\t' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'"X-export-symbols"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'prev' Name.Variable +'=' Operator +'expsyms' Text +'\n\t' Text +'else' Keyword +'\n\t ' Text +'prev' Name.Variable +'=' Operator +'expsyms_regex' Text +'\n\t' Text +'fi' Keyword +'\n\t' Text +'continue' Keyword +'\n\t' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'-framework' Text +'|' Punctuation +'-arch' Text +'|' Punctuation +'-isysroot' Text +')' Operator +'\n\t' Text +'case' Keyword +' ' Text +'"' Literal.String.Double +' ' Literal.String.Double +'$CC' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +' ' Text +'in' Keyword +'\n\t ' Text +'*' Text +'"' Literal.String.Double +' ' Literal.String.Double +'${' Literal.String.Interpol +'arg' Name.Variable +'}' Literal.String.Interpol +' ' Literal.String.Double +'${' Literal.String.Interpol +'1' Name.Variable +'}' Literal.String.Interpol +' ' Literal.String.Double +'"' Literal.String.Double +'*' Text +' ' Text +'|' Punctuation +' ' Text +'*' Text +'"' Literal.String.Double +' ' Literal.String.Double +'${' Literal.String.Interpol +'arg' Name.Variable +'}' Literal.String.Interpol +'\t' Literal.String.Double +'${' Literal.String.Interpol +'1' Name.Variable +'}' Literal.String.Interpol +' ' Literal.String.Double +'"' Literal.String.Double +'*' Text +')' Operator +' \n\t\t' Text +'prev' Name.Variable +'=' Operator +'darwin_framework_skip' Text +' ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'*' Text +')' Operator +' ' Text +'compiler_flags' Name.Variable +'=' Operator +'"' Literal.String.Double +'$compiler_flags' Name.Variable +' ' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'prev' Name.Variable +'=' Operator +'darwin_framework' Text +' ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'esac' Keyword +'\n\t' Text +'compile_command' Name.Variable +'=' Operator +'"' Literal.String.Double +'$compile_command' Name.Variable +' ' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n\t' Text +'finalize_command' Name.Variable +'=' Operator +'"' Literal.String.Double +'$finalize_command' Name.Variable +' ' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n\t' Text +'continue' Keyword +'\n\t' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'-inst-prefix-dir' Text +')' Operator +'\n\t' Text +'prev' Name.Variable +'=' Operator +'inst_prefix' Text +'\n\t' Text +'continue' Keyword +'\n\t' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'# The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*\n' Comment.Single + +' ' Text +'# so, if we see these flags be careful not to treat them like -L\n' Comment.Single + +' ' Text +'-L' Text +'[' Operator +'A-Z' Text +']' Operator +'[' Operator +'A-Z' Text +']' Operator +'*:*' Text +')' Operator +'\n\t' Text +'case' Keyword +' ' Text +'$with_gcc' Name.Variable +'/' Text +'$host' Name.Variable +' ' Text +'in' Keyword +'\n\t' Text +'no/*-*-irix*' Text +' ' Text +'|' Punctuation +' ' Text +'/*-*-irix*' Text +')' Operator +'\n\t ' Text +'compile_command' Name.Variable +'=' Operator +'"' Literal.String.Double +'$compile_command' Name.Variable +' ' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'finalize_command' Name.Variable +'=' Operator +'"' Literal.String.Double +'$finalize_command' Name.Variable +' ' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'esac' Keyword +'\n\t' Text +'continue' Keyword +'\n\t' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'-L*' Text +')' Operator +'\n\t' Text +'dir' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +' ' Text +'-e' Text +' ' Text +"'s/^-L//'" Literal.String.Single +'`' Literal.String.Backtick +'\n\t' Text +'# We need an absolute path.\n' Comment.Single + +'\t' Text +'case' Keyword +' ' Text +'$dir' Name.Variable +' ' Text +'in' Keyword +'\n\t' Text +'[' Operator +'\\\\' Literal.String.Escape +'/' Text +']' Operator +'*' Text +' ' Text +'|' Punctuation +' ' Text +'[' Operator +'A-Za-z' Text +']' Operator +':' Text +'[' Operator +'\\\\' Literal.String.Escape +'/' Text +']' Operator +'*' Text +')' Operator +' ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'*' Text +')' Operator +'\n\t ' Text +'absdir' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'cd' Name.Builtin +' ' Text +'"' Literal.String.Double +'$dir' Name.Variable +'"' Literal.String.Double +' ' Text +'&&' Operator +' ' Text +'pwd' Name.Builtin +'`' Literal.String.Backtick +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-z' Text +' ' Text +'"' Literal.String.Double +'$absdir' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$modename' Name.Variable +': cannot determine absolute directory name of \\`' Literal.String.Double +'$dir' Name.Variable +"'" Literal.String.Double +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n\t ' Text +'absdir' Name.Variable +'=' Operator +'"' Literal.String.Double +'$dir' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'notinst_path' Name.Variable +'=' Operator +'"' Literal.String.Double +'$notinst_path' Name.Variable +' ' Literal.String.Double +'$dir' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'dir' Name.Variable +'=' Operator +'"' Literal.String.Double +'$absdir' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'esac' Keyword +'\n\t' Text +'case' Keyword +' ' Text +'"' Literal.String.Double +'$deplibs' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +' ' Text +'in' Keyword +'\n\t' Text +'*' Text +'"' Literal.String.Double +' -L' Literal.String.Double +'$dir' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +'*' Text +')' Operator +' ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'*' Text +')' Operator +'\n\t ' Text +'deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$deplibs' Name.Variable +' -L' Literal.String.Double +'$dir' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'lib_search_path' Name.Variable +'=' Operator +'"' Literal.String.Double +'$lib_search_path' Name.Variable +' ' Literal.String.Double +'$dir' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'esac' Keyword +'\n\t' Text +'case' Keyword +' ' Text +'$host' Name.Variable +' ' Text +'in' Keyword +'\n\t' Text +'*-*-cygwin*' Text +' ' Text +'|' Punctuation +' ' Text +'*-*-mingw*' Text +' ' Text +'|' Punctuation +' ' Text +'*-*-pw32*' Text +' ' Text +'|' Punctuation +' ' Text +'*-*-os2*' Text +')' Operator +'\n\t ' Text +'testbindir' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$dir' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +' ' Text +'-e' Text +' ' Text +"'s*/lib$*/bin*'" Literal.String.Single +'`' Literal.String.Backtick +'\n\t ' Text +'case' Keyword +' ' Text +':' Text +'$dllsearchpath' Name.Variable +':' Text +' ' Text +'in' Keyword +'\n\t ' Text +'*' Text +'"' Literal.String.Double +':' Literal.String.Double +'$dir' Name.Variable +':' Literal.String.Double +'"' Literal.String.Double +'*' Text +')' Operator +' ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'*' Text +')' Operator +' ' Text +'dllsearchpath' Name.Variable +'=' Operator +'"' Literal.String.Double +'$dllsearchpath' Name.Variable +':' Literal.String.Double +'$dir' Name.Variable +'"' Literal.String.Double +';' Punctuation +';' Punctuation +'\n\t ' Text +'esac' Keyword +'\n\t ' Text +'case' Keyword +' ' Text +':' Text +'$dllsearchpath' Name.Variable +':' Text +' ' Text +'in' Keyword +'\n\t ' Text +'*' Text +'"' Literal.String.Double +':' Literal.String.Double +'$testbindir' Name.Variable +':' Literal.String.Double +'"' Literal.String.Double +'*' Text +')' Operator +' ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'*' Text +')' Operator +' ' Text +'dllsearchpath' Name.Variable +'=' Operator +'"' Literal.String.Double +'$dllsearchpath' Name.Variable +':' Literal.String.Double +'$testbindir' Name.Variable +'"' Literal.String.Double +';' Punctuation +';' Punctuation +'\n\t ' Text +'esac' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'esac' Keyword +'\n\t' Text +'continue' Keyword +'\n\t' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'-l*' Text +')' Operator +'\n\t' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'"X-lc"' Literal.String.Double +' ' Text +'||' Operator +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'"X-lm"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'case' Keyword +' ' Text +'$host' Name.Variable +' ' Text +'in' Keyword +'\n\t ' Text +'*-*-cygwin*' Text +' ' Text +'|' Punctuation +' ' Text +'*-*-mingw*' Text +' ' Text +'|' Punctuation +' ' Text +'*-*-pw32*' Text +' ' Text +'|' Punctuation +' ' Text +'*-*-beos*' Text +')' Operator +'\n\t ' Text +"# These systems don't actually have a C or math library (as such)\n" Comment.Single + +'\t ' Text +'continue' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'*-*-os2*' Text +')' Operator +'\n\t ' Text +"# These systems don't actually have a C library (as such)\n" Comment.Single + +'\t ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'"X-lc"' Literal.String.Double +' ' Text +'&&' Operator +' ' Text +'continue' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'*-*-openbsd*' Text +' ' Text +'|' Punctuation +' ' Text +'*-*-freebsd*' Text +' ' Text +'|' Punctuation +' ' Text +'*-*-dragonfly*' Text +')' Operator +'\n\t ' Text +'# Do not include libc due to us having libc/libc_r.\n' Comment.Single + +'\t ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'"X-lc"' Literal.String.Double +' ' Text +'&&' Operator +' ' Text +'continue' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'*-*-rhapsody*' Text +' ' Text +'|' Punctuation +' ' Text +'*-*-darwin1.' Text +'[' Operator +'012' Literal.Number +']' Operator +')' Operator +'\n\t ' Text +'# Rhapsody C and math libraries are in the System framework\n' Comment.Single + +'\t ' Text +'deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$deplibs' Name.Variable +' -framework System' Literal.String.Double +'"' Literal.String.Double +'\n\t ' Text +'continue' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'*-*-sco3.2v5*' Text +' ' Text +'|' Punctuation +' ' Text +'*-*-sco5v6*' Text +')' Operator +'\n\t ' Text +'# Causes problems with __ctype\n' Comment.Single + +'\t ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'"X-lc"' Literal.String.Double +' ' Text +'&&' Operator +' ' Text +'continue' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'*-*-sysv4.2uw2*' Text +' ' Text +'|' Punctuation +' ' Text +'*-*-sysv5*' Text +' ' Text +'|' Punctuation +' ' Text +'*-*-unixware*' Text +' ' Text +'|' Punctuation +' ' Text +'*-*-OpenUNIX*' Text +')' Operator +'\n\t ' Text +'# Compiler inserts libc in the correct place for threads to work\n' Comment.Single + +'\t ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'"X-lc"' Literal.String.Double +' ' Text +'&&' Operator +' ' Text +'continue' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'esac' Keyword +'\n\t' Text +'elif' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'"X-lc_r"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'case' Keyword +' ' Text +'$host' Name.Variable +' ' Text +'in' Keyword +'\n\t ' Text +'*-*-openbsd*' Text +' ' Text +'|' Punctuation +' ' Text +'*-*-freebsd*' Text +' ' Text +'|' Punctuation +' ' Text +'*-*-dragonfly*' Text +')' Operator +'\n\t ' Text +'# Do not include libc_r directly, use -pthread flag.\n' Comment.Single + +'\t ' Text +'continue' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'esac' Keyword +'\n\t' Text +'fi' Keyword +'\n\t' Text +'deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$deplibs' Name.Variable +' ' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n\t' Text +'continue' Keyword +'\n\t' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'# Tru64 UNIX uses -model [arg] to determine the layout of C++\n' Comment.Single + +' ' Text +'# classes, name mangling, and exception handling.\n' Comment.Single + +' ' Text +'-model' Text +')' Operator +'\n\t' Text +'compile_command' Name.Variable +'=' Operator +'"' Literal.String.Double +'$compile_command' Name.Variable +' ' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n\t' Text +'compiler_flags' Name.Variable +'=' Operator +'"' Literal.String.Double +'$compiler_flags' Name.Variable +' ' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n\t' Text +'finalize_command' Name.Variable +'=' Operator +'"' Literal.String.Double +'$finalize_command' Name.Variable +' ' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n\t' Text +'prev' Name.Variable +'=' Operator +'xcompiler' Text +'\n\t' Text +'continue' Keyword +'\n\t' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'-mt' Text +'|' Punctuation +'-mthreads' Text +'|' Punctuation +'-kthread' Text +'|' Punctuation +'-Kthread' Text +'|' Punctuation +'-pthread' Text +'|' Punctuation +'-pthreads' Text +'|' Punctuation +'--thread-safe' Text +')' Operator +'\n\t' Text +'compiler_flags' Name.Variable +'=' Operator +'"' Literal.String.Double +'$compiler_flags' Name.Variable +' ' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n\t' Text +'compile_command' Name.Variable +'=' Operator +'"' Literal.String.Double +'$compile_command' Name.Variable +' ' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n\t' Text +'finalize_command' Name.Variable +'=' Operator +'"' Literal.String.Double +'$finalize_command' Name.Variable +' ' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n\t' Text +'continue' Keyword +'\n\t' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'-module' Text +')' Operator +'\n\t' Text +'module' Name.Variable +'=' Operator +'yes' Text +'\n\t' Text +'continue' Keyword +'\n\t' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'# -64, -mips[0-9] enable 64-bit mode on the SGI compiler\n' Comment.Single + +' ' Text +'# -r[0-9][0-9]* specifies the processor on the SGI compiler\n' Comment.Single + +' ' Text +'# -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler\n' Comment.Single + +' ' Text +'# +DA*, +DD* enable 64-bit mode on the HP compiler\n' Comment.Single + +' ' Text +'# -q* pass through compiler args for the IBM compiler\n' Comment.Single + +' ' Text +'# -m* pass through architecture-specific compiler args for GCC\n' Comment.Single + +' ' Text +'# -m*, -t[45]*, -txscale* pass through architecture-specific\n' Comment.Single + +' ' Text +'# compiler args for GCC\n' Comment.Single + +' ' Text +'# -pg pass through profiling flag for GCC\n' Comment.Single + +' ' Text +'# @file GCC response files\n' Comment.Single + +' ' Text +'-64' Text +'|' Punctuation +'-mips' Text +'[' Operator +'0' Literal.Number +'-9' Text +']' Operator +'|' Punctuation +'-r' Text +'[' Operator +'0' Literal.Number +'-9' Text +']' Operator +'[' Operator +'0' Literal.Number +'-9' Text +']' Operator +'*' Text +'|' Punctuation +'-xarch' Text +'=' Operator +'*' Text +'|' Punctuation +'-xtarget' Text +'=' Operator +'*' Text +'|' Punctuation +'+DA*' Text +'|' Punctuation +'+DD*' Text +'|' Punctuation +'-q*' Text +'|' Punctuation +'-m*' Text +'|' Punctuation +'-pg' Text +'|' Punctuation +' ' Text +'\\\n' Literal.String.Escape + +' ' Text +'-t' Text +'[' Operator +'45' Literal.Number +']' Operator +'*' Text +'|' Punctuation +'-txscale*' Text +'|' Punctuation +'@*' Text +')' Operator +'\n\n\t' Text +'# Unknown arguments in both finalize_command and compile_command need\n' Comment.Single + +'\t' Text +'# to be aesthetically quoted because they are evaled later.\n' Comment.Single + +'\t' Text +'arg' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +' ' Text +'-e' Text +' ' Text +'"' Literal.String.Double +'$sed_quote_subst' Name.Variable +'"' Literal.String.Double +'`' Literal.String.Backtick +'\n\t' Text +'case' Keyword +' ' Text +'$arg' Name.Variable +' ' Text +'in' Keyword +'\n\t' Text +'*' Text +'[' Operator +'\\[' Literal.String.Escape +'\\~' Literal.String.Escape +'\\#' Literal.String.Escape +'\\^' Literal.String.Escape +'\\&' Literal.String.Escape +'\\*' Literal.String.Escape +'\\(' Literal.String.Escape +'\\)' Literal.String.Escape +'\\{' Literal.String.Escape +'\\}' Literal.String.Escape +'\\|' Literal.String.Escape +'\\;' Literal.String.Escape +'\\<' Literal.String.Escape +'\\>' Literal.String.Escape +'\\?' Literal.String.Escape +"\\'" Literal.String.Escape +'\\ ' Literal.String.Escape +'\\\t' Literal.String.Escape +']' Operator +'*' Text +'|' Punctuation +'*' Text +']' Operator +'*' Text +'|' Punctuation +'""' Literal.String.Double +')' Operator +'\n\t ' Text +'arg' Name.Variable +'=' Operator +'"' Literal.String.Double +'\\"' Literal.String.Double +'$arg' Name.Variable +'\\"' Literal.String.Double +'"' Literal.String.Double +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'esac' Keyword +'\n ' Text +'compile_command' Name.Variable +'=' Operator +'"' Literal.String.Double +'$compile_command' Name.Variable +' ' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n ' Text +'finalize_command' Name.Variable +'=' Operator +'"' Literal.String.Double +'$finalize_command' Name.Variable +' ' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n ' Text +'compiler_flags' Name.Variable +'=' Operator +'"' Literal.String.Double +'$compiler_flags' Name.Variable +' ' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n ' Text +'continue' Keyword +'\n ' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'-shrext' Text +')' Operator +'\n\t' Text +'prev' Name.Variable +'=' Operator +'shrext' Text +'\n\t' Text +'continue' Keyword +'\n\t' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'-no-fast-install' Text +')' Operator +'\n\t' Text +'fast_install' Name.Variable +'=' Operator +'no' Text +'\n\t' Text +'continue' Keyword +'\n\t' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'-no-install' Text +')' Operator +'\n\t' Text +'case' Keyword +' ' Text +'$host' Name.Variable +' ' Text +'in' Keyword +'\n\t' Text +'*-*-cygwin*' Text +' ' Text +'|' Punctuation +' ' Text +'*-*-mingw*' Text +' ' Text +'|' Punctuation +' ' Text +'*-*-pw32*' Text +' ' Text +'|' Punctuation +' ' Text +'*-*-os2*' Text +')' Operator +'\n\t ' Text +'# The PATH hackery in wrapper scripts is required on Windows\n' Comment.Single + +'\t ' Text +'# in order for the loader to find any dlls it needs.\n' Comment.Single + +'\t ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$modename' Name.Variable +": warning: \\`-no-install' is ignored for " Literal.String.Double +'$host' Name.Variable +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n\t ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$modename' Name.Variable +": warning: assuming \\`-no-fast-install' instead" Literal.String.Double +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n\t ' Text +'fast_install' Name.Variable +'=' Operator +'no' Text +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'*' Text +')' Operator +' ' Text +'no_install' Name.Variable +'=' Operator +'yes' Text +' ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'esac' Keyword +'\n\t' Text +'continue' Keyword +'\n\t' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'-no-undefined' Text +')' Operator +'\n\t' Text +'allow_undefined' Name.Variable +'=' Operator +'no' Text +'\n\t' Text +'continue' Keyword +'\n\t' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'-objectlist' Text +')' Operator +'\n\t' Text +'prev' Name.Variable +'=' Operator +'objectlist' Text +'\n\t' Text +'continue' Keyword +'\n\t' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'-o' Text +')' Operator +' ' Text +'prev' Name.Variable +'=' Operator +'output' Text +' ' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'-precious-files-regex' Text +')' Operator +'\n\t' Text +'prev' Name.Variable +'=' Operator +'precious_regex' Text +'\n\t' Text +'continue' Keyword +'\n\t' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'-release' Text +')' Operator +'\n\t' Text +'prev' Name.Variable +'=' Operator +'release' Text +'\n\t' Text +'continue' Keyword +'\n\t' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'-rpath' Text +')' Operator +'\n\t' Text +'prev' Name.Variable +'=' Operator +'rpath' Text +'\n\t' Text +'continue' Keyword +'\n\t' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'-R' Text +')' Operator +'\n\t' Text +'prev' Name.Variable +'=' Operator +'xrpath' Text +'\n\t' Text +'continue' Keyword +'\n\t' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'-R*' Text +')' Operator +'\n\t' Text +'dir' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +' ' Text +'-e' Text +' ' Text +"'s/^-R//'" Literal.String.Single +'`' Literal.String.Backtick +'\n\t' Text +'# We need an absolute path.\n' Comment.Single + +'\t' Text +'case' Keyword +' ' Text +'$dir' Name.Variable +' ' Text +'in' Keyword +'\n\t' Text +'[' Operator +'\\\\' Literal.String.Escape +'/' Text +']' Operator +'*' Text +' ' Text +'|' Punctuation +' ' Text +'[' Operator +'A-Za-z' Text +']' Operator +':' Text +'[' Operator +'\\\\' Literal.String.Escape +'/' Text +']' Operator +'*' Text +')' Operator +' ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'*' Text +')' Operator +'\n\t ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$modename' Name.Variable +': only absolute run-paths are allowed' Literal.String.Double +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n\t ' Text +'exit' Name.Builtin +' ' Text +'$EXIT_FAILURE' Name.Variable +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'esac' Keyword +'\n\t' Text +'case' Keyword +' ' Text +'"' Literal.String.Double +'$xrpath' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +' ' Text +'in' Keyword +'\n\t' Text +'*' Text +'"' Literal.String.Double +' ' Literal.String.Double +'$dir' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +'*' Text +')' Operator +' ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'*' Text +')' Operator +' ' Text +'xrpath' Name.Variable +'=' Operator +'"' Literal.String.Double +'$xrpath' Name.Variable +' ' Literal.String.Double +'$dir' Name.Variable +'"' Literal.String.Double +' ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'esac' Keyword +'\n\t' Text +'continue' Keyword +'\n\t' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'-static' Text +')' Operator +'\n\t' Text +'# The effects of -static are defined in a previous loop.\n' Comment.Single + +'\t' Text +'# We used to do the same as -all-static on platforms that\n' Comment.Single + +'\t' Text +"# didn't have a PIC flag, but the assumption that the effects\n" Comment.Single + +'\t' Text +'# would be equivalent was wrong. It would break on at least\n' Comment.Single + +'\t' Text +'# Digital Unix and AIX.\n' Comment.Single + +'\t' Text +'continue' Keyword +'\n\t' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'-thread-safe' Text +')' Operator +'\n\t' Text +'thread_safe' Name.Variable +'=' Operator +'yes' Text +'\n\t' Text +'continue' Keyword +'\n\t' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'-version-info' Text +')' Operator +'\n\t' Text +'prev' Name.Variable +'=' Operator +'vinfo' Text +'\n\t' Text +'continue' Keyword +'\n\t' Text +';' Punctuation +';' Punctuation +'\n ' Text +'-version-number' Text +')' Operator +'\n\t' Text +'prev' Name.Variable +'=' Operator +'vinfo' Text +'\n\t' Text +'vinfo_number' Name.Variable +'=' Operator +'yes' Text +'\n\t' Text +'continue' Keyword +'\n\t' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'-Wc,*' Text +')' Operator +'\n\t' Text +'args' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +' ' Text +'-e' Text +' ' Text +'"' Literal.String.Double +'$sed_quote_subst' Name.Variable +'"' Literal.String.Double +' ' Text +'-e' Text +' ' Text +"'s/^-Wc,//'" Literal.String.Single +'`' Literal.String.Backtick +'\n\t' Text +'arg' Name.Variable +'=' Operator +'\n\t' Text +'save_ifs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$IFS' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'IFS' Name.Variable +'=' Operator +"','" Literal.String.Single +'\n\t' Text +'for' Keyword +' ' Text +'flag' Text +' ' Text +'in' Keyword +' ' Text +'$args' Name.Variable +';' Punctuation +' ' Text +'do' Keyword +'\n\t ' Text +'IFS' Name.Variable +'=' Operator +'"' Literal.String.Double +'$save_ifs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'case' Keyword +' ' Text +'$flag' Name.Variable +' ' Text +'in' Keyword +'\n\t ' Text +'*' Text +'[' Operator +'\\[' Literal.String.Escape +'\\~' Literal.String.Escape +'\\#' Literal.String.Escape +'\\^' Literal.String.Escape +'\\&' Literal.String.Escape +'\\*' Literal.String.Escape +'\\(' Literal.String.Escape +'\\)' Literal.String.Escape +'\\{' Literal.String.Escape +'\\}' Literal.String.Escape +'\\|' Literal.String.Escape +'\\;' Literal.String.Escape +'\\<' Literal.String.Escape +'\\>' Literal.String.Escape +'\\?' Literal.String.Escape +"\\'" Literal.String.Escape +'\\ ' Literal.String.Escape +'\\\t' Literal.String.Escape +']' Operator +'*' Text +'|' Punctuation +'*' Text +']' Operator +'*' Text +'|' Punctuation +'""' Literal.String.Double +')' Operator +'\n\t ' Text +'flag' Name.Variable +'=' Operator +'"' Literal.String.Double +'\\"' Literal.String.Double +'$flag' Name.Variable +'\\"' Literal.String.Double +'"' Literal.String.Double +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'esac' Keyword +'\n\t ' Text +'arg' Name.Variable +'=' Operator +'"' Literal.String.Double +'$arg' Name.Variable +' ' Literal.String.Double +'$wl' Name.Variable +'$flag' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'compiler_flags' Name.Variable +'=' Operator +'"' Literal.String.Double +'$compiler_flags' Name.Variable +' ' Literal.String.Double +'$flag' Name.Variable +'"' Literal.String.Double +'\n\t' Text +'done' Keyword +'\n\t' Text +'IFS' Name.Variable +'=' Operator +'"' Literal.String.Double +'$save_ifs' Name.Variable +'"' Literal.String.Double +'\n\t' Text +'arg' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +' ' Text +'-e' Text +' ' Text +'"s/^ //"' Literal.String.Double +'`' Literal.String.Backtick +'\n\t' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'-Wl,*' Text +')' Operator +'\n\t' Text +'args' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +' ' Text +'-e' Text +' ' Text +'"' Literal.String.Double +'$sed_quote_subst' Name.Variable +'"' Literal.String.Double +' ' Text +'-e' Text +' ' Text +"'s/^-Wl,//'" Literal.String.Single +'`' Literal.String.Backtick +'\n\t' Text +'arg' Name.Variable +'=' Operator +'\n\t' Text +'save_ifs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$IFS' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'IFS' Name.Variable +'=' Operator +"','" Literal.String.Single +'\n\t' Text +'for' Keyword +' ' Text +'flag' Text +' ' Text +'in' Keyword +' ' Text +'$args' Name.Variable +';' Punctuation +' ' Text +'do' Keyword +'\n\t ' Text +'IFS' Name.Variable +'=' Operator +'"' Literal.String.Double +'$save_ifs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'case' Keyword +' ' Text +'$flag' Name.Variable +' ' Text +'in' Keyword +'\n\t ' Text +'*' Text +'[' Operator +'\\[' Literal.String.Escape +'\\~' Literal.String.Escape +'\\#' Literal.String.Escape +'\\^' Literal.String.Escape +'\\&' Literal.String.Escape +'\\*' Literal.String.Escape +'\\(' Literal.String.Escape +'\\)' Literal.String.Escape +'\\{' Literal.String.Escape +'\\}' Literal.String.Escape +'\\|' Literal.String.Escape +'\\;' Literal.String.Escape +'\\<' Literal.String.Escape +'\\>' Literal.String.Escape +'\\?' Literal.String.Escape +"\\'" Literal.String.Escape +'\\ ' Literal.String.Escape +'\\\t' Literal.String.Escape +']' Operator +'*' Text +'|' Punctuation +'*' Text +']' Operator +'*' Text +'|' Punctuation +'""' Literal.String.Double +')' Operator +'\n\t ' Text +'flag' Name.Variable +'=' Operator +'"' Literal.String.Double +'\\"' Literal.String.Double +'$flag' Name.Variable +'\\"' Literal.String.Double +'"' Literal.String.Double +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'esac' Keyword +'\n\t ' Text +'arg' Name.Variable +'=' Operator +'"' Literal.String.Double +'$arg' Name.Variable +' ' Literal.String.Double +'$wl' Name.Variable +'$flag' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'compiler_flags' Name.Variable +'=' Operator +'"' Literal.String.Double +'$compiler_flags' Name.Variable +' ' Literal.String.Double +'$wl' Name.Variable +'$flag' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'linker_flags' Name.Variable +'=' Operator +'"' Literal.String.Double +'$linker_flags' Name.Variable +' ' Literal.String.Double +'$flag' Name.Variable +'"' Literal.String.Double +'\n\t' Text +'done' Keyword +'\n\t' Text +'IFS' Name.Variable +'=' Operator +'"' Literal.String.Double +'$save_ifs' Name.Variable +'"' Literal.String.Double +'\n\t' Text +'arg' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +' ' Text +'-e' Text +' ' Text +'"s/^ //"' Literal.String.Double +'`' Literal.String.Backtick +'\n\t' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'-Xcompiler' Text +')' Operator +'\n\t' Text +'prev' Name.Variable +'=' Operator +'xcompiler' Text +'\n\t' Text +'continue' Keyword +'\n\t' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'-Xlinker' Text +')' Operator +'\n\t' Text +'prev' Name.Variable +'=' Operator +'xlinker' Text +'\n\t' Text +'continue' Keyword +'\n\t' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'-XCClinker' Text +')' Operator +'\n\t' Text +'prev' Name.Variable +'=' Operator +'xcclinker' Text +'\n\t' Text +'continue' Keyword +'\n\t' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'# Some other compiler flag.\n' Comment.Single + +' ' Text +'-*' Text +' ' Text +'|' Punctuation +' ' Text +'+*' Text +')' Operator +'\n\t' Text +'# Unknown arguments in both finalize_command and compile_command need\n' Comment.Single + +'\t' Text +'# to be aesthetically quoted because they are evaled later.\n' Comment.Single + +'\t' Text +'arg' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +' ' Text +'-e' Text +' ' Text +'"' Literal.String.Double +'$sed_quote_subst' Name.Variable +'"' Literal.String.Double +'`' Literal.String.Backtick +'\n\t' Text +'case' Keyword +' ' Text +'$arg' Name.Variable +' ' Text +'in' Keyword +'\n\t' Text +'*' Text +'[' Operator +'\\[' Literal.String.Escape +'\\~' Literal.String.Escape +'\\#' Literal.String.Escape +'\\^' Literal.String.Escape +'\\&' Literal.String.Escape +'\\*' Literal.String.Escape +'\\(' Literal.String.Escape +'\\)' Literal.String.Escape +'\\{' Literal.String.Escape +'\\}' Literal.String.Escape +'\\|' Literal.String.Escape +'\\;' Literal.String.Escape +'\\<' Literal.String.Escape +'\\>' Literal.String.Escape +'\\?' Literal.String.Escape +"\\'" Literal.String.Escape +'\\ ' Literal.String.Escape +'\\\t' Literal.String.Escape +']' Operator +'*' Text +'|' Punctuation +'*' Text +']' Operator +'*' Text +'|' Punctuation +'""' Literal.String.Double +')' Operator +'\n\t ' Text +'arg' Name.Variable +'=' Operator +'"' Literal.String.Double +'\\"' Literal.String.Double +'$arg' Name.Variable +'\\"' Literal.String.Double +'"' Literal.String.Double +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'esac' Keyword +'\n\t' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'*.' Text +'$objext' Name.Variable +')' Operator +'\n\t' Text +'# A standard object.\n' Comment.Single + +'\t' Text +'objs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$objs' Name.Variable +' ' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n\t' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'*.lo' Text +')' Operator +'\n\t' Text +'# A libtool-controlled object.\n' Comment.Single + +'\n\t' Text +'# Check to see that this really is a libtool object.\n' Comment.Single + +'\t' Text +'if' Keyword +' ' Text +'(' Operator +'${' Literal.String.Interpol +'SED' Name.Variable +'}' Literal.String.Interpol +' ' Text +'-e' Text +' ' Text +"'2q'" Literal.String.Single +' ' Text +'$arg' Name.Variable +' ' Text +'|' Punctuation +' ' Text +'grep' Text +' ' Text +'"' Literal.String.Double +'^# Generated by .*' Literal.String.Double +'$PACKAGE' Name.Variable +'"' Literal.String.Double +')' Operator +' ' Text +'>/dev/null' Text +' ' Text +'2' Literal.Number +'>' Text +'&' Punctuation +'1' Literal.Number +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'pic_object' Name.Variable +'=' Operator +'\n\t ' Text +'non_pic_object' Name.Variable +'=' Operator +'\n\n\t ' Text +'# Read the .lo file\n' Comment.Single + +'\t ' Text +'# If there is no directory component, then add one.\n' Comment.Single + +'\t ' Text +'case' Keyword +' ' Text +'$arg' Name.Variable +' ' Text +'in' Keyword +'\n\t ' Text +'*/*' Text +' ' Text +'|' Punctuation +' ' Text +'*' Text +'\\\\' Literal.String.Escape +'*' Text +')' Operator +' ' Text +'.' Text +' ' Text +'$arg' Name.Variable +' ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'*' Text +')' Operator +' ' Text +'.' Text +' ' Text +'./' Text +'$arg' Name.Variable +' ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'esac' Keyword +'\n\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-z' Text +' ' Text +'"' Literal.String.Double +'$pic_object' Name.Variable +'"' Literal.String.Double +' ' Text +'||' Operator +' ' Text +'\\\n' Literal.String.Escape + +'\t ' Text +'test' Name.Builtin +' ' Text +'-z' Text +' ' Text +'"' Literal.String.Double +'$non_pic_object' Name.Variable +'"' Literal.String.Double +' ' Text +'||' Operator +'\n\t ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$pic_object' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'none' Text +' ' Text +'&&' Operator +' ' Text +'\\\n' Literal.String.Escape + +'\t ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$non_pic_object' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'none' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$modename' Name.Variable +': cannot find name of object for \\`' Literal.String.Double +'$arg' Name.Variable +"'" Literal.String.Double +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n\t ' Text +'exit' Name.Builtin +' ' Text +'$EXIT_FAILURE' Name.Variable +'\n\t ' Text +'fi' Keyword +'\n\n\t ' Text +'# Extract subdirectory from the argument.\n' Comment.Single + +'\t ' Text +'xdir' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +' ' Text +'-e' Text +' ' Text +"'s%/[^/]*$%%'" Literal.String.Single +'`' Literal.String.Backtick +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$xdir' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'xdir' Name.Variable +'=' Operator +'\n \t ' Text +'else' Keyword +'\n\t ' Text +'xdir' Name.Variable +'=' Operator +'"' Literal.String.Double +'$xdir' Name.Variable +'/' Literal.String.Double +'"' Literal.String.Double +'\n\t ' Text +'fi' Keyword +'\n\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$pic_object' Name.Variable +'"' Literal.String.Double +' ' Text +'!' Text +'=' Operator +' ' Text +'none' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'# Prepend the subdirectory the object is found in.\n' Comment.Single + +'\t ' Text +'pic_object' Name.Variable +'=' Operator +'"' Literal.String.Double +'$xdir' Name.Variable +'$pic_object' Name.Variable +'"' Literal.String.Double +'\n\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$prev' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'dlfiles' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$build_libtool_libs' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'yes' Text +' ' Text +'&&' Operator +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$dlopen_support' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'yes' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t\t' Text +'dlfiles' Name.Variable +'=' Operator +'"' Literal.String.Double +'$dlfiles' Name.Variable +' ' Literal.String.Double +'$pic_object' Name.Variable +'"' Literal.String.Double +'\n\t\t' Text +'prev' Name.Variable +'=' Operator +'\n\t\t' Text +'continue' Keyword +'\n\t ' Text +'else' Keyword +'\n\t\t' Text +'# If libtool objects are unsupported, then we need to preload.\n' Comment.Single + +'\t\t' Text +'prev' Name.Variable +'=' Operator +'dlprefiles' Text +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'fi' Keyword +'\n\n\t ' Text +'# CHECK ME: I think I busted this. -Ossama\n' Comment.Single + +'\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$prev' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'dlprefiles' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'# Preload the old-style object.\n' Comment.Single + +'\t ' Text +'dlprefiles' Name.Variable +'=' Operator +'"' Literal.String.Double +'$dlprefiles' Name.Variable +' ' Literal.String.Double +'$pic_object' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'prev' Name.Variable +'=' Operator +'\n\t ' Text +'fi' Keyword +'\n\n\t ' Text +'# A PIC object.\n' Comment.Single + +'\t ' Text +'libobjs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$libobjs' Name.Variable +' ' Literal.String.Double +'$pic_object' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'arg' Name.Variable +'=' Operator +'"' Literal.String.Double +'$pic_object' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'fi' Keyword +'\n\n\t ' Text +'# Non-PIC object.\n' Comment.Single + +'\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$non_pic_object' Name.Variable +'"' Literal.String.Double +' ' Text +'!' Text +'=' Operator +' ' Text +'none' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'# Prepend the subdirectory the object is found in.\n' Comment.Single + +'\t ' Text +'non_pic_object' Name.Variable +'=' Operator +'"' Literal.String.Double +'$xdir' Name.Variable +'$non_pic_object' Name.Variable +'"' Literal.String.Double +'\n\n\t ' Text +'# A standard non-PIC object\n' Comment.Single + +'\t ' Text +'non_pic_objects' Name.Variable +'=' Operator +'"' Literal.String.Double +'$non_pic_objects' Name.Variable +' ' Literal.String.Double +'$non_pic_object' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-z' Text +' ' Text +'"' Literal.String.Double +'$pic_object' Name.Variable +'"' Literal.String.Double +' ' Text +'||' Operator +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$pic_object' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'none' Text +' ' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'arg' Name.Variable +'=' Operator +'"' Literal.String.Double +'$non_pic_object' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'else' Keyword +'\n\t ' Text +'# If the PIC object exists, use it instead.\n' Comment.Single + +'\t ' Text +'# $xdir was prepended to $pic_object above.\n' Comment.Single + +'\t ' Text +'non_pic_object' Name.Variable +'=' Operator +'"' Literal.String.Double +'$pic_object' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'non_pic_objects' Name.Variable +'=' Operator +'"' Literal.String.Double +'$non_pic_objects' Name.Variable +' ' Literal.String.Double +'$non_pic_object' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'fi' Keyword +'\n\t' Text +'else' Keyword +'\n\t ' Text +'# Only an error if not doing a dry-run.\n' Comment.Single + +'\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-z' Text +' ' Text +'"' Literal.String.Double +'$run' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$modename' Name.Variable +': \\`' Literal.String.Double +'$arg' Name.Variable +"' is not a valid libtool object" Literal.String.Double +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n\t ' Text +'exit' Name.Builtin +' ' Text +'$EXIT_FAILURE' Name.Variable +'\n\t ' Text +'else' Keyword +'\n\t ' Text +'# Dry-run case.\n' Comment.Single + +'\n\t ' Text +'# Extract subdirectory from the argument.\n' Comment.Single + +'\t ' Text +'xdir' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +' ' Text +'-e' Text +' ' Text +"'s%/[^/]*$%%'" Literal.String.Single +'`' Literal.String.Backtick +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$xdir' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'xdir' Name.Variable +'=' Operator +'\n\t ' Text +'else' Keyword +'\n\t ' Text +'xdir' Name.Variable +'=' Operator +'"' Literal.String.Double +'$xdir' Name.Variable +'/' Literal.String.Double +'"' Literal.String.Double +'\n\t ' Text +'fi' Keyword +'\n\n\t ' Text +'pic_object' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'${' Literal.String.Interpol +'xdir' Name.Variable +'}' Literal.String.Interpol +'${' Literal.String.Interpol +'objdir' Name.Variable +'}' Literal.String.Interpol +'/' Literal.String.Double +'${' Literal.String.Interpol +'arg' Name.Variable +'}' Literal.String.Interpol +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +' ' Text +'-e' Text +' ' Text +'"' Literal.String.Double +'$lo2o' Name.Variable +'"' Literal.String.Double +'`' Literal.String.Backtick +'\n\t ' Text +'non_pic_object' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'${' Literal.String.Interpol +'xdir' Name.Variable +'}' Literal.String.Interpol +'${' Literal.String.Interpol +'arg' Name.Variable +'}' Literal.String.Interpol +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +' ' Text +'-e' Text +' ' Text +'"' Literal.String.Double +'$lo2o' Name.Variable +'"' Literal.String.Double +'`' Literal.String.Backtick +'\n\t ' Text +'libobjs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$libobjs' Name.Variable +' ' Literal.String.Double +'$pic_object' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'non_pic_objects' Name.Variable +'=' Operator +'"' Literal.String.Double +'$non_pic_objects' Name.Variable +' ' Literal.String.Double +'$non_pic_object' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'fi' Keyword +'\n\t' Text +'fi' Keyword +'\n\t' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'*.' Text +'$libext' Name.Variable +')' Operator +'\n\t' Text +'# An archive.\n' Comment.Single + +'\t' Text +'deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$deplibs' Name.Variable +' ' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n\t' Text +'old_deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$old_deplibs' Name.Variable +' ' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n\t' Text +'continue' Keyword +'\n\t' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'*.la' Text +')' Operator +'\n\t' Text +'# A libtool-controlled library.\n' Comment.Single + +'\n\t' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$prev' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'dlfiles' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'# This library was specified with -dlopen.\n' Comment.Single + +'\t ' Text +'dlfiles' Name.Variable +'=' Operator +'"' Literal.String.Double +'$dlfiles' Name.Variable +' ' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'prev' Name.Variable +'=' Operator +'\n\t' Text +'elif' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$prev' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'dlprefiles' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'# The library was specified with -dlpreopen.\n' Comment.Single + +'\t ' Text +'dlprefiles' Name.Variable +'=' Operator +'"' Literal.String.Double +'$dlprefiles' Name.Variable +' ' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'prev' Name.Variable +'=' Operator +'\n\t' Text +'else' Keyword +'\n\t ' Text +'deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$deplibs' Name.Variable +' ' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n\t' Text +'fi' Keyword +'\n\t' Text +'continue' Keyword +'\n\t' Text +';' Punctuation +';' Punctuation +'\n\n ' Text +'# Some other compiler argument.\n' Comment.Single + +' ' Text +'*' Text +')' Operator +'\n\t' Text +'# Unknown arguments in both finalize_command and compile_command need\n' Comment.Single + +'\t' Text +'# to be aesthetically quoted because they are evaled later.\n' Comment.Single + +'\t' Text +'arg' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +' ' Text +'-e' Text +' ' Text +'"' Literal.String.Double +'$sed_quote_subst' Name.Variable +'"' Literal.String.Double +'`' Literal.String.Backtick +'\n\t' Text +'case' Keyword +' ' Text +'$arg' Name.Variable +' ' Text +'in' Keyword +'\n\t' Text +'*' Text +'[' Operator +'\\[' Literal.String.Escape +'\\~' Literal.String.Escape +'\\#' Literal.String.Escape +'\\^' Literal.String.Escape +'\\&' Literal.String.Escape +'\\*' Literal.String.Escape +'\\(' Literal.String.Escape +'\\)' Literal.String.Escape +'\\{' Literal.String.Escape +'\\}' Literal.String.Escape +'\\|' Literal.String.Escape +'\\;' Literal.String.Escape +'\\<' Literal.String.Escape +'\\>' Literal.String.Escape +'\\?' Literal.String.Escape +"\\'" Literal.String.Escape +'\\ ' Literal.String.Escape +'\\\t' Literal.String.Escape +']' Operator +'*' Text +'|' Punctuation +'*' Text +']' Operator +'*' Text +'|' Punctuation +'""' Literal.String.Double +')' Operator +'\n\t ' Text +'arg' Name.Variable +'=' Operator +'"' Literal.String.Double +'\\"' Literal.String.Double +'$arg' Name.Variable +'\\"' Literal.String.Double +'"' Literal.String.Double +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'esac' Keyword +'\n\t' Text +';' Punctuation +';' Punctuation +'\n ' Text +'esac' Keyword +' ' Text +'# arg\n' Comment.Single + +'\n ' Text +'# Now actually substitute the argument into the commands.\n' Comment.Single + +' ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t' Text +'compile_command' Name.Variable +'=' Operator +'"' Literal.String.Double +'$compile_command' Name.Variable +' ' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n\t' Text +'finalize_command' Name.Variable +'=' Operator +'"' Literal.String.Double +'$finalize_command' Name.Variable +' ' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n ' Text +'fi' Keyword +'\n ' Text +'done' Keyword +' ' Text +'# argument parsing loop\n' Comment.Single + +'\n ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$prev' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$modename' Name.Variable +': the \\`' Literal.String.Double +'$prevarg' Name.Variable +"' option requires an argument" Literal.String.Double +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$help' Name.Variable +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n ' Text +'exit' Name.Builtin +' ' Text +'$EXIT_FAILURE' Name.Variable +'\n ' Text +'fi' Keyword +'\n\n ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$export_dynamic' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'yes' Text +' ' Text +'&&' Operator +' ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$export_dynamic_flag_spec' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'eval' Name.Builtin +' ' Text +'arg' Name.Variable +'=' Operator +'\\"' Literal.String.Escape +'$export_dynamic_flag_spec' Name.Variable +'\\"' Literal.String.Escape +'\n ' Text +'compile_command' Name.Variable +'=' Operator +'"' Literal.String.Double +'$compile_command' Name.Variable +' ' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n ' Text +'finalize_command' Name.Variable +'=' Operator +'"' Literal.String.Double +'$finalize_command' Name.Variable +' ' Literal.String.Double +'$arg' Name.Variable +'"' Literal.String.Double +'\n ' Text +'fi' Keyword +'\n\n ' Text +'oldlibs' Name.Variable +'=' Operator +'\n ' Text +'# calculate the name of the file, without its directory\n' Comment.Single + +' ' Text +'outputname' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$output' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +' ' Text +'-e' Text +' ' Text +"'s%^.*/%%'" Literal.String.Single +'`' Literal.String.Backtick +'\n ' Text +'libobjs_save' Name.Variable +'=' Operator +'"' Literal.String.Double +'$libobjs' Name.Variable +'"' Literal.String.Double +'\n\n ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$shlibpath_var' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'# get the directories listed in $shlibpath_var\n' Comment.Single + +' ' Text +'eval' Name.Builtin +' ' Text +'shlib_search_path' Name.Variable +'=' Operator +'\\`' Literal.String.Escape +'\\$' Literal.String.Escape +'echo' Name.Builtin +' ' Text +'\\"' Literal.String.Escape +'X' Text +'\\$' Literal.String.Escape +'{' Operator +'$shlibpath_var' Name.Variable +'}' Operator +'\\"' Literal.String.Escape +' ' Text +'\\|' Literal.String.Escape +' ' Text +'\\$' Literal.String.Escape +'Xsed' Text +' ' Text +'-e' Text +' ' Text +"\\'" Literal.String.Escape +'s/:/' Text +' ' Text +'/g' Text +"\\'" Literal.String.Escape +'\\`' Literal.String.Escape +'\n ' Text +'else' Keyword +'\n ' Text +'shlib_search_path' Name.Variable +'=' Operator +'\n ' Text +'fi' Keyword +'\n ' Text +'eval' Name.Builtin +' ' Text +'sys_lib_search_path' Name.Variable +'=' Operator +'\\"' Literal.String.Escape +'$sys_lib_search_path_spec' Name.Variable +'\\"' Literal.String.Escape +'\n ' Text +'eval' Name.Builtin +' ' Text +'sys_lib_dlsearch_path' Name.Variable +'=' Operator +'\\"' Literal.String.Escape +'$sys_lib_dlsearch_path_spec' Name.Variable +'\\"' Literal.String.Escape +'\n\n ' Text +'output_objdir' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$output' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +' ' Text +'-e' Text +' ' Text +"'s%/[^/]*$%%'" Literal.String.Single +'`' Literal.String.Backtick +'\n ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$output_objdir' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$output' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'output_objdir' Name.Variable +'=' Operator +'"' Literal.String.Double +'$objdir' Name.Variable +'"' Literal.String.Double +'\n ' Text +'else' Keyword +'\n ' Text +'output_objdir' Name.Variable +'=' Operator +'"' Literal.String.Double +'$output_objdir' Name.Variable +'/' Literal.String.Double +'$objdir' Name.Variable +'"' Literal.String.Double +'\n ' Text +'fi' Keyword +'\n ' Text +'# Create the object directory.\n' Comment.Single + +' ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'!' Text +' ' Text +'-d' Text +' ' Text +'"' Literal.String.Double +'$output_objdir' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'$show' Name.Variable +' ' Text +'"' Literal.String.Double +'$mkdir' Name.Variable +' ' Literal.String.Double +'$output_objdir' Name.Variable +'"' Literal.String.Double +'\n ' Text +'$run' Name.Variable +' ' Text +'$mkdir' Name.Variable +' ' Text +'$output_objdir' Name.Variable +'\n ' Text +'exit_status' Name.Variable +'=' Operator +'$?' Name.Variable +'\n ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$exit_status' Name.Variable +'"' Literal.String.Double +' ' Text +'-ne' Text +' ' Text +'0' Literal.Number +' ' Text +'&&' Operator +' ' Text +'test' Name.Builtin +' ' Text +'!' Text +' ' Text +'-d' Text +' ' Text +'"' Literal.String.Double +'$output_objdir' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t' Text +'exit' Name.Builtin +' ' Text +'$exit_status' Name.Variable +'\n ' Text +'fi' Keyword +'\n ' Text +'fi' Keyword +'\n\n ' Text +'# Determine the type of output\n' Comment.Single + +' ' Text +'case' Keyword +' ' Text +'$output' Name.Variable +' ' Text +'in' Keyword +'\n ' Text +'""' Literal.String.Double +')' Operator +'\n ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$modename' Name.Variable +': you must specify an output file' Literal.String.Double +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$help' Name.Variable +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n ' Text +'exit' Name.Builtin +' ' Text +'$EXIT_FAILURE' Name.Variable +'\n ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'*.' Text +'$libext' Name.Variable +')' Operator +' ' Text +'linkmode' Name.Variable +'=' Operator +'oldlib' Text +' ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'*.lo' Text +' ' Text +'|' Punctuation +' ' Text +'*.' Text +'$objext' Name.Variable +')' Operator +' ' Text +'linkmode' Name.Variable +'=' Operator +'obj' Text +' ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'*.la' Text +')' Operator +' ' Text +'linkmode' Name.Variable +'=' Operator +'lib' Text +' ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'*' Text +')' Operator +' ' Text +'linkmode' Name.Variable +'=' Operator +'prog' Text +' ' Text +';' Punctuation +';' Punctuation +' ' Text +'# Anything else should be a program.\n' Comment.Single + +' ' Text +'esac' Keyword +'\n\n ' Text +'case' Keyword +' ' Text +'$host' Name.Variable +' ' Text +'in' Keyword +'\n ' Text +'*cygwin*' Text +' ' Text +'|' Punctuation +' ' Text +'*mingw*' Text +' ' Text +'|' Punctuation +' ' Text +'*pw32*' Text +')' Operator +'\n ' Text +"# don't eliminate duplications in $postdeps and $predeps\n" Comment.Single + +' ' Text +'duplicate_compiler_generated_deps' Name.Variable +'=' Operator +'yes' Text +'\n ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'*' Text +')' Operator +'\n ' Text +'duplicate_compiler_generated_deps' Name.Variable +'=' Operator +'$duplicate_deps' Name.Variable +'\n ' Text +';' Punctuation +';' Punctuation +'\n ' Text +'esac' Keyword +'\n ' Text +'specialdeplibs' Name.Variable +'=' Operator +'\n\n ' Text +'libs' Name.Variable +'=' Operator +'\n ' Text +'# Find all interdependent deplibs by searching for libraries\n' Comment.Single + +' ' Text +'# that are linked more than once (e.g. -la -lb -la)\n' Comment.Single + +' ' Text +'for' Keyword +' ' Text +'deplib' Text +' ' Text +'in' Keyword +' ' Text +'$deplibs' Name.Variable +';' Punctuation +' ' Text +'do' Keyword +'\n ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$duplicate_deps' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'"Xyes"' Literal.String.Double +' ' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t' Text +'case' Keyword +' ' Text +'"' Literal.String.Double +'$libs' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +' ' Text +'in' Keyword +'\n\t' Text +'*' Text +'"' Literal.String.Double +' ' Literal.String.Double +'$deplib' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +'*' Text +')' Operator +' ' Text +'specialdeplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$specialdeplibs' Name.Variable +' ' Literal.String.Double +'$deplib' Name.Variable +'"' Literal.String.Double +' ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'esac' Keyword +'\n ' Text +'fi' Keyword +'\n ' Text +'libs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$libs' Name.Variable +' ' Literal.String.Double +'$deplib' Name.Variable +'"' Literal.String.Double +'\n ' Text +'done' Keyword +'\n\n ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$linkmode' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'lib' Text +';' Punctuation +' ' Text +'then' Keyword +'\n ' Text +'libs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$predeps' Name.Variable +' ' Literal.String.Double +'$libs' Name.Variable +' ' Literal.String.Double +'$compiler_lib_search_path' Name.Variable +' ' Literal.String.Double +'$postdeps' Name.Variable +'"' Literal.String.Double +'\n\n ' Text +'# Compute libraries that are listed more than once in $predeps\n' Comment.Single + +' ' Text +'# $postdeps and mark them as special (i.e., whose duplicates are\n' Comment.Single + +' ' Text +'# not to be eliminated).\n' Comment.Single + +' ' Text +'pre_post_deps' Name.Variable +'=' Operator +'\n ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$duplicate_compiler_generated_deps' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'"Xyes"' Literal.String.Double +' ' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t' Text +'for' Keyword +' ' Text +'pre_post_dep' Text +' ' Text +'in' Keyword +' ' Text +'$predeps' Name.Variable +' ' Text +'$postdeps' Name.Variable +';' Punctuation +' ' Text +'do' Keyword +'\n\t ' Text +'case' Keyword +' ' Text +'"' Literal.String.Double +'$pre_post_deps' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +' ' Text +'in' Keyword +'\n\t ' Text +'*' Text +'"' Literal.String.Double +' ' Literal.String.Double +'$pre_post_dep' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +'*' Text +')' Operator +' ' Text +'specialdeplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$specialdeplibs' Name.Variable +' ' Literal.String.Double +'$pre_post_deps' Name.Variable +'"' Literal.String.Double +' ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'esac' Keyword +'\n\t ' Text +'pre_post_deps' Name.Variable +'=' Operator +'"' Literal.String.Double +'$pre_post_deps' Name.Variable +' ' Literal.String.Double +'$pre_post_dep' Name.Variable +'"' Literal.String.Double +'\n\t' Text +'done' Keyword +'\n ' Text +'fi' Keyword +'\n ' Text +'pre_post_deps' Name.Variable +'=' Operator +'\n ' Text +'fi' Keyword +'\n\n ' Text +'deplibs' Name.Variable +'=' Operator +'\n ' Text +'newdependency_libs' Name.Variable +'=' Operator +'\n ' Text +'newlib_search_path' Name.Variable +'=' Operator +'\n ' Text +'need_relink' Name.Variable +'=' Operator +'no' Text +' ' Text +"# whether we're linking any uninstalled libtool libraries\n" Comment.Single + +' ' Text +'notinst_deplibs' Name.Variable +'=' Operator +' ' Text +'# not-installed libtool libraries\n' Comment.Single + +' ' Text +'case' Keyword +' ' Text +'$linkmode' Name.Variable +' ' Text +'in' Keyword +'\n ' Text +'lib' Text +')' Operator +'\n\t' Text +'passes' Name.Variable +'=' Operator +'"conv link"' Literal.String.Double +'\n\t' Text +'for' Keyword +' ' Text +'file' Text +' ' Text +'in' Keyword +' ' Text +'$dlfiles' Name.Variable +' ' Text +'$dlprefiles' Name.Variable +';' Punctuation +' ' Text +'do' Keyword +'\n\t ' Text +'case' Keyword +' ' Text +'$file' Name.Variable +' ' Text +'in' Keyword +'\n\t ' Text +'*.la' Text +')' Operator +' ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'*' Text +')' Operator +'\n\t ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$modename' Name.Variable +": libraries can \\`-dlopen' only libtool libraries: " Literal.String.Double +'$file' Name.Variable +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n\t ' Text +'exit' Name.Builtin +' ' Text +'$EXIT_FAILURE' Name.Variable +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'esac' Keyword +'\n\t' Text +'done' Keyword +'\n\t' Text +';' Punctuation +';' Punctuation +'\n ' Text +'prog' Text +')' Operator +'\n\t' Text +'compile_deplibs' Name.Variable +'=' Operator +'\n\t' Text +'finalize_deplibs' Name.Variable +'=' Operator +'\n\t' Text +'alldeplibs' Name.Variable +'=' Operator +'no' Text +'\n\t' Text +'newdlfiles' Name.Variable +'=' Operator +'\n\t' Text +'newdlprefiles' Name.Variable +'=' Operator +'\n\t' Text +'passes' Name.Variable +'=' Operator +'"conv scan dlopen dlpreopen link"' Literal.String.Double +'\n\t' Text +';' Punctuation +';' Punctuation +'\n ' Text +'*' Text +')' Operator +' ' Text +'passes' Name.Variable +'=' Operator +'"conv"' Literal.String.Double +'\n\t' Text +';' Punctuation +';' Punctuation +'\n ' Text +'esac' Keyword +'\n ' Text +'for' Keyword +' ' Text +'pass' Text +' ' Text +'in' Keyword +' ' Text +'$passes' Name.Variable +';' Punctuation +' ' Text +'do' Keyword +'\n ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$linkmode' Name.Variable +',' Literal.String.Double +'$pass' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'"lib,link"' Literal.String.Double +' ' Text +'||' Operator +'\n\t ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$linkmode' Name.Variable +',' Literal.String.Double +'$pass' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'"prog,scan"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t' Text +'libs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$deplibs' Name.Variable +'"' Literal.String.Double +'\n\t' Text +'deplibs' Name.Variable +'=' Operator +'\n ' Text +'fi' Keyword +'\n ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$linkmode' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'prog' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t' Text +'case' Keyword +' ' Text +'$pass' Name.Variable +' ' Text +'in' Keyword +'\n\t' Text +'dlopen' Text +')' Operator +' ' Text +'libs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$dlfiles' Name.Variable +'"' Literal.String.Double +' ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'dlpreopen' Text +')' Operator +' ' Text +'libs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$dlprefiles' Name.Variable +'"' Literal.String.Double +' ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'link' Text +')' Operator +' ' Text +'libs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$deplibs' Name.Variable +' %DEPLIBS% ' Literal.String.Double +'$dependency_libs' Name.Variable +'"' Literal.String.Double +' ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'esac' Keyword +'\n ' Text +'fi' Keyword +'\n ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$pass' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'dlopen' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t' Text +'# Collect dlpreopened libraries\n' Comment.Single + +'\t' Text +'save_deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$deplibs' Name.Variable +'"' Literal.String.Double +'\n\t' Text +'deplibs' Name.Variable +'=' Operator +'\n ' Text +'fi' Keyword +'\n ' Text +'for' Keyword +' ' Text +'deplib' Text +' ' Text +'in' Keyword +' ' Text +'$libs' Name.Variable +';' Punctuation +' ' Text +'do' Keyword +'\n\t' Text +'lib' Name.Variable +'=' Operator +'\n\t' Text +'found' Name.Variable +'=' Operator +'no' Text +'\n\t' Text +'case' Keyword +' ' Text +'$deplib' Name.Variable +' ' Text +'in' Keyword +'\n\t' Text +'-mt' Text +'|' Punctuation +'-mthreads' Text +'|' Punctuation +'-kthread' Text +'|' Punctuation +'-Kthread' Text +'|' Punctuation +'-pthread' Text +'|' Punctuation +'-pthreads' Text +'|' Punctuation +'--thread-safe' Text +')' Operator +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$linkmode' Name.Variable +',' Literal.String.Double +'$pass' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'"prog,link"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'compile_deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$deplib' Name.Variable +' ' Literal.String.Double +'$compile_deplibs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'finalize_deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$deplib' Name.Variable +' ' Literal.String.Double +'$finalize_deplibs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'else' Keyword +'\n\t ' Text +'compiler_flags' Name.Variable +'=' Operator +'"' Literal.String.Double +'$compiler_flags' Name.Variable +' ' Literal.String.Double +'$deplib' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'continue' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'-l*' Text +')' Operator +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$linkmode' Name.Variable +'"' Literal.String.Double +' ' Text +'!' Text +'=' Operator +' ' Text +'lib' Text +' ' Text +'&&' Operator +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$linkmode' Name.Variable +'"' Literal.String.Double +' ' Text +'!' Text +'=' Operator +' ' Text +'prog' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$modename' Name.Variable +": warning: \\`-l' is ignored for archives/objects" Literal.String.Double +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n\t ' Text +'continue' Keyword +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'name' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$deplib' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +' ' Text +'-e' Text +' ' Text +"'s/^-l//'" Literal.String.Single +'`' Literal.String.Backtick +'\n\t ' Text +'for' Keyword +' ' Text +'searchdir' Text +' ' Text +'in' Keyword +' ' Text +'$newlib_search_path' Name.Variable +' ' Text +'$lib_search_path' Name.Variable +' ' Text +'$sys_lib_search_path' Name.Variable +' ' Text +'$shlib_search_path' Name.Variable +';' Punctuation +' ' Text +'do' Keyword +'\n\t ' Text +'for' Keyword +' ' Text +'search_ext' Text +' ' Text +'in' Keyword +' ' Text +'.la' Text +' ' Text +'$std_shrext' Name.Variable +' ' Text +'.so' Text +' ' Text +'.a' Text +';' Punctuation +' ' Text +'do' Keyword +'\n\t ' Text +'# Search the libtool library\n' Comment.Single + +'\t ' Text +'lib' Name.Variable +'=' Operator +'"' Literal.String.Double +'$searchdir' Name.Variable +'/lib' Literal.String.Double +'${' Literal.String.Interpol +'name' Name.Variable +'}' Literal.String.Interpol +'${' Literal.String.Interpol +'search_ext' Name.Variable +'}' Literal.String.Interpol +'"' Literal.String.Double +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-f' Text +' ' Text +'"' Literal.String.Double +'$lib' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t\t' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$search_ext' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'".la"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t\t ' Text +'found' Name.Variable +'=' Operator +'yes' Text +'\n\t\t' Text +'else' Keyword +'\n\t\t ' Text +'found' Name.Variable +'=' Operator +'no' Text +'\n\t\t' Text +'fi' Keyword +'\n\t\t' Text +'break' Name.Builtin +' ' Text +'2' Literal.Number +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'done' Keyword +'\n\t ' Text +'done' Keyword +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$found' Name.Variable +'"' Literal.String.Double +' ' Text +'!' Text +'=' Operator +' ' Text +'yes' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +"# deplib doesn't seem to be a libtool library\n" Comment.Single + +'\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$linkmode' Name.Variable +',' Literal.String.Double +'$pass' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'"prog,link"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'compile_deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$deplib' Name.Variable +' ' Literal.String.Double +'$compile_deplibs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'finalize_deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$deplib' Name.Variable +' ' Literal.String.Double +'$finalize_deplibs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'else' Keyword +'\n\t ' Text +'deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$deplib' Name.Variable +' ' Literal.String.Double +'$deplibs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$linkmode' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'lib' Text +' ' Text +'&&' Operator +' ' Text +'newdependency_libs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$deplib' Name.Variable +' ' Literal.String.Double +'$newdependency_libs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'continue' Keyword +'\n\t ' Text +'else' Keyword +' ' Text +'# deplib is a libtool library\n' Comment.Single + +'\t ' Text +'# If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,\n' Comment.Single + +'\t ' Text +'# We need to do some special things here, and not later.\n' Comment.Single + +'\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$allow_libtool_libs_with_static_runtimes' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'"Xyes"' Literal.String.Double +' ' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'case' Keyword +' ' Text +'"' Literal.String.Double +' ' Literal.String.Double +'$predeps' Name.Variable +' ' Literal.String.Double +'$postdeps' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +' ' Text +'in' Keyword +'\n\t ' Text +'*' Text +'"' Literal.String.Double +' ' Literal.String.Double +'$deplib' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +'*' Text +')' Operator +'\n\t\t' Text +'if' Keyword +' ' Text +'(' Operator +'${' Literal.String.Interpol +'SED' Name.Variable +'}' Literal.String.Interpol +' ' Text +'-e' Text +' ' Text +"'2q'" Literal.String.Single +' ' Text +'$lib' Name.Variable +' ' Text +'|' Punctuation +'\n ' Text +'grep' Text +' ' Text +'"' Literal.String.Double +'^# Generated by .*' Literal.String.Double +'$PACKAGE' Name.Variable +'"' Literal.String.Double +')' Operator +' ' Text +'>/dev/null' Text +' ' Text +'2' Literal.Number +'>' Text +'&' Punctuation +'1' Literal.Number +';' Punctuation +' ' Text +'then' Keyword +'\n\t\t ' Text +'library_names' Name.Variable +'=' Operator +'\n\t\t ' Text +'old_library' Name.Variable +'=' Operator +'\n\t\t ' Text +'case' Keyword +' ' Text +'$lib' Name.Variable +' ' Text +'in' Keyword +'\n\t\t ' Text +'*/*' Text +' ' Text +'|' Punctuation +' ' Text +'*' Text +'\\\\' Literal.String.Escape +'*' Text +')' Operator +' ' Text +'.' Text +' ' Text +'$lib' Name.Variable +' ' Text +';' Punctuation +';' Punctuation +'\n\t\t ' Text +'*' Text +')' Operator +' ' Text +'.' Text +' ' Text +'./' Text +'$lib' Name.Variable +' ' Text +';' Punctuation +';' Punctuation +'\n\t\t ' Text +'esac' Keyword +'\n\t\t ' Text +'for' Keyword +' ' Text +'l' Text +' ' Text +'in' Keyword +' ' Text +'$old_library' Name.Variable +' ' Text +'$library_names' Name.Variable +';' Punctuation +' ' Text +'do' Keyword +'\n\t\t ' Text +'ll' Name.Variable +'=' Operator +'"' Literal.String.Double +'$l' Name.Variable +'"' Literal.String.Double +'\n\t\t ' Text +'done' Keyword +'\n\t\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$ll' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$old_library' Name.Variable +'"' Literal.String.Double +' ' Text +';' Punctuation +' ' Text +'then' Keyword +' ' Text +'# only static version available\n' Comment.Single + +'\t\t ' Text +'found' Name.Variable +'=' Operator +'no' Text +'\n\t\t ' Text +'ladir' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$lib' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +' ' Text +'-e' Text +' ' Text +"'s%/[^/]*$%%'" Literal.String.Single +'`' Literal.String.Backtick +'\n\t\t ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$ladir' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$lib' Name.Variable +'"' Literal.String.Double +' ' Text +'&&' Operator +' ' Text +'ladir' Name.Variable +'=' Operator +'"."' Literal.String.Double +'\n\t\t ' Text +'lib' Name.Variable +'=' Operator +'$ladir' Name.Variable +'/' Text +'$old_library' Name.Variable +'\n\t\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$linkmode' Name.Variable +',' Literal.String.Double +'$pass' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'"prog,link"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t\t ' Text +'compile_deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$deplib' Name.Variable +' ' Literal.String.Double +'$compile_deplibs' Name.Variable +'"' Literal.String.Double +'\n\t\t ' Text +'finalize_deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$deplib' Name.Variable +' ' Literal.String.Double +'$finalize_deplibs' Name.Variable +'"' Literal.String.Double +'\n\t\t ' Text +'else' Keyword +'\n\t\t ' Text +'deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$deplib' Name.Variable +' ' Literal.String.Double +'$deplibs' Name.Variable +'"' Literal.String.Double +'\n\t\t ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$linkmode' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'lib' Text +' ' Text +'&&' Operator +' ' Text +'newdependency_libs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$deplib' Name.Variable +' ' Literal.String.Double +'$newdependency_libs' Name.Variable +'"' Literal.String.Double +'\n\t\t ' Text +'fi' Keyword +'\n\t\t ' Text +'continue' Keyword +'\n\t\t ' Text +'fi' Keyword +'\n\t\t' Text +'fi' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'*' Text +')' Operator +' ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'esac' Keyword +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +' ' Text +'# -l\n' Comment.Single + +'\t' Text +'-L*' Text +')' Operator +'\n\t ' Text +'case' Keyword +' ' Text +'$linkmode' Name.Variable +' ' Text +'in' Keyword +'\n\t ' Text +'lib' Text +')' Operator +'\n\t ' Text +'deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$deplib' Name.Variable +' ' Literal.String.Double +'$deplibs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$pass' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'conv' Text +' ' Text +'&&' Operator +' ' Text +'continue' Keyword +'\n\t ' Text +'newdependency_libs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$deplib' Name.Variable +' ' Literal.String.Double +'$newdependency_libs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'newlib_search_path' Name.Variable +'=' Operator +'"' Literal.String.Double +'$newlib_search_path' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$deplib' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +' ' Text +'-e' Text +' ' Text +"'s/^-L//'" Literal.String.Single +'`' Literal.String.Backtick +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'prog' Text +')' Operator +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$pass' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'conv' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$deplib' Name.Variable +' ' Literal.String.Double +'$deplibs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'continue' Keyword +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$pass' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'scan' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$deplib' Name.Variable +' ' Literal.String.Double +'$deplibs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'else' Keyword +'\n\t ' Text +'compile_deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$deplib' Name.Variable +' ' Literal.String.Double +'$compile_deplibs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'finalize_deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$deplib' Name.Variable +' ' Literal.String.Double +'$finalize_deplibs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'newlib_search_path' Name.Variable +'=' Operator +'"' Literal.String.Double +'$newlib_search_path' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$deplib' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +' ' Text +'-e' Text +' ' Text +"'s/^-L//'" Literal.String.Single +'`' Literal.String.Backtick +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'*' Text +')' Operator +'\n\t ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$modename' Name.Variable +": warning: \\`-L' is ignored for archives/objects" Literal.String.Double +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'esac' Keyword +' ' Text +'# linkmode\n' Comment.Single + +'\t ' Text +'continue' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +' ' Text +'# -L\n' Comment.Single + +'\t' Text +'-R*' Text +')' Operator +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$pass' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'link' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'dir' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$deplib' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +' ' Text +'-e' Text +' ' Text +"'s/^-R//'" Literal.String.Single +'`' Literal.String.Backtick +'\n\t ' Text +'# Make sure the xrpath contains only unique directories.\n' Comment.Single + +'\t ' Text +'case' Keyword +' ' Text +'"' Literal.String.Double +'$xrpath' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +' ' Text +'in' Keyword +'\n\t ' Text +'*' Text +'"' Literal.String.Double +' ' Literal.String.Double +'$dir' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +'*' Text +')' Operator +' ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'*' Text +')' Operator +' ' Text +'xrpath' Name.Variable +'=' Operator +'"' Literal.String.Double +'$xrpath' Name.Variable +' ' Literal.String.Double +'$dir' Name.Variable +'"' Literal.String.Double +' ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'esac' Keyword +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$deplib' Name.Variable +' ' Literal.String.Double +'$deplibs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'continue' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'*.la' Text +')' Operator +' ' Text +'lib' Name.Variable +'=' Operator +'"' Literal.String.Double +'$deplib' Name.Variable +'"' Literal.String.Double +' ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'*.' Text +'$libext' Name.Variable +')' Operator +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$pass' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'conv' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$deplib' Name.Variable +' ' Literal.String.Double +'$deplibs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'continue' Keyword +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'case' Keyword +' ' Text +'$linkmode' Name.Variable +' ' Text +'in' Keyword +'\n\t ' Text +'lib' Text +')' Operator +'\n\t ' Text +'valid_a_lib' Name.Variable +'=' Operator +'no' Text +'\n\t ' Text +'case' Keyword +' ' Text +'$deplibs_check_method' Name.Variable +' ' Text +'in' Keyword +'\n\t ' Text +'match_pattern*' Text +')' Operator +'\n\t\t' Text +'set' Name.Builtin +' ' Text +'dummy' Text +' ' Text +'$deplibs_check_method' Name.Variable +'\n\t ' Text +'match_pattern_regex' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'expr' Text +' ' Text +'"' Literal.String.Double +'$deplibs_check_method' Name.Variable +'"' Literal.String.Double +' ' Text +':' Text +' ' Text +'"' Literal.String.Double +'$2' Name.Variable +' \\(.*\\)' Literal.String.Double +'"' Literal.String.Double +'`' Literal.String.Backtick +'\n\t\t' Text +'if' Keyword +' ' Text +'eval' Name.Builtin +' ' Text +'$echo' Name.Variable +' ' Text +'\\"' Literal.String.Escape +'$deplib' Name.Variable +'\\"' Literal.String.Escape +' ' Text +'2' Literal.Number +'>/dev/null' Text +' ' Text +'\\\n' Literal.String.Escape + +'\t\t ' Text +'|' Punctuation +' ' Text +'$SED' Name.Variable +' ' Text +'10q' Text +' ' Text +'\\\n' Literal.String.Escape + +'\t\t ' Text +'|' Punctuation +' ' Text +'$EGREP' Name.Variable +' ' Text +'"' Literal.String.Double +'$match_pattern_regex' Name.Variable +'"' Literal.String.Double +' ' Text +'>' Text +' ' Text +'/dev/null' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t\t ' Text +'valid_a_lib' Name.Variable +'=' Operator +'yes' Text +'\n\t\t' Text +'fi' Keyword +'\n\t\t' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'pass_all' Text +')' Operator +'\n\t\t' Text +'valid_a_lib' Name.Variable +'=' Operator +'yes' Text +'\n\t\t' Text +';' Punctuation +';' Punctuation +'\n ' Text +'esac' Keyword +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$valid_a_lib' Name.Variable +'"' Literal.String.Double +' ' Text +'!' Text +'=' Operator +' ' Text +'yes' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'$echo' Name.Variable +'\n\t ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'*** Warning: Trying to link with static lib archive ' Literal.String.Double +'$deplib' Name.Variable +'.' Literal.String.Double +'"' Literal.String.Double +'\n\t ' Text +'$echo' Name.Variable +' ' Text +'"*** I have the capability to make that library automatically link in when"' Literal.String.Double +'\n\t ' Text +'$echo' Name.Variable +' ' Text +'"*** you link to this library. But I can only do this if you have a"' Literal.String.Double +'\n\t ' Text +'$echo' Name.Variable +' ' Text +'"*** shared version of the library, which you do not appear to have"' Literal.String.Double +'\n\t ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'*** because the file extensions .' Literal.String.Double +'$libext' Name.Variable +' of this argument makes me believe' Literal.String.Double +'"' Literal.String.Double +'\n\t ' Text +'$echo' Name.Variable +' ' Text +'"*** that it is just a static archive that I should not used here."' Literal.String.Double +'\n\t ' Text +'else' Keyword +'\n\t ' Text +'$echo' Name.Variable +'\n\t ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'*** Warning: Linking the shared library ' Literal.String.Double +'$output' Name.Variable +' against the' Literal.String.Double +'"' Literal.String.Double +'\n\t ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'*** static library ' Literal.String.Double +'$deplib' Name.Variable +' is not portable!' Literal.String.Double +'"' Literal.String.Double +'\n\t ' Text +'deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$deplib' Name.Variable +' ' Literal.String.Double +'$deplibs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'continue' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'prog' Text +')' Operator +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$pass' Name.Variable +'"' Literal.String.Double +' ' Text +'!' Text +'=' Operator +' ' Text +'link' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$deplib' Name.Variable +' ' Literal.String.Double +'$deplibs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'else' Keyword +'\n\t ' Text +'compile_deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$deplib' Name.Variable +' ' Literal.String.Double +'$compile_deplibs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'finalize_deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$deplib' Name.Variable +' ' Literal.String.Double +'$finalize_deplibs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'continue' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'esac' Keyword +' ' Text +'# linkmode\n' Comment.Single + +'\t ' Text +';' Punctuation +';' Punctuation +' ' Text +'# *.$libext\n' Comment.Single + +'\t' Text +'*.lo' Text +' ' Text +'|' Punctuation +' ' Text +'*.' Text +'$objext' Name.Variable +')' Operator +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$pass' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'conv' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$deplib' Name.Variable +' ' Literal.String.Double +'$deplibs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'elif' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$linkmode' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'prog' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$pass' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'dlpreopen' Text +' ' Text +'||' Operator +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$dlopen_support' Name.Variable +'"' Literal.String.Double +' ' Text +'!' Text +'=' Operator +' ' Text +'yes' Text +' ' Text +'||' Operator +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$build_libtool_libs' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'no' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +"# If there is no dlopen support or we're linking statically,\n" Comment.Single + +'\t ' Text +'# we need to preload.\n' Comment.Single + +'\t ' Text +'newdlprefiles' Name.Variable +'=' Operator +'"' Literal.String.Double +'$newdlprefiles' Name.Variable +' ' Literal.String.Double +'$deplib' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'compile_deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$deplib' Name.Variable +' ' Literal.String.Double +'$compile_deplibs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'finalize_deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$deplib' Name.Variable +' ' Literal.String.Double +'$finalize_deplibs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'else' Keyword +'\n\t ' Text +'newdlfiles' Name.Variable +'=' Operator +'"' Literal.String.Double +'$newdlfiles' Name.Variable +' ' Literal.String.Double +'$deplib' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'continue' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'%DEPLIBS%' Text +')' Operator +'\n\t ' Text +'alldeplibs' Name.Variable +'=' Operator +'yes' Text +'\n\t ' Text +'continue' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'esac' Keyword +' ' Text +'# case $deplib\n' Comment.Single + +'\t' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$found' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'yes' Text +' ' Text +'||' Operator +' ' Text +'test' Name.Builtin +' ' Text +'-f' Text +' ' Text +'"' Literal.String.Double +'$lib' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +' ' Text +':' Text +'\n\t' Text +'else' Keyword +'\n\t ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$modename' Name.Variable +': cannot find the library \\`' Literal.String.Double +'$lib' Name.Variable +"' or unhandled argument \\`" Literal.String.Double +'$deplib' Name.Variable +"'" Literal.String.Double +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n\t ' Text +'exit' Name.Builtin +' ' Text +'$EXIT_FAILURE' Name.Variable +'\n\t' Text +'fi' Keyword +'\n\n\t' Text +'# Check to see that this really is a libtool archive.\n' Comment.Single + +'\t' Text +'if' Keyword +' ' Text +'(' Operator +'${' Literal.String.Interpol +'SED' Name.Variable +'}' Literal.String.Interpol +' ' Text +'-e' Text +' ' Text +"'2q'" Literal.String.Single +' ' Text +'$lib' Name.Variable +' ' Text +'|' Punctuation +' ' Text +'grep' Text +' ' Text +'"' Literal.String.Double +'^# Generated by .*' Literal.String.Double +'$PACKAGE' Name.Variable +'"' Literal.String.Double +')' Operator +' ' Text +'>/dev/null' Text +' ' Text +'2' Literal.Number +'>' Text +'&' Punctuation +'1' Literal.Number +';' Punctuation +' ' Text +'then' Keyword +' ' Text +':' Text +'\n\t' Text +'else' Keyword +'\n\t ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$modename' Name.Variable +': \\`' Literal.String.Double +'$lib' Name.Variable +"' is not a valid libtool archive" Literal.String.Double +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n\t ' Text +'exit' Name.Builtin +' ' Text +'$EXIT_FAILURE' Name.Variable +'\n\t' Text +'fi' Keyword +'\n\n\t' Text +'ladir' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$lib' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +' ' Text +'-e' Text +' ' Text +"'s%/[^/]*$%%'" Literal.String.Single +'`' Literal.String.Backtick +'\n\t' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$ladir' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$lib' Name.Variable +'"' Literal.String.Double +' ' Text +'&&' Operator +' ' Text +'ladir' Name.Variable +'=' Operator +'"."' Literal.String.Double +'\n\n\t' Text +'dlname' Name.Variable +'=' Operator +'\n\t' Text +'dlopen' Name.Variable +'=' Operator +'\n\t' Text +'dlpreopen' Name.Variable +'=' Operator +'\n\t' Text +'libdir' Name.Variable +'=' Operator +'\n\t' Text +'library_names' Name.Variable +'=' Operator +'\n\t' Text +'old_library' Name.Variable +'=' Operator +'\n\t' Text +'# If the library was installed with an old release of libtool,\n' Comment.Single + +'\t' Text +'# it will not redefine variables installed, or shouldnotlink\n' Comment.Single + +'\t' Text +'installed' Name.Variable +'=' Operator +'yes' Text +'\n\t' Text +'shouldnotlink' Name.Variable +'=' Operator +'no' Text +'\n\t' Text +'avoidtemprpath' Name.Variable +'=' Operator +'\n\n\n\t' Text +'# Read the .la file\n' Comment.Single + +'\t' Text +'case' Keyword +' ' Text +'$lib' Name.Variable +' ' Text +'in' Keyword +'\n\t' Text +'*/*' Text +' ' Text +'|' Punctuation +' ' Text +'*' Text +'\\\\' Literal.String.Escape +'*' Text +')' Operator +' ' Text +'.' Text +' ' Text +'$lib' Name.Variable +' ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'*' Text +')' Operator +' ' Text +'.' Text +' ' Text +'./' Text +'$lib' Name.Variable +' ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'esac' Keyword +'\n\n\t' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$linkmode' Name.Variable +',' Literal.String.Double +'$pass' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'"lib,link"' Literal.String.Double +' ' Text +'||' Operator +'\n\t ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$linkmode' Name.Variable +',' Literal.String.Double +'$pass' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'"prog,scan"' Literal.String.Double +' ' Text +'||' Operator +'\n\t ' Text +'{' Operator +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$linkmode' Name.Variable +'"' Literal.String.Double +' ' Text +'!' Text +'=' Operator +' ' Text +'prog' Text +' ' Text +'&&' Operator +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$linkmode' Name.Variable +'"' Literal.String.Double +' ' Text +'!' Text +'=' Operator +' ' Text +'lib' Text +';' Punctuation +' ' Text +'}' Operator +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$dlopen' Name.Variable +'"' Literal.String.Double +' ' Text +'&&' Operator +' ' Text +'dlfiles' Name.Variable +'=' Operator +'"' Literal.String.Double +'$dlfiles' Name.Variable +' ' Literal.String.Double +'$dlopen' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$dlpreopen' Name.Variable +'"' Literal.String.Double +' ' Text +'&&' Operator +' ' Text +'dlprefiles' Name.Variable +'=' Operator +'"' Literal.String.Double +'$dlprefiles' Name.Variable +' ' Literal.String.Double +'$dlpreopen' Name.Variable +'"' Literal.String.Double +'\n\t' Text +'fi' Keyword +'\n\n\t' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$pass' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'conv' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'# Only check for convenience libraries\n' Comment.Single + +'\t ' Text +'deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$lib' Name.Variable +' ' Literal.String.Double +'$deplibs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-z' Text +' ' Text +'"' Literal.String.Double +'$libdir' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-z' Text +' ' Text +'"' Literal.String.Double +'$old_library' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$modename' Name.Variable +': cannot find name of link library for \\`' Literal.String.Double +'$lib' Name.Variable +"'" Literal.String.Double +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n\t ' Text +'exit' Name.Builtin +' ' Text +'$EXIT_FAILURE' Name.Variable +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'# It is a libtool convenience library, so add in its objects.\n' Comment.Single + +'\t ' Text +'convenience' Name.Variable +'=' Operator +'"' Literal.String.Double +'$convenience' Name.Variable +' ' Literal.String.Double +'$ladir' Name.Variable +'/' Literal.String.Double +'$objdir' Name.Variable +'/' Literal.String.Double +'$old_library' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'old_convenience' Name.Variable +'=' Operator +'"' Literal.String.Double +'$old_convenience' Name.Variable +' ' Literal.String.Double +'$ladir' Name.Variable +'/' Literal.String.Double +'$objdir' Name.Variable +'/' Literal.String.Double +'$old_library' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'tmp_libs' Name.Variable +'=' Operator +'\n\t ' Text +'for' Keyword +' ' Text +'deplib' Text +' ' Text +'in' Keyword +' ' Text +'$dependency_libs' Name.Variable +';' Punctuation +' ' Text +'do' Keyword +'\n\t ' Text +'deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$deplib' Name.Variable +' ' Literal.String.Double +'$deplibs' Name.Variable +'"' Literal.String.Double +'\n ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$duplicate_deps' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'"Xyes"' Literal.String.Double +' ' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'case' Keyword +' ' Text +'"' Literal.String.Double +'$tmp_libs' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +' ' Text +'in' Keyword +'\n\t ' Text +'*' Text +'"' Literal.String.Double +' ' Literal.String.Double +'$deplib' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +'*' Text +')' Operator +' ' Text +'specialdeplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$specialdeplibs' Name.Variable +' ' Literal.String.Double +'$deplib' Name.Variable +'"' Literal.String.Double +' ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'esac' Keyword +'\n ' Text +'fi' Keyword +'\n\t ' Text +'tmp_libs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$tmp_libs' Name.Variable +' ' Literal.String.Double +'$deplib' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'done' Keyword +'\n\t ' Text +'elif' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$linkmode' Name.Variable +'"' Literal.String.Double +' ' Text +'!' Text +'=' Operator +' ' Text +'prog' Text +' ' Text +'&&' Operator +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$linkmode' Name.Variable +'"' Literal.String.Double +' ' Text +'!' Text +'=' Operator +' ' Text +'lib' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$modename' Name.Variable +': \\`' Literal.String.Double +'$lib' Name.Variable +"' is not a convenience library" Literal.String.Double +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n\t ' Text +'exit' Name.Builtin +' ' Text +'$EXIT_FAILURE' Name.Variable +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'continue' Keyword +'\n\t' Text +'fi' Keyword +' ' Text +'# $pass = conv\n' Comment.Single + +'\n\n\t' Text +'# Get the name of the library we link against.\n' Comment.Single + +'\t' Text +'linklib' Name.Variable +'=' Operator +'\n\t' Text +'for' Keyword +' ' Text +'l' Text +' ' Text +'in' Keyword +' ' Text +'$old_library' Name.Variable +' ' Text +'$library_names' Name.Variable +';' Punctuation +' ' Text +'do' Keyword +'\n\t ' Text +'linklib' Name.Variable +'=' Operator +'"' Literal.String.Double +'$l' Name.Variable +'"' Literal.String.Double +'\n\t' Text +'done' Keyword +'\n\t' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-z' Text +' ' Text +'"' Literal.String.Double +'$linklib' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$modename' Name.Variable +': cannot find name of link library for \\`' Literal.String.Double +'$lib' Name.Variable +"'" Literal.String.Double +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n\t ' Text +'exit' Name.Builtin +' ' Text +'$EXIT_FAILURE' Name.Variable +'\n\t' Text +'fi' Keyword +'\n\n\t' Text +'# This library was specified with -dlopen.\n' Comment.Single + +'\t' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$pass' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'dlopen' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-z' Text +' ' Text +'"' Literal.String.Double +'$libdir' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$modename' Name.Variable +': cannot -dlopen a convenience library: \\`' Literal.String.Double +'$lib' Name.Variable +"'" Literal.String.Double +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n\t ' Text +'exit' Name.Builtin +' ' Text +'$EXIT_FAILURE' Name.Variable +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-z' Text +' ' Text +'"' Literal.String.Double +'$dlname' Name.Variable +'"' Literal.String.Double +' ' Text +'||' Operator +'\n\t ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$dlopen_support' Name.Variable +'"' Literal.String.Double +' ' Text +'!' Text +'=' Operator +' ' Text +'yes' Text +' ' Text +'||' Operator +'\n\t ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$build_libtool_libs' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'no' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +"# If there is no dlname, no dlopen support or we're linking\n" Comment.Single + +'\t ' Text +'# statically, we need to preload. We also need to preload any\n' Comment.Single + +'\t ' Text +"# dependent libraries so libltdl's deplib preloader doesn't\n" Comment.Single + +'\t ' Text +'# bomb out in the load deplibs phase.\n' Comment.Single + +'\t ' Text +'dlprefiles' Name.Variable +'=' Operator +'"' Literal.String.Double +'$dlprefiles' Name.Variable +' ' Literal.String.Double +'$lib' Name.Variable +' ' Literal.String.Double +'$dependency_libs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'else' Keyword +'\n\t ' Text +'newdlfiles' Name.Variable +'=' Operator +'"' Literal.String.Double +'$newdlfiles' Name.Variable +' ' Literal.String.Double +'$lib' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'continue' Keyword +'\n\t' Text +'fi' Keyword +' ' Text +'# $pass = dlopen\n' Comment.Single + +'\n\t' Text +'# We need an absolute path.\n' Comment.Single + +'\t' Text +'case' Keyword +' ' Text +'$ladir' Name.Variable +' ' Text +'in' Keyword +'\n\t' Text +'[' Operator +'\\\\' Literal.String.Escape +'/' Text +']' Operator +'*' Text +' ' Text +'|' Punctuation +' ' Text +'[' Operator +'A-Za-z' Text +']' Operator +':' Text +'[' Operator +'\\\\' Literal.String.Escape +'/' Text +']' Operator +'*' Text +')' Operator +' ' Text +'abs_ladir' Name.Variable +'=' Operator +'"' Literal.String.Double +'$ladir' Name.Variable +'"' Literal.String.Double +' ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'*' Text +')' Operator +'\n\t ' Text +'abs_ladir' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'cd' Name.Builtin +' ' Text +'"' Literal.String.Double +'$ladir' Name.Variable +'"' Literal.String.Double +' ' Text +'&&' Operator +' ' Text +'pwd' Name.Builtin +'`' Literal.String.Backtick +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-z' Text +' ' Text +'"' Literal.String.Double +'$abs_ladir' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$modename' Name.Variable +': warning: cannot determine absolute directory name of \\`' Literal.String.Double +'$ladir' Name.Variable +"'" Literal.String.Double +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n\t ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$modename' Name.Variable +': passing it literally to the linker, although it might fail' Literal.String.Double +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n\t ' Text +'abs_ladir' Name.Variable +'=' Operator +'"' Literal.String.Double +'$ladir' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t' Text +'esac' Keyword +'\n\t' Text +'laname' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$lib' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +' ' Text +'-e' Text +' ' Text +"'s%^.*/%%'" Literal.String.Single +'`' Literal.String.Backtick +'\n\n\t' Text +'# Find the relevant object directory and library name.\n' Comment.Single + +'\t' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$installed' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'Xyes' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'!' Text +' ' Text +'-f' Text +' ' Text +'"' Literal.String.Double +'$libdir' Name.Variable +'/' Literal.String.Double +'$linklib' Name.Variable +'"' Literal.String.Double +' ' Text +'&&' Operator +' ' Text +'test' Name.Builtin +' ' Text +'-f' Text +' ' Text +'"' Literal.String.Double +'$abs_ladir' Name.Variable +'/' Literal.String.Double +'$linklib' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$modename' Name.Variable +': warning: library \\`' Literal.String.Double +'$lib' Name.Variable +"' was moved." Literal.String.Double +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n\t ' Text +'dir' Name.Variable +'=' Operator +'"' Literal.String.Double +'$ladir' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'absdir' Name.Variable +'=' Operator +'"' Literal.String.Double +'$abs_ladir' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'libdir' Name.Variable +'=' Operator +'"' Literal.String.Double +'$abs_ladir' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'else' Keyword +'\n\t ' Text +'dir' Name.Variable +'=' Operator +'"' Literal.String.Double +'$libdir' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'absdir' Name.Variable +'=' Operator +'"' Literal.String.Double +'$libdir' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$hardcode_automatic' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'Xyes' Text +' ' Text +'&&' Operator +' ' Text +'avoidtemprpath' Name.Variable +'=' Operator +'yes' Text +'\n\t' Text +'else' Keyword +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'!' Text +' ' Text +'-f' Text +' ' Text +'"' Literal.String.Double +'$ladir' Name.Variable +'/' Literal.String.Double +'$objdir' Name.Variable +'/' Literal.String.Double +'$linklib' Name.Variable +'"' Literal.String.Double +' ' Text +'&&' Operator +' ' Text +'test' Name.Builtin +' ' Text +'-f' Text +' ' Text +'"' Literal.String.Double +'$abs_ladir' Name.Variable +'/' Literal.String.Double +'$linklib' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'dir' Name.Variable +'=' Operator +'"' Literal.String.Double +'$ladir' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'absdir' Name.Variable +'=' Operator +'"' Literal.String.Double +'$abs_ladir' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'# Remove this search path later\n' Comment.Single + +'\t ' Text +'notinst_path' Name.Variable +'=' Operator +'"' Literal.String.Double +'$notinst_path' Name.Variable +' ' Literal.String.Double +'$abs_ladir' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'else' Keyword +'\n\t ' Text +'dir' Name.Variable +'=' Operator +'"' Literal.String.Double +'$ladir' Name.Variable +'/' Literal.String.Double +'$objdir' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'absdir' Name.Variable +'=' Operator +'"' Literal.String.Double +'$abs_ladir' Name.Variable +'/' Literal.String.Double +'$objdir' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'# Remove this search path later\n' Comment.Single + +'\t ' Text +'notinst_path' Name.Variable +'=' Operator +'"' Literal.String.Double +'$notinst_path' Name.Variable +' ' Literal.String.Double +'$abs_ladir' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'fi' Keyword +'\n\t' Text +'fi' Keyword +' ' Text +'# $installed = yes\n' Comment.Single + +'\t' Text +'name' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$laname' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +' ' Text +'-e' Text +' ' Text +"'s/\\.la$//'" Literal.String.Single +' ' Text +'-e' Text +' ' Text +"'s/^lib//'" Literal.String.Single +'`' Literal.String.Backtick +'\n\n\t' Text +'# This library was specified with -dlpreopen.\n' Comment.Single + +'\t' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$pass' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'dlpreopen' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-z' Text +' ' Text +'"' Literal.String.Double +'$libdir' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$modename' Name.Variable +': cannot -dlpreopen a convenience library: \\`' Literal.String.Double +'$lib' Name.Variable +"'" Literal.String.Double +'"' Literal.String.Double +' ' Text +'1' Literal.Number +'>' Text +'&' Punctuation +'2' Literal.Number +'\n\t ' Text +'exit' Name.Builtin +' ' Text +'$EXIT_FAILURE' Name.Variable +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'# Prefer using a static library (so that no silly _DYNAMIC symbols\n' Comment.Single + +'\t ' Text +'# are required to link).\n' Comment.Single + +'\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$old_library' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'newdlprefiles' Name.Variable +'=' Operator +'"' Literal.String.Double +'$newdlprefiles' Name.Variable +' ' Literal.String.Double +'$dir' Name.Variable +'/' Literal.String.Double +'$old_library' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'# Otherwise, use the dlname, so that lt_dlopen finds it.\n' Comment.Single + +'\t ' Text +'elif' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$dlname' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'newdlprefiles' Name.Variable +'=' Operator +'"' Literal.String.Double +'$newdlprefiles' Name.Variable +' ' Literal.String.Double +'$dir' Name.Variable +'/' Literal.String.Double +'$dlname' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'else' Keyword +'\n\t ' Text +'newdlprefiles' Name.Variable +'=' Operator +'"' Literal.String.Double +'$newdlprefiles' Name.Variable +' ' Literal.String.Double +'$dir' Name.Variable +'/' Literal.String.Double +'$linklib' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'fi' Keyword +'\n\t' Text +'fi' Keyword +' ' Text +'# $pass = dlpreopen\n' Comment.Single + +'\n\t' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-z' Text +' ' Text +'"' Literal.String.Double +'$libdir' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'# Link the convenience library\n' Comment.Single + +'\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$linkmode' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'lib' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$dir' Name.Variable +'/' Literal.String.Double +'$old_library' Name.Variable +' ' Literal.String.Double +'$deplibs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'elif' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$linkmode' Name.Variable +',' Literal.String.Double +'$pass' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'"prog,link"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'compile_deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$dir' Name.Variable +'/' Literal.String.Double +'$old_library' Name.Variable +' ' Literal.String.Double +'$compile_deplibs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'finalize_deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$dir' Name.Variable +'/' Literal.String.Double +'$old_library' Name.Variable +' ' Literal.String.Double +'$finalize_deplibs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'else' Keyword +'\n\t ' Text +'deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$lib' Name.Variable +' ' Literal.String.Double +'$deplibs' Name.Variable +'"' Literal.String.Double +' ' Text +'# used for prog,scan pass\n' Comment.Single + +'\t ' Text +'fi' Keyword +'\n\t ' Text +'continue' Keyword +'\n\t' Text +'fi' Keyword +'\n\n\n\t' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$linkmode' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'prog' Text +' ' Text +'&&' Operator +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$pass' Name.Variable +'"' Literal.String.Double +' ' Text +'!' Text +'=' Operator +' ' Text +'link' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'newlib_search_path' Name.Variable +'=' Operator +'"' Literal.String.Double +'$newlib_search_path' Name.Variable +' ' Literal.String.Double +'$ladir' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$lib' Name.Variable +' ' Literal.String.Double +'$deplibs' Name.Variable +'"' Literal.String.Double +'\n\n\t ' Text +'linkalldeplibs' Name.Variable +'=' Operator +'no' Text +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$link_all_deplibs' Name.Variable +'"' Literal.String.Double +' ' Text +'!' Text +'=' Operator +' ' Text +'no' Text +' ' Text +'||' Operator +' ' Text +'test' Name.Builtin +' ' Text +'-z' Text +' ' Text +'"' Literal.String.Double +'$library_names' Name.Variable +'"' Literal.String.Double +' ' Text +'||' Operator +'\n\t ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$build_libtool_libs' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'no' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'linkalldeplibs' Name.Variable +'=' Operator +'yes' Text +'\n\t ' Text +'fi' Keyword +'\n\n\t ' Text +'tmp_libs' Name.Variable +'=' Operator +'\n\t ' Text +'for' Keyword +' ' Text +'deplib' Text +' ' Text +'in' Keyword +' ' Text +'$dependency_libs' Name.Variable +';' Punctuation +' ' Text +'do' Keyword +'\n\t ' Text +'case' Keyword +' ' Text +'$deplib' Name.Variable +' ' Text +'in' Keyword +'\n\t ' Text +'-L*' Text +')' Operator +' ' Text +'newlib_search_path' Name.Variable +'=' Operator +'"' Literal.String.Double +'$newlib_search_path' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$deplib' Name.Variable +'"' Literal.String.Double +' ' Text +'|' Punctuation +' ' Text +'$Xsed' Name.Variable +' ' Text +'-e' Text +' ' Text +"'s/^-L//'" Literal.String.Single +'`' Literal.String.Backtick +';' Punctuation +';' Punctuation +' ' Text +'### testsuite: skip nested quoting test\n' Comment.Single + +'\t ' Text +'esac' Keyword +'\n\t ' Text +'# Need to link against all dependency_libs?\n' Comment.Single + +'\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$linkalldeplibs' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'yes' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$deplib' Name.Variable +' ' Literal.String.Double +'$deplibs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'else' Keyword +'\n\t ' Text +'# Need to hardcode shared library paths\n' Comment.Single + +'\t ' Text +'# or/and link against static libraries\n' Comment.Single + +'\t ' Text +'newdependency_libs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$deplib' Name.Variable +' ' Literal.String.Double +'$newdependency_libs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'X' Literal.String.Double +'$duplicate_deps' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'"Xyes"' Literal.String.Double +' ' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'case' Keyword +' ' Text +'"' Literal.String.Double +'$tmp_libs' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +' ' Text +'in' Keyword +'\n\t ' Text +'*' Text +'"' Literal.String.Double +' ' Literal.String.Double +'$deplib' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +'*' Text +')' Operator +' ' Text +'specialdeplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$specialdeplibs' Name.Variable +' ' Literal.String.Double +'$deplib' Name.Variable +'"' Literal.String.Double +' ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'esac' Keyword +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'tmp_libs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$tmp_libs' Name.Variable +' ' Literal.String.Double +'$deplib' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'done' Keyword +' ' Text +'# for deplib\n' Comment.Single + +'\t ' Text +'continue' Keyword +'\n\t' Text +'fi' Keyword +' ' Text +'# $linkmode = prog...\n' Comment.Single + +'\n\t' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$linkmode' Name.Variable +',' Literal.String.Double +'$pass' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'"prog,link"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$library_names' Name.Variable +'"' Literal.String.Double +' ' Text +'&&' Operator +'\n\t ' Text +'{' Operator +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$prefer_static_libs' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'no' Text +' ' Text +'||' Operator +' ' Text +'test' Name.Builtin +' ' Text +'-z' Text +' ' Text +'"' Literal.String.Double +'$old_library' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'}' Operator +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'# We need to hardcode the library path\n' Comment.Single + +'\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$shlibpath_var' Name.Variable +'"' Literal.String.Double +' ' Text +'&&' Operator +' ' Text +'test' Name.Builtin +' ' Text +'-z' Text +' ' Text +'"' Literal.String.Double +'$avoidtemprpath' Name.Variable +'"' Literal.String.Double +' ' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'# Make sure the rpath contains only unique directories.\n' Comment.Single + +'\t ' Text +'case' Keyword +' ' Text +'"' Literal.String.Double +'$temp_rpath' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +' ' Text +'in' Keyword +'\n\t ' Text +'*' Text +'"' Literal.String.Double +' ' Literal.String.Double +'$dir' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +'*' Text +')' Operator +' ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'*' Text +'"' Literal.String.Double +' ' Literal.String.Double +'$absdir' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +'*' Text +')' Operator +' ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'*' Text +')' Operator +' ' Text +'temp_rpath' Name.Variable +'=' Operator +'"' Literal.String.Double +'$temp_rpath' Name.Variable +' ' Literal.String.Double +'$absdir' Name.Variable +'"' Literal.String.Double +' ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'esac' Keyword +'\n\t ' Text +'fi' Keyword +'\n\n\t ' Text +'# Hardcode the library path.\n' Comment.Single + +'\t ' Text +'# Skip directories that are in the system default run-time\n' Comment.Single + +'\t ' Text +'# search path.\n' Comment.Single + +'\t ' Text +'case' Keyword +' ' Text +'"' Literal.String.Double +' ' Literal.String.Double +'$sys_lib_dlsearch_path' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +' ' Text +'in' Keyword +'\n\t ' Text +'*' Text +'"' Literal.String.Double +' ' Literal.String.Double +'$absdir' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +'*' Text +')' Operator +' ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'*' Text +')' Operator +'\n\t ' Text +'case' Keyword +' ' Text +'"' Literal.String.Double +'$compile_rpath' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +' ' Text +'in' Keyword +'\n\t ' Text +'*' Text +'"' Literal.String.Double +' ' Literal.String.Double +'$absdir' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +'*' Text +')' Operator +' ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'*' Text +')' Operator +' ' Text +'compile_rpath' Name.Variable +'=' Operator +'"' Literal.String.Double +'$compile_rpath' Name.Variable +' ' Literal.String.Double +'$absdir' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'esac' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'esac' Keyword +'\n\t ' Text +'case' Keyword +' ' Text +'"' Literal.String.Double +' ' Literal.String.Double +'$sys_lib_dlsearch_path' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +' ' Text +'in' Keyword +'\n\t ' Text +'*' Text +'"' Literal.String.Double +' ' Literal.String.Double +'$libdir' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +'*' Text +')' Operator +' ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'*' Text +')' Operator +'\n\t ' Text +'case' Keyword +' ' Text +'"' Literal.String.Double +'$finalize_rpath' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +' ' Text +'in' Keyword +'\n\t ' Text +'*' Text +'"' Literal.String.Double +' ' Literal.String.Double +'$libdir' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +'*' Text +')' Operator +' ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'*' Text +')' Operator +' ' Text +'finalize_rpath' Name.Variable +'=' Operator +'"' Literal.String.Double +'$finalize_rpath' Name.Variable +' ' Literal.String.Double +'$libdir' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'esac' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'esac' Keyword +'\n\t ' Text +'fi' Keyword +' ' Text +'# $linkmode,$pass = prog,link...\n' Comment.Single + +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$alldeplibs' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'yes' Text +' ' Text +'&&' Operator +'\n\t ' Text +'{' Operator +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$deplibs_check_method' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'pass_all' Text +' ' Text +'||' Operator +'\n\t ' Text +'{' Operator +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$build_libtool_libs' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'yes' Text +' ' Text +'&&' Operator +'\n\t\t ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$library_names' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'}' Operator +';' Punctuation +' ' Text +'}' Operator +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'# We only need to search for static libraries\n' Comment.Single + +'\t ' Text +'continue' Keyword +'\n\t ' Text +'fi' Keyword +'\n\t' Text +'fi' Keyword +'\n\n\t' Text +'link_static' Name.Variable +'=' Operator +'no' Text +' ' Text +'# Whether the deplib will be linked statically\n' Comment.Single + +'\t' Text +'use_static_libs' Name.Variable +'=' Operator +'$prefer_static_libs' Name.Variable +'\n\t' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$use_static_libs' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'built' Text +' ' Text +'&&' Operator +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$installed' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'yes' Text +' ' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'use_static_libs' Name.Variable +'=' Operator +'no' Text +'\n\t' Text +'fi' Keyword +'\n\t' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$library_names' Name.Variable +'"' Literal.String.Double +' ' Text +'&&' Operator +'\n\t ' Text +'{' Operator +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$use_static_libs' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'no' Text +' ' Text +'||' Operator +' ' Text +'test' Name.Builtin +' ' Text +'-z' Text +' ' Text +'"' Literal.String.Double +'$old_library' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'}' Operator +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$installed' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'no' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'notinst_deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$notinst_deplibs' Name.Variable +' ' Literal.String.Double +'$lib' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'need_relink' Name.Variable +'=' Operator +'yes' Text +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'# This is a shared library\n' Comment.Single + +'\n\t ' Text +"# Warn about portability, can't link against -module's on\n" Comment.Single + +'\t ' Text +'# some systems (darwin)\n' Comment.Single + +'\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$shouldnotlink' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'yes' Text +' ' Text +'&&' Operator +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$pass' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'link' Text +' ' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'$echo' Name.Variable +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$linkmode' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'prog' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'*** Warning: Linking the executable ' Literal.String.Double +'$output' Name.Variable +' against the loadable module' Literal.String.Double +'"' Literal.String.Double +'\n\t ' Text +'else' Keyword +'\n\t ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'*** Warning: Linking the shared library ' Literal.String.Double +'$output' Name.Variable +' against the loadable module' Literal.String.Double +'"' Literal.String.Double +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'*** ' Literal.String.Double +'$linklib' Name.Variable +' is not portable!' Literal.String.Double +'"' Literal.String.Double +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$linkmode' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'lib' Text +' ' Text +'&&' Operator +'\n\t ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$hardcode_into_libs' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'yes' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'# Hardcode the library path.\n' Comment.Single + +'\t ' Text +'# Skip directories that are in the system default run-time\n' Comment.Single + +'\t ' Text +'# search path.\n' Comment.Single + +'\t ' Text +'case' Keyword +' ' Text +'"' Literal.String.Double +' ' Literal.String.Double +'$sys_lib_dlsearch_path' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +' ' Text +'in' Keyword +'\n\t ' Text +'*' Text +'"' Literal.String.Double +' ' Literal.String.Double +'$absdir' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +'*' Text +')' Operator +' ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'*' Text +')' Operator +'\n\t ' Text +'case' Keyword +' ' Text +'"' Literal.String.Double +'$compile_rpath' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +' ' Text +'in' Keyword +'\n\t ' Text +'*' Text +'"' Literal.String.Double +' ' Literal.String.Double +'$absdir' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +'*' Text +')' Operator +' ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'*' Text +')' Operator +' ' Text +'compile_rpath' Name.Variable +'=' Operator +'"' Literal.String.Double +'$compile_rpath' Name.Variable +' ' Literal.String.Double +'$absdir' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'esac' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'esac' Keyword +'\n\t ' Text +'case' Keyword +' ' Text +'"' Literal.String.Double +' ' Literal.String.Double +'$sys_lib_dlsearch_path' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +' ' Text +'in' Keyword +'\n\t ' Text +'*' Text +'"' Literal.String.Double +' ' Literal.String.Double +'$libdir' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +'*' Text +')' Operator +' ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'*' Text +')' Operator +'\n\t ' Text +'case' Keyword +' ' Text +'"' Literal.String.Double +'$finalize_rpath' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +' ' Text +'in' Keyword +'\n\t ' Text +'*' Text +'"' Literal.String.Double +' ' Literal.String.Double +'$libdir' Name.Variable +' ' Literal.String.Double +'"' Literal.String.Double +'*' Text +')' Operator +' ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'*' Text +')' Operator +' ' Text +'finalize_rpath' Name.Variable +'=' Operator +'"' Literal.String.Double +'$finalize_rpath' Name.Variable +' ' Literal.String.Double +'$libdir' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'esac' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'esac' Keyword +'\n\t ' Text +'fi' Keyword +'\n\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$old_archive_from_expsyms_cmds' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'# figure out the soname\n' Comment.Single + +'\t ' Text +'set' Name.Builtin +' ' Text +'dummy' Text +' ' Text +'$library_names' Name.Variable +'\n\t ' Text +'realname' Name.Variable +'=' Operator +'"' Literal.String.Double +'$2' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'shift' Text +';' Punctuation +' ' Text +'shift' Name.Builtin +'\n\t ' Text +'libname' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'eval' Name.Builtin +' ' Text +'\\\\' Literal.String.Escape +'$echo' Name.Variable +' ' Text +'\\"' Literal.String.Escape +'$libname_spec' Name.Variable +'\\"' Literal.String.Escape +'`' Literal.String.Backtick +'\n\t ' Text +"# use dlname if we got it. it's perfectly good, no?\n" Comment.Single + +'\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$dlname' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'soname' Name.Variable +'=' Operator +'"' Literal.String.Double +'$dlname' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'elif' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$soname_spec' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'# bleh windows\n' Comment.Single + +'\t ' Text +'case' Keyword +' ' Text +'$host' Name.Variable +' ' Text +'in' Keyword +'\n\t ' Text +'*cygwin*' Text +' ' Text +'|' Punctuation +' ' Text +'mingw*' Text +')' Operator +'\n\t\t' Text +'major' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'expr' Text +' ' Text +'$current' Name.Variable +' ' Text +'-' Text +' ' Text +'$age' Name.Variable +'`' Literal.String.Backtick +'\n\t\t' Text +'versuffix' Name.Variable +'=' Operator +'"' Literal.String.Double +'-' Literal.String.Double +'$major' Name.Variable +'"' Literal.String.Double +'\n\t\t' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'esac' Keyword +'\n\t ' Text +'eval' Name.Builtin +' ' Text +'soname' Name.Variable +'=' Operator +'\\"' Literal.String.Escape +'$soname_spec' Name.Variable +'\\"' Literal.String.Escape +'\n\t ' Text +'else' Keyword +'\n\t ' Text +'soname' Name.Variable +'=' Operator +'"' Literal.String.Double +'$realname' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'fi' Keyword +'\n\n\t ' Text +'# Make a new name for the extract_expsyms_cmds to use\n' Comment.Single + +'\t ' Text +'soroot' Name.Variable +'=' Operator +'"' Literal.String.Double +'$soname' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'soname' Name.Variable +'=' Operator +'`' Literal.String.Backtick +'$echo' Name.Variable +' ' Text +'$soroot' Name.Variable +' ' Text +'|' Punctuation +' ' Text +'${' Literal.String.Interpol +'SED' Name.Variable +'}' Literal.String.Interpol +' ' Text +'-e' Text +' ' Text +"'s/^.*\\///'" Literal.String.Single +'`' Literal.String.Backtick +'\n\t ' Text +'newlib' Name.Variable +'=' Operator +'"' Literal.String.Double +'libimp-`' Literal.String.Double +'$echo' Name.Variable +' ' Literal.String.Double +'$soname' Name.Variable +' | ' Literal.String.Double +'${' Literal.String.Interpol +'SED' Name.Variable +'}' Literal.String.Interpol +" 's/^lib//;s/\\.dll" Literal.String.Double +'$' Text +"//'`.a" Literal.String.Double +'"' Literal.String.Double +'\n\n\t ' Text +'# If the library has no export list, then create one now\n' Comment.Single + +'\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-f' Text +' ' Text +'"' Literal.String.Double +'$output_objdir' Name.Variable +'/' Literal.String.Double +'$soname' Name.Variable +'-def' Literal.String.Double +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +' ' Text +':' Text +'\n\t ' Text +'else' Keyword +'\n\t ' Text +'$show' Name.Variable +' ' Text +'"' Literal.String.Double +'extracting exported symbol list from \\`' Literal.String.Double +'$soname' Name.Variable +"'" Literal.String.Double +'"' Literal.String.Double +'\n\t ' Text +'save_ifs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$IFS' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'IFS' Name.Variable +'=' Operator +"'~'" Literal.String.Single +'\n\t ' Text +'cmds' Name.Variable +'=' Operator +'$extract_expsyms_cmds' Name.Variable +'\n\t ' Text +'for' Keyword +' ' Text +'cmd' Text +' ' Text +'in' Keyword +' ' Text +'$cmds' Name.Variable +';' Punctuation +' ' Text +'do' Keyword +'\n\t\t' Text +'IFS' Name.Variable +'=' Operator +'"' Literal.String.Double +'$save_ifs' Name.Variable +'"' Literal.String.Double +'\n\t\t' Text +'eval' Name.Builtin +' ' Text +'cmd' Name.Variable +'=' Operator +'\\"' Literal.String.Escape +'$cmd' Name.Variable +'\\"' Literal.String.Escape +'\n\t\t' Text +'$show' Name.Variable +' ' Text +'"' Literal.String.Double +'$cmd' Name.Variable +'"' Literal.String.Double +'\n\t\t' Text +'$run' Name.Variable +' ' Text +'eval' Name.Builtin +' ' Text +'"' Literal.String.Double +'$cmd' Name.Variable +'"' Literal.String.Double +' ' Text +'||' Operator +' ' Text +'exit' Name.Builtin +' ' Text +'$?' Name.Variable +'\n\t ' Text +'done' Keyword +'\n\t ' Text +'IFS' Name.Variable +'=' Operator +'"' Literal.String.Double +'$save_ifs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'fi' Keyword +'\n\n\t ' Text +'# Create $newlib\n' Comment.Single + +'\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-f' Text +' ' Text +'"' Literal.String.Double +'$output_objdir' Name.Variable +'/' Literal.String.Double +'$newlib' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +' ' Text +':' Text +';' Punctuation +' ' Text +'else' Keyword +'\n\t ' Text +'$show' Name.Variable +' ' Text +'"' Literal.String.Double +'generating import library for \\`' Literal.String.Double +'$soname' Name.Variable +"'" Literal.String.Double +'"' Literal.String.Double +'\n\t ' Text +'save_ifs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$IFS' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'IFS' Name.Variable +'=' Operator +"'~'" Literal.String.Single +'\n\t ' Text +'cmds' Name.Variable +'=' Operator +'$old_archive_from_expsyms_cmds' Name.Variable +'\n\t ' Text +'for' Keyword +' ' Text +'cmd' Text +' ' Text +'in' Keyword +' ' Text +'$cmds' Name.Variable +';' Punctuation +' ' Text +'do' Keyword +'\n\t\t' Text +'IFS' Name.Variable +'=' Operator +'"' Literal.String.Double +'$save_ifs' Name.Variable +'"' Literal.String.Double +'\n\t\t' Text +'eval' Name.Builtin +' ' Text +'cmd' Name.Variable +'=' Operator +'\\"' Literal.String.Escape +'$cmd' Name.Variable +'\\"' Literal.String.Escape +'\n\t\t' Text +'$show' Name.Variable +' ' Text +'"' Literal.String.Double +'$cmd' Name.Variable +'"' Literal.String.Double +'\n\t\t' Text +'$run' Name.Variable +' ' Text +'eval' Name.Builtin +' ' Text +'"' Literal.String.Double +'$cmd' Name.Variable +'"' Literal.String.Double +' ' Text +'||' Operator +' ' Text +'exit' Name.Builtin +' ' Text +'$?' Name.Variable +'\n\t ' Text +'done' Keyword +'\n\t ' Text +'IFS' Name.Variable +'=' Operator +'"' Literal.String.Double +'$save_ifs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'# make sure the library variables are pointing to the new library\n' Comment.Single + +'\t ' Text +'dir' Name.Variable +'=' Operator +'$output_objdir' Name.Variable +'\n\t ' Text +'linklib' Name.Variable +'=' Operator +'$newlib' Name.Variable +'\n\t ' Text +'fi' Keyword +' ' Text +'# test -n "$old_archive_from_expsyms_cmds"\n' Comment.Single + +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$linkmode' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'prog' Text +' ' Text +'||' Operator +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$mode' Name.Variable +'"' Literal.String.Double +' ' Text +'!' Text +'=' Operator +' ' Text +'relink' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'add_shlibpath' Name.Variable +'=' Operator +'\n\t ' Text +'add_dir' Name.Variable +'=' Operator +'\n\t ' Text +'add' Name.Variable +'=' Operator +'\n\t ' Text +'lib_linked' Name.Variable +'=' Operator +'yes' Text +'\n\t ' Text +'case' Keyword +' ' Text +'$hardcode_action' Name.Variable +' ' Text +'in' Keyword +'\n\t ' Text +'immediate' Text +' ' Text +'|' Punctuation +' ' Text +'unsupported' Text +')' Operator +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$hardcode_direct' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'no' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t\t' Text +'add' Name.Variable +'=' Operator +'"' Literal.String.Double +'$dir' Name.Variable +'/' Literal.String.Double +'$linklib' Name.Variable +'"' Literal.String.Double +'\n\t\t' Text +'case' Keyword +' ' Text +'$host' Name.Variable +' ' Text +'in' Keyword +'\n\t\t ' Text +'*-*-sco3.2v5.0.' Text +'[' Operator +'024' Literal.Number +']' Operator +'*' Text +')' Operator +' ' Text +'add_dir' Name.Variable +'=' Operator +'"' Literal.String.Double +'-L' Literal.String.Double +'$dir' Name.Variable +'"' Literal.String.Double +' ' Text +';' Punctuation +';' Punctuation +'\n\t\t ' Text +'*-*-sysv4*uw2*' Text +')' Operator +' ' Text +'add_dir' Name.Variable +'=' Operator +'"' Literal.String.Double +'-L' Literal.String.Double +'$dir' Name.Variable +'"' Literal.String.Double +' ' Text +';' Punctuation +';' Punctuation +'\n\t\t ' Text +'*-*-sysv5OpenUNIX*' Text +' ' Text +'|' Punctuation +' ' Text +'*-*-sysv5UnixWare7.' Text +'[' Operator +'01' Literal.Number +']' Operator +'.' Text +'[' Operator +'10' Literal.Number +']' Operator +'*' Text +' ' Text +'|' Punctuation +' ' Text +'\\\n' Literal.String.Escape + +'\t\t ' Text +'*-*-unixware7*' Text +')' Operator +' ' Text +'add_dir' Name.Variable +'=' Operator +'"' Literal.String.Double +'-L' Literal.String.Double +'$dir' Name.Variable +'"' Literal.String.Double +' ' Text +';' Punctuation +';' Punctuation +'\n\t\t ' Text +'*-*-darwin*' Text +' ' Text +')' Operator +'\n\t\t ' Text +'# if the lib is a module then we can not link against\n' Comment.Single + +'\t\t ' Text +'# it, someone is ignoring the new warnings I added\n' Comment.Single + +'\t\t ' Text +'if' Keyword +' ' Text +'/usr/bin/file' Text +' ' Text +'-L' Text +' ' Text +'$add' Name.Variable +' ' Text +'2' Literal.Number +'>' Text +' ' Text +'/dev/null' Text +' ' Text +'|' Punctuation +'\n ' Text +'$EGREP' Name.Variable +' ' Text +'": [^:]* bundle"' Literal.String.Double +' ' Text +'>/dev/null' Text +' ' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t\t ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'** Warning, lib ' Literal.String.Double +'$linklib' Name.Variable +' is a module, not a shared library' Literal.String.Double +'"' Literal.String.Double +'\n\t\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-z' Text +' ' Text +'"' Literal.String.Double +'$old_library' Name.Variable +'"' Literal.String.Double +' ' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t\t ' Text +'$echo' Name.Variable +'\n\t\t ' Text +'$echo' Name.Variable +' ' Text +'"** And there doesn\'t seem to be a static archive available"' Literal.String.Double +'\n\t\t ' Text +'$echo' Name.Variable +' ' Text +'"** The link will probably fail, sorry"' Literal.String.Double +'\n\t\t ' Text +'else' Keyword +'\n\t\t ' Text +'add' Name.Variable +'=' Operator +'"' Literal.String.Double +'$dir' Name.Variable +'/' Literal.String.Double +'$old_library' Name.Variable +'"' Literal.String.Double +'\n\t\t ' Text +'fi' Keyword +'\n\t\t ' Text +'fi' Keyword +'\n\t\t' Text +'esac' Keyword +'\n\t ' Text +'elif' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$hardcode_minus_L' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'no' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t\t' Text +'case' Keyword +' ' Text +'$host' Name.Variable +' ' Text +'in' Keyword +'\n\t\t' Text +'*-*-sunos*' Text +')' Operator +' ' Text +'add_shlibpath' Name.Variable +'=' Operator +'"' Literal.String.Double +'$dir' Name.Variable +'"' Literal.String.Double +' ' Text +';' Punctuation +';' Punctuation +'\n\t\t' Text +'esac' Keyword +'\n\t\t' Text +'add_dir' Name.Variable +'=' Operator +'"' Literal.String.Double +'-L' Literal.String.Double +'$dir' Name.Variable +'"' Literal.String.Double +'\n\t\t' Text +'add' Name.Variable +'=' Operator +'"' Literal.String.Double +'-l' Literal.String.Double +'$name' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'elif' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$hardcode_shlibpath_var' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'no' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t\t' Text +'add_shlibpath' Name.Variable +'=' Operator +'"' Literal.String.Double +'$dir' Name.Variable +'"' Literal.String.Double +'\n\t\t' Text +'add' Name.Variable +'=' Operator +'"' Literal.String.Double +'-l' Literal.String.Double +'$name' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'else' Keyword +'\n\t\t' Text +'lib_linked' Name.Variable +'=' Operator +'no' Text +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'relink' Text +')' Operator +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$hardcode_direct' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'yes' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t\t' Text +'add' Name.Variable +'=' Operator +'"' Literal.String.Double +'$dir' Name.Variable +'/' Literal.String.Double +'$linklib' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'elif' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$hardcode_minus_L' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'yes' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t\t' Text +'add_dir' Name.Variable +'=' Operator +'"' Literal.String.Double +'-L' Literal.String.Double +'$dir' Name.Variable +'"' Literal.String.Double +'\n\t\t' Text +"# Try looking first in the location we're being installed to.\n" Comment.Single + +'\t\t' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$inst_prefix_dir' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t\t ' Text +'case' Keyword +' ' Text +'$libdir' Name.Variable +' ' Text +'in' Keyword +'\n\t\t ' Text +'[' Operator +'\\\\' Literal.String.Escape +'/' Text +']' Operator +'*' Text +')' Operator +'\n\t\t ' Text +'add_dir' Name.Variable +'=' Operator +'"' Literal.String.Double +'$add_dir' Name.Variable +' -L' Literal.String.Double +'$inst_prefix_dir' Name.Variable +'$libdir' Name.Variable +'"' Literal.String.Double +'\n\t\t ' Text +';' Punctuation +';' Punctuation +'\n\t\t ' Text +'esac' Keyword +'\n\t\t' Text +'fi' Keyword +'\n\t\t' Text +'add' Name.Variable +'=' Operator +'"' Literal.String.Double +'-l' Literal.String.Double +'$name' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'elif' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$hardcode_shlibpath_var' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'yes' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t\t' Text +'add_shlibpath' Name.Variable +'=' Operator +'"' Literal.String.Double +'$dir' Name.Variable +'"' Literal.String.Double +'\n\t\t' Text +'add' Name.Variable +'=' Operator +'"' Literal.String.Double +'-l' Literal.String.Double +'$name' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'else' Keyword +'\n\t\t' Text +'lib_linked' Name.Variable +'=' Operator +'no' Text +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'*' Text +')' Operator +' ' Text +'lib_linked' Name.Variable +'=' Operator +'no' Text +' ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'esac' Keyword +'\n\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$lib_linked' Name.Variable +'"' Literal.String.Double +' ' Text +'!' Text +'=' Operator +' ' Text +'yes' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'$echo' Name.Variable +' ' Text +'"' Literal.String.Double +'$modename' Name.Variable +': configuration error: unsupported hardcode properties' Literal.String.Double +'"' Literal.String.Double +'\n\t ' Text +'exit' Name.Builtin +' ' Text +'$EXIT_FAILURE' Name.Variable +'\n\t ' Text +'fi' Keyword +'\n\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$add_shlibpath' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'case' Keyword +' ' Text +':' Text +'$compile_shlibpath' Name.Variable +':' Text +' ' Text +'in' Keyword +'\n\t ' Text +'*' Text +'"' Literal.String.Double +':' Literal.String.Double +'$add_shlibpath' Name.Variable +':' Literal.String.Double +'"' Literal.String.Double +'*' Text +')' Operator +' ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'*' Text +')' Operator +' ' Text +'compile_shlibpath' Name.Variable +'=' Operator +'"' Literal.String.Double +'$compile_shlibpath' Name.Variable +'$add_shlibpath' Name.Variable +':' Literal.String.Double +'"' Literal.String.Double +' ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'esac' Keyword +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$linkmode' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'prog' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$add_dir' Name.Variable +'"' Literal.String.Double +' ' Text +'&&' Operator +' ' Text +'compile_deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$add_dir' Name.Variable +' ' Literal.String.Double +'$compile_deplibs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$add' Name.Variable +'"' Literal.String.Double +' ' Text +'&&' Operator +' ' Text +'compile_deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$add' Name.Variable +' ' Literal.String.Double +'$compile_deplibs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'else' Keyword +'\n\t ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$add_dir' Name.Variable +'"' Literal.String.Double +' ' Text +'&&' Operator +' ' Text +'deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$add_dir' Name.Variable +' ' Literal.String.Double +'$deplibs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$add' Name.Variable +'"' Literal.String.Double +' ' Text +'&&' Operator +' ' Text +'deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$add' Name.Variable +' ' Literal.String.Double +'$deplibs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$hardcode_direct' Name.Variable +'"' Literal.String.Double +' ' Text +'!' Text +'=' Operator +' ' Text +'yes' Text +' ' Text +'&&' Operator +' ' Text +'\\\n' Literal.String.Escape + +'\t\t ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$hardcode_minus_L' Name.Variable +'"' Literal.String.Double +' ' Text +'!' Text +'=' Operator +' ' Text +'yes' Text +' ' Text +'&&' Operator +' ' Text +'\\\n' Literal.String.Escape + +'\t\t ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$hardcode_shlibpath_var' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'yes' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t\t' Text +'case' Keyword +' ' Text +':' Text +'$finalize_shlibpath' Name.Variable +':' Text +' ' Text +'in' Keyword +'\n\t\t' Text +'*' Text +'"' Literal.String.Double +':' Literal.String.Double +'$libdir' Name.Variable +':' Literal.String.Double +'"' Literal.String.Double +'*' Text +')' Operator +' ' Text +';' Punctuation +';' Punctuation +'\n\t\t' Text +'*' Text +')' Operator +' ' Text +'finalize_shlibpath' Name.Variable +'=' Operator +'"' Literal.String.Double +'$finalize_shlibpath' Name.Variable +'$libdir' Name.Variable +':' Literal.String.Double +'"' Literal.String.Double +' ' Text +';' Punctuation +';' Punctuation +'\n\t\t' Text +'esac' Keyword +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'fi' Keyword +'\n\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$linkmode' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'prog' Text +' ' Text +'||' Operator +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$mode' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'relink' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'add_shlibpath' Name.Variable +'=' Operator +'\n\t ' Text +'add_dir' Name.Variable +'=' Operator +'\n\t ' Text +'add' Name.Variable +'=' Operator +'\n\t ' Text +'# Finalize command for both is simple: just hardcode it.\n' Comment.Single + +'\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$hardcode_direct' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'yes' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'add' Name.Variable +'=' Operator +'"' Literal.String.Double +'$libdir' Name.Variable +'/' Literal.String.Double +'$linklib' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'elif' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$hardcode_minus_L' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'yes' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'add_dir' Name.Variable +'=' Operator +'"' Literal.String.Double +'-L' Literal.String.Double +'$libdir' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'add' Name.Variable +'=' Operator +'"' Literal.String.Double +'-l' Literal.String.Double +'$name' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'elif' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$hardcode_shlibpath_var' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'yes' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'case' Keyword +' ' Text +':' Text +'$finalize_shlibpath' Name.Variable +':' Text +' ' Text +'in' Keyword +'\n\t ' Text +'*' Text +'"' Literal.String.Double +':' Literal.String.Double +'$libdir' Name.Variable +':' Literal.String.Double +'"' Literal.String.Double +'*' Text +')' Operator +' ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'*' Text +')' Operator +' ' Text +'finalize_shlibpath' Name.Variable +'=' Operator +'"' Literal.String.Double +'$finalize_shlibpath' Name.Variable +'$libdir' Name.Variable +':' Literal.String.Double +'"' Literal.String.Double +' ' Text +';' Punctuation +';' Punctuation +'\n\t ' Text +'esac' Keyword +'\n\t ' Text +'add' Name.Variable +'=' Operator +'"' Literal.String.Double +'-l' Literal.String.Double +'$name' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'elif' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$hardcode_automatic' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'yes' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$inst_prefix_dir' Name.Variable +'"' Literal.String.Double +' ' Text +'&&' Operator +'\n\t\t ' Text +'test' Name.Builtin +' ' Text +'-f' Text +' ' Text +'"' Literal.String.Double +'$inst_prefix_dir' Name.Variable +'$libdir' Name.Variable +'/' Literal.String.Double +'$linklib' Name.Variable +'"' Literal.String.Double +' ' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'add' Name.Variable +'=' Operator +'"' Literal.String.Double +'$inst_prefix_dir' Name.Variable +'$libdir' Name.Variable +'/' Literal.String.Double +'$linklib' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'else' Keyword +'\n\t ' Text +'add' Name.Variable +'=' Operator +'"' Literal.String.Double +'$libdir' Name.Variable +'/' Literal.String.Double +'$linklib' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'else' Keyword +'\n\t ' Text +"# We cannot seem to hardcode it, guess we'll fake it.\n" Comment.Single + +'\t ' Text +'add_dir' Name.Variable +'=' Operator +'"' Literal.String.Double +'-L' Literal.String.Double +'$libdir' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +"# Try looking first in the location we're being installed to.\n" Comment.Single + +'\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$inst_prefix_dir' Name.Variable +'"' Literal.String.Double +';' Punctuation +' ' Text +'then' Keyword +'\n\t\t' Text +'case' Keyword +' ' Text +'$libdir' Name.Variable +' ' Text +'in' Keyword +'\n\t\t ' Text +'[' Operator +'\\\\' Literal.String.Escape +'/' Text +']' Operator +'*' Text +')' Operator +'\n\t\t ' Text +'add_dir' Name.Variable +'=' Operator +'"' Literal.String.Double +'$add_dir' Name.Variable +' -L' Literal.String.Double +'$inst_prefix_dir' Name.Variable +'$libdir' Name.Variable +'"' Literal.String.Double +'\n\t\t ' Text +';' Punctuation +';' Punctuation +'\n\t\t' Text +'esac' Keyword +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'add' Name.Variable +'=' Operator +'"' Literal.String.Double +'-l' Literal.String.Double +'$name' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'fi' Keyword +'\n\n\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$linkmode' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'prog' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$add_dir' Name.Variable +'"' Literal.String.Double +' ' Text +'&&' Operator +' ' Text +'finalize_deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$add_dir' Name.Variable +' ' Literal.String.Double +'$finalize_deplibs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$add' Name.Variable +'"' Literal.String.Double +' ' Text +'&&' Operator +' ' Text +'finalize_deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$add' Name.Variable +' ' Literal.String.Double +'$finalize_deplibs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'else' Keyword +'\n\t ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$add_dir' Name.Variable +'"' Literal.String.Double +' ' Text +'&&' Operator +' ' Text +'deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$add_dir' Name.Variable +' ' Literal.String.Double +'$deplibs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$add' Name.Variable +'"' Literal.String.Double +' ' Text +'&&' Operator +' ' Text +'deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$add' Name.Variable +' ' Literal.String.Double +'$deplibs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'fi' Keyword +'\n\t ' Text +'fi' Keyword +'\n\t' Text +'elif' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$linkmode' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'prog' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'# Here we assume that one of hardcode_direct or hardcode_minus_L\n' Comment.Single + +'\t ' Text +'# is not unsupported. This is valid on all known static and\n' Comment.Single + +'\t ' Text +'# shared platforms.\n' Comment.Single + +'\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$hardcode_direct' Name.Variable +'"' Literal.String.Double +' ' Text +'!' Text +'=' Operator +' ' Text +'unsupported' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'test' Name.Builtin +' ' Text +'-n' Text +' ' Text +'"' Literal.String.Double +'$old_library' Name.Variable +'"' Literal.String.Double +' ' Text +'&&' Operator +' ' Text +'linklib' Name.Variable +'=' Operator +'"' Literal.String.Double +'$old_library' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'compile_deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$dir' Name.Variable +'/' Literal.String.Double +'$linklib' Name.Variable +' ' Literal.String.Double +'$compile_deplibs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'finalize_deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'$dir' Name.Variable +'/' Literal.String.Double +'$linklib' Name.Variable +' ' Literal.String.Double +'$finalize_deplibs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'else' Keyword +'\n\t ' Text +'compile_deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'-l' Literal.String.Double +'$name' Name.Variable +' -L' Literal.String.Double +'$dir' Name.Variable +' ' Literal.String.Double +'$compile_deplibs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'finalize_deplibs' Name.Variable +'=' Operator +'"' Literal.String.Double +'-l' Literal.String.Double +'$name' Name.Variable +' -L' Literal.String.Double +'$dir' Name.Variable +' ' Literal.String.Double +'$finalize_deplibs' Name.Variable +'"' Literal.String.Double +'\n\t ' Text +'fi' Keyword +'\n\t' Text +'elif' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$build_libtool_libs' Name.Variable +'"' Literal.String.Double +' ' Text +'=' Operator +' ' Text +'yes' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +'# Not a shared library\n' Comment.Single + +'\t ' Text +'if' Keyword +' ' Text +'test' Name.Builtin +' ' Text +'"' Literal.String.Double +'$deplibs_check_method' Name.Variable +'"' Literal.String.Double +' ' Text +'!' Text +'=' Operator +' ' Text +'pass_all' Text +';' Punctuation +' ' Text +'then' Keyword +'\n\t ' Text +"# We're trying link a shared library against a static one\n" Comment.Single + +'\t ' Text +"# but the system doesn't support it.\n" Comment.Single diff --git a/tests/examplefiles/bash/stripheredoc.sh b/tests/examplefiles/bash/stripheredoc.sh new file mode 100644 index 00000000000..33e7ff33486 --- /dev/null +++ b/tests/examplefiles/bash/stripheredoc.sh @@ -0,0 +1,3 @@ +cat <<-EOF + Hello world $PATH + EOF diff --git a/tests/examplefiles/bash/stripheredoc.sh.output b/tests/examplefiles/bash/stripheredoc.sh.output new file mode 100644 index 00000000000..697e0fa54b4 --- /dev/null +++ b/tests/examplefiles/bash/stripheredoc.sh.output @@ -0,0 +1,4 @@ +'cat' Text +' ' Text +'<<-EOF\n Hello world $PATH\n EOF' Literal.String +'\n' Text diff --git a/tests/examplefiles/conftest.py b/tests/examplefiles/conftest.py new file mode 100644 index 00000000000..93532111c77 --- /dev/null +++ b/tests/examplefiles/conftest.py @@ -0,0 +1,31 @@ +""" + Generated lexer tests + ~~~~~~~~~~~~~~~~~~~~~ + + Checks that lexers output the expected tokens for each sample + under lexers/*/test_*.txt. + + After making a change, rather than updating the samples manually, + run `pytest --update-goldens tests/examplefiles`. + + To add a new sample, create a new file matching this pattern. + The directory must match the alias of the lexer to be used. + Populate only the input, then just `--update-goldens`. + + :copyright: Copyright 2021 by the Pygments team, see AUTHORS. + :license: BSD, see LICENSE for details. +""" + +import pytest + +from tests.conftest import LexerSeparateTestItem + + +def pytest_collect_file(parent, path): + if path.ext != '.output' and path.basename != 'conftest.py': + return LexerTestFile.from_parent(parent, fspath=path) + + +class LexerTestFile(pytest.File): + def collect(self): + yield LexerSeparateTestItem.from_parent(self, name='') From bbad8ab67dd97feeabcd045903c0e4160c396850 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Mon, 18 Jan 2021 21:38:53 +0100 Subject: [PATCH 435/709] tests: code style fixups --- tests/conftest.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/conftest.py b/tests/conftest.py index 7ff5ff18c2c..e6a9b01a0b3 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -12,7 +12,7 @@ The directory must match the alias of the lexer to be used. Populate only the input, then just `--update-goldens`. - :copyright: Copyright 2021 by the Pygments team, see AUTHORS. + :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. """ from pathlib import Path From 38a4638b731836e353301fbae42a1ba10e6b7236 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Wed, 20 Jan 2021 10:57:30 +0100 Subject: [PATCH 436/709] Rename "tests/lexers" to "tests/snippets" and update the contribution docs to point to both snippets and examplefiles. --- tests/conftest.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index e6a9b01a0b3..ecadfd27861 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -3,10 +3,10 @@ ~~~~~~~~~~~~~~~~~~~~~ Checks that lexers output the expected tokens for each sample - under lexers/*/test_*.txt. + under snippets/ and examplefiles/. After making a change, rather than updating the samples manually, - run `pytest --update-goldens tests/lexers tests/examplefiles`. + run `pytest --update-goldens `. To add a new sample, create a new file matching this pattern. The directory must match the alias of the lexer to be used. From a2d126de848e4b94de2aaec291048586dc9546ac Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Thu, 21 Jan 2021 22:12:09 +0100 Subject: [PATCH 437/709] conftest: disallow error tokens in examplefiles They are ok in small snippets to demonstrate error cases. Also recode all examplefiles to UTF-8. --- tests/conftest.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index ecadfd27861..2b279423e95 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -15,15 +15,18 @@ :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. """ + from pathlib import Path import pytest import pygments.lexers +from pygments.token import Error def pytest_addoption(parser): - parser.addoption('--update-goldens', action='store_true', help='reset golden master benchmarks') + parser.addoption('--update-goldens', action='store_true', + help='reset golden master benchmarks') class LexerTestItem(pytest.Item): @@ -35,6 +38,8 @@ def __init__(self, name, parent): @classmethod def _prettyprint_tokens(cls, tokens): for tok, val in tokens: + if tok is Error and not cls.allow_errors: + raise ValueError('generated Error token at {!r}'.format(val)) yield '{!r:<13} {}'.format(val, str(tok)[6:]) if val.endswith('\n'): yield '' @@ -49,6 +54,9 @@ def runtest(self): def _test_file_rel_path(self): return Path(str(self.fspath)).relative_to(Path(__file__).parent.parent) + def _prunetraceback(self, excinfo): + excinfo.traceback = excinfo.traceback.cut(__file__).filter() + def repr_failure(self, excinfo): if isinstance(excinfo.value, AssertionError): rel_path = self._test_file_rel_path() @@ -59,6 +67,8 @@ def repr_failure(self, excinfo): ).format(self.lexer, rel_path, Path(*rel_path.parts[:2])) diff = str(excinfo.value).split('\n', 1)[-1] return message + '\n\n' + diff + else: + return pytest.Item.repr_failure(self, excinfo) def reportinfo(self): return self.fspath, None, str(self._test_file_rel_path()) @@ -69,10 +79,12 @@ def maybe_overwrite(self): class LexerSeparateTestItem(LexerTestItem): + allow_errors = False + def __init__(self, name, parent): super().__init__(name, parent) - self.input = self.fspath.read_binary() + self.input = self.fspath.read_text('utf-8') output_path = self.fspath + '.output' if output_path.check(): self.expected = output_path.read_text(encoding='utf-8') @@ -85,6 +97,8 @@ def overwrite(self): class LexerInlineTestItem(LexerTestItem): + allow_errors = True + def __init__(self, name, parent): super().__init__(name, parent) From 9d6dba9f4f47ee3cd07746791dfc06c09ad47a0c Mon Sep 17 00:00:00 2001 From: Thomas Symalla <5754458+tsymalla@users.noreply.github.com> Date: Sat, 30 Jan 2021 14:27:03 +0100 Subject: [PATCH 438/709] AMDGPU ISA Lexer (#1626) * This commit implements a basic lexer for the AMDGPU ISA definition. * Updated comment. * Updated comment. * Tried to fix case-sensitive issue. * Updated AUTHORS file. * Added shader unit test for the AMD ISA Parser. * Renamed AMDGCN lexer to AMDGPU. * Renamed example file. * Renames. Co-authored-by: Thomas Symalla --- AUTHORS | 2 ++ 1 file changed, 2 insertions(+) diff --git a/AUTHORS b/AUTHORS index a5c9fb5030f..f28b47a4f5e 100644 --- a/AUTHORS +++ b/AUTHORS @@ -234,6 +234,8 @@ Other contributors, listed alphabetically, are: * Alex Zimin -- Nemerle lexer * Rob Zimmerman -- Kal lexer * Vincent Zurczak -- Roboconf lexer +* Hubert Gruniaux -- C and C++ lexer improvements +* Thomas Symalla -- AMDGPU Lexer * 15b3 -- Image Formatter improvements Many thanks for all contributions! From 03793cec887b93b9f745211d21c324393ba58146 Mon Sep 17 00:00:00 2001 From: Thomas Duboucher Date: Sun, 14 Feb 2021 08:54:54 +0100 Subject: [PATCH 439/709] Add CDDL lexer (Fix #1239) (#1379) * Add CDDL lexer (thanks to Fabian Neumann) * Add CDDL to mappings * Fix inline flag in CDDL regex * Update AUTHORS * Fix explosive backtracking * Comment invalid CDDL syntax for automated tests * Update following Georg Brandl's review * Update tests for CDDL to new framework * Pylint pass * Update links to CDDL RFC * Update copyright header * Solve regexlint issues in CDDL parser * Add link to CDDL in documentation --- AUTHORS | 2 ++ 1 file changed, 2 insertions(+) diff --git a/AUTHORS b/AUTHORS index f28b47a4f5e..e86b35b29c8 100644 --- a/AUTHORS +++ b/AUTHORS @@ -237,5 +237,7 @@ Other contributors, listed alphabetically, are: * Hubert Gruniaux -- C and C++ lexer improvements * Thomas Symalla -- AMDGPU Lexer * 15b3 -- Image Formatter improvements +* Fabian Neumann -- CDDL lexer +* Thomas Duboucher -- CDDL lexer Many thanks for all contributions! From e1616f963a04c8bd3d28142ca0b407769a78b8c4 Mon Sep 17 00:00:00 2001 From: Philipp Imhof <52650214+PhilippImhof@users.noreply.github.com> Date: Fri, 5 Mar 2021 08:32:49 +0100 Subject: [PATCH 440/709] Add formatter for Pango Markup (#1727) * Add formatter for Pango Markup * Code style improvement * Code improvement + test case * Changed test * retrigger checks * Make test independent of color style --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index e86b35b29c8..7f36b9d0677 100644 --- a/AUTHORS +++ b/AUTHORS @@ -239,5 +239,6 @@ Other contributors, listed alphabetically, are: * 15b3 -- Image Formatter improvements * Fabian Neumann -- CDDL lexer * Thomas Duboucher -- CDDL lexer +* Philipp Imhof -- Pango Markup formatter Many thanks for all contributions! From b103558344fb5fc857e5e3162ed78f56c5fbdc35 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 14 Mar 2021 11:19:45 +0100 Subject: [PATCH 441/709] Add KuinLexer (#1300) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add KuinLexer * Add golden test output. * Update mapfiles. * Update URL. * Fix regex lint failures. Co-authored-by: tatt61880 Co-authored-by: Matthäus G. Chajdas --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 7f36b9d0677..6c028f3f636 100644 --- a/AUTHORS +++ b/AUTHORS @@ -208,6 +208,7 @@ Other contributors, listed alphabetically, are: * Tom Stuart -- Treetop lexer * Colin Sullivan -- SuperCollider lexer * Ben Swift -- Extempore lexer +* tatt61880 -- Kuin lexer * Edoardo Tenani -- Arduino lexer * Tiberius Teng -- default style overhaul * Jeremy Thurgood -- Erlang, Squid config lexers From 0f8de290292fcfdd3d1adb8a1d9b6f9edd8c3019 Mon Sep 17 00:00:00 2001 From: amitkummer <49096391+amitkummer@users.noreply.github.com> Date: Sun, 28 Mar 2021 13:25:56 +0300 Subject: [PATCH 442/709] PowerShell: lex ':' (#1758) --- pygments/lexers/shell.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 6283a11a995..83529d17dec 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -730,7 +730,7 @@ class PowerShellLexer(RegexLexer): (r'\[[a-z_\[][\w. `,\[\]]*\]', Name.Constant), # .net [type]s (r'-[a-z_]\w*', Name), (r'\w+', Name), - (r'[.,;@{}\[\]$()=+*/\\&%!~?^`|<>-]|::', Punctuation), + (r'[.,;:@{}\[\]$()=+*/\\&%!~?^`|<>-]', Punctuation), ], 'child': [ (r'\)', Punctuation, '#pop'), From 1fe002b984a7fd98d5f8c3d736a622d8535a1e86 Mon Sep 17 00:00:00 2001 From: Mestery Date: Mon, 26 Apr 2021 07:38:51 +0200 Subject: [PATCH 443/709] uniformize aliases order (#1780) * uniformize aliases order * LighttpdConfLexer: add lighttpd.conf filename --- pygments/lexers/shell.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 83529d17dec..5539e812097 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -238,7 +238,7 @@ class BatchLexer(RegexLexer): .. versionadded:: 0.7 """ name = 'Batchfile' - aliases = ['bat', 'batch', 'dosbatch', 'winbatch'] + aliases = ['batch', 'bat', 'dosbatch', 'winbatch'] filenames = ['*.bat', '*.cmd'] mimetypes = ['application/x-dos-batch'] From f897b86ed0e97d0d49b5f0906c9acd83f2ea9368 Mon Sep 17 00:00:00 2001 From: Fred Hornsey Date: Sun, 2 May 2021 01:46:19 -0500 Subject: [PATCH 444/709] Support for OMG IDL (#1595) * Support for OMG IDL Lexer for [Object Management Group Interface Definition Language](https://www.omg.org/spec/IDL/About-IDL/). * Allow Whitespace Before include in C Preprocessor It wasn't highlighting the included filename the same as if there was no space before the include, but now it is. * Update omg-idl Tests to Latest Requirements * Update omg-idl versionadded to 2.9 Since I just realized this missed the 2.8 release. * Add Missing Operators to omg-idl --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 6c028f3f636..e8df18588fb 100644 --- a/AUTHORS +++ b/AUTHORS @@ -97,6 +97,7 @@ Other contributors, listed alphabetically, are: * Doug Hogan -- Mscgen lexer * Ben Hollis -- Mason lexer * Max Horn -- GAP lexer +* Fred Hornsey -- OMG IDL Lexer * Alastair Houghton -- Lexer inheritance facility * Tim Howard -- BlitzMax lexer * Dustin Howett -- Logos lexer From e8ded6c7bdecd31bd53e7c0adfe1e86f35b71b7e Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 21 May 2021 15:50:44 +0200 Subject: [PATCH 445/709] Correct problematic regexes #2525 These regexes with unbounded lookahead end up running in exponential times. They are just as fine when bounded and run instantly now. Signed-off-by: Philippe Ombredanne --- src/cluecode/copyrights.py | 51 ++++++++++++++----- .../data/copyrights/not-an-email-start.txt | 2 + .../copyrights/not-an-email-start.txt.yml | 4 ++ 3 files changed, 44 insertions(+), 13 deletions(-) create mode 100644 tests/cluecode/data/copyrights/not-an-email-start.txt create mode 100644 tests/cluecode/data/copyrights/not-an-email-start.txt.yml diff --git a/src/cluecode/copyrights.py b/src/cluecode/copyrights.py index d491c416423..a47386350bf 100644 --- a/src/cluecode/copyrights.py +++ b/src/cluecode/copyrights.py @@ -25,13 +25,15 @@ if os.environ.get('SCANCODE_DEBUG_COPYRIGHT_DEEP'): TRACE_DEEP = 1 +TRACE_TOK = False or os.environ.get('SCANCODE_DEBUG_COPYRIGHT_TOKEN', False) + # Tracing flags def logger_debug(*args): pass -if TRACE or TRACE_DEEP: +if TRACE or TRACE_DEEP or TRACE_TOK: import logging logger = logging.getLogger(__name__) @@ -98,7 +100,18 @@ def detect_copyrights_from_lines(numbered_lines, copyrights=True, holders=True, """ detector = CopyrightDetector() - for candidates in candidate_lines(numbered_lines): + candidate_lines_groups = candidate_lines(numbered_lines) + if TRACE: + candidate_lines_groups = list(candidate_lines_groups) + logger_debug( + f'detect_copyrights_from_lines: ALL groups of candidate ' + f'lines collected: {len(candidate_lines_groups)}') + + for candidates in candidate_lines_groups: + if TRACE: + from pprint import pformat + can = pformat(candidates, width=160) + logger_debug(f' detect_copyrights_from_lines: processing candidates group:\n{can}') detections = detector.detect( numbered_lines=candidates, @@ -109,13 +122,17 @@ def detect_copyrights_from_lines(numbered_lines, copyrights=True, holders=True, include_allrights=include_allrights ) + if TRACE: + detections = list(detections) + logger_debug(f' detect_copyrights_from_lines: {detections}') + for detection in detections: # tuple of type, string, start, end yield detection + if time() > deadline: break - ################################################################################ # DETECTION PROPER ################################################################################ @@ -149,8 +166,15 @@ def detect(self, numbered_lines, numbered_lines = list(numbered_lines) start_line = numbered_lines[0][0] end_line = numbered_lines[-1][0] + + if TRACE: logger_debug(f'CopyrightDetector:numbered_lines: {numbered_lines}') + tokens = self.get_tokens(numbered_lines) + if TRACE: + tokens = list(tokens) + logger_debug(f'CopyrightDetector:tokens: {tokens}') + if not tokens: return @@ -242,9 +266,9 @@ def get_tokens(self, numbered_lines): tokens_append = tokens.append for _line_number, line in numbered_lines: - if TRACE: logger_debug(' get_tokens: bare line: ' + repr(line)) + if TRACE_TOK: logger_debug(' get_tokens: bare line: ' + repr(line)) line = prepare_text_line(line) - if TRACE: logger_debug(' get_tokens:preped line: ' + repr(line)) + if TRACE_TOK: logger_debug(' get_tokens:preped line: ' + repr(line)) for tok in splitter(line): # strip trailing single quotes and ignore empties tok = tok.strip("' ") @@ -254,7 +278,9 @@ def get_tokens(self, numbered_lines): tok = tok.lstrip('@').strip() if tok and tok not in (':',): tokens_append(tok) - if TRACE: logger_debug(' get_tokens:tokens: ' + repr(tokens)) + if TRACE_TOK: + logger_debug(' get_tokens:tokens: ' + repr(tokens)) + logger_debug(' get_tokens: ALL tokens collected') return tokens @classmethod @@ -442,7 +468,7 @@ def as_str(cls, node, ignores=frozenset(), include_allrights=False): # CamELCaseeXXX is typcally JUNK such as code variable names # AzaAzaaaAz BBSDSB002923, - (r'^([A-Z][a-z]+){3,}[A-Z]+[0-9]*,?$', 'JUNK'), + (r'^([A-Z][a-z]+){3,20}[A-Z]+[0-9]*,?$', 'JUNK'), # multiple parens (at least two (x) groups) is a sign of junk # such as in (1)(ii)(OCT @@ -1446,8 +1472,8 @@ def as_str(cls, node, ignores=frozenset(), include_allrights=False): ############################################################################ # email start-at-end: : - (r'^<([a-zA-Z]+[a-zA-Z\.]){3,}$', 'EMAIL_START'), - (r'^[a-zA-Z\.]{2,}>$', 'EMAIL_END'), + (r'^<([a-zA-Z]+[a-zA-Z\.]){2,5}$', 'EMAIL_START'), + (r'^[a-zA-Z\.]{2,5}>$', 'EMAIL_END'), # a .sh shell scripts is NOT an email. (r'^.*\.sh\.?$', 'JUNK'), @@ -3037,9 +3063,9 @@ def is_end_of_statement(chars_only_line): def candidate_lines(numbered_lines): """ - Yield lists of candidate lines where each list element is a tuple of - (line number, line text) given an iterable of numbered_lines as tuples of - (line number, line text) . + Yield groups of candidate lines as list where each list element is a tuple + of (line number, line text) given an iterable of numbered_lines as tuples + of (line number, line text) . A candidate line is a line of text that may contain copyright statements. A few lines before and after a candidate line are also included. @@ -3082,7 +3108,6 @@ def candidate_lines(numbered_lines): previous_chars = chars_only if TRACE: logger_debug(' candidate_lines: line is candidate') - elif 's>' in line: # this is for debian-style copyright name tags # the state is now "in copyright" diff --git a/tests/cluecode/data/copyrights/not-an-email-start.txt b/tests/cluecode/data/copyrights/not-an-email-start.txt new file mode 100644 index 00000000000..0dd2114927a --- /dev/null +++ b/tests/cluecode/data/copyrights/not-an-email-start.txt @@ -0,0 +1,2 @@ +copyright + diff --git a/tests/cluecode/data/copyrights/not-an-email-start.txt.yml b/tests/cluecode/data/copyrights/not-an-email-start.txt.yml new file mode 100644 index 00000000000..bc83e542838 --- /dev/null +++ b/tests/cluecode/data/copyrights/not-an-email-start.txt.yml @@ -0,0 +1,4 @@ +what: + - copyrights +copyrights: +notes: nothing to find here From 6c09d271cc6a089854695716334ac06849ad58db Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 21 May 2021 16:32:19 +0200 Subject: [PATCH 446/709] Improve copyright detection Signed-off-by: Philippe Ombredanne --- src/cluecode/copyrights.py | 4 ++-- tests/cluecode/data/authors/weird-copyright-author | 2 ++ tests/cluecode/data/authors/weird-copyright-author.yml | 4 ++++ 3 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 tests/cluecode/data/authors/weird-copyright-author create mode 100644 tests/cluecode/data/authors/weird-copyright-author.yml diff --git a/src/cluecode/copyrights.py b/src/cluecode/copyrights.py index a47386350bf..d2798674727 100644 --- a/src/cluecode/copyrights.py +++ b/src/cluecode/copyrights.py @@ -527,7 +527,7 @@ def as_str(cls, node, ignores=frozenset(), include_allrights=False): (r'^Last$', 'JUNK'), (r'^[Rr]eleased?$', 'JUNK'), (r'^[Cc]opyrighting$', 'JUNK'), - (r'^Authori.*$', 'JUNK'), + (r'^[Aa]uthori.*$', 'JUNK'), (r'^such$', 'JUNK'), (r'^[Aa]ssignments?[.,]?$', 'JUNK'), (r'^[Bb]uild$', 'JUNK'), @@ -831,7 +831,7 @@ def as_str(cls, node, ignores=frozenset(), include_allrights=False): (r'^Assignment', 'NN'), (r'^Atomic$', 'NN'), (r'^Attribution$', 'NN'), - (r'^Authored$', 'NN'), + (r'^[Aa]uthored$', 'NN'), (r'^Baslerstr\.?$', 'NN'), (r'^BSD$', 'NN'), (r'^BUT$', 'NN'), diff --git a/tests/cluecode/data/authors/weird-copyright-author b/tests/cluecode/data/authors/weird-copyright-author new file mode 100644 index 00000000000..2139494de08 --- /dev/null +++ b/tests/cluecode/data/authors/weird-copyright-author @@ -0,0 +1,2 @@ +without prior written authorization +from The Open Group. diff --git a/tests/cluecode/data/authors/weird-copyright-author.yml b/tests/cluecode/data/authors/weird-copyright-author.yml new file mode 100644 index 00000000000..e17a5fba650 --- /dev/null +++ b/tests/cluecode/data/authors/weird-copyright-author.yml @@ -0,0 +1,4 @@ +what: + - authors + - copyrights + From 0d8226467c1f01c0f99c2f5c79e843463ed25d0a Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 2 Jun 2021 08:57:12 +0200 Subject: [PATCH 447/709] Dupliates test files where used Signed-off-by: Philippe Ombredanne --- .../formattedcode/data/{ => csv}/unicode.json | 0 tests/formattedcode/data/spdx/unicode.json | 22 +++++++++++++++++++ .../formattedcode/data/templated/unicode.json | 22 +++++++++++++++++++ tests/formattedcode/test_output_csv.py | 2 +- tests/formattedcode/test_output_spdx.py | 4 ++-- tests/formattedcode/test_output_templated.py | 4 ++-- 6 files changed, 49 insertions(+), 5 deletions(-) rename tests/formattedcode/data/{ => csv}/unicode.json (100%) create mode 100644 tests/formattedcode/data/spdx/unicode.json create mode 100644 tests/formattedcode/data/templated/unicode.json diff --git a/tests/formattedcode/data/unicode.json b/tests/formattedcode/data/csv/unicode.json similarity index 100% rename from tests/formattedcode/data/unicode.json rename to tests/formattedcode/data/csv/unicode.json diff --git a/tests/formattedcode/data/spdx/unicode.json b/tests/formattedcode/data/spdx/unicode.json new file mode 100644 index 00000000000..b1aa8e67f12 --- /dev/null +++ b/tests/formattedcode/data/spdx/unicode.json @@ -0,0 +1,22 @@ +{ + "scancode_notice": "Generated with ScanCode...", + "scancode_version": "2.9.7.post137.2e29fe3.dirty.20181120225811", + "scancode_options": { + "input": "han/", + "--json-pp": "-" + }, + "scan_start": "2018-11-23T123252.191917", + "files_count": 1, + "files": [ + { + "path": "han", + "type": "directory", + "scan_errors": [] + }, + { + "path": "han/\u636e.svg", + "type": "file", + "scan_errors": [] + } + ] +} \ No newline at end of file diff --git a/tests/formattedcode/data/templated/unicode.json b/tests/formattedcode/data/templated/unicode.json new file mode 100644 index 00000000000..b1aa8e67f12 --- /dev/null +++ b/tests/formattedcode/data/templated/unicode.json @@ -0,0 +1,22 @@ +{ + "scancode_notice": "Generated with ScanCode...", + "scancode_version": "2.9.7.post137.2e29fe3.dirty.20181120225811", + "scancode_options": { + "input": "han/", + "--json-pp": "-" + }, + "scan_start": "2018-11-23T123252.191917", + "files_count": 1, + "files": [ + { + "path": "han", + "type": "directory", + "scan_errors": [] + }, + { + "path": "han/\u636e.svg", + "type": "file", + "scan_errors": [] + } + ] +} \ No newline at end of file diff --git a/tests/formattedcode/test_output_csv.py b/tests/formattedcode/test_output_csv.py index e6d24a8db3b..de52c741f8c 100644 --- a/tests/formattedcode/test_output_csv.py +++ b/tests/formattedcode/test_output_csv.py @@ -123,7 +123,7 @@ def test_can_process_live_scan_for_packages_with_root(): def test_output_can_handle_non_ascii_paths(): - test_file = test_env.get_test_loc('unicode.json') + test_file = test_env.get_test_loc('csv/unicode.json') result_file = test_env.get_temp_file(extension='csv', file_name='test_csv') run_scan_click(['--from-json', test_file, '--csv', result_file]) with io.open(result_file, encoding='utf-8') as res: diff --git a/tests/formattedcode/test_output_spdx.py b/tests/formattedcode/test_output_spdx.py index f0532eb0290..8044b57dd2a 100644 --- a/tests/formattedcode/test_output_spdx.py +++ b/tests/formattedcode/test_output_spdx.py @@ -319,7 +319,7 @@ def test_spdx_rdf_with_empty_scan(): @pytest.mark.scanslow def test_output_spdx_rdf_can_handle_non_ascii_paths(): - test_file = test_env.get_test_loc('unicode.json') + test_file = test_env.get_test_loc('spdx/unicode.json') result_file = test_env.get_temp_file(extension='spdx', file_name='test_spdx') run_scan_click(['--from-json', test_file, '--spdx-rdf', result_file]) with io.open(result_file, encoding='utf-8') as res: @@ -328,7 +328,7 @@ def test_output_spdx_rdf_can_handle_non_ascii_paths(): def test_output_spdx_tv_can_handle_non_ascii_paths(): - test_file = test_env.get_test_loc('unicode.json') + test_file = test_env.get_test_loc('spdx/unicode.json') result_file = test_env.get_temp_file(extension='spdx', file_name='test_spdx') run_scan_click(['--from-json', test_file, '--spdx-tv', result_file]) with io.open(result_file, encoding='utf-8') as res: diff --git a/tests/formattedcode/test_output_templated.py b/tests/formattedcode/test_output_templated.py index d7d421653fc..23196ffe539 100644 --- a/tests/formattedcode/test_output_templated.py +++ b/tests/formattedcode/test_output_templated.py @@ -158,7 +158,7 @@ def test_HtmlOutput_process_codebase_does_not_fail_with_non_ascii_scanned_paths_ def test_html_output_can_handle_non_ascii_paths(): - test_file = test_env.get_test_loc('unicode.json') + test_file = test_env.get_test_loc('templated/unicode.json') result_file = test_env.get_temp_file(extension='html', file_name='test_html') run_scan_click(['--from-json', test_file, '--html', result_file]) @@ -170,7 +170,7 @@ def test_html_output_can_handle_non_ascii_paths(): @pytest.mark.scanslow def test_custom_html_output_can_handle_non_ascii_paths(): - test_file = test_env.get_test_loc('unicode.json') + test_file = test_env.get_test_loc('templated/unicode.json') result_file = test_env.get_temp_file(extension='html', file_name='test_html') custom_template = test_env.get_test_loc('templated/sample-template.html') From 1d19184fa7e9b7624cbb25257daf09af62c3c7fb Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 2 Jun 2021 08:57:23 +0200 Subject: [PATCH 448/709] Remove unused test files Signed-off-by: Philippe Ombredanne --- .../summaries/codebase_with_summaries.json | 2999 ----------------- .../summaries/codebase_with_summaries2.json | 2999 ----------------- 2 files changed, 5998 deletions(-) delete mode 100644 tests/formattedcode/data/json/summaries/codebase_with_summaries.json delete mode 100644 tests/formattedcode/data/json/summaries/codebase_with_summaries2.json diff --git a/tests/formattedcode/data/json/summaries/codebase_with_summaries.json b/tests/formattedcode/data/json/summaries/codebase_with_summaries.json deleted file mode 100644 index 97c1afaf82d..00000000000 --- a/tests/formattedcode/data/json/summaries/codebase_with_summaries.json +++ /dev/null @@ -1,2999 +0,0 @@ -{ - "summary": { - "license_expressions": [ - { - "value": "zlib", - "count": 10 - }, - { - "value": null, - "count": 7 - }, - { - "value": "lgpl-2.1-plus", - "count": 5 - }, - { - "value": "boost-1.0", - "count": 3 - }, - { - "value": "public-domain", - "count": 2 - }, - { - "value": "apache-1.1", - "count": 1 - }, - { - "value": "apache-2.0", - "count": 1 - }, - { - "value": "cc-by-2.5", - "count": 1 - }, - { - "value": "cmr-no", - "count": 1 - }, - { - "value": "cpl-1.0", - "count": 1 - }, - { - "value": "gpl-2.0-plus WITH ada-linking-exception", - "count": 1 - }, - { - "value": "jboss-eula", - "count": 1 - }, - { - "value": "mit", - "count": 1 - } - ], - "copyrights": [ - { - "value": null, - "count": 10 - }, - { - "value": "Copyright (c) Jean-loup Gailly", - "count": 3 - }, - { - "value": "Copyright (c) Jean-loup Gailly and Mark Adler", - "count": 3 - }, - { - "value": "Copyright (c) Mark Adler", - "count": 3 - }, - { - "value": "(c) Copyright Henrik Ravn", - "count": 2 - }, - { - "value": "Copyright (c) Free Software Foundation, Inc.", - "count": 2 - }, - { - "value": "copyrighted by the Free Software Foundation", - "count": 2 - }, - { - "value": "Copyright (c) - The Legion Of The Bouncy Castle (http://www.bouncycastle.org)", - "count": 1 - }, - { - "value": "Copyright (c) Brian Goetz and Tim Peierls", - "count": 1 - }, - { - "value": "Copyright (c) Christian Michelsen Research AS Advanced Computing", - "count": 1 - }, - { - "value": "Copyright (c) Dmitriy Anisimkov", - "count": 1 - }, - { - "value": "Copyright (c) Jean-loup Gailly, Brian Raiter and Gilles Vollant.", - "count": 1 - }, - { - "value": "Copyright (c) The Apache Software Foundation.", - "count": 1 - }, - { - "value": "Copyright (c) by Henrik Ravn", - "count": 1 - }, - { - "value": "Copyright JBoss Inc., and individual contributors", - "count": 1 - }, - { - "value": "Copyright Red Hat Middleware LLC, and individual contributors", - "count": 1 - }, - { - "value": "Copyright Red Hat, Inc.", - "count": 1 - }, - { - "value": "Copyright Red Hat, Inc. and individual contributors", - "count": 1 - } - ], - "holders": [ - { - "value": null, - "count": 10 - }, - { - "value": "Free Software Foundation, Inc.", - "count": 4 - }, - { - "value": "Henrik Ravn", - "count": 3 - }, - { - "value": "Jean-loup Gailly", - "count": 3 - }, - { - "value": "Jean-loup Gailly and Mark Adler", - "count": 3 - }, - { - "value": "Mark Adler", - "count": 3 - }, - { - "value": "Brian Goetz and Tim Peierls", - "count": 1 - }, - { - "value": "Christian Michelsen Research AS Advanced Computing", - "count": 1 - }, - { - "value": "Dmitriy Anisimkov", - "count": 1 - }, - { - "value": "JBoss Inc., and individual contributors", - "count": 1 - }, - { - "value": "Jean-loup Gailly, Brian Raiter and Gilles Vollant.", - "count": 1 - }, - { - "value": "Red Hat Middleware LLC, and individual contributors", - "count": 1 - }, - { - "value": "Red Hat, Inc.", - "count": 1 - }, - { - "value": "Red Hat, Inc. and individual contributors", - "count": 1 - }, - { - "value": "The Apache Software Foundation.", - "count": 1 - }, - { - "value": "The Legion Of The Bouncy Castle", - "count": 1 - } - ], - "authors": [ - { - "value": null, - "count": 24 - }, - { - "value": "Bela Ban", - "count": 4 - }, - { - "value": "Brian Stansberry", - "count": 1 - }, - { - "value": "Chris Mills (millsy@jboss.com)", - "count": 1 - }, - { - "value": "Gilles Vollant", - "count": 1 - }, - { - "value": "Leonid Broukhis.", - "count": 1 - }, - { - "value": "Robert Harder", - "count": 1 - }, - { - "value": "rob@iharder.net", - "count": 1 - }, - { - "value": "the Apache Software Foundation (http://www.apache.org/).", - "count": 1 - } - ], - "programming_language": [ - { - "value": null, - "count": 11 - }, - { - "value": "C", - "count": 9 - }, - { - "value": "Java", - "count": 7 - }, - { - "value": "C#", - "count": 2 - }, - { - "value": "Ada", - "count": 1 - }, - { - "value": "C++", - "count": 1 - }, - { - "value": "GAS", - "count": 1 - }, - { - "value": "JavaScript+Lasso", - "count": 1 - } - ] - }, - "license_score": { - "score": 13, - "has_top_level_declared_licenses": false, - "file_level_license_and_copyright_coverage": 0.53125, - "has_consistent_key_and_file_level_license": false, - "has_all_spdx_licenses": false, - "has_all_license_texts": false - }, - "summary_of_key_files": { - "license_expressions": [ - { - "value": null, - "count": 1 - } - ], - "copyrights": [ - { - "value": null, - "count": 1 - } - ], - "holders": [ - { - "value": null, - "count": 1 - } - ], - "authors": [ - { - "value": null, - "count": 1 - } - ], - "programming_language": [ - { - "value": null, - "count": 1 - } - ] - }, - "files": [ - { - "path": "samples", - "type": "directory", - "name": "samples", - "base_name": "samples", - "extension": "", - "size": 0, - "date": null, - "sha1": null, - "md5": null, - "mime_type": null, - "file_type": null, - "programming_language": null, - "is_binary": false, - "is_text": false, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "holders": [], - "copyrights": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": true, - "files_count": 33, - "dirs_count": 10, - "size_count": 1161083, - "scan_errors": [] - }, - { - "path": "samples/README", - "type": "file", - "name": "README", - "base_name": "README", - "extension": "", - "size": 236, - "date": "2017-10-26", - "sha1": "2e07e32c52d607204fad196052d70e3d18fb8636", - "md5": "effc6856ef85a9250fb1a470792b3f38", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": null, - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "holders": [], - "copyrights": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": true, - "is_top_level": true, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/screenshot.png", - "type": "file", - "name": "screenshot.png", - "base_name": "screenshot", - "extension": ".png", - "size": 622754, - "date": "2017-10-26", - "sha1": "01ff4b1de0bc6c75c9cca6e46c80c1802d6976d4", - "md5": "b6ef5a90777147423c98b42a6a25e57a", - "mime_type": "image/png", - "file_type": "PNG image data, 2880 x 1666, 8-bit/color RGB, non-interlaced", - "programming_language": null, - "is_binary": true, - "is_text": false, - "is_archive": false, - "is_media": true, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "holders": [], - "copyrights": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": true, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/arch", - "type": "directory", - "name": "arch", - "base_name": "arch", - "extension": "", - "size": 0, - "date": null, - "sha1": null, - "md5": null, - "mime_type": null, - "file_type": null, - "programming_language": null, - "is_binary": false, - "is_text": false, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "holders": [], - "copyrights": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": true, - "files_count": 1, - "dirs_count": 0, - "size_count": 28103, - "scan_errors": [] - }, - { - "path": "samples/arch/zlib.tar.gz", - "type": "file", - "name": "zlib.tar.gz", - "base_name": "zlib", - "extension": ".tar.gz", - "size": 28103, - "date": "2017-10-26", - "sha1": "576f0ccfe534d7f5ff5d6400078d3c6586de3abd", - "md5": "20b2370751abfc08bb3556c1d8114b5a", - "mime_type": "application/gzip", - "file_type": "gzip compressed data, last modified: Wed Jul 15 09:08:19 2015, from Unix", - "programming_language": null, - "is_binary": true, - "is_text": false, - "is_archive": true, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "holders": [], - "copyrights": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/JGroups", - "type": "directory", - "name": "JGroups", - "base_name": "JGroups", - "extension": "", - "size": 0, - "date": null, - "sha1": null, - "md5": null, - "mime_type": null, - "file_type": null, - "programming_language": null, - "is_binary": false, - "is_text": false, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "holders": [], - "copyrights": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": true, - "files_count": 14, - "dirs_count": 2, - "size_count": 241228, - "scan_errors": [] - }, - { - "path": "samples/JGroups/EULA", - "type": "file", - "name": "EULA", - "base_name": "EULA", - "extension": "", - "size": 8156, - "date": "2017-10-26", - "sha1": "eb232aa0424eca9c4136904e6143b72aaa9cf4de", - "md5": "0be0aceb8296727efff0ac0bf8e6bdb3", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "JavaScript+Lasso", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "jboss-eula", - "score": 100.0, - "name": "JBoss EULA", - "short_name": "JBoss EULA", - "category": "Proprietary Free", - "is_exception": false, - "owner": "JBoss Community", - "homepage_url": "", - "text_url": "http://repository.jboss.org/licenses/jbossorg-eula.txt", - "reference_url": "https://scancode-licensedb.aboutcode.org/jboss-eula", - "spdx_license_key": "", - "spdx_url": "", - "start_line": 3, - "end_line": 108, - "matched_rule": { - "identifier": "jboss-eula.LICENSE", - "license_expression": "jboss-eula", - "licenses": [ - "jboss-eula" - ], - "is_license_text": true, - "is_license_notice": false, - "is_license_reference": false, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "jboss-eula" - ], - "holders": [ - { - "value": "Red Hat, Inc.", - "start_line": 104, - "end_line": 104 - } - ], - "copyrights": [ - { - "value": "Copyright 2006 Red Hat, Inc.", - "start_line": 104, - "end_line": 104 - } - ], - "authors": [], - "is_legal": true, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/JGroups/LICENSE", - "type": "file", - "name": "LICENSE", - "base_name": "LICENSE", - "extension": "", - "size": 26430, - "date": "2017-10-26", - "sha1": "e60c2e780886f95df9c9ee36992b8edabec00bcc", - "md5": "7fbc338309ac38fefcd64b04bb903e34", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": null, - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [ - { - "key": "lgpl-2.1-plus", - "score": 100.0, - "name": "GNU Lesser General Public License 2.1 or later", - "short_name": "LGPL 2.1 or later", - "category": "Copyleft Limited", - "is_exception": false, - "owner": "Free Software Foundation (FSF)", - "homepage_url": "http://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", - "text_url": "http://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/lgpl-2.1-plus", - "spdx_license_key": "LGPL-2.1-or-later", - "spdx_url": "https://spdx.org/licenses/LGPL-2.1-or-later", - "start_line": 1, - "end_line": 502, - "matched_rule": { - "identifier": "lgpl-2.1-plus_2.RULE", - "license_expression": "lgpl-2.1-plus", - "licenses": [ - "lgpl-2.1-plus" - ], - "is_license_text": false, - "is_license_notice": true, - "is_license_reference": false, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "lgpl-2.1-plus" - ], - "holders": [ - { - "value": "Free Software Foundation, Inc.", - "start_line": 4, - "end_line": 6 - }, - { - "value": "the Free Software Foundation", - "start_line": 428, - "end_line": 433 - } - ], - "copyrights": [ - { - "value": "Copyright (c) 1991, 1999 Free Software Foundation, Inc.", - "start_line": 4, - "end_line": 6 - }, - { - "value": "copyrighted by the Free Software Foundation", - "start_line": 428, - "end_line": 433 - } - ], - "authors": [], - "is_legal": true, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/JGroups/licenses", - "type": "directory", - "name": "licenses", - "base_name": "licenses", - "extension": "", - "size": 0, - "date": null, - "sha1": null, - "md5": null, - "mime_type": null, - "file_type": null, - "programming_language": null, - "is_binary": false, - "is_text": false, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "holders": [], - "copyrights": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 5, - "dirs_count": 0, - "size_count": 54552, - "scan_errors": [] - }, - { - "path": "samples/JGroups/licenses/apache-1.1.txt", - "type": "file", - "name": "apache-1.1.txt", - "base_name": "apache-1.1", - "extension": ".txt", - "size": 2885, - "date": "2017-10-26", - "sha1": "6b5608d35c3e304532af43db8bbfc5947bef46a6", - "md5": "276982197c941f4cbf3d218546e17ae2", - "mime_type": "text/plain", - "file_type": "ASCII text, with CRLF line terminators", - "programming_language": null, - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [ - { - "key": "apache-1.1", - "score": 100.0, - "name": "Apache License 1.1", - "short_name": "Apache 1.1", - "category": "Permissive", - "is_exception": false, - "owner": "Apache Software Foundation", - "homepage_url": "http://www.apache.org/licenses/", - "text_url": "http://apache.org/licenses/LICENSE-1.1", - "reference_url": "https://scancode-licensedb.aboutcode.org/apache-1.1", - "spdx_license_key": "Apache-1.1", - "spdx_url": "https://spdx.org/licenses/Apache-1.1", - "start_line": 2, - "end_line": 56, - "matched_rule": { - "identifier": "apache-1.1.SPDX.RULE", - "license_expression": "apache-1.1", - "licenses": [ - "apache-1.1" - ], - "is_license_text": false, - "is_license_notice": true, - "is_license_reference": false, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "apache-1.1" - ], - "holders": [ - { - "value": "The Apache Software Foundation.", - "start_line": 4, - "end_line": 5 - } - ], - "copyrights": [ - { - "value": "Copyright (c) 2000 The Apache Software Foundation.", - "start_line": 4, - "end_line": 5 - } - ], - "authors": [ - { - "value": "the Apache Software Foundation (http://www.apache.org/).", - "start_line": 21, - "end_line": 23 - } - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/JGroups/licenses/apache-2.0.txt", - "type": "file", - "name": "apache-2.0.txt", - "base_name": "apache-2.0", - "extension": ".txt", - "size": 11560, - "date": "2017-10-26", - "sha1": "47b573e3824cd5e02a1a3ae99e2735b49e0256e4", - "md5": "d273d63619c9aeaf15cdaf76422c4f87", - "mime_type": "text/plain", - "file_type": "ASCII text, with CRLF line terminators", - "programming_language": null, - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [ - { - "key": "apache-2.0", - "score": 100.0, - "name": "Apache License 2.0", - "short_name": "Apache 2.0", - "category": "Permissive", - "is_exception": false, - "owner": "Apache Software Foundation", - "homepage_url": "http://www.apache.org/licenses/", - "text_url": "http://www.apache.org/licenses/LICENSE-2.0", - "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", - "spdx_license_key": "Apache-2.0", - "spdx_url": "https://spdx.org/licenses/Apache-2.0", - "start_line": 2, - "end_line": 202, - "matched_rule": { - "identifier": "apache-2.0.LICENSE", - "license_expression": "apache-2.0", - "licenses": [ - "apache-2.0" - ], - "is_license_text": true, - "is_license_notice": false, - "is_license_reference": false, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "apache-2.0" - ], - "holders": [], - "copyrights": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/JGroups/licenses/bouncycastle.txt", - "type": "file", - "name": "bouncycastle.txt", - "base_name": "bouncycastle", - "extension": ".txt", - "size": 1186, - "date": "2017-10-26", - "sha1": "74facb0e9a734479f9cd893b5be3fe1bf651b760", - "md5": "9fffd8de865a5705969f62b128381f85", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": null, - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [ - { - "key": "mit", - "score": 98.8, - "name": "MIT License", - "short_name": "MIT License", - "category": "Permissive", - "is_exception": false, - "owner": "MIT", - "homepage_url": "http://opensource.org/licenses/mit-license.php", - "text_url": "http://opensource.org/licenses/mit-license.php", - "reference_url": "https://scancode-licensedb.aboutcode.org/mit", - "spdx_license_key": "MIT", - "spdx_url": "https://spdx.org/licenses/MIT", - "start_line": 3, - "end_line": 18, - "matched_rule": { - "identifier": "mit_160.RULE", - "license_expression": "mit", - "licenses": [ - "mit" - ], - "is_license_text": true, - "is_license_notice": false, - "is_license_reference": false, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "mit" - ], - "holders": [ - { - "value": "The Legion Of The Bouncy Castle", - "start_line": 5, - "end_line": 5 - } - ], - "copyrights": [ - { - "value": "Copyright (c) 2000 - 2006 The Legion Of The Bouncy Castle (http://www.bouncycastle.org)", - "start_line": 5, - "end_line": 5 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/JGroups/licenses/cpl-1.0.txt", - "type": "file", - "name": "cpl-1.0.txt", - "base_name": "cpl-1.0", - "extension": ".txt", - "size": 11987, - "date": "2017-10-26", - "sha1": "681cf776bcd79752543d42490ec7ed22a29fd888", - "md5": "9a6d2c9ae73d59eb3dd38e3909750d14", - "mime_type": "text/plain", - "file_type": "ASCII text, with CRLF line terminators", - "programming_language": null, - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [ - { - "key": "cpl-1.0", - "score": 99.94, - "name": "Common Public License 1.0", - "short_name": "CPL 1.0", - "category": "Copyleft Limited", - "is_exception": false, - "owner": "IBM", - "homepage_url": "http://www.eclipse.org/legal/cpl-v10.html", - "text_url": "http://www.eclipse.org/legal/cpl-v10.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/cpl-1.0", - "spdx_license_key": "CPL-1.0", - "spdx_url": "https://spdx.org/licenses/CPL-1.0", - "start_line": 1, - "end_line": 212, - "matched_rule": { - "identifier": "cpl-1.0.SPDX.RULE", - "license_expression": "cpl-1.0", - "licenses": [ - "cpl-1.0" - ], - "is_license_text": true, - "is_license_notice": false, - "is_license_reference": false, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "cpl-1.0" - ], - "holders": [], - "copyrights": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/JGroups/licenses/lgpl.txt", - "type": "file", - "name": "lgpl.txt", - "base_name": "lgpl", - "extension": ".txt", - "size": 26934, - "date": "2017-10-26", - "sha1": "8f1a637d2e2ed1bdb9eb01a7dccb5c12cc0557e1", - "md5": "f14599a2f089f6ff8c97e2baa4e3d575", - "mime_type": "text/plain", - "file_type": "ASCII text, with CRLF line terminators", - "programming_language": null, - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [ - { - "key": "lgpl-2.1-plus", - "score": 100.0, - "name": "GNU Lesser General Public License 2.1 or later", - "short_name": "LGPL 2.1 or later", - "category": "Copyleft Limited", - "is_exception": false, - "owner": "Free Software Foundation (FSF)", - "homepage_url": "http://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", - "text_url": "http://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/lgpl-2.1-plus", - "spdx_license_key": "LGPL-2.1-or-later", - "spdx_url": "https://spdx.org/licenses/LGPL-2.1-or-later", - "start_line": 1, - "end_line": 502, - "matched_rule": { - "identifier": "lgpl-2.1-plus_2.RULE", - "license_expression": "lgpl-2.1-plus", - "licenses": [ - "lgpl-2.1-plus" - ], - "is_license_text": false, - "is_license_notice": true, - "is_license_reference": false, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "lgpl-2.1-plus" - ], - "holders": [ - { - "value": "Free Software Foundation, Inc.", - "start_line": 4, - "end_line": 6 - }, - { - "value": "the Free Software Foundation", - "start_line": 428, - "end_line": 433 - } - ], - "copyrights": [ - { - "value": "Copyright (c) 1991, 1999 Free Software Foundation, Inc.", - "start_line": 4, - "end_line": 6 - }, - { - "value": "copyrighted by the Free Software Foundation", - "start_line": 428, - "end_line": 433 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/JGroups/src", - "type": "directory", - "name": "src", - "base_name": "src", - "extension": "", - "size": 0, - "date": null, - "sha1": null, - "md5": null, - "mime_type": null, - "file_type": null, - "programming_language": null, - "is_binary": false, - "is_text": false, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "holders": [], - "copyrights": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 7, - "dirs_count": 0, - "size_count": 152090, - "scan_errors": [] - }, - { - "path": "samples/JGroups/src/FixedMembershipToken.java", - "type": "file", - "name": "FixedMembershipToken.java", - "base_name": "FixedMembershipToken", - "extension": ".java", - "size": 5144, - "date": "2017-10-26", - "sha1": "5901f73dcc78155a1a2c7b5663a3a11fba400b19", - "md5": "aca9640ec8beee21b098bcf8ecc91442", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "Java", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "lgpl-2.1-plus", - "score": 100.0, - "name": "GNU Lesser General Public License 2.1 or later", - "short_name": "LGPL 2.1 or later", - "category": "Copyleft Limited", - "is_exception": false, - "owner": "Free Software Foundation (FSF)", - "homepage_url": "http://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", - "text_url": "http://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/lgpl-2.1-plus", - "spdx_license_key": "LGPL-2.1-or-later", - "spdx_url": "https://spdx.org/licenses/LGPL-2.1-or-later", - "start_line": 7, - "end_line": 20, - "matched_rule": { - "identifier": "lgpl-2.1-plus_59.RULE", - "license_expression": "lgpl-2.1-plus", - "licenses": [ - "lgpl-2.1-plus" - ], - "is_license_text": false, - "is_license_notice": true, - "is_license_reference": false, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "lgpl-2.1-plus" - ], - "holders": [ - { - "value": "JBoss Inc., and individual contributors", - "start_line": 3, - "end_line": 5 - } - ], - "copyrights": [ - { - "value": "Copyright 2005, JBoss Inc., and individual contributors", - "start_line": 3, - "end_line": 5 - } - ], - "authors": [ - { - "value": "Chris Mills (millsy@jboss.com)", - "start_line": 51, - "end_line": 51 - } - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/JGroups/src/GuardedBy.java", - "type": "file", - "name": "GuardedBy.java", - "base_name": "GuardedBy", - "extension": ".java", - "size": 813, - "date": "2017-10-26", - "sha1": "981d67087e65e9a44957c026d4b10817cf77d966", - "md5": "c5064400f759d3e81771005051d17dc1", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "Java", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "cc-by-2.5", - "score": 82.0, - "name": "Creative Commons Attribution License 2.5", - "short_name": "CC-BY-2.5", - "category": "Permissive", - "is_exception": false, - "owner": "Creative Commons", - "homepage_url": "http://creativecommons.org/licenses/by/2.5/", - "text_url": "http://creativecommons.org/licenses/by/2.5/legalcode", - "reference_url": "https://scancode-licensedb.aboutcode.org/cc-by-2.5", - "spdx_license_key": "CC-BY-2.5", - "spdx_url": "https://spdx.org/licenses/CC-BY-2.5", - "start_line": 10, - "end_line": 11, - "matched_rule": { - "identifier": "cc-by-2.5_4.RULE", - "license_expression": "cc-by-2.5", - "licenses": [ - "cc-by-2.5" - ], - "is_license_text": false, - "is_license_notice": true, - "is_license_reference": false, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "cc-by-2.5" - ], - "holders": [ - { - "value": "Brian Goetz and Tim Peierls", - "start_line": 9, - "end_line": 11 - } - ], - "copyrights": [ - { - "value": "Copyright (c) 2005 Brian Goetz and Tim Peierls", - "start_line": 9, - "end_line": 11 - } - ], - "authors": [ - { - "value": "Bela Ban", - "start_line": 15, - "end_line": 17 - } - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/JGroups/src/ImmutableReference.java", - "type": "file", - "name": "ImmutableReference.java", - "base_name": "ImmutableReference", - "extension": ".java", - "size": 1838, - "date": "2017-10-26", - "sha1": "30f56b876d5576d9869e2c5c509b08db57110592", - "md5": "48ca3c72fb9a65c771a321222f118b88", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "Java", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "lgpl-2.1-plus", - "score": 100.0, - "name": "GNU Lesser General Public License 2.1 or later", - "short_name": "LGPL 2.1 or later", - "category": "Copyleft Limited", - "is_exception": false, - "owner": "Free Software Foundation (FSF)", - "homepage_url": "http://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", - "text_url": "http://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/lgpl-2.1-plus", - "spdx_license_key": "LGPL-2.1-or-later", - "spdx_url": "https://spdx.org/licenses/LGPL-2.1-or-later", - "start_line": 7, - "end_line": 20, - "matched_rule": { - "identifier": "lgpl-2.1-plus_59.RULE", - "license_expression": "lgpl-2.1-plus", - "licenses": [ - "lgpl-2.1-plus" - ], - "is_license_text": false, - "is_license_notice": true, - "is_license_reference": false, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "lgpl-2.1-plus" - ], - "holders": [ - { - "value": "Red Hat, Inc. and individual contributors", - "start_line": 3, - "end_line": 5 - } - ], - "copyrights": [ - { - "value": "Copyright 2010, Red Hat, Inc. and individual contributors", - "start_line": 3, - "end_line": 5 - } - ], - "authors": [ - { - "value": "Brian Stansberry", - "start_line": 29, - "end_line": 29 - } - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/JGroups/src/RATE_LIMITER.java", - "type": "file", - "name": "RATE_LIMITER.java", - "base_name": "RATE_LIMITER", - "extension": ".java", - "size": 3692, - "date": "2017-10-26", - "sha1": "a8087e5d50da3273536ebda9b87b77aa4ff55deb", - "md5": "4626bdbc48871b55513e1a12991c61a8", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "Java", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [], - "license_expressions": [], - "holders": [], - "copyrights": [], - "authors": [ - { - "value": "Bela Ban", - "start_line": 16, - "end_line": 17 - } - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/JGroups/src/RouterStub.java", - "type": "file", - "name": "RouterStub.java", - "base_name": "RouterStub", - "extension": ".java", - "size": 9913, - "date": "2017-10-26", - "sha1": "c1f6818f8ee7bddcc9f444bc94c099729d716d52", - "md5": "eecfe23494acbcd8088c93bc1e83c7f2", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "Java", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [], - "license_expressions": [], - "holders": [], - "copyrights": [], - "authors": [ - { - "value": "Bela Ban", - "start_line": 23, - "end_line": 24 - } - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/JGroups/src/RouterStubManager.java", - "type": "file", - "name": "RouterStubManager.java", - "base_name": "RouterStubManager", - "extension": ".java", - "size": 8162, - "date": "2017-10-26", - "sha1": "eb419dc94cfe11ca318a3e743a7f9f080e70c751", - "md5": "20bee9631b7c82a45c250e095352aec7", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "Java", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "lgpl-2.1-plus", - "score": 100.0, - "name": "GNU Lesser General Public License 2.1 or later", - "short_name": "LGPL 2.1 or later", - "category": "Copyleft Limited", - "is_exception": false, - "owner": "Free Software Foundation (FSF)", - "homepage_url": "http://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", - "text_url": "http://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/lgpl-2.1-plus", - "spdx_license_key": "LGPL-2.1-or-later", - "spdx_url": "https://spdx.org/licenses/LGPL-2.1-or-later", - "start_line": 7, - "end_line": 20, - "matched_rule": { - "identifier": "lgpl-2.1-plus_59.RULE", - "license_expression": "lgpl-2.1-plus", - "licenses": [ - "lgpl-2.1-plus" - ], - "is_license_text": false, - "is_license_notice": true, - "is_license_reference": false, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "lgpl-2.1-plus" - ], - "holders": [ - { - "value": "Red Hat Middleware LLC, and individual contributors", - "start_line": 3, - "end_line": 5 - } - ], - "copyrights": [ - { - "value": "Copyright 2009, Red Hat Middleware LLC, and individual contributors", - "start_line": 3, - "end_line": 5 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/JGroups/src/S3_PING.java", - "type": "file", - "name": "S3_PING.java", - "base_name": "S3_PING", - "extension": ".java", - "size": 122528, - "date": "2017-10-26", - "sha1": "08dba9986f69719970ead3592dc565465164df0d", - "md5": "83d8324f37d0e3f120bc89865cf0bd39", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "Java", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "public-domain", - "score": 11.0, - "name": "Public Domain", - "short_name": "Public Domain", - "category": "Public Domain", - "is_exception": false, - "owner": "Unspecified", - "homepage_url": "http://www.linfo.org/publicdomain.html", - "text_url": "", - "reference_url": "https://scancode-licensedb.aboutcode.org/public-domain", - "spdx_license_key": "", - "spdx_url": "", - "start_line": 1649, - "end_line": 1649, - "matched_rule": { - "identifier": "public-domain_79.RULE", - "license_expression": "public-domain", - "licenses": [ - "public-domain" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false - } - }, - { - "key": "public-domain", - "score": 11.0, - "name": "Public Domain", - "short_name": "Public Domain", - "category": "Public Domain", - "is_exception": false, - "owner": "Unspecified", - "homepage_url": "http://www.linfo.org/publicdomain.html", - "text_url": "", - "reference_url": "https://scancode-licensedb.aboutcode.org/public-domain", - "spdx_license_key": "", - "spdx_url": "", - "start_line": 1692, - "end_line": 1692, - "matched_rule": { - "identifier": "public-domain_79.RULE", - "license_expression": "public-domain", - "licenses": [ - "public-domain" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "public-domain", - "public-domain" - ], - "holders": [], - "copyrights": [], - "authors": [ - { - "value": "Bela Ban", - "start_line": 35, - "end_line": 38 - }, - { - "value": "Robert Harder", - "start_line": 1698, - "end_line": 1700 - }, - { - "value": "rob@iharder.net", - "start_line": 1698, - "end_line": 1700 - } - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/zlib", - "type": "directory", - "name": "zlib", - "base_name": "zlib", - "extension": "", - "size": 0, - "date": null, - "sha1": null, - "md5": null, - "mime_type": null, - "file_type": null, - "programming_language": null, - "is_binary": false, - "is_text": false, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "holders": [], - "copyrights": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": true, - "files_count": 16, - "dirs_count": 5, - "size_count": 268762, - "scan_errors": [] - }, - { - "path": "samples/zlib/adler32.c", - "type": "file", - "name": "adler32.c", - "base_name": "adler32", - "extension": ".c", - "size": 4968, - "date": "2017-10-26", - "sha1": "0cff4808476ce0b5f6f0ebbc69ee2ab2a0eebe43", - "md5": "ae3bbb54820e1d49fb90cbba222e973f", - "mime_type": "text/x-c", - "file_type": "C source, ASCII text", - "programming_language": "C", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "zlib", - "score": 70.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 3, - "end_line": 3, - "matched_rule": { - "identifier": "zlib_5.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "zlib" - ], - "holders": [ - { - "value": "Mark Adler", - "start_line": 2, - "end_line": 3 - } - ], - "copyrights": [ - { - "value": "Copyright (c) 1995-2011 Mark Adler", - "start_line": 2, - "end_line": 3 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/zlib/deflate.c", - "type": "file", - "name": "deflate.c", - "base_name": "deflate", - "extension": ".c", - "size": 71476, - "date": "2017-10-26", - "sha1": "7b4ace6d698c5dbbfb9a8f047f63228ca54d2e77", - "md5": "cd7826278ce9d9d9ed5abdefef50c3e2", - "mime_type": "text/x-c", - "file_type": "C source, ASCII text", - "programming_language": "C", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "zlib", - "score": 70.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 3, - "end_line": 3, - "matched_rule": { - "identifier": "zlib_5.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "zlib" - ], - "holders": [ - { - "value": "Jean-loup Gailly and Mark Adler", - "start_line": 2, - "end_line": 3 - }, - { - "value": "Jean-loup Gailly and Mark Adler", - "start_line": 54, - "end_line": 55 - } - ], - "copyrights": [ - { - "value": "Copyright (c) 1995-2013 Jean-loup Gailly and Mark Adler", - "start_line": 2, - "end_line": 3 - }, - { - "value": "Copyright 1995-2013 Jean-loup Gailly and Mark Adler", - "start_line": 54, - "end_line": 55 - } - ], - "authors": [ - { - "value": "Leonid Broukhis.", - "start_line": 34, - "end_line": 35 - } - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/zlib/deflate.h", - "type": "file", - "name": "deflate.h", - "base_name": "deflate", - "extension": ".h", - "size": 12774, - "date": "2017-10-26", - "sha1": "29ed3b8ca3927576e5889dea5880ca0052942c7d", - "md5": "7ceae74a13201f14c91623116af169c3", - "mime_type": "text/x-c", - "file_type": "C source, ASCII text", - "programming_language": "C", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "zlib", - "score": 70.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 3, - "end_line": 3, - "matched_rule": { - "identifier": "zlib_5.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false - } - }, - { - "key": "zlib", - "score": 100.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 93, - "end_line": 94, - "matched_rule": { - "identifier": "zlib_21.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "zlib", - "zlib" - ], - "holders": [ - { - "value": "Jean-loup Gailly", - "start_line": 2, - "end_line": 3 - } - ], - "copyrights": [ - { - "value": "Copyright (c) 1995-2012 Jean-loup Gailly", - "start_line": 2, - "end_line": 3 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/zlib/zlib.h", - "type": "file", - "name": "zlib.h", - "base_name": "zlib", - "extension": ".h", - "size": 87883, - "date": "2017-10-26", - "sha1": "400d35465f179a4acacb5fe749e6ce20a0bbdb84", - "md5": "64d8a5180bd54ff5452886e4cbb21e14", - "mime_type": "text/x-c", - "file_type": "C source, ASCII text", - "programming_language": "C", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "zlib", - "score": 100.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 6, - "end_line": 23, - "matched_rule": { - "identifier": "zlib_17.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "is_license_text": true, - "is_license_notice": false, - "is_license_reference": false, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "zlib" - ], - "holders": [ - { - "value": "Jean-loup Gailly and Mark Adler", - "start_line": 4, - "end_line": 4 - } - ], - "copyrights": [ - { - "value": "Copyright (c) 1995-2013 Jean-loup Gailly and Mark Adler", - "start_line": 4, - "end_line": 4 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/zlib/zutil.c", - "type": "file", - "name": "zutil.c", - "base_name": "zutil", - "extension": ".c", - "size": 7414, - "date": "2017-10-26", - "sha1": "e1af709bff21ae0d4331119a7fc4c19f82932043", - "md5": "fff257bc1656eb60fc585a7dc35f963d", - "mime_type": "text/x-c", - "file_type": "C source, ASCII text", - "programming_language": "C", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "zlib", - "score": 70.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 3, - "end_line": 3, - "matched_rule": { - "identifier": "zlib_5.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "zlib" - ], - "holders": [ - { - "value": "Jean-loup Gailly.", - "start_line": 2, - "end_line": 3 - } - ], - "copyrights": [ - { - "value": "Copyright (c) 1995-2005, 2010, 2011, 2012 Jean-loup Gailly.", - "start_line": 2, - "end_line": 3 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/zlib/zutil.h", - "type": "file", - "name": "zutil.h", - "base_name": "zutil", - "extension": ".h", - "size": 6766, - "date": "2017-10-26", - "sha1": "b909d27ef9ce51639f76b7ea6b62721e7d1b6bf7", - "md5": "04fcfbb961591c9452c4d0fd1525ffdf", - "mime_type": "text/x-c", - "file_type": "C source, ASCII text", - "programming_language": "C", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "zlib", - "score": 70.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 3, - "end_line": 3, - "matched_rule": { - "identifier": "zlib_5.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "zlib" - ], - "holders": [ - { - "value": "Jean-loup Gailly.", - "start_line": 2, - "end_line": 3 - } - ], - "copyrights": [ - { - "value": "Copyright (c) 1995-2013 Jean-loup Gailly.", - "start_line": 2, - "end_line": 3 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/zlib/ada", - "type": "directory", - "name": "ada", - "base_name": "ada", - "extension": "", - "size": 0, - "date": null, - "sha1": null, - "md5": null, - "mime_type": null, - "file_type": null, - "programming_language": null, - "is_binary": false, - "is_text": false, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "holders": [], - "copyrights": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 1, - "dirs_count": 0, - "size_count": 13594, - "scan_errors": [] - }, - { - "path": "samples/zlib/ada/zlib.ads", - "type": "file", - "name": "zlib.ads", - "base_name": "zlib", - "extension": ".ads", - "size": 13594, - "date": "2017-10-26", - "sha1": "0245a91806d804bf9f0907a3a001a141e9adb61b", - "md5": "71de2670f2e588b51c62e7f6a9046399", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "Ada", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "gpl-2.0-plus", - "score": 100.0, - "name": "GNU General Public License 2.0 or later", - "short_name": "GPL 2.0 or later", - "category": "Copyleft", - "is_exception": false, - "owner": "Free Software Foundation (FSF)", - "homepage_url": "http://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html", - "text_url": "http://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/gpl-2.0-plus", - "spdx_license_key": "GPL-2.0-or-later", - "spdx_url": "https://spdx.org/licenses/GPL-2.0-or-later", - "start_line": 6, - "end_line": 25, - "matched_rule": { - "identifier": "gpl-2.0-plus_with_ada-linking-exception_1.RULE", - "license_expression": "gpl-2.0-plus WITH ada-linking-exception", - "licenses": [ - "gpl-2.0-plus", - "ada-linking-exception" - ], - "is_license_text": false, - "is_license_notice": true, - "is_license_reference": false, - "is_license_tag": false - } - }, - { - "key": "ada-linking-exception", - "score": 100.0, - "name": "Ada linking exception to GPL 2.0 or later", - "short_name": "Ada linking exception to GPL 2.0 or later", - "category": "Copyleft Limited", - "is_exception": true, - "owner": "Dmitriy Anisimkov", - "homepage_url": "", - "text_url": "", - "reference_url": "https://scancode-licensedb.aboutcode.org/ada-linking-exception", - "spdx_license_key": "", - "spdx_url": "", - "start_line": 6, - "end_line": 25, - "matched_rule": { - "identifier": "gpl-2.0-plus_with_ada-linking-exception_1.RULE", - "license_expression": "gpl-2.0-plus WITH ada-linking-exception", - "licenses": [ - "gpl-2.0-plus", - "ada-linking-exception" - ], - "is_license_text": false, - "is_license_notice": true, - "is_license_reference": false, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "gpl-2.0-plus WITH ada-linking-exception" - ], - "holders": [ - { - "value": "Dmitriy Anisimkov", - "start_line": 4, - "end_line": 4 - } - ], - "copyrights": [ - { - "value": "Copyright (c) 2002-2004 Dmitriy Anisimkov", - "start_line": 4, - "end_line": 4 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/zlib/dotzlib", - "type": "directory", - "name": "dotzlib", - "base_name": "dotzlib", - "extension": "", - "size": 0, - "date": null, - "sha1": null, - "md5": null, - "mime_type": null, - "file_type": null, - "programming_language": null, - "is_binary": false, - "is_text": false, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "holders": [], - "copyrights": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 4, - "dirs_count": 0, - "size_count": 14257, - "scan_errors": [] - }, - { - "path": "samples/zlib/dotzlib/AssemblyInfo.cs", - "type": "file", - "name": "AssemblyInfo.cs", - "base_name": "AssemblyInfo", - "extension": ".cs", - "size": 2500, - "date": "2017-10-26", - "sha1": "9f1db1177b2e9a014f72bb3cd80be17133e06d16", - "md5": "23d0d7c18846fc31655b6aa89b7c8038", - "mime_type": "text/plain", - "file_type": "ASCII text, with CRLF line terminators", - "programming_language": "C#", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [], - "license_expressions": [], - "holders": [ - { - "value": "Henrik Ravn", - "start_line": 14, - "end_line": 16 - } - ], - "copyrights": [ - { - "value": "Copyright (c) 2004 by Henrik Ravn", - "start_line": 14, - "end_line": 16 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/zlib/dotzlib/ChecksumImpl.cs", - "type": "file", - "name": "ChecksumImpl.cs", - "base_name": "ChecksumImpl", - "extension": ".cs", - "size": 8040, - "date": "2017-10-26", - "sha1": "3807a0e24a57b92ea301559cab7307b8eab52c51", - "md5": "d01b3cb2e75da9b15f05b92b42f6bd33", - "mime_type": "text/plain", - "file_type": "ISO-8859 text, with CRLF line terminators", - "programming_language": "C#", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "boost-1.0", - "score": 92.59, - "name": "Boost Software License 1.0", - "short_name": "Boost 1.0", - "category": "Permissive", - "is_exception": false, - "owner": "Boost", - "homepage_url": "http://www.boost.org/users/license.html", - "text_url": "http://www.boost.org/LICENSE_1_0.txt", - "reference_url": "https://scancode-licensedb.aboutcode.org/boost-1.0", - "spdx_license_key": "BSL-1.0", - "spdx_url": "https://spdx.org/licenses/BSL-1.0", - "start_line": 4, - "end_line": 5, - "matched_rule": { - "identifier": "boost-1.0_1.RULE", - "license_expression": "boost-1.0", - "licenses": [ - "boost-1.0" - ], - "is_license_text": false, - "is_license_notice": true, - "is_license_reference": false, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "boost-1.0" - ], - "holders": [ - { - "value": "Henrik Ravn", - "start_line": 2, - "end_line": 2 - } - ], - "copyrights": [ - { - "value": "(c) Copyright Henrik Ravn 2004", - "start_line": 2, - "end_line": 2 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/zlib/dotzlib/LICENSE_1_0.txt", - "type": "file", - "name": "LICENSE_1_0.txt", - "base_name": "LICENSE_1_0", - "extension": ".txt", - "size": 1359, - "date": "2017-10-26", - "sha1": "892b34f7865d90a6f949f50d95e49625a10bc7f0", - "md5": "81543b22c36f10d20ac9712f8d80ef8d", - "mime_type": "text/plain", - "file_type": "ASCII text, with CRLF line terminators", - "programming_language": null, - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [ - { - "key": "boost-1.0", - "score": 100.0, - "name": "Boost Software License 1.0", - "short_name": "Boost 1.0", - "category": "Permissive", - "is_exception": false, - "owner": "Boost", - "homepage_url": "http://www.boost.org/users/license.html", - "text_url": "http://www.boost.org/LICENSE_1_0.txt", - "reference_url": "https://scancode-licensedb.aboutcode.org/boost-1.0", - "spdx_license_key": "BSL-1.0", - "spdx_url": "https://spdx.org/licenses/BSL-1.0", - "start_line": 1, - "end_line": 23, - "matched_rule": { - "identifier": "boost-1.0.LICENSE", - "license_expression": "boost-1.0", - "licenses": [ - "boost-1.0" - ], - "is_license_text": true, - "is_license_notice": false, - "is_license_reference": false, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "boost-1.0" - ], - "holders": [], - "copyrights": [], - "authors": [], - "is_legal": true, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/zlib/dotzlib/readme.txt", - "type": "file", - "name": "readme.txt", - "base_name": "readme", - "extension": ".txt", - "size": 2358, - "date": "2017-10-26", - "sha1": "b1229b826f0096808628474538cea8fec2922a9b", - "md5": "1f20f3168ee63d90de033edac2ce383c", - "mime_type": "text/plain", - "file_type": "ASCII text, with CRLF line terminators", - "programming_language": null, - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [ - { - "key": "boost-1.0", - "score": 77.78, - "name": "Boost Software License 1.0", - "short_name": "Boost 1.0", - "category": "Permissive", - "is_exception": false, - "owner": "Boost", - "homepage_url": "http://www.boost.org/users/license.html", - "text_url": "http://www.boost.org/LICENSE_1_0.txt", - "reference_url": "https://scancode-licensedb.aboutcode.org/boost-1.0", - "spdx_license_key": "BSL-1.0", - "spdx_url": "https://spdx.org/licenses/BSL-1.0", - "start_line": 57, - "end_line": 58, - "matched_rule": { - "identifier": "boost-1.0_1.RULE", - "license_expression": "boost-1.0", - "licenses": [ - "boost-1.0" - ], - "is_license_text": false, - "is_license_notice": true, - "is_license_reference": false, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "boost-1.0" - ], - "holders": [ - { - "value": "Henrik Ravn", - "start_line": 55, - "end_line": 55 - } - ], - "copyrights": [ - { - "value": "Copyright (c) Henrik Ravn 2004", - "start_line": 55, - "end_line": 55 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": true, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/zlib/gcc_gvmat64", - "type": "directory", - "name": "gcc_gvmat64", - "base_name": "gcc_gvmat64", - "extension": "", - "size": 0, - "date": null, - "sha1": null, - "md5": null, - "mime_type": null, - "file_type": null, - "programming_language": null, - "is_binary": false, - "is_text": false, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "holders": [], - "copyrights": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 1, - "dirs_count": 0, - "size_count": 16413, - "scan_errors": [] - }, - { - "path": "samples/zlib/gcc_gvmat64/gvmat64.S", - "type": "file", - "name": "gvmat64.S", - "base_name": "gvmat64", - "extension": ".S", - "size": 16413, - "date": "2017-10-26", - "sha1": "742603cba1af98a1432cc02efb019b1a5760adf2", - "md5": "5e772d7302475e5473d0c4c57b9861e8", - "mime_type": "text/x-c", - "file_type": "C source, ASCII text, with CRLF line terminators", - "programming_language": "GAS", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "zlib", - "score": 100.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 17, - "end_line": 31, - "matched_rule": { - "identifier": "zlib.LICENSE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "is_license_text": true, - "is_license_notice": false, - "is_license_reference": false, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "zlib" - ], - "holders": [ - { - "value": "Jean-loup Gailly, Brian Raiter and Gilles Vollant.", - "start_line": 10, - "end_line": 10 - } - ], - "copyrights": [ - { - "value": "Copyright (c) 1995-2010 Jean-loup Gailly, Brian Raiter and Gilles Vollant.", - "start_line": 10, - "end_line": 10 - } - ], - "authors": [ - { - "value": "Gilles Vollant", - "start_line": 12, - "end_line": 15 - } - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/zlib/infback9", - "type": "directory", - "name": "infback9", - "base_name": "infback9", - "extension": "", - "size": 0, - "date": null, - "sha1": null, - "md5": null, - "mime_type": null, - "file_type": null, - "programming_language": null, - "is_binary": false, - "is_text": false, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "holders": [], - "copyrights": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 2, - "dirs_count": 0, - "size_count": 23223, - "scan_errors": [] - }, - { - "path": "samples/zlib/infback9/infback9.c", - "type": "file", - "name": "infback9.c", - "base_name": "infback9", - "extension": ".c", - "size": 21629, - "date": "2017-10-26", - "sha1": "17fb362c03755b12f2dda5b12a68cf38162674bd", - "md5": "23ff5edec0817da303cb1294c1e4205c", - "mime_type": "text/x-c", - "file_type": "C source, ASCII text", - "programming_language": "C", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "zlib", - "score": 70.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 3, - "end_line": 3, - "matched_rule": { - "identifier": "zlib_5.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "zlib" - ], - "holders": [ - { - "value": "Mark Adler", - "start_line": 2, - "end_line": 3 - } - ], - "copyrights": [ - { - "value": "Copyright (c) 1995-2008 Mark Adler", - "start_line": 2, - "end_line": 3 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/zlib/infback9/infback9.h", - "type": "file", - "name": "infback9.h", - "base_name": "infback9", - "extension": ".h", - "size": 1594, - "date": "2017-10-26", - "sha1": "d0486a32b558dcaceded5f0746fad62e680a4734", - "md5": "52b1ed99960d3ed7ed60cd20295e64a8", - "mime_type": "text/x-c", - "file_type": "C source, ASCII text", - "programming_language": "C", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "zlib", - "score": 70.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 3, - "end_line": 3, - "matched_rule": { - "identifier": "zlib_5.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "zlib" - ], - "holders": [ - { - "value": "Mark Adler", - "start_line": 2, - "end_line": 3 - } - ], - "copyrights": [ - { - "value": "Copyright (c) 2003 Mark Adler", - "start_line": 2, - "end_line": 3 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/zlib/iostream2", - "type": "directory", - "name": "iostream2", - "base_name": "iostream2", - "extension": "", - "size": 0, - "date": null, - "sha1": null, - "md5": null, - "mime_type": null, - "file_type": null, - "programming_language": null, - "is_binary": false, - "is_text": false, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "holders": [], - "copyrights": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 2, - "dirs_count": 0, - "size_count": 9994, - "scan_errors": [] - }, - { - "path": "samples/zlib/iostream2/zstream.h", - "type": "file", - "name": "zstream.h", - "base_name": "zstream", - "extension": ".h", - "size": 9283, - "date": "2017-10-26", - "sha1": "fca4540d490fff36bb90fd801cf9cd8fc695bb17", - "md5": "a980b61c1e8be68d5cdb1236ba6b43e7", - "mime_type": "text/x-c++", - "file_type": "C++ source, ASCII text", - "programming_language": "C", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "cmr-no", - "score": 100.0, - "name": "Christian Michelsen Research AS License", - "short_name": "CMR License", - "category": "Permissive", - "is_exception": false, - "owner": "CMR - Christian Michelsen Research AS", - "homepage_url": "", - "text_url": "", - "reference_url": "https://scancode-licensedb.aboutcode.org/cmr-no", - "spdx_license_key": "", - "spdx_url": "", - "start_line": 9, - "end_line": 15, - "matched_rule": { - "identifier": "cmr-no.LICENSE", - "license_expression": "cmr-no", - "licenses": [ - "cmr-no" - ], - "is_license_text": true, - "is_license_notice": false, - "is_license_reference": false, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "cmr-no" - ], - "holders": [ - { - "value": "Christian Michelsen Research AS Advanced Computing", - "start_line": 3, - "end_line": 5 - } - ], - "copyrights": [ - { - "value": "Copyright (c) 1997 Christian Michelsen Research AS Advanced Computing", - "start_line": 3, - "end_line": 5 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/zlib/iostream2/zstream_test.cpp", - "type": "file", - "name": "zstream_test.cpp", - "base_name": "zstream_test", - "extension": ".cpp", - "size": 711, - "date": "2017-10-26", - "sha1": "e18a6d55cbbd8b832f8d795530553467e5c74fcf", - "md5": "d32476bde4e6d5f889092fdff6f8cdb0", - "mime_type": "text/x-c", - "file_type": "C source, ASCII text", - "programming_language": "C++", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [], - "license_expressions": [], - "holders": [], - "copyrights": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - } - ] -} diff --git a/tests/formattedcode/data/json/summaries/codebase_with_summaries2.json b/tests/formattedcode/data/json/summaries/codebase_with_summaries2.json deleted file mode 100644 index 97c1afaf82d..00000000000 --- a/tests/formattedcode/data/json/summaries/codebase_with_summaries2.json +++ /dev/null @@ -1,2999 +0,0 @@ -{ - "summary": { - "license_expressions": [ - { - "value": "zlib", - "count": 10 - }, - { - "value": null, - "count": 7 - }, - { - "value": "lgpl-2.1-plus", - "count": 5 - }, - { - "value": "boost-1.0", - "count": 3 - }, - { - "value": "public-domain", - "count": 2 - }, - { - "value": "apache-1.1", - "count": 1 - }, - { - "value": "apache-2.0", - "count": 1 - }, - { - "value": "cc-by-2.5", - "count": 1 - }, - { - "value": "cmr-no", - "count": 1 - }, - { - "value": "cpl-1.0", - "count": 1 - }, - { - "value": "gpl-2.0-plus WITH ada-linking-exception", - "count": 1 - }, - { - "value": "jboss-eula", - "count": 1 - }, - { - "value": "mit", - "count": 1 - } - ], - "copyrights": [ - { - "value": null, - "count": 10 - }, - { - "value": "Copyright (c) Jean-loup Gailly", - "count": 3 - }, - { - "value": "Copyright (c) Jean-loup Gailly and Mark Adler", - "count": 3 - }, - { - "value": "Copyright (c) Mark Adler", - "count": 3 - }, - { - "value": "(c) Copyright Henrik Ravn", - "count": 2 - }, - { - "value": "Copyright (c) Free Software Foundation, Inc.", - "count": 2 - }, - { - "value": "copyrighted by the Free Software Foundation", - "count": 2 - }, - { - "value": "Copyright (c) - The Legion Of The Bouncy Castle (http://www.bouncycastle.org)", - "count": 1 - }, - { - "value": "Copyright (c) Brian Goetz and Tim Peierls", - "count": 1 - }, - { - "value": "Copyright (c) Christian Michelsen Research AS Advanced Computing", - "count": 1 - }, - { - "value": "Copyright (c) Dmitriy Anisimkov", - "count": 1 - }, - { - "value": "Copyright (c) Jean-loup Gailly, Brian Raiter and Gilles Vollant.", - "count": 1 - }, - { - "value": "Copyright (c) The Apache Software Foundation.", - "count": 1 - }, - { - "value": "Copyright (c) by Henrik Ravn", - "count": 1 - }, - { - "value": "Copyright JBoss Inc., and individual contributors", - "count": 1 - }, - { - "value": "Copyright Red Hat Middleware LLC, and individual contributors", - "count": 1 - }, - { - "value": "Copyright Red Hat, Inc.", - "count": 1 - }, - { - "value": "Copyright Red Hat, Inc. and individual contributors", - "count": 1 - } - ], - "holders": [ - { - "value": null, - "count": 10 - }, - { - "value": "Free Software Foundation, Inc.", - "count": 4 - }, - { - "value": "Henrik Ravn", - "count": 3 - }, - { - "value": "Jean-loup Gailly", - "count": 3 - }, - { - "value": "Jean-loup Gailly and Mark Adler", - "count": 3 - }, - { - "value": "Mark Adler", - "count": 3 - }, - { - "value": "Brian Goetz and Tim Peierls", - "count": 1 - }, - { - "value": "Christian Michelsen Research AS Advanced Computing", - "count": 1 - }, - { - "value": "Dmitriy Anisimkov", - "count": 1 - }, - { - "value": "JBoss Inc., and individual contributors", - "count": 1 - }, - { - "value": "Jean-loup Gailly, Brian Raiter and Gilles Vollant.", - "count": 1 - }, - { - "value": "Red Hat Middleware LLC, and individual contributors", - "count": 1 - }, - { - "value": "Red Hat, Inc.", - "count": 1 - }, - { - "value": "Red Hat, Inc. and individual contributors", - "count": 1 - }, - { - "value": "The Apache Software Foundation.", - "count": 1 - }, - { - "value": "The Legion Of The Bouncy Castle", - "count": 1 - } - ], - "authors": [ - { - "value": null, - "count": 24 - }, - { - "value": "Bela Ban", - "count": 4 - }, - { - "value": "Brian Stansberry", - "count": 1 - }, - { - "value": "Chris Mills (millsy@jboss.com)", - "count": 1 - }, - { - "value": "Gilles Vollant", - "count": 1 - }, - { - "value": "Leonid Broukhis.", - "count": 1 - }, - { - "value": "Robert Harder", - "count": 1 - }, - { - "value": "rob@iharder.net", - "count": 1 - }, - { - "value": "the Apache Software Foundation (http://www.apache.org/).", - "count": 1 - } - ], - "programming_language": [ - { - "value": null, - "count": 11 - }, - { - "value": "C", - "count": 9 - }, - { - "value": "Java", - "count": 7 - }, - { - "value": "C#", - "count": 2 - }, - { - "value": "Ada", - "count": 1 - }, - { - "value": "C++", - "count": 1 - }, - { - "value": "GAS", - "count": 1 - }, - { - "value": "JavaScript+Lasso", - "count": 1 - } - ] - }, - "license_score": { - "score": 13, - "has_top_level_declared_licenses": false, - "file_level_license_and_copyright_coverage": 0.53125, - "has_consistent_key_and_file_level_license": false, - "has_all_spdx_licenses": false, - "has_all_license_texts": false - }, - "summary_of_key_files": { - "license_expressions": [ - { - "value": null, - "count": 1 - } - ], - "copyrights": [ - { - "value": null, - "count": 1 - } - ], - "holders": [ - { - "value": null, - "count": 1 - } - ], - "authors": [ - { - "value": null, - "count": 1 - } - ], - "programming_language": [ - { - "value": null, - "count": 1 - } - ] - }, - "files": [ - { - "path": "samples", - "type": "directory", - "name": "samples", - "base_name": "samples", - "extension": "", - "size": 0, - "date": null, - "sha1": null, - "md5": null, - "mime_type": null, - "file_type": null, - "programming_language": null, - "is_binary": false, - "is_text": false, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "holders": [], - "copyrights": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": true, - "files_count": 33, - "dirs_count": 10, - "size_count": 1161083, - "scan_errors": [] - }, - { - "path": "samples/README", - "type": "file", - "name": "README", - "base_name": "README", - "extension": "", - "size": 236, - "date": "2017-10-26", - "sha1": "2e07e32c52d607204fad196052d70e3d18fb8636", - "md5": "effc6856ef85a9250fb1a470792b3f38", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": null, - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "holders": [], - "copyrights": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": true, - "is_top_level": true, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/screenshot.png", - "type": "file", - "name": "screenshot.png", - "base_name": "screenshot", - "extension": ".png", - "size": 622754, - "date": "2017-10-26", - "sha1": "01ff4b1de0bc6c75c9cca6e46c80c1802d6976d4", - "md5": "b6ef5a90777147423c98b42a6a25e57a", - "mime_type": "image/png", - "file_type": "PNG image data, 2880 x 1666, 8-bit/color RGB, non-interlaced", - "programming_language": null, - "is_binary": true, - "is_text": false, - "is_archive": false, - "is_media": true, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "holders": [], - "copyrights": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": true, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/arch", - "type": "directory", - "name": "arch", - "base_name": "arch", - "extension": "", - "size": 0, - "date": null, - "sha1": null, - "md5": null, - "mime_type": null, - "file_type": null, - "programming_language": null, - "is_binary": false, - "is_text": false, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "holders": [], - "copyrights": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": true, - "files_count": 1, - "dirs_count": 0, - "size_count": 28103, - "scan_errors": [] - }, - { - "path": "samples/arch/zlib.tar.gz", - "type": "file", - "name": "zlib.tar.gz", - "base_name": "zlib", - "extension": ".tar.gz", - "size": 28103, - "date": "2017-10-26", - "sha1": "576f0ccfe534d7f5ff5d6400078d3c6586de3abd", - "md5": "20b2370751abfc08bb3556c1d8114b5a", - "mime_type": "application/gzip", - "file_type": "gzip compressed data, last modified: Wed Jul 15 09:08:19 2015, from Unix", - "programming_language": null, - "is_binary": true, - "is_text": false, - "is_archive": true, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "holders": [], - "copyrights": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/JGroups", - "type": "directory", - "name": "JGroups", - "base_name": "JGroups", - "extension": "", - "size": 0, - "date": null, - "sha1": null, - "md5": null, - "mime_type": null, - "file_type": null, - "programming_language": null, - "is_binary": false, - "is_text": false, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "holders": [], - "copyrights": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": true, - "files_count": 14, - "dirs_count": 2, - "size_count": 241228, - "scan_errors": [] - }, - { - "path": "samples/JGroups/EULA", - "type": "file", - "name": "EULA", - "base_name": "EULA", - "extension": "", - "size": 8156, - "date": "2017-10-26", - "sha1": "eb232aa0424eca9c4136904e6143b72aaa9cf4de", - "md5": "0be0aceb8296727efff0ac0bf8e6bdb3", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "JavaScript+Lasso", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "jboss-eula", - "score": 100.0, - "name": "JBoss EULA", - "short_name": "JBoss EULA", - "category": "Proprietary Free", - "is_exception": false, - "owner": "JBoss Community", - "homepage_url": "", - "text_url": "http://repository.jboss.org/licenses/jbossorg-eula.txt", - "reference_url": "https://scancode-licensedb.aboutcode.org/jboss-eula", - "spdx_license_key": "", - "spdx_url": "", - "start_line": 3, - "end_line": 108, - "matched_rule": { - "identifier": "jboss-eula.LICENSE", - "license_expression": "jboss-eula", - "licenses": [ - "jboss-eula" - ], - "is_license_text": true, - "is_license_notice": false, - "is_license_reference": false, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "jboss-eula" - ], - "holders": [ - { - "value": "Red Hat, Inc.", - "start_line": 104, - "end_line": 104 - } - ], - "copyrights": [ - { - "value": "Copyright 2006 Red Hat, Inc.", - "start_line": 104, - "end_line": 104 - } - ], - "authors": [], - "is_legal": true, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/JGroups/LICENSE", - "type": "file", - "name": "LICENSE", - "base_name": "LICENSE", - "extension": "", - "size": 26430, - "date": "2017-10-26", - "sha1": "e60c2e780886f95df9c9ee36992b8edabec00bcc", - "md5": "7fbc338309ac38fefcd64b04bb903e34", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": null, - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [ - { - "key": "lgpl-2.1-plus", - "score": 100.0, - "name": "GNU Lesser General Public License 2.1 or later", - "short_name": "LGPL 2.1 or later", - "category": "Copyleft Limited", - "is_exception": false, - "owner": "Free Software Foundation (FSF)", - "homepage_url": "http://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", - "text_url": "http://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/lgpl-2.1-plus", - "spdx_license_key": "LGPL-2.1-or-later", - "spdx_url": "https://spdx.org/licenses/LGPL-2.1-or-later", - "start_line": 1, - "end_line": 502, - "matched_rule": { - "identifier": "lgpl-2.1-plus_2.RULE", - "license_expression": "lgpl-2.1-plus", - "licenses": [ - "lgpl-2.1-plus" - ], - "is_license_text": false, - "is_license_notice": true, - "is_license_reference": false, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "lgpl-2.1-plus" - ], - "holders": [ - { - "value": "Free Software Foundation, Inc.", - "start_line": 4, - "end_line": 6 - }, - { - "value": "the Free Software Foundation", - "start_line": 428, - "end_line": 433 - } - ], - "copyrights": [ - { - "value": "Copyright (c) 1991, 1999 Free Software Foundation, Inc.", - "start_line": 4, - "end_line": 6 - }, - { - "value": "copyrighted by the Free Software Foundation", - "start_line": 428, - "end_line": 433 - } - ], - "authors": [], - "is_legal": true, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/JGroups/licenses", - "type": "directory", - "name": "licenses", - "base_name": "licenses", - "extension": "", - "size": 0, - "date": null, - "sha1": null, - "md5": null, - "mime_type": null, - "file_type": null, - "programming_language": null, - "is_binary": false, - "is_text": false, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "holders": [], - "copyrights": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 5, - "dirs_count": 0, - "size_count": 54552, - "scan_errors": [] - }, - { - "path": "samples/JGroups/licenses/apache-1.1.txt", - "type": "file", - "name": "apache-1.1.txt", - "base_name": "apache-1.1", - "extension": ".txt", - "size": 2885, - "date": "2017-10-26", - "sha1": "6b5608d35c3e304532af43db8bbfc5947bef46a6", - "md5": "276982197c941f4cbf3d218546e17ae2", - "mime_type": "text/plain", - "file_type": "ASCII text, with CRLF line terminators", - "programming_language": null, - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [ - { - "key": "apache-1.1", - "score": 100.0, - "name": "Apache License 1.1", - "short_name": "Apache 1.1", - "category": "Permissive", - "is_exception": false, - "owner": "Apache Software Foundation", - "homepage_url": "http://www.apache.org/licenses/", - "text_url": "http://apache.org/licenses/LICENSE-1.1", - "reference_url": "https://scancode-licensedb.aboutcode.org/apache-1.1", - "spdx_license_key": "Apache-1.1", - "spdx_url": "https://spdx.org/licenses/Apache-1.1", - "start_line": 2, - "end_line": 56, - "matched_rule": { - "identifier": "apache-1.1.SPDX.RULE", - "license_expression": "apache-1.1", - "licenses": [ - "apache-1.1" - ], - "is_license_text": false, - "is_license_notice": true, - "is_license_reference": false, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "apache-1.1" - ], - "holders": [ - { - "value": "The Apache Software Foundation.", - "start_line": 4, - "end_line": 5 - } - ], - "copyrights": [ - { - "value": "Copyright (c) 2000 The Apache Software Foundation.", - "start_line": 4, - "end_line": 5 - } - ], - "authors": [ - { - "value": "the Apache Software Foundation (http://www.apache.org/).", - "start_line": 21, - "end_line": 23 - } - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/JGroups/licenses/apache-2.0.txt", - "type": "file", - "name": "apache-2.0.txt", - "base_name": "apache-2.0", - "extension": ".txt", - "size": 11560, - "date": "2017-10-26", - "sha1": "47b573e3824cd5e02a1a3ae99e2735b49e0256e4", - "md5": "d273d63619c9aeaf15cdaf76422c4f87", - "mime_type": "text/plain", - "file_type": "ASCII text, with CRLF line terminators", - "programming_language": null, - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [ - { - "key": "apache-2.0", - "score": 100.0, - "name": "Apache License 2.0", - "short_name": "Apache 2.0", - "category": "Permissive", - "is_exception": false, - "owner": "Apache Software Foundation", - "homepage_url": "http://www.apache.org/licenses/", - "text_url": "http://www.apache.org/licenses/LICENSE-2.0", - "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", - "spdx_license_key": "Apache-2.0", - "spdx_url": "https://spdx.org/licenses/Apache-2.0", - "start_line": 2, - "end_line": 202, - "matched_rule": { - "identifier": "apache-2.0.LICENSE", - "license_expression": "apache-2.0", - "licenses": [ - "apache-2.0" - ], - "is_license_text": true, - "is_license_notice": false, - "is_license_reference": false, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "apache-2.0" - ], - "holders": [], - "copyrights": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/JGroups/licenses/bouncycastle.txt", - "type": "file", - "name": "bouncycastle.txt", - "base_name": "bouncycastle", - "extension": ".txt", - "size": 1186, - "date": "2017-10-26", - "sha1": "74facb0e9a734479f9cd893b5be3fe1bf651b760", - "md5": "9fffd8de865a5705969f62b128381f85", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": null, - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [ - { - "key": "mit", - "score": 98.8, - "name": "MIT License", - "short_name": "MIT License", - "category": "Permissive", - "is_exception": false, - "owner": "MIT", - "homepage_url": "http://opensource.org/licenses/mit-license.php", - "text_url": "http://opensource.org/licenses/mit-license.php", - "reference_url": "https://scancode-licensedb.aboutcode.org/mit", - "spdx_license_key": "MIT", - "spdx_url": "https://spdx.org/licenses/MIT", - "start_line": 3, - "end_line": 18, - "matched_rule": { - "identifier": "mit_160.RULE", - "license_expression": "mit", - "licenses": [ - "mit" - ], - "is_license_text": true, - "is_license_notice": false, - "is_license_reference": false, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "mit" - ], - "holders": [ - { - "value": "The Legion Of The Bouncy Castle", - "start_line": 5, - "end_line": 5 - } - ], - "copyrights": [ - { - "value": "Copyright (c) 2000 - 2006 The Legion Of The Bouncy Castle (http://www.bouncycastle.org)", - "start_line": 5, - "end_line": 5 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/JGroups/licenses/cpl-1.0.txt", - "type": "file", - "name": "cpl-1.0.txt", - "base_name": "cpl-1.0", - "extension": ".txt", - "size": 11987, - "date": "2017-10-26", - "sha1": "681cf776bcd79752543d42490ec7ed22a29fd888", - "md5": "9a6d2c9ae73d59eb3dd38e3909750d14", - "mime_type": "text/plain", - "file_type": "ASCII text, with CRLF line terminators", - "programming_language": null, - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [ - { - "key": "cpl-1.0", - "score": 99.94, - "name": "Common Public License 1.0", - "short_name": "CPL 1.0", - "category": "Copyleft Limited", - "is_exception": false, - "owner": "IBM", - "homepage_url": "http://www.eclipse.org/legal/cpl-v10.html", - "text_url": "http://www.eclipse.org/legal/cpl-v10.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/cpl-1.0", - "spdx_license_key": "CPL-1.0", - "spdx_url": "https://spdx.org/licenses/CPL-1.0", - "start_line": 1, - "end_line": 212, - "matched_rule": { - "identifier": "cpl-1.0.SPDX.RULE", - "license_expression": "cpl-1.0", - "licenses": [ - "cpl-1.0" - ], - "is_license_text": true, - "is_license_notice": false, - "is_license_reference": false, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "cpl-1.0" - ], - "holders": [], - "copyrights": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/JGroups/licenses/lgpl.txt", - "type": "file", - "name": "lgpl.txt", - "base_name": "lgpl", - "extension": ".txt", - "size": 26934, - "date": "2017-10-26", - "sha1": "8f1a637d2e2ed1bdb9eb01a7dccb5c12cc0557e1", - "md5": "f14599a2f089f6ff8c97e2baa4e3d575", - "mime_type": "text/plain", - "file_type": "ASCII text, with CRLF line terminators", - "programming_language": null, - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [ - { - "key": "lgpl-2.1-plus", - "score": 100.0, - "name": "GNU Lesser General Public License 2.1 or later", - "short_name": "LGPL 2.1 or later", - "category": "Copyleft Limited", - "is_exception": false, - "owner": "Free Software Foundation (FSF)", - "homepage_url": "http://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", - "text_url": "http://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/lgpl-2.1-plus", - "spdx_license_key": "LGPL-2.1-or-later", - "spdx_url": "https://spdx.org/licenses/LGPL-2.1-or-later", - "start_line": 1, - "end_line": 502, - "matched_rule": { - "identifier": "lgpl-2.1-plus_2.RULE", - "license_expression": "lgpl-2.1-plus", - "licenses": [ - "lgpl-2.1-plus" - ], - "is_license_text": false, - "is_license_notice": true, - "is_license_reference": false, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "lgpl-2.1-plus" - ], - "holders": [ - { - "value": "Free Software Foundation, Inc.", - "start_line": 4, - "end_line": 6 - }, - { - "value": "the Free Software Foundation", - "start_line": 428, - "end_line": 433 - } - ], - "copyrights": [ - { - "value": "Copyright (c) 1991, 1999 Free Software Foundation, Inc.", - "start_line": 4, - "end_line": 6 - }, - { - "value": "copyrighted by the Free Software Foundation", - "start_line": 428, - "end_line": 433 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/JGroups/src", - "type": "directory", - "name": "src", - "base_name": "src", - "extension": "", - "size": 0, - "date": null, - "sha1": null, - "md5": null, - "mime_type": null, - "file_type": null, - "programming_language": null, - "is_binary": false, - "is_text": false, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "holders": [], - "copyrights": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 7, - "dirs_count": 0, - "size_count": 152090, - "scan_errors": [] - }, - { - "path": "samples/JGroups/src/FixedMembershipToken.java", - "type": "file", - "name": "FixedMembershipToken.java", - "base_name": "FixedMembershipToken", - "extension": ".java", - "size": 5144, - "date": "2017-10-26", - "sha1": "5901f73dcc78155a1a2c7b5663a3a11fba400b19", - "md5": "aca9640ec8beee21b098bcf8ecc91442", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "Java", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "lgpl-2.1-plus", - "score": 100.0, - "name": "GNU Lesser General Public License 2.1 or later", - "short_name": "LGPL 2.1 or later", - "category": "Copyleft Limited", - "is_exception": false, - "owner": "Free Software Foundation (FSF)", - "homepage_url": "http://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", - "text_url": "http://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/lgpl-2.1-plus", - "spdx_license_key": "LGPL-2.1-or-later", - "spdx_url": "https://spdx.org/licenses/LGPL-2.1-or-later", - "start_line": 7, - "end_line": 20, - "matched_rule": { - "identifier": "lgpl-2.1-plus_59.RULE", - "license_expression": "lgpl-2.1-plus", - "licenses": [ - "lgpl-2.1-plus" - ], - "is_license_text": false, - "is_license_notice": true, - "is_license_reference": false, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "lgpl-2.1-plus" - ], - "holders": [ - { - "value": "JBoss Inc., and individual contributors", - "start_line": 3, - "end_line": 5 - } - ], - "copyrights": [ - { - "value": "Copyright 2005, JBoss Inc., and individual contributors", - "start_line": 3, - "end_line": 5 - } - ], - "authors": [ - { - "value": "Chris Mills (millsy@jboss.com)", - "start_line": 51, - "end_line": 51 - } - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/JGroups/src/GuardedBy.java", - "type": "file", - "name": "GuardedBy.java", - "base_name": "GuardedBy", - "extension": ".java", - "size": 813, - "date": "2017-10-26", - "sha1": "981d67087e65e9a44957c026d4b10817cf77d966", - "md5": "c5064400f759d3e81771005051d17dc1", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "Java", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "cc-by-2.5", - "score": 82.0, - "name": "Creative Commons Attribution License 2.5", - "short_name": "CC-BY-2.5", - "category": "Permissive", - "is_exception": false, - "owner": "Creative Commons", - "homepage_url": "http://creativecommons.org/licenses/by/2.5/", - "text_url": "http://creativecommons.org/licenses/by/2.5/legalcode", - "reference_url": "https://scancode-licensedb.aboutcode.org/cc-by-2.5", - "spdx_license_key": "CC-BY-2.5", - "spdx_url": "https://spdx.org/licenses/CC-BY-2.5", - "start_line": 10, - "end_line": 11, - "matched_rule": { - "identifier": "cc-by-2.5_4.RULE", - "license_expression": "cc-by-2.5", - "licenses": [ - "cc-by-2.5" - ], - "is_license_text": false, - "is_license_notice": true, - "is_license_reference": false, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "cc-by-2.5" - ], - "holders": [ - { - "value": "Brian Goetz and Tim Peierls", - "start_line": 9, - "end_line": 11 - } - ], - "copyrights": [ - { - "value": "Copyright (c) 2005 Brian Goetz and Tim Peierls", - "start_line": 9, - "end_line": 11 - } - ], - "authors": [ - { - "value": "Bela Ban", - "start_line": 15, - "end_line": 17 - } - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/JGroups/src/ImmutableReference.java", - "type": "file", - "name": "ImmutableReference.java", - "base_name": "ImmutableReference", - "extension": ".java", - "size": 1838, - "date": "2017-10-26", - "sha1": "30f56b876d5576d9869e2c5c509b08db57110592", - "md5": "48ca3c72fb9a65c771a321222f118b88", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "Java", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "lgpl-2.1-plus", - "score": 100.0, - "name": "GNU Lesser General Public License 2.1 or later", - "short_name": "LGPL 2.1 or later", - "category": "Copyleft Limited", - "is_exception": false, - "owner": "Free Software Foundation (FSF)", - "homepage_url": "http://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", - "text_url": "http://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/lgpl-2.1-plus", - "spdx_license_key": "LGPL-2.1-or-later", - "spdx_url": "https://spdx.org/licenses/LGPL-2.1-or-later", - "start_line": 7, - "end_line": 20, - "matched_rule": { - "identifier": "lgpl-2.1-plus_59.RULE", - "license_expression": "lgpl-2.1-plus", - "licenses": [ - "lgpl-2.1-plus" - ], - "is_license_text": false, - "is_license_notice": true, - "is_license_reference": false, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "lgpl-2.1-plus" - ], - "holders": [ - { - "value": "Red Hat, Inc. and individual contributors", - "start_line": 3, - "end_line": 5 - } - ], - "copyrights": [ - { - "value": "Copyright 2010, Red Hat, Inc. and individual contributors", - "start_line": 3, - "end_line": 5 - } - ], - "authors": [ - { - "value": "Brian Stansberry", - "start_line": 29, - "end_line": 29 - } - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/JGroups/src/RATE_LIMITER.java", - "type": "file", - "name": "RATE_LIMITER.java", - "base_name": "RATE_LIMITER", - "extension": ".java", - "size": 3692, - "date": "2017-10-26", - "sha1": "a8087e5d50da3273536ebda9b87b77aa4ff55deb", - "md5": "4626bdbc48871b55513e1a12991c61a8", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "Java", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [], - "license_expressions": [], - "holders": [], - "copyrights": [], - "authors": [ - { - "value": "Bela Ban", - "start_line": 16, - "end_line": 17 - } - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/JGroups/src/RouterStub.java", - "type": "file", - "name": "RouterStub.java", - "base_name": "RouterStub", - "extension": ".java", - "size": 9913, - "date": "2017-10-26", - "sha1": "c1f6818f8ee7bddcc9f444bc94c099729d716d52", - "md5": "eecfe23494acbcd8088c93bc1e83c7f2", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "Java", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [], - "license_expressions": [], - "holders": [], - "copyrights": [], - "authors": [ - { - "value": "Bela Ban", - "start_line": 23, - "end_line": 24 - } - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/JGroups/src/RouterStubManager.java", - "type": "file", - "name": "RouterStubManager.java", - "base_name": "RouterStubManager", - "extension": ".java", - "size": 8162, - "date": "2017-10-26", - "sha1": "eb419dc94cfe11ca318a3e743a7f9f080e70c751", - "md5": "20bee9631b7c82a45c250e095352aec7", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "Java", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "lgpl-2.1-plus", - "score": 100.0, - "name": "GNU Lesser General Public License 2.1 or later", - "short_name": "LGPL 2.1 or later", - "category": "Copyleft Limited", - "is_exception": false, - "owner": "Free Software Foundation (FSF)", - "homepage_url": "http://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", - "text_url": "http://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/lgpl-2.1-plus", - "spdx_license_key": "LGPL-2.1-or-later", - "spdx_url": "https://spdx.org/licenses/LGPL-2.1-or-later", - "start_line": 7, - "end_line": 20, - "matched_rule": { - "identifier": "lgpl-2.1-plus_59.RULE", - "license_expression": "lgpl-2.1-plus", - "licenses": [ - "lgpl-2.1-plus" - ], - "is_license_text": false, - "is_license_notice": true, - "is_license_reference": false, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "lgpl-2.1-plus" - ], - "holders": [ - { - "value": "Red Hat Middleware LLC, and individual contributors", - "start_line": 3, - "end_line": 5 - } - ], - "copyrights": [ - { - "value": "Copyright 2009, Red Hat Middleware LLC, and individual contributors", - "start_line": 3, - "end_line": 5 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/JGroups/src/S3_PING.java", - "type": "file", - "name": "S3_PING.java", - "base_name": "S3_PING", - "extension": ".java", - "size": 122528, - "date": "2017-10-26", - "sha1": "08dba9986f69719970ead3592dc565465164df0d", - "md5": "83d8324f37d0e3f120bc89865cf0bd39", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "Java", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "public-domain", - "score": 11.0, - "name": "Public Domain", - "short_name": "Public Domain", - "category": "Public Domain", - "is_exception": false, - "owner": "Unspecified", - "homepage_url": "http://www.linfo.org/publicdomain.html", - "text_url": "", - "reference_url": "https://scancode-licensedb.aboutcode.org/public-domain", - "spdx_license_key": "", - "spdx_url": "", - "start_line": 1649, - "end_line": 1649, - "matched_rule": { - "identifier": "public-domain_79.RULE", - "license_expression": "public-domain", - "licenses": [ - "public-domain" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false - } - }, - { - "key": "public-domain", - "score": 11.0, - "name": "Public Domain", - "short_name": "Public Domain", - "category": "Public Domain", - "is_exception": false, - "owner": "Unspecified", - "homepage_url": "http://www.linfo.org/publicdomain.html", - "text_url": "", - "reference_url": "https://scancode-licensedb.aboutcode.org/public-domain", - "spdx_license_key": "", - "spdx_url": "", - "start_line": 1692, - "end_line": 1692, - "matched_rule": { - "identifier": "public-domain_79.RULE", - "license_expression": "public-domain", - "licenses": [ - "public-domain" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "public-domain", - "public-domain" - ], - "holders": [], - "copyrights": [], - "authors": [ - { - "value": "Bela Ban", - "start_line": 35, - "end_line": 38 - }, - { - "value": "Robert Harder", - "start_line": 1698, - "end_line": 1700 - }, - { - "value": "rob@iharder.net", - "start_line": 1698, - "end_line": 1700 - } - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/zlib", - "type": "directory", - "name": "zlib", - "base_name": "zlib", - "extension": "", - "size": 0, - "date": null, - "sha1": null, - "md5": null, - "mime_type": null, - "file_type": null, - "programming_language": null, - "is_binary": false, - "is_text": false, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "holders": [], - "copyrights": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": true, - "files_count": 16, - "dirs_count": 5, - "size_count": 268762, - "scan_errors": [] - }, - { - "path": "samples/zlib/adler32.c", - "type": "file", - "name": "adler32.c", - "base_name": "adler32", - "extension": ".c", - "size": 4968, - "date": "2017-10-26", - "sha1": "0cff4808476ce0b5f6f0ebbc69ee2ab2a0eebe43", - "md5": "ae3bbb54820e1d49fb90cbba222e973f", - "mime_type": "text/x-c", - "file_type": "C source, ASCII text", - "programming_language": "C", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "zlib", - "score": 70.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 3, - "end_line": 3, - "matched_rule": { - "identifier": "zlib_5.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "zlib" - ], - "holders": [ - { - "value": "Mark Adler", - "start_line": 2, - "end_line": 3 - } - ], - "copyrights": [ - { - "value": "Copyright (c) 1995-2011 Mark Adler", - "start_line": 2, - "end_line": 3 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/zlib/deflate.c", - "type": "file", - "name": "deflate.c", - "base_name": "deflate", - "extension": ".c", - "size": 71476, - "date": "2017-10-26", - "sha1": "7b4ace6d698c5dbbfb9a8f047f63228ca54d2e77", - "md5": "cd7826278ce9d9d9ed5abdefef50c3e2", - "mime_type": "text/x-c", - "file_type": "C source, ASCII text", - "programming_language": "C", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "zlib", - "score": 70.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 3, - "end_line": 3, - "matched_rule": { - "identifier": "zlib_5.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "zlib" - ], - "holders": [ - { - "value": "Jean-loup Gailly and Mark Adler", - "start_line": 2, - "end_line": 3 - }, - { - "value": "Jean-loup Gailly and Mark Adler", - "start_line": 54, - "end_line": 55 - } - ], - "copyrights": [ - { - "value": "Copyright (c) 1995-2013 Jean-loup Gailly and Mark Adler", - "start_line": 2, - "end_line": 3 - }, - { - "value": "Copyright 1995-2013 Jean-loup Gailly and Mark Adler", - "start_line": 54, - "end_line": 55 - } - ], - "authors": [ - { - "value": "Leonid Broukhis.", - "start_line": 34, - "end_line": 35 - } - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/zlib/deflate.h", - "type": "file", - "name": "deflate.h", - "base_name": "deflate", - "extension": ".h", - "size": 12774, - "date": "2017-10-26", - "sha1": "29ed3b8ca3927576e5889dea5880ca0052942c7d", - "md5": "7ceae74a13201f14c91623116af169c3", - "mime_type": "text/x-c", - "file_type": "C source, ASCII text", - "programming_language": "C", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "zlib", - "score": 70.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 3, - "end_line": 3, - "matched_rule": { - "identifier": "zlib_5.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false - } - }, - { - "key": "zlib", - "score": 100.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 93, - "end_line": 94, - "matched_rule": { - "identifier": "zlib_21.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "zlib", - "zlib" - ], - "holders": [ - { - "value": "Jean-loup Gailly", - "start_line": 2, - "end_line": 3 - } - ], - "copyrights": [ - { - "value": "Copyright (c) 1995-2012 Jean-loup Gailly", - "start_line": 2, - "end_line": 3 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/zlib/zlib.h", - "type": "file", - "name": "zlib.h", - "base_name": "zlib", - "extension": ".h", - "size": 87883, - "date": "2017-10-26", - "sha1": "400d35465f179a4acacb5fe749e6ce20a0bbdb84", - "md5": "64d8a5180bd54ff5452886e4cbb21e14", - "mime_type": "text/x-c", - "file_type": "C source, ASCII text", - "programming_language": "C", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "zlib", - "score": 100.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 6, - "end_line": 23, - "matched_rule": { - "identifier": "zlib_17.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "is_license_text": true, - "is_license_notice": false, - "is_license_reference": false, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "zlib" - ], - "holders": [ - { - "value": "Jean-loup Gailly and Mark Adler", - "start_line": 4, - "end_line": 4 - } - ], - "copyrights": [ - { - "value": "Copyright (c) 1995-2013 Jean-loup Gailly and Mark Adler", - "start_line": 4, - "end_line": 4 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/zlib/zutil.c", - "type": "file", - "name": "zutil.c", - "base_name": "zutil", - "extension": ".c", - "size": 7414, - "date": "2017-10-26", - "sha1": "e1af709bff21ae0d4331119a7fc4c19f82932043", - "md5": "fff257bc1656eb60fc585a7dc35f963d", - "mime_type": "text/x-c", - "file_type": "C source, ASCII text", - "programming_language": "C", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "zlib", - "score": 70.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 3, - "end_line": 3, - "matched_rule": { - "identifier": "zlib_5.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "zlib" - ], - "holders": [ - { - "value": "Jean-loup Gailly.", - "start_line": 2, - "end_line": 3 - } - ], - "copyrights": [ - { - "value": "Copyright (c) 1995-2005, 2010, 2011, 2012 Jean-loup Gailly.", - "start_line": 2, - "end_line": 3 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/zlib/zutil.h", - "type": "file", - "name": "zutil.h", - "base_name": "zutil", - "extension": ".h", - "size": 6766, - "date": "2017-10-26", - "sha1": "b909d27ef9ce51639f76b7ea6b62721e7d1b6bf7", - "md5": "04fcfbb961591c9452c4d0fd1525ffdf", - "mime_type": "text/x-c", - "file_type": "C source, ASCII text", - "programming_language": "C", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "zlib", - "score": 70.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 3, - "end_line": 3, - "matched_rule": { - "identifier": "zlib_5.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "zlib" - ], - "holders": [ - { - "value": "Jean-loup Gailly.", - "start_line": 2, - "end_line": 3 - } - ], - "copyrights": [ - { - "value": "Copyright (c) 1995-2013 Jean-loup Gailly.", - "start_line": 2, - "end_line": 3 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/zlib/ada", - "type": "directory", - "name": "ada", - "base_name": "ada", - "extension": "", - "size": 0, - "date": null, - "sha1": null, - "md5": null, - "mime_type": null, - "file_type": null, - "programming_language": null, - "is_binary": false, - "is_text": false, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "holders": [], - "copyrights": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 1, - "dirs_count": 0, - "size_count": 13594, - "scan_errors": [] - }, - { - "path": "samples/zlib/ada/zlib.ads", - "type": "file", - "name": "zlib.ads", - "base_name": "zlib", - "extension": ".ads", - "size": 13594, - "date": "2017-10-26", - "sha1": "0245a91806d804bf9f0907a3a001a141e9adb61b", - "md5": "71de2670f2e588b51c62e7f6a9046399", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "Ada", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "gpl-2.0-plus", - "score": 100.0, - "name": "GNU General Public License 2.0 or later", - "short_name": "GPL 2.0 or later", - "category": "Copyleft", - "is_exception": false, - "owner": "Free Software Foundation (FSF)", - "homepage_url": "http://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html", - "text_url": "http://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/gpl-2.0-plus", - "spdx_license_key": "GPL-2.0-or-later", - "spdx_url": "https://spdx.org/licenses/GPL-2.0-or-later", - "start_line": 6, - "end_line": 25, - "matched_rule": { - "identifier": "gpl-2.0-plus_with_ada-linking-exception_1.RULE", - "license_expression": "gpl-2.0-plus WITH ada-linking-exception", - "licenses": [ - "gpl-2.0-plus", - "ada-linking-exception" - ], - "is_license_text": false, - "is_license_notice": true, - "is_license_reference": false, - "is_license_tag": false - } - }, - { - "key": "ada-linking-exception", - "score": 100.0, - "name": "Ada linking exception to GPL 2.0 or later", - "short_name": "Ada linking exception to GPL 2.0 or later", - "category": "Copyleft Limited", - "is_exception": true, - "owner": "Dmitriy Anisimkov", - "homepage_url": "", - "text_url": "", - "reference_url": "https://scancode-licensedb.aboutcode.org/ada-linking-exception", - "spdx_license_key": "", - "spdx_url": "", - "start_line": 6, - "end_line": 25, - "matched_rule": { - "identifier": "gpl-2.0-plus_with_ada-linking-exception_1.RULE", - "license_expression": "gpl-2.0-plus WITH ada-linking-exception", - "licenses": [ - "gpl-2.0-plus", - "ada-linking-exception" - ], - "is_license_text": false, - "is_license_notice": true, - "is_license_reference": false, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "gpl-2.0-plus WITH ada-linking-exception" - ], - "holders": [ - { - "value": "Dmitriy Anisimkov", - "start_line": 4, - "end_line": 4 - } - ], - "copyrights": [ - { - "value": "Copyright (c) 2002-2004 Dmitriy Anisimkov", - "start_line": 4, - "end_line": 4 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/zlib/dotzlib", - "type": "directory", - "name": "dotzlib", - "base_name": "dotzlib", - "extension": "", - "size": 0, - "date": null, - "sha1": null, - "md5": null, - "mime_type": null, - "file_type": null, - "programming_language": null, - "is_binary": false, - "is_text": false, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "holders": [], - "copyrights": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 4, - "dirs_count": 0, - "size_count": 14257, - "scan_errors": [] - }, - { - "path": "samples/zlib/dotzlib/AssemblyInfo.cs", - "type": "file", - "name": "AssemblyInfo.cs", - "base_name": "AssemblyInfo", - "extension": ".cs", - "size": 2500, - "date": "2017-10-26", - "sha1": "9f1db1177b2e9a014f72bb3cd80be17133e06d16", - "md5": "23d0d7c18846fc31655b6aa89b7c8038", - "mime_type": "text/plain", - "file_type": "ASCII text, with CRLF line terminators", - "programming_language": "C#", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [], - "license_expressions": [], - "holders": [ - { - "value": "Henrik Ravn", - "start_line": 14, - "end_line": 16 - } - ], - "copyrights": [ - { - "value": "Copyright (c) 2004 by Henrik Ravn", - "start_line": 14, - "end_line": 16 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/zlib/dotzlib/ChecksumImpl.cs", - "type": "file", - "name": "ChecksumImpl.cs", - "base_name": "ChecksumImpl", - "extension": ".cs", - "size": 8040, - "date": "2017-10-26", - "sha1": "3807a0e24a57b92ea301559cab7307b8eab52c51", - "md5": "d01b3cb2e75da9b15f05b92b42f6bd33", - "mime_type": "text/plain", - "file_type": "ISO-8859 text, with CRLF line terminators", - "programming_language": "C#", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "boost-1.0", - "score": 92.59, - "name": "Boost Software License 1.0", - "short_name": "Boost 1.0", - "category": "Permissive", - "is_exception": false, - "owner": "Boost", - "homepage_url": "http://www.boost.org/users/license.html", - "text_url": "http://www.boost.org/LICENSE_1_0.txt", - "reference_url": "https://scancode-licensedb.aboutcode.org/boost-1.0", - "spdx_license_key": "BSL-1.0", - "spdx_url": "https://spdx.org/licenses/BSL-1.0", - "start_line": 4, - "end_line": 5, - "matched_rule": { - "identifier": "boost-1.0_1.RULE", - "license_expression": "boost-1.0", - "licenses": [ - "boost-1.0" - ], - "is_license_text": false, - "is_license_notice": true, - "is_license_reference": false, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "boost-1.0" - ], - "holders": [ - { - "value": "Henrik Ravn", - "start_line": 2, - "end_line": 2 - } - ], - "copyrights": [ - { - "value": "(c) Copyright Henrik Ravn 2004", - "start_line": 2, - "end_line": 2 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/zlib/dotzlib/LICENSE_1_0.txt", - "type": "file", - "name": "LICENSE_1_0.txt", - "base_name": "LICENSE_1_0", - "extension": ".txt", - "size": 1359, - "date": "2017-10-26", - "sha1": "892b34f7865d90a6f949f50d95e49625a10bc7f0", - "md5": "81543b22c36f10d20ac9712f8d80ef8d", - "mime_type": "text/plain", - "file_type": "ASCII text, with CRLF line terminators", - "programming_language": null, - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [ - { - "key": "boost-1.0", - "score": 100.0, - "name": "Boost Software License 1.0", - "short_name": "Boost 1.0", - "category": "Permissive", - "is_exception": false, - "owner": "Boost", - "homepage_url": "http://www.boost.org/users/license.html", - "text_url": "http://www.boost.org/LICENSE_1_0.txt", - "reference_url": "https://scancode-licensedb.aboutcode.org/boost-1.0", - "spdx_license_key": "BSL-1.0", - "spdx_url": "https://spdx.org/licenses/BSL-1.0", - "start_line": 1, - "end_line": 23, - "matched_rule": { - "identifier": "boost-1.0.LICENSE", - "license_expression": "boost-1.0", - "licenses": [ - "boost-1.0" - ], - "is_license_text": true, - "is_license_notice": false, - "is_license_reference": false, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "boost-1.0" - ], - "holders": [], - "copyrights": [], - "authors": [], - "is_legal": true, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/zlib/dotzlib/readme.txt", - "type": "file", - "name": "readme.txt", - "base_name": "readme", - "extension": ".txt", - "size": 2358, - "date": "2017-10-26", - "sha1": "b1229b826f0096808628474538cea8fec2922a9b", - "md5": "1f20f3168ee63d90de033edac2ce383c", - "mime_type": "text/plain", - "file_type": "ASCII text, with CRLF line terminators", - "programming_language": null, - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [ - { - "key": "boost-1.0", - "score": 77.78, - "name": "Boost Software License 1.0", - "short_name": "Boost 1.0", - "category": "Permissive", - "is_exception": false, - "owner": "Boost", - "homepage_url": "http://www.boost.org/users/license.html", - "text_url": "http://www.boost.org/LICENSE_1_0.txt", - "reference_url": "https://scancode-licensedb.aboutcode.org/boost-1.0", - "spdx_license_key": "BSL-1.0", - "spdx_url": "https://spdx.org/licenses/BSL-1.0", - "start_line": 57, - "end_line": 58, - "matched_rule": { - "identifier": "boost-1.0_1.RULE", - "license_expression": "boost-1.0", - "licenses": [ - "boost-1.0" - ], - "is_license_text": false, - "is_license_notice": true, - "is_license_reference": false, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "boost-1.0" - ], - "holders": [ - { - "value": "Henrik Ravn", - "start_line": 55, - "end_line": 55 - } - ], - "copyrights": [ - { - "value": "Copyright (c) Henrik Ravn 2004", - "start_line": 55, - "end_line": 55 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": true, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/zlib/gcc_gvmat64", - "type": "directory", - "name": "gcc_gvmat64", - "base_name": "gcc_gvmat64", - "extension": "", - "size": 0, - "date": null, - "sha1": null, - "md5": null, - "mime_type": null, - "file_type": null, - "programming_language": null, - "is_binary": false, - "is_text": false, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "holders": [], - "copyrights": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 1, - "dirs_count": 0, - "size_count": 16413, - "scan_errors": [] - }, - { - "path": "samples/zlib/gcc_gvmat64/gvmat64.S", - "type": "file", - "name": "gvmat64.S", - "base_name": "gvmat64", - "extension": ".S", - "size": 16413, - "date": "2017-10-26", - "sha1": "742603cba1af98a1432cc02efb019b1a5760adf2", - "md5": "5e772d7302475e5473d0c4c57b9861e8", - "mime_type": "text/x-c", - "file_type": "C source, ASCII text, with CRLF line terminators", - "programming_language": "GAS", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "zlib", - "score": 100.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 17, - "end_line": 31, - "matched_rule": { - "identifier": "zlib.LICENSE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "is_license_text": true, - "is_license_notice": false, - "is_license_reference": false, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "zlib" - ], - "holders": [ - { - "value": "Jean-loup Gailly, Brian Raiter and Gilles Vollant.", - "start_line": 10, - "end_line": 10 - } - ], - "copyrights": [ - { - "value": "Copyright (c) 1995-2010 Jean-loup Gailly, Brian Raiter and Gilles Vollant.", - "start_line": 10, - "end_line": 10 - } - ], - "authors": [ - { - "value": "Gilles Vollant", - "start_line": 12, - "end_line": 15 - } - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/zlib/infback9", - "type": "directory", - "name": "infback9", - "base_name": "infback9", - "extension": "", - "size": 0, - "date": null, - "sha1": null, - "md5": null, - "mime_type": null, - "file_type": null, - "programming_language": null, - "is_binary": false, - "is_text": false, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "holders": [], - "copyrights": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 2, - "dirs_count": 0, - "size_count": 23223, - "scan_errors": [] - }, - { - "path": "samples/zlib/infback9/infback9.c", - "type": "file", - "name": "infback9.c", - "base_name": "infback9", - "extension": ".c", - "size": 21629, - "date": "2017-10-26", - "sha1": "17fb362c03755b12f2dda5b12a68cf38162674bd", - "md5": "23ff5edec0817da303cb1294c1e4205c", - "mime_type": "text/x-c", - "file_type": "C source, ASCII text", - "programming_language": "C", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "zlib", - "score": 70.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 3, - "end_line": 3, - "matched_rule": { - "identifier": "zlib_5.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "zlib" - ], - "holders": [ - { - "value": "Mark Adler", - "start_line": 2, - "end_line": 3 - } - ], - "copyrights": [ - { - "value": "Copyright (c) 1995-2008 Mark Adler", - "start_line": 2, - "end_line": 3 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/zlib/infback9/infback9.h", - "type": "file", - "name": "infback9.h", - "base_name": "infback9", - "extension": ".h", - "size": 1594, - "date": "2017-10-26", - "sha1": "d0486a32b558dcaceded5f0746fad62e680a4734", - "md5": "52b1ed99960d3ed7ed60cd20295e64a8", - "mime_type": "text/x-c", - "file_type": "C source, ASCII text", - "programming_language": "C", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "zlib", - "score": 70.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 3, - "end_line": 3, - "matched_rule": { - "identifier": "zlib_5.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "zlib" - ], - "holders": [ - { - "value": "Mark Adler", - "start_line": 2, - "end_line": 3 - } - ], - "copyrights": [ - { - "value": "Copyright (c) 2003 Mark Adler", - "start_line": 2, - "end_line": 3 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/zlib/iostream2", - "type": "directory", - "name": "iostream2", - "base_name": "iostream2", - "extension": "", - "size": 0, - "date": null, - "sha1": null, - "md5": null, - "mime_type": null, - "file_type": null, - "programming_language": null, - "is_binary": false, - "is_text": false, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "holders": [], - "copyrights": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 2, - "dirs_count": 0, - "size_count": 9994, - "scan_errors": [] - }, - { - "path": "samples/zlib/iostream2/zstream.h", - "type": "file", - "name": "zstream.h", - "base_name": "zstream", - "extension": ".h", - "size": 9283, - "date": "2017-10-26", - "sha1": "fca4540d490fff36bb90fd801cf9cd8fc695bb17", - "md5": "a980b61c1e8be68d5cdb1236ba6b43e7", - "mime_type": "text/x-c++", - "file_type": "C++ source, ASCII text", - "programming_language": "C", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "cmr-no", - "score": 100.0, - "name": "Christian Michelsen Research AS License", - "short_name": "CMR License", - "category": "Permissive", - "is_exception": false, - "owner": "CMR - Christian Michelsen Research AS", - "homepage_url": "", - "text_url": "", - "reference_url": "https://scancode-licensedb.aboutcode.org/cmr-no", - "spdx_license_key": "", - "spdx_url": "", - "start_line": 9, - "end_line": 15, - "matched_rule": { - "identifier": "cmr-no.LICENSE", - "license_expression": "cmr-no", - "licenses": [ - "cmr-no" - ], - "is_license_text": true, - "is_license_notice": false, - "is_license_reference": false, - "is_license_tag": false - } - } - ], - "license_expressions": [ - "cmr-no" - ], - "holders": [ - { - "value": "Christian Michelsen Research AS Advanced Computing", - "start_line": 3, - "end_line": 5 - } - ], - "copyrights": [ - { - "value": "Copyright (c) 1997 Christian Michelsen Research AS Advanced Computing", - "start_line": 3, - "end_line": 5 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "samples/zlib/iostream2/zstream_test.cpp", - "type": "file", - "name": "zstream_test.cpp", - "base_name": "zstream_test", - "extension": ".cpp", - "size": 711, - "date": "2017-10-26", - "sha1": "e18a6d55cbbd8b832f8d795530553467e5c74fcf", - "md5": "d32476bde4e6d5f889092fdff6f8cdb0", - "mime_type": "text/x-c", - "file_type": "C source, ASCII text", - "programming_language": "C++", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [], - "license_expressions": [], - "holders": [], - "copyrights": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - } - ] -} From 1383dfcc85c24ec32c4544efd42e3b2c30948a94 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 2 Jun 2021 08:58:43 +0200 Subject: [PATCH 449/709] Format code Signed-off-by: Philippe Ombredanne --- src/scancode/cli_test_utils.py | 98 +++++++++++++++++++++++++++------- 1 file changed, 80 insertions(+), 18 deletions(-) diff --git a/src/scancode/cli_test_utils.py b/src/scancode/cli_test_utils.py index 2944dcaa8d6..67c61c0e085 100644 --- a/src/scancode/cli_test_utils.py +++ b/src/scancode/cli_test_utils.py @@ -16,7 +16,14 @@ from scancode_config import scancode_root_dir -def run_scan_plain(options, cwd=None, test_mode=True, expected_rc=0, env=None, retry=True): +def run_scan_plain( + options, + cwd=None, + test_mode=True, + expected_rc=0, + env=None, + retry=True, +): """ Run a scan as a plain subprocess. Return rc, stdout, stderr. """ @@ -27,16 +34,29 @@ def run_scan_plain(options, cwd=None, test_mode=True, expected_rc=0, env=None, r if test_mode and '--test-mode' not in options: options.append('--test-mode') + if not env: + env = dict(os.environ) + scmd = u'scancode' scan_cmd = os.path.join(scancode_root_dir, scmd) - rc, stdout, stderr = execute2(cmd_loc=scan_cmd, args=options, cwd=cwd, env=env) + rc, stdout, stderr = execute2( + cmd_loc=scan_cmd, + args=options, + cwd=cwd, + env=env, + ) if retry and rc != expected_rc: # wait and rerun in verbose mode to get more in the output time.sleep(1) if '--verbose' not in options: options.append('--verbose') - result = rc, stdout, stderr = execute2(cmd_loc=scan_cmd, args=options, cwd=cwd, env=env) + result = rc, stdout, stderr = execute2( + cmd_loc=scan_cmd, + args=options, + cwd=cwd, + env=env, + ) if rc != expected_rc: opts = get_opts(options) @@ -55,7 +75,14 @@ def run_scan_plain(options, cwd=None, test_mode=True, expected_rc=0, env=None, r return rc, stdout, stderr -def run_scan_click(options, monkeypatch=None, test_mode=True, expected_rc=0, env=None, retry=True): +def run_scan_click( + options, + monkeypatch=None, + test_mode=True, + expected_rc=0, + env=None, + retry=True, +): """ Run a scan as a Click-controlled subprocess If monkeypatch is provided, a tty with a size (80, 43) is mocked. @@ -75,16 +102,30 @@ def run_scan_click(options, monkeypatch=None, test_mode=True, expected_rc=0, env monkeypatch.setattr(click._termui_impl, 'isatty', lambda _: True) monkeypatch.setattr(click , 'get_terminal_size', lambda : (80, 43,)) + if not env: + env = dict(os.environ) + runner = CliRunner() - result = runner.invoke(cli.scancode, options, catch_exceptions=False, env=env) + result = runner.invoke( + cli.scancode, + options, + catch_exceptions=False, + env=env, + ) + if retry and result.exit_code != expected_rc: if on_windows: # wait and rerun in verbose mode to get more in the output - time.sleep(1) + time.sleep(1) if '--verbose' not in options: options.append('--verbose') - result = runner.invoke(cli.scancode, options, catch_exceptions=False, env=env) + result = runner.invoke( + cli.scancode, + options, + catch_exceptions=False, + env=env, + ) if result.exit_code != expected_rc: output = result.output @@ -118,7 +159,8 @@ def add_windows_extra_timeout(options, timeout=WINDOWS_CI_TIMEOUT): Add a timeout to an options list if on Windows. """ if on_windows and '--timeout' not in options: - # somehow the Appevyor windows CI is now much slower and timeouts at 120 secs + # somehow the Appevyor windows CI is now much slower and timeouts at 120 + # secs options += ['--timeout', timeout] return options @@ -132,7 +174,13 @@ def remove_windows_extra_timeout(scancode_options, timeout=WINDOWS_CI_TIMEOUT): del scancode_options['--timeout'] -def check_json_scan(expected_file, result_file, regen=False, remove_file_date=False, ignore_headers=False): +def check_json_scan( + expected_file, + result_file, + regen=False, + remove_file_date=False, + ignore_headers=False +): """ Check the scan `result_file` JSON results against the `expected_file` expected JSON results. @@ -157,9 +205,11 @@ def check_json_scan(expected_file, result_file, regen=False, remove_file_date=Fa # NOTE we redump the JSON as a string for a more efficient display of the # failures comparison/diff # TODO: remove sort, this should no longer be needed - expected = json.dumps(expected, indent=2, sort_keys=True, separators=(',', ': ')) - results = json.dumps(results, indent=2, sort_keys=True, separators=(',', ': ')) - assert expected == results + expected = json.dumps( + expected, indent=2, sort_keys=True, separators=(',', ': ')) + results = json.dumps( + results, indent=2, sort_keys=True, separators=(',', ': ')) + assert results == expected def load_json_result(location, remove_file_date=False): @@ -179,9 +229,16 @@ def load_json_result(location, remove_file_date=False): def load_json_result_from_string(string, remove_file_date=False): """ - Load the JSON scan results `string` as UTF-8 JSON. + Load and clean the JSON scan results `string`. """ scan_results = json.loads(string) + return streamline_scan(scan_results, remove_file_date=remove_file_date) + + +def streamline_scan(scan_results, remove_file_date=False): + """ + Modify the `scan_results` mapping in place to make it easier to test, + """ # clean new headers attributes streamline_headers(scan_results.get('headers', [])) # clean file_level attributes @@ -216,22 +273,27 @@ def streamline_headers(headers): hle.pop('start_timestamp', None) hle.pop('end_timestamp', None) hle.pop('duration', None) - header= hle.get('options', {}) + header = hle.get('options', {}) header.pop('--verbose', None) streamline_errors(hle['errors']) def streamline_scanned_file(scanned_file, remove_file_date=False): """ - Modify the `scanned_file` mapping for a file in scan results in place to make - it easier to test. + Modify the `scanned_file` mapping for a file in scan results in place to + make it easier to test. """ streamline_errors(scanned_file.get('scan_errors', [])) if remove_file_date: scanned_file.pop('date', None) -def check_jsonlines_scan(expected_file, result_file, regen=False, remove_file_date=False): +def check_jsonlines_scan( + expected_file, + result_file, + regen=False, + remove_file_date=False, +): """ Check the scan result_file JSON Lines results against the expected_file expected JSON results, which is a list of mappings, one per line. If regen @@ -256,7 +318,7 @@ def check_jsonlines_scan(expected_file, result_file, regen=False, remove_file_da expected = json.dumps(expected, indent=2, separators=(',', ': ')) results = json.dumps(results, indent=2, separators=(',', ': ')) - assert expected == results + assert results == expected def streamline_jsonlines_scan(scan_result, remove_file_date=False): From 310f4501a720fdb201e86e4d63eafb3e22e347b3 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 2 Jun 2021 18:59:06 +0200 Subject: [PATCH 450/709] Update YAML output to latest develop #2208 Signed-off-by: Philippe Ombredanne --- src/formattedcode/output_yaml.py | 61 +--- .../data/yaml/simple-expected.yaml | 85 +++++ .../data/yaml/simple/copyright_acme_c-c.c | 1 + .../data/yaml/tree/expected.yaml | 296 ++++++++++++++++++ .../formattedcode/data/yaml/tree/scan/copy1.c | 11 + .../formattedcode/data/yaml/tree/scan/copy2.c | 11 + .../formattedcode/data/yaml/tree/scan/copy3.c | 10 + .../data/yaml/tree/scan/subdir/copy1.c | 11 + .../data/yaml/tree/scan/subdir/copy2.c | 11 + .../data/yaml/tree/scan/subdir/copy3.c | 9 + .../data/yaml/tree/scan/subdir/copy4.c | 11 + tests/formattedcode/test_output_yaml.py | 88 ++++++ tests/scancode/data/help/help.txt | 1 + 13 files changed, 561 insertions(+), 45 deletions(-) create mode 100644 tests/formattedcode/data/yaml/simple-expected.yaml create mode 100644 tests/formattedcode/data/yaml/simple/copyright_acme_c-c.c create mode 100644 tests/formattedcode/data/yaml/tree/expected.yaml create mode 100644 tests/formattedcode/data/yaml/tree/scan/copy1.c create mode 100644 tests/formattedcode/data/yaml/tree/scan/copy2.c create mode 100644 tests/formattedcode/data/yaml/tree/scan/copy3.c create mode 100644 tests/formattedcode/data/yaml/tree/scan/subdir/copy1.c create mode 100644 tests/formattedcode/data/yaml/tree/scan/subdir/copy2.c create mode 100644 tests/formattedcode/data/yaml/tree/scan/subdir/copy3.c create mode 100644 tests/formattedcode/data/yaml/tree/scan/subdir/copy4.c create mode 100644 tests/formattedcode/test_output_yaml.py diff --git a/src/formattedcode/output_yaml.py b/src/formattedcode/output_yaml.py index 2d0fb5359c6..602890a39bb 100644 --- a/src/formattedcode/output_yaml.py +++ b/src/formattedcode/output_yaml.py @@ -1,61 +1,32 @@ # # Copyright (c) nexB Inc. and others. All rights reserved. -# http://nexb.com and https://github.com/nexB/scancode-toolkit/ -# The ScanCode software is licensed under the Apache License version 2.0. -# Data generated with ScanCode require an acknowledgment. -# ScanCode is a trademark of nexB Inc. + # ScanCode is a trademark of nexB Inc. +# SPDX-License-Identifier: Apache-2.0 +# See http://www.apache.org/licenses/LICENSE-2.0 for the license text. +# See https://github.com/nexB/scancode-toolkit for support or download. +# See https://aboutcode.org for more information about nexB OSS projects. # -# You may not use this software except in compliance with the License. -# You may obtain a copy of the License at: http://apache.org/licenses/LICENSE-2.0 -# Unless required by applicable law or agreed to in writing, software distributed -# under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR -# CONDITIONS OF ANY KIND, either express or implied. See the License for the -# specific language governing permissions and limitations under the License. -# -# When you publish or redistribute any data created with ScanCode or any ScanCode -# derivative work, you must accompany this data with the following acknowledgment: -# -# Generated with ScanCode and provided on an "AS IS" BASIS, WITHOUT WARRANTIES -# OR CONDITIONS OF ANY KIND, either express or implied. No content created from -# ScanCode should be considered or used as legal advice. Consult an Attorney -# for any legal advice. -# ScanCode is a free software code scanning tool from nexB Inc. and others. -# Visit https://github.com/nexB/scancode-toolkit/ for support and download. - -from __future__ import absolute_import -from __future__ import unicode_literals import saneyaml -from six import string_types -from commoncode.system import py2 -from commoncode.system import py3 +from commoncode.cliutils import PluggableCommandLineOption +from commoncode.cliutils import OUTPUT_GROUP +from formattedcode import FileOptionType from formattedcode import output_json from plugincode.output import output_impl from plugincode.output import OutputPlugin -from scancode import CommandLineOption -from scancode import FileOptionType -from scancode import OUTPUT_GROUP """ Output plugin to write scan results as YAML. """ -if py2: - mode = 'wb' - eol = b'\n' - -if py3: - mode = 'w' - eol = u'\n' - @output_impl class YamlOutput(OutputPlugin): options = [ - CommandLineOption(('--yaml', 'output_yaml',), - type=FileOptionType(mode=mode, lazy=True), + PluggableCommandLineOption(('--yaml', 'output_yaml',), + type=FileOptionType(mode='w', encoding='utf-8', lazy=True), metavar='FILE', help='Write scan output as YAML to FILE.', help_group=OUTPUT_GROUP, @@ -74,13 +45,13 @@ def write_yaml(results, output_file, **kwargs): """ Write `results` to the `output_file` opened file-like object. """ - close_of = False + close_fd = False try: - if isinstance(output_file, string_types): - output_file = open(output_file, mode) - close_of = True + if isinstance(output_file, str): + output_file = open(output_file, 'w') + close_fd = True output_file.write(saneyaml.dump(results, indent=4)) - output_file.write(eol) + output_file.write('\n') finally: - if close_of: + if close_fd: output_file.close() diff --git a/tests/formattedcode/data/yaml/simple-expected.yaml b/tests/formattedcode/data/yaml/simple-expected.yaml new file mode 100644 index 00000000000..0eb1bd37cb2 --- /dev/null +++ b/tests/formattedcode/data/yaml/simple-expected.yaml @@ -0,0 +1,85 @@ +headers: + - tool_name: scancode-toolkit + options: + input: + --copyright: yes + --info: yes + --license: yes + --package: yes + --yaml: + notice: | + Generated with ScanCode and provided on an "AS IS" BASIS, WITHOUT WARRANTIES + OR CONDITIONS OF ANY KIND, either express or implied. No content created from + ScanCode should be considered or used as legal advice. Consult an Attorney + for any legal advice. + ScanCode is a free software code scanning tool from nexB Inc. and others. + Visit https://github.com/nexB/scancode-toolkit/ for support and download. + message: + errors: [] + extra_data: + files_count: 1 +files: + - path: simple + type: directory + name: simple + base_name: simple + extension: + size: '0' + sha1: + md5: + sha256: + mime_type: + file_type: + programming_language: + is_binary: no + is_text: no + is_archive: no + is_media: no + is_source: no + is_script: no + licenses: [] + license_expressions: [] + percentage_of_license_text: '0' + copyrights: [] + holders: [] + authors: [] + packages: [] + files_count: 1 + dirs_count: '0' + size_count: 55 + scan_errors: [] + - path: simple/copyright_acme_c-c.c + type: file + name: copyright_acme_c-c.c + base_name: copyright_acme_c-c + extension: .c + size: 55 + sha1: e2466d5b764d27fb301ceb439ffb5da22e43ab1d + md5: bdf7c572beb4094c2059508fa73c05a4 + sha256: 234d690ec9a5ac134e01847f34581b0ea83dfd1f3d4c79bee046297baa5f5925 + mime_type: text/plain + file_type: UTF-8 Unicode text, with no line terminators + programming_language: C + is_binary: no + is_text: yes + is_archive: no + is_media: no + is_source: yes + is_script: no + licenses: [] + license_expressions: [] + percentage_of_license_text: '0' + copyrights: + - value: Copyright (c) 2000 ACME, Inc. + start_line: 1 + end_line: 1 + holders: + - value: ACME, Inc. + start_line: 1 + end_line: 1 + authors: [] + packages: [] + files_count: '0' + dirs_count: '0' + size_count: '0' + scan_errors: [] diff --git a/tests/formattedcode/data/yaml/simple/copyright_acme_c-c.c b/tests/formattedcode/data/yaml/simple/copyright_acme_c-c.c new file mode 100644 index 00000000000..23dbd722d5d --- /dev/null +++ b/tests/formattedcode/data/yaml/simple/copyright_acme_c-c.c @@ -0,0 +1 @@ +/* Copyright © 2000 ACME, Inc., All Rights Reserved */ \ No newline at end of file diff --git a/tests/formattedcode/data/yaml/tree/expected.yaml b/tests/formattedcode/data/yaml/tree/expected.yaml new file mode 100644 index 00000000000..2109b3b61f9 --- /dev/null +++ b/tests/formattedcode/data/yaml/tree/expected.yaml @@ -0,0 +1,296 @@ +headers: + - tool_name: scancode-toolkit + options: + input: + --copyright: yes + --info: yes + --license: yes + --package: yes + --strip-root: yes + --yaml: + notice: | + Generated with ScanCode and provided on an "AS IS" BASIS, WITHOUT WARRANTIES + OR CONDITIONS OF ANY KIND, either express or implied. No content created from + ScanCode should be considered or used as legal advice. Consult an Attorney + for any legal advice. + ScanCode is a free software code scanning tool from nexB Inc. and others. + Visit https://github.com/nexB/scancode-toolkit/ for support and download. + message: + errors: [] + extra_data: + files_count: 7 +files: + - path: copy1.c + type: file + name: copy1.c + base_name: copy1 + extension: .c + size: 91 + sha1: 3922760d8492eb8f853c10a627f5a73f9eaec6ff + md5: fc7f53659b7a9db8b6dff0638641778e + sha256: 23fe3ce8ad18772ea688a435bb624d65e08fdee1d31b9f620a1ba62619c0f201 + mime_type: text/plain + file_type: UTF-8 Unicode text + programming_language: C + is_binary: no + is_text: yes + is_archive: no + is_media: no + is_source: yes + is_script: no + licenses: [] + license_expressions: [] + percentage_of_license_text: '0' + copyrights: + - value: Copyright (c) 2000 ACME, Inc. + start_line: 1 + end_line: 1 + holders: + - value: ACME, Inc. + start_line: 1 + end_line: 1 + authors: [] + packages: [] + files_count: '0' + dirs_count: '0' + size_count: '0' + scan_errors: [] + - path: copy2.c + type: file + name: copy2.c + base_name: copy2 + extension: .c + size: 91 + sha1: 3922760d8492eb8f853c10a627f5a73f9eaec6ff + md5: fc7f53659b7a9db8b6dff0638641778e + sha256: 23fe3ce8ad18772ea688a435bb624d65e08fdee1d31b9f620a1ba62619c0f201 + mime_type: text/plain + file_type: UTF-8 Unicode text + programming_language: C + is_binary: no + is_text: yes + is_archive: no + is_media: no + is_source: yes + is_script: no + licenses: [] + license_expressions: [] + percentage_of_license_text: '0' + copyrights: + - value: Copyright (c) 2000 ACME, Inc. + start_line: 1 + end_line: 1 + holders: + - value: ACME, Inc. + start_line: 1 + end_line: 1 + authors: [] + packages: [] + files_count: '0' + dirs_count: '0' + size_count: '0' + scan_errors: [] + - path: copy3.c + type: file + name: copy3.c + base_name: copy3 + extension: .c + size: 91 + sha1: c91811eb5fdc7ab440355f9f8d1580e1518b0c2f + md5: e999e21c9d7de4d0f943aefbb6f21b99 + sha256: abd984f8715001bb54d5a2ef293b2c559861756b17c4461cde3ac08e9b61ec78 + mime_type: text/plain + file_type: UTF-8 Unicode text + programming_language: C + is_binary: no + is_text: yes + is_archive: no + is_media: no + is_source: yes + is_script: no + licenses: [] + license_expressions: [] + percentage_of_license_text: '0' + copyrights: + - value: Copyright (c) 2000 ACME, Inc. + start_line: 1 + end_line: 1 + holders: + - value: ACME, Inc. + start_line: 1 + end_line: 1 + authors: [] + packages: [] + files_count: '0' + dirs_count: '0' + size_count: '0' + scan_errors: [] + - path: subdir + type: directory + name: subdir + base_name: subdir + extension: + size: '0' + sha1: + md5: + sha256: + mime_type: + file_type: + programming_language: + is_binary: no + is_text: no + is_archive: no + is_media: no + is_source: no + is_script: no + licenses: [] + license_expressions: [] + percentage_of_license_text: '0' + copyrights: [] + holders: [] + authors: [] + packages: [] + files_count: 4 + dirs_count: '0' + size_count: 361 + scan_errors: [] + - path: subdir/copy1.c + type: file + name: copy1.c + base_name: copy1 + extension: .c + size: 91 + sha1: 3922760d8492eb8f853c10a627f5a73f9eaec6ff + md5: fc7f53659b7a9db8b6dff0638641778e + sha256: 23fe3ce8ad18772ea688a435bb624d65e08fdee1d31b9f620a1ba62619c0f201 + mime_type: text/plain + file_type: UTF-8 Unicode text + programming_language: C + is_binary: no + is_text: yes + is_archive: no + is_media: no + is_source: yes + is_script: no + licenses: [] + license_expressions: [] + percentage_of_license_text: '0' + copyrights: + - value: Copyright (c) 2000 ACME, Inc. + start_line: 1 + end_line: 1 + holders: + - value: ACME, Inc. + start_line: 1 + end_line: 1 + authors: [] + packages: [] + files_count: '0' + dirs_count: '0' + size_count: '0' + scan_errors: [] + - path: subdir/copy2.c + type: file + name: copy2.c + base_name: copy2 + extension: .c + size: 91 + sha1: 3922760d8492eb8f853c10a627f5a73f9eaec6ff + md5: fc7f53659b7a9db8b6dff0638641778e + sha256: 23fe3ce8ad18772ea688a435bb624d65e08fdee1d31b9f620a1ba62619c0f201 + mime_type: text/plain + file_type: UTF-8 Unicode text + programming_language: C + is_binary: no + is_text: yes + is_archive: no + is_media: no + is_source: yes + is_script: no + licenses: [] + license_expressions: [] + percentage_of_license_text: '0' + copyrights: + - value: Copyright (c) 2000 ACME, Inc. + start_line: 1 + end_line: 1 + holders: + - value: ACME, Inc. + start_line: 1 + end_line: 1 + authors: [] + packages: [] + files_count: '0' + dirs_count: '0' + size_count: '0' + scan_errors: [] + - path: subdir/copy3.c + type: file + name: copy3.c + base_name: copy3 + extension: .c + size: 84 + sha1: 389af7e629a9853056e42b262d5e30bf4579a74f + md5: 290627a1387288ef77ae7e07946f3ecf + sha256: 271a9f4402a59c923ee04fd9bd3f2aa188d2b9e4741cef1b756ec7116f9d83ef + mime_type: text/plain + file_type: UTF-8 Unicode text + programming_language: C + is_binary: no + is_text: yes + is_archive: no + is_media: no + is_source: yes + is_script: no + licenses: [] + license_expressions: [] + percentage_of_license_text: '0' + copyrights: + - value: Copyright (c) 2000 ACME, Inc. + start_line: 1 + end_line: 1 + holders: + - value: ACME, Inc. + start_line: 1 + end_line: 1 + authors: [] + packages: [] + files_count: '0' + dirs_count: '0' + size_count: '0' + scan_errors: [] + - path: subdir/copy4.c + type: file + name: copy4.c + base_name: copy4 + extension: .c + size: 95 + sha1: 58748872d25374160692f1ed7075d0fe80a544b1 + md5: 88e46475db9b1a68f415f6a3544eeb16 + sha256: f6810dc076ffe08dad2812318e414ac4123de9a612faabc35121206a4fa48ce4 + mime_type: text/plain + file_type: UTF-8 Unicode text + programming_language: C + is_binary: no + is_text: yes + is_archive: no + is_media: no + is_source: yes + is_script: no + licenses: [] + license_expressions: [] + percentage_of_license_text: '0' + copyrights: + - value: Copyright (c) 2000 ACME, Inc. + start_line: 1 + end_line: 1 + holders: + - value: ACME, Inc. + start_line: 1 + end_line: 1 + authors: [] + packages: [] + files_count: '0' + dirs_count: '0' + size_count: '0' + scan_errors: [] diff --git a/tests/formattedcode/data/yaml/tree/scan/copy1.c b/tests/formattedcode/data/yaml/tree/scan/copy1.c new file mode 100644 index 00000000000..ad74753e093 --- /dev/null +++ b/tests/formattedcode/data/yaml/tree/scan/copy1.c @@ -0,0 +1,11 @@ +/* Copyright © 2000 ACME, Inc., All Rights Reserved */ + +adasd +ad +asd +as +das +da +da +dasd +asd \ No newline at end of file diff --git a/tests/formattedcode/data/yaml/tree/scan/copy2.c b/tests/formattedcode/data/yaml/tree/scan/copy2.c new file mode 100644 index 00000000000..ad74753e093 --- /dev/null +++ b/tests/formattedcode/data/yaml/tree/scan/copy2.c @@ -0,0 +1,11 @@ +/* Copyright © 2000 ACME, Inc., All Rights Reserved */ + +adasd +ad +asd +as +das +da +da +dasd +asd \ No newline at end of file diff --git a/tests/formattedcode/data/yaml/tree/scan/copy3.c b/tests/formattedcode/data/yaml/tree/scan/copy3.c new file mode 100644 index 00000000000..e2233fbac26 --- /dev/null +++ b/tests/formattedcode/data/yaml/tree/scan/copy3.c @@ -0,0 +1,10 @@ +/* Copyright © 2000 ACME, Inc., All Rights Reserved */ + +adasd +ad +asd +as +da +dasdas +dasd +asd \ No newline at end of file diff --git a/tests/formattedcode/data/yaml/tree/scan/subdir/copy1.c b/tests/formattedcode/data/yaml/tree/scan/subdir/copy1.c new file mode 100644 index 00000000000..ad74753e093 --- /dev/null +++ b/tests/formattedcode/data/yaml/tree/scan/subdir/copy1.c @@ -0,0 +1,11 @@ +/* Copyright © 2000 ACME, Inc., All Rights Reserved */ + +adasd +ad +asd +as +das +da +da +dasd +asd \ No newline at end of file diff --git a/tests/formattedcode/data/yaml/tree/scan/subdir/copy2.c b/tests/formattedcode/data/yaml/tree/scan/subdir/copy2.c new file mode 100644 index 00000000000..ad74753e093 --- /dev/null +++ b/tests/formattedcode/data/yaml/tree/scan/subdir/copy2.c @@ -0,0 +1,11 @@ +/* Copyright © 2000 ACME, Inc., All Rights Reserved */ + +adasd +ad +asd +as +das +da +da +dasd +asd \ No newline at end of file diff --git a/tests/formattedcode/data/yaml/tree/scan/subdir/copy3.c b/tests/formattedcode/data/yaml/tree/scan/subdir/copy3.c new file mode 100644 index 00000000000..161faeaa72f --- /dev/null +++ b/tests/formattedcode/data/yaml/tree/scan/subdir/copy3.c @@ -0,0 +1,9 @@ +/* Copyright © 2000 ACME, Inc., All Rights Reserved */ + +adasd +ad +asd +as +da +dasd +asd \ No newline at end of file diff --git a/tests/formattedcode/data/yaml/tree/scan/subdir/copy4.c b/tests/formattedcode/data/yaml/tree/scan/subdir/copy4.c new file mode 100644 index 00000000000..ef84e1098a2 --- /dev/null +++ b/tests/formattedcode/data/yaml/tree/scan/subdir/copy4.c @@ -0,0 +1,11 @@ +/* Copyright © 2000 ACME, Inc., All Rights Reserved */ +fafsdfsdf + + +adasd +ad +asd +as +da +dasd +asd \ No newline at end of file diff --git a/tests/formattedcode/test_output_yaml.py b/tests/formattedcode/test_output_yaml.py new file mode 100644 index 00000000000..2f5b65b1ca9 --- /dev/null +++ b/tests/formattedcode/test_output_yaml.py @@ -0,0 +1,88 @@ +# -*- coding: utf-8 -*- +# +# Copyright (c) nexB Inc. and others. All rights reserved. +# ScanCode is a trademark of nexB Inc. +# SPDX-License-Identifier: Apache-2.0 +# See http://www.apache.org/licenses/LICENSE-2.0 for the license text. +# See https://github.com/nexB/scancode-toolkit for support or download. +# See https://aboutcode.org for more information about nexB OSS projects. +# + +import os + +import pytest +import saneyaml + +from commoncode.testcase import FileDrivenTesting +from scancode.cli_test_utils import streamline_scan +from scancode.cli_test_utils import run_scan_click + +test_env = FileDrivenTesting() +test_env.test_data_dir = os.path.join(os.path.dirname(__file__), 'data') + + +def test_yaml(): + test_dir = test_env.get_test_loc('yaml/simple') + result_file = test_env.get_temp_file('yaml') + run_scan_click(['-clip', test_dir, '--yaml', result_file]) + expected = test_env.get_test_loc('yaml/simple-expected.yaml') + check_yaml_scan(expected, result_file, regen=False) + + +@pytest.mark.scanslow +def test_scan_output_does_not_truncate_copyright_yaml(): + test_dir = test_env.get_test_loc('yaml/tree/scan/') + result_file = test_env.get_temp_file('test.yaml') + run_scan_click(['-clip', '--strip-root', test_dir, '--yaml', result_file]) + expected = test_env.get_test_loc('yaml/tree/expected.yaml') + check_yaml_scan(expected, result_file, regen=False) + + +@pytest.mark.scanslow +def test_scan_output_for_timestamp(): + test_dir = test_env.get_test_loc('yaml/simple') + result_file = test_env.get_temp_file('yaml') + run_scan_click(['-clip', test_dir, '--yaml', result_file]) + result_yaml = saneyaml.load(open(result_file).read()) + header = result_yaml['headers'][0] + assert 'start_timestamp' in header + assert 'end_timestamp' in header + + +def check_yaml_scan(expected_file, result_file, regen=False): + """ + Check the scan `result_file` YAML results against the `expected_file` + expected YAML results. + + If `regen` is True the expected_file WILL BE overwritten with the new scan + results from `results_file`. This is convenient for updating tests + expectations. But use with caution. + """ + results = load_yaml_results(result_file) + if regen: + with open(expected_file, 'w') as reg: + reg.write(saneyaml.dump(results)) + + expected = load_yaml_results(expected_file) + + results.pop('headers', None) + expected.pop('headers', None) + + # NOTE we redump the YAML as a string for a more efficient display of the + # failures comparison/diff + expected = saneyaml.dump(expected) + results = saneyaml.dump(results) + assert expected == results + + +def load_yaml_results(location): + """ + Load the YAML scan results file at `location`. + To help with test resilience against small changes some attributes are + removed or streamlined such as the "tool_version" and scan "errors". + Also date attributes from "files" and "headers" entries are removed. + """ + with open(location, encoding='utf-8') as res: + scan_results = res.read() + scan_results = saneyaml.load(scan_results) + return streamline_scan(scan_results, remove_file_date=True) diff --git a/tests/scancode/data/help/help.txt b/tests/scancode/data/help/help.txt index 7dd7b166b4d..a2d8b68ab4e 100644 --- a/tests/scancode/data/help/help.txt +++ b/tests/scancode/data/help/help.txt @@ -39,6 +39,7 @@ Options: --json FILE Write scan output as compact JSON to FILE. --json-pp FILE Write scan output as pretty-printed JSON to FILE. --json-lines FILE Write scan output as JSON Lines to FILE. + --yaml FILE Write scan output as YAML to FILE. --csv FILE Write scan output as CSV to FILE. --html FILE Write scan output as HTML to FILE. --custom-output FILE Write scan output to FILE formatted with the custom From dde70289e68e3103b04fb35d818c32b7df5c5c1e Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 3 Jun 2021 00:13:36 +0200 Subject: [PATCH 451/709] Impovae license detection validation Signed-off-by: Philippe Ombredanne --- tests/licensedcode/test_detection_validate.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/licensedcode/test_detection_validate.py b/tests/licensedcode/test_detection_validate.py index 8e131b3a9c5..aa9764d489f 100644 --- a/tests/licensedcode/test_detection_validate.py +++ b/tests/licensedcode/test_detection_validate.py @@ -74,7 +74,7 @@ def check_special_rule_can_be_detected(rule): def check_rule_or_license_can_be_self_detected_exactly(rule): idx = cache.get_index() - matches = idx.match(location=rule.text_file, _skip_hash_match=True) + matches = idx.match(location=rule.text_file, _skip_hash_match=True, deadline=10) expected = [rule.identifier, '100'] results = flatten((m.rule.identifier, str(int(m.coverage()))) for m in matches) @@ -129,7 +129,7 @@ def check_ignorable_clues(rule, regen=False): # scan clues scan_data = {} - scan_data.update(api.get_copyrights(text_file)) + scan_data.update(api.get_copyrights(text_file, deadline=10)) scan_data.update(api.get_urls(text_file, threshold=0)) scan_data.update(api.get_emails(text_file, threshold=0)) From a16b452241347062bf905347f0d994072b7e9808 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 3 Jun 2021 09:01:23 +0200 Subject: [PATCH 452/709] Mark tests as expected failures They are complex copyrights tests failing for now Signed-off-by: Philippe Ombredanne --- src/licensedcode/data/rules/xfree86-1.1_3.yml | 1 - src/licensedcode/data/rules/xfree86-1.1_4.yml | 1 - tests/cluecode/data/ics/iptables-extensions/libxt_TEE.c.yml | 5 +++++ .../markdown.php.yml | 2 ++ .../smartypants.php.yml | 3 +++ 5 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/licensedcode/data/rules/xfree86-1.1_3.yml b/src/licensedcode/data/rules/xfree86-1.1_3.yml index 3a988995f26..8481b099ae2 100644 --- a/src/licensedcode/data/rules/xfree86-1.1_3.yml +++ b/src/licensedcode/data/rules/xfree86-1.1_3.yml @@ -4,6 +4,5 @@ minimum_coverage: 60 notes: uses the english sublicence instead of the us subclicense ignorable_authors: - The XFree86 Project, Inc (http://www.xfree86.org/) - - authorization from The XFree86 Project, Inc. ignorable_urls: - http://www.xfree86.org/ diff --git a/src/licensedcode/data/rules/xfree86-1.1_4.yml b/src/licensedcode/data/rules/xfree86-1.1_4.yml index 3a988995f26..8481b099ae2 100644 --- a/src/licensedcode/data/rules/xfree86-1.1_4.yml +++ b/src/licensedcode/data/rules/xfree86-1.1_4.yml @@ -4,6 +4,5 @@ minimum_coverage: 60 notes: uses the english sublicence instead of the us subclicense ignorable_authors: - The XFree86 Project, Inc (http://www.xfree86.org/) - - authorization from The XFree86 Project, Inc. ignorable_urls: - http://www.xfree86.org/ diff --git a/tests/cluecode/data/ics/iptables-extensions/libxt_TEE.c.yml b/tests/cluecode/data/ics/iptables-extensions/libxt_TEE.c.yml index a904d8da867..0f05b509e03 100644 --- a/tests/cluecode/data/ics/iptables-extensions/libxt_TEE.c.yml +++ b/tests/cluecode/data/ics/iptables-extensions/libxt_TEE.c.yml @@ -12,3 +12,8 @@ holders_summary: - value: Sebastian Classen , Jan Engelhardt count: 1 +expected_failures: + - copyrights + - holders + - holders_summary + \ No newline at end of file diff --git a/tests/cluecode/data/ics/libvpx-examples-includes-PHP-Markdown-Extra-1.2.3/markdown.php.yml b/tests/cluecode/data/ics/libvpx-examples-includes-PHP-Markdown-Extra-1.2.3/markdown.php.yml index dd669c35ce8..752adf32491 100644 --- a/tests/cluecode/data/ics/libvpx-examples-includes-PHP-Markdown-Extra-1.2.3/markdown.php.yml +++ b/tests/cluecode/data/ics/libvpx-examples-includes-PHP-Markdown-Extra-1.2.3/markdown.php.yml @@ -18,3 +18,5 @@ holders_summary: - value: Michel Fortin count: 2 notes: we do not want a trailing http +expected_failures: + - copyrights diff --git a/tests/cluecode/data/ics/libvpx-examples-includes-PHP-SmartyPants-1.5.1e/smartypants.php.yml b/tests/cluecode/data/ics/libvpx-examples-includes-PHP-SmartyPants-1.5.1e/smartypants.php.yml index b261bda8007..8b927411507 100644 --- a/tests/cluecode/data/ics/libvpx-examples-includes-PHP-SmartyPants-1.5.1e/smartypants.php.yml +++ b/tests/cluecode/data/ics/libvpx-examples-includes-PHP-SmartyPants-1.5.1e/smartypants.php.yml @@ -17,3 +17,6 @@ holders_summary: count: 2 - value: Michel Fortin count: 2 +expected_failures: + - copyrights + \ No newline at end of file From 85cd5ece0209e913006207ba9d70880b4c345147 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 3 Jun 2021 11:51:44 +0200 Subject: [PATCH 453/709] Remove incorrect ignorables Signed-off-by: Philippe Ombredanne --- src/licensedcode/data/licenses/xfree86-1.0.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/licensedcode/data/licenses/xfree86-1.0.yml b/src/licensedcode/data/licenses/xfree86-1.0.yml index b0d605d9c0a..604b593e428 100644 --- a/src/licensedcode/data/licenses/xfree86-1.0.yml +++ b/src/licensedcode/data/licenses/xfree86-1.0.yml @@ -8,5 +8,4 @@ spdx_license_key: LicenseRef-scancode-xfree86-1.0 text_urls: - http://www.xfree86.org/current/LICENSE5.html minimum_coverage: 80 -ignorable_authors: - - authorization from the XFree86 Project + From 2c73e566c8d9a36f13478a301cc9743f8e995016 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 3 Jun 2021 16:00:46 +0200 Subject: [PATCH 454/709] Correct ignorables with latest copyright updates Signed-off-by: Philippe Ombredanne --- src/licensedcode/data/licenses/bitstream.yml | 3 +-- src/licensedcode/data/licenses/xfree86-1.1.yml | 1 - src/licensedcode/data/rules/other-permissive_181.yml | 1 - src/licensedcode/data/rules/x11-opengroup_1.yml | 3 +-- src/licensedcode/data/rules/x11-opengroup_2.yml | 3 +-- src/licensedcode/data/rules/x11-opengroup_4.yml | 3 +-- src/licensedcode/data/rules/x11-opengroup_6.yml | 3 +-- src/licensedcode/data/rules/x11-opengroup_not_mit_1.yml | 2 -- src/licensedcode/data/rules/x11-xconsortium_1.yml | 3 +-- src/licensedcode/data/rules/xfree86-1.1_3.yml | 1 + 10 files changed, 7 insertions(+), 16 deletions(-) diff --git a/src/licensedcode/data/licenses/bitstream.yml b/src/licensedcode/data/licenses/bitstream.yml index 8e4cad7460a..9d157384874 100644 --- a/src/licensedcode/data/licenses/bitstream.yml +++ b/src/licensedcode/data/licenses/bitstream.yml @@ -8,5 +8,4 @@ spdx_license_key: LicenseRef-scancode-bitstream text_urls: - http://www.gnome.org/fonts/#Final_Bitstream_Vera_Fonts minimum_coverage: 50 -ignorable_authors: - - authorization from the Gnome Foundation or Bitstream Inc. + diff --git a/src/licensedcode/data/licenses/xfree86-1.1.yml b/src/licensedcode/data/licenses/xfree86-1.1.yml index f9f77bda115..381652b2a5d 100644 --- a/src/licensedcode/data/licenses/xfree86-1.1.yml +++ b/src/licensedcode/data/licenses/xfree86-1.1.yml @@ -11,6 +11,5 @@ faq_url: http://www.xfree86.org/current/LICENSE4.html minimum_coverage: 70 ignorable_authors: - The XFree86 Project, Inc (http://www.xfree86.org/) - - authorization from The XFree86 Project, Inc. ignorable_urls: - http://www.xfree86.org/ diff --git a/src/licensedcode/data/rules/other-permissive_181.yml b/src/licensedcode/data/rules/other-permissive_181.yml index a59bd16f498..eb1dd25bdd4 100644 --- a/src/licensedcode/data/rules/other-permissive_181.yml +++ b/src/licensedcode/data/rules/other-permissive_181.yml @@ -5,6 +5,5 @@ notes: Seen in https://github.com/apple-opensource-mirror/X11/blob/43e6e6c55db66 This is a mix of Apache-1.1 and xfree86-1.1 ignorable_authors: - X-Oz Technologies (http://www.x-oz.com/) - - authorization from X-Oz Technologies ignorable_urls: - http://www.x-oz.com/ diff --git a/src/licensedcode/data/rules/x11-opengroup_1.yml b/src/licensedcode/data/rules/x11-opengroup_1.yml index e62b746f612..efa8c97cba5 100644 --- a/src/licensedcode/data/rules/x11-opengroup_1.yml +++ b/src/licensedcode/data/rules/x11-opengroup_1.yml @@ -1,5 +1,4 @@ license_expression: x11-opengroup is_license_text: yes minimum_coverage: 50 -ignorable_authors: - - authorization from The Open Group + diff --git a/src/licensedcode/data/rules/x11-opengroup_2.yml b/src/licensedcode/data/rules/x11-opengroup_2.yml index 3eb230e16ab..5df391cd99c 100644 --- a/src/licensedcode/data/rules/x11-opengroup_2.yml +++ b/src/licensedcode/data/rules/x11-opengroup_2.yml @@ -3,5 +3,4 @@ is_license_text: yes relevance: 90 minimum_coverage: 90 notes: truncated text -ignorable_authors: - - authorization from The Open Group + diff --git a/src/licensedcode/data/rules/x11-opengroup_4.yml b/src/licensedcode/data/rules/x11-opengroup_4.yml index a7c18ff13e3..61446800362 100644 --- a/src/licensedcode/data/rules/x11-opengroup_4.yml +++ b/src/licensedcode/data/rules/x11-opengroup_4.yml @@ -1,5 +1,4 @@ license_expression: x11-opengroup is_license_text: yes relevance: 100 -ignorable_authors: - - authorization from The Open Group + diff --git a/src/licensedcode/data/rules/x11-opengroup_6.yml b/src/licensedcode/data/rules/x11-opengroup_6.yml index a7c18ff13e3..61446800362 100644 --- a/src/licensedcode/data/rules/x11-opengroup_6.yml +++ b/src/licensedcode/data/rules/x11-opengroup_6.yml @@ -1,5 +1,4 @@ license_expression: x11-opengroup is_license_text: yes relevance: 100 -ignorable_authors: - - authorization from The Open Group + diff --git a/src/licensedcode/data/rules/x11-opengroup_not_mit_1.yml b/src/licensedcode/data/rules/x11-opengroup_not_mit_1.yml index 0b27c187b7c..a3427fd7583 100644 --- a/src/licensedcode/data/rules/x11-opengroup_not_mit_1.yml +++ b/src/licensedcode/data/rules/x11-opengroup_not_mit_1.yml @@ -1,5 +1,3 @@ license_expression: x11-opengroup is_license_text: yes minimum_coverage: 70 -ignorable_authors: - - authorization from The Open Group diff --git a/src/licensedcode/data/rules/x11-xconsortium_1.yml b/src/licensedcode/data/rules/x11-xconsortium_1.yml index fc19ec0263c..661a77fb7f4 100644 --- a/src/licensedcode/data/rules/x11-xconsortium_1.yml +++ b/src/licensedcode/data/rules/x11-xconsortium_1.yml @@ -2,5 +2,4 @@ license_expression: x11-xconsortium is_license_text: yes relevance: 95 minimum_coverage: 50 -ignorable_authors: - - authorization from the IBM Corporation + diff --git a/src/licensedcode/data/rules/xfree86-1.1_3.yml b/src/licensedcode/data/rules/xfree86-1.1_3.yml index 8481b099ae2..c9d227f78a8 100644 --- a/src/licensedcode/data/rules/xfree86-1.1_3.yml +++ b/src/licensedcode/data/rules/xfree86-1.1_3.yml @@ -6,3 +6,4 @@ ignorable_authors: - The XFree86 Project, Inc (http://www.xfree86.org/) ignorable_urls: - http://www.xfree86.org/ + From 4d630bf31ef36125ea4b0feed01ec3acf404f051 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 3 Jun 2021 16:01:51 +0200 Subject: [PATCH 455/709] Dump generated rules with ignorables Signed-off-by: Philippe Ombredanne --- etc/scripts/licenses/buildrules.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/scripts/licenses/buildrules.py b/etc/scripts/licenses/buildrules.py index 837cdea0cf5..ca9c338139c 100644 --- a/etc/scripts/licenses/buildrules.py +++ b/etc/scripts/licenses/buildrules.py @@ -235,8 +235,8 @@ def cli(licenses_file): print('Skipping already added rule with text for:', base_name) else: rules_tokens.add(rule_tokens) - rulerec.dump() models.update_ignorables(rulerec, verbose=False) + rulerec.dump() print('Rule added:', 'file://' + rulerec.data_file, '\n', 'file://' + rulerec.text_file,) From 990dc386659d894bd9a5b55495a0d27819b35416 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 3 Jun 2021 16:02:15 +0200 Subject: [PATCH 456/709] Format code Signed-off-by: Philippe Ombredanne --- src/cluecode/plugin_filter_clues.py | 42 +++++++++++++++-------------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/src/cluecode/plugin_filter_clues.py b/src/cluecode/plugin_filter_clues.py index a91183fc669..c2cd8fa0029 100644 --- a/src/cluecode/plugin_filter_clues.py +++ b/src/cluecode/plugin_filter_clues.py @@ -38,8 +38,8 @@ def logger_debug(*args): @post_scan_impl class RedundantCluesFilter(PostScanPlugin): """ - Filter redundant clues (copyrights, authors, emails, and urls) that are already - contained in another more important scan result. + Filter redundant clues (copyrights, authors, emails, and urls) that are + already contained in a matched license text. """ sort_order = 1 @@ -275,13 +275,14 @@ def filter_ignorable_clues(detections, rules_by_id): def filter_values(attributes, ignorables, value_key='value', strip=''): """ - Yield filtered `attributes` based on line positions and values found in a - ignorables. + Yield filtered ``attributes`` based on line positions and values found in a + ``ignorables`` Ignorables object. Use the ``value_key`` key for getting the + value. `attributes` is a list of mappings that contain a `start_line`, `end_line` and a `value_key` key. - Optionally strip `strip` from the the values. + Optionally strip the ``strip`` characters from the values. """ for item in attributes: if TRACE: @@ -296,7 +297,7 @@ def filter_values(attributes, ignorables, value_key='value', strip=''): for ign in ignorables: if TRACE: logger_debug(' filter_values: ign:', ign) - if (ls in ign.lines_range or el in ign.lines_range) and val in ign.value: + if (ls in ign.lines_range or el in ign.lines_range) and val in ign.value: ignored = True if TRACE: logger_debug(' filter_values: skipped') break @@ -307,13 +308,12 @@ def filter_values(attributes, ignorables, value_key='value', strip=''): def collect_ignorables(license_matches, rules_by_id): """ - Collect and return an ignorable Clues object built from `license_matches` - matched licenses which is the list of "licenses" objects returned in JSON - results. + Collect and return an Ignorables object built from ``license_matches`` + matched licenses list of "licenses" objects returned in ScanCode JSON + results and the ``rules_by_id`` mapping of Rule objects by identifier. - The value of each ignorable list of clues is a set of (set of - lines number, set of ignorable values). The return values is a mapping - {label: ignorables}. + The value of each ignorable list of clues is a set of (set of lines number, + set of ignorable values). """ emails = set() urls = set() @@ -323,16 +323,17 @@ def collect_ignorables(license_matches, rules_by_id): if not license_matches: return Ignorables( - copyrights=frozenset(copyrights), - holders=frozenset(holders), - authors=frozenset(authors), - urls=frozenset(urls), - emails=frozenset(emails), - ) + copyrights=frozenset(copyrights), + holders=frozenset(holders), + authors=frozenset(authors), + urls=frozenset(urls), + emails=frozenset(emails), + ) # build tuple of (set of lines number, set of ignorbale values) for lic in license_matches: - if TRACE: logger_debug('collect_ignorables: license:', lic['key'], lic['score']) + if TRACE: + logger_debug('collect_ignorables: license:', lic['key'], lic['score']) matched_rule = lic.get('matched_rule', {}) rid = matched_rule.get('identifier') @@ -341,7 +342,8 @@ def collect_ignorables(license_matches, rules_by_id): # ignore poor partial matches # TODO: there must be a better way using coverage if match_coverage < 90: - if TRACE: logger_debug(' collect_ignorables: skipping, match_coverage under 90%') + if TRACE: + logger_debug(' collect_ignorables: skipping, match_coverage under 90%') continue if not rid: From 94a240fc0f3f81ff1eb85fa13d590262d5de97d8 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 3 Jun 2021 16:02:39 +0200 Subject: [PATCH 457/709] Format code Signed-off-by: Philippe Ombredanne --- tests/licensedcode/licensedcode_test_utils.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/tests/licensedcode/licensedcode_test_utils.py b/tests/licensedcode/licensedcode_test_utils.py index 82a0000d7c6..a8d7165274f 100644 --- a/tests/licensedcode/licensedcode_test_utils.py +++ b/tests/licensedcode/licensedcode_test_utils.py @@ -139,8 +139,11 @@ def load_from(test_dir): """ Return an iterable of LicenseTest objects loaded from `test_dir` """ - return [LicenseTest(data_file, test_file) - for data_file, test_file in get_test_file_pairs(test_dir)] + return [ + LicenseTest(data_file, test_file) + for data_file, test_file + in get_test_file_pairs(test_dir) + ] def build_tests(test_dir, clazz, regen=False): @@ -219,7 +222,8 @@ def closure_test_function(*args, **kwargs): 'file://{test_file}'.format(**locals()) ]) if test_data_file: - results_failure_trace.append('file://{test_data_file}'.format(**locals())) + results_failure_trace.append( + 'file://{test_data_file}'.format(**locals())) results_failure_trace.append('') results_failure_trace.append(qtext) @@ -237,7 +241,8 @@ def closure_test_function(*args, **kwargs): 'file://{test_file}'.format(**locals()) ]) if test_data_file: - results_failure_trace.append('file://{test_data_file}'.format(**locals())) + results_failure_trace.append( + 'file://{test_data_file}'.format(**locals())) # this assert will always fail and provide a detailed failure trace assert '\n'.join(results_failure_trace) == '\n'.join(expected) From 6aa07428ef530b997595340630af44313694213e Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 3 Jun 2021 16:05:27 +0200 Subject: [PATCH 458/709] Refactor License ignorable clues handling - Ignorables code was duplicated in test and models code. This is now refactored as a single correct way. The previous ways had subtle bugs. - Also formated the code and applied minor cosmetic refactorings for improved readability Signed-off-by: Philippe Ombredanne --- src/licensedcode/models.py | 402 +++++++++++------- tests/licensedcode/test_detection_validate.py | 127 +++--- 2 files changed, 320 insertions(+), 209 deletions(-) diff --git a/src/licensedcode/models.py b/src/licensedcode/models.py index 55502a3e654..1bf181a00ca 100644 --- a/src/licensedcode/models.py +++ b/src/licensedcode/models.py @@ -7,22 +7,22 @@ # See https://aboutcode.org for more information about nexB OSS projects. # +import io +import shutil +import traceback from collections import Counter from collections import defaultdict from functools import partial from itertools import chain -import io from operator import itemgetter from os.path import abspath from os.path import dirname from os.path import exists from os.path import join -import shutil -import traceback import attr -from license_expression import Licensing import saneyaml +from license_expression import Licensing from commoncode.fileutils import copyfile from commoncode.fileutils import file_base_name @@ -79,7 +79,7 @@ class License(object): __attrib = partial(attr.ib, repr=False) - # mandatory and unique key: lower case ASCII characters, digits, underscore and dots. + # mandatory unique key: lower case ASCII characters, digits, underscore and dots. key = attr.ib(repr=True) src_dir = __attrib(default=licenses_data_dir) @@ -152,12 +152,18 @@ def set_file_paths(self): def relocate(self, target_dir, new_key=None): """ - Return f copy of this license object relocated to f new `src_dir`. - The data and license text files are persisted in the new `src_dir`. + Return a copy of this License object relocated to a new ``target_dir`` + with data and license text files saved to the new ``target_dir``. + Use the ``new_key`` as license key if provided. """ - if not target_dir or target_dir == self.src_dir: + if not target_dir: + raise ValueError( + f'Cannot relocate {self.key} License to empty directory ' + ) + if target_dir == self.src_dir: raise ValueError( - 'Cannot relocate {} License to empty directory or same directory.'.format(self.key)) + f'Cannot relocate {self.key} License to its current directory.' + ) if new_key: key = new_key @@ -198,7 +204,7 @@ def text(self): def to_dict(self): """ - Return an dict of license data (excluding texts). + Return an ordered mapping of license data (excluding texts). Fields with empty values are not included. """ @@ -231,24 +237,23 @@ def dump(self): - .LICENSE: the license text """ - def write(location, byte_string): - # we write as binary because rules and licenses texts and data are UTF-8-encoded bytes - with io.open(location, 'wb') as of: - of.write(byte_string) + def write(location, _string): + with open(location, 'w') as of: + of.write(_string) + + write(self.data_file, saneyaml.dump(self.to_dict(), indent=4)) - as_yaml = saneyaml.dump(self.to_dict(), indent=4, encoding='utf-8') - write(self.data_file, as_yaml) if self.text: - write(self.text_file, self.text.encode('utf-8')) + write(self.text_file, self.text) def load(self): """ Populate license data from a YAML file stored in of self.src_dir. - Does not load text files. + Does not load text files yet. Unknown fields are ignored and not bound to the License object. """ try: - with io.open(self.data_file, encoding='utf-8') as f: + with open(self.data_file) as f: data = saneyaml.load(f.read()) for k, v in data.items(): @@ -257,7 +262,11 @@ def load(self): if k == 'key': assert self.key == v, ( - 'Inconsistent YAML key and file names for %r' % self.key) + 'The license "key" attribute in the .yml file MUST ' + 'be the same as the base name of this license .LICENSE ' + 'and .yml data files license files. ' + f'Yet file name = {self.key} and license key = {v}' + ) setattr(self, k, v) @@ -265,7 +274,7 @@ def load(self): # this is a rare case: fail loudly print() print('#############################') - print('INVALID LICENSE YAML FILE:', 'file://' + self.data_file) + print('INVALID LICENSE YAML FILE:', f'file://{self.data_file}') print('#############################') print(e) print('#############################') @@ -273,11 +282,9 @@ def load(self): def _read_text(self, location): if not exists(location): - text = '' - else: - with io.open(location, encoding='utf-8') as f: - text = f.read() - return text + return '' + with open(location) as f: + return f.read() def spdx_keys(self): """ @@ -291,14 +298,12 @@ def spdx_keys(self): @staticmethod def validate(licenses, verbose=False, no_dupe_urls=False): """ - Check that licenses are valid. `licenses` is a mapping of key -> - License. Return dictionaries of infos, errors and warnings mapping a - license key to validation issue messages. Print messages if verbose is - True. - - NOTE: we DO NOT run this validation as part of the loading or - construction of License objects. Instead this is invoked ONLY as part of - the test suite. + Check that the ``licenses`` a mapping of {key: License} are valid. + Return dictionaries of infos, errors and warnings mapping a license key + to validation issue messages. Print messages if ``verbose`` is True. + + NOTE: we DO NOT run this validation as part of loading or constructing + License objects. Instead this is invoked ONLY as part of the test suite. """ infos = defaultdict(list) warnings = defaultdict(list) @@ -327,7 +332,10 @@ def validate(licenses, verbose=False, no_dupe_urls=False): error('No category') if lic.category and lic.category not in CATEGORIES: cats = '\n'.join(sorted(CATEGORIES)) - error('Unknown license category: {}.\nUse one of these valid categories:\n{}'.format(lic.category, cats)) + error( + f'Unknown license category: {lic.category}.\n' + f'Use one of these valid categories:\n{cats}' + ) if not lic.owner: error('No owner') @@ -370,7 +378,7 @@ def validate(licenses, verbose=False, no_dupe_urls=False): info('No license text') else: # for global dedupe - by_text[license_qtokens].append(key + ': TEXT') + by_text[license_qtokens].append(f'{key}: TEXT') # SPDX consistency if lic.spdx_license_key: @@ -382,28 +390,42 @@ def validate(licenses, verbose=False, no_dupe_urls=False): by_spdx_key[oslk].append(key) # global SPDX consistency - multiple_spdx_keys_used = {k: v for k, v in by_spdx_key.items() if len(v) > 1} + multiple_spdx_keys_used = { + k: v for k, v in by_spdx_key.items() + if len(v) > 1 + } if multiple_spdx_keys_used: for k, lkeys in multiple_spdx_keys_used.items(): - errors['GLOBAL'].append('SPDX key: ' + k + ' used in multiple licenses: ' + ', '.join(sorted(lkeys))) + errors['GLOBAL'].append( + f'SPDX key: {k} used in multiple licenses: ' + ', '.join(sorted(lkeys))) # global text dedupe multiple_texts = {k: v for k, v in by_text.items() if len(v) > 1} if multiple_texts: for k, msgs in multiple_texts.items(): - errors['GLOBAL'].append('Duplicate texts in multiple licenses:' + ', '.join(sorted(msgs))) + errors['GLOBAL'].append( + 'Duplicate texts in multiple licenses:' + ', '.join(sorted(msgs)) + ) # global short_name dedupe for short_name, licenses in by_short_name.items(): if len(licenses) == 1: continue - errors['GLOBAL'].append('Duplicate short name:' + short_name + ' in licenses:' + ', '.join(l.key for l in licenses)) + errors['GLOBAL'].append( + f'Duplicate short name: {short_name} in licenses:' + ', '.join(l.key for l in licenses) + ) # global name dedupe for name, licenses in by_name.items(): if len(licenses) == 1: continue - errors['GLOBAL'].append('Duplicate name:' + name + ' in licenses:' + ', '.join(l.key for l in licenses)) + errors['GLOBAL'].append( + f'Duplicate name: {name} in licenses:' + ', '.join(l.key for l in licenses) + ) errors = {k: v for k, v in errors.items() if v} warnings = {k: v for k, v in warnings.items() if v} @@ -412,15 +434,15 @@ def validate(licenses, verbose=False, no_dupe_urls=False): if verbose: print('Licenses validation errors:') for key, msgs in sorted(errors.items()): - print('ERRORS for:', key, ':', '\n'.join(msgs)) + print(f'ERRORS for: {key}:', '\n'.join(msgs)) print('Licenses validation warnings:') for key, msgs in sorted(warnings.items()): - print('WARNINGS for:', key, ':', '\n'.join(msgs)) + print(f'WARNINGS for: {key}:', '\n'.join(msgs)) print('Licenses validation infos:') for key, msgs in sorted(infos.items()): - print('INFOS for:', key, ':', '\n'.join(msgs)) + print(f'INFOS for: {key}:', '\n'.join(msgs)) return errors, warnings, infos @@ -431,13 +453,20 @@ def ignore_editor_tmp_files(location): def load_licenses(licenses_data_dir=licenses_data_dir , with_deprecated=False): """ - Return a mapping of key -> license objects, loaded from license files. - Raise Exceptions if there are dangling orphaned files. + Return a mapping of {key: License} loaded from license data and text files + found in ``licenses_data_dir``. Raise Exceptions if there are dangling or + orphaned files. Optionally include deprecated license if ``with_deprecated`` + is True. """ licenses = {} used_files = set() all_files = set(resource_iter( - licenses_data_dir, ignored=ignore_editor_tmp_files, with_dirs=False, follow_symlinks=True)) + licenses_data_dir, + ignored=ignore_editor_tmp_files, + with_dirs=False, + follow_symlinks=True, + )) + for data_file in sorted(all_files): if data_file.endswith('.yml'): key = file_base_name(data_file) @@ -451,12 +480,19 @@ def load_licenses(licenses_data_dir=licenses_data_dir , with_deprecated=False): dangling = all_files.difference(used_files) if dangling: - msg = 'Some License data or text files are orphaned in "{}".\n'.format(licenses_data_dir) - msg += '\n'.join('file://{}'.format(f) for f in sorted(dangling)) + msg = ( + f'Some License files are orphaned in "{licenses_data_dir}".\n' + '\n'.join(f'file://{f}' for f in sorted(dangling)) + ) raise Exception(msg) + if not licenses: - msg = 'No licenses were loaded. Check to see if the license data files are available at "{}".'.format(licenses_data_dir) + msg = ( + 'No licenses were loaded. Check to see if the license data files ' + f'are available at "{licenses_data_dir}".' + ) raise Exception(msg) + return licenses @@ -466,8 +502,8 @@ def get_rules( rules_data_dir=rules_data_dir ): """ - Yield Rule objects loaded from a licenses_db and license files found in - `licenses_data_dir` and rule files found in `rules_data_dir`. Raise an + Yield Rule objects loaded from a ``licenses_db`` and license files found in + ``licenses_data_dir`` and rule files found in `rules_data_dir`. Raise an Exception if a rule is inconsistent or incorrect. """ licenses_db = licenses_db or load_licenses(licenses_data_dir=licenses_data_dir) @@ -483,12 +519,13 @@ class InvalidRule(Exception): def _validate_all_rules(rules, licenses_by_key): """ - Return a mapping of {error message: [list of rules]) from validating a list - of `rules` integrity and correctness using known licenses from a mapping of - `licenses_by_key `(key->license)`. + Return a mapping of {error message: [list of Rule]} from validating a list + of ``rules`` Rule integrity and correctness using known licenses from a + mapping of ``licenses_by_key`` {key: License}`. """ licensing = Licensing(licenses_by_key.values()) errors = defaultdict(list) + for rule in rules: for err_msg in rule.validate(licensing): errors[err_msg].append(rule) @@ -497,9 +534,9 @@ def _validate_all_rules(rules, licenses_by_key): def validate_rules(rules, licenses_by_key, with_text=False): """ - Return a mapping of {error message: [list of rules]) from validating a list - of `rules` integrity and correctness using known licenses from a mapping of - `licenses_by_key `(key->license). + Return a mapping of {error message: [list of Rule]) from validating a list + of ``rules`` Rule integrity and correctness using known licenses from a + mapping of ``licenses_by_key`` {key: License}`. """ errors = _validate_all_rules(rules, licenses_by_key) if errors: @@ -510,18 +547,19 @@ def validate_rules(rules, licenses_by_key, with_text=False): for rule in rules: message.append(' ' + repr(rule)) if rule.text_file: - message.append(' file://' + rule.text_file) + message.append(f' file://{rule.text_file}') if rule.data_file: - message.append(' file://' + rule.data_file) + message.append(f' file://{rule.data_file}') if with_text: - message.append(' ' + rule.text()[:50].strip() + '...') + txt = rule.text()[:50].strip() + message.append(f' {txt}...') raise InvalidRule('\n'.join(message)) def build_rules_from_licenses(licenses): """ - Return an iterable of rules built from each license text from a `licenses` - iterable of license objects. + Return an iterable of rules built from each license text from a ``licenses`` + iterable of License objects. """ for license_key, license_obj in licenses.items(): text_file = join(license_obj.src_dir, license_obj.text_file) @@ -571,7 +609,7 @@ def get_essential_spdx_tokens(): def get_all_spdx_key_tokens(licenses_db): """ - Yield SPDX token strings collected from a `licenses_db` mapping of {key: + Yield SPDX token strings collected from a ``licenses_db`` mapping of {key: License} objects. """ for tok in get_essential_spdx_tokens(): @@ -584,7 +622,7 @@ def get_all_spdx_key_tokens(licenses_db): def load_rules(rules_data_dir=rules_data_dir): """ - Return an iterable of rules loaded from rule files. + Return an iterable of rules loaded from rule files in ``rules_data_dir``. """ # TODO: OPTIMIZE: create a graph of rules to account for containment and # similarity clusters? @@ -630,19 +668,31 @@ def load_rules(rules_data_dir=rules_data_dir): if model_errors: errors = '\n'.join(model_errors) - msg += '\nInvalid rule YAML in directory: %(rules_data_dir)r\n%(errors)s' % locals() + msg += ( + '\nInvalid rule YAML file in directory: ' + f'{rules_data_dir!r}\n{errors}' + ) if unknown_files: - files = '\n'.join(sorted('file://' + f for f in unknown_files)) - msg += '\nOrphaned files in rule directory: %(rules_data_dir)r\n%(files)s' % locals() + files = '\n'.join(sorted(f'f"ile://{f}"' for f in unknown_files)) + msg += ( + '\nOrphaned files in rule directory: ' + f'{rules_data_dir!r}\n{files}' + ) if case_problems: - files = '\n'.join(sorted('file://' + f for f in case_problems)) - msg += '\nRule files with non-unique name ignoring case in rule directory: %(rules_data_dir)r\n%(files)s' % locals() + files = '\n'.join(sorted(f'"file://{f}"' for f in case_problems)) + msg += ( + '\nRule files with non-unique name in rule directory: ' + f'{rules_data_dir!r}\n{files}' + ) if space_problems: - files = '\n'.join(sorted('"file://' + f + '"' for f in space_problems)) - msg += '\nRule filename cannot contain spaces: %(rules_data_dir)r\n%(files)s' % locals() + files = '\n'.join(sorted(f'"file://{f}"' for f in space_problems)) + msg += ( + '\nRule filename cannot contain spaces: ' + f'{rules_data_dir!r}\n{files}' + ) raise InvalidRule(msg) @@ -684,8 +734,8 @@ class BasicRule(object): # A license notice: this provides a strong confidence wrt detection is_license_notice = attr.ib(default=False, repr=False) - # A reference is for a mere short license reference such as its bare name or a - # URL that provides a weaker clue when detected + # A reference is for a mere short license reference such as its bare name or + # a URL that provides a weaker clue when detected is_license_reference = attr.ib(default=False, repr=False) # A tag is for a structured licensing tag such as a package manifest @@ -806,11 +856,8 @@ def setup(self): if expression is None: raise InvalidRule( - 'Invalid rule License expression parsed to empty: {license_expression!r} ' - 'for: file://{data_file}'.format( - license_expression=self.license_expression, - data_file=self.data_file, - ) + f'Invalid rule License expression parsed to empty: ' + f'{self.license_expression!r} for: file://{self.data_file}' ) self.license_expression = expression.render() @@ -818,8 +865,8 @@ def setup(self): def validate(self, licensing=None): """ - Validate this rule using the provided `licensing` and yield one error - message for each type of error detected. + Validate this rule using the provided ``licensing`` Licensing and yield + one error message for each type of error detected. """ is_false_positive = self.is_false_positive @@ -889,7 +936,7 @@ def validate(self, licensing=None): try: licensing.parse(license_expression, validate=True, simple=True) except InvalidRule as e: - yield 'Failed to parse and validate license_expression: {}'.format(str(e)) + yield f'Failed to parse and validate license_expression: {e}' def license_keys(self, unique=True): """ @@ -897,7 +944,10 @@ def license_keys(self, unique=True): """ if not self.license_expression: return [] - return self.licensing.license_keys(self.license_expression_object, unique=unique) + return self.licensing.license_keys( + self.license_expression_object, + unique=unique, + ) def same_licensing(self, other): """ @@ -905,7 +955,9 @@ def same_licensing(self, other): """ if self.license_expression and other.license_expression: return self.licensing.is_equivalent( - self.license_expression_object, other.license_expression_object) + self.license_expression_object, + other.license_expression_object, + ) def licensing_contains(self, other): """ @@ -913,7 +965,9 @@ def licensing_contains(self, other): """ if self.license_expression and other.license_expression: return self.licensing.contains( - self.license_expression_object, other.license_expression_object) + self.license_expression_object, + other.license_expression_object, + ) def spdx_license_expression(self, licensing=None): if not licensing: @@ -993,11 +1047,15 @@ def to_dict(self): def text(self): """ - Return the rule text loaded from its file. + Return the rule text loaded from its text file. """ if self.text_file and exists(self.text_file): # IMPORTANT: use the same process as query text loading for symmetry - numbered_lines = numbered_text_lines(self.text_file, demarkup=False, plain_text=True) + numbered_lines = numbered_text_lines( + self.text_file, + demarkup=False, + plain_text=True, + ) return ''.join(l for _, l in numbered_lines) # used for non-file backed rules @@ -1005,13 +1063,15 @@ def text(self): return self.stored_text else: - raise InvalidRule('Inconsistent rule text for: ' + - self.identifier + '\nfile://' + self.text_file) + raise InvalidRule( + f'Inconsistent rule text for: {self.identifier}\n' + f'file://{self.text_file}' + ) def check_is_list_of_strings(l): """ - Return True if l is a list of strings or an empty list, False otherwise + Return True if `l` is a list of strings or an empty list, False otherwise. """ if isinstance(l, list): if l: @@ -1022,8 +1082,8 @@ def check_is_list_of_strings(l): def as_int(num): """ - Convert num to int if num is not an int and this would not lead to - loss of information, e.g. when num is an int stored as a float type. + Convert ``num`` to int if ``num`` is not an int and this would not lead to + loss of information, e.g. when ``num`` is an int stored as a float type. """ if isinstance(num, str): num = float(num) @@ -1051,7 +1111,7 @@ def load_data(self): if not self.text_file: # for SPDX or tests only if not self.stored_text : - raise InvalidRule('Invalid rule without its corresponding text file: {}'.format(self)) + raise InvalidRule(f'Invalid rule without its corresponding text file: {self}') self.identifier = '_tst_' + str(len(self.stored_text)) else: self.identifier = file_name(self.text_file) @@ -1059,11 +1119,10 @@ def load_data(self): if self.data_file: try: self.load() - except Exception as e: + except Exception: data_file = self.data_file trace = traceback.format_exc() - message = 'While loading: file://{data_file}\n{trace}'.format(**locals()) - raise InvalidRule(message) + raise InvalidRule(f'While loading: file://{data_file}\n{trace}') def tokens(self): """ @@ -1202,26 +1261,26 @@ def load(self): return self - def compute_relevance(self): + def compute_relevance(self, _threshold=18.0): """ - Compute and set the `relevance` attribute for this rule. The - relevance is a float between 0 and 100 where 100 means highly - relevant and 0 means not relevant at all. + Compute and set the `relevance` attribute for this rule. The relevance + is a float between 0 and 100 where 100 means highly relevant and 0 means + not relevant at all. For instance a match to the "gpl" or the "cpol" words have a fairly low - relevance as they are a weak indication of an actual license and could be a - false positive and should therefore be assigned a low relevance. In contrast - a match to most or all of the apache-2.0 license text is highly relevant. The - Rule relevance is used as the basis to compute a match score. + relevance as they are a weak indication of an actual license and could + be a false positive and should therefore be assigned a low relevance. In + contrast a match to most or all of the apache-2.0 license text is highly + relevant. The Rule relevance is used as the basis to compute a match + score. The relevance is either pre-defined in the rule YAML data file with the "relevance" attribute or computed base on the rule length here using this approach: - - a false positive rule has a relevance of 100. - - a rule of length equal to or larger than a threshold has a 100 relevance - - a rule of length smaller than a threshold has a relevance of - 100/threshold, rounded down. + - false positive rule has 100 relevance. + - rule length equal or larger than threshold has 100 relevance + - rule length smaller than threshold has 100/threshold relevance rounded down. The current threshold is 18 words. """ @@ -1237,10 +1296,9 @@ def compute_relevance(self): # use the default max relevance of 100 self.relevance = 100 - threshold = 18.0 - relevance_of_one_word = round((1 / threshold) * 100, 2) + relevance_of_one_word = round((1 / _threshold) * 100, 2) length = self.length - if length >= threshold: + if length >= _threshold: # general case self.relevance = 100 else: @@ -1252,14 +1310,14 @@ def rule_dir(self): Return the directory of this rule. """ if not (self.text_file and self.data_file): - raise Exception('Cannot obtain rule directory for: {}'.format(repr(self))) + raise Exception(f'Cannot obtain rule directory for: {self!r}') return dirname(self.data_file) def rename_and_relocate(self, name_prefix): """ - Rename and relocate rule files to this new name using the ``name_prefix`` - prefix. The new name is guaranteed to be unique and not conflicting - with any existing name. + Generate a new rule name and relocate the rule files to this new name + using the ``name_prefix`` prefix. The new rule name is guaranteed to be + unique and not conflicting with any existing rule name. """ new_base_loc = find_rule_base_location( name_prefix=name_prefix, @@ -1275,9 +1333,13 @@ def rename_and_relocate(self, name_prefix): self.text_file = new_text_file -def compute_thresholds_occurences(minimum_coverage, length, high_length, - _MIN_MATCH_HIGH_LENGTH=MIN_MATCH_HIGH_LENGTH, - _MIN_MATCH_LENGTH=MIN_MATCH_LENGTH): +def compute_thresholds_occurences( + minimum_coverage, + length, + high_length, + _MIN_MATCH_HIGH_LENGTH=MIN_MATCH_HIGH_LENGTH, + _MIN_MATCH_LENGTH=MIN_MATCH_LENGTH, +): """ Compute and return thresholds considering the occurrence of all tokens. """ @@ -1314,9 +1376,14 @@ def compute_thresholds_occurences(minimum_coverage, length, high_length, return minimum_coverage, min_matched_length, min_high_matched_length -def compute_thresholds_unique(minimum_coverage, length, length_unique, high_length_unique, - _MIN_MATCH_HIGH_LENGTH=MIN_MATCH_HIGH_LENGTH, - _MIN_MATCH_LENGTH=MIN_MATCH_LENGTH): +def compute_thresholds_unique( + minimum_coverage, + length, + length_unique, + high_length_unique, + _MIN_MATCH_HIGH_LENGTH=MIN_MATCH_HIGH_LENGTH, + _MIN_MATCH_LENGTH=MIN_MATCH_LENGTH, +): """ Compute and set thresholds considering the occurrence of only unique tokens. """ @@ -1412,26 +1479,62 @@ def _print_rule_stats(): key=itemgetter(0))[:15]) -def update_ignorables(licensish, verbose=False, dump=True): +def update_ignorables(licensish, verbose=False): """ - Collect, update and save the ignorable_* attributes of a `licensish` Rule or - License object. + Update ignorables and return the ``licensish`` Rule or License using the + latest values detected in its text. + + Display progress messages if ``verbose`` is True. """ - location = licensish.text_file if verbose: - print('Processing:', 'file://' + location) + print(f'Processing:', 'file://{licensish.text_file}') - if not exists(location): + if not exists(licensish.text_file): return licensish - # collect and set ignorable copyrights, holders and authors + ignorables = get_ignorables(text_file=licensish.text_file, verbose=verbose) + set_ignorables(licensish, ignorables, verbose=verbose) + return licensish + + +def set_ignorables(licensish, ignorables, verbose=False): + """ + Update ``licensish`` Rule or License using the mapping of ``ignorables`` + attributes. + + Display progress messages if ``verbose`` is True. + """ + for key, value in ignorables.items(): + if verbose: + existing = getattr(licensish, key, None) + print(f'Updating ignorable: {key} from: {existing!r} to: {value!r}') + setattr(licensish, key, value) + return licensish + + +def get_ignorables(text_file, verbose=False): + """ + Return a mapping of ignorable clues lists found in a ``text_file`` for + copyrights, holders, authors, urls, emails. Do not include items with empty + values. + + Display progress messages if ``verbose`` is True. + """ from cluecode.copyrights import detect_copyrights + from cluecode.finder import find_urls + from cluecode.finder import find_emails + + # redundant clues found in a license or rule text + # collect and set ignorable copyrights, holders and authors copyrights = set() holders = set() authors = set() - for dtype, value, _start, _end in detect_copyrights(location): + for dtype, value, _start, _end in detect_copyrights(text_file): + if verbose: + print(f' Found {dtype}: {value}') + if dtype == 'copyrights': copyrights.add(value) elif dtype == 'holders': @@ -1439,31 +1542,38 @@ def update_ignorables(licensish, verbose=False, dump=True): elif dtype == 'authors': authors.add(value) - licensish.ignorable_copyrights = sorted(copyrights) - licensish.ignorable_holders = sorted(holders) - licensish.ignorable_authors = sorted(authors) - # collect and set ignorable emails and urls - from cluecode.finder import find_urls - from cluecode.finder import find_emails + urls = set(u for (u, _ln) in find_urls(text_file) if u) + if verbose: + print(f' Found urls: {urls}') - urls = set(u for (u, _ln) in find_urls(location) if u) - licensish.ignorable_urls = sorted(urls) + emails = set(e for (e, _ln) in find_emails(text_file) if e) + if verbose: + print(f' Found emails: {emails}') - emails = set(u for (u, _ln) in find_emails(location) if u) - licensish.ignorable_emails = sorted(emails) - if dump: - licensish.dump() - return licensish + ignorables = dict( + ignorable_copyrights=sorted(copyrights), + ignorable_holders=sorted(holders), + ignorable_authors=sorted(authors), + ignorable_urls=sorted(urls), + ignorable_emails=sorted(emails), + ) + + ignorables = {k: v for k, v in sorted(ignorables.items()) if v} + if verbose: + print(f' Found ignorables: {ignorables}') + return ignorables def find_rule_base_location(name_prefix, rules_directory=rules_data_dir): """ - Return a new, unique and non-existing base location with a file name but - without an extension suitable to create a new rule without overwriting any - existing rule. + Return a new, unique and non-existing base location in ``rules_directory`` + with a file name but without an extension suitable to create a new rule + without overwriting any existing rule. Use the ``name_prefix`` string as a + prefix for this name. """ - template = (name_prefix + template = ( + name_prefix .lower() .strip() .replace(' ', '_') diff --git a/tests/licensedcode/test_detection_validate.py b/tests/licensedcode/test_detection_validate.py index aa9764d489f..bf7157f9795 100644 --- a/tests/licensedcode/test_detection_validate.py +++ b/tests/licensedcode/test_detection_validate.py @@ -9,6 +9,7 @@ import os import unittest +from pprint import pprint import pytest import saneyaml @@ -65,8 +66,8 @@ def check_special_rule_can_be_detected(rule): # a clickable text_file path results = ( results, - 'file://{data_file}'.format(**locals()), - 'file://{text_file}'.format(**locals()), + f'file://{data_file}', + f'file://{rule.text_file}', ) # this assert will always fail and provide a more detailed failure trace assert not results @@ -74,7 +75,11 @@ def check_special_rule_can_be_detected(rule): def check_rule_or_license_can_be_self_detected_exactly(rule): idx = cache.get_index() - matches = idx.match(location=rule.text_file, _skip_hash_match=True, deadline=10) + matches = idx.match( + location=rule.text_file, + _skip_hash_match=True, + deadline=10, + ) expected = [rule.identifier, '100'] results = flatten((m.rule.identifier, str(int(m.coverage()))) for m in matches) @@ -92,99 +97,89 @@ def check_rule_or_license_can_be_self_detected_exactly(rule): failure_trace = ['======= TEST ===='] failure_trace.extend(results) failure_trace.extend(['', - 'file://{data_file}'.format(**locals()), - 'file://{text_file}'.format(**locals()), + f'file://{data_file}', + f'file://{text_file}', '======================', ]) for i, match in enumerate(matches): qtext, itext = get_texts(match) m_text_file = match.rule.text_file + if match.rule.is_from_license: m_data_file = m_text_file.replace('LICENSE', '.yml') else: m_data_file = match.rule.data_file failure_trace.extend(['', - '======= MATCH {} ===='.format(i), repr(match), - 'file://{m_data_file}'.format(**locals()), - 'file://{m_text_file}'.format(**locals()), + f'======= MATCH {i} ====', + repr(match), + f'file://{m_data_file}', + f'file://{m_text_file}', '======= Matched Query Text:', '', qtext, '' '======= Matched Rule Text:', '', itext ]) # this assert will always fail and provide a detailed failure trace - assert '\n'.join(expected) == '\n'.join(failure_trace) + assert '\n'.join(failure_trace) == '\n'.join(expected) -def check_ignorable_clues(rule, regen=False): +def check_ignorable_clues(licensish, regen=False, verbose=True): """ - Validate that all ignorable clues defined in a `rule` Rule object are - properly detected in that rule text file. + Validate that all current ignorable clues declared in a `licensish` License + or Rule object are properly detected in that rule text file. Optionally + regen the new_ignorables and updates the .yml files. """ - from itertools import chain - from scancode import api - - text_file = rule.text_file - - # scan clues - scan_data = {} - scan_data.update(api.get_copyrights(text_file, deadline=10)) - scan_data.update(api.get_urls(text_file, threshold=0)) - scan_data.update(api.get_emails(text_file, threshold=0)) - - results = {} - for what, detections in scan_data.items(): - # remove lines - for detected in detections: - detected.pop('start_line', None) - detected.pop('end_line', None) - - # remove keys and keep only values e.g. a list of detected copyrights, - # emails, etc - detections = sorted(set(chain(*(detected.values() for detected in detections)))) - results['ignorable_' + what] = detections - - results = dict([(k, v) for k, v in sorted(results.items()) if v]) + new_ignorables = models.get_ignorables( + text_file=licensish.text_file, + ) + if verbose: + print() + print('new_ignorables') + pprint(new_ignorables) if regen: - for k, v in results.items(): - setattr(rule, k, v) - rule.dump() + models.set_ignorables(licensish, new_ignorables , verbose=verbose) + licensish.dump() + + current = dict( + ignorable_copyrights=sorted(licensish.ignorable_copyrights or []), + ignorable_holders=sorted(licensish.ignorable_holders or []), + ignorable_authors=sorted(licensish.ignorable_authors or []), + ignorable_urls=sorted(licensish.ignorable_urls or []), + ignorable_emails=sorted(licensish.ignorable_emails or []), + ) - # collect ignorables - expected = dict([ - ('ignorable_copyrights', sorted(rule.ignorable_copyrights or [])), - ('ignorable_holders', sorted(rule.ignorable_holders or [])), - ('ignorable_authors', sorted(rule.ignorable_authors or [])), - ('ignorable_urls', sorted(rule.ignorable_urls or [])), - ('ignorable_emails', sorted(rule.ignorable_emails or [])), - ]) + current = dict([(k, v) for k, v in sorted(current.items()) if v]) - expected = dict([(k, v) for k, v in sorted(expected.items()) if v]) + if verbose: + print('current') + pprint(current) try: - assert results == expected + assert current == new_ignorables except: - # On failure, we compare againto get additional failure details such as - # a clickable text_file path + # On failure, we compare again to get additional failure details such as + # a clickable text_file path. - data_file = rule.data_file + data_file = licensish.data_file if not data_file: - data_file = text_file.replace('.LICENSE', '.yml') - results['files'] = [ - 'file://{data_file}'.format(**locals()), - 'file://{text_file}'.format(**locals()), + data_file = licensish.text_file.replace('.LICENSE', '.yml') + + new_ignorables['files'] = [ + f'file://{data_file}', + f'file://{licensish.text_file}', ] - # this assert will always fail and provide a more detailed failure trace - assert saneyaml.dump(results) == saneyaml.dump(expected) + + # This assert will always fail and provide a more detailed failure trace + assert saneyaml.dump(new_ignorables) == saneyaml.dump(current) def build_validation_tests(rules, test_classes): """ - Dynamically build an individual test method for each rule texts in a `rules` - iterable of Rule objects then attach the test method to the `class_basic` and `class_extended` test - classes for basic and extended respectively. + Dynamically build an individual test method for each rule texts in a + ``rules`` iterable of Rule objects then attach the test methods to the + ``test_classes`` lits of test classes. """ # TODO: add test to detect the standard notice?? @@ -203,8 +198,14 @@ def build_validation_tests(rules, test_classes): for chunk, cls in zip(chunks, test_classes): for rule in chunk: if rule.text_file and os.path.exists(rule.text_file): - test_name = ('test_validate_detect_' + text.python_safe_name(rule.identifier)) - test_method = make_validation_test(rule=rule, test_name=test_name) + test_name = ( + 'test_validate_detect_' + + text.python_safe_name(rule.identifier) + ) + test_method = make_validation_test( + rule=rule, + test_name=test_name, + ) setattr(cls, test_name, test_method) From 100424354388f806224569ad53eaaf4ee89bda04 Mon Sep 17 00:00:00 2001 From: Sarita Singh Date: Tue, 12 Jan 2021 18:36:50 +0530 Subject: [PATCH 459/709] Add anti-capitalist software license v-1.4 Add anti-capitalist license rule1, rule2, rule3 and rule4 These rules are the anti-capitalist software license v.1.0, v.1.1, v.1.2 and v.1.3 text. Since these versions have been expired so added in rule for the current version i.e v.1.4. Signed-off-by: Sarita Singh --- .../data/licenses/anti-capitalist-1.4.LICENSE | 19 +++++++++++++++++++ .../data/licenses/anti-capitalist-1.4.yml | 7 +++++++ .../data/rules/anti_capitalist1.RULE | 12 ++++++++++++ .../data/rules/anti_capitalist1.yml | 2 ++ .../data/rules/anti_capitalist2.RULE | 12 ++++++++++++ .../data/rules/anti_capitalist2.yml | 2 ++ .../data/rules/anti_capitalist3.RULE | 13 +++++++++++++ .../data/rules/anti_capitalist3.yml | 2 ++ .../data/rules/anti_capitalist4.RULE | 18 ++++++++++++++++++ .../data/rules/anti_capitalist4.yml | 2 ++ 10 files changed, 89 insertions(+) create mode 100644 src/licensedcode/data/licenses/anti-capitalist-1.4.LICENSE create mode 100644 src/licensedcode/data/licenses/anti-capitalist-1.4.yml create mode 100644 src/licensedcode/data/rules/anti_capitalist1.RULE create mode 100644 src/licensedcode/data/rules/anti_capitalist1.yml create mode 100644 src/licensedcode/data/rules/anti_capitalist2.RULE create mode 100644 src/licensedcode/data/rules/anti_capitalist2.yml create mode 100644 src/licensedcode/data/rules/anti_capitalist3.RULE create mode 100644 src/licensedcode/data/rules/anti_capitalist3.yml create mode 100644 src/licensedcode/data/rules/anti_capitalist4.RULE create mode 100644 src/licensedcode/data/rules/anti_capitalist4.yml diff --git a/src/licensedcode/data/licenses/anti-capitalist-1.4.LICENSE b/src/licensedcode/data/licenses/anti-capitalist-1.4.LICENSE new file mode 100644 index 00000000000..c035be80cde --- /dev/null +++ b/src/licensedcode/data/licenses/anti-capitalist-1.4.LICENSE @@ -0,0 +1,19 @@ +ANTI-CAPITALIST SOFTWARE LICENSE (v 1.4) + +This is anti-capitalist software, released for free use by individuals and organizations that do not operate by capitalist principles. + +Permission is hereby granted, free of charge, to any person or organization (the "User") obtaining a copy of this software and associated documentation files (the "Software"), to use, copy, modify, merge, distribute, and/or sell copies of the Software, subject to the following conditions: + +1. The above copyright notice and this permission notice shall be included in all copies or modified versions of the Software. + +2. The User is one of the following: +a. An individual person, laboring for themselves +b. A non-profit organization +c. An educational institution +d. An organization that seeks shared profit for all of its members, and allows non-members to set the cost of their labor + +3. If the User is an organization with owners, then all owners are workers and all workers are owners with equal equity and/or equal vote. + +4. If the User is an organization, then the User is not law enforcement or military, or working for or under either. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/src/licensedcode/data/licenses/anti-capitalist-1.4.yml b/src/licensedcode/data/licenses/anti-capitalist-1.4.yml new file mode 100644 index 00000000000..c5a521151c1 --- /dev/null +++ b/src/licensedcode/data/licenses/anti-capitalist-1.4.yml @@ -0,0 +1,7 @@ +key: anti-capitalist-1.4 +short_name: ACSL v. 1.4 +name: ANTI-CAPITALIST SOFTWARE LICENSE (v 1.4) +category: Free Restricted +owner: Everest Pipkin and Ramsey Nasser +homepage_url: https://anticapitalist.software/ +spdx_license_key: LicenseRef-scancode-anti-capitalist-1.4 \ No newline at end of file diff --git a/src/licensedcode/data/rules/anti_capitalist1.RULE b/src/licensedcode/data/rules/anti_capitalist1.RULE new file mode 100644 index 00000000000..191b982ab7b --- /dev/null +++ b/src/licensedcode/data/rules/anti_capitalist1.RULE @@ -0,0 +1,12 @@ +This is anti-capitalist software, released for free use by individuals and organizations that do not operate by capitalist principles. + +Permission is hereby granted, free of charge, to any person or organization (the "User") obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +1. The above copyright notice and this permission notice shall be included in all copies of the Software. +2. The User is one of the following: + a. An individual person + b. An organization of people that does not seek profit + c. An organization of people that seeks shared profit for all its members +3. If the User is an organization with owners, then all owners are workers and all workers are owners. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/src/licensedcode/data/rules/anti_capitalist1.yml b/src/licensedcode/data/rules/anti_capitalist1.yml new file mode 100644 index 00000000000..8c49367b561 --- /dev/null +++ b/src/licensedcode/data/rules/anti_capitalist1.yml @@ -0,0 +1,2 @@ +license_expression: anti-capitalist-1.4 +is_license_text: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/anti_capitalist2.RULE b/src/licensedcode/data/rules/anti_capitalist2.RULE new file mode 100644 index 00000000000..fdb0e7c9b05 --- /dev/null +++ b/src/licensedcode/data/rules/anti_capitalist2.RULE @@ -0,0 +1,12 @@ +This is anti-capitalist software, released for free use by individuals and organizations that do not operate by capitalist principles. + +Permission is hereby granted, free of charge, to any person or organization (the "User") obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +1. The above copyright notice and this permission notice shall be included in all copies of the Software. +2. The User is one of the following: + a. An individual person + b. An organization of people that does not seek profit + c. An organization of people that seeks shared profit for all its members and does not exploit the labor of non-members +3. If the User is an organization with owners, then all owners are workers and all workers are owners with equal share. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/src/licensedcode/data/rules/anti_capitalist2.yml b/src/licensedcode/data/rules/anti_capitalist2.yml new file mode 100644 index 00000000000..c498255135b --- /dev/null +++ b/src/licensedcode/data/rules/anti_capitalist2.yml @@ -0,0 +1,2 @@ +license_expression: anti-capitalist-1.4 +is_license_text: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/anti_capitalist3.RULE b/src/licensedcode/data/rules/anti_capitalist3.RULE new file mode 100644 index 00000000000..a77af75abbe --- /dev/null +++ b/src/licensedcode/data/rules/anti_capitalist3.RULE @@ -0,0 +1,13 @@ +This is anti-capitalist software, released for free use by individuals and organizations that do not operate by capitalist principles. + +Permission is hereby granted, free of charge, to any person or organization (the "User") obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +1. The above copyright notice and this permission notice shall be included in all copies of the Software. +2. The User is one of the following: + a. An individual person + b. An organization of people that does not seek profit + c. An organization of people that seeks shared profit for all its members and does not exploit the labor of non-members +3. If the User is an organization with owners, then all owners are workers and all workers are owners with equal share. +4. If the User is an organization, then the User is not law enforcement or military, or working under either. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/src/licensedcode/data/rules/anti_capitalist3.yml b/src/licensedcode/data/rules/anti_capitalist3.yml new file mode 100644 index 00000000000..f6a20c86204 --- /dev/null +++ b/src/licensedcode/data/rules/anti_capitalist3.yml @@ -0,0 +1,2 @@ +license_expression: anti-capitalist-1.4 +is_license_text: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/anti_capitalist4.RULE b/src/licensedcode/data/rules/anti_capitalist4.RULE new file mode 100644 index 00000000000..da11b374b26 --- /dev/null +++ b/src/licensedcode/data/rules/anti_capitalist4.RULE @@ -0,0 +1,18 @@ +ANTI-CAPITALIST SOFTWARE LICENSE (v 1.3) + +This is anti-capitalist software, released for free use by individuals and organizations that do not operate by capitalist principles. + +Permission is hereby granted, free of charge, to any person or organization (the "User") obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software for any purpose, including the rights to use, copy, modify, merge, publish, distribute, and/or sell copies of the Software, subject to the following conditions: + +1. The above copyright notice and this permission notice shall be included in all copies or modified versions of the Software. + +2. The User is one of the following: + a. An individual person, working for themselves + b. An non-profit organization + c. An organization that seeks shared profit for all of its members and allows non-members to set the cost of their labor + +3. If the User is an organization with owners, then all owners are workers and all workers are owners with equal equity and/or equal vote. + +4. If the User is an organization, then the User is not law enforcement or military, or working under either. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/src/licensedcode/data/rules/anti_capitalist4.yml b/src/licensedcode/data/rules/anti_capitalist4.yml new file mode 100644 index 00000000000..8c49367b561 --- /dev/null +++ b/src/licensedcode/data/rules/anti_capitalist4.yml @@ -0,0 +1,2 @@ +license_expression: anti-capitalist-1.4 +is_license_text: yes \ No newline at end of file From 7c510732bc720f41a594c8ad6ea37e8c2dbb6502 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 4 Jun 2021 08:52:23 +0200 Subject: [PATCH 460/709] Revert to force reading data files as UTF-8 Otherwise this fails on some OSses Signed-off-by: Philippe Ombredanne --- src/licensedcode/models.py | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/licensedcode/models.py b/src/licensedcode/models.py index 1bf181a00ca..07172341198 100644 --- a/src/licensedcode/models.py +++ b/src/licensedcode/models.py @@ -237,14 +237,15 @@ def dump(self): - .LICENSE: the license text """ - def write(location, _string): - with open(location, 'w') as of: - of.write(_string) - - write(self.data_file, saneyaml.dump(self.to_dict(), indent=4)) + def write(location, byte_string): + # we write as binary because rules and licenses texts and data are UTF-8-encoded bytes + with io.open(location, 'wb') as of: + of.write(byte_string) + as_yaml = saneyaml.dump(self.to_dict(), indent=4, encoding='utf-8') + write(self.data_file, as_yaml) if self.text: - write(self.text_file, self.text) + write(self.text_file, self.text.encode('utf-8')) def load(self): """ @@ -253,7 +254,7 @@ def load(self): Unknown fields are ignored and not bound to the License object. """ try: - with open(self.data_file) as f: + with io.open(self.data_file, encoding='utf-8') as f: data = saneyaml.load(f.read()) for k, v in data.items(): @@ -282,9 +283,11 @@ def load(self): def _read_text(self, location): if not exists(location): - return '' - with open(location) as f: - return f.read() + text = '' + else: + with io.open(location, encoding='utf-8') as f: + text = f.read() + return text def spdx_keys(self): """ From 6035d257bb83b882dc140266dbd9d6e2b7bf05e4 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 4 Jun 2021 08:52:50 +0200 Subject: [PATCH 461/709] Format and use f-strings Signed-off-by: Philippe Ombredanne --- tests/licensedcode/licensedcode_test_utils.py | 34 +++++++++---------- tests/licensedcode/test_detection_validate.py | 18 ++++------ 2 files changed, 24 insertions(+), 28 deletions(-) diff --git a/tests/licensedcode/licensedcode_test_utils.py b/tests/licensedcode/licensedcode_test_utils.py index a8d7165274f..5df37a15bf8 100644 --- a/tests/licensedcode/licensedcode_test_utils.py +++ b/tests/licensedcode/licensedcode_test_utils.py @@ -64,7 +64,7 @@ def __attrs_post_init__(self, *args, **kwargs): with io.open(self.data_file, encoding='utf-8') as df: data = saneyaml.load(df.read()) or {} except Exception as e: - raise Exception('Failed to read:', 'file://' + self.data_file, e) + raise Exception(f'Failed to read: file://{self.data_file}', e) self.license_expressions = data.pop('license_expressions', []) self.notes = data.pop('notes', None) @@ -83,14 +83,14 @@ def __attrs_post_init__(self, *args, **kwargs): except: raise Exception( 'Unable to parse License rule expression: ' - +repr(exp) + ' for: file://' + self.data_file + - '\n' + traceback.format_exc() - ) + f'{exp!r} for: file://{self.data_file}\n' + + traceback.format_exc() + ) if expression is None: raise Exception( 'Unable to parse License rule expression: ' - +repr(exp) + ' for:' + repr(self.data_file)) - + f'{exp!r} for: file://{self.data_file}' + ) new_exp = expression.render() self.license_expressions[i] = new_exp @@ -98,7 +98,8 @@ def __attrs_post_init__(self, *args, **kwargs): if not self.notes: raise Exception( 'A license test without expected license_expressions should ' - 'have explanatory notes: for: file://' + self.data_file) + f'have explanatory notes: for: file://{self.data_file}' + ) def to_dict(self): dct = {} @@ -165,8 +166,9 @@ def build_tests(test_dir, clazz, regen=False): # avoid duplicated test method if hasattr(clazz, test_name): - msg = ('Duplicated test method name: {test_name}: file://{test_file}' - ).format(**locals()) + msg = ( + f'Duplicated test method name: {test_name}: file://{test_file}' + ) raise Exception(msg) # attach that method to our license_test class @@ -219,18 +221,17 @@ def closure_test_function(*args, **kwargs): results_failure_trace.extend(['', '======= MATCH ====', repr(match), '======= Matched Query Text for:', - 'file://{test_file}'.format(**locals()) + f'file://{test_file}' ]) if test_data_file: - results_failure_trace.append( - 'file://{test_data_file}'.format(**locals())) + results_failure_trace.append(f'file://{test_data_file}') results_failure_trace.append('') results_failure_trace.append(qtext) results_failure_trace.extend(['', '======= Matched Rule Text for:', - 'file://{rule_text_file}'.format(**locals()), - 'file://{rule_data_file}'.format(**locals()), + f'file://{rule_text_file}', + f'file://{rule_data_file}', '', itext, ]) @@ -238,11 +239,10 @@ def closure_test_function(*args, **kwargs): results_failure_trace.extend(['', '======= NO MATCH ====', '======= Not Matched Query Text for:', - 'file://{test_file}'.format(**locals()) + f'file://{test_file}' ]) if test_data_file: - results_failure_trace.append( - 'file://{test_data_file}'.format(**locals())) + results_failure_trace.append(f'file://{test_data_file}') # this assert will always fail and provide a detailed failure trace assert '\n'.join(results_failure_trace) == '\n'.join(expected) diff --git a/tests/licensedcode/test_detection_validate.py b/tests/licensedcode/test_detection_validate.py index bf7157f9795..59651046fc4 100644 --- a/tests/licensedcode/test_detection_validate.py +++ b/tests/licensedcode/test_detection_validate.py @@ -39,7 +39,7 @@ def make_validation_test(rule, test_name): if rule.is_false_positive: def closure_test_function(*args, **kwargs): - check_special_rule_can_be_detected(rule) + check_special_rule_cannot_be_detected(rule) else: @@ -53,24 +53,18 @@ def closure_test_function(*args, **kwargs): return closure_test_function -def check_special_rule_can_be_detected(rule): +def check_special_rule_cannot_be_detected(rule): idx = cache.get_index() results = idx.match(location=rule.text_file) - try: - assert not results - except: + if results: data_file = rule.data_file if not data_file: data_file = rule.text_file.replace('.LICENSE', '.yml') # On failure, we compare againto get additional failure details such as # a clickable text_file path - results = ( - results, - f'file://{data_file}', - f'file://{rule.text_file}', - ) + results = (results, f'file://{data_file}', f'file://{rule.text_file}') # this assert will always fail and provide a more detailed failure trace - assert not results + assert results == [] def check_rule_or_license_can_be_self_detected_exactly(rule): @@ -240,6 +234,7 @@ class TestValidateLicenseExtended5(unittest.TestCase): _rules = sorted(models.get_rules(), key=lambda r: r.identifier) + build_validation_tests( _rules, test_classes=[ @@ -251,4 +246,5 @@ class TestValidateLicenseExtended5(unittest.TestCase): TestValidateLicenseExtended5, ] ) + del _rules From 9f637e4794b3dc45002cfee796c477a4e56d7d16 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 4 Jun 2021 10:39:34 +0200 Subject: [PATCH 462/709] Repair error messages in validation Signed-off-by: Philippe Ombredanne --- src/licensedcode/models.py | 117 ++++++++++-------- tests/licensedcode/test_detection_validate.py | 2 +- tests/licensedcode/test_models.py | 24 ++-- 3 files changed, 82 insertions(+), 61 deletions(-) diff --git a/src/licensedcode/models.py b/src/licensedcode/models.py index 07172341198..5317cc3268c 100644 --- a/src/licensedcode/models.py +++ b/src/licensedcode/models.py @@ -147,8 +147,8 @@ def __attrs_post_init__(self, *args, **kwargs): self.load() def set_file_paths(self): - self.data_file = join(self.src_dir, self.key + '.yml') - self.text_file = join(self.src_dir, self.key + '.LICENSE') + self.data_file = join(self.src_dir, f'{self.key}.yml') + self.text_file = join(self.src_dir, f'{self.key}.LICENSE') def relocate(self, target_dir, new_key=None): """ @@ -263,9 +263,9 @@ def load(self): if k == 'key': assert self.key == v, ( - 'The license "key" attribute in the .yml file MUST ' - 'be the same as the base name of this license .LICENSE ' - 'and .yml data files license files. ' + 'The license "key" attribute in the .yml file MUST ' + + 'be the same as the base name of this license .LICENSE ' + + 'and .yml data files license files. ' + f'Yet file name = {self.key} and license key = {v}' ) @@ -336,7 +336,7 @@ def validate(licenses, verbose=False, no_dupe_urls=False): if lic.category and lic.category not in CATEGORIES: cats = '\n'.join(sorted(CATEGORIES)) error( - f'Unknown license category: {lic.category}.\n' + f'Unknown license category: {lic.category}.\n' + f'Use one of these valid categories:\n{cats}' ) if not lic.owner: @@ -400,7 +400,7 @@ def validate(licenses, verbose=False, no_dupe_urls=False): if multiple_spdx_keys_used: for k, lkeys in multiple_spdx_keys_used.items(): errors['GLOBAL'].append( - f'SPDX key: {k} used in multiple licenses: ' + f'SPDX key: {k} used in multiple licenses: ' + ', '.join(sorted(lkeys))) # global text dedupe @@ -408,7 +408,7 @@ def validate(licenses, verbose=False, no_dupe_urls=False): if multiple_texts: for k, msgs in multiple_texts.items(): errors['GLOBAL'].append( - 'Duplicate texts in multiple licenses:' + 'Duplicate texts in multiple licenses: ' + ', '.join(sorted(msgs)) ) @@ -417,7 +417,7 @@ def validate(licenses, verbose=False, no_dupe_urls=False): if len(licenses) == 1: continue errors['GLOBAL'].append( - f'Duplicate short name: {short_name} in licenses:' + f'Duplicate short name: {short_name} in licenses: ' + ', '.join(l.key for l in licenses) ) @@ -426,7 +426,7 @@ def validate(licenses, verbose=False, no_dupe_urls=False): if len(licenses) == 1: continue errors['GLOBAL'].append( - f'Duplicate name: {name} in licenses:' + f'Duplicate name: {name} in licenses: ' + ', '.join(l.key for l in licenses) ) @@ -484,7 +484,7 @@ def load_licenses(licenses_data_dir=licenses_data_dir , with_deprecated=False): dangling = all_files.difference(used_files) if dangling: msg = ( - f'Some License files are orphaned in "{licenses_data_dir}".\n' + f'Some License files are orphaned in {licenses_data_dir!r}.\n' + '\n'.join(f'file://{f}' for f in sorted(dangling)) ) raise Exception(msg) @@ -548,7 +548,7 @@ def validate_rules(rules, licenses_by_key, with_text=False): message.append('') message.append(msg) for rule in rules: - message.append(' ' + repr(rule)) + message.append(f' {rule!r}') if rule.text_file: message.append(f' file://{rule.text_file}') if rule.data_file: @@ -640,7 +640,7 @@ def load_rules(rules_data_dir=rules_data_dir): base_name = file_base_name(data_file) if ' ' in base_name: space_problems.append(data_file) - rule_file = join(rules_data_dir, base_name + '.RULE') + rule_file = join(rules_data_dir, f'{base_name}.RULE') try: rule = Rule(data_file=data_file, text_file=rule_file) yield rule @@ -847,14 +847,11 @@ def setup(self): try: expression = self.licensing.parse(self.license_expression) except: + exp = self.license_expression + trace = traceback.format_exc() raise InvalidRule( - 'Unable to parse rule License expression: {license_expression!r} ' - 'for: file://{data_file}' - '\n{trace}'.format( - license_expression=self.license_expression, - data_file=self.data_file, - trace=traceback.format_exc(), - ) + f'Unable to parse rule License expression: {exp!r} ' + f'for: file://{self.data_file}\n{trace}' ) if expression is None: @@ -1114,7 +1111,8 @@ def load_data(self): if not self.text_file: # for SPDX or tests only if not self.stored_text : - raise InvalidRule(f'Invalid rule without its corresponding text file: {self}') + raise InvalidRule( + f'Invalid rule without its corresponding text file: {self}') self.identifier = '_tst_' + str(len(self.stored_text)) else: self.identifier = file_name(self.text_file) @@ -1139,7 +1137,10 @@ def tokens(self): # We tag this rule as being a bare URL if it starts with a scheme and is # on one line: this is used to determine a matching approach - if text.startswith(('http://', 'https://', 'ftp://')) and '\n' not in text[:1000]: + if ( + text.startswith(('http://', 'https://', 'ftp://')) + and '\n' not in text[:1000] + ): self.minimum_coverage = 100 for token in index_tokenizer(self.text()): @@ -1152,23 +1153,27 @@ def tokens(self): def compute_thresholds(self, small_rule=SMALL_RULE): """ Compute and set thresholds either considering the occurrence of all - tokens or the occurance of unique tokens. + tokens or the occurence of unique tokens. """ - minimum_coverage, self.min_matched_length, self.min_high_matched_length = ( + min_cov, self.min_matched_length, self.min_high_matched_length = ( compute_thresholds_occurences( self.minimum_coverage, self.length, - self.high_length)) + self.high_length, + ) + ) if not self.has_stored_minimum_coverage: - self.minimum_coverage = minimum_coverage + self.minimum_coverage = min_cov self._minimum_containment = self.minimum_coverage / 100 self.min_matched_length_unique, self.min_high_matched_length_unique = ( - compute_thresholds_unique( - self.minimum_coverage, - self.length, - self.length_unique, self.high_length_unique)) + compute_thresholds_unique( + self.minimum_coverage, + self.length, + self.length_unique, self.high_length_unique, + ) + ) self.is_small = self.length < small_rule @@ -1184,7 +1189,8 @@ def dump(self): return def write(location, byte_string): - # we write as binary because rules and licenses texts and data are UTF-8-encoded bytes + # we write as binary because rules and licenses texts and data are + # UTF-8-encoded bytes with io.open(location, 'wb') as of: of.write(byte_string) @@ -1204,7 +1210,7 @@ def load(self): data = saneyaml.load(f.read()) except Exception as e: print('#############################') - print('INVALID LICENSE RULE FILE:', 'file://' + self.data_file) + print('INVALID LICENSE RULE FILE:', f'file://{self.data_file}') print('#############################') print(e) print('#############################') @@ -1283,7 +1289,8 @@ def compute_relevance(self, _threshold=18.0): - false positive rule has 100 relevance. - rule length equal or larger than threshold has 100 relevance - - rule length smaller than threshold has 100/threshold relevance rounded down. + - rule length smaller than threshold has 100/threshold relevance rounded + down. The current threshold is 18 words. """ @@ -1327,11 +1334,11 @@ def rename_and_relocate(self, name_prefix): rules_directory=self.rule_dir() ) - new_data_file = new_base_loc + '.yml' + new_data_file = f'{new_base_loc}.yml' shutil.move(self.data_file, new_data_file) self.data_file = new_data_file - new_text_file = new_base_loc + '.RULE' + new_text_file = f'{new_base_loc}.RULE' shutil.move(self.text_file, new_text_file) self.text_file = new_text_file @@ -1435,20 +1442,22 @@ class SpdxRule(Rule): """ def __attrs_post_init__(self, *args, **kwargs): - self.identifier = 'spdx-license-identifier: ' + self.license_expression + self.identifier = f'spdx-license-identifier: {self.license_expression}' expression = None try: expression = self.licensing.parse(self.license_expression) except: raise InvalidRule( - 'Unable to parse License rule expression: ' + - repr(self.license_expression) + ' for: SPDX rule:' + - self.stored_text + - '\n' + traceback.format_exc()) + 'Unable to parse License rule expression: ' + f'{self.license_expression!r} for: SPDX rule: ' + f'{self.stored_text}\n' + traceback.format_exc() + ) + if expression is None: raise InvalidRule( 'Unable to parse License rule expression: ' - +repr(self.license_expression) + ' for:' + repr(self.data_file)) + f'{self.license_expression!r} for: {self.data_file!r}' + ) self.license_expression = expression.render() self.license_expression_object = expression @@ -1473,13 +1482,19 @@ def _print_rule_stats(): rules = idx.rules_by_rid sizes = Counter(r.length for r in rules) print('Top 15 lengths: ', sizes.most_common(15)) - print('15 smallest lengths: ', sorted(sizes.items(), - key=itemgetter(0))[:15]) + print( + '15 smallest lengths: ', + sorted(sizes.items(), + key=itemgetter(0))[:15], + ) high_sizes = Counter(r.high_length for r in rules) print('Top 15 high lengths: ', high_sizes.most_common(15)) - print('15 smallest high lengths: ', sorted(high_sizes.items(), - key=itemgetter(0))[:15]) + print( + '15 smallest high lengths: ', + sorted(high_sizes.items(), + key=itemgetter(0))[:15], + ) def update_ignorables(licensish, verbose=False): @@ -1491,7 +1506,7 @@ def update_ignorables(licensish, verbose=False): """ if verbose: - print(f'Processing:', 'file://{licensish.text_file}') + print(f'Processing: file://{licensish.text_file}') if not exists(licensish.text_file): return licensish @@ -1575,7 +1590,8 @@ def find_rule_base_location(name_prefix, rules_directory=rules_data_dir): without overwriting any existing rule. Use the ``name_prefix`` string as a prefix for this name. """ - template = ( + + cleaned = ( name_prefix .lower() .strip() @@ -1583,12 +1599,13 @@ def find_rule_base_location(name_prefix, rules_directory=rules_data_dir): .replace('(', '') .replace(')', '') .strip('_-') - ) + '_{}' + ) + template = cleaned + '_{idx}' idx = 1 while True: - base_name = template.format(idx) + base_name = template.format(idx=idx) base_loc = join(rules_directory, base_name) - if not exists(base_loc + '.RULE'): + if not exists(f'{base_loc}.RULE'): return base_loc idx += 1 diff --git a/tests/licensedcode/test_detection_validate.py b/tests/licensedcode/test_detection_validate.py index 59651046fc4..97c12c50ed2 100644 --- a/tests/licensedcode/test_detection_validate.py +++ b/tests/licensedcode/test_detection_validate.py @@ -118,7 +118,7 @@ def check_rule_or_license_can_be_self_detected_exactly(rule): assert '\n'.join(failure_trace) == '\n'.join(expected) -def check_ignorable_clues(licensish, regen=False, verbose=True): +def check_ignorable_clues(licensish, regen=False, verbose=False): """ Validate that all current ignorable clues declared in a `licensish` License or Rule object are properly detected in that rule text file. Optionally diff --git a/tests/licensedcode/test_models.py b/tests/licensedcode/test_models.py index da4463b073b..4f88d73494a 100644 --- a/tests/licensedcode/test_models.py +++ b/tests/licensedcode/test_models.py @@ -103,7 +103,9 @@ def test_build_rules_from_licenses(self): def test_validate_license_library(self): errors, warnings, infos = models.License.validate( - cache.get_licenses_db(), verbose=True) + cache.get_licenses_db(), + verbose=False, + ) assert errors == {} assert warnings == {} assert infos @@ -112,13 +114,16 @@ def test_validate_license_library_can_return_errors(self): test_dir = self.get_test_loc('models/validate') lics = models.load_licenses(test_dir) errors, warnings, infos = models.License.validate( - lics, no_dupe_urls=True, verbose=True) + lics, + no_dupe_urls=True, + verbose=False, + ) expected_errors = { 'GLOBAL': [ - 'Duplicate texts in multiple licenses:apache-2.0: TEXT, bsd-ack-carrot2: TEXT', - 'Duplicate short name:GPL 1.0 in licenses:gpl-1.0-plus, gpl-1.0', - 'Duplicate name:GNU General Public License 1.0 in licenses:gpl-1.0-plus, gpl-1.0'], + 'Duplicate texts in multiple licenses: apache-2.0: TEXT, bsd-ack-carrot2: TEXT', + 'Duplicate short name: GPL 1.0 in licenses: gpl-1.0-plus, gpl-1.0', + 'Duplicate name: GNU General Public License 1.0 in licenses: gpl-1.0-plus, gpl-1.0'], 'bsd-ack-carrot2': [ 'No short name', 'No name', @@ -162,7 +167,7 @@ def test_load_licenses_fails_if_directory_contains_orphaned_files(self): list(models.load_licenses(test_dir)) self.fail('Exception not raised') except Exception as e: - assert 'Some License data or text files are orphaned' in str(e) + assert 'Some License files are orphaned in' in str(e) class TestRule(FileBasedTesting): @@ -200,9 +205,9 @@ def test_rules_types_has_only_boolean_values(self): rule_consitency_errors = [] for r in rules: - list_rule_types = [r.is_license_text, r.is_license_notice, + list_rule_types = [r.is_license_text, r.is_license_notice, r.is_license_tag, r.is_license_reference] - + if any(type(rule_type) != bool for rule_type in list_rule_types): rule_consitency_errors.append((r.data_file, r.text_file)) @@ -213,7 +218,7 @@ def test_rules_have_only_one_rule_type(self): rule_consitency_errors = [] for r in rules: - list_rule_types = [r.is_license_text, r.is_license_notice, + list_rule_types = [r.is_license_text, r.is_license_notice, r.is_license_tag, r.is_license_reference] if sum(list_rule_types) > 1: @@ -317,7 +322,6 @@ def test_compute_thresholds_occurences(self): expected = expected_min_matched_length_unique, expected_min_high_matched_length_unique assert results == expected - def test_Thresholds(self): r1_text = 'licensed under the GPL, licensed under the GPL' r1 = models.Rule(text_file='r1', license_expression='apache-1.1', stored_text=r1_text) From 34d0e41d4378154869df1157ff715355d3ee7dae Mon Sep 17 00:00:00 2001 From: Jesse Tan Date: Fri, 4 Jun 2021 22:15:50 +0200 Subject: [PATCH 463/709] Correctly highlight multiline console input, even without PS2 prompt (#1833) --- pygments/lexers/shell.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index 5539e812097..099782a0f90 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -192,10 +192,13 @@ def get_tokens_unprocessed(self, text): [(0, Generic.Prompt, m.group(1))])) curcode += m.group(2) backslash_continuation = curcode.endswith('\\\n') - elif line.startswith(self._ps2) and backslash_continuation: - insertions.append((len(curcode), - [(0, Generic.Prompt, line[:len(self._ps2)])])) - curcode += line[len(self._ps2):] + elif backslash_continuation: + if line.startswith(self._ps2): + insertions.append((len(curcode), + [(0, Generic.Prompt, line[:len(self._ps2)])])) + curcode += line[len(self._ps2):] + else: + curcode += line backslash_continuation = curcode.endswith('\\\n') else: if insertions: From dcd6175f20f2ef6c9960349f6187d77b3168a627 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sun, 6 Jun 2021 08:41:28 +0200 Subject: [PATCH 464/709] Add CHANGELOG entry for extra data #1532 Signed-off-by: Philippe Ombredanne --- CHANGELOG.rst | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 55c10bfb210..5cc216e83fe 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,8 +1,8 @@ Changelog ========= -v21.x.x (next) --------------- +v21.x.x (next, future) +----------------------- Breaking API changes: ~~~~~~~~~~~~~~~~~~~~~ @@ -24,7 +24,7 @@ Breaking API changes: multiple manifests for a single package instance. -v21.6.2 +v21.6.6 -------- Breaking API changes: @@ -36,6 +36,7 @@ Breaking API changes: has been removed. Use the PYTHON_EXECUTABLE enviroment variable to point to alternative non-default Python executable and this on all OSes. + Security updates: ~~~~~~~~~~~~~~~~~ @@ -47,7 +48,8 @@ Security updates: - pkg:pypi/lxml: (low severity, likely no impact) CVE-2021-28957 - pkg:pypi/nltk: (low severity, likely no impact) CVE-2019-14751 - pkg:pypi/jinja2: (low severity, likely no impact) CVE-2020-28493, CVE-2019-10906 - - pkg:pypi/pycryptodome: (high severity) CVE-2018-15560 (dropped since no longer used) + - pkg:pypi/pycryptodome: (high severity) CVE-2018-15560 (dropped since no + longer used by pdfminer) Ouputs: @@ -55,6 +57,9 @@ Ouputs: - Add new YAML-formatted output. This is exactly the same data structure as for the JSON output + - The JSON output packages section has a new "extra_data" attributes which is + a JSON object that can contain arbitrary data that are specific to a package + type. License scanning: From 90f6f65bbbf3423f92ef98bd5d504e10b7523428 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Mon, 7 Jun 2021 09:36:32 +0200 Subject: [PATCH 465/709] Remove ignore_unknown arg from Package.create() Also remove the exclude_properties arg. Package.create() alywas only sets known attributes are set. Signed-off-by: Philippe Ombredanne --- src/packagedcode/alpine.py | 2 +- src/packagedcode/rpm_installed.py | 2 +- tests/packagedcode/test_maven.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/packagedcode/alpine.py b/src/packagedcode/alpine.py index df5c6b38a6c..9dff3ecc49c 100644 --- a/src/packagedcode/alpine.py +++ b/src/packagedcode/alpine.py @@ -106,7 +106,7 @@ def build_package(package_fields): converted_fields.update(converted) # construct the package: we ignore unknown as we added a few technical fields - package = AlpinePackage.create(ignore_unknown=True, **converted_fields) + package = AlpinePackage.create(**converted_fields) return package # Note handlers MUST accept **kwargs as they also receive the current data diff --git a/src/packagedcode/rpm_installed.py b/src/packagedcode/rpm_installed.py index 460d5091a0d..b0bc8c5c0f1 100644 --- a/src/packagedcode/rpm_installed.py +++ b/src/packagedcode/rpm_installed.py @@ -151,7 +151,7 @@ def build_package(rpm_tags): converted.update(handled) # construct the package: we ignore unknown as we added a few technical fields - package = RpmPackage.create(ignore_unknown=True, **converted) + package = RpmPackage.create(**converted) return package ################################################################################ diff --git a/tests/packagedcode/test_maven.py b/tests/packagedcode/test_maven.py index 9d68e467ec5..4a1a79033fe 100644 --- a/tests/packagedcode/test_maven.py +++ b/tests/packagedcode/test_maven.py @@ -204,7 +204,7 @@ def test_parse_to_package_and_validate(self): def test_parse_to_package_then_back(self): test_file = self.get_test_loc('maven_misc/spring-beans-4.2.2.RELEASE.pom.xml') package = maven.parse(test_file) - package2 = maven.MavenPomPackage(**package.to_dict(exclude_properties=True)) + package2 = maven.MavenPomPackage.create(**package.to_dict()) assert package2.to_dict().items() == package.to_dict().items() def test_package_root_is_properly_returned_for_metainf_poms(self): From 87dc692ffd9f17bd2058c47773c4aab8e11f7b40 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Mon, 7 Jun 2021 09:40:00 +0200 Subject: [PATCH 466/709] Do not sort package keys when testing This not needed anymore. Signed-off-by: Philippe Ombredanne --- src/scancode/cli_test_utils.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/scancode/cli_test_utils.py b/src/scancode/cli_test_utils.py index f4a8ac99b2e..250b35bf0cd 100644 --- a/src/scancode/cli_test_utils.py +++ b/src/scancode/cli_test_utils.py @@ -177,7 +177,8 @@ def check_json_scan( results from `results_file`. This is convenient for updating tests expectations. But use with caution. - if `remove_file_date` is True, the file.date attribute is removed. + If `remove_file_date` is True, the file.date attribute is removed. + If `ignore_headers` is True, the scan headers attribute is removed. """ results = load_json_result(result_file, remove_file_date) if regen: @@ -192,9 +193,8 @@ def check_json_scan( # NOTE we redump the JSON as a string for a more efficient display of the # failures comparison/diff - # TODO: remove sort, this should no longer be needed - expected = json.dumps(expected, indent=2, sort_keys=True, separators=(',', ': ')) - results = json.dumps(results, indent=2, sort_keys=True, separators=(',', ': ')) + expected = json.dumps(expected, indent=2, separators=(',', ': ')) + results = json.dumps(results, indent=2, separators=(',', ': ')) assert results == expected From b04dbee5ad18d63c6989edea64cbe30de1a1b50e Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Mon, 7 Jun 2021 09:51:33 +0200 Subject: [PATCH 467/709] Remove ignore_unknown arg from Package.create() Also remove the exclude_properties arg. Package.create() alywas only sets known attributes are set. Format code and streamline docstrings Signed-off-by: Philippe Ombredanne --- src/packagedcode/models.py | 91 ++++++++++++++++++-------------------- 1 file changed, 43 insertions(+), 48 deletions(-) diff --git a/src/packagedcode/models.py b/src/packagedcode/models.py index a246d757672..64cc1358210 100644 --- a/src/packagedcode/models.py +++ b/src/packagedcode/models.py @@ -23,7 +23,6 @@ from commoncode.datautils import String from commoncode.datautils import TriBoolean - """ Data models for package information and dependencies, abstracting the differences existing between package formats and tools. @@ -79,26 +78,19 @@ def to_dict(self, **kwargs): """ Return an dict of primitive Python types. """ - return attr.asdict(self, dict_factory=dict) + return attr.asdict(self) @classmethod - def create(cls, ignore_unknown=True, **kwargs): + def create(cls, **kwargs): """ - Return an object built from kwargs. - Optionally `ignore_unknown` attributes provided in `kwargs`. + Return an object built from ``kwargs``. Always ignore unknown attributes + provided in ``kwargs`` that do not exist as declared attr fields in + ``cls``. """ - if ignore_unknown: - known_attr = set(attr.fields_dict(cls).keys()) - kwargs = {k: v for k, v in kwargs.items() if k in known_attr} + known_attr = attr.fields_dict(cls) + kwargs = {k: v for k, v in kwargs.items() if k in known_attr} return cls(**kwargs) - @classmethod - def fields(cls): - """ - Return a list of field names defined on this model. - """ - return [a.name for a in attr.fields(cls)] - party_person = 'person' # often loosely defined @@ -120,26 +112,31 @@ class Party(BaseModel): """ type = String( + repr=True, validator=choices(PARTY_TYPES), label='party type', help='the type of this party: One of: ' +', '.join(p for p in PARTY_TYPES if p)) role = String( + repr=True, label='party role', help='A role for this party. Something such as author, ' 'maintainer, contributor, owner, packager, distributor, ' 'vendor, developer, owner, etc.') name = String( + repr=True, label='name', help='Name of this party.') email = String( + repr=True, label='email', help='Email for this party.') url = String( + repr=True, label='url', help='URL to a primary web page for this party.') @@ -274,25 +271,29 @@ def to_dict(self, **kwargs): """ Return an dict of primitive Python types. """ - mapping = attr.asdict(self, dict_factory=dict) - if not kwargs.get('exclude_properties'): - mapping['purl'] = self.purl - mapping['repository_homepage_url'] = self.repository_homepage_url() - mapping['repository_download_url'] = self.repository_download_url() - mapping['api_data_url'] = self.api_data_url() + mapping = attr.asdict(self) + mapping['purl'] = self.purl + mapping['repository_homepage_url'] = self.repository_homepage_url() + mapping['repository_download_url'] = self.repository_download_url() + mapping['api_data_url'] = self.api_data_url() + if self.qualifiers: - mapping['qualifiers'] = normalize_qualifiers(self.qualifiers, encode=False) + mapping['qualifiers'] = normalize_qualifiers( + qualifiers=self.qualifiers, + encode=False, + ) return mapping @classmethod - def create(cls, ignore_unknown=True, **kwargs): + def create(cls, **kwargs): """ - Return a Package built from kwargs. - Optionally `ignore_unknown` attributes provided in `kwargs`. + Return a Package built from ``kwargs``. Always ignore unknown attributes + provided in ``kwargs`` that do not exist as declared attr fields in + ``cls``. """ from packagedcode import get_package_class - cls = get_package_class(kwargs, default=cls) - return super(BasePackage, cls).create(ignore_unknown=ignore_unknown, **kwargs) + type_cls = get_package_class(kwargs, default=cls) + return super(BasePackage, type_cls).create(**kwargs) @attr.s() @@ -304,8 +305,10 @@ class DependentPackage(BaseModel): purl = String( repr=True, label='Dependent package URL', - help='A compact purl package URL. Typically when there is an unresolved requirement, there is no version. ' - 'If the dependency is resolved, the version should be added to the purl') + help='A compact purl package URL. Typically when there is an ' + 'unresolved requirement, there is no version. ' + 'If the dependency is resolved, the version should be added to ' + 'the purl') requirement = String( repr=True, @@ -345,8 +348,8 @@ class PackageFile(BaseModel): path = String( label='Path of this installed file', help='The path of this installed file either relative to a rootfs ' - '(typical for system packages) or a path in this scan (typical for ' - 'application packages).', + '(typical for system packages) or a path in this scan (typical ' + 'for application packages).', repr=True, ) @@ -453,12 +456,14 @@ class Package(BasePackage): license_expression = String( label='license expression', help='The license expression for this package typically derived ' - 'from its declared license or .') + 'from its declared license or from some other type-specific ' + 'routine or convention.') declared_license = String( label='declared license', help='The declared license mention, tag or text as found in a ' - 'package manifest.') + 'package manifest. This can be a string, a list or dict of ' + 'strings possibly nested, as found originally in the manifest.') notice_text = String( label='notice text', @@ -493,7 +498,7 @@ class Package(BasePackage): extra_data = Mapping( label='extra data', - help='A Mapping where arbitrary data that is related to the Package can be stored ') + help='A mapping of arbitrary extra Package data.') def __attrs_post_init__(self, *args, **kwargs): if not self.type and hasattr(self, 'default_type'): @@ -599,7 +604,9 @@ def extra_root_dirs(cls): def to_dict(self, _detailed=False, **kwargs): data = super().to_dict(**kwargs) if _detailed: - data['installed_files'] = [istf.to_dict() for istf in (self.installed_files or [])] + data['installed_files'] = [ + istf.to_dict() for istf in (self.installed_files or []) + ] else: data.pop('installed_files', None) return data @@ -623,13 +630,11 @@ def compute_normalized_license(declared_license): # we never fail just for this return 'unknown' - # Package types # NOTE: this is somewhat redundant with extractcode archive handlers # yet the purpose and semantics are rather different here - @attr.s() class JavaJar(Package): metafiles = ('META-INF/MANIFEST.MF',) @@ -687,6 +692,7 @@ class IvyJar(JavaJar): default_type = 'ivy' default_primary_language = 'Java' + # FIXME: move to bower.py @attr.s() class BowerPackage(Package): @@ -740,16 +746,6 @@ def get_package_root(cls, manifest_resource, codebase): return manifest_resource.parent(codebase) -# TODO: enable me -# @attr.s() -# class AlpinePackage(Package): -# metafiles = ('*.control',) -# extensions = ('.apk',) -# filetypes = ('debian binary package',) -# mimetypes = ('application/x-archive', 'application/vnd.debian.binary-package',) -# default_type = 'alpine' - - @attr.s() class AndroidApp(Package): filetypes = ('zip archive',) @@ -859,5 +855,4 @@ class SquashfsPackage(Package): filetypes = ('squashfs',) default_type = 'squashfs' - # TODO: Add VM images formats(VMDK, OVA, OVF, VDI, etc) and Docker/other containers From c1a013686beac38645b42e73b62df9dd656d8cd6 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Mon, 7 Jun 2021 09:52:10 +0200 Subject: [PATCH 468/709] De-serialize all objects with get_package_instance Only a Package object was created before. We know also recreate nested lists of dependencies/DependentPackage, parties/Party and installed_files/File objects. This rehydrates a whole Package as originally serialized. Signed-off-by: Philippe Ombredanne --- src/packagedcode/__init__.py | 119 +++++++++++++++++++++++++++++++---- 1 file changed, 106 insertions(+), 13 deletions(-) diff --git a/src/packagedcode/__init__.py b/src/packagedcode/__init__.py index f465fd1315d..5f7cf23de7a 100644 --- a/src/packagedcode/__init__.py +++ b/src/packagedcode/__init__.py @@ -7,6 +7,8 @@ # See https://aboutcode.org for more information about nexB OSS projects. # +import attr + from packagedcode import about from packagedcode import bower from packagedcode import build @@ -126,20 +128,111 @@ def get_package_class(scan_data, default=models.Package): return ptype_class or default -_props = frozenset([ - 'api_data_url', - 'repository_download_url', - 'purl', - 'repository_homepage_url'] -) +def get_package_instance(scan_data): + """ + Return a Package instance re-built from a mapping of ``scan_data`` native + Python data that has the structure of a scan. Known attributes that store a + list of objects are also "rehydrated" (such as models.Party). + The Package instance will use the Package subclass that supports the + provided package "type" when possible or the base Package class otherwise. -def get_package_instance(scan_data, properties=_props): - """ - Given a `scan_data` native Python mapping representing a Package, return a - Package object instance. + Unknown attributes provided in ``scan_data`` that do not exist as fields in + the Package class are kept as items in the Package.extra_data mapping. + An Exception is raised if an "unknown attribute" name already exists as + a Package.extra_data key. """ - # remove computed properties from attributes - scan_data = {k: v for k, v in scan_data.items() if k not in properties} + # TODO: consider using a proper library for this such as cattrs, + # marshmallow, etc. or use the field type that we declare. + + # Each of these are lists of class instances tracked here, which are stored + # as a list of mappings in scanc_data + list_field_types_by_name = { + 'parties': models.Party, + 'dependencies': models.DependentPackage, + 'installed_files': models.PackageFile, + } + + # these are computed attributes serialized on a package + # that should not be recreated when serializing + computed_attributes = set([ + 'purl', + 'repository_homepage_url', + 'repository_download_url', + 'api_data_url' + ]) + + # re-hydrate lists of typed objects klas = get_package_class(scan_data) - return klas(**scan_data) + existing_fields = attr.fields_dict(klas) + + extra_data = scan_data.get('extra_data') + package_data = {} + + for key, value in scan_data.items(): + if not value or key in computed_attributes: + continue + + field = existing_fields.get(key) + + if not field: + if key not in extra_data: + # keep unknown field as extra data + extra_data[key] = value + continue + else: + raise Exception( + f'Invalid scan_data with duplicated key: {key}={value!r} ' + f'present both as attribute AND as extra_data: ' + f'{key}={extra_data[key]!r}' + ) + + list_field_type = list_field_types_by_name.get(key) + if not list_field_type: + # this is a plain known field + package_data[key] = value + continue + + # Since we have a list_field_type, value must be a list of mappings: + # we transform it in a list of objects. + + if not isinstance(value, list): + raise Exception( + f'Invalid scan_data with unknown data structure. ' + f'Expected the value to be a list of dicts and not a ' + f'{type(value)!r} for {key}={value!r}' + ) + + objects = list(_build_objects_list(values=value, klass=list_field_type)) + package_data[key] = objects + + return klas(**package_data) + + +def _build_objects_list(values, klass): + """ + Yield ``klass`` objects built from a ``values`` list of mappings. + """ + # Since we have a list_field_type, value must be a list of mappings: + # we transform it in a list of objects. + + if not isinstance(values, list): + raise Exception( + f'Invalid scan_data with unknown data structure. ' + f'Expected the value to be a list of dicts and not a ' + f'{type(values)!r} for {values!r}' + ) + + for val in values: + if not val: + continue + + if not isinstance(val, dict): + raise Exception( + f'Invalid scan_data with unknown data structure. ' + f'Expected the value to be a mapping for and not a ' + f'{type(val)!r} for {values!r}' + ) + + yield klass.create(**val) + From 48a927b2ff14198acb465625db3b601289edfe54 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Mon, 7 Jun 2021 12:27:53 +0200 Subject: [PATCH 469/709] Keep Package.fields() method used in CSV output Signed-off-by: Philippe Ombredanne --- src/packagedcode/models.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/packagedcode/models.py b/src/packagedcode/models.py index 64cc1358210..ce13913efaf 100644 --- a/src/packagedcode/models.py +++ b/src/packagedcode/models.py @@ -87,11 +87,19 @@ def create(cls, **kwargs): provided in ``kwargs`` that do not exist as declared attr fields in ``cls``. """ - known_attr = attr.fields_dict(cls) + known_attr = cls.fields() kwargs = {k: v for k, v in kwargs.items() if k in known_attr} return cls(**kwargs) + @classmethod + def fields(cls): + """ + Return a list of field names defined on this model. + """ + return list(attr.fields_dict(cls)) + + party_person = 'person' # often loosely defined party_project = 'project' From 9daa269f690e7c1aa2e81a12aa74e6704d63c5ff Mon Sep 17 00:00:00 2001 From: Sebastian Schuberth Date: Mon, 7 Jun 2021 15:56:24 +0200 Subject: [PATCH 470/709] README: Fix the ScanCode.io web link Signed-off-by: Sebastian Schuberth --- README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.rst b/README.rst index 88d41e3894f..393c1dbffe3 100644 --- a/README.rst +++ b/README.rst @@ -42,7 +42,7 @@ Why use ScanCode? to review and display scan results, statistics and graphics. - You can also organize and run ScanCode server-side with the - companion `ScanCode.io web app `_ + companion `ScanCode.io web app `_ to organize and store multiple scan projects including scripting scanning piplines. From 945b5802a32358106bad1f42a21376571eddc002 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Mon, 7 Jun 2021 23:42:35 +0200 Subject: [PATCH 471/709] Bump version and update CHANGELOG Signed-off-by: Philippe Ombredanne --- CHANGELOG.rst | 90 +++++++++++++++++++++++++++++++++++------- setup-mini.cfg | 2 +- setup.cfg | 2 +- src/scancode_config.py | 2 +- 4 files changed, 79 insertions(+), 17 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 5cc216e83fe..b7951f74337 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -23,10 +23,40 @@ Breaking API changes: that contains each package instace that can be aggregating data from multiple manifests for a single package instance. +Ouputs: +~~~~~~~ + + - Add new YAML-formatted output. This is exactly the same data structure as for + the JSON output -v21.6.6 + +v21.6.7 -------- +This is a major new release with important security and bug fixes, as well as +significant improvement in license detection. + + +Many thanks to every contributors that made this possible and in particular: + +- Akanksha Garg @akugarg +- Ayan Sinha Mahapatra @AyanSinhaMahapatra +- Dennis Clark @DennisClark +- François Granade @farialima +- Hanna Modica @hanna-modica +- Jelmer Vernooij @jelmer +- Jono Yang @JonoYang +- Konrad Weihmann @priv-kweihmann +- Philippe Ombredanne @pombredanne +- Pierre Tardy @tardyp +- Sarita Singh @itssingh +- Sebastian Thomas @sebathomas +- Steven Esser @majurg +- Till Jaeger @LeChasseur +- Thomas Druez @tdruez + + + Breaking API changes: ~~~~~~~~~~~~~~~~~~~~~ @@ -41,7 +71,7 @@ Security updates: ~~~~~~~~~~~~~~~~~ - Update minimum versions and pinned version of thirdparty dependencies - to benefit from latest improvements and sceurity fixes. This includes in + to benefit from latest improvements and security fixes. This includes in particular this issues: - pkg:pypi/pygments: (low severity, limited impact) CVE-2021-20270, CVE-2021-27291 @@ -55,23 +85,58 @@ Security updates: Ouputs: ~~~~~~~ - - Add new YAML-formatted output. This is exactly the same data structure as for - the JSON output - The JSON output packages section has a new "extra_data" attributes which is a JSON object that can contain arbitrary data that are specific to a package type. -License scanning: +License detection: ~~~~~~~~~~~~~~~~~ - - Add new command line option to filter ignorable copyrights when included - in licenses. + - The SPDX license list has been update to 3.13 - - Add new and improved license detection rules. - Thank you to: - - Sebastian Thomas @sebathomas - - Till Jaeger @LeChasseur + - Add 42 new and updated 45 existing licenses. + + - Over 14,300 new and improved license detection rules have been added. A large + number of these (~13,400) are to avoid false positive detections. + + +Copyright detection: +~~~~~~~~~~~~~~~~~~~~ + + - Improved speed and fixed some timeout issues. Fixed minor misc. bugs. + + - Allow calling copyright detection from text lines to ease integration + + +Package detection: +~~~~~~~~~~~~~~~~~~ + + - A new "extra_data" dictiuonary is now part of the "packages" data in the + returned JSON. This is used to store arbitrary type-specific data that do + cannot be fit in the Package data structure. + + - The Debian copyright files license detection has been reworked and + significantly improved. + + - The PyPI package detection and manifest parsing has been reworked and + significantly improved. + + - The detection of Windows executables and DLLs metadata has been enabled. + These metadata are returned as packages. + + +Other: +~~~~~~~ + - Most third-party libraries have been updated to their newer versions. Some + dependency constraints have been relaxed to help some usage as a library. + + - The on-commit CI tests now validate that we can install from PyPI without + problem. + + - Fix several installation issues. + + - Add new function to detect copyrights from lines. @@ -126,9 +191,6 @@ Copyright scanning: - Fix bug when using the --filter-clues command line option Thank you to Van Lindberg @VanL - - Allow calling copyright detection from text lines to ease integration - Thank you to Jelmer Vernooij @jelmer - - Fixed copyright truncation bug Thank you to Akanksha Garg @akugarg diff --git a/setup-mini.cfg b/setup-mini.cfg index d0ec676d877..518738aa4ad 100644 --- a/setup-mini.cfg +++ b/setup-mini.cfg @@ -1,6 +1,6 @@ [metadata] name = scancode-toolkit-mini -version = 21.6.2 +version = 21.6.7 license = Apache-2.0 AND CC-BY-4.0 AND LicenseRef-scancode-other-permissive AND LicenseRef-scancode-other-copyleft description = ScanCode is a tool to scan code for license, copyright, package and their documented dependencies and other interesting facts. scancode-toolkit-mini is a special build that does not come with pre-built binary dependencies by default. These are instead installed separately or with the extra_requires scancode-toolkit-mini[full] diff --git a/setup.cfg b/setup.cfg index c5b521b71d2..e11e9284e4f 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = scancode-toolkit -version = 21.6.2 +version = 21.6.7 license = Apache-2.0 AND CC-BY-4.0 AND LicenseRef-scancode-other-permissive AND LicenseRef-scancode-other-copyleft description = ScanCode is a tool to scan code for license, copyright, package and their documented dependencies and other interesting facts. diff --git a/src/scancode_config.py b/src/scancode_config.py index 8047f48bf1e..84be3984a15 100644 --- a/src/scancode_config.py +++ b/src/scancode_config.py @@ -74,7 +74,7 @@ def _create_dir(location): # in case package is not installed or we do not have setutools/pkg_resources # on hand fall back to this version -__version__ = '21.6.2' +__version__ = '21.6.7' try: from pkg_resources import get_distribution, DistributionNotFound try: From 4444e8b41c0e7d3dc35ab4ab8a17894d92c378c8 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Mon, 7 Jun 2021 23:51:08 +0200 Subject: [PATCH 472/709] Improve doc for release Update badges and links to CI Use devdelop branch, not yet main Signed-off-by: Philippe Ombredanne --- CHANGELOG.rst | 2 +- README.rst | 78 +++++++++++++------------ docs/source/getting-started/install.rst | 10 ++-- 3 files changed, 48 insertions(+), 42 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index b7951f74337..99ce0250da4 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -91,7 +91,7 @@ Ouputs: License detection: -~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~ - The SPDX license list has been update to 3.13 diff --git a/README.rst b/README.rst index 393c1dbffe3..ddfe14f4528 100644 --- a/README.rst +++ b/README.rst @@ -6,7 +6,11 @@ A typical software project often reuses hundreds of third-party packages. License and origin information is not always easy to find and not normalized: ScanCode discovers and normalizes this data for you. -Read more about ScanCode here: `scancode-toolkit.readthedocs.io `_. +Read more about ScanCode here: `scancode-toolkit.readthedocs.io +`_. + +Check out the code at https://github.com/nexB/scancode-toolkit + Why use ScanCode? ================= @@ -25,8 +29,10 @@ Why use ScanCode? `RedHat Fabric8 analytics `_, and many more. -- ScanCode detects licenses, copyrights, package manifests, direct - dependencies, and more both in **source code** and **binary** files. +- ScanCode detects licenses, copyrights, package manifests, direct dependencies, + and more both in **source code** and **binary** files and is considered as the + best-in-class and reference tool in this domain, re-used as the core tools for + software composition data collection by several open source tools. - ScanCode provides the **most accurate license detection engine** and does a full comparison (also known as diff or red line comparison) between a database @@ -37,14 +43,12 @@ Why use ScanCode? new and improved scanners, data summarization, package manifest parsers, and new outputs. -- You can save your scan results as **JSON, HTML, CSV or SPDX**. And you can use the - companion `ScanCode workbench GUI app `_ - to review and display scan results, statistics and graphics. +- You can save your scan results as **JSON, HTML, CSV or SPDX** or create your + own format with Jinja templates. - You can also organize and run ScanCode server-side with the companion `ScanCode.io web app `_ - to organize and store multiple scan projects including scripting scanning piplines. - + to organize and store multiple scan projects including scripted scanning pipelines. - ScanCode is **actively maintained**, has a **growing users and contributors community**. @@ -53,6 +57,20 @@ Why use ScanCode? - ScanCode has an extensive and growing documentation. +- ScanCode can process these packages, build manifest and lockfile formats to extract metadata: + Alpine packages, BUCK files, ABOUT files, Android apps, Autotools, Bazel, + JavaScript Bower, Java Axis, MS Cab, Rust Cargo, Chef Chrome apps, + PHP Composer and composer.lock, Conda, CPAN, Debian, Apple dmg, + Java EAR, WAR, JAR, FreeBSD packages, Rubygems gemspec, Gemfile and Gemfile.lock, + Go modules, Haxe packages, InstallShield installers, iOS apps, ISO images, + Apache IVY, JBoss Sar, R CRAN, Apache Maven, Meteor, Mozilla extensions, + MSI installers, JavaScript npm packages, package-lock.json, yarn.lock, + NSIS Installers, NugGet, OPam, Cocoapods, Python PyPI setup.py, setup.cfg, and + several related lockfile formats, semi structured README + files such as README.android, README.chromium, README.facebook, README.google, + README.thirdparty, RPMs, Shell Archives, Squashfs images, Java WAR, Windows executables. + + See our `roadmap `_ for upcoming features. @@ -60,22 +78,14 @@ for upcoming features. Build and tests status ====================== -+-------+--------------+-----------------+--------------+ -|Branch | **Coverage** | **Linux/macOS** | **Windows** | -+=======+==============+=================+==============+ -|Master | |master-cov| | |master-posix| | |master-win| | -+-------+--------------+-----------------+--------------+ -|Develop| |devel-cov| | |devel-posix| | |devel-win| | -+-------+--------------+-----------------+--------------+ +We run tests on multiple CIs to ensure a good platform compabitility and on +multiple version of Windows, Linux and macOS. -Documentation Build -------------------- - -+--------+--------------+ -|Version | **RTD Build**| -+========+==============+ -| Latest | |docs-rtd| | -+--------+--------------+ ++--------------+--------------+--------------+ +| **Appveyor** | **Azure** | **RTD Build**| ++==============+==============+==============+ +| |appveyor| | |azure| | |docs-rtd| | ++--------------+--------------+--------------+ Documentation @@ -110,7 +120,9 @@ Installation ============ Before installing ScanCode make sure that you have installed the prerequisites -properly. This means installing Python (Python 3.6+ is required). +properly. This means installing Python (Python 3.6 or higher is required. +When installing the app tarball or zip, only Python 3.6 is supported for now). + See `prerequisites `_ for detailed information on the support platforms and Python versions. @@ -215,19 +227,13 @@ See the NOTICE file and the .ABOUT files that document the origin and license of the third-party code used in ScanCode for more details. -.. |master-posix| image:: https://api.travis-ci.org/nexB/scancode-toolkit.png?branch=master +.. |appveyor| image:: https://ci.appveyor.com/api/projects/status/4webymu0l2ip8utr?svg=true :target: https://travis-ci.org/nexB/scancode-toolkit - :alt: Linux Master branch tests status -.. |devel-posix| image:: https://api.travis-ci.org/nexB/scancode-toolkit.png?branch=develop - :target: https://travis-ci.org/nexB/scancode-toolkit - :alt: Linux Develop branch tests status - -.. |master-win| image:: https://ci.appveyor.com/api/projects/status/4webymu0l2ip8utr/branch/master?png=true - :target: https://ci.appveyor.com/project/nexB/scancode-toolkit - :alt: Windows Master branch tests status -.. |devel-win| image:: https://ci.appveyor.com/api/projects/status/4webymu0l2ip8utr/branch/develop?png=true - :target: https://ci.appveyor.com/project/nexB/scancode-toolkit - :alt: Windows Develop branch tests status + :alt: Appveyor tests status (Windows) + +.. |azure| image:: https://dev.azure.com/nexB/scancode-toolkit/_apis/build/status/nexB.scancode-toolkit?branchName=develop + :target: https://dev.azure.com/nexB/scancode-toolkit/_build/latest?definitionId=1&branchName=develop + :alt: Azure tests status (Linux, macOS, Windows) .. |docs-rtd| image:: https://readthedocs.org/projects/scancode-toolkit/badge/?version=latest :target: https://scancode-toolkit.readthedocs.io/en/latest/?badge=latest diff --git a/docs/source/getting-started/install.rst b/docs/source/getting-started/install.rst index a90152dbf3f..6fcfca0a323 100644 --- a/docs/source/getting-started/install.rst +++ b/docs/source/getting-started/install.rst @@ -286,13 +286,13 @@ Or you can run the following if you have `Git `_ installed Now, by default the files are checked out to the develop branch, but you can jump to any checkpoint using the following command:: - git checkout main + git checkout develop -Here, ``main`` branch has the latest release of Scancode-Toolkit. You can also check out to any -of the following: +Here, ``develop`` branch has the latest release of Scancode-Toolkit. +You can also check out to any of the following: -- Branches (Locally created or already present) [Example - ``main``] -- Tags (essentially version numbers) [Example - ``v21.2.25``, ``v21.6.1``] +- Branches (Locally created or already present) [Example - ``develop``] +- Tags (essentially version numbers) [Example - ``v21.6.7``, ``v21.5.31``] - Commits (use the shortened commit hash) [Example - ``4502055``, ``f276398``] From e54118434943557d0de9c140f7c79ce4b997aa49 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Tue, 8 Jun 2021 10:27:29 +0200 Subject: [PATCH 473/709] Fix comment typos Signed-off-by: Philippe Ombredanne --- etc/release/scancode-create-release.sh | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/etc/release/scancode-create-release.sh b/etc/release/scancode-create-release.sh index bdfa50a7a42..da6f89bec5a 100755 --- a/etc/release/scancode-create-release.sh +++ b/etc/release/scancode-create-release.sh @@ -6,7 +6,7 @@ ################################################################################ # ScanCode release build script # Create, test and publish release archives, wheels and sdists. -# Use the --test to also run basic somke test of the built archives +# Use the --test to also run basic smoke tests of the built archives # ################################################################################ @@ -142,6 +142,8 @@ function run_pypi_smoke_tests { echo "#### RELEASE TEST: Completed PyPI tests of $archive_to_test with Pythons: $python_dot_versions on OSses: $operating_systems" } + + if [ "$CLI_ARGS" == "--test" ]; then echo "##########################################################################" echo "### TESTING build for Python: $PYTHON_APP_VERSIONS on OS: $OPERATING_SYSTEMS" @@ -161,14 +163,10 @@ if [ "$CLI_ARGS" == "--test" ]; then fi - - echo "##########################################################################" echo "### BUILDING App for Python: $PYTHON_APP_VERSIONS on OS: $OPERATING_SYSTEMS" - - ################################ # Setup ################################ From 5e0c6aa831fcf4b0c96ad80407445897a8f0b2d8 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Tue, 8 Jun 2021 11:20:21 +0200 Subject: [PATCH 474/709] Prepare next version CHANGELOG Signed-off-by: Philippe Ombredanne --- CHANGELOG.rst | 738 ++++++++++++++++++++++++++------------------------ 1 file changed, 390 insertions(+), 348 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 99ce0250da4..9b11df8be25 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -20,14 +20,33 @@ Breaking API changes: - The data structure of the JSON output has changed for packages: we now return "package_manifests" package information at the manifest file-level rather than "packages". There is a a new top-level "packages" attribute - that contains each package instace that can be aggregating data from + that contains each package instance that can be aggregating data from multiple manifests for a single package instance. -Ouputs: -~~~~~~~ + +Outputs: +~~~~~~~~ - Add new YAML-formatted output. This is exactly the same data structure as for the JSON output + - Add new Debian machine readable copyright output. + - The CSV output "Resource" column has been renamed to "path". + + +Copyright detection: +~~~~~~~~~~~~~~~~~~~~ + + - The data structure in the JSON is now using consistently named attributes as + opposed to a plain value. + + +Package detection: +~~~~~~~~~~~~~~~~~~ + + - Add support for OpenWRT packages. + - Add support for Yocto/BitBake .bb recipes. + - The Alpine packages declared license detection has been significantly improved. + - Add support to track installed files for each Package type. v21.6.7 @@ -63,7 +82,7 @@ Breaking API changes: - The configure scripts for Linux, macOS and Windows have been entirely refactored and should be considered as new. These are now only native scripts (.bat on Windows and .sh on POSIX) and the Python script etc/configure.py - has been removed. Use the PYTHON_EXECUTABLE enviroment variable to point to + has been removed. Use the PYTHON_EXECUTABLE environment variable to point to alternative non-default Python executable and this on all OSes. @@ -82,8 +101,8 @@ Security updates: longer used by pdfminer) -Ouputs: -~~~~~~~ +Outputs: +~~~~~~~~ - The JSON output packages section has a new "extra_data" attributes which is a JSON object that can contain arbitrary data that are specific to a package @@ -95,10 +114,10 @@ License detection: - The SPDX license list has been update to 3.13 - - Add 42 new and updated 45 existing licenses. + - Add 42 new and update 45 existing licenses. - Over 14,300 new and improved license detection rules have been added. A large - number of these (~13,400) are to avoid false positive detections. + number of these (~13,400) are to avoid false positive detection. Copyright detection: @@ -112,7 +131,7 @@ Copyright detection: Package detection: ~~~~~~~~~~~~~~~~~~ - - A new "extra_data" dictiuonary is now part of the "packages" data in the + - A new "extra_data" dictionary is now part of the "packages" data in the returned JSON. This is used to store arbitrary type-specific data that do cannot be fit in the Package data structure. @@ -219,8 +238,8 @@ Package scanning: Thank you to Jonothan Yang @JonoYang and Steven Esser @majurg -Ouputs: -~~~~~~~ +Outputs: +~~~~~~~~~ - Add new Debian copyright-formatted output. Thank you to Jelmer Vernooij @jelmer @@ -487,33 +506,33 @@ v3.0.0 (2019-02-14) ------------------- License detection: - * Add new and improved licenses and license detection rules #1334 #1335 #1336 #1337 ##1357 - * Fix-up the license text inside the `bsl-*.LICENSE` files #1338 by @fviernau - * Add tests for commnon NuGet license bare URLs (until recently NuGet nupsec + - Add new and improved licenses and license detection rules #1334 #1335 #1336 #1337 ##1357 + - Fix-up the license text inside the `bsl-*.LICENSE` files #1338 by @fviernau + - Add tests for commnon NuGet license bare URLs (until recently NuGet nupsec only had a license URL as licensing documentation) - * Add a license for the `PSK` contributions to OpenSSL #1341 by @fviernau - * Improve License Match scoring and filtering for very short rules - * Do not run license and copyright detection on media files: Media should not + - Add a license for the `PSK` contributions to OpenSSL #1341 by @fviernau + - Improve License Match scoring and filtering for very short rules + - Do not run license and copyright detection on media files: Media should not contain text #1347 #1348 - * Detect scea-1.0 license correctly #1346 - * Do not detect warranty disclaimer as GPL #1345 - * Support quoted SPDX expressions and more comment marker prefixes - * Use Free Restricted category for fraunhofer-fdk-aac-codec #1352 by @LeChasseur - * Remove the spdx_license_key from here-proprietary #1360 by @sschuberth - * Add new post-scan plugin to tag a file containing only license #1366 - * Add new license #1365 and rules #1358 + - Detect scea-1.0 license correctly #1346 + - Do not detect warranty disclaimer as GPL #1345 + - Support quoted SPDX expressions and more comment marker prefixes + - Use Free Restricted category for fraunhofer-fdk-aac-codec #1352 by @LeChasseur + - Remove the spdx_license_key from here-proprietary #1360 by @sschuberth + - Add new post-scan plugin to tag a file containing only license #1366 + - Add new license #1365 and rules #1358 Packages: - * Improve npm vcs_url handling #1314 by @majurg - * Improve Maven POM license detection #1344 - * Add Maven POM URL detection - * Recognize .gem archives as packages - * Improve parsing of Pypi Python setup.py - * Improve package summaries. Add new plugin to improve package classification #1339 + - Improve npm vcs_url handling #1314 by @majurg + - Improve Maven POM license detection #1344 + - Add Maven POM URL detection + - Recognize .gem archives as packages + - Improve parsing of Pypi Python setup.py + - Improve package summaries. Add new plugin to improve package classification #1339 Other: - * Fix doc typo by #1329 @farialima - * Add new experimental pre-scan plugin to ignore binaries + - Fix doc typo by #1329 @farialima + - Add new experimental pre-scan plugin to ignore binaries v2.9.9 (2018-12-12) @@ -522,15 +541,15 @@ v2.9.9 (2018-12-12) This is the penultimate pre-release of what will come up for 3.0 with some API change for packages. API changes: - * Streamline Package models #1226 #1324 and #1327. In particular the way checksums are managed has changed + - Streamline Package models #1226 #1324 and #1327. In particular the way checksums are managed has changed Other changes: - * Copyright detection improvements #1305 by @JonoYang - * Correct CC-BY V3.0 and V4.0 license texts by correct one by @sschuberth #1320 - * Add new and improved licenses and license detection rules including the latest SPDX list 3.4 and #1322 #1324 - * Rename proprietary license key to proprietary-license - * Rename commercial license key to commercial-license - * Improve npm package.json handling #1308 and #1314 by @majurg + - Copyright detection improvements #1305 by @JonoYang + - Correct CC-BY V3.0 and V4.0 license texts by correct one by @sschuberth #1320 + - Add new and improved licenses and license detection rules including the latest SPDX list 3.4 and #1322 #1324 + - Rename proprietary license key to proprietary-license + - Rename commercial license key to commercial-license + - Improve npm package.json handling #1308 and #1314 by @majurg v2.9.8 (2018-12-12) @@ -539,85 +558,85 @@ v2.9.8 (2018-12-12) This is a close-to-final pre-release of what will come up for 3.0 with some API change for packages. API changes: - * In Package models, rename normalized_license to license_expression and + - In Package models, rename normalized_license to license_expression and add license detection on the declared_license to populate the license_expression #1092 #1268 #1278 Outputs: - * Do not open output files until the command lines are validated as correct #1266 - * The html-app output is marked as DEPRECATED. Use the AboutCode manager app instead # - * Ensure HTML outputs can deal with non-ASCII file paths without crashsing #1292 - * JSON outputs now use a "headers" attributes for top-level scan headers # - * SPDX output is now possible even without "--info" SHA1 checksums. This creates a partially valid document - * LicenseRef for non-SPDX ScanCode licenses are named as "LicenseRef-scancode-" # - * license_expression are correctly included in the CSV output #1238 - * do not crash with multiple outputs #1199 - * Ensure CSV output include packages #1145 + - Do not open output files until the command lines are validated as correct #1266 + - The html-app output is marked as DEPRECATED. Use the AboutCode manager app instead # + - Ensure HTML outputs can deal with non-ASCII file paths without crashsing #1292 + - JSON outputs now use a "headers" attributes for top-level scan headers # + - SPDX output is now possible even without "--info" SHA1 checksums. This creates a partially valid document + - LicenseRef for non-SPDX ScanCode licenses are named as "LicenseRef-scancode-" # + - license_expression are correctly included in the CSV output #1238 + - do not crash with multiple outputs #1199 + - Ensure CSV output include packages #1145 License detection: - * Ensure license expressions are present in CSV output #1238 - * Fix 'license detection tests' collection on Windows #1182 - * An optional "relevance" attribute has been added to the license YAML + - Ensure license expressions are present in CSV output #1238 + - Fix 'license detection tests' collection on Windows #1182 + - An optional "relevance" attribute has been added to the license YAML attributes. This is to store the relevance to e matched .LICENSE text when used as a rule. - * Licenses have been synchronized with the latest v3.3 SPDX license list and the latest DejaCode licenses #1242 - * Duplicated SPDX keys have been fixed #1264 - * Add new and improved license detection rules #1313 #1306 #1302 #1298 #1293 + - Licenses have been synchronized with the latest v3.3 SPDX license list and the latest DejaCode licenses #1242 + - Duplicated SPDX keys have been fixed #1264 + - Add new and improved license detection rules #1313 #1306 #1302 #1298 #1293 #1291 #1289 #1270 #1269 #1192 #1186 #1170 #1164 #1128 #1124 #1112 #1110 #1108 #1098 #1069 #1063 #1058 #1052 #1050 #1039 #987 #962 #929 Packages: - * Add support for haxe "haxelib" package manifests #1227 - * Remove code_type attribute from Package models - * In Package models, rename normalized_license to license_expression and + - Add support for haxe "haxelib" package manifests #1227 + - Remove code_type attribute from Package models + - In Package models, rename normalized_license to license_expression and add license detection on the declared_license to populate the license_expression #1092 #1268 #1278 - * Improve data returned for PHP Composer packages - * Add PackageURL to top level ouput for packages - * Report nuget as proper packages #1088 + - Improve data returned for PHP Composer packages + - Add PackageURL to top level output for packages + - Report nuget as proper packages #1088 Summary: - * improve summary and license score computation #1180 + - improve summary and license score computation #1180 Misc: - * Minor copyright detection improvements #1248 #1244 #1234 #1198 #1123 #1087 - * Ensure all temporary directories are prefixed with "scancode-" - * Drop support for Linux 32 bits #1259 - * Do not attempt to scan encrypted PDF documents - * Improve "data" files detection - * ScanCode can be installed from Pypi correctly #1214 #1183 - * Improve reporting of programming languages #1194 - * Fix running post scan plugins #1141 + - Minor copyright detection improvements #1248 #1244 #1234 #1198 #1123 #1087 + - Ensure all temporary directories are prefixed with "scancode-" + - Drop support for Linux 32 bits #1259 + - Do not attempt to scan encrypted PDF documents + - Improve "data" files detection + - ScanCode can be installed from Pypi correctly #1214 #1183 + - Improve reporting of programming languages #1194 + - Fix running post scan plugins #1141 Command line: - * Always delete temporary files when no longer needed. #1231 - * Add a new --keep-temp-files option to keep temp files which is false by default. #1231 - * Improve dependent plugin activation so it is done only when needed #1235 + - Always delete temporary files when no longer needed. #1231 + - Add a new --keep-temp-files option to keep temp files which is false by default. #1231 + - Improve dependent plugin activation so it is done only when needed #1235 Internals: - * Improve reusing resource.VirtualCode - * Place all third-party packages under thirdparty #1219 and update ABOUT files + - Improve reusing resource.VirtualCode + - Place all third-party packages under thirdparty #1219 and update ABOUT files Credits: Many thanks to everyone that contributed to this release with code and bug reports - * @nicoddemus - * @chinyeungli - * @johnmhoran - * @jonasob - * @DennisClark - * @arthur657834 - * @JonoYang - * @armijnhemel - * @furuholm - * @mjherzog - * @sschuberth - * @MartinPetkov - * @jhgoebbert - * @bobgob - * @majurg - * @tdruez - * @tomeks666 - * @geneh - * @jonassmedegaard + - @nicoddemus + - @chinyeungli + - @johnmhoran + - @jonasob + - @DennisClark + - @arthur657834 + - @JonoYang + - @armijnhemel + - @furuholm + - @mjherzog + - @sschuberth + - @MartinPetkov + - @jhgoebbert + - @bobgob + - @majurg + - @tdruez + - @tomeks666 + - @geneh + - @jonassmedegaard and many other that I may have missed. @@ -633,11 +652,11 @@ No changes. v2.9.6 (2018-10-25) ------------------- - * Add declared license normalization #1092 - * Add new and improved license rules - * Add mising and clean up ABOUT files for all embedded third-party libraries - * Improve npm package.json handling (better keuword support) - * Update thirdparty libraries #1224 + - Add declared license normalization #1092 + - Add new and improved license rules + - Add mising and clean up ABOUT files for all embedded third-party libraries + - Improve npm package.json handling (better keuword support) + - Update thirdparty libraries #1224 Credits: Many thanks to everyone that contributed to this release with code and bug reports @@ -647,11 +666,11 @@ v2.9.5 (2018-10-22) This is a minor pre-release of what will come up for 3.0 with no API change. - * Place all third-party packages under thirdparty #1219 + - Place all third-party packages under thirdparty #1219 Credits: Many thanks to everyone that contributed to this release with code and bug reports - * @JonoYang + - @JonoYang v2.9.4 (2018-10-19) @@ -660,30 +679,30 @@ v2.9.4 (2018-10-19) This is a pre-release of what will come up for 3.0 with several API changes related to packages. - * Add Package URL field to top-level package output #1149 - * --package option should collect homepage URL for packages #645 - * Support installation from Pypi and update various third-parties to their + - Add Package URL field to top-level package output #1149 + - --package option should collect homepage URL for packages #645 + - Support installation from Pypi and update various third-parties to their latest version #1183 - * Fix bug where multiple outputs with --html would crash scancode # - * Add new and improved licenses and license detection rules #1192 #1186 - * Ensure that plugin failure trigger a proper error exit code #1199 - * Allow plugins to contribute codebase-level attributes in addition to + - Fix bug where multiple outputs with --html would crash scancode # + - Add new and improved licenses and license detection rules #1192 #1186 + - Ensure that plugin failure trigger a proper error exit code #1199 + - Allow plugins to contribute codebase-level attributes in addition to resource-level attributes. - * Output plugins can now be called from code #1148 - * Fix incorrect copyright detection #1198 - * Detect programming language more strictly and efficiently #1194 - * Use simpler list of source package URLs/purls #1206 - * Add purl to the packages data #1149 - * Use direct attributes for package checksums #1189 - * Remove package_manifest attribute for packages - * Add new Package "manifest_path" attribute which is a relative path to + - Output plugins can now be called from code #1148 + - Fix incorrect copyright detection #1198 + - Detect programming language more strictly and efficiently #1194 + - Use simpler list of source package URLs/purls #1206 + - Add purl to the packages data #1149 + - Use direct attributes for package checksums #1189 + - Remove package_manifest attribute for packages + - Add new Package "manifest_path" attribute which is a relative path to the manifest file if any, such as a Maven .pom or a npm package.json. Credits: Many thanks to everyone that contributed to this release with code and bug reports - * @MartinPetkov - * @majurg - * @JonoYang + - @MartinPetkov + - @majurg + - @JonoYang v2.9.3 (2018-09-27) @@ -692,39 +711,39 @@ v2.9.3 (2018-09-27) This is a pre-release of what will come up for 3.0 with an API change. API change: - * The returned copyright data structure has changed and is now simpler and less nested + - The returned copyright data structure has changed and is now simpler and less nested Licenses: - * Add new license and rules and improve licene rules #1186 #1108 #1124 #1171 #1173 #1039 #1098 #1111 - * Add new license clarity scoring #1180 + - Add new license and rules and improve licene rules #1186 #1108 #1124 #1171 #1173 #1039 #1098 #1111 + - Add new license clarity scoring #1180 This is also for use in the ClearlyDefined project - * Add is_exception to license scan results #1159 + - Add is_exception to license scan results #1159 Copyrights: - * Copyright detection has been improved #930 #965 #1103 - * Copyright data structure has been updated + - Copyright detection has been improved #930 #965 #1103 + - Copyright data structure has been updated Packages: - * Add support for FreeBSD packages (ports) #1073 - * Add support for package root detection - * Detect nuget packages correctly @1088 + - Add support for FreeBSD packages (ports) #1073 + - Add support for package root detection + - Detect nuget packages correctly @1088 Misc: - * Add facet, classification and summarizer plugins #357 - * Fix file counts #1055 - * Fix corrupted license cache error - * Upgrade all thridparty libraries #1070 - * De-vendor prebuilt binaries to ease packaging for Linux distros #469 + - Add facet, classification and summarizer plugins #357 + - Fix file counts #1055 + - Fix corrupted license cache error + - Upgrade all thridparty libraries #1070 + - De-vendor prebuilt binaries to ease packaging for Linux distros #469 Credits: Many thanks to everyone that contributed to this release with code and bug reports - * @selmf - * @paralax - * @majurg - * @mueller-ma - * @MartinPetkov - * @techytushar + - @selmf + - @paralax + - @majurg + - @mueller-ma + - @MartinPetkov + - @techytushar @@ -734,50 +753,50 @@ This is a major pre-release of what will come up for 3.0. with significant packages and license API changes. API changes: - * Simplify output option names #789 - * Update the packages data structure and introduce Package URLs #275 - * Add support for license expressions #74 with full exceptions support + - Simplify output option names #789 + - Update the packages data structure and introduce Package URLs #275 + - Add support for license expressions #74 with full exceptions support Licenses: - * Add support for license expressions #74 with full exceptions support - * Enable SPDX license identifier match #81 - * Update and change handling of composite licenses now that we support expressions - * Symchronize licenses with latest from SPDX and DejaCode #41 - * Add new licenses ofr odds and ends: other-permissive and other-copyleft - * refine license index cache handling - * remove tests without value - * Add new license policy plugin #214, #880 + - Add support for license expressions #74 with full exceptions support + - Enable SPDX license identifier match #81 + - Update and change handling of composite licenses now that we support expressions + - Symchronize licenses with latest from SPDX and DejaCode #41 + - Add new licenses ofr odds and ends: other-permissive and other-copyleft + - refine license index cache handling + - remove tests without value + - Add new license policy plugin #214, #880 Packages: - * Split packages from package_manifest #1027. This is experimental + - Split packages from package_manifest #1027. This is experimental The packages scan return now a single package_manifest key (not a list) And a post_scan plugin (responding to the same --package) option perform a roll-up of the manifest informationat the proper level for a package type as the "packages" attribute (which is still a list). For instance a package.json "package_manifest" will end up having a "packages" entry in its parent directory. - * Include and return Package URLs (purl) #805 and #275 - * Major rework of the package data structure #275 - * Rename asserted_license to declared_licensing #275 - * Add basic Godeps parsing support #275 - * Add basic gemspec and Rubygems parsing support #275 - * Add basic Gemfile.lock parsing support #275 - * Add basic Win DLL parsing support #275 - * Replace MD5/SHA1 by a list of checksums #275 - * Use a single download_url, not a list #275 - * Add namespace to npm. Compute defaults URL #275 + - Include and return Package URLs (purl) #805 and #275 + - Major rework of the package data structure #275 + - Rename asserted_license to declared_licensing #275 + - Add basic Godeps parsing support #275 + - Add basic gemspec and Rubygems parsing support #275 + - Add basic Gemfile.lock parsing support #275 + - Add basic Win DLL parsing support #275 + - Replace MD5/SHA1 by a list of checksums #275 + - Use a single download_url, not a list #275 + - Add namespace to npm. Compute defaults URL #275 Misc: - * multiple minor bug fixes - * do not ignore .repo files #881 + - multiple minor bug fixes + - do not ignore .repo files #881 Credits: Many thanks to everyone that contributed to this release with code and bug reports - * @JonoYang - * @majurg - * @pombredanne - * @yash-nisar - * @ThorstenHarter + - @JonoYang + - @majurg + - @pombredanne + - @yash-nisar + - @ThorstenHarter v2.9.1 (2018-03-22) @@ -786,23 +805,23 @@ v2.9.1 (2018-03-22) This is a minor pre-release of what will come up for 3.0 with no API change. Licenses: - * There are new and improved licenses and license detection rules #994 #991 #695 #983 #998 #969 + - There are new and improved licenses and license detection rules #994 #991 #695 #983 #998 #969 Copyrights: - * Copyright detection has been improved #930 #965 + - Copyright detection has been improved #930 #965 Misc: - * Improve support for JavaScript map files: they may contain both debugging + - Improve support for JavaScript map files: they may contain both debugging information and whole package source code. - * multiple minor bug fixes + - multiple minor bug fixes Credits: Many thanks to everyone that contributed to this release with code and bug reports - * @haikoschol - * @jamesward - * @JonoYang - * @DennisClark - * @swinslow + - @haikoschol + - @jamesward + - @JonoYang + - @DennisClark + - @swinslow v2.9.0b1 (2018-03-02) @@ -814,112 +833,112 @@ This has a lot of new changes including improved plugins, speed and detection that are not yet fully documented but it can be used for testing. API changes: - * Command line API + - Command line API - * `--diag` option renamed to `--license-diag` + - `--diag` option renamed to `--license-diag` - * `--format ` option has been replaced by multiple options one + - `--format ` option has been replaced by multiple options one for each format such as `--format-csv` `--format-json` and multiple formats can be requested at once - * new experimental `--cache-dir` option and `SCANCODE_CACHE` environment variable + - new experimental `--cache-dir` option and `SCANCODE_CACHE` environment variable and `--temp-dir` and `SCANCODE_TMP` environment variable to set the temp and cache directories. - * JSON data output format: no major changes + - JSON data output format: no major changes - * programmatic API in scancode/api.py: + - programmatic API in scancode/api.py: - * get_urls(location, threshold=50): new threshold argument + - get_urls(location, threshold=50): new threshold argument - * get_emails(location, threshold=50): new threshold argument + - get_emails(location, threshold=50): new threshold argument - * get_file_infos renamed to get_file_info + - get_file_infos renamed to get_file_info - * Resource moved to scancode.resource and significantly updated + - Resource moved to scancode.resource and significantly updated - * get_package_infos renamed to get_package_info + - get_package_infos renamed to get_package_info Command line - * You can select multiple outputs at once (e.g. JSON and CSV, etc.) #789 - * There is a new capability to reload a JSON scan to reprocess it with postcsan + - You can select multiple outputs at once (e.g. JSON and CSV, etc.) #789 + - There is a new capability to reload a JSON scan to reprocess it with postcsan plugins and or converting a JSON scan to CSV or else. Licenses: - * There are several new and improved licenses and license detection rules #799 #774 #589 - * Licenses data now contains the full name as well as the short name. + - There are several new and improved licenses and license detection rules #799 #774 #589 + - Licenses data now contains the full name as well as the short name. - * License match have a notion of "coverage" which is the number of matched + - License match have a notion of "coverage" which is the number of matched words compared to the number of words in the matched rule. - * The license cache is not checked anymore for consistency once created which + - The license cache is not checked anymore for consistency once created which improved startup times. (unless you are using a Git checkout and you are developping with a SCANCODE_DEV_MODE tag file present) - * License catagory names have been improved + - License catagory names have been improved Copyrights: - * Copyright detection in binary files has been improved - * There are several improvements to the copyright detection quality fixing these + - Copyright detection in binary files has been improved + - There are several improvements to the copyright detection quality fixing these tickets: #795 #677 #305 #795 - * There is a new post scan plugin that can be used to ignore certain copyright in + - There is a new post scan plugin that can be used to ignore certain copyright in the results Summaries: - * Add new support for copyright summaries using smart holder deduplication #930 + - Add new support for copyright summaries using smart holder deduplication #930 Misc: - * Add options to limit the number of emails and urls that are collected from + - Add options to limit the number of emails and urls that are collected from each file (with a default to 50) #384 - * When configuring in dev mode, VS Code settings are created - * Archive detection has been improved - * There is a new cache and temporary file configuration with --cache-dir and + - When configuring in dev mode, VS Code settings are created + - Archive detection has been improved + - There is a new cache and temporary file configuration with --cache-dir and --temp-dir CLI options. The --no-cache option has been removed - * Add new --examples to show usage examples help - * Move essential configuration to a scancode_config.py module - * Only read a few pages from PDF files by default - * Improve handling of files with weird characters in their names on all OSses - * Improve detection of archive vs. comrpessed files - * Make all copyright tests data driven using YAML files like for license tests + - Add new --examples to show usage examples help + - Move essential configuration to a scancode_config.py module + - Only read a few pages from PDF files by default + - Improve handling of files with weird characters in their names on all OSses + - Improve detection of archive vs. comrpessed files + - Make all copyright tests data driven using YAML files like for license tests Plugins - * Prescan plugins can now exclude files from the scans - * Plugins can now contribute arbitrary command line options #787 and #748 - * there is a new plugin stage called output_filter to optionally filter a scan before output. + - Prescan plugins can now exclude files from the scans + - Plugins can now contribute arbitrary command line options #787 and #748 + - there is a new plugin stage called output_filter to optionally filter a scan before output. One example is to keep "only findings" #787 - * The core processing is centered now on a Codebase and Resource abstraction + - The core processing is centered now on a Codebase and Resource abstraction that represents the scanned filesystem in memory #717 #736 All plugins operate on this abstraction - * All scanners are also plugins #698 and now everything is a plugin including the scans - * The interface for output plugins is the same as other plugins #715 + - All scanners are also plugins #698 and now everything is a plugin including the scans + - The interface for output plugins is the same as other plugins #715 Credits: Many thanks to everyone that contributed to this release with code and bug reports (and this list is likely missing some) - * @SaravananOffl - * @jpopelka - * @yashdsaraf - * @haikoschol - * @jdaguil - * @ajeans - * @DennisClark - * @susg - * @pombredane - * @mjherzog - * @Sidsharik - * @nishakm - * @yasharmaster - * @techytushar - * @JonoYang - * @majurg - * @aviral1701 - * @haikoschol - * @chinyeungli - * @vivonk - * @Chaitya62 - * @inishchith + - @SaravananOffl + - @jpopelka + - @yashdsaraf + - @haikoschol + - @jdaguil + - @ajeans + - @DennisClark + - @susg + - @pombredane + - @mjherzog + - @Sidsharik + - @nishakm + - @yasharmaster + - @techytushar + - @JonoYang + - @majurg + - @aviral1701 + - @haikoschol + - @chinyeungli + - @vivonk + - @Chaitya62 + - @inishchith v2.2.1 (2017-10-05) @@ -928,16 +947,18 @@ v2.2.1 (2017-10-05) This is a minor release with several bug fixes, one new feature and one (minor) API change. -* API change: +API change: +~~~~~~~~~~~ - * Licenses data now contains a new reference_url attribute instead of a + - Licenses data now contains a new reference_url attribute instead of a dejacode_url attribute. This defaults to the public DejaCode URL and can be configured with the new --license-url-template command line option. -* New feature: +New feature: +~~~~~~~~~~~~~~~ - * There is a new "--format jsonlines" output format option. + - There is a new "--format jsonlines" output format option. In this format, each line in the output is a valid JSON document. The first line contains a "header" object with header-level data such as notice, version, etc. Each line after the first contains the scan @@ -945,25 +966,26 @@ and one (minor) API change. whole scan results JSON documents but without any header-level attributes. See also http://jsonlines.org/ -* Other changes: +Other changes: +~~~~~~~~~~~~~~~ - * Several new and improved license detection rules have been added. + - Several new and improved license detection rules have been added. The logic of detection has been refined to handle some rare corner cases. The underscore character "_" is treated as part of a license word and the handling of negative and false_positive license rules has been simplified. - * Several issues with dealing with codebase with non-ASCII, + - Several issues with dealing with codebase with non-ASCII, non-UTF-decodable file paths and other filesystem encodings-related bug have been fixed. - * Several copyright detection bugs have been fixed. - * PHP Composer and RPM packages are now detected with --package - * Several other package types are now detected with --package even + - Several copyright detection bugs have been fixed. + - PHP Composer and RPM packages are now detected with --package + - Several other package types are now detected with --package even though only a few attribute may be returned for now until full parser are added. - * Several parsing NPM packages bugs have been fixed. - * There are some minor performance improvements when scanning some + - Several parsing NPM packages bugs have been fixed. + - There are some minor performance improvements when scanning some large file for licenses. @@ -973,22 +995,22 @@ v2.1.0 (2017-09-22) This is a minor release with several new and improved features and bug fixes but no significant API changes. - * New plugin architecture by @yashdsaraf + - New plugin architecture by @yashdsaraf - * we can now have pre-scan, post-scan and output format plugins - * there is a new CSV output format and some example, experimental plugins - * the CLI UI has changed to better support these plugins + - we can now have pre-scan, post-scan and output format plugins + - there is a new CSV output format and some example, experimental plugins + - the CLI UI has changed to better support these plugins - * New and improved licenses and license detection rules including + - New and improved licenses and license detection rules including support for EPL-2.0 and OpenJDK-related licensing and synchronization with the latest SPDX license list - * Multiple bug fixes such as: + - Multiple bug fixes such as: - * Ensure that authors are reported even if there is no copyright #669 - * Fix Maven package POM parsing infinite loop #721 - * Improve handling of weird non-unicode byte paths #688 and #706 - * Improve PDF parsing to avoid some crash #723 + - Ensure that authors are reported even if there is no copyright #669 + - Fix Maven package POM parsing infinite loop #721 + - Improve handling of weird non-unicode byte paths #688 and #706 + - Improve PDF parsing to avoid some crash #723 Credits: Many thanks to everyone that contributed to this release with code and bug reports (and this list is likely missing some) @@ -1015,13 +1037,13 @@ v2.0.1 (2017-07-03) This is a minor release with minor new and improved features and bug fixes. - * New and improved license detection, including refined match scoring + - New and improved license detection, including refined match scoring for #534 - * Bug fixed in License detection leading to a very long scan time for some + - Bug fixed in License detection leading to a very long scan time for some rare JavaScript files. Reported by @jarnugirdhar - * New "base_name" attribute returned with file information. Reported by + - New "base_name" attribute returned with file information. Reported by @chinyeungli - * Bug fixed in Maven POM package detection. Reported by @kalagp + - Bug fixed in Maven POM package detection. Reported by @kalagp v2.0.0 (2017-06-23) @@ -1032,86 +1054,91 @@ v2.0.0 (2017-06-23) Some of the key highlights include: - * License: +License detection: +~~~~~~~~~~~~~~~~~~~ - * Brand new, faster and accurate detection engine using multiple + - Brand new, faster and accurate detection engine using multiple techniques eventually doing multiple exhaustive comparisons of a scanned file content against all the license and rule texts. - * Several new licenses and over 2500+ new and improved licenses + - Several new licenses and over 2500+ new and improved licenses detection rules have been added making the detection significantly better (and weirdly enough faster too as a side-effect of the new detection engine) - * the matched license text can be optionally returned with the + - the matched license text can be optionally returned with the `--license-text` option - * The detection accuracy has been benchmarked against other detection + - The detection accuracy has been benchmarked against other detection engine and ScanCode has shown to be more accurate and comprehensive than all the other engines reviewed. - * improved scoring of license matches + - improved scoring of license matches - * Package and dependencies: +Package and dependencies: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - * new and improved detection of multiple package formats: NPM, Maven, + - new and improved detection of multiple package formats: NPM, Maven, NuGet, PHP Composer, Python Pypi and RPM. In most cases direct, declared dependencies are also reported. - * several additional package formats will be reported in the future + - several additional package formats will be reported in the future version. - * note: the structure of Packages data is evolving and should not be + - note: the structure of Packages data is evolving and should not be considered API at this stage - * Scan outputs: +Scan outputs: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - * New SPDX tag/values and RDF outputs. + - New SPDX tag/values and RDF outputs. - * new compact JSON format (the pretty printed format is still + - new compact JSON format (the pretty printed format is still available with the the `json-pp` format). The JSON format has been changed significantly and is closer to a documented, standard format that we call the ABC data format. - * Minor refinements on the html and html-app format. Note that the + - Minor refinements on the html and html-app format. Note that the html-app format will be deprecated and replaced by the new AboutCode Manager desktop app (electron-based) in future versions. - * Copyright: Improved copyright detection: several false positive are + - Copyright: Improved copyright detection: several false positive are no longer returned and copyrights are more accurate - * Archive: support for shallow extraction and support for new archive + - Archive: support for shallow extraction and support for new archive types (such as Spring boot shell archives) - * Performance: +Performance: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - * Everything is generally faster, and license detection performance + - Everything is generally faster, and license detection performance has been significantly improved. - * Scans can run on multiple processes in parallel with the new + - Scans can run on multiple processes in parallel with the new `--processes` option speeding up things even further. A scan of a full Debian pool of source packages was reported to scan in about 11 hours (on a rather beefy 144 cores, 256GB machine) - * Reduced memory usage with the use of caching + - Reduced memory usage with the use of caching - * Other notes: +Other notes: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - * This is the last release with Linux 32 bits architecture support - * The scan of a file can be interrupted after a timeout with a 120 + - This is the last release with Linux 32 bits architecture support + - The scan of a file can be interrupted after a timeout with a 120 seconds default - * ScanCode is now available as a library on the Pypi Python package + - ScanCode is now available as a library on the Pypi Python package index for use as a library. The documentation for the library usage will follow in future versions - * New `--ignore` option: You can optionally ignore certain file and + - New `--ignore` option: You can optionally ignore certain file and paths during a scan - * New `--diag option`: display additional debug and diagnostic data - * The scanned file paths can now reported as relative, rooted or + - New `--diag option`: display additional debug and diagnostic data + - The scanned file paths can now reported as relative, rooted or absolute with new command line options with a default to a rooted path. @@ -1119,7 +1146,8 @@ v2.0.0 (2017-06-23) Thank you to all contributors to this release and the 200+ stars and 60+ forks on GitHub! - * Credits in alphabetical order: +Credits in alphabetical order: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Alexander Lisianoi Avi Aryan @@ -1153,24 +1181,26 @@ v2.0.0 (2017-06-23) v1.6.0 (2016-01-29) ------------------- -* New features +New features +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - * The HTML app now displays a copyright holder summary graphic - * HTML app ui enhancements - * File extraction fixes - * New and improved license and detection rules - * Other minor improvements and minor bug fixes + - The HTML app now displays a copyright holder summary graphic + - HTML app ui enhancements + - File extraction fixes + - New and improved license and detection rules + - Other minor improvements and minor bug fixes v1.5.0 (2015-12-15) ------------------- -* New features +New features +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - * The HTML app now display a license summary graphic - * Copyright holders and Authors are now collected together with copyrights - * New email and url scan options: scan for URLs and emails - * New and improved license and detection rules + - The HTML app now display a license summary graphic + - Copyright holders and Authors are now collected together with copyrights + - New email and url scan options: scan for URLs and emails + - New and improved license and detection rules These scans are for now only available in the JSON output @@ -1178,9 +1208,10 @@ These scans are for now only available in the JSON output v1.4.3 (2015-12-03) ------------------- -* Minor bug fix +Minor bug fix +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - * In the HTML app, the scanned path was hardcoded as + - In the HTML app, the scanned path was hardcoded as scancode-toolkit2/scancode-toolkit/samples instead of displaying the path that was scanned. @@ -1188,11 +1219,12 @@ v1.4.3 (2015-12-03) v1.4.2 (2015-12-03) ------------------- -* Minor features and bug fixes +Minor features and bug fixes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - * The release archives were missing some code (packagedcode) - * Improved --quiet option for command line operations - * New support for custom Jinja templates for the HTML output. + - The release archives were missing some code (packagedcode) + - Improved --quiet option for command line operations + - New support for custom Jinja templates for the HTML output. The template also has access to the whole License object to output full license texts or other data. Thanks to @ened Sebastian Roth for this. @@ -1200,107 +1232,117 @@ v1.4.2 (2015-12-03) v1.4.0 (2015-11-24) ------------------- -* New features and bug fixes +New features and bug fixes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - * Separated JSON data into a separate file for the html app. + - Separated JSON data into a separate file for the html app. https://github.com/nexB/scancode-toolkit/issues/38 - * Added support for scanning package and file information. - * Added file and package information to the html-app and html output. + - Added support for scanning package and file information. + - Added file and package information to the html-app and html output. https://github.com/nexB/scancode-toolkit/issues/76 - * improved CSS for html format output + - improved CSS for html format output https://github.com/nexB/scancode-toolkit/issues/12 - * New and improved licenses rules and licenses. - * Added support for nuget .nupkg as archives. - * Created new extractcode standalone command for + - New and improved licenses rules and licenses. + - Added support for nuget .nupkg as archives. + - Created new extractcode standalone command for https://github.com/nexB/scancode-toolkit/issues/52 Extracting archives is no longer part of the scancode command. - * Scancode can now be called from anywhere. + - Scancode can now be called from anywhere. https://github.com/nexB/scancode-toolkit/issues/55 - * Various minor improvements for copyright detection. + - Various minor improvements for copyright detection. v1.3.1 (2015-07-27) ------------------- -* Minor bug fixes. +Minor bug fixes. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - * fixed --verbose option https://github.com/nexB/scancode-toolkit/issues/37 - * Improved copyright and license detections (new rules, etc.) - * other minor improvements and minor bug fixes: + - fixed --verbose option https://github.com/nexB/scancode-toolkit/issues/37 + - Improved copyright and license detections (new rules, etc.) + - other minor improvements and minor bug fixes: temptative fix for https://github.com/nexB/scancode-toolkit/issues/4 - * fixed for unsupported inclusion of Linux-32 bits pre-built binaries + - fixed for unsupported inclusion of Linux-32 bits pre-built binaries https://github.com/nexB/scancode-toolkit/issues/33 v1.3.0 (2015-07-24) ------------------- -* New features and bug fixes +New features and bug fixes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - * scancode now ignores version control directories by default (.svn, .git, etc) - * Improved copyright and license detections (new rules, etc.) - * other minor improvements and minor bug fixes. - * experimental and unsupported inclusion of Linux-32 bits pre-built binaries + - scancode now ignores version control directories by default (.svn, .git, etc) + - Improved copyright and license detections (new rules, etc.) + - other minor improvements and minor bug fixes. + - experimental and unsupported inclusion of Linux-32 bits pre-built binaries v1.2.4 (2015-07-22) ------------------- -* Minor bug fixes. +Minor bug fixes. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - * Improved copyright detections. - * can scan a single file located in the installation directory - * other minor improvements and minor bug fixes. + - Improved copyright detections. + - can scan a single file located in the installation directory + - other minor improvements and minor bug fixes. v1.2.3 (2015-07-16) ------------------- -* Major bug fixes on Windows. +Major bug fixes on Windows. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - * This is a major bug fix release for Windows. + - This is a major bug fix release for Windows. The -extract option was not working on Windows in previous 1.2.x pre-releases v1.2.2 (2015-07-14) ------------------- -* Minor bug fixes. +Minor bug fixes. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - * Support relative path when doing extract. + - Support relative path when doing extract. v1.2.1 (2015-07-13) ------------------- -* Minor bug fixes. +Minor bug fixes. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - * Improper extract warning handling + - Improper extract warning handling v1.2.0 (2015-07-13) ------------------- -* Major bug fixes. +Major bug fixes. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - * Fixed issue #26: Slow --extract - * Added support for progress during extraction (#27) + - Fixed issue #26: Slow --extract + - Added support for progress during extraction (#27) v1.1.0 (2015-07-06) ------------------- -* Minor bug fixes. +Minor bug fixes. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - * Enforced exclusivity of --extract option - * Improved command line help. - * Added continuous testing with Travis and Appveyor and fixed tests + - Enforced exclusivity of --extract option + - Improved command line help. + - Added continuous testing with Travis and Appveyor and fixed tests v1.0.0 (2015-06-30) ------------------- -* Initial release. +Initial release. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - * support for scanning licenses and copyrights - * simple command line with html, html-app and JSON formats output + - support for scanning licenses and copyrights + - simple command line with html, html-app and JSON formats output From 03efb04d70d201d8828b2f6d8286809db700c3cc Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Tue, 8 Jun 2021 14:15:15 +0200 Subject: [PATCH 475/709] Support holder as copyright #216 Signed-off-by: Philippe Ombredanne --- src/cluecode/copyrights.py | 10 +++++++--- tests/cluecode/data/copyrights/holders.txt | 7 +++++++ tests/cluecode/data/copyrights/holders.txt.yml | 9 +++++++++ tests/cluecode/data/holders/holder_young_c-c.c.yml | 4 ++++ 4 files changed, 27 insertions(+), 3 deletions(-) create mode 100644 tests/cluecode/data/copyrights/holders.txt create mode 100644 tests/cluecode/data/copyrights/holders.txt.yml diff --git a/src/cluecode/copyrights.py b/src/cluecode/copyrights.py index d2798674727..7cf3635e1d6 100644 --- a/src/cluecode/copyrights.py +++ b/src/cluecode/copyrights.py @@ -2133,9 +2133,6 @@ def as_str(cls, node, ignores=frozenset(), include_allrights=False): # (C) 2001-2009, Takuo KITAME, Bart Martens, and Canonical, LTD COPYRIGHT: { } #26381 - #Copyright Holders Kevin Vandersloot Erik Johnsson - COPYRIGHT: { } #26383 - #Copyright (c) 1995, 1996 - Blue Sky Software Corp. COPYRIGHT: { } #2639 @@ -2301,6 +2298,12 @@ def as_str(cls, node, ignores=frozenset(), include_allrights=False): # Copyright (c) 2008 Intel Corporation / Qualcomm Inc. COPYRIGHT: { } #copydash-co + #Copyright Holders Kevin Vandersloot Erik Johnsson + COPYRIGHT: { } #83000 + + #holder is Tim Hudson (tjh@mincom.oz.au). + COPYRIGHT: { } #83001 + ####################################### # Authors ####################################### @@ -2712,6 +2715,7 @@ def refine_names(s, prefixes): 'reserved', 'held', 'by', + 'is', ]) )) diff --git a/tests/cluecode/data/copyrights/holders.txt b/tests/cluecode/data/copyrights/holders.txt new file mode 100644 index 00000000000..afc49d43fd5 --- /dev/null +++ b/tests/cluecode/data/copyrights/holders.txt @@ -0,0 +1,7 @@ + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@mincom.oz.au). + + + +Copyright Holders Kevin Vandersloot Erik Johnsson diff --git a/tests/cluecode/data/copyrights/holders.txt.yml b/tests/cluecode/data/copyrights/holders.txt.yml new file mode 100644 index 00000000000..e64f5e056b0 --- /dev/null +++ b/tests/cluecode/data/copyrights/holders.txt.yml @@ -0,0 +1,9 @@ +what: + - copyrights + - holders +copyrights: + - holder is Tim Hudson (tjh@mincom.oz.au) + - Copyright Holders Kevin Vandersloot Erik Johnsson +holders: + - Tim Hudson + - Kevin Vandersloot Erik Johnsson diff --git a/tests/cluecode/data/holders/holder_young_c-c.c.yml b/tests/cluecode/data/holders/holder_young_c-c.c.yml index a38319daca7..8c4a0284064 100644 --- a/tests/cluecode/data/holders/holder_young_c-c.c.yml +++ b/tests/cluecode/data/holders/holder_young_c-c.c.yml @@ -3,6 +3,10 @@ what: - holders_summary holders: - Eric Young + - Tim Hudson holders_summary: - value: Eric Young count: 1 + - value: Tim Hudson + count: 1 + From 2500df5843c9dbda27f99bcd499a53265e18d1d5 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Tue, 8 Jun 2021 14:35:19 +0200 Subject: [PATCH 476/709] Format code and apply cosmetic refactorings Signed-off-by: Philippe Ombredanne --- src/cluecode/copyrights.py | 400 +++++++++++++++++++++++-------------- 1 file changed, 250 insertions(+), 150 deletions(-) diff --git a/src/cluecode/copyrights.py b/src/cluecode/copyrights.py index 7cf3635e1d6..b6721be82c2 100644 --- a/src/cluecode/copyrights.py +++ b/src/cluecode/copyrights.py @@ -7,11 +7,11 @@ # See https://github.com/nexB/scancode-toolkit for support or download. # See https://aboutcode.org for more information about nexB OSS projects. # -from collections import deque -from functools import partial import os import re import sys +from collections import deque +from functools import partial from time import time from cluecode import copyrights_hint @@ -48,27 +48,42 @@ def logger_debug(*args): The process consists in: - prepare and cleanup text - - identify regions of text that may contain copyright (using hints) + - identify regions of text that may contain copyright (using hints). + These are called "candidates". - tag the text for parts-of-speech (POS) to identify various copyright - statements parts such as dates, names ("named entities"), etc. This is done - using NLTK POS tagging + statements parts such as dates, companues, names ("named entities"), etc. + This is done using NLTK POS tagging. - feed the tagged text to a parsing grammar describing actual copyright - statements - - yield copyright statements,holder and authors with start and end line + statements (also using NLTK) + - yield copyright statements, holder and authors with start and end line from the parse tree with some post-detection cleanups. """ -def detect_copyrights(location, copyrights=True, holders=True, authors=True, - include_years=True, include_allrights=False, - demarkup=True, - deadline=sys.maxsize): +def detect_copyrights( + location, + copyrights=True, + holders=True, + authors=True, + include_years=True, + include_allrights=False, + demarkup=True, + deadline=sys.maxsize, +): """ Yield tuples of (detection type, detected string, start line, end line) - detected in file at `location`. - Include years in copyrights if include_years is True. - Valid detection types are: copyrights, authors, holders. - These are included in the yielded tuples based on the values of `copyrights=True`, `holders=True`, `authors=True`, + detected in the file at ``location``. + + "detection type" is one of : "copyrights", "authors", "holders". + + These are included in the yielded tuples based on the values of + ``copyrights=True``, ``holders=True``, ``authors=True`` + + - Include years in copyrights if ``include_years`` is True. + - Include trailing "all rights reserved"-style mentions if + ``include_allrights`` is True. + - Strip markup from text if ``demarkup`` is True. + - Run for up to ``deadline`` seconds and return results found so far. """ from textcode.analysis import numbered_text_lines numbered_lines = numbered_text_lines(location, demarkup=demarkup) @@ -88,16 +103,33 @@ def detect_copyrights(location, copyrights=True, holders=True, authors=True, deadline=deadline) -def detect_copyrights_from_lines(numbered_lines, copyrights=True, holders=True, authors=True, - include_years=True, include_allrights=False, - deadline=sys.maxsize): +def detect_copyrights_from_lines( + numbered_lines, + copyrights=True, + holders=True, + authors=True, + include_years=True, + include_allrights=False, + deadline=sys.maxsize, +): """ Yield tuples of (detection type, detected string, start line, end line) - detected in numbered lines - Include years in copyrights if include_years is True. - Valid detection types are: copyrights, authors, holders. - These are included in the yielded tuples based on the values of `copyrights=True`, `holders=True`, `authors=True`, + detected in a ``numbered_lines`` sequence of tuples of (line numer, text) + + "detection type" is one of : "copyrights", "authors", "holders". + + These are included in the yielded tuples based on the values of + ``copyrights=True``, ``holders=True``, ``authors=True`` + + - Include years in copyrights if ``include_years`` is True. + - Include trailing "all rights reserved"-style mentions if + ``include_allrights`` is True. + - Strip markup from text if ``demarkup`` is True. + - Run for up to ``deadline`` seconds and return results found so far. """ + if not numbered_lines: + return + detector = CopyrightDetector() candidate_lines_groups = candidate_lines(numbered_lines) @@ -111,7 +143,8 @@ def detect_copyrights_from_lines(numbered_lines, copyrights=True, holders=True, if TRACE: from pprint import pformat can = pformat(candidates, width=160) - logger_debug(f' detect_copyrights_from_lines: processing candidates group:\n{can}') + logger_debug( + f' detect_copyrights_from_lines: processing candidates group:\n{can}') detections = detector.detect( numbered_lines=candidates, @@ -152,18 +185,32 @@ def __init__(self): self.tagger = nltk.RegexpTagger(patterns) self.chunker = nltk.RegexpParser(grammar, trace=TRACE_DEEP) - def detect(self, numbered_lines, - copyrights=True, holders=True, authors=True, - include_years=True, include_allrights=False): + def detect(self, + numbered_lines, + copyrights=True, + holders=True, + authors=True, + include_years=True, + include_allrights=False, + ): """ - Yield tuples of (detection type, detected value, start_line, end_line) - where the type is one of copyrights, authors, holders. Use an iterable - of `numbered_lines` tuples of (line number, line text). - If `include_years` is False, the copyright statement do not have years - or year range information. + Yield tuples of (detection type, detected string, start line, end line) + detected in a ``numbered_lines`` sequence of tuples of (line numer, text) + + "detection type" is one of : "copyrights", "authors", "holders". + + These are included in the yielded tuples based on the values of + ``copyrights=True``, ``holders=True``, ``authors=True`` + + - Include years in copyrights statements if ``include_years`` is True. + - Include trailing "all rights reserved"-style mentions if + ``include_allrights`` is True. + - Strip markup from text if ``demarkup`` is True. """ from nltk.tree import Tree numbered_lines = list(numbered_lines) + if not numbered_lines: + return start_line = numbered_lines[0][0] end_line = numbered_lines[-1][0] @@ -224,14 +271,19 @@ def detect(self, numbered_lines, tree_node_label = tree_node.label() if 'COPYRIGHT' in tree_node_label: - if TRACE: logger_debug('CopyrightDetector:Copyright tree node: ' + str(tree_node)) + if TRACE: + logger_debug(f'CopyrightDetector.detect: tree node: {tree_node}') if node_text and node_text.strip(): refined = refine_copyright(node_text) # checking for junk is a last resort if refined and refined.lower() not in COPYRIGHTS_JUNK: if copyrights: - if TRACE: logger_debug('CopyrightDetector: detected copyrights:', refined, start_line, end_line) + if TRACE: + logger_debug( + 'CopyrightDetector.detect: detected copyrights:', + refined, start_line, end_line, + ) yield 'copyrights', refined, start_line, end_line if holders: @@ -248,27 +300,40 @@ def detect(self, numbered_lines, if refined_holder: yield 'holders', refined_holder, start_line, end_line - if TRACE: logger_debug('CopyrightDetector: detected holders:', refined_holder, start_line, end_line) + if TRACE: + logger_debug( + 'CopyrightDetector: detected holders:', + refined_holder, start_line, end_line + ) elif authors and tree_node_label == 'AUTHOR': node_text = as_str(tree_node, ignores=non_authors_labels) refined_auth = refine_author(node_text) if refined_auth and refined_auth.lower() not in AUTHORS_JUNK: - if TRACE: logger_debug('CopyrightDetector: detected authors:', refined_auth, start_line, end_line) + if TRACE: logger_debug( + 'CopyrightDetector: detected authors:', + refined_auth, start_line, end_line + ) yield 'authors', refined_auth, start_line, end_line def get_tokens(self, numbered_lines): """ - Return an iterable of tokens from lines of text. + Return an iterable of tokens build from a ``numbered_lines`` sequence of + tuples of (line number, text). """ tokens = [] tokens_append = tokens.append for _line_number, line in numbered_lines: - if TRACE_TOK: logger_debug(' get_tokens: bare line: ' + repr(line)) + if TRACE_TOK: + logger_debug(' get_tokens: bare line: ' + repr(line)) + line = prepare_text_line(line) - if TRACE_TOK: logger_debug(' get_tokens:preped line: ' + repr(line)) + + if TRACE_TOK: + logger_debug(' get_tokens:preped line: ' + repr(line)) + for tok in splitter(line): # strip trailing single quotes and ignore empties tok = tok.strip("' ") @@ -278,6 +343,7 @@ def get_tokens(self, numbered_lines): tok = tok.lstrip('@').strip() if tok and tok not in (':',): tokens_append(tok) + if TRACE_TOK: logger_debug(' get_tokens:tokens: ' + repr(tokens)) logger_debug(' get_tokens: ALL tokens collected') @@ -289,7 +355,6 @@ def as_str(cls, node, ignores=frozenset(), include_allrights=False): Return a parse tree node as a space-normalized string. Optionally filters node labels provided in the ignores set. """ - # if TRACE_DEEP: logger_debug('CopyrightDetector: as_str: starting node.leaves():', node.leaves()) if ignores: leaves = [(text, label) for text, label in node.leaves() @@ -310,19 +375,13 @@ def as_str(cls, node, ignores=frozenset(), include_allrights=False): filtered[-1][1] == 'RIGHT' and filtered[-2][1] in ('NN', 'CAPS', 'NNP')): - # if TRACE_DEEP: logger_debug(' droping:', filtered[-2], filtered[-1], (text, label),) - # if TRACE_DEEP: logger_debug(' before droping: filtered:', filtered) filtered = filtered[:-2] - # if TRACE_DEEP: logger_debug(' after droping: filtered:', filtered) else: - # if TRACE_DEEP: logger_debug(' keeping:', (text, label)) filtered.append((text, label)) - # if TRACE_DEEP: logger_debug(' final: filtered:', filtered) - # if TRACE_DEEP: logger_debug() - node_string = u' '.join(t for t, _ in filtered) - return u' '.join(node_string.split()) + node_string = ' '.join(t for t, _ in filtered) + return ' '.join(node_string.split()) ################################################################################ # POS TAGGING AND CHUNKING @@ -463,7 +522,7 @@ def as_str(cls, node, ignores=frozenset(), include_allrights=False): ############################################################################ # Combo of many (3+) letters and punctuations groups without spaces is likely junk - # "AEO>>,o>>u'!xeoI?o?O1/4thuA/" + # "AEO>>,o>>'!xeoI?o?O1/4thuA/" # (r'((\w+\W+){3,})+', 'JUNK'), # CamELCaseeXXX is typcally JUNK such as code variable names @@ -1816,7 +1875,8 @@ def as_str(cls, node, ignores=frozenset(), include_allrights=False): ANDCO: { } #940 ANDCO: { +} #950 - # Copyright 2005-2007 Christopher Montgomery, Jean-Marc Valin, Timothy Terriberry, CSIRO, and other contributors + # Copyright 2005-2007 Christopher Montgomery, Jean-Marc Valin, + # Timothy Terriberry, CSIRO, and other contributors ANDCO: { +} #960 COMPANY: { +} #970 @@ -1884,7 +1944,8 @@ def as_str(cls, node, ignores=frozenset(), include_allrights=False): COMPANY: {+} #1480 - # Copyright (c) 2002 World Wide Web Consortium, (Massachusetts Institute of Technology, Institut National de Recherche en Informatique et en Automatique, Keio University). + # Copyright (c) 2002 World Wide Web Consortium, (Massachusetts Institute of + # Technology, Institut National de Recherche en Informatique et en Automatique, Keio University). COMPANY: { } #1490 # Oracle and/or its affiliates. @@ -1896,7 +1957,8 @@ def as_str(cls, node, ignores=frozenset(), include_allrights=False): # UC Berkeley and its contributors NAME: { } #1412 - #copyrighted by Douglas C. Schmidt and his research group at Washington University, University of California, Irvine, and Vanderbilt University, Copyright (c) 1993-2008, + # copyrighted by Douglas C. Schmidt and his research group at Washington University, + # University of California, Irvine, and Vanderbilt University, Copyright (c) 1993-2008, COMPANY: { +} #1413 # The University of Utah and the Regents of the University of California @@ -2402,18 +2464,18 @@ def refine_copyright(c): Refine a detected copyright string. FIXME: the grammar should not allow this to happen. """ - c = u' '.join(c.split()) + c = ' '.join(c.split()) c = strip_some_punct(c) # this catches trailing slashes in URL for consistency - c = c.strip(u'/ ') + c = c.strip('/ ') # c = fix_trailing_space_dot(c) c = strip_all_unbalanced_parens(c) c = remove_same_extra_words(c) - c = u' '.join(c.split()) + c = ' '.join(c.split()) c = remove_dupe_copyright_words(c) - c = strip_prefixes(c, prefixes=set([u'by', u'c'])) + c = strip_prefixes(c, prefixes=set(['by', 'c'])) c = c.strip() - c = c.strip(u'+') + c = c.strip('+') c = strip_balanced_edge_parens(c) c = strip_suffixes(c, suffixes=COPYRIGHTS_SUFFIXES) c = strip_trailing_period(c) @@ -2428,7 +2490,7 @@ def refine_holder(h): """ # handle the acse where "all right reserved" is in the middle and the # company name contains the word all. - if u'reserved' in h.lower(): + if 'reserved' in h.lower(): prefixes = HOLDERS_PREFIXES_WITH_ALL else: prefixes = HOLDERS_PREFIXES @@ -2814,7 +2876,7 @@ def strip_prefixes(s, prefixes=()): # author vs copyright grammar in two while s and s[0].lower() in prefixes: s = s[1:] - s = u' '.join(s) + s = ' '.join(s) return s @@ -2826,7 +2888,7 @@ def strip_suffixes(s, suffixes=()): s = s.split() while s and s[-1].lower() in suffixes: s = s[:-1] - s = u' '.join(s) + s = ' '.join(s) return s @@ -2869,12 +2931,12 @@ def refine_date(c): def strip_leading_numbers(s): """ - Return a string removing leading words made only of numbers. + Return a string removing leading words made only of digits. """ s = s.split() while s and s[0].isdigit(): s = s[1:] - return u' '.join(s) + return ' '.join(s) def strip_some_punct(s): @@ -3017,7 +3079,7 @@ def prep_line(line): for candidate and other checks or None. """ line = prepare_text_line(line.lower(), dedeb=False) - chars_only = remove_non_chars(u'', line) + chars_only = remove_non_chars('', line) return line, chars_only.strip() @@ -3032,28 +3094,30 @@ def is_candidate(prepared_line): return False if is_only_digit_and_punct(prepared_line): - if TRACE: logger_debug('is_candidate: is_only_digit_and_punct:\n%(prepared_line)r' % locals()) + if TRACE: + logger_debug( + f'is_candidate: is_only_digit_and_punct:\n{prepared_line!r}') + return False if copyrights_hint.years(prepared_line): - # if TRACE: logger_debug('is_candidate: year in line:\n%(prepared_line)r' % locals()) return True else: - # if TRACE: logger_debug('is_candidate: NOT year in line:\n%(prepared_line)r' % locals()) pass for marker in copyrights_hint.statement_markers: if marker in prepared_line: - # if TRACE: logger_debug('is_candidate: %(marker)r in line:\n%(prepared_line)r' % locals()) return True -def is_inside_statement(chars_only_line): +def is_inside_statement( + chars_only_line, + markers=('copyright', 'copyrights', 'copyrightby',) + copyrights_hint.all_years, +): """ Return True if a line ends with some strings that indicate we are still inside a statement. """ - markers = ('copyright', 'copyrights', 'copyrightby',) + copyrights_hint.all_years return chars_only_line and chars_only_line.endswith(markers) @@ -3062,13 +3126,16 @@ def is_end_of_statement(chars_only_line): Return True if a line ends with some strings that indicate we are at the end of a statement. """ - return chars_only_line and chars_only_line.endswith(('rightreserved', 'rightsreserved')) + return ( + chars_only_line + and chars_only_line.endswith(('rightreserved', 'rightsreserved')) + ) def candidate_lines(numbered_lines): """ - Yield groups of candidate lines as list where each list element is a tuple - of (line number, line text) given an iterable of numbered_lines as tuples + Yield groups of candidate line lists where each list element is a tuple of + (line number, line text) given an iterable of ``numbered_lines`` as tuples of (line number, line text) . A candidate line is a line of text that may contain copyright statements. @@ -3084,7 +3151,10 @@ def candidate_lines(numbered_lines): # the previous line (chars only) previous_chars = None for numbered_line in numbered_lines: - if TRACE: logger_debug('# candidate_lines: evaluating line:' + repr(numbered_line)) + if TRACE: + logger_debug( + f'# candidate_lines: evaluating line: {numbered_line!r}') + line_number, line = numbered_line # FIXME: we should get the prepared text from here and return @@ -3097,7 +3167,10 @@ def candidate_lines(numbered_lines): if TRACE: cands = list(candidates) - logger_debug(' candidate_lines: is EOS: yielding candidates\n %(cands)r\n\n' % locals()) + logger_debug( + ' candidate_lines: is EOS: yielding candidates\n' + f' {cands}r\n\n' + ) yield list(candidates) candidates_clear() @@ -3119,16 +3192,29 @@ def candidate_lines(numbered_lines): candidates_append(numbered_line) previous_chars = chars_only - if TRACE: logger_debug(' candidate_lines: line is candidate') + if TRACE: + logger_debug(' candidate_lines: line is candidate') elif in_copyright > 0: - if ((not chars_only) - and (not previous_chars.endswith(('copyright', 'copyrights', 'copyrightsby', 'copyrightby',)))): + if ( + (not chars_only) + and ( + not previous_chars.endswith(( + 'copyright', + 'copyrights', + 'copyrightsby', + 'copyrightby', + )) + ) + ): # completely empty or only made of punctuations if TRACE: cands = list(candidates) - logger_debug(' candidate_lines: empty: yielding candidates\n %(cands)r\n\n' % locals()) + logger_debug( + ' candidate_lines: empty: yielding candidates\n' + f' {cands}r\n\n' + ) yield list(candidates) candidates_clear() @@ -3139,12 +3225,17 @@ def candidate_lines(numbered_lines): candidates_append(numbered_line) # and decrement our state in_copyright -= 1 - if TRACE: logger_debug(' candidate_lines: line is in copyright') + if TRACE: + logger_debug(' candidate_lines: line is in copyright') elif candidates: if TRACE: cands = list(candidates) - logger_debug(' candidate_lines: not in COP: yielding candidates\n %(cands)r\n\n' % locals()) + logger_debug( + ' candidate_lines: not in COP: yielding candidates\n' + f' {cands}r\n\n' + ) + yield list(candidates) candidates_clear() in_copyright = 0 @@ -3154,7 +3245,10 @@ def candidate_lines(numbered_lines): if candidates: if TRACE: cands = list(candidates) - logger_debug('candidate_lines: finally yielding candidates\n %(cands)r\n\n' % locals()) + logger_debug( + 'candidate_lines: finally yielding candidates\n' + f' {cands}r\n\n' + ) yield list(candidates) @@ -3165,24 +3259,26 @@ def candidate_lines(numbered_lines): # this catches tags but not does not remove the text inside tags remove_tags = re.compile( - r'<' - r'[(--)\?\!\%\/]?' - r'[a-gi-vx-zA-GI-VX-Z][a-zA-Z#\"\=\s\.\;\:\%\&?!,\+\*\-_\/]*' - r'[a-zA-Z0-9#\"\=\s\.\;\:\%\&?!,\+\*\-_\/]+' - r'\/?>', - re.MULTILINE | re.UNICODE - ).sub + r'<' + r'[(--)\?\!\%\/]?' + r'[a-gi-vx-zA-GI-VX-Z][a-zA-Z#\"\=\s\.\;\:\%\&?!,\+\*\-_\/]*' + r'[a-zA-Z0-9#\"\=\s\.\;\:\%\&?!,\+\*\-_\/]+' + r'\/?>', + re.MULTILINE | re.UNICODE +).sub def strip_markup(text, dedeb=True): """ - Strip markup tags from text. - If `dedeb` is True, also remove "Debian" markup tags. + Strip markup tags from ``text``. + + If ``dedeb`` is True, remove "Debian" markup tags seen in + older copyright files. """ - text = remove_tags(u' ', text) + text = remove_tags(' ', text) # Debian copyright file markup if dedeb: - return text.replace(u'', u'').replace(u'', u'').replace(u'', u'') + return text.replace('', '').replace('', '').replace('', '') else: return text @@ -3206,79 +3302,83 @@ def strip_markup(text, dedeb=True): def prepare_text_line(line, dedeb=True, to_ascii=True): """ - Prepare a unicode `line` of text for copyright detection. - If `dedeb` is True, also remove "Debian" markup tags. + Prepare a text ``line`` for copyright detection. + + If ``dedeb`` is True, remove "Debian" markup tags seen in + older copyright files. + + If ``to_ascii`` convert the text to ASCiI characters. """ # remove some junk in man pages: \(co line = (line - .replace(u'\\\\ co', u' ') - .replace(u'\\ co', u' ') - .replace(u'(co ', u' ') + .replace('\\\\ co', ' ') + .replace('\\ co', ' ') + .replace('(co ', ' ') ) - line = remove_printf_format_codes(u' ', line) + line = remove_printf_format_codes(' ', line) # un common comment line prefixes - line = remove_comment_markers(u' ', line) - line = remove_man_comment_markers(u' ', line) + line = remove_comment_markers(' ', line) + line = remove_man_comment_markers(' ', line) line = (line # C and C++ style markers - .replace(u'^//', u' ') - .replace(u'/*', u' ').replace(u'*/', u' ') + .replace('^//', ' ') + .replace('/*', ' ').replace('*/', ' ') # un common pipe chars in some ascii art - .replace(u'|', u' ') + .replace('|', ' ') # normalize copyright signs and spacing around them - .replace(u'"Copyright', u'" Copyright') - .replace(u'( C)', u' (c) ') - .replace(u'(C)', u' (c) ') - .replace(u'(c)', u' (c) ') + .replace('"Copyright', '" Copyright') + .replace('( C)', ' (c) ') + .replace('(C)', ' (c) ') + .replace('(c)', ' (c) ') # the case of \251 is tested by 'weirdencoding.h' - .replace(u'©', u' (c) ') - .replace(u'\251', u' (c) ') - .replace(u'©', u' (c) ') - .replace(u'©', u' (c) ') - .replace(u'©', u' (c) ') - .replace(u'©', u' (c) ') - .replace(u'©', u' (c) ') - .replace(u'u00A9', u' (c) ') - .replace(u'u00a9', u' (c) ') - .replace(u'\xa9', u' (c) ') - .replace(u'\\XA9', u' (c) ') + .replace('©', ' (c) ') + .replace('\251', ' (c) ') + .replace('©', ' (c) ') + .replace('©', ' (c) ') + .replace('©', ' (c) ') + .replace('©', ' (c) ') + .replace('©', ' (c) ') + .replace('u00A9', ' (c) ') + .replace('u00a9', ' (c) ') + .replace('\xa9', ' (c) ') + .replace('\\XA9', ' (c) ') # \xc2 is a  - .replace(u'\xc2', u'') - .replace(u'\\xc2', u'') + .replace('\xc2', '') + .replace('\\xc2', '') # not really a dash: an emdash - .replace(u'–', u'-') + .replace('–', '-') # TODO: add more HTML entities replacements # see http://www.htmlhelp.com/reference/html40/entities/special.html # convert html entities CR LF to space - .replace(u' ', u' ') - .replace(u' ', u' ') - .replace(u' ', u' ') + .replace(' ', ' ') + .replace(' ', ' ') + .replace(' ', ' ') # spaces - .replace(u' ', u' ') - .replace(u' ', u' ') - .replace(u' ', u' ') + .replace(' ', ' ') + .replace(' ', ' ') + .replace(' ', ' ') # common named HTML entities - .replace(u'"', u'"') - .replace(u'"', u'"') - .replace(u'&', u'&') - .replace(u'&', u'&') - .replace(u'>', u'>') - .replace(u'>', u'>') - .replace(u'<', u'<') - .replace(u'<', u'<') + .replace('"', '"') + .replace('"', '"') + .replace('&', '&') + .replace('&', '&') + .replace('>', '>') + .replace('>', '>') + .replace('<', '<') + .replace('<', '<') # normalize (possibly repeated) quotes to unique single quote ' # backticks ` and " - .replace(u'`', u"'") - .replace(u'"', u"'") + .replace('`', u"'") + .replace('"', u"'") ) # keep only one quote line = fold_consecutive_quotes(u"'", line) @@ -3286,34 +3386,34 @@ def prepare_text_line(line, dedeb=True, to_ascii=True): # treat some escaped literal CR, LF, tabs, \00 as new lines # such as in code literals: a="\\n some text" line = (line - .replace(u'\\t', u' ') - .replace(u'\\n', u' ') - .replace(u'\\r', u' ') - .replace(u'\\0', u' ') + .replace('\\t', ' ') + .replace('\\n', ' ') + .replace('\\r', ' ') + .replace('\\0', ' ') # TODO: why backslashes? - .replace(u'\\', u' ') + .replace('\\', ' ') # replace (' - .replace(u'("', u' ') + .replace('("', ' ') # some trailing garbage ') - .replace(u"')", u' ') - .replace(u"],", u' ') + .replace(u"')", ' ') + .replace(u"],", ' ') ) # note that we do not replace the debian tag by a space: we remove it line = strip_markup(line, dedeb=dedeb) - line = remove_punctuation(u' ', line) + line = remove_punctuation(' ', line) # normalize spaces around commas - line = line.replace(u' , ', u', ') + line = line.replace(' , ', ', ') # remove ASCII "line decorations" # such as in --- or === or !!! or ***** - line = remove_ascii_decorations(u' ', line) + line = remove_ascii_decorations(' ', line) # in apache'>Copyright replace ">" by "> " - line = line.replace(u'>', u'> ').replace(u'<', u' <') + line = line.replace('>', '> ').replace('<', ' <') # normalize to ascii text if to_ascii: @@ -3325,9 +3425,9 @@ def prepare_text_line(line, dedeb=True, to_ascii=True): # strip verbatim back slash and comment signs again at both ends of a line # FIXME: this is done at the start of this function already - line = line.strip(u'\\/*#%;') + line = line.strip('\\/*#%;') # normalize spaces - line = u' '.join(line.split()) + line = ' '.join(line.split()) return line From 0b4abcb112a244e824874461513a1abac4e36f0b Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Tue, 8 Jun 2021 22:46:30 +0200 Subject: [PATCH 477/709] Update tests #216 Signed-off-by: Philippe Ombredanne --- tests/cluecode/data/copyrights/author_young_c-c.c.yml | 4 ++++ tests/cluecode/data/copyrights/eric_young_c-c.c.yml | 4 ++++ .../openoffice_org_report_builder_bin.copyright.yml | 6 ++++++ tests/cluecode/data/copyrights/openssl-c.c.yml | 4 ++++ .../about_credits.html.yml | 4 ++++ tests/cluecode/data/ics/openssl-apps/app_rand.c.yml | 4 ++++ tests/cluecode/data/ics/openssl-apps/apps.c.yml | 4 ++++ tests/cluecode/data/ics/openssl-apps/apps.h.yml | 4 ++++ tests/cluecode/data/ics/openssl-apps/asn1pars.c.yml | 4 ++++ tests/cluecode/data/ics/openssl-apps/openssl.c.yml | 4 ++++ tests/cluecode/data/ics/openssl-apps/s_client.c.yml | 4 ++++ tests/cluecode/data/ics/openssl-apps/s_server.c.yml | 4 ++++ tests/cluecode/data/ics/openssl-apps/speed.c.yml | 4 ++++ tests/cluecode/data/ics/openssl-crypto-asn1/a_sign.c.yml | 4 ++++ tests/cluecode/data/ics/openssl-crypto-bf/bf_locl.h.yml | 4 ++++ tests/cluecode/data/ics/openssl-crypto-bio/b_print.c.yml | 4 ++++ tests/cluecode/data/ics/openssl-crypto-bn/bn.h.yml | 4 ++++ tests/cluecode/data/ics/openssl-crypto-bn/bn_blind.c.yml | 4 ++++ tests/cluecode/data/ics/openssl-crypto-bn/bn_exp.c.yml | 4 ++++ tests/cluecode/data/ics/openssl-crypto-bn/bn_lcl.h.yml | 4 ++++ tests/cluecode/data/ics/openssl-crypto-bn/bn_mod.c.yml | 4 ++++ tests/cluecode/data/ics/openssl-crypto-des/read2pwd.c.yml | 4 ++++ tests/cluecode/data/ics/openssl-crypto-des/rpc_des.h.yml | 4 ++++ tests/cluecode/data/ics/openssl-crypto-evp/m_ecdsa.c.yml | 4 ++++ tests/cluecode/data/ics/openssl-crypto-pem/pem_all.c.yml | 4 ++++ tests/cluecode/data/ics/openssl-crypto-rand/rand_win.c.yml | 4 ++++ tests/cluecode/data/ics/openssl-crypto-ui/ui_openssl.c.yml | 4 ++++ tests/cluecode/data/ics/openssl-crypto-x509/x509.h.yml | 4 ++++ tests/cluecode/data/ics/openssl-crypto/cryptlib.c.yml | 4 ++++ tests/cluecode/data/ics/openssl-include-openssl/ssl.h.yml | 4 ++++ tests/cluecode/data/ics/openssl-include-openssl/ssl3.h.yml | 4 ++++ tests/cluecode/data/ics/openssl-include-openssl/tls1.h.yml | 4 ++++ tests/cluecode/data/ics/openssl-ssl/d1_both.c.yml | 4 ++++ tests/cluecode/data/ics/openssl-ssl/d1_clnt.c.yml | 4 ++++ tests/cluecode/data/ics/openssl-ssl/s2_lib.c.yml | 4 ++++ tests/cluecode/data/ics/openssl-ssl/s3_enc.c.yml | 4 ++++ tests/cluecode/data/ics/openssl-ssl/s3_lib.c.yml | 4 ++++ tests/cluecode/data/ics/openssl-ssl/ssl_asn1.c.yml | 4 ++++ tests/cluecode/data/ics/openssl-ssl/ssl_cert.c.yml | 4 ++++ tests/cluecode/data/ics/openssl-ssl/ssltest.c.yml | 4 ++++ tests/cluecode/data/ics/openssl-ssl/t1_reneg.c.yml | 4 ++++ tests/cluecode/data/ics/openssl/NOTICE.yml | 4 ++++ tests/cluecode/data/ics/openssl/e_os.h.yml | 4 ++++ 43 files changed, 174 insertions(+) diff --git a/tests/cluecode/data/copyrights/author_young_c-c.c.yml b/tests/cluecode/data/copyrights/author_young_c-c.c.yml index e8b3f5b9a56..e7d4fec90ef 100644 --- a/tests/cluecode/data/copyrights/author_young_c-c.c.yml +++ b/tests/cluecode/data/copyrights/author_young_c-c.c.yml @@ -4,8 +4,12 @@ what: - holders_summary copyrights: - Copyright (c) 1995-1997 Eric Young (eay@mincom.oz.au) + - holder is Tim Hudson (tjh@mincom.oz.au) holders: - Eric Young + - Tim Hudson holders_summary: - value: Eric Young count: 1 + - value: Tim Hudson + count: 1 diff --git a/tests/cluecode/data/copyrights/eric_young_c-c.c.yml b/tests/cluecode/data/copyrights/eric_young_c-c.c.yml index e8b3f5b9a56..e7d4fec90ef 100644 --- a/tests/cluecode/data/copyrights/eric_young_c-c.c.yml +++ b/tests/cluecode/data/copyrights/eric_young_c-c.c.yml @@ -4,8 +4,12 @@ what: - holders_summary copyrights: - Copyright (c) 1995-1997 Eric Young (eay@mincom.oz.au) + - holder is Tim Hudson (tjh@mincom.oz.au) holders: - Eric Young + - Tim Hudson holders_summary: - value: Eric Young count: 1 + - value: Tim Hudson + count: 1 diff --git a/tests/cluecode/data/copyrights/openoffice_org_report_builder_bin.copyright.yml b/tests/cluecode/data/copyrights/openoffice_org_report_builder_bin.copyright.yml index 471e63c4d8a..12838b5ea8e 100644 --- a/tests/cluecode/data/copyrights/openoffice_org_report_builder_bin.copyright.yml +++ b/tests/cluecode/data/copyrights/openoffice_org_report_builder_bin.copyright.yml @@ -90,6 +90,7 @@ copyrights: - Copyright (c) 1998-2007 The OpenSSL Project - Copyright (c) 1998-2007 The OpenSSL Project - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) - Copyright (c) 2001, 2002, 2003, 2004 Python Software Foundation - Copyright (c) 2000 BeOpen.com - Copyright (c) 1995-2001 Corporation for National Research Initiatives @@ -124,6 +125,7 @@ copyrights: - Copyright (c) 1998-2007 The OpenSSL Project - Copyright (c) 1998-2007 The OpenSSL Project - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) - Copyright (c) 2001, 2002, 2003, 2004 Python Software Foundation - Copyright (c) 2000 BeOpen.com - Copyright (c) 1995-2001 Corporation for National Research Initiatives @@ -240,6 +242,7 @@ holders: - The OpenSSL Project - The OpenSSL Project - Eric Young + - Tim Hudson - Python Software Foundation - BeOpen.com - Corporation for National Research Initiatives @@ -274,6 +277,7 @@ holders: - The OpenSSL Project - The OpenSSL Project - Eric Young + - Tim Hudson - Python Software Foundation - BeOpen.com - Corporation for National Research Initiatives @@ -366,6 +370,8 @@ holders_summary: count: 2 - value: The Khronos Group Inc. count: 2 + - value: Tim Hudson + count: 2 - value: Tommi Komulainen count: 2 - value: University of Bristol diff --git a/tests/cluecode/data/copyrights/openssl-c.c.yml b/tests/cluecode/data/copyrights/openssl-c.c.yml index e8b3f5b9a56..e7d4fec90ef 100644 --- a/tests/cluecode/data/copyrights/openssl-c.c.yml +++ b/tests/cluecode/data/copyrights/openssl-c.c.yml @@ -4,8 +4,12 @@ what: - holders_summary copyrights: - Copyright (c) 1995-1997 Eric Young (eay@mincom.oz.au) + - holder is Tim Hudson (tjh@mincom.oz.au) holders: - Eric Young + - Tim Hudson holders_summary: - value: Eric Young count: 1 + - value: Tim Hudson + count: 1 diff --git a/tests/cluecode/data/ics/chromium-chrome-browser-resources/about_credits.html.yml b/tests/cluecode/data/ics/chromium-chrome-browser-resources/about_credits.html.yml index d730c52536b..d4f63fde4f4 100644 --- a/tests/cluecode/data/ics/chromium-chrome-browser-resources/about_credits.html.yml +++ b/tests/cluecode/data/ics/chromium-chrome-browser-resources/about_credits.html.yml @@ -80,6 +80,7 @@ copyrights: - Copyright (c) 2008 The Khronos Group Inc. - Copyright (c) 1998-2008 The OpenSSL Project - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) - Copyright (c) 2009 The Chromium Authors - Copyright 2007 Google Inc. - Copyright (c) 2010 The Chromium Authors @@ -184,6 +185,7 @@ holders: - The Khronos Group Inc. - The OpenSSL Project - Eric Young + - Tim Hudson - The Chromium Authors - Google Inc. - The Chromium Authors @@ -350,6 +352,8 @@ holders_summary: count: 1 - value: Thomas Broyer, Charlie Bozeman and Daniel Veillard count: 1 + - value: Tim Hudson + count: 1 - value: University of Chicago count: 1 - value: Xiph.org Foundation diff --git a/tests/cluecode/data/ics/openssl-apps/app_rand.c.yml b/tests/cluecode/data/ics/openssl-apps/app_rand.c.yml index c8b0331aa9c..fc3d8402214 100644 --- a/tests/cluecode/data/ics/openssl-apps/app_rand.c.yml +++ b/tests/cluecode/data/ics/openssl-apps/app_rand.c.yml @@ -4,12 +4,16 @@ what: - holders_summary copyrights: - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) - Copyright (c) 1998-2000 The OpenSSL Project holders: - Eric Young + - Tim Hudson - The OpenSSL Project holders_summary: - value: Eric Young count: 1 - value: The OpenSSL Project count: 1 + - value: Tim Hudson + count: 1 diff --git a/tests/cluecode/data/ics/openssl-apps/apps.c.yml b/tests/cluecode/data/ics/openssl-apps/apps.c.yml index 5a35cc33574..8277dd8ef50 100644 --- a/tests/cluecode/data/ics/openssl-apps/apps.c.yml +++ b/tests/cluecode/data/ics/openssl-apps/apps.c.yml @@ -4,12 +4,16 @@ what: - holders_summary copyrights: - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) - Copyright (c) 1998-2001 The OpenSSL Project holders: - Eric Young + - Tim Hudson - The OpenSSL Project holders_summary: - value: Eric Young count: 1 - value: The OpenSSL Project count: 1 + - value: Tim Hudson + count: 1 diff --git a/tests/cluecode/data/ics/openssl-apps/apps.h.yml b/tests/cluecode/data/ics/openssl-apps/apps.h.yml index 5a35cc33574..8277dd8ef50 100644 --- a/tests/cluecode/data/ics/openssl-apps/apps.h.yml +++ b/tests/cluecode/data/ics/openssl-apps/apps.h.yml @@ -4,12 +4,16 @@ what: - holders_summary copyrights: - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) - Copyright (c) 1998-2001 The OpenSSL Project holders: - Eric Young + - Tim Hudson - The OpenSSL Project holders_summary: - value: Eric Young count: 1 - value: The OpenSSL Project count: 1 + - value: Tim Hudson + count: 1 diff --git a/tests/cluecode/data/ics/openssl-apps/asn1pars.c.yml b/tests/cluecode/data/ics/openssl-apps/asn1pars.c.yml index a067791ee80..b7f805459f1 100644 --- a/tests/cluecode/data/ics/openssl-apps/asn1pars.c.yml +++ b/tests/cluecode/data/ics/openssl-apps/asn1pars.c.yml @@ -4,8 +4,12 @@ what: - holders_summary copyrights: - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) holders: - Eric Young + - Tim Hudson holders_summary: - value: Eric Young count: 1 + - value: Tim Hudson + count: 1 diff --git a/tests/cluecode/data/ics/openssl-apps/openssl.c.yml b/tests/cluecode/data/ics/openssl-apps/openssl.c.yml index 84429a2f5f7..f27a55db934 100644 --- a/tests/cluecode/data/ics/openssl-apps/openssl.c.yml +++ b/tests/cluecode/data/ics/openssl-apps/openssl.c.yml @@ -4,12 +4,16 @@ what: - holders_summary copyrights: - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) - Copyright (c) 1998-2006 The OpenSSL Project holders: - Eric Young + - Tim Hudson - The OpenSSL Project holders_summary: - value: Eric Young count: 1 - value: The OpenSSL Project count: 1 + - value: Tim Hudson + count: 1 diff --git a/tests/cluecode/data/ics/openssl-apps/s_client.c.yml b/tests/cluecode/data/ics/openssl-apps/s_client.c.yml index 2bf18d299a6..8677231fa50 100644 --- a/tests/cluecode/data/ics/openssl-apps/s_client.c.yml +++ b/tests/cluecode/data/ics/openssl-apps/s_client.c.yml @@ -4,10 +4,12 @@ what: - holders_summary copyrights: - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) - Copyright (c) 1998-2006 The OpenSSL Project - Copyright 2005 Nokia holders: - Eric Young + - Tim Hudson - The OpenSSL Project - Nokia holders_summary: @@ -17,3 +19,5 @@ holders_summary: count: 1 - value: The OpenSSL Project count: 1 + - value: Tim Hudson + count: 1 diff --git a/tests/cluecode/data/ics/openssl-apps/s_server.c.yml b/tests/cluecode/data/ics/openssl-apps/s_server.c.yml index b2a530865c3..14c91958354 100644 --- a/tests/cluecode/data/ics/openssl-apps/s_server.c.yml +++ b/tests/cluecode/data/ics/openssl-apps/s_server.c.yml @@ -4,11 +4,13 @@ what: - holders_summary copyrights: - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) - Copyright (c) 1998-2006 The OpenSSL Project - Copyright 2002 Sun Microsystems, Inc. - Copyright 2005 Nokia holders: - Eric Young + - Tim Hudson - The OpenSSL Project - Sun Microsystems, Inc. - Nokia @@ -21,3 +23,5 @@ holders_summary: count: 1 - value: The OpenSSL Project count: 1 + - value: Tim Hudson + count: 1 diff --git a/tests/cluecode/data/ics/openssl-apps/speed.c.yml b/tests/cluecode/data/ics/openssl-apps/speed.c.yml index 3160629ebda..8dc5f14fb41 100644 --- a/tests/cluecode/data/ics/openssl-apps/speed.c.yml +++ b/tests/cluecode/data/ics/openssl-apps/speed.c.yml @@ -4,12 +4,16 @@ what: - holders_summary copyrights: - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) - Copyright 2002 Sun Microsystems, Inc. holders: - Eric Young + - Tim Hudson - Sun Microsystems, Inc. holders_summary: - value: Eric Young count: 1 - value: Sun Microsystems, Inc. count: 1 + - value: Tim Hudson + count: 1 diff --git a/tests/cluecode/data/ics/openssl-crypto-asn1/a_sign.c.yml b/tests/cluecode/data/ics/openssl-crypto-asn1/a_sign.c.yml index 6ef4a6efd5f..188c3fda568 100644 --- a/tests/cluecode/data/ics/openssl-crypto-asn1/a_sign.c.yml +++ b/tests/cluecode/data/ics/openssl-crypto-asn1/a_sign.c.yml @@ -4,12 +4,16 @@ what: - holders_summary copyrights: - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) - Copyright (c) 1998-2003 The OpenSSL Project holders: - Eric Young + - Tim Hudson - The OpenSSL Project holders_summary: - value: Eric Young count: 1 - value: The OpenSSL Project count: 1 + - value: Tim Hudson + count: 1 diff --git a/tests/cluecode/data/ics/openssl-crypto-bf/bf_locl.h.yml b/tests/cluecode/data/ics/openssl-crypto-bf/bf_locl.h.yml index c82d30134fa..c04caad3d82 100644 --- a/tests/cluecode/data/ics/openssl-crypto-bf/bf_locl.h.yml +++ b/tests/cluecode/data/ics/openssl-crypto-bf/bf_locl.h.yml @@ -4,8 +4,12 @@ what: - holders_summary copyrights: - Copyright (c) 1995-1997 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) holders: - Eric Young + - Tim Hudson holders_summary: - value: Eric Young count: 1 + - value: Tim Hudson + count: 1 diff --git a/tests/cluecode/data/ics/openssl-crypto-bio/b_print.c.yml b/tests/cluecode/data/ics/openssl-crypto-bio/b_print.c.yml index f2252445b16..c22ce8f9f22 100644 --- a/tests/cluecode/data/ics/openssl-crypto-bio/b_print.c.yml +++ b/tests/cluecode/data/ics/openssl-crypto-bio/b_print.c.yml @@ -4,12 +4,16 @@ what: - holders_summary copyrights: - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) - Copyright Patrick Powell 1995 holders: - Eric Young + - Tim Hudson - Patrick Powell holders_summary: - value: Eric Young count: 1 - value: Patrick Powell count: 1 + - value: Tim Hudson + count: 1 diff --git a/tests/cluecode/data/ics/openssl-crypto-bn/bn.h.yml b/tests/cluecode/data/ics/openssl-crypto-bn/bn.h.yml index ec8cd2aece7..6fbd7aaef13 100644 --- a/tests/cluecode/data/ics/openssl-crypto-bn/bn.h.yml +++ b/tests/cluecode/data/ics/openssl-crypto-bn/bn.h.yml @@ -4,10 +4,12 @@ what: - holders_summary copyrights: - Copyright (c) 1995-1997 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) - Copyright (c) 1998-2006 The OpenSSL Project - Copyright 2002 Sun Microsystems, Inc. holders: - Eric Young + - Tim Hudson - The OpenSSL Project - Sun Microsystems, Inc. holders_summary: @@ -17,3 +19,5 @@ holders_summary: count: 1 - value: The OpenSSL Project count: 1 + - value: Tim Hudson + count: 1 diff --git a/tests/cluecode/data/ics/openssl-crypto-bn/bn_blind.c.yml b/tests/cluecode/data/ics/openssl-crypto-bn/bn_blind.c.yml index 0491c3cf1c5..97e5168f6db 100644 --- a/tests/cluecode/data/ics/openssl-crypto-bn/bn_blind.c.yml +++ b/tests/cluecode/data/ics/openssl-crypto-bn/bn_blind.c.yml @@ -5,11 +5,15 @@ what: copyrights: - Copyright (c) 1998-2006 The OpenSSL Project - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) holders: - The OpenSSL Project - Eric Young + - Tim Hudson holders_summary: - value: Eric Young count: 1 - value: The OpenSSL Project count: 1 + - value: Tim Hudson + count: 1 diff --git a/tests/cluecode/data/ics/openssl-crypto-bn/bn_exp.c.yml b/tests/cluecode/data/ics/openssl-crypto-bn/bn_exp.c.yml index cde667adef9..f92e170af7f 100644 --- a/tests/cluecode/data/ics/openssl-crypto-bn/bn_exp.c.yml +++ b/tests/cluecode/data/ics/openssl-crypto-bn/bn_exp.c.yml @@ -4,12 +4,16 @@ what: - holders_summary copyrights: - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) - Copyright (c) 1998-2005 The OpenSSL Project holders: - Eric Young + - Tim Hudson - The OpenSSL Project holders_summary: - value: Eric Young count: 1 - value: The OpenSSL Project count: 1 + - value: Tim Hudson + count: 1 diff --git a/tests/cluecode/data/ics/openssl-crypto-bn/bn_lcl.h.yml b/tests/cluecode/data/ics/openssl-crypto-bn/bn_lcl.h.yml index c8b0331aa9c..fc3d8402214 100644 --- a/tests/cluecode/data/ics/openssl-crypto-bn/bn_lcl.h.yml +++ b/tests/cluecode/data/ics/openssl-crypto-bn/bn_lcl.h.yml @@ -4,12 +4,16 @@ what: - holders_summary copyrights: - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) - Copyright (c) 1998-2000 The OpenSSL Project holders: - Eric Young + - Tim Hudson - The OpenSSL Project holders_summary: - value: Eric Young count: 1 - value: The OpenSSL Project count: 1 + - value: Tim Hudson + count: 1 diff --git a/tests/cluecode/data/ics/openssl-crypto-bn/bn_mod.c.yml b/tests/cluecode/data/ics/openssl-crypto-bn/bn_mod.c.yml index c6342c83238..57e5e9e65f1 100644 --- a/tests/cluecode/data/ics/openssl-crypto-bn/bn_mod.c.yml +++ b/tests/cluecode/data/ics/openssl-crypto-bn/bn_mod.c.yml @@ -5,11 +5,15 @@ what: copyrights: - Copyright (c) 1998-2000 The OpenSSL Project - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) holders: - The OpenSSL Project - Eric Young + - Tim Hudson holders_summary: - value: Eric Young count: 1 - value: The OpenSSL Project count: 1 + - value: Tim Hudson + count: 1 diff --git a/tests/cluecode/data/ics/openssl-crypto-des/read2pwd.c.yml b/tests/cluecode/data/ics/openssl-crypto-des/read2pwd.c.yml index 9b0cc43ab33..5cce1118314 100644 --- a/tests/cluecode/data/ics/openssl-crypto-des/read2pwd.c.yml +++ b/tests/cluecode/data/ics/openssl-crypto-des/read2pwd.c.yml @@ -5,11 +5,15 @@ what: copyrights: - Copyright (c) 2001-2002 The OpenSSL Project - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) holders: - The OpenSSL Project - Eric Young + - Tim Hudson holders_summary: - value: Eric Young count: 1 - value: The OpenSSL Project count: 1 + - value: Tim Hudson + count: 1 diff --git a/tests/cluecode/data/ics/openssl-crypto-des/rpc_des.h.yml b/tests/cluecode/data/ics/openssl-crypto-des/rpc_des.h.yml index 8520fb20a73..6eaea1dc572 100644 --- a/tests/cluecode/data/ics/openssl-crypto-des/rpc_des.h.yml +++ b/tests/cluecode/data/ics/openssl-crypto-des/rpc_des.h.yml @@ -4,12 +4,16 @@ what: - holders_summary copyrights: - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) - Copyright (c) 1986 by Sun Microsystems, Inc. holders: - Eric Young + - Tim Hudson - Sun Microsystems, Inc. holders_summary: - value: Eric Young count: 1 - value: Sun Microsystems, Inc. count: 1 + - value: Tim Hudson + count: 1 diff --git a/tests/cluecode/data/ics/openssl-crypto-evp/m_ecdsa.c.yml b/tests/cluecode/data/ics/openssl-crypto-evp/m_ecdsa.c.yml index a721c5cb09e..dad0c02a47e 100644 --- a/tests/cluecode/data/ics/openssl-crypto-evp/m_ecdsa.c.yml +++ b/tests/cluecode/data/ics/openssl-crypto-evp/m_ecdsa.c.yml @@ -5,11 +5,15 @@ what: copyrights: - Copyright (c) 1998-2002 The OpenSSL Project - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) holders: - The OpenSSL Project - Eric Young + - Tim Hudson holders_summary: - value: Eric Young count: 1 - value: The OpenSSL Project count: 1 + - value: Tim Hudson + count: 1 diff --git a/tests/cluecode/data/ics/openssl-crypto-pem/pem_all.c.yml b/tests/cluecode/data/ics/openssl-crypto-pem/pem_all.c.yml index 10ad14698c4..04df6a1fbd5 100644 --- a/tests/cluecode/data/ics/openssl-crypto-pem/pem_all.c.yml +++ b/tests/cluecode/data/ics/openssl-crypto-pem/pem_all.c.yml @@ -4,12 +4,16 @@ what: - holders_summary copyrights: - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) - Copyright (c) 1998-2002 The OpenSSL Project holders: - Eric Young + - Tim Hudson - The OpenSSL Project holders_summary: - value: Eric Young count: 1 - value: The OpenSSL Project count: 1 + - value: Tim Hudson + count: 1 diff --git a/tests/cluecode/data/ics/openssl-crypto-rand/rand_win.c.yml b/tests/cluecode/data/ics/openssl-crypto-rand/rand_win.c.yml index 1da71ed89df..c5ba591e286 100644 --- a/tests/cluecode/data/ics/openssl-crypto-rand/rand_win.c.yml +++ b/tests/cluecode/data/ics/openssl-crypto-rand/rand_win.c.yml @@ -4,10 +4,12 @@ what: - holders_summary copyrights: - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) - Copyright (c) 1998-2000 The OpenSSL Project - (c) Copyright Microsoft Corp. 1993 holders: - Eric Young + - Tim Hudson - The OpenSSL Project - Microsoft Corp. holders_summary: @@ -17,3 +19,5 @@ holders_summary: count: 1 - value: The OpenSSL Project count: 1 + - value: Tim Hudson + count: 1 diff --git a/tests/cluecode/data/ics/openssl-crypto-ui/ui_openssl.c.yml b/tests/cluecode/data/ics/openssl-crypto-ui/ui_openssl.c.yml index a9e1fd90be8..0ca31041ee5 100644 --- a/tests/cluecode/data/ics/openssl-crypto-ui/ui_openssl.c.yml +++ b/tests/cluecode/data/ics/openssl-crypto-ui/ui_openssl.c.yml @@ -5,11 +5,15 @@ what: copyrights: - Copyright (c) 2001 The OpenSSL Project - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) holders: - The OpenSSL Project - Eric Young + - Tim Hudson holders_summary: - value: Eric Young count: 1 - value: The OpenSSL Project count: 1 + - value: Tim Hudson + count: 1 diff --git a/tests/cluecode/data/ics/openssl-crypto-x509/x509.h.yml b/tests/cluecode/data/ics/openssl-crypto-x509/x509.h.yml index 3160629ebda..8dc5f14fb41 100644 --- a/tests/cluecode/data/ics/openssl-crypto-x509/x509.h.yml +++ b/tests/cluecode/data/ics/openssl-crypto-x509/x509.h.yml @@ -4,12 +4,16 @@ what: - holders_summary copyrights: - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) - Copyright 2002 Sun Microsystems, Inc. holders: - Eric Young + - Tim Hudson - Sun Microsystems, Inc. holders_summary: - value: Eric Young count: 1 - value: Sun Microsystems, Inc. count: 1 + - value: Tim Hudson + count: 1 diff --git a/tests/cluecode/data/ics/openssl-crypto/cryptlib.c.yml b/tests/cluecode/data/ics/openssl-crypto/cryptlib.c.yml index 1d2093c99d8..89a8120ffd3 100644 --- a/tests/cluecode/data/ics/openssl-crypto/cryptlib.c.yml +++ b/tests/cluecode/data/ics/openssl-crypto/cryptlib.c.yml @@ -5,10 +5,12 @@ what: copyrights: - Copyright (c) 1998-2006 The OpenSSL Project - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) - Copyright 2002 Sun Microsystems, Inc. holders: - The OpenSSL Project - Eric Young + - Tim Hudson - Sun Microsystems, Inc. holders_summary: - value: Eric Young @@ -17,3 +19,5 @@ holders_summary: count: 1 - value: The OpenSSL Project count: 1 + - value: Tim Hudson + count: 1 diff --git a/tests/cluecode/data/ics/openssl-include-openssl/ssl.h.yml b/tests/cluecode/data/ics/openssl-include-openssl/ssl.h.yml index 01e2a3c280f..32e068f4e2b 100644 --- a/tests/cluecode/data/ics/openssl-include-openssl/ssl.h.yml +++ b/tests/cluecode/data/ics/openssl-include-openssl/ssl.h.yml @@ -4,11 +4,13 @@ what: - holders_summary copyrights: - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) - Copyright (c) 1998-2007 The OpenSSL Project - Copyright 2002 Sun Microsystems, Inc. - Copyright 2005 Nokia holders: - Eric Young + - Tim Hudson - The OpenSSL Project - Sun Microsystems, Inc. - Nokia @@ -21,3 +23,5 @@ holders_summary: count: 1 - value: The OpenSSL Project count: 1 + - value: Tim Hudson + count: 1 diff --git a/tests/cluecode/data/ics/openssl-include-openssl/ssl3.h.yml b/tests/cluecode/data/ics/openssl-include-openssl/ssl3.h.yml index cddc67e80f9..76eac7cf09f 100644 --- a/tests/cluecode/data/ics/openssl-include-openssl/ssl3.h.yml +++ b/tests/cluecode/data/ics/openssl-include-openssl/ssl3.h.yml @@ -4,10 +4,12 @@ what: - holders_summary copyrights: - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) - Copyright (c) 1998-2002 The OpenSSL Project - Copyright 2002 Sun Microsystems, Inc. holders: - Eric Young + - Tim Hudson - The OpenSSL Project - Sun Microsystems, Inc. holders_summary: @@ -17,3 +19,5 @@ holders_summary: count: 1 - value: The OpenSSL Project count: 1 + - value: Tim Hudson + count: 1 diff --git a/tests/cluecode/data/ics/openssl-include-openssl/tls1.h.yml b/tests/cluecode/data/ics/openssl-include-openssl/tls1.h.yml index b2a530865c3..14c91958354 100644 --- a/tests/cluecode/data/ics/openssl-include-openssl/tls1.h.yml +++ b/tests/cluecode/data/ics/openssl-include-openssl/tls1.h.yml @@ -4,11 +4,13 @@ what: - holders_summary copyrights: - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) - Copyright (c) 1998-2006 The OpenSSL Project - Copyright 2002 Sun Microsystems, Inc. - Copyright 2005 Nokia holders: - Eric Young + - Tim Hudson - The OpenSSL Project - Sun Microsystems, Inc. - Nokia @@ -21,3 +23,5 @@ holders_summary: count: 1 - value: The OpenSSL Project count: 1 + - value: Tim Hudson + count: 1 diff --git a/tests/cluecode/data/ics/openssl-ssl/d1_both.c.yml b/tests/cluecode/data/ics/openssl-ssl/d1_both.c.yml index 044e28b672d..575a93c7a43 100644 --- a/tests/cluecode/data/ics/openssl-ssl/d1_both.c.yml +++ b/tests/cluecode/data/ics/openssl-ssl/d1_both.c.yml @@ -5,11 +5,15 @@ what: copyrights: - Copyright (c) 1998-2005 The OpenSSL Project - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) holders: - The OpenSSL Project - Eric Young + - Tim Hudson holders_summary: - value: Eric Young count: 1 - value: The OpenSSL Project count: 1 + - value: Tim Hudson + count: 1 diff --git a/tests/cluecode/data/ics/openssl-ssl/d1_clnt.c.yml b/tests/cluecode/data/ics/openssl-ssl/d1_clnt.c.yml index 8409b85b3a3..2bc8442c3a0 100644 --- a/tests/cluecode/data/ics/openssl-ssl/d1_clnt.c.yml +++ b/tests/cluecode/data/ics/openssl-ssl/d1_clnt.c.yml @@ -5,11 +5,15 @@ what: copyrights: - Copyright (c) 1999-2007 The OpenSSL Project - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) holders: - The OpenSSL Project - Eric Young + - Tim Hudson holders_summary: - value: Eric Young count: 1 - value: The OpenSSL Project count: 1 + - value: Tim Hudson + count: 1 diff --git a/tests/cluecode/data/ics/openssl-ssl/s2_lib.c.yml b/tests/cluecode/data/ics/openssl-ssl/s2_lib.c.yml index b5f0605feff..ac81d058ee3 100644 --- a/tests/cluecode/data/ics/openssl-ssl/s2_lib.c.yml +++ b/tests/cluecode/data/ics/openssl-ssl/s2_lib.c.yml @@ -4,12 +4,16 @@ what: - holders_summary copyrights: - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) - Copyright (c) 1998-2007 The OpenSSL Project holders: - Eric Young + - Tim Hudson - The OpenSSL Project holders_summary: - value: Eric Young count: 1 - value: The OpenSSL Project count: 1 + - value: Tim Hudson + count: 1 diff --git a/tests/cluecode/data/ics/openssl-ssl/s3_enc.c.yml b/tests/cluecode/data/ics/openssl-ssl/s3_enc.c.yml index 613a12636fc..39ba373d405 100644 --- a/tests/cluecode/data/ics/openssl-ssl/s3_enc.c.yml +++ b/tests/cluecode/data/ics/openssl-ssl/s3_enc.c.yml @@ -4,10 +4,12 @@ what: - holders_summary copyrights: - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) - Copyright (c) 1998-2007 The OpenSSL Project - Copyright 2005 Nokia holders: - Eric Young + - Tim Hudson - The OpenSSL Project - Nokia holders_summary: @@ -17,3 +19,5 @@ holders_summary: count: 1 - value: The OpenSSL Project count: 1 + - value: Tim Hudson + count: 1 diff --git a/tests/cluecode/data/ics/openssl-ssl/s3_lib.c.yml b/tests/cluecode/data/ics/openssl-ssl/s3_lib.c.yml index 01e2a3c280f..32e068f4e2b 100644 --- a/tests/cluecode/data/ics/openssl-ssl/s3_lib.c.yml +++ b/tests/cluecode/data/ics/openssl-ssl/s3_lib.c.yml @@ -4,11 +4,13 @@ what: - holders_summary copyrights: - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) - Copyright (c) 1998-2007 The OpenSSL Project - Copyright 2002 Sun Microsystems, Inc. - Copyright 2005 Nokia holders: - Eric Young + - Tim Hudson - The OpenSSL Project - Sun Microsystems, Inc. - Nokia @@ -21,3 +23,5 @@ holders_summary: count: 1 - value: The OpenSSL Project count: 1 + - value: Tim Hudson + count: 1 diff --git a/tests/cluecode/data/ics/openssl-ssl/ssl_asn1.c.yml b/tests/cluecode/data/ics/openssl-ssl/ssl_asn1.c.yml index f747af40033..ed9cecad040 100644 --- a/tests/cluecode/data/ics/openssl-ssl/ssl_asn1.c.yml +++ b/tests/cluecode/data/ics/openssl-ssl/ssl_asn1.c.yml @@ -4,12 +4,16 @@ what: - holders_summary copyrights: - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) - Copyright 2005 Nokia holders: - Eric Young + - Tim Hudson - Nokia holders_summary: - value: Eric Young count: 1 - value: Nokia count: 1 + - value: Tim Hudson + count: 1 diff --git a/tests/cluecode/data/ics/openssl-ssl/ssl_cert.c.yml b/tests/cluecode/data/ics/openssl-ssl/ssl_cert.c.yml index dc45ea0e931..959ae535e06 100644 --- a/tests/cluecode/data/ics/openssl-ssl/ssl_cert.c.yml +++ b/tests/cluecode/data/ics/openssl-ssl/ssl_cert.c.yml @@ -4,10 +4,12 @@ what: - holders_summary copyrights: - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) - Copyright (c) 1998-2007 The OpenSSL Project - Copyright 2002 Sun Microsystems, Inc. holders: - Eric Young + - Tim Hudson - The OpenSSL Project - Sun Microsystems, Inc. holders_summary: @@ -17,3 +19,5 @@ holders_summary: count: 1 - value: The OpenSSL Project count: 1 + - value: Tim Hudson + count: 1 diff --git a/tests/cluecode/data/ics/openssl-ssl/ssltest.c.yml b/tests/cluecode/data/ics/openssl-ssl/ssltest.c.yml index f1130af69ce..0aa9cf3d694 100644 --- a/tests/cluecode/data/ics/openssl-ssl/ssltest.c.yml +++ b/tests/cluecode/data/ics/openssl-ssl/ssltest.c.yml @@ -4,11 +4,13 @@ what: - holders_summary copyrights: - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) - Copyright (c) 1998-2000 The OpenSSL Project - Copyright 2002 Sun Microsystems, Inc. - Copyright 2005 Nokia holders: - Eric Young + - Tim Hudson - The OpenSSL Project - Sun Microsystems, Inc. - Nokia @@ -21,3 +23,5 @@ holders_summary: count: 1 - value: The OpenSSL Project count: 1 + - value: Tim Hudson + count: 1 diff --git a/tests/cluecode/data/ics/openssl-ssl/t1_reneg.c.yml b/tests/cluecode/data/ics/openssl-ssl/t1_reneg.c.yml index 5265d0ba4ab..79b257a4656 100644 --- a/tests/cluecode/data/ics/openssl-ssl/t1_reneg.c.yml +++ b/tests/cluecode/data/ics/openssl-ssl/t1_reneg.c.yml @@ -4,12 +4,16 @@ what: - holders_summary copyrights: - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) - Copyright (c) 1998-2009 The OpenSSL Project holders: - Eric Young + - Tim Hudson - The OpenSSL Project holders_summary: - value: Eric Young count: 1 - value: The OpenSSL Project count: 1 + - value: Tim Hudson + count: 1 diff --git a/tests/cluecode/data/ics/openssl/NOTICE.yml b/tests/cluecode/data/ics/openssl/NOTICE.yml index f32113eae12..1afa0c6d923 100644 --- a/tests/cluecode/data/ics/openssl/NOTICE.yml +++ b/tests/cluecode/data/ics/openssl/NOTICE.yml @@ -5,11 +5,15 @@ what: copyrights: - Copyright (c) 1998-2011 The OpenSSL Project - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) holders: - The OpenSSL Project - Eric Young + - Tim Hudson holders_summary: - value: Eric Young count: 1 - value: The OpenSSL Project count: 1 + - value: Tim Hudson + count: 1 diff --git a/tests/cluecode/data/ics/openssl/e_os.h.yml b/tests/cluecode/data/ics/openssl/e_os.h.yml index a067791ee80..b7f805459f1 100644 --- a/tests/cluecode/data/ics/openssl/e_os.h.yml +++ b/tests/cluecode/data/ics/openssl/e_os.h.yml @@ -4,8 +4,12 @@ what: - holders_summary copyrights: - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) holders: - Eric Young + - Tim Hudson holders_summary: - value: Eric Young count: 1 + - value: Tim Hudson + count: 1 From 6ba8f15673e76715a78900f47379561f8e043ff9 Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Mon, 7 Jun 2021 17:59:12 +0530 Subject: [PATCH 478/709] Modify tests for unstructured debian copyrights Uses filter_licenses flag to return all license matches and not only unique ones in the case of unstructured copyright files tests, which have with_details as True. Signed-off-by: Ayan Sinha Mahapatra --- src/packagedcode/debian_copyright.py | 4 +-- ...m_0.12.5-1_copyright-detailed.expected.yml | 5 ++- .../stable_copyright-detailed.expected.yml | 2 +- .../stable_copyright-detailed.expected.yml | 3 +- .../stable_copyright-detailed.expected.yml | 2 +- .../stable_copyright-detailed.expected.yml | 7 +++-- .../stable_copyright-detailed.expected.yml | 15 ++++++++- .../stable_copyright-detailed.expected.yml | 2 +- ...rmware-adi.copyright-detailed.expected.yml | 2 +- ...-brcm80211.copyright-detailed.expected.yml | 2 +- ...ux-nonfree.copyright-detailed.expected.yml | 2 +- ...ware-linux.copyright-detailed.expected.yml | 2 +- ...-netronome.copyright-detailed.expected.yml | 2 +- ...qcom-media.copyright-detailed.expected.yml | 10 ++++-- ...are-ralink.copyright-detailed.expected.yml | 2 +- .../doc/apt/copyright-detailed.expected.yml | 2 +- .../doc/bash/copyright-detailed.expected.yml | 3 +- .../coreutils/copyright-detailed.expected.yml | 4 ++- .../copyright-detailed.expected.yml | 28 ++++++++++++----- .../copyright-detailed.expected.yml | 31 ++++++++++++++----- .../copyright-detailed.expected.yml | 2 +- .../libc-bin/copyright-detailed.expected.yml | 8 +++-- .../doc/libc6/copyright-detailed.expected.yml | 8 +++-- .../copyright-detailed.expected.yml | 2 +- .../libcrypt1/copyright-detailed.expected.yml | 6 ++-- .../libdb5.3/copyright-detailed.expected.yml | 2 +- .../libffi7/copyright-detailed.expected.yml | 2 +- .../copyright-detailed.expected.yml | 8 +++-- .../libgmp10/copyright-detailed.expected.yml | 4 +-- .../copyright-detailed.expected.yml | 30 +++++++++++++++--- .../copyright-detailed.expected.yml | 16 +++++++--- .../copyright-detailed.expected.yml | 16 +++++++--- .../libkrb5-3/copyright-detailed.expected.yml | 16 +++++++--- .../copyright-detailed.expected.yml | 2 +- .../libpcre3/copyright-detailed.expected.yml | 2 +- .../copyright-detailed.expected.yml | 2 +- .../copyright-detailed.expected.yml | 2 +- .../libsepol1/copyright-detailed.expected.yml | 2 +- .../copyright-detailed.expected.yml | 4 +-- .../copyright-detailed.expected.yml | 8 +++-- 40 files changed, 187 insertions(+), 85 deletions(-) diff --git a/src/packagedcode/debian_copyright.py b/src/packagedcode/debian_copyright.py index e382737d99d..2ec7f533a87 100644 --- a/src/packagedcode/debian_copyright.py +++ b/src/packagedcode/debian_copyright.py @@ -134,14 +134,14 @@ def from_file(cls, location): def get_declared_license(self, *args, **kwargs): return None - def get_license_expression(self, *args, **kwargs): + def get_license_expression(self, filter_licenses=False, *args, **kwargs): matches = self.license_matches if not matches: # we have no match: return an unknown key return ['unknown'] detected_expressions = [match.rule.license_expression for match in matches] - return combine_expressions(detected_expressions) + return combine_expressions(detected_expressions, unique=filter_licenses) def get_copyright(self, *args, **kwargs): return '\n'.join(self.detected_copyrights) diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/a/appstream/appstream_0.12.5-1_copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/a/appstream/appstream_0.12.5-1_copyright-detailed.expected.yml index 992ffadb27f..3ccca50d08a 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/a/appstream/appstream_0.12.5-1_copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/a/appstream/appstream_0.12.5-1_copyright-detailed.expected.yml @@ -1,5 +1,8 @@ - -- gpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.1-plus AND (gpl-2.0-plus AND gpl-3.0) AND lgpl-3.0-plus +- gpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND gpl-2.0-plus + AND gpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND + lgpl-2.1-plus AND lgpl-2.1-plus AND (gpl-2.0-plus AND gpl-3.0) AND lgpl-2.1-plus AND gpl-2.0-plus + AND lgpl-3.0-plus - | Copyright 2012-2018, Matthias Klumpp Richard Hughes Copyright 2012-2018, Matthias Klumpp diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/b/backup-manager/stable_copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/b/backup-manager/stable_copyright-detailed.expected.yml index 5cc4937fbc1..64602336462 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/b/backup-manager/stable_copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/b/backup-manager/stable_copyright-detailed.expected.yml @@ -1,5 +1,5 @@ - -- gpl-2.0-plus AND gpl-2.0 +- gpl-2.0-plus AND gpl-2.0 AND gpl-2.0 - | Copyright 2003-2010 Alexis Sukrieh Copyright 2005 Alexis Sukrieh Debianization diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/g/glib2.0/stable_copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/g/glib2.0/stable_copyright-detailed.expected.yml index fc11a5c14ce..5738be93045 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/g/glib2.0/stable_copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/g/glib2.0/stable_copyright-detailed.expected.yml @@ -1,5 +1,6 @@ - -- lgpl-2.0-plus AND mit AND gpl-2.0-plus AND apache-2.0 AND gpl-3.0-plus +- lgpl-2.0-plus AND mit AND gpl-2.0-plus AND apache-2.0 AND apache-2.0 AND mit AND mit AND gpl-2.0-plus + AND gpl-3.0-plus - | Copyright (c) 1995-2018 Red Hat, Inc. Copyright (c) 2008-2010 Novell, Inc. diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/n/ncurses/stable_copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/n/ncurses/stable_copyright-detailed.expected.yml index 8aeb482d0b3..8285ce21b4d 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/n/ncurses/stable_copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/n/ncurses/stable_copyright-detailed.expected.yml @@ -1,5 +1,5 @@ - -- x11-fsf AND x11-xconsortium AND bsd-new +- x11-fsf AND x11-xconsortium AND bsd-new AND x11-fsf - | Copyright (c) 1998-2018 Free Software Foundation, Inc. Copyright (c) 2001 by Pradeep Padala diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/o/openldap/stable_copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/o/openldap/stable_copyright-detailed.expected.yml index cf26c0b2c15..6bacf52e5ed 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/o/openldap/stable_copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/o/openldap/stable_copyright-detailed.expected.yml @@ -1,7 +1,8 @@ - -- openldap-2.8 AND mit AND fsf-unlimited-no-warranty AND hs-regexp AND ibm-dhcp AND ietf AND - isc AND other-permissive AND mit-old-style-no-advert AND baekmuk-fonts AND bsla AND bsd-original-uc - AND bsd-original-uc-1986 +- openldap-2.8 AND openldap-2.8 AND openldap-2.8 AND mit AND fsf-unlimited-no-warranty AND hs-regexp + AND ibm-dhcp AND ietf AND isc AND other-permissive AND other-permissive AND mit-old-style-no-advert + AND baekmuk-fonts AND other-permissive AND hs-regexp AND openldap-2.8 AND bsla AND bsd-original-uc + AND bsd-original-uc AND bsd-original-uc AND bsd-original-uc-1986 - | Copyright 1998-2016 The OpenLDAP Foundation Copyright 1999 Computing Research Labs, New Mexico State University diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/p/pulseaudio/stable_copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/p/pulseaudio/stable_copyright-detailed.expected.yml index dff46b054d8..6cca2b6dfbf 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/p/pulseaudio/stable_copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/p/pulseaudio/stable_copyright-detailed.expected.yml @@ -1,5 +1,18 @@ - -- lgpl-2.1-plus AND sun-source AND libpbm AND gpl-2.0-plus AND adrian AND mit +- lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND sun-source AND libpbm AND lgpl-2.1-plus + AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND gpl-2.0-plus AND lgpl-2.1-plus AND + lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND adrian AND lgpl-2.1-plus AND lgpl-2.1-plus + AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus + AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus + AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus + AND mit AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus + AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus + AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus + AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus + AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus + AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus + AND lgpl-2.1-plus AND lgpl-2.1-plus AND gpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND + lgpl-2.1-plus AND lgpl-2.1-plus - | Copyright (c) 2004-2009 Lennart Poettering Copyright (c) 2006-2007 Pierre Ossman for Cendio AB diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/r/reportbug/stable_copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/r/reportbug/stable_copyright-detailed.expected.yml index cffeff49865..9a5cb942aad 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/r/reportbug/stable_copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/r/reportbug/stable_copyright-detailed.expected.yml @@ -1,5 +1,5 @@ - -- reportbug AND gpl-1.0-plus AND gpl-2.0 +- reportbug AND gpl-1.0-plus AND reportbug AND gpl-2.0 - | Copyright (c) 1999-2006 Chris Lawrence Copyright (c) 2008-2019 Sandro Tosi diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-adi.copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-adi.copyright-detailed.expected.yml index 62aadc68e24..e1ae1aca056 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-adi.copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-adi.copyright-detailed.expected.yml @@ -1,5 +1,5 @@ - -- gpl-2.0-plus AND gpl-2.0 +- gpl-2.0-plus AND gpl-2.0 AND gpl-2.0 - | Copyright 2006-2009 Bastian Blank Copyright 2009 Ben Hutchings diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-brcm80211.copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-brcm80211.copyright-detailed.expected.yml index 749419ec555..e1c5ba9613a 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-brcm80211.copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-brcm80211.copyright-detailed.expected.yml @@ -1,3 +1,3 @@ - -- broadcom-proprietary +- broadcom-proprietary AND broadcom-proprietary - diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-linux-nonfree.copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-linux-nonfree.copyright-detailed.expected.yml index 62aadc68e24..e1ae1aca056 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-linux-nonfree.copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-linux-nonfree.copyright-detailed.expected.yml @@ -1,5 +1,5 @@ - -- gpl-2.0-plus AND gpl-2.0 +- gpl-2.0-plus AND gpl-2.0 AND gpl-2.0 - | Copyright 2006-2009 Bastian Blank Copyright 2009 Ben Hutchings diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-linux.copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-linux.copyright-detailed.expected.yml index 62aadc68e24..e1ae1aca056 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-linux.copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-linux.copyright-detailed.expected.yml @@ -1,5 +1,5 @@ - -- gpl-2.0-plus AND gpl-2.0 +- gpl-2.0-plus AND gpl-2.0 AND gpl-2.0 - | Copyright 2006-2009 Bastian Blank Copyright 2009 Ben Hutchings diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-netronome.copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-netronome.copyright-detailed.expected.yml index 471537ab76a..aedd5b1f6d5 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-netronome.copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-netronome.copyright-detailed.expected.yml @@ -1,3 +1,3 @@ - -- unknown-license-reference AND proprietary-license +- unknown-license-reference AND unknown-license-reference AND proprietary-license - Copyright (c) 2017, NETRONOME Systems, Inc. diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-qcom-media.copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-qcom-media.copyright-detailed.expected.yml index 994ca3e7131..d5a88a3ddcf 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-qcom-media.copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-qcom-media.copyright-detailed.expected.yml @@ -1,7 +1,11 @@ - -- unknown-license-reference AND free-unknown AND proprietary-license AND openssl-ssleay AND - zlib AND public-domain AND bsd-new AND gary-s-brown AND other-permissive AND isc AND bsd-unmodified - AND (gpl-2.0 OR bsd-new) AND bsd-original +- unknown-license-reference AND unknown-license-reference AND unknown-license-reference AND + free-unknown AND unknown-license-reference AND proprietary-license AND unknown-license-reference + AND unknown-license-reference AND unknown-license-reference AND unknown-license-reference + AND openssl-ssleay AND openssl-ssleay AND openssl-ssleay AND zlib AND zlib AND public-domain + AND bsd-new AND gary-s-brown AND other-permissive AND public-domain AND isc AND public-domain + AND bsd-unmodified AND (gpl-2.0 OR bsd-new) AND (gpl-2.0 OR bsd-new) AND bsd-original AND + bsd-new AND bsd-new AND isc - | Copyright (c) 2013-2017 Qualcomm Technologies, Inc. Copyright (c) 2013-2017 Qualcomm Technologies, Inc. diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-ralink.copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-ralink.copyright-detailed.expected.yml index 62aadc68e24..e1ae1aca056 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-ralink.copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-ralink.copyright-detailed.expected.yml @@ -1,5 +1,5 @@ - -- gpl-2.0-plus AND gpl-2.0 +- gpl-2.0-plus AND gpl-2.0 AND gpl-2.0 - | Copyright 2006-2009 Bastian Blank Copyright 2009 Ben Hutchings diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/apt/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/apt/copyright-detailed.expected.yml index 2b8d1b7cf76..696d24bd08d 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/apt/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/apt/copyright-detailed.expected.yml @@ -1,3 +1,3 @@ - -- gpl-2.0-plus +- gpl-2.0-plus AND gpl-2.0-plus - copyright 1997, 1998, 1999 Jason Gunthorpe and others diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/bash/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/bash/copyright-detailed.expected.yml index bce219ccf0d..99743975e5b 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/bash/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/bash/copyright-detailed.expected.yml @@ -1,6 +1,7 @@ - - gpl-3.0-plus AND bash-exception-gpl AND gpl-1.0-plus AND other-permissive AND gfdl-1.1-plus - AND gfdl-1.3-plus AND latex2e AND bsd-original-uc AND historical + AND gfdl-1.3-plus AND other-permissive AND latex2e AND latex2e AND gfdl-1.3-plus AND latex2e + AND bsd-original-uc AND historical AND other-permissive - | Copyright (c) 1987-2014 Free Software Foundation, Inc. Copyright FSF diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/coreutils/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/coreutils/copyright-detailed.expected.yml index 1e780f7a214..93666208134 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/coreutils/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/coreutils/copyright-detailed.expected.yml @@ -1,5 +1,7 @@ - -- gpl-3.0-plus AND bsd-new AND isc AND fsf-unlimited AND gfdl-1.2-plus +- gpl-3.0-plus AND bsd-new AND gpl-3.0-plus AND bsd-new AND gpl-3.0-plus AND gpl-3.0-plus AND + isc AND fsf-unlimited AND gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0-plus + AND gfdl-1.2-plus AND gpl-3.0-plus - | Copyright (c) 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. Copyright (c) 1990, 1993, 1994 The Regents of the University of California diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/gcc-10-base/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/gcc-10-base/copyright-detailed.expected.yml index ce148e86902..9e9e65f98e2 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/gcc-10-base/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/gcc-10-base/copyright-detailed.expected.yml @@ -1,13 +1,25 @@ - - (gpl-2.0-plus AND gpl-3.0-plus) AND gpl-3.0 AND gpl-1.0-plus AND gpl-3.0-plus AND gcc-exception-3.1 - AND unknown-license-reference AND bsd-new AND uoi-ncsa AND mit AND (mit OR commercial-license) - AND gfdl-1.2 AND gpl-2.0 AND lgpl-2.0-plus AND lgpl-2.1-plus AND public-domain AND sunpro - AND gpl-2.0-plus AND artistic-1.0 AND (artistic-perl-1.0 OR gpl-1.0-plus) AND zlib AND d-zlib - AND gpl-3.0-plus WITH gcc-exception-3.1 AND gfdl-1.3-plus AND lgpl-2.1 AND other-permissive - AND bsla-no-advert AND bsla AND bsd-original-uc AND flex-2.5 AND (gpl-3.0 AND gpl-2.0 AND - lgpl-3.0-plus WITH cygwin-exception-lgpl-3.0-plus AND other-copyleft AND other-permissive) - AND x11-lucent AND amd-historical AND osf-1990 AND nilsson-historical AND newlib-historical - AND bsd-simplified AND x11-hanson AND intel-osl-1993 AND hs-regexp AND unicode + AND unknown-license-reference AND bsd-new AND unknown-license-reference AND uoi-ncsa AND mit + AND unknown-license-reference AND (mit OR commercial-license) AND gfdl-1.2 AND gcc-exception-3.1 + AND gpl-2.0 AND lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND public-domain + AND lgpl-2.1-plus AND lgpl-2.1-plus AND sunpro AND bsd-new AND gpl-2.0-plus AND gpl-2.0 AND + gpl-2.0 AND gpl-2.0 AND artistic-1.0 AND (artistic-perl-1.0 OR gpl-1.0-plus) AND artistic-1.0 + AND zlib AND d-zlib AND unknown-license-reference AND mit AND unknown-license-reference AND + gpl-3.0-plus WITH gcc-exception-3.1 AND gpl-2.0-plus AND gfdl-1.3-plus AND lgpl-2.1-plus AND + gpl-3.0 AND gcc-exception-3.1 AND gpl-3.0-plus AND gcc-exception-3.1 AND gpl-3.0 AND lgpl-2.0-plus + AND lgpl-2.1 AND gpl-3.0 AND lgpl-2.0-plus AND lgpl-2.1 AND lgpl-2.1 AND gpl-3.0 AND gpl-3.0-plus + AND gpl-1.0-plus AND gpl-3.0 AND lgpl-2.0-plus AND lgpl-2.1 AND gpl-2.0-plus AND gpl-3.0-plus + AND lgpl-2.1-plus AND gpl-3.0 AND gcc-exception-3.1 AND other-permissive AND gpl-1.0-plus + AND unknown-license-reference AND gpl-1.0-plus AND lgpl-2.0-plus AND bsla-no-advert AND bsla + AND bsd-original-uc AND bsd-new AND unknown-license-reference AND bsd-original-uc AND flex-2.5 + AND bsd-original-uc AND (gpl-3.0 AND gpl-2.0 AND lgpl-3.0-plus WITH cygwin-exception-lgpl-3.0-plus + AND other-copyleft AND other-permissive) AND x11-lucent AND amd-historical AND sunpro AND + osf-1990 AND nilsson-historical AND newlib-historical AND bsd-new AND amd-historical AND bsd-new + AND bsd-simplified AND bsd-simplified AND bsd-simplified AND x11-hanson AND bsd-simplified + AND bsd-new AND lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0-plus AND lgpl-2.0-plus AND intel-osl-1993 + AND osf-1990 AND hs-regexp AND bsd-simplified AND bsd-simplified AND bsd-simplified AND bsd-new + AND unicode AND unicode AND lgpl-2.1-plus - | Copyright (c) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Copyright (c) 2009-2019 by the LLVM contributors diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/gcc-9-base/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/gcc-9-base/copyright-detailed.expected.yml index 9bfcc06d5c9..80d4615771f 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/gcc-9-base/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/gcc-9-base/copyright-detailed.expected.yml @@ -1,13 +1,28 @@ - - (gpl-2.0-plus AND gpl-3.0-plus) AND gpl-3.0 AND gpl-1.0-plus AND gpl-3.0-plus AND gcc-exception-3.1 - AND unknown-license-reference AND bsd-new AND uoi-ncsa AND mit AND (mit OR commercial-license) - AND gfdl-1.2 AND gpl-2.0 AND lgpl-2.0-plus AND lgpl-2.1-plus AND public-domain AND sunpro - AND gpl-2.0-plus AND artistic-1.0 AND (artistic-perl-1.0 OR gpl-1.0-plus) AND zlib AND d-zlib - AND gpl-3.0-plus WITH gcc-exception-3.1 AND gfdl-1.3-plus AND lgpl-2.1 AND lgpl-3.0-plus AND - lgpl-3.0 AND other-permissive AND bsla-no-advert AND bsla AND bsd-original-uc AND flex-2.5 - AND (gpl-3.0 AND gpl-2.0 AND lgpl-3.0-plus WITH cygwin-exception-lgpl-3.0-plus AND other-copyleft - AND other-permissive) AND x11-lucent AND amd-historical AND osf-1990 AND nilsson-historical - AND newlib-historical AND bsd-simplified AND x11-hanson AND intel-osl-1993 AND hs-regexp + AND unknown-license-reference AND bsd-new AND unknown-license-reference AND uoi-ncsa AND mit + AND unknown-license-reference AND (mit OR commercial-license) AND gfdl-1.2 AND gcc-exception-3.1 + AND gpl-2.0 AND lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND public-domain + AND lgpl-2.1-plus AND lgpl-2.1-plus AND sunpro AND bsd-new AND gpl-2.0-plus AND gpl-2.0 AND + gpl-2.0 AND gpl-2.0 AND artistic-1.0 AND (artistic-perl-1.0 OR gpl-1.0-plus) AND artistic-1.0 + AND zlib AND d-zlib AND unknown-license-reference AND mit AND unknown-license-reference AND + gpl-3.0-plus WITH gcc-exception-3.1 AND gpl-3.0-plus WITH gcc-exception-3.1 AND gfdl-1.3-plus + AND lgpl-2.1-plus AND gpl-3.0-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND gpl-2.0-plus AND + gpl-3.0-plus AND lgpl-2.1 AND gpl-3.0-plus AND lgpl-2.1-plus AND lgpl-2.1 AND gpl-3.0-plus + AND lgpl-2.1-plus AND lgpl-3.0-plus AND gpl-3.0 AND lgpl-2.0-plus AND lgpl-3.0 AND gpl-3.0 + AND lgpl-2.0-plus AND lgpl-2.1 AND gpl-3.0 AND lgpl-2.0-plus AND lgpl-2.1 AND lgpl-2.1 AND + gpl-3.0 AND gpl-3.0-plus AND gpl-1.0-plus AND gpl-3.0 AND lgpl-2.0-plus AND lgpl-2.1 AND gpl-2.0-plus + AND gpl-3.0-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1 AND lgpl-3.0 AND gpl-3.0 AND + lgpl-2.1 AND lgpl-2.0-plus AND lgpl-3.0 AND lgpl-2.1-plus AND lgpl-2.0-plus AND gpl-3.0-plus + AND gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0-plus AND other-permissive AND + gpl-1.0-plus AND unknown-license-reference AND gpl-1.0-plus AND lgpl-2.0-plus AND bsla-no-advert + AND bsla AND bsd-original-uc AND bsd-new AND unknown-license-reference AND bsd-original-uc + AND flex-2.5 AND bsd-original-uc AND (gpl-3.0 AND gpl-2.0 AND lgpl-3.0-plus WITH cygwin-exception-lgpl-3.0-plus + AND other-copyleft AND other-permissive) AND x11-lucent AND amd-historical AND sunpro AND + osf-1990 AND nilsson-historical AND newlib-historical AND bsd-new AND amd-historical AND bsd-new + AND bsd-simplified AND bsd-simplified AND bsd-simplified AND x11-hanson AND bsd-simplified + AND bsd-new AND lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0-plus AND lgpl-2.0-plus AND intel-osl-1993 + AND osf-1990 AND hs-regexp AND bsd-simplified AND bsd-simplified AND bsd-simplified AND bsd-new - | Copyright (c) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Copyright (c) 2009-2014 by the LLVM contributors diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libapt-pkg6.0/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libapt-pkg6.0/copyright-detailed.expected.yml index 2b8d1b7cf76..696d24bd08d 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libapt-pkg6.0/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libapt-pkg6.0/copyright-detailed.expected.yml @@ -1,3 +1,3 @@ - -- gpl-2.0-plus +- gpl-2.0-plus AND gpl-2.0-plus - copyright 1997, 1998, 1999 Jason Gunthorpe and others diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libc-bin/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libc-bin/copyright-detailed.expected.yml index 858e6bb39d1..0d168ff116f 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libc-bin/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libc-bin/copyright-detailed.expected.yml @@ -1,7 +1,9 @@ - -- lgpl-2.1-plus AND gpl-2.0-plus AND bsd-new AND unknown-license-reference AND historical AND - isc AND carnegie-mellon-contributors AND inner-net-2.0 AND lgpl-2.0-plus AND other-permissive - AND ietf AND hs-regexp AND pcre AND sunpro +- lgpl-2.1-plus AND gpl-2.0-plus AND bsd-new AND bsd-new AND unknown-license-reference AND historical + AND unknown-license-reference AND isc AND unknown-license-reference AND bsd-new AND carnegie-mellon-contributors + AND bsd-new AND bsd-new AND bsd-new AND inner-net-2.0 AND lgpl-2.1-plus AND lgpl-2.1-plus + AND lgpl-2.0-plus AND other-permissive AND ietf AND bsd-new AND other-permissive AND hs-regexp + AND pcre AND sunpro AND other-permissive AND lgpl-2.1-plus - | Copyright (c) 1991-2015 Free Software Foundation, Inc. Copyright (c) 1991-2015 Free Software Foundation, Inc. diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libc6/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libc6/copyright-detailed.expected.yml index 858e6bb39d1..0d168ff116f 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libc6/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libc6/copyright-detailed.expected.yml @@ -1,7 +1,9 @@ - -- lgpl-2.1-plus AND gpl-2.0-plus AND bsd-new AND unknown-license-reference AND historical AND - isc AND carnegie-mellon-contributors AND inner-net-2.0 AND lgpl-2.0-plus AND other-permissive - AND ietf AND hs-regexp AND pcre AND sunpro +- lgpl-2.1-plus AND gpl-2.0-plus AND bsd-new AND bsd-new AND unknown-license-reference AND historical + AND unknown-license-reference AND isc AND unknown-license-reference AND bsd-new AND carnegie-mellon-contributors + AND bsd-new AND bsd-new AND bsd-new AND inner-net-2.0 AND lgpl-2.1-plus AND lgpl-2.1-plus + AND lgpl-2.0-plus AND other-permissive AND ietf AND bsd-new AND other-permissive AND hs-regexp + AND pcre AND sunpro AND other-permissive AND lgpl-2.1-plus - | Copyright (c) 1991-2015 Free Software Foundation, Inc. Copyright (c) 1991-2015 Free Software Foundation, Inc. diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libcap-ng0/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libcap-ng0/copyright-detailed.expected.yml index 6204b0e43d1..0385b15f507 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libcap-ng0/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libcap-ng0/copyright-detailed.expected.yml @@ -1,5 +1,5 @@ - -- lgpl-2.0-plus AND gpl-2.0-plus AND gpl-3.0 +- lgpl-2.0-plus AND gpl-2.0-plus AND gpl-3.0 AND gpl-3.0 - | Copyright 2009 Red Hat Inc. Copyright (c) 2009 Pierre Chifflier diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libcrypt1/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libcrypt1/copyright-detailed.expected.yml index 0702854a184..fa726a834bb 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libcrypt1/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libcrypt1/copyright-detailed.expected.yml @@ -1,6 +1,8 @@ - -- lgpl-2.1 AND unknown AND lgpl-2.0-plus AND bsd-new AND public-domain AND bsd-simplified AND - gpl-3.0 AND gpl-2.0-plus +- lgpl-2.1 AND unknown AND lgpl-2.0-plus AND lgpl-2.1 AND lgpl-2.1 AND bsd-new AND public-domain + AND public-domain AND bsd-simplified AND bsd-simplified AND bsd-simplified AND bsd-simplified + AND bsd-simplified AND public-domain AND bsd-new AND bsd-simplified AND public-domain AND + gpl-3.0 AND gpl-2.0-plus AND gpl-3.0 - | Copyright Thorsten Kukuk, Bjorn Esser, Zack Weinberg LGPL Copyright Free Software Foundation, Inc. diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libdb5.3/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libdb5.3/copyright-detailed.expected.yml index 85167e68803..88f3ae0b83c 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libdb5.3/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libdb5.3/copyright-detailed.expected.yml @@ -1,5 +1,5 @@ - -- sleepycat AND bsd-new +- sleepycat AND sleepycat AND bsd-new AND bsd-new AND bsd-new - | Copyright (c) 1990, 2010 Oracle and/or its affiliates Copyright (c) 1990, 1993, 1994, 1995 The Regents of the University of California diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libffi7/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libffi7/copyright-detailed.expected.yml index f83008ab45f..c3ad0a6b655 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libffi7/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libffi7/copyright-detailed.expected.yml @@ -1,5 +1,5 @@ - -- mit AND gpl-2.0-plus AND gpl-1.0-plus +- mit AND gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0-plus AND gpl-1.0-plus AND gpl-1.0-plus - | Copyright (c) 1996-2011 Red Hat, Inc. Copyright (c) 1996-2011 Anthony Green diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgcrypt20/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgcrypt20/copyright-detailed.expected.yml index 9dee335cce7..c65bd61eff7 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgcrypt20/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgcrypt20/copyright-detailed.expected.yml @@ -1,7 +1,11 @@ - - gpl-1.0-plus AND public-domain AND fsf-unlimited-no-warranty AND lgpl-2.1-plus AND gpl-2.0-plus - AND unknown-license-reference AND lgpl-2.0-plus AND ((gpl-2.0 AND lgpl-2.1-plus) AND other-permissive) - AND bsd-new AND (bsd-new OR gpl-1.0-plus) AND x11-xconsortium AND ocb-open-source-2013 + AND unknown-license-reference AND lgpl-2.1-plus AND unknown-license-reference AND gpl-1.0-plus + AND gpl-1.0-plus AND gpl-1.0-plus AND lgpl-2.0-plus AND gpl-1.0-plus AND gpl-1.0-plus AND + gpl-1.0-plus AND lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.0-plus + AND gpl-1.0-plus AND gpl-2.0-plus AND ((gpl-2.0 AND lgpl-2.1-plus) AND other-permissive) AND + bsd-new AND bsd-new AND (bsd-new OR gpl-1.0-plus) AND x11-xconsortium AND public-domain AND + public-domain AND ocb-open-source-2013 AND ocb-open-source-2013 AND gpl-2.0-plus - | Copyright (c) 1989,1991-2019 Free Software Foundation, Inc. Copyright (c) 1994 X Consortium diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgmp10/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgmp10/copyright-detailed.expected.yml index b9a9bcc7e40..45c80ba7891 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgmp10/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgmp10/copyright-detailed.expected.yml @@ -1,4 +1,4 @@ - -- (lgpl-3.0-plus OR gpl-2.0-plus) AND lgpl-2.1-plus AND lgpl-3.0 AND gpl-2.0 AND gpl-3.0 AND - gfdl-1.2 AND lgpl-2.0-plus +- (lgpl-3.0-plus OR gpl-2.0-plus) AND lgpl-2.1-plus AND lgpl-3.0 AND gpl-2.0 AND gpl-2.0 AND + gpl-3.0 AND gfdl-1.2 AND lgpl-2.0-plus AND gpl-2.0 - Copyright 1991, 1996, 1999, 2000, 2007 Free Software Foundation, Inc. diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgnutls30/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgnutls30/copyright-detailed.expected.yml index b77086e6b8e..6e70c452150 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgnutls30/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgnutls30/copyright-detailed.expected.yml @@ -1,9 +1,29 @@ - -- lgpl-2.1-plus AND unknown-license-reference AND gpl-1.0-plus AND gpl-3.0-plus AND lgpl-3.0-plus - AND gpl-2.0-plus AND gfdl-1.1-plus AND gfdl-1.3-plus AND (lgpl-2.1 AND gpl-2.0 AND gpl-3.0) - AND lgpl-2.0-plus AND lgpl-3.0 AND gfdl-1.3 AND gpl-3.0 AND (bsd-new OR gpl-1.0-plus) AND - bsd-simplified AND public-domain AND isc AND cc0-1.0 AND mit AND apache-2.0 AND lgpl-2.0 AND - (lgpl-3.0-plus OR gpl-2.0-plus) AND bsd-new +- lgpl-2.1-plus AND unknown-license-reference AND gpl-1.0-plus AND lgpl-2.1-plus AND gpl-3.0-plus + AND lgpl-3.0-plus AND gpl-2.0-plus AND unknown-license-reference AND lgpl-3.0-plus AND gpl-2.0-plus + AND unknown-license-reference AND lgpl-3.0-plus AND gpl-2.0-plus AND lgpl-3.0-plus AND lgpl-2.1-plus + AND gpl-3.0-plus AND unknown-license-reference AND gfdl-1.1-plus AND gfdl-1.3-plus AND (lgpl-2.1 + AND gpl-2.0 AND gpl-3.0) AND lgpl-2.0-plus AND lgpl-3.0 AND lgpl-3.0 AND gfdl-1.1-plus AND + gfdl-1.3 AND lgpl-2.1-plus AND lgpl-3.0-plus AND gpl-2.0-plus AND lgpl-3.0-plus AND gpl-2.0-plus + AND lgpl-2.0-plus AND gpl-3.0 AND unknown-license-reference AND (bsd-new OR gpl-1.0-plus) + AND bsd-simplified AND public-domain AND isc AND cc0-1.0 AND mit AND mit AND apache-2.0 AND + lgpl-3.0-plus AND gpl-2.0-plus AND apache-2.0 AND apache-2.0 AND apache-2.0 AND apache-2.0 + AND apache-2.0 AND apache-2.0 AND apache-2.0 AND apache-2.0 AND mit AND mit AND mit AND mit + AND mit AND mit AND lgpl-2.0 AND lgpl-2.1-plus AND lgpl-3.0-plus AND gpl-2.0-plus AND lgpl-3.0-plus + AND gpl-2.0-plus AND mit AND mit AND lgpl-3.0-plus AND gpl-2.0-plus AND lgpl-3.0-plus AND + gpl-2.0-plus AND lgpl-3.0-plus AND gpl-2.0-plus AND lgpl-3.0-plus AND gpl-2.0-plus AND lgpl-3.0-plus + AND gpl-2.0-plus AND lgpl-3.0-plus AND gpl-2.0-plus AND lgpl-3.0-plus AND gpl-2.0-plus AND + lgpl-3.0-plus AND gpl-2.0-plus AND lgpl-3.0-plus AND gpl-2.0-plus AND lgpl-3.0-plus AND gpl-2.0-plus + AND lgpl-3.0-plus AND gpl-2.0-plus AND lgpl-3.0-plus AND gpl-2.0-plus AND lgpl-3.0-plus AND + gpl-2.0-plus AND lgpl-3.0-plus AND gpl-2.0-plus AND lgpl-3.0-plus AND gpl-2.0-plus AND lgpl-3.0-plus + AND gpl-2.0-plus AND lgpl-3.0-plus AND gpl-2.0-plus AND lgpl-3.0-plus AND gpl-2.0-plus AND + mit AND mit AND lgpl-2.1-plus AND lgpl-3.0-plus AND gpl-2.0-plus AND lgpl-3.0-plus AND gpl-2.0-plus + AND (lgpl-3.0-plus OR gpl-2.0-plus) AND gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0-plus AND + gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0-plus AND lgpl-2.0 AND lgpl-2.1-plus AND gpl-3.0-plus + AND gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0-plus + AND gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0-plus + AND gpl-3.0-plus AND lgpl-2.0 AND lgpl-2.1-plus AND gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0-plus + AND gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0-plus AND bsd-new - | Copyright (c) 2000-2019 Free Software Foundation, Inc. Copyright (c) 2004-2015 Free Software Foundation, Inc. diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgssapi-krb5-2/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgssapi-krb5-2/copyright-detailed.expected.yml index 22924e515d7..614d09c4a2f 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgssapi-krb5-2/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgssapi-krb5-2/copyright-detailed.expected.yml @@ -1,11 +1,17 @@ - - bsd-simplified AND generic-export-compliance AND cc-by-sa-3.0 AND proprietary-license AND other-permissive AND mit-no-advert-export-control AND brian-gladman-3-clause AND bsd-new AND - unknown-license-reference AND mit AND bsd-2-clause-views AND michigan-disclaimer AND fsf-unlimited-no-warranty - AND openldap-2.8 AND freebsd-doc AND cmu-uc AND nrl-permission AND ietf-trust AND mit-old-style - AND (mit-no-advert-export-control AND proprietary-license) AND bsd-original-uc AND bsd-original - AND isc AND rsa-md4 AND rsa-md5 AND rsa-1990 AND mit-with-modification-obligations AND (bsd-simplified - OR gpl-2.0-plus) AND (mpl-1.1 OR gpl-1.0-plus) AND gpl-2.0 + unknown-license-reference AND mit AND unknown-license-reference AND bsd-2-clause-views AND + unknown-license-reference AND mit AND unknown-license-reference AND bsd-new AND unknown-license-reference + AND bsd-new AND unknown-license-reference AND michigan-disclaimer AND unknown-license-reference + AND fsf-unlimited-no-warranty AND unknown-license-reference AND mit-no-advert-export-control + AND openldap-2.8 AND bsd-new AND bsd-new AND bsd-new AND freebsd-doc AND cmu-uc AND nrl-permission + AND ietf-trust AND mit-old-style AND mit AND bsd-simplified AND (mit-no-advert-export-control + AND proprietary-license) AND bsd-original-uc AND mit-no-advert-export-control AND bsd-original + AND mit AND isc AND isc AND other-permissive AND bsd-new AND rsa-md4 AND rsa-md5 AND rsa-1990 + AND mit-with-modification-obligations AND unknown-license-reference AND bsd-new AND unknown-license-reference + AND (bsd-simplified OR gpl-2.0-plus) AND (mpl-1.1 OR gpl-1.0-plus) AND gpl-2.0 AND unknown-license-reference + AND bsd-new AND bsd-simplified AND unknown-license-reference - | Copyright (c) 1985-2018 by the Massachusetts Institute of Technology copyright MIT, Cygnus Support, Novell, OpenVision Technologies, Oracle, Red Hat, Sun Microsystems, FundsXpress, and others diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libk5crypto3/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libk5crypto3/copyright-detailed.expected.yml index 22924e515d7..614d09c4a2f 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libk5crypto3/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libk5crypto3/copyright-detailed.expected.yml @@ -1,11 +1,17 @@ - - bsd-simplified AND generic-export-compliance AND cc-by-sa-3.0 AND proprietary-license AND other-permissive AND mit-no-advert-export-control AND brian-gladman-3-clause AND bsd-new AND - unknown-license-reference AND mit AND bsd-2-clause-views AND michigan-disclaimer AND fsf-unlimited-no-warranty - AND openldap-2.8 AND freebsd-doc AND cmu-uc AND nrl-permission AND ietf-trust AND mit-old-style - AND (mit-no-advert-export-control AND proprietary-license) AND bsd-original-uc AND bsd-original - AND isc AND rsa-md4 AND rsa-md5 AND rsa-1990 AND mit-with-modification-obligations AND (bsd-simplified - OR gpl-2.0-plus) AND (mpl-1.1 OR gpl-1.0-plus) AND gpl-2.0 + unknown-license-reference AND mit AND unknown-license-reference AND bsd-2-clause-views AND + unknown-license-reference AND mit AND unknown-license-reference AND bsd-new AND unknown-license-reference + AND bsd-new AND unknown-license-reference AND michigan-disclaimer AND unknown-license-reference + AND fsf-unlimited-no-warranty AND unknown-license-reference AND mit-no-advert-export-control + AND openldap-2.8 AND bsd-new AND bsd-new AND bsd-new AND freebsd-doc AND cmu-uc AND nrl-permission + AND ietf-trust AND mit-old-style AND mit AND bsd-simplified AND (mit-no-advert-export-control + AND proprietary-license) AND bsd-original-uc AND mit-no-advert-export-control AND bsd-original + AND mit AND isc AND isc AND other-permissive AND bsd-new AND rsa-md4 AND rsa-md5 AND rsa-1990 + AND mit-with-modification-obligations AND unknown-license-reference AND bsd-new AND unknown-license-reference + AND (bsd-simplified OR gpl-2.0-plus) AND (mpl-1.1 OR gpl-1.0-plus) AND gpl-2.0 AND unknown-license-reference + AND bsd-new AND bsd-simplified AND unknown-license-reference - | Copyright (c) 1985-2018 by the Massachusetts Institute of Technology copyright MIT, Cygnus Support, Novell, OpenVision Technologies, Oracle, Red Hat, Sun Microsystems, FundsXpress, and others diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libkrb5-3/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libkrb5-3/copyright-detailed.expected.yml index 22924e515d7..614d09c4a2f 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libkrb5-3/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libkrb5-3/copyright-detailed.expected.yml @@ -1,11 +1,17 @@ - - bsd-simplified AND generic-export-compliance AND cc-by-sa-3.0 AND proprietary-license AND other-permissive AND mit-no-advert-export-control AND brian-gladman-3-clause AND bsd-new AND - unknown-license-reference AND mit AND bsd-2-clause-views AND michigan-disclaimer AND fsf-unlimited-no-warranty - AND openldap-2.8 AND freebsd-doc AND cmu-uc AND nrl-permission AND ietf-trust AND mit-old-style - AND (mit-no-advert-export-control AND proprietary-license) AND bsd-original-uc AND bsd-original - AND isc AND rsa-md4 AND rsa-md5 AND rsa-1990 AND mit-with-modification-obligations AND (bsd-simplified - OR gpl-2.0-plus) AND (mpl-1.1 OR gpl-1.0-plus) AND gpl-2.0 + unknown-license-reference AND mit AND unknown-license-reference AND bsd-2-clause-views AND + unknown-license-reference AND mit AND unknown-license-reference AND bsd-new AND unknown-license-reference + AND bsd-new AND unknown-license-reference AND michigan-disclaimer AND unknown-license-reference + AND fsf-unlimited-no-warranty AND unknown-license-reference AND mit-no-advert-export-control + AND openldap-2.8 AND bsd-new AND bsd-new AND bsd-new AND freebsd-doc AND cmu-uc AND nrl-permission + AND ietf-trust AND mit-old-style AND mit AND bsd-simplified AND (mit-no-advert-export-control + AND proprietary-license) AND bsd-original-uc AND mit-no-advert-export-control AND bsd-original + AND mit AND isc AND isc AND other-permissive AND bsd-new AND rsa-md4 AND rsa-md5 AND rsa-1990 + AND mit-with-modification-obligations AND unknown-license-reference AND bsd-new AND unknown-license-reference + AND (bsd-simplified OR gpl-2.0-plus) AND (mpl-1.1 OR gpl-1.0-plus) AND gpl-2.0 AND unknown-license-reference + AND bsd-new AND bsd-simplified AND unknown-license-reference - | Copyright (c) 1985-2018 by the Massachusetts Institute of Technology copyright MIT, Cygnus Support, Novell, OpenVision Technologies, Oracle, Red Hat, Sun Microsystems, FundsXpress, and others diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libpcre2-8-0/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libpcre2-8-0/copyright-detailed.expected.yml index f1da492439c..64d080f035a 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libpcre2-8-0/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libpcre2-8-0/copyright-detailed.expected.yml @@ -1,5 +1,5 @@ - -- pcre AND bsd-new AND unknown-license-reference AND public-domain +- pcre AND bsd-new AND unknown-license-reference AND public-domain AND bsd-new AND bsd-new - | Copyright (c) 1997-2015 University of Cambridge Copyright (c) 2010-2015 Zoltan Herczeg diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libpcre3/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libpcre3/copyright-detailed.expected.yml index 163b9c0d0e2..df9d71f507a 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libpcre3/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libpcre3/copyright-detailed.expected.yml @@ -1,5 +1,5 @@ - -- pcre AND bsd-new +- pcre AND bsd-new AND bsd-new AND bsd-new - | Copyright (c) 1997-2007 University of Cambridge Copyright (c) 2007, Google Inc. diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libselinux1/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libselinux1/copyright-detailed.expected.yml index b8694ae8331..77580b6934b 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libselinux1/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libselinux1/copyright-detailed.expected.yml @@ -1,5 +1,5 @@ - -- selinux-nsa-declaration-1.0 AND gpl-2.0 AND lgpl-2.1-plus +- selinux-nsa-declaration-1.0 AND gpl-2.0 AND lgpl-2.1-plus AND gpl-2.0 - | Copyright 2004 Red Hat, Inc., James Morris (c) 2005, 2006, Manoj Srivastava diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libsemanage-common/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libsemanage-common/copyright-detailed.expected.yml index 675def8d1d3..4eff36a227b 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libsemanage-common/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libsemanage-common/copyright-detailed.expected.yml @@ -1,5 +1,5 @@ - -- lgpl-2.1-plus AND gpl-2.0 AND gpl-1.0-plus AND lgpl-2.0-plus AND other-copyleft +- lgpl-2.1-plus AND gpl-2.0 AND gpl-1.0-plus AND lgpl-2.0-plus AND gpl-1.0-plus AND other-copyleft - | Copyright (c) 2004-2007 Tresys Technology, LLC Copyright (c) 2005 Red Hat, Inc. diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libsepol1/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libsepol1/copyright-detailed.expected.yml index 60ed54591d3..4b602056cda 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libsepol1/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libsepol1/copyright-detailed.expected.yml @@ -1,5 +1,5 @@ - -- lgpl-2.1-plus AND gpl-2.0 AND gpl-1.0-plus AND lgpl-2.0-plus AND other-copyleft +- lgpl-2.1-plus AND gpl-2.0 AND gpl-1.0-plus AND lgpl-2.0-plus AND gpl-1.0-plus AND other-copyleft - | Copyright (c) 2003, 2004 Stephen Smalley Copyright (c) 2003-2007 Red Hat, Inc. diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libtasn1-6/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libtasn1-6/copyright-detailed.expected.yml index 0c6ad292011..ff2cde18246 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libtasn1-6/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libtasn1-6/copyright-detailed.expected.yml @@ -1,6 +1,6 @@ - -- lgpl-2.1-plus AND gpl-3.0-plus AND lgpl-2.1 AND unknown-license-reference AND gfdl-1.1-plus - AND gfdl-1.3-plus AND gfdl-1.3 +- lgpl-2.1-plus AND gpl-3.0-plus AND lgpl-2.1-plus AND lgpl-2.1 AND gpl-3.0-plus AND unknown-license-reference + AND gfdl-1.1-plus AND gfdl-1.3-plus AND gfdl-1.3 - | Copyright (c) 2000-2020 Free Software Foundation, Inc. Copyright (c) 2000-2020 Free Software Foundation, Inc. diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libunistring2/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libunistring2/copyright-detailed.expected.yml index bf90cdabb94..a4171b3478c 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libunistring2/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libunistring2/copyright-detailed.expected.yml @@ -1,7 +1,9 @@ - -- lgpl-3.0-plus AND gpl-2.0-plus AND fsf-unlimited AND gpl-1.0-plus WITH autoconf-simple-exception-2.0 - AND gpl-3.0-plus AND gfdl-1.2-plus AND x11-xconsortium AND mit AND unknown-license-reference - AND gfdl-1.1-plus AND gfdl-1.2 +- lgpl-3.0-plus AND gpl-2.0-plus AND fsf-unlimited AND gpl-2.0-plus AND gpl-1.0-plus WITH autoconf-simple-exception-2.0 + AND gpl-3.0-plus AND gfdl-1.2-plus AND gpl-3.0-plus AND gpl-2.0-plus AND gpl-2.0-plus AND + x11-xconsortium AND mit AND gpl-3.0-plus AND lgpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0-plus + AND gpl-2.0-plus AND gfdl-1.2-plus AND unknown-license-reference AND gfdl-1.1-plus AND gfdl-1.1-plus + AND gfdl-1.2 AND mit AND x11-xconsortium - | Copyright 1995-2017 Free Software Foundation, Inc. Copyright 1995-2017 Free Software Foundation, Inc. From 79294c9a55b0fcebaac60b8a587d8dd7f0ff8f8c Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 11 Jun 2021 00:23:54 +0200 Subject: [PATCH 479/709] Fix formatting of doc Signed-off-by: Philippe Ombredanne --- src/cluecode/copyrights.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/cluecode/copyrights.py b/src/cluecode/copyrights.py index b6721be82c2..1a80ac2b6f5 100644 --- a/src/cluecode/copyrights.py +++ b/src/cluecode/copyrights.py @@ -74,15 +74,15 @@ def detect_copyrights( Yield tuples of (detection type, detected string, start line, end line) detected in the file at ``location``. - "detection type" is one of : "copyrights", "authors", "holders". + "detection type" is one of: "copyrights", "authors", or "holders". These are included in the yielded tuples based on the values of ``copyrights=True``, ``holders=True``, ``authors=True`` - - Include years in copyrights if ``include_years`` is True. - - Include trailing "all rights reserved"-style mentions if + - Include years in copyrights, if ``include_years`` is True. + - Include trailing "all rights reserved"-style mentions, if ``include_allrights`` is True. - - Strip markup from text if ``demarkup`` is True. + - Strip markup from text, if ``demarkup`` is True. - Run for up to ``deadline`` seconds and return results found so far. """ from textcode.analysis import numbered_text_lines From 8c44551d07a699d044d26597ba4dea9eb01e9595 Mon Sep 17 00:00:00 2001 From: akugarg Date: Fri, 11 Jun 2021 15:39:37 +0530 Subject: [PATCH 480/709] Add is_unknown flag in license data model Signed-off-by: akugarg --- src/licensedcode/models.py | 7 +++++++ src/scancode/api.py | 1 + src/summarycode/score.py | 2 ++ 3 files changed, 10 insertions(+) diff --git a/src/licensedcode/models.py b/src/licensedcode/models.py index 5317cc3268c..8b5568a0b82 100644 --- a/src/licensedcode/models.py +++ b/src/licensedcode/models.py @@ -754,6 +754,10 @@ class BasicRule(object): # detected immediately after. is_license_intro = attr.ib(default=False, repr=False) + #unknown licenses are the detected texts are highly likely to be a license + #text or notice but that cannot be matched to a known named license. + is_unknown = attr.ib(default=False, repr=False) + # Is this rule text a false positive when matched exactly? If yes, it will # filtered out at the end if matched (unless part of a large match) is_false_positive = attr.ib(default=False, repr=False) @@ -876,6 +880,7 @@ def validate(self, licensing=None): self.is_license_reference, self.is_license_tag, self.is_license_intro, + self.is_unknown, ) has_license_flags = any(license_flags) @@ -1009,6 +1014,7 @@ def to_dict(self): 'is_license_reference', 'is_license_tag', 'is_license_intro', + 'is_unknown' 'only_known_words', ) @@ -1253,6 +1259,7 @@ def load(self): self.is_license_tag = data.get('is_license_tag', False) self.is_license_reference = data.get('is_license_reference', False) self.is_license_intro = data.get('is_license_intro', False) + self.is_unknown = data.get('is_unknown', False) self.only_known_words = data.get('only_known_words', False) self.referenced_filenames = data.get('referenced_filenames', []) or [] diff --git a/src/scancode/api.py b/src/scancode/api.py index bad37e1c843..a489ad6af33 100644 --- a/src/scancode/api.py +++ b/src/scancode/api.py @@ -269,6 +269,7 @@ def _licenses_data_from_match( matched_rule['is_license_reference'] = match.rule.is_license_reference matched_rule['is_license_tag'] = match.rule.is_license_tag matched_rule['is_license_intro'] = match.rule.is_license_intro + matched_rule['is_unknown'] = match.rule.is_unknwon matched_rule['matcher'] = match.matcher matched_rule['rule_length'] = match.rule.length matched_rule['matched_length'] = match.len() diff --git a/src/summarycode/score.py b/src/summarycode/score.py index be61409adb1..4fbb0ef0924 100644 --- a/src/summarycode/score.py +++ b/src/summarycode/score.py @@ -63,6 +63,7 @@ class LicenseFilter(object): is_license_tag=LicenseFilter(min_coverage=100), is_license_reference=LicenseFilter(min_score=50, min_coverage=100), is_license_intro=LicenseFilter(min_score=100, min_coverage=100), + is_unknown=LicenseFilter(min_score=100, min_coverage=100), ) @@ -81,6 +82,7 @@ def is_good_license(detected_license): ('is_license_reference', rule['is_license_reference']), ('is_license_tag', rule['is_license_tag']), ('is_license_intro', rule['is_license_intro']), + ('is_unknown', rule['is_unknown']), ]) matched = False for match_type, mval in match_types.items(): From ff6ce3d9fbadc81ba6077743d771df2639b364e9 Mon Sep 17 00:00:00 2001 From: akugarg Date: Fri, 11 Jun 2021 15:43:26 +0530 Subject: [PATCH 481/709] Add is_unknown flag in license data model Signed-off-by: akugarg --- src/licensedcode/models.py | 2 +- src/scancode/api.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/licensedcode/models.py b/src/licensedcode/models.py index 8b5568a0b82..ac86b0fd5cc 100644 --- a/src/licensedcode/models.py +++ b/src/licensedcode/models.py @@ -1014,7 +1014,7 @@ def to_dict(self): 'is_license_reference', 'is_license_tag', 'is_license_intro', - 'is_unknown' + 'is_unknown', 'only_known_words', ) diff --git a/src/scancode/api.py b/src/scancode/api.py index a489ad6af33..16705e43125 100644 --- a/src/scancode/api.py +++ b/src/scancode/api.py @@ -269,7 +269,7 @@ def _licenses_data_from_match( matched_rule['is_license_reference'] = match.rule.is_license_reference matched_rule['is_license_tag'] = match.rule.is_license_tag matched_rule['is_license_intro'] = match.rule.is_license_intro - matched_rule['is_unknown'] = match.rule.is_unknwon + matched_rule['is_unknown'] = match.rule.is_unknown matched_rule['matcher'] = match.matcher matched_rule['rule_length'] = match.rule.length matched_rule['matched_length'] = match.len() From 540f5027849a634908dd2ec34b6979e05c5ad711 Mon Sep 17 00:00:00 2001 From: akugarg Date: Fri, 11 Jun 2021 23:41:41 +0530 Subject: [PATCH 482/709] Add is_unknown flag in data model for unknown licenses Signed-off-by: akugarg --- .../data/rules/agpl-3.0_and_other-copyleft_and_unknown_1.yml | 1 + src/licensedcode/data/rules/agpl-3.0_and_unknown_1.yml | 1 + src/licensedcode/data/rules/apache-2.0_and_free-unknown_1.yml | 1 + src/licensedcode/data/rules/apache-2.0_and_free-unknown_2.yml | 1 + .../data/rules/apache-2.0_and_free-unknown_zulip.yml | 1 + src/licensedcode/data/rules/apache-2.0_or_free-unknown_1.yml | 1 + src/licensedcode/data/rules/apache-2.0_or_free-unknown_2.yml | 1 + src/licensedcode/data/rules/apsl-1.2_5.yml | 1 + ...ed_and_bsd-new_and_unknown-license-reference_nuget_url_1.yml | 1 + src/licensedcode/data/rules/bsd-simplified_and_unknown_1.yml | 1 + ...d-simplified_or_unknown-license-reference_and_odbl-1.0_1.yml | 1 + src/licensedcode/data/rules/bsd-top_and_gpl-2.0-plus_1.yml | 1 + src/licensedcode/data/rules/cpal-1.0_1.yml | 1 + src/licensedcode/data/rules/cpal-1.0_13.yml | 1 + .../rules/cpl-1.0_or_bsd-new_or_gpl-2.0_and_free-unknown_1.yml | 1 + .../rules/cpl-1.0_or_bsd-new_or_gpl-2.0_and_free-unknown_2.yml | 1 + src/licensedcode/data/rules/epl-2.0_1.yml | 1 + .../rules/epl-2.0_or_gpl-2.0-plus_or_lgpl-2.1-plus_7_NOT.yml | 1 + src/licensedcode/data/rules/eupl-1.2_and_unknown_1.yml | 1 + src/licensedcode/data/rules/free-unknown_0.yml | 1 + src/licensedcode/data/rules/free-unknown_1.yml | 1 + src/licensedcode/data/rules/free-unknown_10.yml | 1 + src/licensedcode/data/rules/free-unknown_100.yml | 1 + src/licensedcode/data/rules/free-unknown_101.yml | 1 + src/licensedcode/data/rules/free-unknown_102.yml | 1 + src/licensedcode/data/rules/free-unknown_103.yml | 1 + src/licensedcode/data/rules/free-unknown_104.yml | 1 + src/licensedcode/data/rules/free-unknown_105.yml | 1 + src/licensedcode/data/rules/free-unknown_106.yml | 1 + src/licensedcode/data/rules/free-unknown_107.yml | 1 + src/licensedcode/data/rules/free-unknown_108.yml | 1 + src/licensedcode/data/rules/free-unknown_109.yml | 1 + src/licensedcode/data/rules/free-unknown_11.yml | 1 + src/licensedcode/data/rules/free-unknown_110.yml | 1 + src/licensedcode/data/rules/free-unknown_111.yml | 1 + src/licensedcode/data/rules/free-unknown_112.yml | 1 + src/licensedcode/data/rules/free-unknown_113.yml | 1 + src/licensedcode/data/rules/free-unknown_114.yml | 1 + src/licensedcode/data/rules/free-unknown_115.yml | 1 + src/licensedcode/data/rules/free-unknown_116.yml | 1 + src/licensedcode/data/rules/free-unknown_117.yml | 1 + src/licensedcode/data/rules/free-unknown_12.yml | 1 + src/licensedcode/data/rules/free-unknown_127.yml | 1 + src/licensedcode/data/rules/free-unknown_13.yml | 1 + src/licensedcode/data/rules/free-unknown_14.yml | 1 + src/licensedcode/data/rules/free-unknown_15.yml | 1 + src/licensedcode/data/rules/free-unknown_16.yml | 1 + src/licensedcode/data/rules/free-unknown_17.yml | 1 + src/licensedcode/data/rules/free-unknown_18.yml | 1 + src/licensedcode/data/rules/free-unknown_19.yml | 1 + src/licensedcode/data/rules/free-unknown_2.yml | 1 + src/licensedcode/data/rules/free-unknown_20.yml | 1 + src/licensedcode/data/rules/free-unknown_21.yml | 1 + src/licensedcode/data/rules/free-unknown_22.yml | 1 + src/licensedcode/data/rules/free-unknown_23.yml | 1 + src/licensedcode/data/rules/free-unknown_24.yml | 1 + src/licensedcode/data/rules/free-unknown_25.yml | 1 + src/licensedcode/data/rules/free-unknown_26.yml | 1 + src/licensedcode/data/rules/free-unknown_27.yml | 1 + src/licensedcode/data/rules/free-unknown_28.yml | 1 + src/licensedcode/data/rules/free-unknown_29.yml | 1 + src/licensedcode/data/rules/free-unknown_3.yml | 1 + src/licensedcode/data/rules/free-unknown_30.yml | 1 + src/licensedcode/data/rules/free-unknown_31.yml | 1 + src/licensedcode/data/rules/free-unknown_32.yml | 1 + src/licensedcode/data/rules/free-unknown_33.yml | 1 + src/licensedcode/data/rules/free-unknown_34.yml | 1 + src/licensedcode/data/rules/free-unknown_35.yml | 1 + src/licensedcode/data/rules/free-unknown_36.yml | 1 + src/licensedcode/data/rules/free-unknown_37.yml | 1 + src/licensedcode/data/rules/free-unknown_38.yml | 1 + src/licensedcode/data/rules/free-unknown_39.yml | 1 + src/licensedcode/data/rules/free-unknown_4.yml | 1 + src/licensedcode/data/rules/free-unknown_40.yml | 1 + src/licensedcode/data/rules/free-unknown_41.yml | 1 + src/licensedcode/data/rules/free-unknown_42.yml | 1 + src/licensedcode/data/rules/free-unknown_43.yml | 1 + src/licensedcode/data/rules/free-unknown_44.yml | 1 + src/licensedcode/data/rules/free-unknown_45.yml | 1 + src/licensedcode/data/rules/free-unknown_46.yml | 1 + src/licensedcode/data/rules/free-unknown_47.yml | 1 + src/licensedcode/data/rules/free-unknown_48.yml | 1 + src/licensedcode/data/rules/free-unknown_49.yml | 1 + src/licensedcode/data/rules/free-unknown_5.yml | 1 + src/licensedcode/data/rules/free-unknown_50.yml | 1 + src/licensedcode/data/rules/free-unknown_51.yml | 1 + src/licensedcode/data/rules/free-unknown_52.yml | 1 + src/licensedcode/data/rules/free-unknown_53.yml | 1 + src/licensedcode/data/rules/free-unknown_54.yml | 1 + src/licensedcode/data/rules/free-unknown_55.yml | 1 + src/licensedcode/data/rules/free-unknown_56.yml | 1 + src/licensedcode/data/rules/free-unknown_57.yml | 1 + src/licensedcode/data/rules/free-unknown_58.yml | 1 + src/licensedcode/data/rules/free-unknown_59.yml | 1 + src/licensedcode/data/rules/free-unknown_6.yml | 1 + src/licensedcode/data/rules/free-unknown_60.yml | 1 + src/licensedcode/data/rules/free-unknown_61.yml | 1 + src/licensedcode/data/rules/free-unknown_62.yml | 1 + src/licensedcode/data/rules/free-unknown_63.yml | 1 + src/licensedcode/data/rules/free-unknown_64.yml | 1 + src/licensedcode/data/rules/free-unknown_65.yml | 1 + src/licensedcode/data/rules/free-unknown_66.yml | 1 + src/licensedcode/data/rules/free-unknown_67.yml | 1 + src/licensedcode/data/rules/free-unknown_68.yml | 1 + src/licensedcode/data/rules/free-unknown_69.yml | 1 + src/licensedcode/data/rules/free-unknown_7.yml | 1 + src/licensedcode/data/rules/free-unknown_70.yml | 1 + src/licensedcode/data/rules/free-unknown_71.yml | 1 + src/licensedcode/data/rules/free-unknown_72.yml | 1 + src/licensedcode/data/rules/free-unknown_73.yml | 1 + src/licensedcode/data/rules/free-unknown_74.yml | 1 + src/licensedcode/data/rules/free-unknown_75.yml | 1 + src/licensedcode/data/rules/free-unknown_76.yml | 1 + src/licensedcode/data/rules/free-unknown_77.yml | 1 + src/licensedcode/data/rules/free-unknown_78.yml | 1 + src/licensedcode/data/rules/free-unknown_79.yml | 1 + src/licensedcode/data/rules/free-unknown_8.yml | 1 + src/licensedcode/data/rules/free-unknown_80.yml | 1 + src/licensedcode/data/rules/free-unknown_81.yml | 1 + src/licensedcode/data/rules/free-unknown_82.yml | 1 + src/licensedcode/data/rules/free-unknown_83.yml | 1 + src/licensedcode/data/rules/free-unknown_84.yml | 1 + src/licensedcode/data/rules/free-unknown_85.yml | 1 + src/licensedcode/data/rules/free-unknown_86.yml | 1 + src/licensedcode/data/rules/free-unknown_87.yml | 1 + src/licensedcode/data/rules/free-unknown_88.yml | 1 + src/licensedcode/data/rules/free-unknown_89.yml | 1 + src/licensedcode/data/rules/free-unknown_9.yml | 1 + src/licensedcode/data/rules/free-unknown_90.yml | 1 + src/licensedcode/data/rules/free-unknown_91.yml | 1 + src/licensedcode/data/rules/free-unknown_92.yml | 1 + src/licensedcode/data/rules/free-unknown_93.yml | 1 + src/licensedcode/data/rules/free-unknown_94.yml | 1 + src/licensedcode/data/rules/free-unknown_95.yml | 1 + src/licensedcode/data/rules/free-unknown_96.yml | 1 + src/licensedcode/data/rules/free-unknown_97.yml | 1 + src/licensedcode/data/rules/free-unknown_98.yml | 1 + src/licensedcode/data/rules/free-unknown_99.yml | 1 + src/licensedcode/data/rules/free-unknown_rare.yml | 1 + src/licensedcode/data/rules/free-unknown_uoi-ncsa-like.yml | 1 + src/licensedcode/data/rules/free-unknown_zulip.yml | 1 + src/licensedcode/data/rules/freeware_bare_word_only.yml | 1 + .../rules/gpl-1.0-plus_and_other-copyleft_and_free-unknown.yml | 1 + .../rules/gpl-1.0-plus_and_other-copyleft_and_free-unknown2.yml | 1 + ...and_public-domain_and_mit_and_bsd-new_and_free-unknown_1.yml | 1 + ...us_or_commercial-license_and_unknown-license-reference_1.yml | 1 + ...us_or_commercial-license_and_unknown-license-reference_2.yml | 1 + ...us_or_commercial-license_and_unknown-license-reference_3.yml | 1 + ..._with_font-exception-gpl_and_unknown-license-reference_1.yml | 1 + .../data/rules/gpl-2.0_and-unknown-license-reference_1.yml | 1 + src/licensedcode/data/rules/gpl-2.0_and_free-unknown_1.yml | 1 + src/licensedcode/data/rules/gpl-2.0_and_free-unknown_2.yml | 1 + src/licensedcode/data/rules/gpl-2.0_and_free-unknown_3.yml | 1 + src/licensedcode/data/rules/gpl-2.0_and_free-unknown_4.yml | 1 + .../data/rules/gpl-2.0_and_free-unknown_centos_notice_2.yml | 1 + .../data/rules/gpl-2.0_and_free-unknown_centos_notice_3.yml | 1 + src/licensedcode/data/rules/gpl-2.0_and_unknown_trommel_1.yml | 1 + src/licensedcode/data/rules/gpl-2.0_and_unknown_trommel_2.yml | 1 + .../data/rules/gpl-2.0_or_agpl-3.0_and_unknown_1.yml | 1 + ...pl-2.0_with_openssl-exception-gpl-3.0-plus_and_unknown_1.yml | 1 + .../rules/gpl-3.0_and_proprietary-license_and_unknown_1.yml | 1 + src/licensedcode/data/rules/gpl-3.0_or_commercial-license_2.yml | 1 + .../rules/gpl-3.0_with_aptana-exception-3.0_and_unknown_1.yml | 1 + src/licensedcode/data/rules/gpl_142.yml | 1 + src/licensedcode/data/rules/gpl_and_lgpl_and_free-unknown.yml | 1 + src/licensedcode/data/rules/gpl_and_lgpl_and_free-unknown2.yml | 1 + src/licensedcode/data/rules/isc_and_free-unknown.yml | 1 + src/licensedcode/data/rules/isc_and_free-unknown2.yml | 1 + src/licensedcode/data/rules/lead-in_unknown_2.yml | 1 + src/licensedcode/data/rules/lead-in_unknown_30.yml | 1 + src/licensedcode/data/rules/lead-in_unknown_31.yml | 1 + src/licensedcode/data/rules/lead-in_unknown_43.yml | 1 + .../rules/lgpl-2.0-plus_and_unknown-license-reference_1.yml | 1 + .../data/rules/lgpl-2.0_and_unknown-license-reference_1.yml | 1 + .../data/rules/lgpl-2.1-plus_and_free-unknown_1.yml | 1 + .../rules/lgpl-3.0-plus_with_linking_exception_and_other3.yml | 1 + .../rules/lgpl-3.0-plus_with_linking_exception_and_other4.yml | 1 + .../data/rules/lgpl-3.0_and_unknown-license-reference_1.yml | 1 + .../data/rules/lgpl-3.0_with_linking_exception_and_other.yml | 1 + .../data/rules/lgpl-3.0_with_linking_exception_and_other2.yml | 1 + src/licensedcode/data/rules/license-intro_1.yml | 1 + src/licensedcode/data/rules/license-intro_10.yml | 1 + src/licensedcode/data/rules/license-intro_11.yml | 1 + src/licensedcode/data/rules/license-intro_12.yml | 1 + src/licensedcode/data/rules/license-intro_13.yml | 1 + src/licensedcode/data/rules/license-intro_14.yml | 1 + src/licensedcode/data/rules/license-intro_15.yml | 1 + src/licensedcode/data/rules/license-intro_16.yml | 1 + src/licensedcode/data/rules/license-intro_17.yml | 1 + src/licensedcode/data/rules/license-intro_18.yml | 1 + src/licensedcode/data/rules/license-intro_19.yml | 1 + src/licensedcode/data/rules/license-intro_2.yml | 1 + src/licensedcode/data/rules/license-intro_20.yml | 1 + src/licensedcode/data/rules/license-intro_21.yml | 1 + src/licensedcode/data/rules/license-intro_22.yml | 1 + src/licensedcode/data/rules/license-intro_23.yml | 1 + src/licensedcode/data/rules/license-intro_24.yml | 1 + src/licensedcode/data/rules/license-intro_25.yml | 1 + src/licensedcode/data/rules/license-intro_26.yml | 1 + src/licensedcode/data/rules/license-intro_27.yml | 1 + src/licensedcode/data/rules/license-intro_28.yml | 1 + src/licensedcode/data/rules/license-intro_29.yml | 1 + src/licensedcode/data/rules/license-intro_3.yml | 1 + src/licensedcode/data/rules/license-intro_30.yml | 1 + src/licensedcode/data/rules/license-intro_31.yml | 1 + src/licensedcode/data/rules/license-intro_32.yml | 1 + src/licensedcode/data/rules/license-intro_33.yml | 1 + src/licensedcode/data/rules/license-intro_34.yml | 1 + src/licensedcode/data/rules/license-intro_35.yml | 1 + src/licensedcode/data/rules/license-intro_36.yml | 1 + src/licensedcode/data/rules/license-intro_4.yml | 1 + src/licensedcode/data/rules/license-intro_5.yml | 1 + src/licensedcode/data/rules/license-intro_6.yml | 1 + src/licensedcode/data/rules/license-intro_7.yml | 1 + src/licensedcode/data/rules/license-intro_9.yml | 1 + src/licensedcode/data/rules/maven_pom_25.yml | 1 + src/licensedcode/data/rules/mit_and_free-unknown.yml | 1 + .../data/rules/mit_and_unknown-license-reference_1.yml | 1 + .../data/rules/mit_and_unknown-license-reference_2.yml | 1 + src/licensedcode/data/rules/mit_and_unknown_nuget_url_1.yml | 1 + src/licensedcode/data/rules/mpl-1.1_and_free-unknown_1.yml | 1 + src/licensedcode/data/rules/mpl-1.1_and_free-unknown_2.yml | 1 + src/licensedcode/data/rules/mpl-1.1_and_free-unknown_3.yml | 1 + src/licensedcode/data/rules/mpl-2.0_and_free-unknown_1.yml | 1 + src/licensedcode/data/rules/openpub_8.yml | 1 + .../data/rules/other-permissive_and_free-unknown_1.yml | 1 + .../data/rules/other-permissive_and_free-unknown_87.yml | 1 + src/licensedcode/data/rules/other-permissive_not_unknown_69.yml | 1 + src/licensedcode/data/rules/proprietary-license_unknown_13.yml | 1 + .../rules/public-domain_and_unknown-license-reference_1.yml | 1 + src/licensedcode/data/rules/public-domain_and_unknown_1.yml | 1 + .../data/rules/public-domain_or_free-unknown_usgov.yml | 1 + src/licensedcode/data/rules/pypi_dfsg_approved.yml | 1 + src/licensedcode/data/rules/pypi_freely_distributable.yml | 1 + .../pypi_mitre_collaborative_virtual_workspace_license.yml | 1 + src/licensedcode/data/rules/pypi_osi_approved.yml | 1 + src/licensedcode/data/rules/pypi_osi_approved2.yml | 1 + src/licensedcode/data/rules/same_as_qt.yml | 1 + src/licensedcode/data/rules/unknown-license-reference.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_1.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_10.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_100.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_101.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_102.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_103.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_104.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_105.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_106.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_107.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_108.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_109.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_11.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_110.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_111.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_112.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_113.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_114.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_115.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_116.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_117.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_118.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_119.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_12.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_120.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_121.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_122.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_123.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_124.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_125.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_126.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_127.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_128.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_129.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_13.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_130.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_131.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_132.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_133.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_134.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_135.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_136.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_137.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_138.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_139.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_14.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_140.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_141.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_142.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_143.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_144.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_145.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_146.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_147.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_148.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_149.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_15.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_150.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_151.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_152.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_153.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_154.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_155.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_156.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_157.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_158.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_159.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_16.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_160.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_161.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_162.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_163.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_164.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_165.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_166.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_167.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_168.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_169.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_17.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_170.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_171.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_172.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_173.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_174.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_175.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_176.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_177.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_178.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_179.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_18.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_180.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_181.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_182.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_183.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_184.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_185.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_186.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_187.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_188.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_189.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_19.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_190.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_191.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_192.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_193.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_194.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_195.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_196.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_197.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_198.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_199.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_2.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_20.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_200.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_201.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_202.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_203.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_204.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_205.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_206.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_207.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_208.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_209.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_21.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_210.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_211.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_212.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_213.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_214.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_215.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_216.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_217.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_218.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_219.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_22.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_220.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_221.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_222.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_223.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_224.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_225.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_226.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_227.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_228.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_229.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_23.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_230.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_231.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_232.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_233.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_234.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_235.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_236.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_237.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_238.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_239.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_24.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_240.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_241.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_242.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_243.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_244.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_245.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_246.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_247.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_248.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_249.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_25.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_250.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_251.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_252.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_253.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_254.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_255.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_256.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_257.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_258.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_259.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_26.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_260.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_261.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_262.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_263.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_264.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_265.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_266.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_267.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_268.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_269.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_27.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_270.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_271.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_272.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_273.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_274.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_275.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_276.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_277.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_278.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_279.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_28.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_280.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_281.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_282.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_283.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_284.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_285.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_286.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_287.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_288.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_289.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_29.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_290.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_291.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_292.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_293.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_294.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_295.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_296.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_297.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_298.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_299.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_3.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_30.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_300.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_301.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_302.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_303.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_304.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_305.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_306.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_307.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_308.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_31.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_32.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_33.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_34.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_35.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_36.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_366.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_37.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_38.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_39.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_4.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_40.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_41.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_42.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_43.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_44.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_45.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_46.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_47.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_48.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_49.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_5.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_50.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_51.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_52.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_53.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_54.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_55.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_558.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_56.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_58.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_59.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_6.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_60.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_61.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_62.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_63.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_64.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_65.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_66.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_67.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_68.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_69.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_7.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_70.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_700.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_71.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_72.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_73.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_74.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_75.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_76.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_77.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_78.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_79.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_8.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_80.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_81.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_82.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_83.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_84.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_85.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_86.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_87.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_88.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_89.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_9.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_90.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_91.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_92.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_93.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_94.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_95.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_96.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_97.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_98.yml | 1 + src/licensedcode/data/rules/unknown-license-reference_99.yml | 1 + ...cense-reference_and_apache-2.0_and_proprietary-license_1.yml | 1 + .../rules/unknown-license-reference_and_trademark-notice_1.yml | 1 + .../data/rules/unknown-license-reference_batelle.yml | 1 + .../data/rules/unknown-license-reference_dual-licensed.yml | 1 + .../data/rules/unknown-license-reference_not-a-license_259.yml | 1 + .../data/rules/unknown-license-reference_nuget_url_115.yml | 1 + .../data/rules/unknown-license-reference_nuget_url_13.yml | 1 + .../data/rules/unknown-license-reference_nuget_url_172.yml | 1 + .../data/rules/unknown-license-reference_nuget_url_220.yml | 1 + .../data/rules/unknown-license-reference_nuget_url_24.yml | 1 + .../data/rules/unknown-license-reference_nuget_url_249.yml | 1 + .../data/rules/unknown-license-reference_nuget_url_25.yml | 1 + .../data/rules/unknown-license-reference_nuget_url_251.yml | 1 + .../data/rules/unknown-license-reference_nuget_url_252.yml | 1 + .../data/rules/unknown-license-reference_nuget_url_258.yml | 1 + .../data/rules/unknown-license-reference_nuget_url_361.yml | 1 + .../data/rules/unknown-license-reference_nuget_url_365.yml | 1 + .../data/rules/unknown-license-reference_nuget_url_419.yml | 1 + .../data/rules/unknown-license-reference_nuget_url_420.yml | 1 + .../data/rules/unknown-license-reference_nuget_url_422.yml | 1 + .../data/rules/unknown-license-reference_nuget_url_96.yml | 1 + .../data/rules/unknown-license-reference_see-license_1.yml | 1 + .../data/rules/unknown-license-reference_see-license_2.yml | 1 + .../data/rules/unknown-license-reference_see_license_at_end.yml | 1 + .../data/rules/unknown-license-reference_unknown_29.yml | 1 + .../data/rules/unknown-license-reference_unknown_58.yml | 1 + .../data/rules/unknown-license-reference_unknown_61.yml | 1 + src/licensedcode/data/rules/unknown_1.yml | 1 + src/licensedcode/data/rules/unknown_10.yml | 1 + src/licensedcode/data/rules/unknown_11.yml | 1 + src/licensedcode/data/rules/unknown_12.yml | 1 + src/licensedcode/data/rules/unknown_14.yml | 1 + src/licensedcode/data/rules/unknown_15.yml | 1 + src/licensedcode/data/rules/unknown_17.yml | 1 + src/licensedcode/data/rules/unknown_18.yml | 1 + src/licensedcode/data/rules/unknown_2.yml | 1 + src/licensedcode/data/rules/unknown_22.yml | 1 + src/licensedcode/data/rules/unknown_23.yml | 1 + src/licensedcode/data/rules/unknown_24.yml | 1 + src/licensedcode/data/rules/unknown_3.yml | 1 + src/licensedcode/data/rules/unknown_32.yml | 1 + src/licensedcode/data/rules/unknown_35.yml | 1 + src/licensedcode/data/rules/unknown_36.yml | 1 + src/licensedcode/data/rules/unknown_4.yml | 1 + src/licensedcode/data/rules/unknown_44.yml | 1 + src/licensedcode/data/rules/unknown_45.yml | 1 + src/licensedcode/data/rules/unknown_47.yml | 1 + src/licensedcode/data/rules/unknown_48.yml | 1 + src/licensedcode/data/rules/unknown_49.yml | 1 + src/licensedcode/data/rules/unknown_5.yml | 1 + src/licensedcode/data/rules/unknown_50.yml | 1 + src/licensedcode/data/rules/unknown_54.yml | 1 + src/licensedcode/data/rules/unknown_55.yml | 1 + src/licensedcode/data/rules/unknown_56.yml | 1 + src/licensedcode/data/rules/unknown_7.yml | 1 + src/licensedcode/data/rules/unknown_71.yml | 1 + src/licensedcode/data/rules/unknown_8.yml | 1 + src/licensedcode/data/rules/unknown_9.yml | 1 + src/licensedcode/data/rules/unknown_and_gpl-2.0-plus_1.yml | 1 + .../data/rules/unknown_and_gpl-2.0-plus_or_lgpl-2.0-plus_1.yml | 1 + src/licensedcode/data/rules/unknown_free_1.yml | 1 + src/licensedcode/data/rules/unknown_free_2.yml | 1 + src/licensedcode/data/rules/unknown_french_1.yml | 1 + src/licensedcode/data/rules/unknown_german_1.yml | 2 +- src/licensedcode/data/rules/unknown_gpl-3.0_15.yml | 1 + src/licensedcode/data/rules/unknown_kernel.yml | 1 + src/licensedcode/data/rules/unknown_kernel10.yml | 1 + src/licensedcode/data/rules/unknown_kernel11.yml | 1 + src/licensedcode/data/rules/unknown_kernel12.yml | 1 + src/licensedcode/data/rules/unknown_kernel13.yml | 1 + src/licensedcode/data/rules/unknown_kernel2.yml | 1 + src/licensedcode/data/rules/unknown_kernel3.yml | 1 + src/licensedcode/data/rules/unknown_kernel4.yml | 1 + src/licensedcode/data/rules/unknown_kernel6.yml | 1 + src/licensedcode/data/rules/unknown_kernel7.yml | 1 + src/licensedcode/data/rules/unknown_kernel9.yml | 1 + src/licensedcode/data/rules/unknown_kernel_and_bsd-new.yml | 1 + .../data/rules/unknown_kernel_and_bsd-new_and_gpl-2.0.yml | 1 + src/licensedcode/data/rules/unknown_kernel_and_gpl-2.0-plus.yml | 1 + .../data/rules/unknown_kernel_and_gpl-2.0-plus2.yml | 1 + .../data/rules/unknown_kernel_and_gpl-2.0-plus3.yml | 1 + .../data/rules/unknown_kernel_and_gpl-2.0-plus6.yml | 1 + src/licensedcode/data/rules/unknown_kernel_and_gpl-2.0.yml | 1 + src/licensedcode/data/rules/unknown_kernel_and_gpl-2.0_1.yml | 1 + src/licensedcode/data/rules/unknown_kernel_and_gpl-2.0_2.yml | 1 + src/licensedcode/data/rules/unknown_license_other_12.yml | 1 + src/licensedcode/data/rules/unknown_no_perm.yml | 1 + src/licensedcode/data/rules/unknown_not_gpl-2.0_193.yml | 1 + .../data/rules/unknown_or_proprietary-license_1.yml | 1 + .../data/rules/unlicense_and_unknown-license-reference_1.yml | 1 + .../data/rules/uoi-ncsa_and_unknown-license-reference_1.yml | 1 + .../data/rules/uoi-ncsa_and_unknown-license-reference_2.yml | 1 + src/licensedcode/data/rules/warranty-disclaimer_20.yml | 1 + .../warranty-disclaimer_and_unknown-license-reference_1.yml | 1 + 643 files changed, 643 insertions(+), 1 deletion(-) diff --git a/src/licensedcode/data/rules/agpl-3.0_and_other-copyleft_and_unknown_1.yml b/src/licensedcode/data/rules/agpl-3.0_and_other-copyleft_and_unknown_1.yml index ece16ac7033..27355e04953 100644 --- a/src/licensedcode/data/rules/agpl-3.0_and_other-copyleft_and_unknown_1.yml +++ b/src/licensedcode/data/rules/agpl-3.0_and_other-copyleft_and_unknown_1.yml @@ -5,3 +5,4 @@ notes: contains several additions that may or may not be a problem wrt. compatib AGPL ignorable_urls: - http://www.gnu.org/licenses +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/agpl-3.0_and_unknown_1.yml b/src/licensedcode/data/rules/agpl-3.0_and_unknown_1.yml index aea634857cf..2b284055e2a 100644 --- a/src/licensedcode/data/rules/agpl-3.0_and_unknown_1.yml +++ b/src/licensedcode/data/rules/agpl-3.0_and_unknown_1.yml @@ -4,3 +4,4 @@ relevance: 100 notes: commercial use right are not clear ignorable_urls: - http://introjs.com/ +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/apache-2.0_and_free-unknown_1.yml b/src/licensedcode/data/rules/apache-2.0_and_free-unknown_1.yml index 7de55b54e0d..6698d42c56f 100644 --- a/src/licensedcode/data/rules/apache-2.0_and_free-unknown_1.yml +++ b/src/licensedcode/data/rules/apache-2.0_and_free-unknown_1.yml @@ -1,3 +1,4 @@ license_expression: apache-2.0 AND free-unknown is_license_tag: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/apache-2.0_and_free-unknown_2.yml b/src/licensedcode/data/rules/apache-2.0_and_free-unknown_2.yml index 3815773c9bb..3e6acac7f94 100644 --- a/src/licensedcode/data/rules/apache-2.0_and_free-unknown_2.yml +++ b/src/licensedcode/data/rules/apache-2.0_and_free-unknown_2.yml @@ -5,3 +5,4 @@ referenced_filenames: - docs/THIRDPARTY ignorable_urls: - https://www.apache.org/licenses/LICENSE-2.0 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/apache-2.0_and_free-unknown_zulip.yml b/src/licensedcode/data/rules/apache-2.0_and_free-unknown_zulip.yml index 9faabfead4a..6e0551e8009 100644 --- a/src/licensedcode/data/rules/apache-2.0_and_free-unknown_zulip.yml +++ b/src/licensedcode/data/rules/apache-2.0_and_free-unknown_zulip.yml @@ -5,3 +5,4 @@ referenced_filenames: - docs/THIRDPARTY ignorable_urls: - http://www.apache.org/licenses/LICENSE-2.0 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/apache-2.0_or_free-unknown_1.yml b/src/licensedcode/data/rules/apache-2.0_or_free-unknown_1.yml index 94f3cb4b994..e7618c30b35 100644 --- a/src/licensedcode/data/rules/apache-2.0_or_free-unknown_1.yml +++ b/src/licensedcode/data/rules/apache-2.0_or_free-unknown_1.yml @@ -1,3 +1,4 @@ license_expression: apache-2.0 OR free-unknown is_license_notice: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/apache-2.0_or_free-unknown_2.yml b/src/licensedcode/data/rules/apache-2.0_or_free-unknown_2.yml index 94f3cb4b994..e7618c30b35 100644 --- a/src/licensedcode/data/rules/apache-2.0_or_free-unknown_2.yml +++ b/src/licensedcode/data/rules/apache-2.0_or_free-unknown_2.yml @@ -1,3 +1,4 @@ license_expression: apache-2.0 OR free-unknown is_license_notice: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/apsl-1.2_5.yml b/src/licensedcode/data/rules/apsl-1.2_5.yml index aecd1d109c4..8432dbc5eea 100644 --- a/src/licensedcode/data/rules/apsl-1.2_5.yml +++ b/src/licensedcode/data/rules/apsl-1.2_5.yml @@ -1,2 +1,3 @@ license_expression: apsl-1.2 AND unknown is_license_reference: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/bsd-simplified_and_bsd-new_and_unknown-license-reference_nuget_url_1.yml b/src/licensedcode/data/rules/bsd-simplified_and_bsd-new_and_unknown-license-reference_nuget_url_1.yml index c65cfb10d33..3046af93e85 100644 --- a/src/licensedcode/data/rules/bsd-simplified_and_bsd-new_and_unknown-license-reference_nuget_url_1.yml +++ b/src/licensedcode/data/rules/bsd-simplified_and_bsd-new_and_unknown-license-reference_nuget_url_1.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 90 ignorable_urls: - https://raw.github.com/editorconfig/editorconfig-core/master/LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/bsd-simplified_and_unknown_1.yml b/src/licensedcode/data/rules/bsd-simplified_and_unknown_1.yml index 51752570f1c..bcd6ab712a2 100644 --- a/src/licensedcode/data/rules/bsd-simplified_and_unknown_1.yml +++ b/src/licensedcode/data/rules/bsd-simplified_and_unknown_1.yml @@ -2,3 +2,4 @@ license_expression: bsd-simplified AND unknown is_license_notice: yes relevance: 90 notes: Seen in https://git.icod.de/dalu/i18n +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/bsd-simplified_or_unknown-license-reference_and_odbl-1.0_1.yml b/src/licensedcode/data/rules/bsd-simplified_or_unknown-license-reference_and_odbl-1.0_1.yml index 73f3bfb4447..cfad9b3c320 100644 --- a/src/licensedcode/data/rules/bsd-simplified_or_unknown-license-reference_and_odbl-1.0_1.yml +++ b/src/licensedcode/data/rules/bsd-simplified_or_unknown-license-reference_and_odbl-1.0_1.yml @@ -5,3 +5,4 @@ referenced_filenames: - LEGAL ignorable_urls: - http://opendatacommons.org/licenses/odbl/ +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/bsd-top_and_gpl-2.0-plus_1.yml b/src/licensedcode/data/rules/bsd-top_and_gpl-2.0-plus_1.yml index f68d40a46c6..7c019492d3e 100644 --- a/src/licensedcode/data/rules/bsd-top_and_gpl-2.0-plus_1.yml +++ b/src/licensedcode/data/rules/bsd-top_and_gpl-2.0-plus_1.yml @@ -6,3 +6,4 @@ notes: this is a franken license composed of parts of a bsd-top and parts of a g http://reviser.osdn.jp/Excel_Reviser/_reviser.php.html ignorable_urls: - http://www.gnu.org/licenses/gpl.html +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/cpal-1.0_1.yml b/src/licensedcode/data/rules/cpal-1.0_1.yml index 3cc16662b59..60f442feab8 100644 --- a/src/licensedcode/data/rules/cpal-1.0_1.yml +++ b/src/licensedcode/data/rules/cpal-1.0_1.yml @@ -1,3 +1,4 @@ license_expression: cpal-1.0 OR free-unknown is_license_notice: yes minimum_coverage: 60 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/cpal-1.0_13.yml b/src/licensedcode/data/rules/cpal-1.0_13.yml index 3cc16662b59..60f442feab8 100644 --- a/src/licensedcode/data/rules/cpal-1.0_13.yml +++ b/src/licensedcode/data/rules/cpal-1.0_13.yml @@ -1,3 +1,4 @@ license_expression: cpal-1.0 OR free-unknown is_license_notice: yes minimum_coverage: 60 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/cpl-1.0_or_bsd-new_or_gpl-2.0_and_free-unknown_1.yml b/src/licensedcode/data/rules/cpl-1.0_or_bsd-new_or_gpl-2.0_and_free-unknown_1.yml index 1ae69925d13..c1c0f8e1852 100644 --- a/src/licensedcode/data/rules/cpl-1.0_or_bsd-new_or_gpl-2.0_and_free-unknown_1.yml +++ b/src/licensedcode/data/rules/cpl-1.0_or_bsd-new_or_gpl-2.0_and_free-unknown_1.yml @@ -6,3 +6,4 @@ ignorable_urls: - http://www.opensource.org/licenses/bsd-license.php - http://www.opensource.org/licenses/cpl.php - http://www.opensource.org/licenses/gpl-license.php +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/cpl-1.0_or_bsd-new_or_gpl-2.0_and_free-unknown_2.yml b/src/licensedcode/data/rules/cpl-1.0_or_bsd-new_or_gpl-2.0_and_free-unknown_2.yml index e73823fb4ae..5668e7f71c4 100644 --- a/src/licensedcode/data/rules/cpl-1.0_or_bsd-new_or_gpl-2.0_and_free-unknown_2.yml +++ b/src/licensedcode/data/rules/cpl-1.0_or_bsd-new_or_gpl-2.0_and_free-unknown_2.yml @@ -6,3 +6,4 @@ ignorable_urls: - http://www.opensource.org/licenses/bsd-license.php - http://www.opensource.org/licenses/cpl.php - http://www.opensource.org/licenses/gpl-license.php +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/epl-2.0_1.yml b/src/licensedcode/data/rules/epl-2.0_1.yml index 9695f0ed585..5b626590ce5 100644 --- a/src/licensedcode/data/rules/epl-2.0_1.yml +++ b/src/licensedcode/data/rules/epl-2.0_1.yml @@ -5,3 +5,4 @@ minimum_coverage: 98 notes: there is a typo in the text with an EDL reference so the license is unclear ignorable_urls: - https://www.eclipse.org/legal/epl-2.0 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/epl-2.0_or_gpl-2.0-plus_or_lgpl-2.1-plus_7_NOT.yml b/src/licensedcode/data/rules/epl-2.0_or_gpl-2.0-plus_or_lgpl-2.1-plus_7_NOT.yml index 30f24ebf13d..e02db390999 100644 --- a/src/licensedcode/data/rules/epl-2.0_or_gpl-2.0-plus_or_lgpl-2.1-plus_7_NOT.yml +++ b/src/licensedcode/data/rules/epl-2.0_or_gpl-2.0-plus_or_lgpl-2.1-plus_7_NOT.yml @@ -1,3 +1,4 @@ license_expression: unknown is_license_reference: yes notes: some comment about a license +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/eupl-1.2_and_unknown_1.yml b/src/licensedcode/data/rules/eupl-1.2_and_unknown_1.yml index b2e2d2f1653..8d8529cce6b 100644 --- a/src/licensedcode/data/rules/eupl-1.2_and_unknown_1.yml +++ b/src/licensedcode/data/rules/eupl-1.2_and_unknown_1.yml @@ -3,3 +3,4 @@ is_license_notice: yes relevance: 100 ignorable_urls: - https://joinup.ec.europa.eu/community/eupl/og_page/eupl +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_0.yml b/src/licensedcode/data/rules/free-unknown_0.yml index 2e4eab390cb..69e5761d85e 100644 --- a/src/licensedcode/data/rules/free-unknown_0.yml +++ b/src/licensedcode/data/rules/free-unknown_0.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_notice: yes relevance: 99 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_1.yml b/src/licensedcode/data/rules/free-unknown_1.yml index 2d394b80abf..24344879f2e 100644 --- a/src/licensedcode/data/rules/free-unknown_1.yml +++ b/src/licensedcode/data/rules/free-unknown_1.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_notice: yes notes: typically for GPL but this can vary and be various versions +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_10.yml b/src/licensedcode/data/rules/free-unknown_10.yml index b952d56b99a..280e92809e0 100644 --- a/src/licensedcode/data/rules/free-unknown_10.yml +++ b/src/licensedcode/data/rules/free-unknown_10.yml @@ -3,3 +3,4 @@ is_license_reference: yes referenced_filenames: - COPYING notes: typically for GPL but this can vary and be various versions +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_100.yml b/src/licensedcode/data/rules/free-unknown_100.yml index 5cc6b1735d7..c988ce717d5 100644 --- a/src/licensedcode/data/rules/free-unknown_100.yml +++ b/src/licensedcode/data/rules/free-unknown_100.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_101.yml b/src/licensedcode/data/rules/free-unknown_101.yml index 5cc6b1735d7..c988ce717d5 100644 --- a/src/licensedcode/data/rules/free-unknown_101.yml +++ b/src/licensedcode/data/rules/free-unknown_101.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_102.yml b/src/licensedcode/data/rules/free-unknown_102.yml index f8650a2207a..fd3f7a0759b 100644 --- a/src/licensedcode/data/rules/free-unknown_102.yml +++ b/src/licensedcode/data/rules/free-unknown_102.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_notice: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_103.yml b/src/licensedcode/data/rules/free-unknown_103.yml index 5cc6b1735d7..c988ce717d5 100644 --- a/src/licensedcode/data/rules/free-unknown_103.yml +++ b/src/licensedcode/data/rules/free-unknown_103.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_104.yml b/src/licensedcode/data/rules/free-unknown_104.yml index 5cc6b1735d7..c988ce717d5 100644 --- a/src/licensedcode/data/rules/free-unknown_104.yml +++ b/src/licensedcode/data/rules/free-unknown_104.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_105.yml b/src/licensedcode/data/rules/free-unknown_105.yml index 5cc6b1735d7..c988ce717d5 100644 --- a/src/licensedcode/data/rules/free-unknown_105.yml +++ b/src/licensedcode/data/rules/free-unknown_105.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_106.yml b/src/licensedcode/data/rules/free-unknown_106.yml index bdb421b7d53..372997ceb4d 100644 --- a/src/licensedcode/data/rules/free-unknown_106.yml +++ b/src/licensedcode/data/rules/free-unknown_106.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - jpegxr/COPYRIGHT.txt +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_107.yml b/src/licensedcode/data/rules/free-unknown_107.yml index 5cc6b1735d7..c988ce717d5 100644 --- a/src/licensedcode/data/rules/free-unknown_107.yml +++ b/src/licensedcode/data/rules/free-unknown_107.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_108.yml b/src/licensedcode/data/rules/free-unknown_108.yml index f8650a2207a..fd3f7a0759b 100644 --- a/src/licensedcode/data/rules/free-unknown_108.yml +++ b/src/licensedcode/data/rules/free-unknown_108.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_notice: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_109.yml b/src/licensedcode/data/rules/free-unknown_109.yml index 4f159dafdb5..3eedadc787d 100644 --- a/src/licensedcode/data/rules/free-unknown_109.yml +++ b/src/licensedcode/data/rules/free-unknown_109.yml @@ -3,3 +3,4 @@ is_license_notice: yes relevance: 100 referenced_filenames: - COPYING +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_11.yml b/src/licensedcode/data/rules/free-unknown_11.yml index b952d56b99a..280e92809e0 100644 --- a/src/licensedcode/data/rules/free-unknown_11.yml +++ b/src/licensedcode/data/rules/free-unknown_11.yml @@ -3,3 +3,4 @@ is_license_reference: yes referenced_filenames: - COPYING notes: typically for GPL but this can vary and be various versions +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_110.yml b/src/licensedcode/data/rules/free-unknown_110.yml index f8650a2207a..fd3f7a0759b 100644 --- a/src/licensedcode/data/rules/free-unknown_110.yml +++ b/src/licensedcode/data/rules/free-unknown_110.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_notice: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_111.yml b/src/licensedcode/data/rules/free-unknown_111.yml index ca7253336af..cff8ddc9bf4 100644 --- a/src/licensedcode/data/rules/free-unknown_111.yml +++ b/src/licensedcode/data/rules/free-unknown_111.yml @@ -3,3 +3,4 @@ is_license_notice: yes relevance: 100 referenced_filenames: - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_112.yml b/src/licensedcode/data/rules/free-unknown_112.yml index 5cc6b1735d7..c988ce717d5 100644 --- a/src/licensedcode/data/rules/free-unknown_112.yml +++ b/src/licensedcode/data/rules/free-unknown_112.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_113.yml b/src/licensedcode/data/rules/free-unknown_113.yml index 1862c0bc699..225a5e8f589 100644 --- a/src/licensedcode/data/rules/free-unknown_113.yml +++ b/src/licensedcode/data/rules/free-unknown_113.yml @@ -4,3 +4,4 @@ relevance: 100 notes: this is a generic CC notie that there is a license ignorable_urls: - https://creativecommons.org/ +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_114.yml b/src/licensedcode/data/rules/free-unknown_114.yml index f8650a2207a..fd3f7a0759b 100644 --- a/src/licensedcode/data/rules/free-unknown_114.yml +++ b/src/licensedcode/data/rules/free-unknown_114.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_notice: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_115.yml b/src/licensedcode/data/rules/free-unknown_115.yml index f8650a2207a..fd3f7a0759b 100644 --- a/src/licensedcode/data/rules/free-unknown_115.yml +++ b/src/licensedcode/data/rules/free-unknown_115.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_notice: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_116.yml b/src/licensedcode/data/rules/free-unknown_116.yml index dc57616b8cc..d258ab94923 100644 --- a/src/licensedcode/data/rules/free-unknown_116.yml +++ b/src/licensedcode/data/rules/free-unknown_116.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_reference: yes relevance: 99 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_117.yml b/src/licensedcode/data/rules/free-unknown_117.yml index 68af10b5de9..8f65162e8b9 100644 --- a/src/licensedcode/data/rules/free-unknown_117.yml +++ b/src/licensedcode/data/rules/free-unknown_117.yml @@ -7,3 +7,4 @@ notes: | See https://raw.githubusercontent.com/PixarAnimationStudios/ruby-jss/master/LICENSE.txt ignorable_urls: - https://www.apache.org/licenses/LICENSE-2.0 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_12.yml b/src/licensedcode/data/rules/free-unknown_12.yml index 0549809b697..746061d7a72 100644 --- a/src/licensedcode/data/rules/free-unknown_12.yml +++ b/src/licensedcode/data/rules/free-unknown_12.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_reference: yes notes: typically for GPL but this can vary and be various versions +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_127.yml b/src/licensedcode/data/rules/free-unknown_127.yml index b0d260e3c63..4c63cce47c9 100644 --- a/src/licensedcode/data/rules/free-unknown_127.yml +++ b/src/licensedcode/data/rules/free-unknown_127.yml @@ -2,3 +2,4 @@ license_expression: free-unknown is_license_notice: yes referenced_filenames: - COPYING +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_13.yml b/src/licensedcode/data/rules/free-unknown_13.yml index 0549809b697..746061d7a72 100644 --- a/src/licensedcode/data/rules/free-unknown_13.yml +++ b/src/licensedcode/data/rules/free-unknown_13.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_reference: yes notes: typically for GPL but this can vary and be various versions +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_14.yml b/src/licensedcode/data/rules/free-unknown_14.yml index 0549809b697..746061d7a72 100644 --- a/src/licensedcode/data/rules/free-unknown_14.yml +++ b/src/licensedcode/data/rules/free-unknown_14.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_reference: yes notes: typically for GPL but this can vary and be various versions +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_15.yml b/src/licensedcode/data/rules/free-unknown_15.yml index 0549809b697..746061d7a72 100644 --- a/src/licensedcode/data/rules/free-unknown_15.yml +++ b/src/licensedcode/data/rules/free-unknown_15.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_reference: yes notes: typically for GPL but this can vary and be various versions +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_16.yml b/src/licensedcode/data/rules/free-unknown_16.yml index 0549809b697..746061d7a72 100644 --- a/src/licensedcode/data/rules/free-unknown_16.yml +++ b/src/licensedcode/data/rules/free-unknown_16.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_reference: yes notes: typically for GPL but this can vary and be various versions +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_17.yml b/src/licensedcode/data/rules/free-unknown_17.yml index b952d56b99a..280e92809e0 100644 --- a/src/licensedcode/data/rules/free-unknown_17.yml +++ b/src/licensedcode/data/rules/free-unknown_17.yml @@ -3,3 +3,4 @@ is_license_reference: yes referenced_filenames: - COPYING notes: typically for GPL but this can vary and be various versions +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_18.yml b/src/licensedcode/data/rules/free-unknown_18.yml index b952d56b99a..280e92809e0 100644 --- a/src/licensedcode/data/rules/free-unknown_18.yml +++ b/src/licensedcode/data/rules/free-unknown_18.yml @@ -3,3 +3,4 @@ is_license_reference: yes referenced_filenames: - COPYING notes: typically for GPL but this can vary and be various versions +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_19.yml b/src/licensedcode/data/rules/free-unknown_19.yml index 0d0466d0bb1..08e0b3a9158 100644 --- a/src/licensedcode/data/rules/free-unknown_19.yml +++ b/src/licensedcode/data/rules/free-unknown_19.yml @@ -4,3 +4,4 @@ referenced_filenames: - COPYING - LICENSE notes: typically for GPL but this can vary and be various versions +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_2.yml b/src/licensedcode/data/rules/free-unknown_2.yml index 2d394b80abf..24344879f2e 100644 --- a/src/licensedcode/data/rules/free-unknown_2.yml +++ b/src/licensedcode/data/rules/free-unknown_2.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_notice: yes notes: typically for GPL but this can vary and be various versions +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_20.yml b/src/licensedcode/data/rules/free-unknown_20.yml index 0549809b697..746061d7a72 100644 --- a/src/licensedcode/data/rules/free-unknown_20.yml +++ b/src/licensedcode/data/rules/free-unknown_20.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_reference: yes notes: typically for GPL but this can vary and be various versions +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_21.yml b/src/licensedcode/data/rules/free-unknown_21.yml index 0549809b697..746061d7a72 100644 --- a/src/licensedcode/data/rules/free-unknown_21.yml +++ b/src/licensedcode/data/rules/free-unknown_21.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_reference: yes notes: typically for GPL but this can vary and be various versions +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_22.yml b/src/licensedcode/data/rules/free-unknown_22.yml index 0549809b697..746061d7a72 100644 --- a/src/licensedcode/data/rules/free-unknown_22.yml +++ b/src/licensedcode/data/rules/free-unknown_22.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_reference: yes notes: typically for GPL but this can vary and be various versions +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_23.yml b/src/licensedcode/data/rules/free-unknown_23.yml index 4ab2e8117b9..5008c0bb693 100644 --- a/src/licensedcode/data/rules/free-unknown_23.yml +++ b/src/licensedcode/data/rules/free-unknown_23.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_notice: yes notes: Seen in some perl module +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_24.yml b/src/licensedcode/data/rules/free-unknown_24.yml index cda5a30cc1c..1e274f5e30d 100644 --- a/src/licensedcode/data/rules/free-unknown_24.yml +++ b/src/licensedcode/data/rules/free-unknown_24.yml @@ -1,2 +1,3 @@ license_expression: free-unknown is_license_reference: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_25.yml b/src/licensedcode/data/rules/free-unknown_25.yml index 0119125ce09..9705faddcce 100644 --- a/src/licensedcode/data/rules/free-unknown_25.yml +++ b/src/licensedcode/data/rules/free-unknown_25.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_notice: yes minimum_coverage: 80 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_26.yml b/src/licensedcode/data/rules/free-unknown_26.yml index 74cb218d689..f6b79a6c68b 100644 --- a/src/licensedcode/data/rules/free-unknown_26.yml +++ b/src/licensedcode/data/rules/free-unknown_26.yml @@ -1,2 +1,3 @@ license_expression: free-unknown is_license_notice: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_27.yml b/src/licensedcode/data/rules/free-unknown_27.yml index 61398ef9f27..d12d2f1602f 100644 --- a/src/licensedcode/data/rules/free-unknown_27.yml +++ b/src/licensedcode/data/rules/free-unknown_27.yml @@ -4,3 +4,4 @@ ignorable_copyrights: - Copyright (c) Emagic ignorable_holders: - Emagic +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_28.yml b/src/licensedcode/data/rules/free-unknown_28.yml index 61398ef9f27..d12d2f1602f 100644 --- a/src/licensedcode/data/rules/free-unknown_28.yml +++ b/src/licensedcode/data/rules/free-unknown_28.yml @@ -4,3 +4,4 @@ ignorable_copyrights: - Copyright (c) Emagic ignorable_holders: - Emagic +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_29.yml b/src/licensedcode/data/rules/free-unknown_29.yml index 0119125ce09..9705faddcce 100644 --- a/src/licensedcode/data/rules/free-unknown_29.yml +++ b/src/licensedcode/data/rules/free-unknown_29.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_notice: yes minimum_coverage: 80 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_3.yml b/src/licensedcode/data/rules/free-unknown_3.yml index 2d394b80abf..24344879f2e 100644 --- a/src/licensedcode/data/rules/free-unknown_3.yml +++ b/src/licensedcode/data/rules/free-unknown_3.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_notice: yes notes: typically for GPL but this can vary and be various versions +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_30.yml b/src/licensedcode/data/rules/free-unknown_30.yml index b086f195d17..58130b84b44 100644 --- a/src/licensedcode/data/rules/free-unknown_30.yml +++ b/src/licensedcode/data/rules/free-unknown_30.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_notice: yes minimum_coverage: 50 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_31.yml b/src/licensedcode/data/rules/free-unknown_31.yml index f8650a2207a..fd3f7a0759b 100644 --- a/src/licensedcode/data/rules/free-unknown_31.yml +++ b/src/licensedcode/data/rules/free-unknown_31.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_notice: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_32.yml b/src/licensedcode/data/rules/free-unknown_32.yml index b086f195d17..58130b84b44 100644 --- a/src/licensedcode/data/rules/free-unknown_32.yml +++ b/src/licensedcode/data/rules/free-unknown_32.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_notice: yes minimum_coverage: 50 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_33.yml b/src/licensedcode/data/rules/free-unknown_33.yml index b086f195d17..58130b84b44 100644 --- a/src/licensedcode/data/rules/free-unknown_33.yml +++ b/src/licensedcode/data/rules/free-unknown_33.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_notice: yes minimum_coverage: 50 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_34.yml b/src/licensedcode/data/rules/free-unknown_34.yml index 0119125ce09..9705faddcce 100644 --- a/src/licensedcode/data/rules/free-unknown_34.yml +++ b/src/licensedcode/data/rules/free-unknown_34.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_notice: yes minimum_coverage: 80 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_35.yml b/src/licensedcode/data/rules/free-unknown_35.yml index cda5a30cc1c..1e274f5e30d 100644 --- a/src/licensedcode/data/rules/free-unknown_35.yml +++ b/src/licensedcode/data/rules/free-unknown_35.yml @@ -1,2 +1,3 @@ license_expression: free-unknown is_license_reference: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_36.yml b/src/licensedcode/data/rules/free-unknown_36.yml index 74cb218d689..f6b79a6c68b 100644 --- a/src/licensedcode/data/rules/free-unknown_36.yml +++ b/src/licensedcode/data/rules/free-unknown_36.yml @@ -1,2 +1,3 @@ license_expression: free-unknown is_license_notice: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_37.yml b/src/licensedcode/data/rules/free-unknown_37.yml index 74cb218d689..f6b79a6c68b 100644 --- a/src/licensedcode/data/rules/free-unknown_37.yml +++ b/src/licensedcode/data/rules/free-unknown_37.yml @@ -1,2 +1,3 @@ license_expression: free-unknown is_license_notice: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_38.yml b/src/licensedcode/data/rules/free-unknown_38.yml index 74cb218d689..f6b79a6c68b 100644 --- a/src/licensedcode/data/rules/free-unknown_38.yml +++ b/src/licensedcode/data/rules/free-unknown_38.yml @@ -1,2 +1,3 @@ license_expression: free-unknown is_license_notice: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_39.yml b/src/licensedcode/data/rules/free-unknown_39.yml index 74cb218d689..f6b79a6c68b 100644 --- a/src/licensedcode/data/rules/free-unknown_39.yml +++ b/src/licensedcode/data/rules/free-unknown_39.yml @@ -1,2 +1,3 @@ license_expression: free-unknown is_license_notice: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_4.yml b/src/licensedcode/data/rules/free-unknown_4.yml index 0549809b697..746061d7a72 100644 --- a/src/licensedcode/data/rules/free-unknown_4.yml +++ b/src/licensedcode/data/rules/free-unknown_4.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_reference: yes notes: typically for GPL but this can vary and be various versions +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_40.yml b/src/licensedcode/data/rules/free-unknown_40.yml index a3122823694..b72f7295d0a 100644 --- a/src/licensedcode/data/rules/free-unknown_40.yml +++ b/src/licensedcode/data/rules/free-unknown_40.yml @@ -1,2 +1,3 @@ license_expression: free-unknown is_license_text: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_41.yml b/src/licensedcode/data/rules/free-unknown_41.yml index cda5a30cc1c..1e274f5e30d 100644 --- a/src/licensedcode/data/rules/free-unknown_41.yml +++ b/src/licensedcode/data/rules/free-unknown_41.yml @@ -1,2 +1,3 @@ license_expression: free-unknown is_license_reference: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_42.yml b/src/licensedcode/data/rules/free-unknown_42.yml index 0119125ce09..9705faddcce 100644 --- a/src/licensedcode/data/rules/free-unknown_42.yml +++ b/src/licensedcode/data/rules/free-unknown_42.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_notice: yes minimum_coverage: 80 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_43.yml b/src/licensedcode/data/rules/free-unknown_43.yml index 74cb218d689..f6b79a6c68b 100644 --- a/src/licensedcode/data/rules/free-unknown_43.yml +++ b/src/licensedcode/data/rules/free-unknown_43.yml @@ -1,2 +1,3 @@ license_expression: free-unknown is_license_notice: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_44.yml b/src/licensedcode/data/rules/free-unknown_44.yml index 74cb218d689..f6b79a6c68b 100644 --- a/src/licensedcode/data/rules/free-unknown_44.yml +++ b/src/licensedcode/data/rules/free-unknown_44.yml @@ -1,2 +1,3 @@ license_expression: free-unknown is_license_notice: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_45.yml b/src/licensedcode/data/rules/free-unknown_45.yml index 74cb218d689..f6b79a6c68b 100644 --- a/src/licensedcode/data/rules/free-unknown_45.yml +++ b/src/licensedcode/data/rules/free-unknown_45.yml @@ -1,2 +1,3 @@ license_expression: free-unknown is_license_notice: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_46.yml b/src/licensedcode/data/rules/free-unknown_46.yml index 61398ef9f27..d12d2f1602f 100644 --- a/src/licensedcode/data/rules/free-unknown_46.yml +++ b/src/licensedcode/data/rules/free-unknown_46.yml @@ -4,3 +4,4 @@ ignorable_copyrights: - Copyright (c) Emagic ignorable_holders: - Emagic +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_47.yml b/src/licensedcode/data/rules/free-unknown_47.yml index f85198e646d..eba5d3cb07c 100644 --- a/src/licensedcode/data/rules/free-unknown_47.yml +++ b/src/licensedcode/data/rules/free-unknown_47.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_intro: yes notes: header in the newlib license notice +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_48.yml b/src/licensedcode/data/rules/free-unknown_48.yml index 9cd3e7c449e..cb9bd2072d4 100644 --- a/src/licensedcode/data/rules/free-unknown_48.yml +++ b/src/licensedcode/data/rules/free-unknown_48.yml @@ -2,3 +2,4 @@ license_expression: free-unknown is_license_reference: yes relevance: 90 notes: Seen in bootstrap. This is a cc-by-3.0, but the text alone is weak +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_49.yml b/src/licensedcode/data/rules/free-unknown_49.yml index 77ef7a990e7..40d98e5bd0f 100644 --- a/src/licensedcode/data/rules/free-unknown_49.yml +++ b/src/licensedcode/data/rules/free-unknown_49.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_notice: yes notes: Seen in bootstrap. This is a cc-by-3.0, but the text alone is weak +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_5.yml b/src/licensedcode/data/rules/free-unknown_5.yml index 4dfef5fb5ae..30bbb888fae 100644 --- a/src/licensedcode/data/rules/free-unknown_5.yml +++ b/src/licensedcode/data/rules/free-unknown_5.yml @@ -2,3 +2,4 @@ license_expression: free-unknown is_license_reference: yes relevance: 100 notes: typically for GPL but this can vary and be various versions +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_50.yml b/src/licensedcode/data/rules/free-unknown_50.yml index 77a621c29ef..bb7730f0c9e 100644 --- a/src/licensedcode/data/rules/free-unknown_50.yml +++ b/src/licensedcode/data/rules/free-unknown_50.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_notice: yes notes: POSIX man page notice, no license key assigned yet +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_51.yml b/src/licensedcode/data/rules/free-unknown_51.yml index e27a0c572da..f7b13a8541a 100644 --- a/src/licensedcode/data/rules/free-unknown_51.yml +++ b/src/licensedcode/data/rules/free-unknown_51.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_reference: yes notes: Seen in htmlagilitypack +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_52.yml b/src/licensedcode/data/rules/free-unknown_52.yml index 74cb218d689..f6b79a6c68b 100644 --- a/src/licensedcode/data/rules/free-unknown_52.yml +++ b/src/licensedcode/data/rules/free-unknown_52.yml @@ -1,2 +1,3 @@ license_expression: free-unknown is_license_notice: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_53.yml b/src/licensedcode/data/rules/free-unknown_53.yml index 5531a3dd21a..479e118b5b5 100644 --- a/src/licensedcode/data/rules/free-unknown_53.yml +++ b/src/licensedcode/data/rules/free-unknown_53.yml @@ -2,3 +2,4 @@ license_expression: free-unknown is_license_reference: yes relevance: 99 notes: this is the CC preamble that comes with some CC licenses text. +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_54.yml b/src/licensedcode/data/rules/free-unknown_54.yml index f8650a2207a..fd3f7a0759b 100644 --- a/src/licensedcode/data/rules/free-unknown_54.yml +++ b/src/licensedcode/data/rules/free-unknown_54.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_notice: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_55.yml b/src/licensedcode/data/rules/free-unknown_55.yml index dc57616b8cc..d258ab94923 100644 --- a/src/licensedcode/data/rules/free-unknown_55.yml +++ b/src/licensedcode/data/rules/free-unknown_55.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_reference: yes relevance: 99 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_56.yml b/src/licensedcode/data/rules/free-unknown_56.yml index 99c8b054280..ba28835b1f3 100644 --- a/src/licensedcode/data/rules/free-unknown_56.yml +++ b/src/licensedcode/data/rules/free-unknown_56.yml @@ -3,3 +3,4 @@ is_license_notice: yes relevance: 100 notes: Seen in https://transparency.entsoe.eu/content/static_content/download?path=/Static content/terms and conditions/191025_List_of_Data_available_for_reuse_v2_cln.pdf +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_57.yml b/src/licensedcode/data/rules/free-unknown_57.yml index 5be79ba5f34..5232e366f27 100644 --- a/src/licensedcode/data/rules/free-unknown_57.yml +++ b/src/licensedcode/data/rules/free-unknown_57.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_tag: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_58.yml b/src/licensedcode/data/rules/free-unknown_58.yml index 76463a42037..80354fc5968 100644 --- a/src/licensedcode/data/rules/free-unknown_58.yml +++ b/src/licensedcode/data/rules/free-unknown_58.yml @@ -3,3 +3,4 @@ is_license_notice: yes relevance: 100 ignorable_urls: - http://www.wu-ftpd.org/license.html +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_59.yml b/src/licensedcode/data/rules/free-unknown_59.yml index 77a7fa84e80..0b9da7e3de0 100644 --- a/src/licensedcode/data/rules/free-unknown_59.yml +++ b/src/licensedcode/data/rules/free-unknown_59.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://www.wu-ftpd.org/license.html +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_6.yml b/src/licensedcode/data/rules/free-unknown_6.yml index 78b926675c3..7afd0d1c3dc 100644 --- a/src/licensedcode/data/rules/free-unknown_6.yml +++ b/src/licensedcode/data/rules/free-unknown_6.yml @@ -3,3 +3,4 @@ is_license_notice: yes referenced_filenames: - COPYING notes: typically for GPL but this can vary and be various versions +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_60.yml b/src/licensedcode/data/rules/free-unknown_60.yml index 5e73acdc24c..0031f1e66b5 100644 --- a/src/licensedcode/data/rules/free-unknown_60.yml +++ b/src/licensedcode/data/rules/free-unknown_60.yml @@ -6,3 +6,4 @@ ignorable_authors: Design, Inc., and their contributors ignorable_urls: - http://www.wu-ftpd.org/license.html +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_61.yml b/src/licensedcode/data/rules/free-unknown_61.yml index 849e21e60b8..0be81452933 100644 --- a/src/licensedcode/data/rules/free-unknown_61.yml +++ b/src/licensedcode/data/rules/free-unknown_61.yml @@ -3,3 +3,4 @@ is_license_notice: yes relevance: 90 ignorable_urls: - http://www.opensource.org/licenses +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_62.yml b/src/licensedcode/data/rules/free-unknown_62.yml index 8a84e891572..1a7d2a0f061 100644 --- a/src/licensedcode/data/rules/free-unknown_62.yml +++ b/src/licensedcode/data/rules/free-unknown_62.yml @@ -3,3 +3,4 @@ is_license_notice: yes relevance: 90 ignorable_urls: - http://www.opensource.org/ +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_63.yml b/src/licensedcode/data/rules/free-unknown_63.yml index 74cb218d689..f6b79a6c68b 100644 --- a/src/licensedcode/data/rules/free-unknown_63.yml +++ b/src/licensedcode/data/rules/free-unknown_63.yml @@ -1,2 +1,3 @@ license_expression: free-unknown is_license_notice: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_64.yml b/src/licensedcode/data/rules/free-unknown_64.yml index cda5a30cc1c..1e274f5e30d 100644 --- a/src/licensedcode/data/rules/free-unknown_64.yml +++ b/src/licensedcode/data/rules/free-unknown_64.yml @@ -1,2 +1,3 @@ license_expression: free-unknown is_license_reference: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_65.yml b/src/licensedcode/data/rules/free-unknown_65.yml index 6d1ee1dbe2f..b0bf6143a96 100644 --- a/src/licensedcode/data/rules/free-unknown_65.yml +++ b/src/licensedcode/data/rules/free-unknown_65.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_notice: yes notes: found in older OpenSSL versions in openssl-1.1.0h/ms/tlhelp32.h +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_66.yml b/src/licensedcode/data/rules/free-unknown_66.yml index 74cb218d689..f6b79a6c68b 100644 --- a/src/licensedcode/data/rules/free-unknown_66.yml +++ b/src/licensedcode/data/rules/free-unknown_66.yml @@ -1,2 +1,3 @@ license_expression: free-unknown is_license_notice: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_67.yml b/src/licensedcode/data/rules/free-unknown_67.yml index cda5a30cc1c..1e274f5e30d 100644 --- a/src/licensedcode/data/rules/free-unknown_67.yml +++ b/src/licensedcode/data/rules/free-unknown_67.yml @@ -1,2 +1,3 @@ license_expression: free-unknown is_license_reference: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_68.yml b/src/licensedcode/data/rules/free-unknown_68.yml index c0f5f8c6103..ae05b0eb196 100644 --- a/src/licensedcode/data/rules/free-unknown_68.yml +++ b/src/licensedcode/data/rules/free-unknown_68.yml @@ -7,3 +7,4 @@ notes: | See https://raw.githubusercontent.com/PixarAnimationStudios/ruby-jss/master/LICENSE.txt When compared with the Apache-2.0 license text, section 6. Trademarks has been modified to narrow the original exception of TM usage "as required for reasonable and customary use"... +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_69.yml b/src/licensedcode/data/rules/free-unknown_69.yml index 5c23d151e06..2e71fa1cd68 100644 --- a/src/licensedcode/data/rules/free-unknown_69.yml +++ b/src/licensedcode/data/rules/free-unknown_69.yml @@ -7,3 +7,4 @@ notes: | See https://raw.githubusercontent.com/PixarAnimationStudios/ruby-jss/master/LICENSE.txt ignorable_urls: - http://www.apache.org/licenses/LICENSE-2.0 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_7.yml b/src/licensedcode/data/rules/free-unknown_7.yml index c94180642b5..9932cf2f4cb 100644 --- a/src/licensedcode/data/rules/free-unknown_7.yml +++ b/src/licensedcode/data/rules/free-unknown_7.yml @@ -2,3 +2,4 @@ license_expression: free-unknown is_license_notice: yes relevance: 100 minimum_coverage: 99 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_70.yml b/src/licensedcode/data/rules/free-unknown_70.yml index e883f802110..a0e110d08f6 100644 --- a/src/licensedcode/data/rules/free-unknown_70.yml +++ b/src/licensedcode/data/rules/free-unknown_70.yml @@ -5,3 +5,4 @@ notes: | this is a rare modified Apache 2.0 license from PIXAR, reported as free-unknown to draw attention on its uncommon terms See https://raw.githubusercontent.com/PixarAnimationStudios/ruby-jss/master/LICENSE.txt +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_71.yml b/src/licensedcode/data/rules/free-unknown_71.yml index 9c381525ff6..1a691fd902c 100644 --- a/src/licensedcode/data/rules/free-unknown_71.yml +++ b/src/licensedcode/data/rules/free-unknown_71.yml @@ -3,3 +3,4 @@ is_license_reference: yes referenced_filenames: - COPYING.DJ notes: typically for GPL +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_72.yml b/src/licensedcode/data/rules/free-unknown_72.yml index cda5a30cc1c..1e274f5e30d 100644 --- a/src/licensedcode/data/rules/free-unknown_72.yml +++ b/src/licensedcode/data/rules/free-unknown_72.yml @@ -1,2 +1,3 @@ license_expression: free-unknown is_license_reference: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_73.yml b/src/licensedcode/data/rules/free-unknown_73.yml index cda5a30cc1c..1e274f5e30d 100644 --- a/src/licensedcode/data/rules/free-unknown_73.yml +++ b/src/licensedcode/data/rules/free-unknown_73.yml @@ -1,2 +1,3 @@ license_expression: free-unknown is_license_reference: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_74.yml b/src/licensedcode/data/rules/free-unknown_74.yml index 2b85710d12c..21acf57fc32 100644 --- a/src/licensedcode/data/rules/free-unknown_74.yml +++ b/src/licensedcode/data/rules/free-unknown_74.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_text: yes notes: found in old texi2html code in older bash/support +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_75.yml b/src/licensedcode/data/rules/free-unknown_75.yml index 9c86f390f46..8edc5142bec 100644 --- a/src/licensedcode/data/rules/free-unknown_75.yml +++ b/src/licensedcode/data/rules/free-unknown_75.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_text: yes notes: this is a per-GPL text found in RMS regex code from circa 1985 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_76.yml b/src/licensedcode/data/rules/free-unknown_76.yml index 74cb218d689..f6b79a6c68b 100644 --- a/src/licensedcode/data/rules/free-unknown_76.yml +++ b/src/licensedcode/data/rules/free-unknown_76.yml @@ -1,2 +1,3 @@ license_expression: free-unknown is_license_notice: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_77.yml b/src/licensedcode/data/rules/free-unknown_77.yml index 052fe8e4934..7b3e48e99cb 100644 --- a/src/licensedcode/data/rules/free-unknown_77.yml +++ b/src/licensedcode/data/rules/free-unknown_77.yml @@ -2,3 +2,4 @@ license_expression: free-unknown is_license_notice: yes relevance: 100 notes: found in some libpng notices +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_78.yml b/src/licensedcode/data/rules/free-unknown_78.yml index a2e4c686fde..45ef545d271 100644 --- a/src/licensedcode/data/rules/free-unknown_78.yml +++ b/src/licensedcode/data/rules/free-unknown_78.yml @@ -3,3 +3,4 @@ is_license_reference: yes referenced_filenames: - COPYING - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_79.yml b/src/licensedcode/data/rules/free-unknown_79.yml index b6d10267484..228ce29a2a4 100644 --- a/src/licensedcode/data/rules/free-unknown_79.yml +++ b/src/licensedcode/data/rules/free-unknown_79.yml @@ -2,3 +2,4 @@ license_expression: free-unknown is_license_notice: yes relevance: 90 notes: Seen in gettext +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_8.yml b/src/licensedcode/data/rules/free-unknown_8.yml index b952d56b99a..280e92809e0 100644 --- a/src/licensedcode/data/rules/free-unknown_8.yml +++ b/src/licensedcode/data/rules/free-unknown_8.yml @@ -3,3 +3,4 @@ is_license_reference: yes referenced_filenames: - COPYING notes: typically for GPL but this can vary and be various versions +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_80.yml b/src/licensedcode/data/rules/free-unknown_80.yml index b6d10267484..228ce29a2a4 100644 --- a/src/licensedcode/data/rules/free-unknown_80.yml +++ b/src/licensedcode/data/rules/free-unknown_80.yml @@ -2,3 +2,4 @@ license_expression: free-unknown is_license_notice: yes relevance: 90 notes: Seen in gettext +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_81.yml b/src/licensedcode/data/rules/free-unknown_81.yml index 1b73da5f3d0..64ece2f65b0 100644 --- a/src/licensedcode/data/rules/free-unknown_81.yml +++ b/src/licensedcode/data/rules/free-unknown_81.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_notice: yes notes: typically for GPL but this can vary and be other license +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_82.yml b/src/licensedcode/data/rules/free-unknown_82.yml index 4cddbcec26b..121a84fdf2a 100644 --- a/src/licensedcode/data/rules/free-unknown_82.yml +++ b/src/licensedcode/data/rules/free-unknown_82.yml @@ -2,3 +2,4 @@ license_expression: free-unknown is_license_tag: yes relevance: 90 notes: tag as documented in the Module-Build pod +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_83.yml b/src/licensedcode/data/rules/free-unknown_83.yml index cda5a30cc1c..1e274f5e30d 100644 --- a/src/licensedcode/data/rules/free-unknown_83.yml +++ b/src/licensedcode/data/rules/free-unknown_83.yml @@ -1,2 +1,3 @@ license_expression: free-unknown is_license_reference: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_84.yml b/src/licensedcode/data/rules/free-unknown_84.yml index b0d260e3c63..4c63cce47c9 100644 --- a/src/licensedcode/data/rules/free-unknown_84.yml +++ b/src/licensedcode/data/rules/free-unknown_84.yml @@ -2,3 +2,4 @@ license_expression: free-unknown is_license_notice: yes referenced_filenames: - COPYING +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_85.yml b/src/licensedcode/data/rules/free-unknown_85.yml index 5cc6b1735d7..c988ce717d5 100644 --- a/src/licensedcode/data/rules/free-unknown_85.yml +++ b/src/licensedcode/data/rules/free-unknown_85.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_86.yml b/src/licensedcode/data/rules/free-unknown_86.yml index c87e92e8bfc..febb4685dbd 100644 --- a/src/licensedcode/data/rules/free-unknown_86.yml +++ b/src/licensedcode/data/rules/free-unknown_86.yml @@ -5,3 +5,4 @@ referenced_filenames: - Copyright.txt ignorable_urls: - http://gdcm.sourceforge.net/Copyright.html +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_87.yml b/src/licensedcode/data/rules/free-unknown_87.yml index 4cddbcec26b..121a84fdf2a 100644 --- a/src/licensedcode/data/rules/free-unknown_87.yml +++ b/src/licensedcode/data/rules/free-unknown_87.yml @@ -2,3 +2,4 @@ license_expression: free-unknown is_license_tag: yes relevance: 90 notes: tag as documented in the Module-Build pod +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_88.yml b/src/licensedcode/data/rules/free-unknown_88.yml index 5697a2e1198..3b9ae2c0183 100644 --- a/src/licensedcode/data/rules/free-unknown_88.yml +++ b/src/licensedcode/data/rules/free-unknown_88.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_reference: yes relevance: 50 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_89.yml b/src/licensedcode/data/rules/free-unknown_89.yml index cda5a30cc1c..1e274f5e30d 100644 --- a/src/licensedcode/data/rules/free-unknown_89.yml +++ b/src/licensedcode/data/rules/free-unknown_89.yml @@ -1,2 +1,3 @@ license_expression: free-unknown is_license_reference: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_9.yml b/src/licensedcode/data/rules/free-unknown_9.yml index 2d394b80abf..24344879f2e 100644 --- a/src/licensedcode/data/rules/free-unknown_9.yml +++ b/src/licensedcode/data/rules/free-unknown_9.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_notice: yes notes: typically for GPL but this can vary and be various versions +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_90.yml b/src/licensedcode/data/rules/free-unknown_90.yml index 2d394b80abf..24344879f2e 100644 --- a/src/licensedcode/data/rules/free-unknown_90.yml +++ b/src/licensedcode/data/rules/free-unknown_90.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_notice: yes notes: typically for GPL but this can vary and be various versions +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_91.yml b/src/licensedcode/data/rules/free-unknown_91.yml index f8650a2207a..fd3f7a0759b 100644 --- a/src/licensedcode/data/rules/free-unknown_91.yml +++ b/src/licensedcode/data/rules/free-unknown_91.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_notice: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_92.yml b/src/licensedcode/data/rules/free-unknown_92.yml index 5cc6b1735d7..c988ce717d5 100644 --- a/src/licensedcode/data/rules/free-unknown_92.yml +++ b/src/licensedcode/data/rules/free-unknown_92.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_93.yml b/src/licensedcode/data/rules/free-unknown_93.yml index 2cda2602e9d..a77d06b017e 100644 --- a/src/licensedcode/data/rules/free-unknown_93.yml +++ b/src/licensedcode/data/rules/free-unknown_93.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://www.opensource.org/licenses/ +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_94.yml b/src/licensedcode/data/rules/free-unknown_94.yml index a26ab320c38..693ddd899bc 100644 --- a/src/licensedcode/data/rules/free-unknown_94.yml +++ b/src/licensedcode/data/rules/free-unknown_94.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://www.opensource.org/licenses/ +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_95.yml b/src/licensedcode/data/rules/free-unknown_95.yml index 68fccf95b0b..a1a6ed52758 100644 --- a/src/licensedcode/data/rules/free-unknown_95.yml +++ b/src/licensedcode/data/rules/free-unknown_95.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://opensource.org/licenses/ +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_96.yml b/src/licensedcode/data/rules/free-unknown_96.yml index a347b74b961..be9f807bb18 100644 --- a/src/licensedcode/data/rules/free-unknown_96.yml +++ b/src/licensedcode/data/rules/free-unknown_96.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://opensource.org/licenses/ +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_97.yml b/src/licensedcode/data/rules/free-unknown_97.yml index f8650a2207a..fd3f7a0759b 100644 --- a/src/licensedcode/data/rules/free-unknown_97.yml +++ b/src/licensedcode/data/rules/free-unknown_97.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_notice: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_98.yml b/src/licensedcode/data/rules/free-unknown_98.yml index 5cc6b1735d7..c988ce717d5 100644 --- a/src/licensedcode/data/rules/free-unknown_98.yml +++ b/src/licensedcode/data/rules/free-unknown_98.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_99.yml b/src/licensedcode/data/rules/free-unknown_99.yml index 5cc6b1735d7..c988ce717d5 100644 --- a/src/licensedcode/data/rules/free-unknown_99.yml +++ b/src/licensedcode/data/rules/free-unknown_99.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_rare.yml b/src/licensedcode/data/rules/free-unknown_rare.yml index a3122823694..b72f7295d0a 100644 --- a/src/licensedcode/data/rules/free-unknown_rare.yml +++ b/src/licensedcode/data/rules/free-unknown_rare.yml @@ -1,2 +1,3 @@ license_expression: free-unknown is_license_text: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_uoi-ncsa-like.yml b/src/licensedcode/data/rules/free-unknown_uoi-ncsa-like.yml index 76687f4a1c2..f70152d9a6d 100644 --- a/src/licensedcode/data/rules/free-unknown_uoi-ncsa-like.yml +++ b/src/licensedcode/data/rules/free-unknown_uoi-ncsa-like.yml @@ -4,3 +4,4 @@ relevance: 100 minimum_coverage: 90 referenced_filenames: - LICENSE.txt +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_zulip.yml b/src/licensedcode/data/rules/free-unknown_zulip.yml index cda5a30cc1c..1e274f5e30d 100644 --- a/src/licensedcode/data/rules/free-unknown_zulip.yml +++ b/src/licensedcode/data/rules/free-unknown_zulip.yml @@ -1,2 +1,3 @@ license_expression: free-unknown is_license_reference: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/freeware_bare_word_only.yml b/src/licensedcode/data/rules/freeware_bare_word_only.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/freeware_bare_word_only.yml +++ b/src/licensedcode/data/rules/freeware_bare_word_only.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-1.0-plus_and_other-copyleft_and_free-unknown.yml b/src/licensedcode/data/rules/gpl-1.0-plus_and_other-copyleft_and_free-unknown.yml index 6c11cda889a..c69f6147735 100644 --- a/src/licensedcode/data/rules/gpl-1.0-plus_and_other-copyleft_and_free-unknown.yml +++ b/src/licensedcode/data/rules/gpl-1.0-plus_and_other-copyleft_and_free-unknown.yml @@ -1,2 +1,3 @@ license_expression: gpl-1.0-plus AND other-copyleft AND free-unknown is_license_reference: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-1.0-plus_and_other-copyleft_and_free-unknown2.yml b/src/licensedcode/data/rules/gpl-1.0-plus_and_other-copyleft_and_free-unknown2.yml index 6c11cda889a..c69f6147735 100644 --- a/src/licensedcode/data/rules/gpl-1.0-plus_and_other-copyleft_and_free-unknown2.yml +++ b/src/licensedcode/data/rules/gpl-1.0-plus_and_other-copyleft_and_free-unknown2.yml @@ -1,2 +1,3 @@ license_expression: gpl-1.0-plus AND other-copyleft AND free-unknown is_license_reference: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-1.0-plus_and_public-domain_and_mit_and_bsd-new_and_free-unknown_1.yml b/src/licensedcode/data/rules/gpl-1.0-plus_and_public-domain_and_mit_and_bsd-new_and_free-unknown_1.yml index 772a6ec21d6..5efc266e036 100644 --- a/src/licensedcode/data/rules/gpl-1.0-plus_and_public-domain_and_mit_and_bsd-new_and_free-unknown_1.yml +++ b/src/licensedcode/data/rules/gpl-1.0-plus_and_public-domain_and_mit_and_bsd-new_and_free-unknown_1.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - docs/AUTHORS_wiki_commons* +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-2.0-plus_or_commercial-license_and_unknown-license-reference_1.yml b/src/licensedcode/data/rules/gpl-2.0-plus_or_commercial-license_and_unknown-license-reference_1.yml index 56862b20807..36db947cb5b 100644 --- a/src/licensedcode/data/rules/gpl-2.0-plus_or_commercial-license_and_unknown-license-reference_1.yml +++ b/src/licensedcode/data/rules/gpl-2.0-plus_or_commercial-license_and_unknown-license-reference_1.yml @@ -9,3 +9,4 @@ ignorable_urls: - http://www.gnu.org/licenses/gpl-2.0.html ignorable_emails: - dev@sqlmap.org +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-2.0-plus_or_commercial-license_and_unknown-license-reference_2.yml b/src/licensedcode/data/rules/gpl-2.0-plus_or_commercial-license_and_unknown-license-reference_2.yml index 14e8a29d5ab..9676a772074 100644 --- a/src/licensedcode/data/rules/gpl-2.0-plus_or_commercial-license_and_unknown-license-reference_2.yml +++ b/src/licensedcode/data/rules/gpl-2.0-plus_or_commercial-license_and_unknown-license-reference_2.yml @@ -10,3 +10,4 @@ ignorable_urls: ignorable_emails: - dev@sqlmap.org - sales@sqlmap.org +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-2.0-plus_or_commercial-license_and_unknown-license-reference_3.yml b/src/licensedcode/data/rules/gpl-2.0-plus_or_commercial-license_and_unknown-license-reference_3.yml index bcb34f1c1da..3b166e465a3 100644 --- a/src/licensedcode/data/rules/gpl-2.0-plus_or_commercial-license_and_unknown-license-reference_3.yml +++ b/src/licensedcode/data/rules/gpl-2.0-plus_or_commercial-license_and_unknown-license-reference_3.yml @@ -10,3 +10,4 @@ ignorable_urls: ignorable_emails: - dev@sqlmap.org - sales@sqlmap.org +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-2.0-plus_with_font-exception-gpl_and_unknown-license-reference_1.yml b/src/licensedcode/data/rules/gpl-2.0-plus_with_font-exception-gpl_and_unknown-license-reference_1.yml index 2ec90cd5d07..2430d7e8c3b 100644 --- a/src/licensedcode/data/rules/gpl-2.0-plus_with_font-exception-gpl_and_unknown-license-reference_1.yml +++ b/src/licensedcode/data/rules/gpl-2.0-plus_with_font-exception-gpl_and_unknown-license-reference_1.yml @@ -1,3 +1,4 @@ license_expression: gpl-2.0-plus WITH font-exception-gpl AND unknown-license-reference is_license_notice: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-2.0_and-unknown-license-reference_1.yml b/src/licensedcode/data/rules/gpl-2.0_and-unknown-license-reference_1.yml index 04362a8d784..2c1e60f077f 100644 --- a/src/licensedcode/data/rules/gpl-2.0_and-unknown-license-reference_1.yml +++ b/src/licensedcode/data/rules/gpl-2.0_and-unknown-license-reference_1.yml @@ -2,3 +2,4 @@ license_expression: gpl-2.0 AND unknown-license-reference is_license_notice: yes relevance: 100 notes: found in Android bionic +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-2.0_and_free-unknown_1.yml b/src/licensedcode/data/rules/gpl-2.0_and_free-unknown_1.yml index bf9d6f92e66..f0441ca4a8b 100644 --- a/src/licensedcode/data/rules/gpl-2.0_and_free-unknown_1.yml +++ b/src/licensedcode/data/rules/gpl-2.0_and_free-unknown_1.yml @@ -2,3 +2,4 @@ license_expression: gpl-2.0 AND free-unknown is_license_tag: yes relevance: 100 notes: Linux module.h MODULE_LICENSE as compiled in binary +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-2.0_and_free-unknown_2.yml b/src/licensedcode/data/rules/gpl-2.0_and_free-unknown_2.yml index affd802647e..ec83277ec05 100644 --- a/src/licensedcode/data/rules/gpl-2.0_and_free-unknown_2.yml +++ b/src/licensedcode/data/rules/gpl-2.0_and_free-unknown_2.yml @@ -2,3 +2,4 @@ license_expression: gpl-2.0 AND free-unknown is_license_tag: yes relevance: 100 notes: Linux module.h MODULE_LICENSE in source +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-2.0_and_free-unknown_3.yml b/src/licensedcode/data/rules/gpl-2.0_and_free-unknown_3.yml index 7a9950bdf13..7c80e709c89 100644 --- a/src/licensedcode/data/rules/gpl-2.0_and_free-unknown_3.yml +++ b/src/licensedcode/data/rules/gpl-2.0_and_free-unknown_3.yml @@ -1,3 +1,4 @@ license_expression: gpl-2.0-plus AND free-unknown is_license_notice: yes minimum_coverage: 10 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-2.0_and_free-unknown_4.yml b/src/licensedcode/data/rules/gpl-2.0_and_free-unknown_4.yml index 3ee28cde703..7396dc2b4bc 100644 --- a/src/licensedcode/data/rules/gpl-2.0_and_free-unknown_4.yml +++ b/src/licensedcode/data/rules/gpl-2.0_and_free-unknown_4.yml @@ -2,3 +2,4 @@ license_expression: gpl-2.0 AND free-unknown is_license_tag: yes relevance: 100 notes: Linux module.h MODULE_LICENSE macro variant (DRIVER_LICENSE) +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-2.0_and_free-unknown_centos_notice_2.yml b/src/licensedcode/data/rules/gpl-2.0_and_free-unknown_centos_notice_2.yml index 6991fb8ca27..d0dc15ff734 100644 --- a/src/licensedcode/data/rules/gpl-2.0_and_free-unknown_centos_notice_2.yml +++ b/src/licensedcode/data/rules/gpl-2.0_and_free-unknown_centos_notice_2.yml @@ -1,2 +1,3 @@ license_expression: gpl-2.0 AND free-unknown is_license_notice: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-2.0_and_free-unknown_centos_notice_3.yml b/src/licensedcode/data/rules/gpl-2.0_and_free-unknown_centos_notice_3.yml index 6991fb8ca27..d0dc15ff734 100644 --- a/src/licensedcode/data/rules/gpl-2.0_and_free-unknown_centos_notice_3.yml +++ b/src/licensedcode/data/rules/gpl-2.0_and_free-unknown_centos_notice_3.yml @@ -1,2 +1,3 @@ license_expression: gpl-2.0 AND free-unknown is_license_notice: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-2.0_and_unknown_trommel_1.yml b/src/licensedcode/data/rules/gpl-2.0_and_unknown_trommel_1.yml index c370179bef6..c7106b686dd 100644 --- a/src/licensedcode/data/rules/gpl-2.0_and_unknown_trommel_1.yml +++ b/src/licensedcode/data/rules/gpl-2.0_and_unknown_trommel_1.yml @@ -7,3 +7,4 @@ ignorable_copyrights: - copyrighted by the Free Software Foundation ignorable_holders: - the Free Software Foundation +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-2.0_and_unknown_trommel_2.yml b/src/licensedcode/data/rules/gpl-2.0_and_unknown_trommel_2.yml index e10a395154c..3ae5511387c 100644 --- a/src/licensedcode/data/rules/gpl-2.0_and_unknown_trommel_2.yml +++ b/src/licensedcode/data/rules/gpl-2.0_and_unknown_trommel_2.yml @@ -5,3 +5,4 @@ referenced_filenames: notes: this is reference to a license that is GPL-like but not exactly ignorable_emails: - permission@sei.cmu.edu +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-2.0_or_agpl-3.0_and_unknown_1.yml b/src/licensedcode/data/rules/gpl-2.0_or_agpl-3.0_and_unknown_1.yml index 9455822a4e7..2f076d620d4 100644 --- a/src/licensedcode/data/rules/gpl-2.0_or_agpl-3.0_and_unknown_1.yml +++ b/src/licensedcode/data/rules/gpl-2.0_or_agpl-3.0_and_unknown_1.yml @@ -5,3 +5,4 @@ referenced_filenames: - COPYING.AGPLv3 - COPYING.GPLv2 - PATENTS +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-2.0_with_openssl-exception-gpl-3.0-plus_and_unknown_1.yml b/src/licensedcode/data/rules/gpl-2.0_with_openssl-exception-gpl-3.0-plus_and_unknown_1.yml index f7c9501090e..298c4467fda 100644 --- a/src/licensedcode/data/rules/gpl-2.0_with_openssl-exception-gpl-3.0-plus_and_unknown_1.yml +++ b/src/licensedcode/data/rules/gpl-2.0_with_openssl-exception-gpl-3.0-plus_and_unknown_1.yml @@ -5,3 +5,4 @@ notes: the GPL impact interpretation is uncommon and short of a legal analysis i an extra unknown license ignorable_urls: - http://www.openssl.org/ +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-3.0_and_proprietary-license_and_unknown_1.yml b/src/licensedcode/data/rules/gpl-3.0_and_proprietary-license_and_unknown_1.yml index 0d4702be247..a6d48baeccc 100644 --- a/src/licensedcode/data/rules/gpl-3.0_and_proprietary-license_and_unknown_1.yml +++ b/src/licensedcode/data/rules/gpl-3.0_and_proprietary-license_and_unknown_1.yml @@ -2,3 +2,4 @@ license_expression: gpl-3.0 AND proprietary-license AND unknown is_license_notice: yes relevance: 100 notes: excluding military use may conflict with the GPL +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-3.0_or_commercial-license_2.yml b/src/licensedcode/data/rules/gpl-3.0_or_commercial-license_2.yml index 6d58c7b8699..60cea7a0495 100644 --- a/src/licensedcode/data/rules/gpl-3.0_or_commercial-license_2.yml +++ b/src/licensedcode/data/rules/gpl-3.0_or_commercial-license_2.yml @@ -1,3 +1,4 @@ license_expression: (gpl-3.0 OR commercial-license) AND unknown is_license_notice: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-3.0_with_aptana-exception-3.0_and_unknown_1.yml b/src/licensedcode/data/rules/gpl-3.0_with_aptana-exception-3.0_and_unknown_1.yml index f7e03553f58..17673d5f689 100644 --- a/src/licensedcode/data/rules/gpl-3.0_with_aptana-exception-3.0_and_unknown_1.yml +++ b/src/licensedcode/data/rules/gpl-3.0_with_aptana-exception-3.0_and_unknown_1.yml @@ -2,3 +2,4 @@ license_expression: gpl-3.0 WITH aptana-exception-3.0 AND unknown is_license_notice: yes ignorable_urls: - http://www.aptana.com/legal/gpl +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl_142.yml b/src/licensedcode/data/rules/gpl_142.yml index 83ea1d5584b..c4f3dbbf13e 100644 --- a/src/licensedcode/data/rules/gpl_142.yml +++ b/src/licensedcode/data/rules/gpl_142.yml @@ -1,2 +1,3 @@ license_expression: gpl-1.0-plus AND unknown is_license_reference: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl_and_lgpl_and_free-unknown.yml b/src/licensedcode/data/rules/gpl_and_lgpl_and_free-unknown.yml index 6a5389360c3..c44b7f1bb70 100644 --- a/src/licensedcode/data/rules/gpl_and_lgpl_and_free-unknown.yml +++ b/src/licensedcode/data/rules/gpl_and_lgpl_and_free-unknown.yml @@ -1,3 +1,4 @@ license_expression: gpl-1.0-plus AND lgpl-2.0-plus AND free-unknown is_license_notice: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl_and_lgpl_and_free-unknown2.yml b/src/licensedcode/data/rules/gpl_and_lgpl_and_free-unknown2.yml index 6a5389360c3..c44b7f1bb70 100644 --- a/src/licensedcode/data/rules/gpl_and_lgpl_and_free-unknown2.yml +++ b/src/licensedcode/data/rules/gpl_and_lgpl_and_free-unknown2.yml @@ -1,3 +1,4 @@ license_expression: gpl-1.0-plus AND lgpl-2.0-plus AND free-unknown is_license_notice: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/isc_and_free-unknown.yml b/src/licensedcode/data/rules/isc_and_free-unknown.yml index 4bd393285ec..1d5b4ee0c36 100644 --- a/src/licensedcode/data/rules/isc_and_free-unknown.yml +++ b/src/licensedcode/data/rules/isc_and_free-unknown.yml @@ -1,2 +1,3 @@ license_expression: isc AND free-unknown is_license_notice: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/isc_and_free-unknown2.yml b/src/licensedcode/data/rules/isc_and_free-unknown2.yml index ddee9f2e848..264e5ef5095 100644 --- a/src/licensedcode/data/rules/isc_and_free-unknown2.yml +++ b/src/licensedcode/data/rules/isc_and_free-unknown2.yml @@ -1,3 +1,4 @@ license_expression: isc AND free-unknown is_license_text: yes minimum_coverage: 70 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/lead-in_unknown_2.yml b/src/licensedcode/data/rules/lead-in_unknown_2.yml index eb9a5834644..398048b6f63 100644 --- a/src/licensedcode/data/rules/lead-in_unknown_2.yml +++ b/src/licensedcode/data/rules/lead-in_unknown_2.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_notice: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/lead-in_unknown_30.yml b/src/licensedcode/data/rules/lead-in_unknown_30.yml index eb9a5834644..398048b6f63 100644 --- a/src/licensedcode/data/rules/lead-in_unknown_30.yml +++ b/src/licensedcode/data/rules/lead-in_unknown_30.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_notice: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/lead-in_unknown_31.yml b/src/licensedcode/data/rules/lead-in_unknown_31.yml index eb9a5834644..398048b6f63 100644 --- a/src/licensedcode/data/rules/lead-in_unknown_31.yml +++ b/src/licensedcode/data/rules/lead-in_unknown_31.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_notice: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/lead-in_unknown_43.yml b/src/licensedcode/data/rules/lead-in_unknown_43.yml index 1df09a83715..ee0ce440f09 100644 --- a/src/licensedcode/data/rules/lead-in_unknown_43.yml +++ b/src/licensedcode/data/rules/lead-in_unknown_43.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_tag: yes relevance: 60 notes: Creative commons tag seen in RDF or XML documents +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/lgpl-2.0-plus_and_unknown-license-reference_1.yml b/src/licensedcode/data/rules/lgpl-2.0-plus_and_unknown-license-reference_1.yml index a459ce70672..f99309e4947 100644 --- a/src/licensedcode/data/rules/lgpl-2.0-plus_and_unknown-license-reference_1.yml +++ b/src/licensedcode/data/rules/lgpl-2.0-plus_and_unknown-license-reference_1.yml @@ -4,3 +4,4 @@ relevance: 100 referenced_filenames: - LICENSE notes: See https://github.com/tudo-astroparticlephysics/PROPOSAL/blob/master/README.md +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/lgpl-2.0_and_unknown-license-reference_1.yml b/src/licensedcode/data/rules/lgpl-2.0_and_unknown-license-reference_1.yml index d40ef75a67d..5c365ed0540 100644 --- a/src/licensedcode/data/rules/lgpl-2.0_and_unknown-license-reference_1.yml +++ b/src/licensedcode/data/rules/lgpl-2.0_and_unknown-license-reference_1.yml @@ -2,3 +2,4 @@ license_expression: lgpl-2.0 AND unknown-license-reference is_license_tag: yes relevance: 100 notes: the license refrence is not 100% clear but is typically the libwebsockets-exception +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/lgpl-2.1-plus_and_free-unknown_1.yml b/src/licensedcode/data/rules/lgpl-2.1-plus_and_free-unknown_1.yml index fa68ab50e3d..025b4abe0df 100644 --- a/src/licensedcode/data/rules/lgpl-2.1-plus_and_free-unknown_1.yml +++ b/src/licensedcode/data/rules/lgpl-2.1-plus_and_free-unknown_1.yml @@ -2,3 +2,4 @@ license_expression: lgpl-2.1-plus AND free-unknown is_license_notice: yes relevance: 100 minimum_coverage: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/lgpl-3.0-plus_with_linking_exception_and_other3.yml b/src/licensedcode/data/rules/lgpl-3.0-plus_with_linking_exception_and_other3.yml index ed023ab2af6..b0a491cca06 100644 --- a/src/licensedcode/data/rules/lgpl-3.0-plus_with_linking_exception_and_other3.yml +++ b/src/licensedcode/data/rules/lgpl-3.0-plus_with_linking_exception_and_other3.yml @@ -3,3 +3,4 @@ is_license_notice: yes minimum_coverage: 80 ignorable_urls: - http://www.gnu.org/licenses/ +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/lgpl-3.0-plus_with_linking_exception_and_other4.yml b/src/licensedcode/data/rules/lgpl-3.0-plus_with_linking_exception_and_other4.yml index ed023ab2af6..b0a491cca06 100644 --- a/src/licensedcode/data/rules/lgpl-3.0-plus_with_linking_exception_and_other4.yml +++ b/src/licensedcode/data/rules/lgpl-3.0-plus_with_linking_exception_and_other4.yml @@ -3,3 +3,4 @@ is_license_notice: yes minimum_coverage: 80 ignorable_urls: - http://www.gnu.org/licenses/ +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/lgpl-3.0_and_unknown-license-reference_1.yml b/src/licensedcode/data/rules/lgpl-3.0_and_unknown-license-reference_1.yml index dd17977eba4..a0745fedb63 100644 --- a/src/licensedcode/data/rules/lgpl-3.0_and_unknown-license-reference_1.yml +++ b/src/licensedcode/data/rules/lgpl-3.0_and_unknown-license-reference_1.yml @@ -4,3 +4,4 @@ relevance: 100 referenced_filenames: - LICENSE notes: See http://software.icecube.wisc.edu/coverage/00_LATEST/PROPOSAL/public/PROPOSAL/Propagator.h.gcov.html +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/lgpl-3.0_with_linking_exception_and_other.yml b/src/licensedcode/data/rules/lgpl-3.0_with_linking_exception_and_other.yml index ee39beda876..8ef250670b0 100644 --- a/src/licensedcode/data/rules/lgpl-3.0_with_linking_exception_and_other.yml +++ b/src/licensedcode/data/rules/lgpl-3.0_with_linking_exception_and_other.yml @@ -2,3 +2,4 @@ license_expression: lgpl-3.0 WITH independent-module-linking-exception AND free- is_license_notice: yes relevance: 100 notes: a reference to https://github.com/artoolkit/jsartoolkit5 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/lgpl-3.0_with_linking_exception_and_other2.yml b/src/licensedcode/data/rules/lgpl-3.0_with_linking_exception_and_other2.yml index ee39beda876..8ef250670b0 100644 --- a/src/licensedcode/data/rules/lgpl-3.0_with_linking_exception_and_other2.yml +++ b/src/licensedcode/data/rules/lgpl-3.0_with_linking_exception_and_other2.yml @@ -2,3 +2,4 @@ license_expression: lgpl-3.0 WITH independent-module-linking-exception AND free- is_license_notice: yes relevance: 100 notes: a reference to https://github.com/artoolkit/jsartoolkit5 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/license-intro_1.yml b/src/licensedcode/data/rules/license-intro_1.yml index f9a9c1348ac..50589bb430a 100644 --- a/src/licensedcode/data/rules/license-intro_1.yml +++ b/src/licensedcode/data/rules/license-intro_1.yml @@ -1,2 +1,3 @@ license_expression: unknown-license-reference is_license_intro: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/license-intro_10.yml b/src/licensedcode/data/rules/license-intro_10.yml index f9a9c1348ac..50589bb430a 100644 --- a/src/licensedcode/data/rules/license-intro_10.yml +++ b/src/licensedcode/data/rules/license-intro_10.yml @@ -1,2 +1,3 @@ license_expression: unknown-license-reference is_license_intro: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/license-intro_11.yml b/src/licensedcode/data/rules/license-intro_11.yml index 7e50500d01b..738e138779a 100644 --- a/src/licensedcode/data/rules/license-intro_11.yml +++ b/src/licensedcode/data/rules/license-intro_11.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_intro: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/license-intro_12.yml b/src/licensedcode/data/rules/license-intro_12.yml index f9a9c1348ac..50589bb430a 100644 --- a/src/licensedcode/data/rules/license-intro_12.yml +++ b/src/licensedcode/data/rules/license-intro_12.yml @@ -1,2 +1,3 @@ license_expression: unknown-license-reference is_license_intro: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/license-intro_13.yml b/src/licensedcode/data/rules/license-intro_13.yml index f9a9c1348ac..50589bb430a 100644 --- a/src/licensedcode/data/rules/license-intro_13.yml +++ b/src/licensedcode/data/rules/license-intro_13.yml @@ -1,2 +1,3 @@ license_expression: unknown-license-reference is_license_intro: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/license-intro_14.yml b/src/licensedcode/data/rules/license-intro_14.yml index f9a9c1348ac..50589bb430a 100644 --- a/src/licensedcode/data/rules/license-intro_14.yml +++ b/src/licensedcode/data/rules/license-intro_14.yml @@ -1,2 +1,3 @@ license_expression: unknown-license-reference is_license_intro: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/license-intro_15.yml b/src/licensedcode/data/rules/license-intro_15.yml index f9a9c1348ac..50589bb430a 100644 --- a/src/licensedcode/data/rules/license-intro_15.yml +++ b/src/licensedcode/data/rules/license-intro_15.yml @@ -1,2 +1,3 @@ license_expression: unknown-license-reference is_license_intro: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/license-intro_16.yml b/src/licensedcode/data/rules/license-intro_16.yml index 4254c8e2c41..2f3bd599a9a 100644 --- a/src/licensedcode/data/rules/license-intro_16.yml +++ b/src/licensedcode/data/rules/license-intro_16.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_intro: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/license-intro_17.yml b/src/licensedcode/data/rules/license-intro_17.yml index f9a9c1348ac..50589bb430a 100644 --- a/src/licensedcode/data/rules/license-intro_17.yml +++ b/src/licensedcode/data/rules/license-intro_17.yml @@ -1,2 +1,3 @@ license_expression: unknown-license-reference is_license_intro: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/license-intro_18.yml b/src/licensedcode/data/rules/license-intro_18.yml index f9a9c1348ac..50589bb430a 100644 --- a/src/licensedcode/data/rules/license-intro_18.yml +++ b/src/licensedcode/data/rules/license-intro_18.yml @@ -1,2 +1,3 @@ license_expression: unknown-license-reference is_license_intro: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/license-intro_19.yml b/src/licensedcode/data/rules/license-intro_19.yml index f9a9c1348ac..50589bb430a 100644 --- a/src/licensedcode/data/rules/license-intro_19.yml +++ b/src/licensedcode/data/rules/license-intro_19.yml @@ -1,2 +1,3 @@ license_expression: unknown-license-reference is_license_intro: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/license-intro_2.yml b/src/licensedcode/data/rules/license-intro_2.yml index f9a9c1348ac..50589bb430a 100644 --- a/src/licensedcode/data/rules/license-intro_2.yml +++ b/src/licensedcode/data/rules/license-intro_2.yml @@ -1,2 +1,3 @@ license_expression: unknown-license-reference is_license_intro: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/license-intro_20.yml b/src/licensedcode/data/rules/license-intro_20.yml index f9a9c1348ac..50589bb430a 100644 --- a/src/licensedcode/data/rules/license-intro_20.yml +++ b/src/licensedcode/data/rules/license-intro_20.yml @@ -1,2 +1,3 @@ license_expression: unknown-license-reference is_license_intro: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/license-intro_21.yml b/src/licensedcode/data/rules/license-intro_21.yml index 4254c8e2c41..2f3bd599a9a 100644 --- a/src/licensedcode/data/rules/license-intro_21.yml +++ b/src/licensedcode/data/rules/license-intro_21.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_intro: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/license-intro_22.yml b/src/licensedcode/data/rules/license-intro_22.yml index f9a9c1348ac..50589bb430a 100644 --- a/src/licensedcode/data/rules/license-intro_22.yml +++ b/src/licensedcode/data/rules/license-intro_22.yml @@ -1,2 +1,3 @@ license_expression: unknown-license-reference is_license_intro: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/license-intro_23.yml b/src/licensedcode/data/rules/license-intro_23.yml index f9a9c1348ac..50589bb430a 100644 --- a/src/licensedcode/data/rules/license-intro_23.yml +++ b/src/licensedcode/data/rules/license-intro_23.yml @@ -1,2 +1,3 @@ license_expression: unknown-license-reference is_license_intro: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/license-intro_24.yml b/src/licensedcode/data/rules/license-intro_24.yml index f9a9c1348ac..50589bb430a 100644 --- a/src/licensedcode/data/rules/license-intro_24.yml +++ b/src/licensedcode/data/rules/license-intro_24.yml @@ -1,2 +1,3 @@ license_expression: unknown-license-reference is_license_intro: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/license-intro_25.yml b/src/licensedcode/data/rules/license-intro_25.yml index f9a9c1348ac..50589bb430a 100644 --- a/src/licensedcode/data/rules/license-intro_25.yml +++ b/src/licensedcode/data/rules/license-intro_25.yml @@ -1,2 +1,3 @@ license_expression: unknown-license-reference is_license_intro: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/license-intro_26.yml b/src/licensedcode/data/rules/license-intro_26.yml index f9a9c1348ac..50589bb430a 100644 --- a/src/licensedcode/data/rules/license-intro_26.yml +++ b/src/licensedcode/data/rules/license-intro_26.yml @@ -1,2 +1,3 @@ license_expression: unknown-license-reference is_license_intro: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/license-intro_27.yml b/src/licensedcode/data/rules/license-intro_27.yml index f9a9c1348ac..50589bb430a 100644 --- a/src/licensedcode/data/rules/license-intro_27.yml +++ b/src/licensedcode/data/rules/license-intro_27.yml @@ -1,2 +1,3 @@ license_expression: unknown-license-reference is_license_intro: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/license-intro_28.yml b/src/licensedcode/data/rules/license-intro_28.yml index 4254c8e2c41..2f3bd599a9a 100644 --- a/src/licensedcode/data/rules/license-intro_28.yml +++ b/src/licensedcode/data/rules/license-intro_28.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_intro: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/license-intro_29.yml b/src/licensedcode/data/rules/license-intro_29.yml index 4254c8e2c41..2f3bd599a9a 100644 --- a/src/licensedcode/data/rules/license-intro_29.yml +++ b/src/licensedcode/data/rules/license-intro_29.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_intro: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/license-intro_3.yml b/src/licensedcode/data/rules/license-intro_3.yml index 573c2947b24..ed7a869f65b 100644 --- a/src/licensedcode/data/rules/license-intro_3.yml +++ b/src/licensedcode/data/rules/license-intro_3.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_intro: yes relevance: 60 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/license-intro_30.yml b/src/licensedcode/data/rules/license-intro_30.yml index 4254c8e2c41..2f3bd599a9a 100644 --- a/src/licensedcode/data/rules/license-intro_30.yml +++ b/src/licensedcode/data/rules/license-intro_30.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_intro: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/license-intro_31.yml b/src/licensedcode/data/rules/license-intro_31.yml index 4254c8e2c41..2f3bd599a9a 100644 --- a/src/licensedcode/data/rules/license-intro_31.yml +++ b/src/licensedcode/data/rules/license-intro_31.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_intro: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/license-intro_32.yml b/src/licensedcode/data/rules/license-intro_32.yml index 4254c8e2c41..2f3bd599a9a 100644 --- a/src/licensedcode/data/rules/license-intro_32.yml +++ b/src/licensedcode/data/rules/license-intro_32.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_intro: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/license-intro_33.yml b/src/licensedcode/data/rules/license-intro_33.yml index 4254c8e2c41..2f3bd599a9a 100644 --- a/src/licensedcode/data/rules/license-intro_33.yml +++ b/src/licensedcode/data/rules/license-intro_33.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_intro: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/license-intro_34.yml b/src/licensedcode/data/rules/license-intro_34.yml index 4254c8e2c41..2f3bd599a9a 100644 --- a/src/licensedcode/data/rules/license-intro_34.yml +++ b/src/licensedcode/data/rules/license-intro_34.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_intro: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/license-intro_35.yml b/src/licensedcode/data/rules/license-intro_35.yml index 4254c8e2c41..2f3bd599a9a 100644 --- a/src/licensedcode/data/rules/license-intro_35.yml +++ b/src/licensedcode/data/rules/license-intro_35.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_intro: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/license-intro_36.yml b/src/licensedcode/data/rules/license-intro_36.yml index 6ea26ee5065..9a0b1948022 100644 --- a/src/licensedcode/data/rules/license-intro_36.yml +++ b/src/licensedcode/data/rules/license-intro_36.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_intro: yes relevance: 100 minimum_coverage: 90 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/license-intro_4.yml b/src/licensedcode/data/rules/license-intro_4.yml index 882b9e72c20..b836c2bd846 100644 --- a/src/licensedcode/data/rules/license-intro_4.yml +++ b/src/licensedcode/data/rules/license-intro_4.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_intro: yes notes: licensed under +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/license-intro_5.yml b/src/licensedcode/data/rules/license-intro_5.yml index f9a9c1348ac..50589bb430a 100644 --- a/src/licensedcode/data/rules/license-intro_5.yml +++ b/src/licensedcode/data/rules/license-intro_5.yml @@ -1,2 +1,3 @@ license_expression: unknown-license-reference is_license_intro: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/license-intro_6.yml b/src/licensedcode/data/rules/license-intro_6.yml index f9a9c1348ac..50589bb430a 100644 --- a/src/licensedcode/data/rules/license-intro_6.yml +++ b/src/licensedcode/data/rules/license-intro_6.yml @@ -1,2 +1,3 @@ license_expression: unknown-license-reference is_license_intro: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/license-intro_7.yml b/src/licensedcode/data/rules/license-intro_7.yml index f9a9c1348ac..50589bb430a 100644 --- a/src/licensedcode/data/rules/license-intro_7.yml +++ b/src/licensedcode/data/rules/license-intro_7.yml @@ -1,2 +1,3 @@ license_expression: unknown-license-reference is_license_intro: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/license-intro_9.yml b/src/licensedcode/data/rules/license-intro_9.yml index f9a9c1348ac..50589bb430a 100644 --- a/src/licensedcode/data/rules/license-intro_9.yml +++ b/src/licensedcode/data/rules/license-intro_9.yml @@ -1,2 +1,3 @@ license_expression: unknown-license-reference is_license_intro: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/maven_pom_25.yml b/src/licensedcode/data/rules/maven_pom_25.yml index 6e3e9932b7d..ac3bea78cf5 100644 --- a/src/licensedcode/data/rules/maven_pom_25.yml +++ b/src/licensedcode/data/rules/maven_pom_25.yml @@ -1,2 +1,3 @@ license_expression: unknown is_license_reference: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/mit_and_free-unknown.yml b/src/licensedcode/data/rules/mit_and_free-unknown.yml index d4712d7dfbc..e8cc26bd3b1 100644 --- a/src/licensedcode/data/rules/mit_and_free-unknown.yml +++ b/src/licensedcode/data/rules/mit_and_free-unknown.yml @@ -2,3 +2,4 @@ license_expression: mit AND free-unknown is_license_notice: yes referenced_filenames: - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/mit_and_unknown-license-reference_1.yml b/src/licensedcode/data/rules/mit_and_unknown-license-reference_1.yml index 5e7ef715557..2f6821df392 100644 --- a/src/licensedcode/data/rules/mit_and_unknown-license-reference_1.yml +++ b/src/licensedcode/data/rules/mit_and_unknown-license-reference_1.yml @@ -1,3 +1,4 @@ license_expression: mit AND unknown-license-reference is_license_notice: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/mit_and_unknown-license-reference_2.yml b/src/licensedcode/data/rules/mit_and_unknown-license-reference_2.yml index f5558ccad50..f07a85abb8a 100644 --- a/src/licensedcode/data/rules/mit_and_unknown-license-reference_2.yml +++ b/src/licensedcode/data/rules/mit_and_unknown-license-reference_2.yml @@ -2,3 +2,4 @@ license_expression: mit AND unknown-license-reference is_license_text: yes relevance: 100 minimum_coverage: 95 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/mit_and_unknown_nuget_url_1.yml b/src/licensedcode/data/rules/mit_and_unknown_nuget_url_1.yml index e4b92f19bb7..50b2b352986 100644 --- a/src/licensedcode/data/rules/mit_and_unknown_nuget_url_1.yml +++ b/src/licensedcode/data/rules/mit_and_unknown_nuget_url_1.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 90 ignorable_urls: - https://github.com/jvdgeest/chesterfield/blob/master/LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/mpl-1.1_and_free-unknown_1.yml b/src/licensedcode/data/rules/mpl-1.1_and_free-unknown_1.yml index 79ce4c78be1..8eff4c6ad9d 100644 --- a/src/licensedcode/data/rules/mpl-1.1_and_free-unknown_1.yml +++ b/src/licensedcode/data/rules/mpl-1.1_and_free-unknown_1.yml @@ -3,3 +3,4 @@ is_license_notice: yes minimum_coverage: 75 ignorable_urls: - http://www.mozilla.org/MPL/ +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/mpl-1.1_and_free-unknown_2.yml b/src/licensedcode/data/rules/mpl-1.1_and_free-unknown_2.yml index 79ce4c78be1..8eff4c6ad9d 100644 --- a/src/licensedcode/data/rules/mpl-1.1_and_free-unknown_2.yml +++ b/src/licensedcode/data/rules/mpl-1.1_and_free-unknown_2.yml @@ -3,3 +3,4 @@ is_license_notice: yes minimum_coverage: 75 ignorable_urls: - http://www.mozilla.org/MPL/ +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/mpl-1.1_and_free-unknown_3.yml b/src/licensedcode/data/rules/mpl-1.1_and_free-unknown_3.yml index 79ce4c78be1..8eff4c6ad9d 100644 --- a/src/licensedcode/data/rules/mpl-1.1_and_free-unknown_3.yml +++ b/src/licensedcode/data/rules/mpl-1.1_and_free-unknown_3.yml @@ -3,3 +3,4 @@ is_license_notice: yes minimum_coverage: 75 ignorable_urls: - http://www.mozilla.org/MPL/ +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/mpl-2.0_and_free-unknown_1.yml b/src/licensedcode/data/rules/mpl-2.0_and_free-unknown_1.yml index 5c99727c386..0f47cbee523 100644 --- a/src/licensedcode/data/rules/mpl-2.0_and_free-unknown_1.yml +++ b/src/licensedcode/data/rules/mpl-2.0_and_free-unknown_1.yml @@ -5,3 +5,4 @@ minimum_coverage: 50 notes: this is a rare modified mpl that needs a review ignorable_urls: - http://gis.foundationcenter.org/licenses/LICENSE-1.0.html +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/openpub_8.yml b/src/licensedcode/data/rules/openpub_8.yml index 4a9ab6feb1e..3ae3f953e6f 100644 --- a/src/licensedcode/data/rules/openpub_8.yml +++ b/src/licensedcode/data/rules/openpub_8.yml @@ -9,3 +9,4 @@ ignorable_urls: - http://www.opencontent.org/openpub ignorable_emails: - opal@opencontent.org +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/other-permissive_and_free-unknown_1.yml b/src/licensedcode/data/rules/other-permissive_and_free-unknown_1.yml index 53fb9805b7d..c519507d729 100644 --- a/src/licensedcode/data/rules/other-permissive_and_free-unknown_1.yml +++ b/src/licensedcode/data/rules/other-permissive_and_free-unknown_1.yml @@ -2,3 +2,4 @@ license_expression: other-permissive AND free-unknown is_license_notice: yes relevance: 100 notes: This derived from a BSD license, possibly stripped down from any license grant. +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/other-permissive_and_free-unknown_87.yml b/src/licensedcode/data/rules/other-permissive_and_free-unknown_87.yml index b10f68fea29..8372a5ae93a 100644 --- a/src/licensedcode/data/rules/other-permissive_and_free-unknown_87.yml +++ b/src/licensedcode/data/rules/other-permissive_and_free-unknown_87.yml @@ -1,2 +1,3 @@ license_expression: other-permissive AND free-unknown is_license_notice: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/other-permissive_not_unknown_69.yml b/src/licensedcode/data/rules/other-permissive_not_unknown_69.yml index ababf45cba7..95450e5b6dc 100644 --- a/src/licensedcode/data/rules/other-permissive_not_unknown_69.yml +++ b/src/licensedcode/data/rules/other-permissive_not_unknown_69.yml @@ -3,3 +3,4 @@ is_license_reference: yes minimum_coverage: 100 ignorable_urls: - http://github.com/Percona/PerconaFT/blob/master/PATENTS +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_unknown_13.yml b/src/licensedcode/data/rules/proprietary-license_unknown_13.yml index 54d1d6c4e9b..02f468c67de 100644 --- a/src/licensedcode/data/rules/proprietary-license_unknown_13.yml +++ b/src/licensedcode/data/rules/proprietary-license_unknown_13.yml @@ -1,2 +1,3 @@ license_expression: unknown is_license_notice: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/public-domain_and_unknown-license-reference_1.yml b/src/licensedcode/data/rules/public-domain_and_unknown-license-reference_1.yml index ee643d9d60c..c5e38d4cfe8 100644 --- a/src/licensedcode/data/rules/public-domain_and_unknown-license-reference_1.yml +++ b/src/licensedcode/data/rules/public-domain_and_unknown-license-reference_1.yml @@ -1,3 +1,4 @@ license_expression: public-domain AND unknown-license-reference is_license_notice: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/public-domain_and_unknown_1.yml b/src/licensedcode/data/rules/public-domain_and_unknown_1.yml index c0488b95d1f..2312ba44d96 100644 --- a/src/licensedcode/data/rules/public-domain_and_unknown_1.yml +++ b/src/licensedcode/data/rules/public-domain_and_unknown_1.yml @@ -1,3 +1,4 @@ license_expression: public-domain AND unknown is_license_notice: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/public-domain_or_free-unknown_usgov.yml b/src/licensedcode/data/rules/public-domain_or_free-unknown_usgov.yml index 0a8365fb81a..7d47879775f 100644 --- a/src/licensedcode/data/rules/public-domain_or_free-unknown_usgov.yml +++ b/src/licensedcode/data/rules/public-domain_or_free-unknown_usgov.yml @@ -1,3 +1,4 @@ license_expression: public-domain OR free-unknown is_license_text: yes notes: specific to US federal gov works. +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/pypi_dfsg_approved.yml b/src/licensedcode/data/rules/pypi_dfsg_approved.yml index cc7b23f1fa3..68b33a06155 100644 --- a/src/licensedcode/data/rules/pypi_dfsg_approved.yml +++ b/src/licensedcode/data/rules/pypi_dfsg_approved.yml @@ -1,2 +1,3 @@ license_expression: free-unknown is_license_tag: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/pypi_freely_distributable.yml b/src/licensedcode/data/rules/pypi_freely_distributable.yml index cc7b23f1fa3..68b33a06155 100644 --- a/src/licensedcode/data/rules/pypi_freely_distributable.yml +++ b/src/licensedcode/data/rules/pypi_freely_distributable.yml @@ -1,2 +1,3 @@ license_expression: free-unknown is_license_tag: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/pypi_mitre_collaborative_virtual_workspace_license.yml b/src/licensedcode/data/rules/pypi_mitre_collaborative_virtual_workspace_license.yml index cc7b23f1fa3..68b33a06155 100644 --- a/src/licensedcode/data/rules/pypi_mitre_collaborative_virtual_workspace_license.yml +++ b/src/licensedcode/data/rules/pypi_mitre_collaborative_virtual_workspace_license.yml @@ -1,2 +1,3 @@ license_expression: free-unknown is_license_tag: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/pypi_osi_approved.yml b/src/licensedcode/data/rules/pypi_osi_approved.yml index 5be79ba5f34..5232e366f27 100644 --- a/src/licensedcode/data/rules/pypi_osi_approved.yml +++ b/src/licensedcode/data/rules/pypi_osi_approved.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_tag: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/pypi_osi_approved2.yml b/src/licensedcode/data/rules/pypi_osi_approved2.yml index 534f30336d2..3b617466086 100644 --- a/src/licensedcode/data/rules/pypi_osi_approved2.yml +++ b/src/licensedcode/data/rules/pypi_osi_approved2.yml @@ -1,3 +1,4 @@ license_expression: free-unknown is_license_tag: yes relevance: 99 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/same_as_qt.yml b/src/licensedcode/data/rules/same_as_qt.yml index 6e3e9932b7d..ac3bea78cf5 100644 --- a/src/licensedcode/data/rules/same_as_qt.yml +++ b/src/licensedcode/data/rules/same_as_qt.yml @@ -1,2 +1,3 @@ license_expression: unknown is_license_reference: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference.yml b/src/licensedcode/data/rules/unknown-license-reference.yml index f2d2df54344..174d17cba95 100644 --- a/src/licensedcode/data/rules/unknown-license-reference.yml +++ b/src/licensedcode/data/rules/unknown-license-reference.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_reference: yes referenced_filenames: - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_1.yml b/src/licensedcode/data/rules/unknown-license-reference_1.yml index 239fa8749af..9ec2b0080c9 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_1.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_1.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - license +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_10.yml b/src/licensedcode/data/rules/unknown-license-reference_10.yml index be6e70c5f64..28dcb443b0d 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_10.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_10.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_reference: yes referenced_filenames: - '' +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_100.yml b/src/licensedcode/data/rules/unknown-license-reference_100.yml index 496293cffd9..50341902cf3 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_100.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_100.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - ../README.txt +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_101.yml b/src/licensedcode/data/rules/unknown-license-reference_101.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_101.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_101.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_102.yml b/src/licensedcode/data/rules/unknown-license-reference_102.yml index 29cab6006c9..8030b844ecb 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_102.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_102.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - usr/share/licenses/intel536/license.txt +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_103.yml b/src/licensedcode/data/rules/unknown-license-reference_103.yml index 32b26f7cc61..fd6d8d755e7 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_103.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_103.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - COPYRIGHT +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_104.yml b/src/licensedcode/data/rules/unknown-license-reference_104.yml index e8bd5b9fe36..7c90313b859 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_104.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_104.yml @@ -5,3 +5,4 @@ referenced_filenames: - toolkit/content/license.html ignorable_urls: - http://www.mozilla.org/foundation/licensing.html +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_105.yml b/src/licensedcode/data/rules/unknown-license-reference_105.yml index 75b3beaf0fd..fef221a2d43 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_105.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_105.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - README +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_106.yml b/src/licensedcode/data/rules/unknown-license-reference_106.yml index 239fa8749af..9ec2b0080c9 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_106.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_106.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - license +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_107.yml b/src/licensedcode/data/rules/unknown-license-reference_107.yml index ea83f7c8fa4..eb973df6a5c 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_107.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_107.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - License.txt +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_108.yml b/src/licensedcode/data/rules/unknown-license-reference_108.yml index fcecbe295a5..b1f007c66c3 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_108.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_108.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_reference: yes referenced_filenames: - Copyright +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_109.yml b/src/licensedcode/data/rules/unknown-license-reference_109.yml index d72e93d5daf..3cc511dd77f 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_109.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_109.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_11.yml b/src/licensedcode/data/rules/unknown-license-reference_11.yml index 570ff67db4b..d696311b025 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_11.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_11.yml @@ -1,2 +1,3 @@ license_expression: unknown-license-reference is_license_reference: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_110.yml b/src/licensedcode/data/rules/unknown-license-reference_110.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_110.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_110.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_111.yml b/src/licensedcode/data/rules/unknown-license-reference_111.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_111.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_111.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_112.yml b/src/licensedcode/data/rules/unknown-license-reference_112.yml index c8343ceee83..6b84f887ba9 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_112.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_112.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - LICENSE.txt +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_113.yml b/src/licensedcode/data/rules/unknown-license-reference_113.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_113.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_113.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_114.yml b/src/licensedcode/data/rules/unknown-license-reference_114.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_114.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_114.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_115.yml b/src/licensedcode/data/rules/unknown-license-reference_115.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_115.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_115.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_116.yml b/src/licensedcode/data/rules/unknown-license-reference_116.yml index 8eabd9e7b40..009f9d6ba70 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_116.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_116.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://www.ngdc.noaa.gov/geomag/WMM/ +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_117.yml b/src/licensedcode/data/rules/unknown-license-reference_117.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_117.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_117.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_118.yml b/src/licensedcode/data/rules/unknown-license-reference_118.yml index 7020e93de3c..15e9d63e9a8 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_118.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_118.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 notes: often used as a lead-in to a bsd-new +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_119.yml b/src/licensedcode/data/rules/unknown-license-reference_119.yml index 77b1574ef77..289f6554b47 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_119.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_119.yml @@ -4,3 +4,4 @@ relevance: 100 referenced_filenames: - LICENSE - NOTICE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_12.yml b/src/licensedcode/data/rules/unknown-license-reference_12.yml index be6e70c5f64..28dcb443b0d 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_12.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_12.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_reference: yes referenced_filenames: - '' +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_120.yml b/src/licensedcode/data/rules/unknown-license-reference_120.yml index 4b7d3c21d09..49533ff2bec 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_120.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_120.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - COPYING +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_121.yml b/src/licensedcode/data/rules/unknown-license-reference_121.yml index 5c0b3890c6a..8213e51196c 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_121.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_121.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - docs/AUTHORS_app-install +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_122.yml b/src/licensedcode/data/rules/unknown-license-reference_122.yml index d72e93d5daf..3cc511dd77f 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_122.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_122.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_123.yml b/src/licensedcode/data/rules/unknown-license-reference_123.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_123.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_123.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_124.yml b/src/licensedcode/data/rules/unknown-license-reference_124.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_124.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_124.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_125.yml b/src/licensedcode/data/rules/unknown-license-reference_125.yml index 570ff67db4b..d696311b025 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_125.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_125.yml @@ -1,2 +1,3 @@ license_expression: unknown-license-reference is_license_reference: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_126.yml b/src/licensedcode/data/rules/unknown-license-reference_126.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_126.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_126.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_127.yml b/src/licensedcode/data/rules/unknown-license-reference_127.yml index bebaa20eda6..e5380b33bbd 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_127.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_127.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 99 ignorable_urls: - https://tldrlegal.com/license/ +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_128.yml b/src/licensedcode/data/rules/unknown-license-reference_128.yml index e4e7108c7a3..7c66482444b 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_128.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_128.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 99 ignorable_urls: - https://www.tldrlegal.com/license/ +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_129.yml b/src/licensedcode/data/rules/unknown-license-reference_129.yml index 13bd9f35990..057fece5e32 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_129.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_129.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 99 ignorable_urls: - https://www.licenses.nuget.org/ +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_13.yml b/src/licensedcode/data/rules/unknown-license-reference_13.yml index be6e70c5f64..28dcb443b0d 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_13.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_13.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_reference: yes referenced_filenames: - '' +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_130.yml b/src/licensedcode/data/rules/unknown-license-reference_130.yml index 3da11bd1cb3..5d59017ae23 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_130.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_130.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 99 ignorable_urls: - http://www.licenses.nuget.org/ +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_131.yml b/src/licensedcode/data/rules/unknown-license-reference_131.yml index d2384dcba00..28b266c991e 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_131.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_131.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 99 ignorable_urls: - https://licenses.nuget.org/ +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_132.yml b/src/licensedcode/data/rules/unknown-license-reference_132.yml index afa89c49b74..385f1338dbe 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_132.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_132.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 99 ignorable_urls: - http://licenses.nuget.org/ +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_133.yml b/src/licensedcode/data/rules/unknown-license-reference_133.yml index 243847f3b9e..aeb919b3211 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_133.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_133.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://aka.ms/netcoregaeula +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_134.yml b/src/licensedcode/data/rules/unknown-license-reference_134.yml index ba71ec7805d..6ccf9d62e49 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_134.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_134.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://aka.ms/devservicesagreement +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_135.yml b/src/licensedcode/data/rules/unknown-license-reference_135.yml index ee271a8d7d4..ec186715835 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_135.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_135.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://applitools.com/eula/sdk +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_136.yml b/src/licensedcode/data/rules/unknown-license-reference_136.yml index ae908104418..55a5ceaf735 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_136.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_136.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://company.aspose.com/legal/eula +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_137.yml b/src/licensedcode/data/rules/unknown-license-reference_137.yml index d70bbbfaf11..fe9fe85887c 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_137.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_137.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://www.componentone.com/SuperPages/DevToolsEULA +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_138.yml b/src/licensedcode/data/rules/unknown-license-reference_138.yml index 3d1d22366c3..4948fe14c8f 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_138.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_138.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://www.devexpress.com/ +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_139.yml b/src/licensedcode/data/rules/unknown-license-reference_139.yml index 2ee295e4afd..1f60108af0f 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_139.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_139.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://js.devexpress.com/ +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_14.yml b/src/licensedcode/data/rules/unknown-license-reference_14.yml index f2d2df54344..174d17cba95 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_14.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_14.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_reference: yes referenced_filenames: - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_140.yml b/src/licensedcode/data/rules/unknown-license-reference_140.yml index 570ff67db4b..d696311b025 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_140.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_140.yml @@ -1,2 +1,3 @@ license_expression: unknown-license-reference is_license_reference: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_141.yml b/src/licensedcode/data/rules/unknown-license-reference_141.yml index 1a001d83b4c..46ef7a5a726 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_141.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_141.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://dlhsoft.com/LicenseAgreements/ +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_142.yml b/src/licensedcode/data/rules/unknown-license-reference_142.yml index 22e5ec4e499..867f1ea3767 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_142.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_142.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://www.essentialobjects.com/ +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_143.yml b/src/licensedcode/data/rules/unknown-license-reference_143.yml index 309491a9a7b..9340b78738c 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_143.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_143.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://go.microsoft.com/fwlink/?linkid=214339 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_144.yml b/src/licensedcode/data/rules/unknown-license-reference_144.yml index f0f1381ae43..781fb38baea 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_144.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_144.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://go.microsoft.com/fwlink/?linkid=218949 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_145.yml b/src/licensedcode/data/rules/unknown-license-reference_145.yml index 78c30fa0a09..71b56675f66 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_145.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_145.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://go.microsoft.com/fwlink/?linkid=235167 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_146.yml b/src/licensedcode/data/rules/unknown-license-reference_146.yml index f4024215c0f..25195497fe7 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_146.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_146.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://go.microsoft.com/fwlink/?linkid=248155 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_147.yml b/src/licensedcode/data/rules/unknown-license-reference_147.yml index 4cf665fc6aa..b7c0f5f6bfb 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_147.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_147.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://go.microsoft.com/fwlink/?linkid=253898 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_148.yml b/src/licensedcode/data/rules/unknown-license-reference_148.yml index c47b4a3e527..4a7b5edcb10 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_148.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_148.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://go.microsoft.com/fwlink/?linkid=259741 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_149.yml b/src/licensedcode/data/rules/unknown-license-reference_149.yml index 7d004144087..a7da8f187ff 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_149.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_149.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://go.microsoft.com/fwlink/?linkid=261796 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_15.yml b/src/licensedcode/data/rules/unknown-license-reference_15.yml index d5a168ee3a7..680c0cc5305 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_15.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_15.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_reference: yes referenced_filenames: - LICENSE.TXT +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_150.yml b/src/licensedcode/data/rules/unknown-license-reference_150.yml index e6fccbd715e..0bb68305988 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_150.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_150.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://go.microsoft.com/fwlink/?linkid=262998 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_151.yml b/src/licensedcode/data/rules/unknown-license-reference_151.yml index b6f0c673172..26aa66a5fae 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_151.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_151.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://go.microsoft.com/fwlink/?linkid=272666 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_152.yml b/src/licensedcode/data/rules/unknown-license-reference_152.yml index bd83ffd42c8..2f4533e6687 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_152.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_152.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://go.microsoft.com/fwlink/?linkid=273778 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_153.yml b/src/licensedcode/data/rules/unknown-license-reference_153.yml index 763e6f67b67..712599d98c6 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_153.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_153.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://go.microsoft.com/fwlink/?linkid=281843 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_154.yml b/src/licensedcode/data/rules/unknown-license-reference_154.yml index f5ee29ad212..c045cc03ddb 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_154.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_154.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://go.microsoft.com/fwlink/?linkid=317295 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_155.yml b/src/licensedcode/data/rules/unknown-license-reference_155.yml index 206f415fe9e..b092241e2a0 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_155.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_155.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://go.microsoft.com/fwlink/?linkid=320539 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_156.yml b/src/licensedcode/data/rules/unknown-license-reference_156.yml index efd7c641ce4..370a1f7c587 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_156.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_156.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://go.microsoft.com/fwlink/?linkid=329770 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_157.yml b/src/licensedcode/data/rules/unknown-license-reference_157.yml index 46e4a06d70c..b3724c7f3ae 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_157.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_157.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://go.microsoft.com/fwlink/?linkid=509837 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_158.yml b/src/licensedcode/data/rules/unknown-license-reference_158.yml index 45a3f2fbdec..d427b1ca887 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_158.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_158.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://go.microsoft.com/fwlink/?linkid=529443 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_159.yml b/src/licensedcode/data/rules/unknown-license-reference_159.yml index 251a12e93f3..463767c833e 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_159.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_159.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://go.microsoft.com/fwlink/?linkid=536623 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_16.yml b/src/licensedcode/data/rules/unknown-license-reference_16.yml index f2d2df54344..174d17cba95 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_16.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_16.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_reference: yes referenced_filenames: - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_160.yml b/src/licensedcode/data/rules/unknown-license-reference_160.yml index afadb58cfb5..0f20412683e 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_160.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_160.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://go.microsoft.com/fwlink/?linkid=614949 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_161.yml b/src/licensedcode/data/rules/unknown-license-reference_161.yml index c2dd6bea814..c09ff8707ab 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_161.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_161.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://go.microsoft.com/fwlink/?linkid=698879 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_162.yml b/src/licensedcode/data/rules/unknown-license-reference_162.yml index 33c43ec463f..6cb157fcb46 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_162.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_162.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://go.microsoft.com/fwlink/?linkid=746386 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_163.yml b/src/licensedcode/data/rules/unknown-license-reference_163.yml index ce16e2e51ad..b1adeeb9103 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_163.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_163.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://go.microsoft.com/fwlink/?linkid=832965 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_164.yml b/src/licensedcode/data/rules/unknown-license-reference_164.yml index 415ccbdc474..a5b91f8bbaf 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_164.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_164.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://go.microsoft.com/fwlink/?linkid=838619 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_165.yml b/src/licensedcode/data/rules/unknown-license-reference_165.yml index df043ab5735..dac64d9b974 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_165.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_165.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://go.microsoft.com/fwlink/?linkid=838620 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_166.yml b/src/licensedcode/data/rules/unknown-license-reference_166.yml index 0fa4f0ad5ee..19aa578d94f 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_166.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_166.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://go.microsoft.com/fwlink/?linkid=9809688 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_167.yml b/src/licensedcode/data/rules/unknown-license-reference_167.yml index 2ff36f9d456..1c0d6012bf0 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_167.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_167.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://go.microsoft.com/fwlink/?linkid=9862941 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_168.yml b/src/licensedcode/data/rules/unknown-license-reference_168.yml index 1564709d9d3..7afceac7874 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_168.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_168.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://go.microsoft.com/fwlink/?linkid=214339 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_169.yml b/src/licensedcode/data/rules/unknown-license-reference_169.yml index 0a81733334d..80ea2c3c5be 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_169.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_169.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://go.microsoft.com/fwlink/?linkid=218949 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_17.yml b/src/licensedcode/data/rules/unknown-license-reference_17.yml index f2d2df54344..174d17cba95 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_17.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_17.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_reference: yes referenced_filenames: - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_170.yml b/src/licensedcode/data/rules/unknown-license-reference_170.yml index 570ff67db4b..d696311b025 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_170.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_170.yml @@ -1,2 +1,3 @@ license_expression: unknown-license-reference is_license_reference: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_171.yml b/src/licensedcode/data/rules/unknown-license-reference_171.yml index 6259335508e..65b53cb0df4 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_171.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_171.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://go.microsoft.com/fwlink/?linkid=235167 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_172.yml b/src/licensedcode/data/rules/unknown-license-reference_172.yml index 00747c13bd9..10c3f3c0698 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_172.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_172.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://go.microsoft.com/fwlink/?linkid=248155 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_173.yml b/src/licensedcode/data/rules/unknown-license-reference_173.yml index d5631459437..1c0f225a118 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_173.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_173.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://go.microsoft.com/fwlink/?linkid=253898 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_174.yml b/src/licensedcode/data/rules/unknown-license-reference_174.yml index 5310a38b731..1655f4bbfa0 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_174.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_174.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://go.microsoft.com/fwlink/?linkid=259741 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_175.yml b/src/licensedcode/data/rules/unknown-license-reference_175.yml index c9aa32ce0d0..8a7a62873b7 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_175.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_175.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://go.microsoft.com/fwlink/?linkid=261796 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_176.yml b/src/licensedcode/data/rules/unknown-license-reference_176.yml index a978b31f199..83a8e93ae76 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_176.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_176.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://go.microsoft.com/fwlink/?linkid=262998 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_177.yml b/src/licensedcode/data/rules/unknown-license-reference_177.yml index 6def59bdd31..f28b7e24529 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_177.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_177.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://go.microsoft.com/fwlink/?linkid=272666 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_178.yml b/src/licensedcode/data/rules/unknown-license-reference_178.yml index 5ec6215d6c7..6027749029a 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_178.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_178.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://go.microsoft.com/fwlink/?linkid=273778 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_179.yml b/src/licensedcode/data/rules/unknown-license-reference_179.yml index 70905de06d5..f8fdbcbaf11 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_179.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_179.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://go.microsoft.com/fwlink/?linkid=281843 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_18.yml b/src/licensedcode/data/rules/unknown-license-reference_18.yml index d5a168ee3a7..680c0cc5305 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_18.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_18.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_reference: yes referenced_filenames: - LICENSE.TXT +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_180.yml b/src/licensedcode/data/rules/unknown-license-reference_180.yml index c4a0f5d72ea..c30ced9417e 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_180.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_180.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://go.microsoft.com/fwlink/?linkid=317295 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_181.yml b/src/licensedcode/data/rules/unknown-license-reference_181.yml index 0cf3f8b7666..c7de8e8efe2 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_181.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_181.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://go.microsoft.com/fwlink/?linkid=509837 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_182.yml b/src/licensedcode/data/rules/unknown-license-reference_182.yml index 333d5c673f6..a7f026e793e 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_182.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_182.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://go.microsoft.com/fwlink/?linkid=529443 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_183.yml b/src/licensedcode/data/rules/unknown-license-reference_183.yml index 1bdbb4478a0..39e0331500c 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_183.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_183.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://go.microsoft.com/fwlink/?linkid=536623 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_184.yml b/src/licensedcode/data/rules/unknown-license-reference_184.yml index c1a4e832ea9..3985ae45439 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_184.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_184.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://go.microsoft.com/fwlink/?linkid=698879 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_185.yml b/src/licensedcode/data/rules/unknown-license-reference_185.yml index 5b8b5fb776e..79b25139445 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_185.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_185.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://go.microsoft.com/fwlink/?linkid=746386 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_186.yml b/src/licensedcode/data/rules/unknown-license-reference_186.yml index f0d51a8d164..34fc67f9c02 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_186.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_186.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://go.microsoft.com/fwlink/?linkid=832965 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_187.yml b/src/licensedcode/data/rules/unknown-license-reference_187.yml index 93cc43a6509..9ed57272aaa 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_187.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_187.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://go.microsoft.com/fwlink/?linkid=838619 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_188.yml b/src/licensedcode/data/rules/unknown-license-reference_188.yml index 8fc69588c7e..2a786439974 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_188.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_188.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://go.microsoft.com/fwlink/?linkid=838620 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_189.yml b/src/licensedcode/data/rules/unknown-license-reference_189.yml index d997598c095..b6130c92e27 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_189.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_189.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://go.microsoft.com/fwlink/?linkid=9809688 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_19.yml b/src/licensedcode/data/rules/unknown-license-reference_19.yml index c24070910ba..1291c0314c5 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_19.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_19.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_reference: yes referenced_filenames: - COPYING +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_190.yml b/src/licensedcode/data/rules/unknown-license-reference_190.yml index fe4db110882..7c58791b1c3 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_190.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_190.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://go.microsoft.com/fwlink/?linkid=9862941 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_191.yml b/src/licensedcode/data/rules/unknown-license-reference_191.yml index c24070910ba..1291c0314c5 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_191.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_191.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_reference: yes referenced_filenames: - COPYING +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_192.yml b/src/licensedcode/data/rules/unknown-license-reference_192.yml index 1219eb6e13f..e4056f861e7 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_192.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_192.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://kusto.blob.core.windows.net/kusto-nuget/EULA-agreement.htm +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_193.yml b/src/licensedcode/data/rules/unknown-license-reference_193.yml index 36aab6c01b7..e86ae57bd77 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_193.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_193.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://www.microsoft.com/web/webpi/eula/ +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_194.yml b/src/licensedcode/data/rules/unknown-license-reference_194.yml index 21269fa6413..1cc277ee643 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_194.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_194.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://microsoft.com/web/webpi/eula/ +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_195.yml b/src/licensedcode/data/rules/unknown-license-reference_195.yml index 8089e99e59e..30fc49473b1 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_195.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_195.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://pdfium.patagames.com/faq/eula +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_196.yml b/src/licensedcode/data/rules/unknown-license-reference_196.yml index 1f8506ab108..6378424f4c1 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_196.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_196.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://specflow.org/plus/eula/ +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_197.yml b/src/licensedcode/data/rules/unknown-license-reference_197.yml index 2fd3ae0fee4..e9595586cc5 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_197.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_197.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://www.streamcoders.com/products/msneteula.html +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_198.yml b/src/licensedcode/data/rules/unknown-license-reference_198.yml index 1cfb0efd0c6..a6db18a89df 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_198.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_198.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://streamcoders.com/products/msneteula.html +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_199.yml b/src/licensedcode/data/rules/unknown-license-reference_199.yml index e036ffc2bc5..433419a927c 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_199.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_199.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://workflowenginenet.com/EULA +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_2.yml b/src/licensedcode/data/rules/unknown-license-reference_2.yml index f2d2df54344..174d17cba95 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_2.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_2.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_reference: yes referenced_filenames: - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_20.yml b/src/licensedcode/data/rules/unknown-license-reference_20.yml index c24070910ba..1291c0314c5 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_20.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_20.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_reference: yes referenced_filenames: - COPYING +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_200.yml b/src/licensedcode/data/rules/unknown-license-reference_200.yml index 94ea922c1da..2387c420970 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_200.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_200.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://kusto.blob.core.windows.net/kusto-nuget/EULA-agreement.htm +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_201.yml b/src/licensedcode/data/rules/unknown-license-reference_201.yml index c94ad6627ad..17295381a74 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_201.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_201.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://www.microsoft.com/web/webpi/eula/ +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_202.yml b/src/licensedcode/data/rules/unknown-license-reference_202.yml index b9af24099f7..861682a71e8 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_202.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_202.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://microsoft.com/web/webpi/eula/ +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_203.yml b/src/licensedcode/data/rules/unknown-license-reference_203.yml index 815eb1759ec..11c374d259e 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_203.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_203.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://pdfium.patagames.com/faq/eula +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_204.yml b/src/licensedcode/data/rules/unknown-license-reference_204.yml index f797b27ed55..2b50a6c20a1 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_204.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_204.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://specflow.org/plus/eula/ +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_205.yml b/src/licensedcode/data/rules/unknown-license-reference_205.yml index edc41b93b55..3b771d40fa5 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_205.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_205.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://www.streamcoders.com/products/msneteula.html +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_206.yml b/src/licensedcode/data/rules/unknown-license-reference_206.yml index 908617416dc..32484206057 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_206.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_206.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://streamcoders.com/products/msneteula.html +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_207.yml b/src/licensedcode/data/rules/unknown-license-reference_207.yml index 86d1f04ac12..ae14a37105b 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_207.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_207.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://workflowenginenet.com/EULA +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_208.yml b/src/licensedcode/data/rules/unknown-license-reference_208.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_208.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_208.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_209.yml b/src/licensedcode/data/rules/unknown-license-reference_209.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_209.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_209.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_21.yml b/src/licensedcode/data/rules/unknown-license-reference_21.yml index 570ff67db4b..d696311b025 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_21.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_21.yml @@ -1,2 +1,3 @@ license_expression: unknown-license-reference is_license_reference: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_210.yml b/src/licensedcode/data/rules/unknown-license-reference_210.yml index f543dabe99e..52c5103199e 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_210.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_210.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - LICENSE.TXT +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_211.yml b/src/licensedcode/data/rules/unknown-license-reference_211.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_211.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_211.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_212.yml b/src/licensedcode/data/rules/unknown-license-reference_212.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_212.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_212.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_213.yml b/src/licensedcode/data/rules/unknown-license-reference_213.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_213.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_213.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_214.yml b/src/licensedcode/data/rules/unknown-license-reference_214.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_214.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_214.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_215.yml b/src/licensedcode/data/rules/unknown-license-reference_215.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_215.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_215.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_216.yml b/src/licensedcode/data/rules/unknown-license-reference_216.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_216.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_216.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_217.yml b/src/licensedcode/data/rules/unknown-license-reference_217.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_217.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_217.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_218.yml b/src/licensedcode/data/rules/unknown-license-reference_218.yml index ebd8dda3dfd..10c924c305b 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_218.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_218.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - Licence +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_219.yml b/src/licensedcode/data/rules/unknown-license-reference_219.yml index d72e93d5daf..3cc511dd77f 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_219.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_219.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_22.yml b/src/licensedcode/data/rules/unknown-license-reference_22.yml index 86650196d11..9cf914f049b 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_22.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_22.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_reference: yes referenced_filenames: - LICENCE.TXT +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_220.yml b/src/licensedcode/data/rules/unknown-license-reference_220.yml index d72e93d5daf..3cc511dd77f 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_220.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_220.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_221.yml b/src/licensedcode/data/rules/unknown-license-reference_221.yml index 4b7d3c21d09..49533ff2bec 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_221.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_221.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - COPYING +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_222.yml b/src/licensedcode/data/rules/unknown-license-reference_222.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_222.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_222.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_223.yml b/src/licensedcode/data/rules/unknown-license-reference_223.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_223.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_223.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_224.yml b/src/licensedcode/data/rules/unknown-license-reference_224.yml index d72e93d5daf..3cc511dd77f 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_224.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_224.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_225.yml b/src/licensedcode/data/rules/unknown-license-reference_225.yml index d3fc513b435..ef69676fcbb 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_225.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_225.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - LICENSE_1_0.txt +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_226.yml b/src/licensedcode/data/rules/unknown-license-reference_226.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_226.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_226.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_227.yml b/src/licensedcode/data/rules/unknown-license-reference_227.yml index fdb15150152..4a04392afd9 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_227.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_227.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference minimum_coverage: 90 is_license_intro: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_228.yml b/src/licensedcode/data/rules/unknown-license-reference_228.yml index b07637a2593..bf457435eaa 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_228.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_228.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - readme.txt +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_229.yml b/src/licensedcode/data/rules/unknown-license-reference_229.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_229.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_229.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_23.yml b/src/licensedcode/data/rules/unknown-license-reference_23.yml index 86650196d11..9cf914f049b 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_23.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_23.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_reference: yes referenced_filenames: - LICENCE.TXT +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_230.yml b/src/licensedcode/data/rules/unknown-license-reference_230.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_230.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_230.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_231.yml b/src/licensedcode/data/rules/unknown-license-reference_231.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_231.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_231.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_232.yml b/src/licensedcode/data/rules/unknown-license-reference_232.yml index d72e93d5daf..3cc511dd77f 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_232.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_232.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_233.yml b/src/licensedcode/data/rules/unknown-license-reference_233.yml index fcdb1c29d78..a27765fcc0a 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_233.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_233.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - copying.md +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_234.yml b/src/licensedcode/data/rules/unknown-license-reference_234.yml index fcdb1c29d78..a27765fcc0a 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_234.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_234.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - copying.md +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_235.yml b/src/licensedcode/data/rules/unknown-license-reference_235.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_235.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_235.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_236.yml b/src/licensedcode/data/rules/unknown-license-reference_236.yml index 89759b7fe6b..c684e344715 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_236.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_236.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - doc/LICENSE.txt +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_237.yml b/src/licensedcode/data/rules/unknown-license-reference_237.yml index e98e84ec419..2118f0f609a 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_237.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_237.yml @@ -3,3 +3,4 @@ is_license_notice: yes relevance: 100 referenced_filenames: - ee/LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_238.yml b/src/licensedcode/data/rules/unknown-license-reference_238.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_238.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_238.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_239.yml b/src/licensedcode/data/rules/unknown-license-reference_239.yml index eb9a5834644..398048b6f63 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_239.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_239.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_notice: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_24.yml b/src/licensedcode/data/rules/unknown-license-reference_24.yml index 224ffecc523..2c7fadfca31 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_24.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_24.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_reference: yes referenced_filenames: - LICENSE.txt +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_240.yml b/src/licensedcode/data/rules/unknown-license-reference_240.yml index eb9a5834644..398048b6f63 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_240.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_240.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_notice: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_241.yml b/src/licensedcode/data/rules/unknown-license-reference_241.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_241.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_241.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_242.yml b/src/licensedcode/data/rules/unknown-license-reference_242.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_242.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_242.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_243.yml b/src/licensedcode/data/rules/unknown-license-reference_243.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_243.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_243.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_244.yml b/src/licensedcode/data/rules/unknown-license-reference_244.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_244.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_244.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_245.yml b/src/licensedcode/data/rules/unknown-license-reference_245.yml index eb9a5834644..398048b6f63 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_245.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_245.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_notice: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_246.yml b/src/licensedcode/data/rules/unknown-license-reference_246.yml index eb9a5834644..398048b6f63 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_246.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_246.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_notice: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_247.yml b/src/licensedcode/data/rules/unknown-license-reference_247.yml index eb9a5834644..398048b6f63 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_247.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_247.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_notice: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_248.yml b/src/licensedcode/data/rules/unknown-license-reference_248.yml index eb9a5834644..398048b6f63 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_248.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_248.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_notice: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_249.yml b/src/licensedcode/data/rules/unknown-license-reference_249.yml index eb9a5834644..398048b6f63 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_249.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_249.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_notice: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_25.yml b/src/licensedcode/data/rules/unknown-license-reference_25.yml index fbd3de41d13..67908e79e18 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_25.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_25.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_tag: yes referenced_filenames: - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_250.yml b/src/licensedcode/data/rules/unknown-license-reference_250.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_250.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_250.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_251.yml b/src/licensedcode/data/rules/unknown-license-reference_251.yml index d72e93d5daf..3cc511dd77f 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_251.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_251.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_252.yml b/src/licensedcode/data/rules/unknown-license-reference_252.yml index cdbe17a265d..2399e84e16f 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_252.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_252.yml @@ -3,3 +3,4 @@ is_license_notice: yes relevance: 100 referenced_filenames: - PUBLIC +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_253.yml b/src/licensedcode/data/rules/unknown-license-reference_253.yml index 32a2c065aae..740c9c3b680 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_253.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_253.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - LICENSE.md +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_254.yml b/src/licensedcode/data/rules/unknown-license-reference_254.yml index d33098a2037..d50ef139192 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_254.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_254.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - NOTICE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_255.yml b/src/licensedcode/data/rules/unknown-license-reference_255.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_255.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_255.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_256.yml b/src/licensedcode/data/rules/unknown-license-reference_256.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_256.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_256.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_257.yml b/src/licensedcode/data/rules/unknown-license-reference_257.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_257.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_257.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_258.yml b/src/licensedcode/data/rules/unknown-license-reference_258.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_258.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_258.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_259.yml b/src/licensedcode/data/rules/unknown-license-reference_259.yml index fc3d42b20a1..29434fd8d1d 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_259.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_259.yml @@ -3,3 +3,4 @@ is_license_notice: yes relevance: 100 referenced_filenames: - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_26.yml b/src/licensedcode/data/rules/unknown-license-reference_26.yml index f2d2df54344..174d17cba95 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_26.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_26.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_reference: yes referenced_filenames: - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_260.yml b/src/licensedcode/data/rules/unknown-license-reference_260.yml index af7a706fc6a..873686f77b6 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_260.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_260.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 90 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_261.yml b/src/licensedcode/data/rules/unknown-license-reference_261.yml index af7a706fc6a..873686f77b6 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_261.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_261.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 90 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_262.yml b/src/licensedcode/data/rules/unknown-license-reference_262.yml index ac6bfa48ec3..441f50c3f7b 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_262.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_262.yml @@ -4,3 +4,4 @@ minimum_coverage: 80 relevance: 100 referenced_filenames: - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_263.yml b/src/licensedcode/data/rules/unknown-license-reference_263.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_263.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_263.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_264.yml b/src/licensedcode/data/rules/unknown-license-reference_264.yml index 126286becbf..d43176b36c0 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_264.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_264.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_notice: yes relevance: 80 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_265.yml b/src/licensedcode/data/rules/unknown-license-reference_265.yml index 3a03d2e7a5f..6e9244af2f5 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_265.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_265.yml @@ -4,3 +4,4 @@ relevance: 100 referenced_filenames: - LICENSE.txt notes: See in https://github.com/PixarAnimationStudios/OpenTimelineIO +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_266.yml b/src/licensedcode/data/rules/unknown-license-reference_266.yml index b39ccd344d3..19bbcf1d8ab 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_266.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_266.yml @@ -4,3 +4,4 @@ relevance: 100 referenced_filenames: - NOTICE - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_267.yml b/src/licensedcode/data/rules/unknown-license-reference_267.yml index a8d11d9a997..f5df7fd4412 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_267.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_267.yml @@ -5,3 +5,4 @@ referenced_filenames: - LICENSE - README notes: often seen with the bzip2-libbzip-2010 license +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_268.yml b/src/licensedcode/data/rules/unknown-license-reference_268.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_268.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_268.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_269.yml b/src/licensedcode/data/rules/unknown-license-reference_269.yml index fab8a67ddca..a5281a21e12 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_269.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_269.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_tag: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_27.yml b/src/licensedcode/data/rules/unknown-license-reference_27.yml index f2d2df54344..174d17cba95 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_27.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_27.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_reference: yes referenced_filenames: - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_270.yml b/src/licensedcode/data/rules/unknown-license-reference_270.yml index eb9a5834644..398048b6f63 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_270.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_270.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_notice: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_271.yml b/src/licensedcode/data/rules/unknown-license-reference_271.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_271.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_271.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_272.yml b/src/licensedcode/data/rules/unknown-license-reference_272.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_272.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_272.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_273.yml b/src/licensedcode/data/rules/unknown-license-reference_273.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_273.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_273.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_274.yml b/src/licensedcode/data/rules/unknown-license-reference_274.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_274.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_274.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_275.yml b/src/licensedcode/data/rules/unknown-license-reference_275.yml index 49811a35cd4..c7baf5704f0 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_275.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_275.yml @@ -5,3 +5,4 @@ notes: Seen in http://www.rowleydownload.co.uk/arm/packages/targets/EA_LPC3250_O and https://github.com/blalor/FreeRTOS/blob/master/Demo/CORTEX_LPC1768_GCC_Rowley/LPC1700_Startup.s and https://cryptography.gmu.edu:4443/XBX/FreeRTOS/blob/712573f0336512b107329be544c899059d3d2de2/Demo/CORTEX_LM3Sxxxx_Rowley/thumb_crt0.s What this license is is unknown. +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_276.yml b/src/licensedcode/data/rules/unknown-license-reference_276.yml index 785fa6c89f0..bda6a49de7f 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_276.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_276.yml @@ -6,3 +6,4 @@ referenced_filenames: - VFS.h notes: seen in https://github.com/meh2481/HeartlightPlusPlus/blob/b7e3c081012ef29522bd347701b3b611886bef6c/include/VFS.h MIT-licensed but the file name is too common. +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_277.yml b/src/licensedcode/data/rules/unknown-license-reference_277.yml index f052fdfced3..df84cdff73f 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_277.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_277.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - Config.hpp +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_278.yml b/src/licensedcode/data/rules/unknown-license-reference_278.yml index d72e93d5daf..3cc511dd77f 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_278.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_278.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_279.yml b/src/licensedcode/data/rules/unknown-license-reference_279.yml index 8c69f821af6..f0d32a40a7b 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_279.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_279.yml @@ -5,3 +5,4 @@ referenced_filenames: - Main.h notes: Seen in https://github.com/spech66/lightfire3d/blob/a93ba233451349d88e32eaa83cc7f948ea6da6e4/lightfire3d/src/Main.h with a gpl, but this file name is too generic to report such license +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_28.yml b/src/licensedcode/data/rules/unknown-license-reference_28.yml index f2d2df54344..174d17cba95 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_28.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_28.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_reference: yes referenced_filenames: - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_280.yml b/src/licensedcode/data/rules/unknown-license-reference_280.yml index 4b7d3c21d09..49533ff2bec 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_280.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_280.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - COPYING +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_281.yml b/src/licensedcode/data/rules/unknown-license-reference_281.yml index 35accf33c2e..25807f08ac9 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_281.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_281.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - copyright.txt +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_282.yml b/src/licensedcode/data/rules/unknown-license-reference_282.yml index bcb253b6287..6450de9d712 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_282.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_282.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - doc/License.txt +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_283.yml b/src/licensedcode/data/rules/unknown-license-reference_283.yml index d72e93d5daf..3cc511dd77f 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_283.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_283.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_284.yml b/src/licensedcode/data/rules/unknown-license-reference_284.yml index d72e93d5daf..3cc511dd77f 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_284.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_284.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_285.yml b/src/licensedcode/data/rules/unknown-license-reference_285.yml index c8343ceee83..6b84f887ba9 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_285.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_285.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - LICENSE.txt +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_286.yml b/src/licensedcode/data/rules/unknown-license-reference_286.yml index d72e93d5daf..3cc511dd77f 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_286.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_286.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_287.yml b/src/licensedcode/data/rules/unknown-license-reference_287.yml index c8343ceee83..6b84f887ba9 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_287.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_287.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - LICENSE.txt +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_288.yml b/src/licensedcode/data/rules/unknown-license-reference_288.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_288.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_288.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_289.yml b/src/licensedcode/data/rules/unknown-license-reference_289.yml index 89539ed1009..78c410b8807 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_289.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_289.yml @@ -4,3 +4,4 @@ relevance: 100 minimum_coverage: 80 referenced_filenames: - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_29.yml b/src/licensedcode/data/rules/unknown-license-reference_29.yml index a89cd2dd2f6..9ddbfe8166f 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_29.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_29.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 85 referenced_filenames: - License.txt +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_290.yml b/src/licensedcode/data/rules/unknown-license-reference_290.yml index 44a31d084de..5a6ea629cb2 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_290.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_290.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 minimum_coverage: 100 notes: Seen in some VMWare notice. Unclear what they meant with this +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_291.yml b/src/licensedcode/data/rules/unknown-license-reference_291.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_291.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_291.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_292.yml b/src/licensedcode/data/rules/unknown-license-reference_292.yml index d72e93d5daf..3cc511dd77f 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_292.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_292.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_293.yml b/src/licensedcode/data/rules/unknown-license-reference_293.yml index 36c2be95a82..37ed33ca916 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_293.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_293.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 notes: See in BSD +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_294.yml b/src/licensedcode/data/rules/unknown-license-reference_294.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_294.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_294.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_295.yml b/src/licensedcode/data/rules/unknown-license-reference_295.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_295.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_295.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_296.yml b/src/licensedcode/data/rules/unknown-license-reference_296.yml index fc3d42b20a1..29434fd8d1d 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_296.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_296.yml @@ -3,3 +3,4 @@ is_license_notice: yes relevance: 100 referenced_filenames: - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_297.yml b/src/licensedcode/data/rules/unknown-license-reference_297.yml index e241eda6db7..461e014b6c5 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_297.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_297.yml @@ -3,3 +3,4 @@ is_license_notice: yes relevance: 100 referenced_filenames: - Copyright +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_298.yml b/src/licensedcode/data/rules/unknown-license-reference_298.yml index e241eda6db7..461e014b6c5 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_298.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_298.yml @@ -3,3 +3,4 @@ is_license_notice: yes relevance: 100 referenced_filenames: - Copyright +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_299.yml b/src/licensedcode/data/rules/unknown-license-reference_299.yml index 26a457cf419..89706c69e36 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_299.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_299.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://www.opensource.org/docs/definition.php +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_3.yml b/src/licensedcode/data/rules/unknown-license-reference_3.yml index be6e70c5f64..28dcb443b0d 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_3.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_3.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_reference: yes referenced_filenames: - '' +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_30.yml b/src/licensedcode/data/rules/unknown-license-reference_30.yml index fcecbe295a5..b1f007c66c3 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_30.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_30.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_reference: yes referenced_filenames: - Copyright +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_300.yml b/src/licensedcode/data/rules/unknown-license-reference_300.yml index b00736d65bc..258df75f3ff 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_300.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_300.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://www.opensource.org/docs/definition.php +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_301.yml b/src/licensedcode/data/rules/unknown-license-reference_301.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_301.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_301.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_302.yml b/src/licensedcode/data/rules/unknown-license-reference_302.yml index eb9a5834644..398048b6f63 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_302.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_302.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_notice: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_303.yml b/src/licensedcode/data/rules/unknown-license-reference_303.yml index d72e93d5daf..3cc511dd77f 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_303.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_303.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_304.yml b/src/licensedcode/data/rules/unknown-license-reference_304.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_304.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_304.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_305.yml b/src/licensedcode/data/rules/unknown-license-reference_305.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_305.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_305.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_306.yml b/src/licensedcode/data/rules/unknown-license-reference_306.yml index a9cd83438ca..901ee3dec1f 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_306.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_306.yml @@ -3,3 +3,4 @@ is_license_notice: yes relevance: 100 referenced_filenames: - LICENSE.txt +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_307.yml b/src/licensedcode/data/rules/unknown-license-reference_307.yml index eb9a5834644..398048b6f63 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_307.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_307.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_notice: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_308.yml b/src/licensedcode/data/rules/unknown-license-reference_308.yml index d72e93d5daf..3cc511dd77f 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_308.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_308.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_31.yml b/src/licensedcode/data/rules/unknown-license-reference_31.yml index a1ac569c6b4..8d40374f62b 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_31.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_31.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_reference: yes referenced_filenames: - license.pdf +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_32.yml b/src/licensedcode/data/rules/unknown-license-reference_32.yml index f2d2df54344..174d17cba95 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_32.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_32.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_reference: yes referenced_filenames: - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_33.yml b/src/licensedcode/data/rules/unknown-license-reference_33.yml index f2d2df54344..174d17cba95 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_33.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_33.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_reference: yes referenced_filenames: - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_34.yml b/src/licensedcode/data/rules/unknown-license-reference_34.yml index f2d2df54344..174d17cba95 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_34.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_34.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_reference: yes referenced_filenames: - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_35.yml b/src/licensedcode/data/rules/unknown-license-reference_35.yml index f47e5e030c6..ae03050d7fb 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_35.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_35.yml @@ -3,3 +3,4 @@ is_license_reference: yes minimum_coverage: 100 referenced_filenames: - license.txt +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_36.yml b/src/licensedcode/data/rules/unknown-license-reference_36.yml index ed8f9031b5f..49390447d7d 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_36.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_36.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes minimum_coverage: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_366.yml b/src/licensedcode/data/rules/unknown-license-reference_366.yml index 40f98efc9a8..3bd6a12bb02 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_366.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_366.yml @@ -4,3 +4,4 @@ relevance: 90 minimum_coverage: 100 referenced_filenames: - ../COPYING +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_37.yml b/src/licensedcode/data/rules/unknown-license-reference_37.yml index 34e986c29cf..d416b2575cf 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_37.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_37.yml @@ -3,3 +3,4 @@ is_license_reference: yes minimum_coverage: 100 referenced_filenames: - copyright +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_38.yml b/src/licensedcode/data/rules/unknown-license-reference_38.yml index a413f516899..709a84686cd 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_38.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_38.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_reference: yes referenced_filenames: - README +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_39.yml b/src/licensedcode/data/rules/unknown-license-reference_39.yml index 137266daaf6..b9f88c6f32b 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_39.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_39.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 90 referenced_filenames: - LICENCE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_4.yml b/src/licensedcode/data/rules/unknown-license-reference_4.yml index c24070910ba..1291c0314c5 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_4.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_4.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_reference: yes referenced_filenames: - COPYING +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_40.yml b/src/licensedcode/data/rules/unknown-license-reference_40.yml index d4b48529562..12b67243e4e 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_40.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_40.yml @@ -4,3 +4,4 @@ relevance: 90 minimum_coverage: 95 referenced_filenames: - main.c +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_41.yml b/src/licensedcode/data/rules/unknown-license-reference_41.yml index d72e93d5daf..3cc511dd77f 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_41.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_41.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_42.yml b/src/licensedcode/data/rules/unknown-license-reference_42.yml index 7443eb98d8e..030f3650449 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_42.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_42.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 90 referenced_filenames: - COPYING.txt +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_43.yml b/src/licensedcode/data/rules/unknown-license-reference_43.yml index 4b7d3c21d09..49533ff2bec 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_43.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_43.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - COPYING +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_44.yml b/src/licensedcode/data/rules/unknown-license-reference_44.yml index d33098a2037..d50ef139192 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_44.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_44.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - NOTICE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_45.yml b/src/licensedcode/data/rules/unknown-license-reference_45.yml index 570ff67db4b..d696311b025 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_45.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_45.yml @@ -1,2 +1,3 @@ license_expression: unknown-license-reference is_license_reference: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_46.yml b/src/licensedcode/data/rules/unknown-license-reference_46.yml index a9f55836abb..359d6ad0bc4 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_46.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_46.yml @@ -4,3 +4,4 @@ relevance: 90 minimum_coverage: 100 referenced_filenames: - LICENSE.txt +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_47.yml b/src/licensedcode/data/rules/unknown-license-reference_47.yml index 4b7d3c21d09..49533ff2bec 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_47.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_47.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - COPYING +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_48.yml b/src/licensedcode/data/rules/unknown-license-reference_48.yml index 27ee017e25d..caf348e741c 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_48.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_48.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 95 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_49.yml b/src/licensedcode/data/rules/unknown-license-reference_49.yml index 4b7d3c21d09..49533ff2bec 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_49.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_49.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - COPYING +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_5.yml b/src/licensedcode/data/rules/unknown-license-reference_5.yml index c24070910ba..1291c0314c5 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_5.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_5.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_reference: yes referenced_filenames: - COPYING +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_50.yml b/src/licensedcode/data/rules/unknown-license-reference_50.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_50.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_50.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_51.yml b/src/licensedcode/data/rules/unknown-license-reference_51.yml index c8343ceee83..6b84f887ba9 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_51.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_51.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - LICENSE.txt +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_52.yml b/src/licensedcode/data/rules/unknown-license-reference_52.yml index 570ff67db4b..d696311b025 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_52.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_52.yml @@ -1,2 +1,3 @@ license_expression: unknown-license-reference is_license_reference: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_53.yml b/src/licensedcode/data/rules/unknown-license-reference_53.yml index c37083f10ea..7b45393c484 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_53.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_53.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference AND jam is_license_reference: yes referenced_filenames: - jam.c +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_54.yml b/src/licensedcode/data/rules/unknown-license-reference_54.yml index 35660dc5181..8b40f17c584 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_54.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_54.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_reference: yes referenced_filenames: - COPYRIGHT +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_55.yml b/src/licensedcode/data/rules/unknown-license-reference_55.yml index d1ee35c52ee..b4aa4e1a759 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_55.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_55.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference AND libpng is_license_reference: yes referenced_filenames: - Tidy.java +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_558.yml b/src/licensedcode/data/rules/unknown-license-reference_558.yml index 41d75f129dc..19ad43e89f8 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_558.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_558.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_reference: yes referenced_filenames: - main.c +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_56.yml b/src/licensedcode/data/rules/unknown-license-reference_56.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_56.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_56.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_58.yml b/src/licensedcode/data/rules/unknown-license-reference_58.yml index 570ff67db4b..d696311b025 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_58.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_58.yml @@ -1,2 +1,3 @@ license_expression: unknown-license-reference is_license_reference: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_59.yml b/src/licensedcode/data/rules/unknown-license-reference_59.yml index 3ee91f8033d..3b84101a1cf 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_59.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_59.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 99 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_6.yml b/src/licensedcode/data/rules/unknown-license-reference_6.yml index be6e70c5f64..28dcb443b0d 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_6.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_6.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_reference: yes referenced_filenames: - '' +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_60.yml b/src/licensedcode/data/rules/unknown-license-reference_60.yml index 3ee91f8033d..3b84101a1cf 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_60.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_60.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 99 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_61.yml b/src/licensedcode/data/rules/unknown-license-reference_61.yml index eba3d5608b6..71f29098cf4 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_61.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_61.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 notes: some source code offer for copyleft +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_62.yml b/src/licensedcode/data/rules/unknown-license-reference_62.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_62.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_62.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_63.yml b/src/licensedcode/data/rules/unknown-license-reference_63.yml index d72e93d5daf..3cc511dd77f 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_63.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_63.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_64.yml b/src/licensedcode/data/rules/unknown-license-reference_64.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_64.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_64.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_65.yml b/src/licensedcode/data/rules/unknown-license-reference_65.yml index d4b48529562..12b67243e4e 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_65.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_65.yml @@ -4,3 +4,4 @@ relevance: 90 minimum_coverage: 95 referenced_filenames: - main.c +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_66.yml b/src/licensedcode/data/rules/unknown-license-reference_66.yml index 570ff67db4b..d696311b025 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_66.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_66.yml @@ -1,2 +1,3 @@ license_expression: unknown-license-reference is_license_reference: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_67.yml b/src/licensedcode/data/rules/unknown-license-reference_67.yml index 09aabfae4d0..0665140898d 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_67.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_67.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 minimum_coverage: 95 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_68.yml b/src/licensedcode/data/rules/unknown-license-reference_68.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_68.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_68.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_69.yml b/src/licensedcode/data/rules/unknown-license-reference_69.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_69.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_69.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_7.yml b/src/licensedcode/data/rules/unknown-license-reference_7.yml index c24070910ba..1291c0314c5 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_7.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_7.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_reference: yes referenced_filenames: - COPYING +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_70.yml b/src/licensedcode/data/rules/unknown-license-reference_70.yml index 32f09cb6784..9862831bc01 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_70.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_70.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 90 ignorable_urls: - https://github.com/vertica-as/integration-service/blob/master/LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_700.yml b/src/licensedcode/data/rules/unknown-license-reference_700.yml index fc3d42b20a1..29434fd8d1d 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_700.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_700.yml @@ -3,3 +3,4 @@ is_license_notice: yes relevance: 100 referenced_filenames: - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_71.yml b/src/licensedcode/data/rules/unknown-license-reference_71.yml index 58e07a75c63..c1db24d038d 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_71.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_71.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 90 ignorable_urls: - https://raw.github.com/chgeuer/azureiisconfiguratorsync/master/LICENSE.txt +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_72.yml b/src/licensedcode/data/rules/unknown-license-reference_72.yml index 4b74f164bd0..b7a9b777212 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_72.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_72.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 90 ignorable_urls: - https://raw.github.com/markwoodhall/MFlow/master/license.txt +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_73.yml b/src/licensedcode/data/rules/unknown-license-reference_73.yml index 05ce4417198..3220d8fe1cb 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_73.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_73.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 90 ignorable_urls: - https://raw.githubusercontent.com/mgravell/capnproto-net/master/LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_74.yml b/src/licensedcode/data/rules/unknown-license-reference_74.yml index 25ee73ad772..d58a80fef1d 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_74.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_74.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 90 ignorable_urls: - https://raw.githubusercontent.com/sceneskope/sceneskope-sdk/master/LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_75.yml b/src/licensedcode/data/rules/unknown-license-reference_75.yml index e81877ee33c..6f9e7896c72 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_75.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_75.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 90 ignorable_urls: - https://github.com/carbon/Platform/blob/master/LICENCE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_76.yml b/src/licensedcode/data/rules/unknown-license-reference_76.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_76.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_76.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_77.yml b/src/licensedcode/data/rules/unknown-license-reference_77.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_77.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_77.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_78.yml b/src/licensedcode/data/rules/unknown-license-reference_78.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_78.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_78.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_79.yml b/src/licensedcode/data/rules/unknown-license-reference_79.yml index 03b24df650e..41ef045ef79 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_79.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_79.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://github.com/vertica-as/integration-service/raw/master/LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_8.yml b/src/licensedcode/data/rules/unknown-license-reference_8.yml index be6e70c5f64..28dcb443b0d 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_8.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_8.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_reference: yes referenced_filenames: - '' +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_80.yml b/src/licensedcode/data/rules/unknown-license-reference_80.yml index eca2e921b8e..9230d7df9ca 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_80.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_80.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://www.microsoft.com/web/webpi/eula/net_library_eula_TRK.htm +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_81.yml b/src/licensedcode/data/rules/unknown-license-reference_81.yml index d318faf32cf..3f62d32e214 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_81.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_81.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://www.microsoft.com/web/webpi/eula/net_library_eula_CSY.htm +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_82.yml b/src/licensedcode/data/rules/unknown-license-reference_82.yml index c2e94d44d8e..88327d669ea 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_82.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_82.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 90 ignorable_urls: - https://newen.visualstudio.com/_git/NewenNetworks +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_83.yml b/src/licensedcode/data/rules/unknown-license-reference_83.yml index 3d7ea60eadc..b046a8d2f61 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_83.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_83.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://go.microsoft.com/fwlink/?LinkID=236061 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_84.yml b/src/licensedcode/data/rules/unknown-license-reference_84.yml index 8a36e50d780..8fc857c188c 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_84.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_84.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://www.microsoft.com/en-us/kinectforwindows/develop/sdk-eula.aspx +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_85.yml b/src/licensedcode/data/rules/unknown-license-reference_85.yml index 18b8ae19d21..0906cbd9567 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_85.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_85.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://github.com/lynxx131/aspnet5-microservice/blob/master/LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_86.yml b/src/licensedcode/data/rules/unknown-license-reference_86.yml index 5cfac640e4e..28c6516a0a7 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_86.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_86.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://www.microsoft.com/web/webpi/eula/net_library_eula_CSY.htm +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_87.yml b/src/licensedcode/data/rules/unknown-license-reference_87.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_87.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_87.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_88.yml b/src/licensedcode/data/rules/unknown-license-reference_88.yml index d72e93d5daf..3cc511dd77f 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_88.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_88.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_89.yml b/src/licensedcode/data/rules/unknown-license-reference_89.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_89.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_89.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_9.yml b/src/licensedcode/data/rules/unknown-license-reference_9.yml index f2d2df54344..174d17cba95 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_9.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_9.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_reference: yes referenced_filenames: - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_90.yml b/src/licensedcode/data/rules/unknown-license-reference_90.yml index e2b802fe400..f296f0d625b 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_90.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_90.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - LEGAL +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_91.yml b/src/licensedcode/data/rules/unknown-license-reference_91.yml index 4b7d3c21d09..49533ff2bec 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_91.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_91.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - COPYING +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_92.yml b/src/licensedcode/data/rules/unknown-license-reference_92.yml index d72e93d5daf..3cc511dd77f 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_92.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_92.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_93.yml b/src/licensedcode/data/rules/unknown-license-reference_93.yml index d72e93d5daf..3cc511dd77f 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_93.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_93.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_94.yml b/src/licensedcode/data/rules/unknown-license-reference_94.yml index c8343ceee83..6b84f887ba9 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_94.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_94.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - LICENSE.txt +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_95.yml b/src/licensedcode/data/rules/unknown-license-reference_95.yml index 4b7d3c21d09..49533ff2bec 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_95.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_95.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - COPYING +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_96.yml b/src/licensedcode/data/rules/unknown-license-reference_96.yml index 32b26f7cc61..fd6d8d755e7 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_96.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_96.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - COPYRIGHT +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_97.yml b/src/licensedcode/data/rules/unknown-license-reference_97.yml index c8343ceee83..6b84f887ba9 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_97.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_97.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - LICENSE.txt +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_98.yml b/src/licensedcode/data/rules/unknown-license-reference_98.yml index 545ced11f69..cfc9efc09f8 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_98.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_98.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - COPYING.txt +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_99.yml b/src/licensedcode/data/rules/unknown-license-reference_99.yml index d72e93d5daf..3cc511dd77f 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_99.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_99.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_and_apache-2.0_and_proprietary-license_1.yml b/src/licensedcode/data/rules/unknown-license-reference_and_apache-2.0_and_proprietary-license_1.yml index fe39a214b6e..c0ed2617514 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_and_apache-2.0_and_proprietary-license_1.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_and_apache-2.0_and_proprietary-license_1.yml @@ -8,3 +8,4 @@ notes: there are several license versions including Sleepycat, AGPL and lately A Apache license Download is only possible with a user login. ignorable_urls: - http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_and_trademark-notice_1.yml b/src/licensedcode/data/rules/unknown-license-reference_and_trademark-notice_1.yml index dd1bd320ed3..327e4f24c5e 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_and_trademark-notice_1.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_and_trademark-notice_1.yml @@ -4,3 +4,4 @@ relevance: 100 referenced_filenames: - LICENSE.txt notes: See in https://github.com/PixarAnimationStudios/OpenTimelineIO +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_batelle.yml b/src/licensedcode/data/rules/unknown-license-reference_batelle.yml index 224ffecc523..2c7fadfca31 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_batelle.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_batelle.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_reference: yes referenced_filenames: - LICENSE.txt +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_dual-licensed.yml b/src/licensedcode/data/rules/unknown-license-reference_dual-licensed.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_dual-licensed.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_dual-licensed.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_not-a-license_259.yml b/src/licensedcode/data/rules/unknown-license-reference_not-a-license_259.yml index a8c0ad77d88..e179d5e7d8d 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_not-a-license_259.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_not-a-license_259.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes notes: Seen in a debian copyright for KDE code +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_nuget_url_115.yml b/src/licensedcode/data/rules/unknown-license-reference_nuget_url_115.yml index 63067fbbb9b..3b5ad842e89 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_nuget_url_115.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_nuget_url_115.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://github.com/enisn/Xamarin.Forms.Contacts +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_nuget_url_13.yml b/src/licensedcode/data/rules/unknown-license-reference_nuget_url_13.yml index c1794770735..446447d5a8a 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_nuget_url_13.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_nuget_url_13.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://go.microsoft.com/fwlink/?LinkId=210218 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_nuget_url_172.yml b/src/licensedcode/data/rules/unknown-license-reference_nuget_url_172.yml index 6bfea779f73..ed5e54580e7 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_nuget_url_172.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_nuget_url_172.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://github.com/medalinouira/Xamarin.Forms.Navigation +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_nuget_url_220.yml b/src/licensedcode/data/rules/unknown-license-reference_nuget_url_220.yml index 9551ba6c96e..6a49c6b5ea9 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_nuget_url_220.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_nuget_url_220.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://github.com/srjohn/johnson.net +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_nuget_url_24.yml b/src/licensedcode/data/rules/unknown-license-reference_nuget_url_24.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_nuget_url_24.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_nuget_url_24.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_nuget_url_249.yml b/src/licensedcode/data/rules/unknown-license-reference_nuget_url_249.yml index ffa42f6cfa6..7975bc2529a 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_nuget_url_249.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_nuget_url_249.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://gitlab.com/czubehead/csharp-aes/blob/master/LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_nuget_url_25.yml b/src/licensedcode/data/rules/unknown-license-reference_nuget_url_25.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_nuget_url_25.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_nuget_url_25.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_nuget_url_251.yml b/src/licensedcode/data/rules/unknown-license-reference_nuget_url_251.yml index 8f042c3f224..5772f9396fa 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_nuget_url_251.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_nuget_url_251.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://go.microsoft.com/fwlink/?LinkID=267589&clcid=0x404 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_nuget_url_252.yml b/src/licensedcode/data/rules/unknown-license-reference_nuget_url_252.yml index 80c228f184c..fc64b7d498d 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_nuget_url_252.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_nuget_url_252.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://go.microsoft.com/fwlink/?LinkID=267589&clcid=0x410 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_nuget_url_258.yml b/src/licensedcode/data/rules/unknown-license-reference_nuget_url_258.yml index 5b829134c0f..388a7d21ac6 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_nuget_url_258.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_nuget_url_258.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://soarus.co.uk/ +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_nuget_url_361.yml b/src/licensedcode/data/rules/unknown-license-reference_nuget_url_361.yml index 2e3fe3d7db8..1146c1dfebd 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_nuget_url_361.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_nuget_url_361.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://unitoolkit.com/ +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_nuget_url_365.yml b/src/licensedcode/data/rules/unknown-license-reference_nuget_url_365.yml index 2de75611dc3..5a947107ac4 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_nuget_url_365.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_nuget_url_365.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://wicresoft.azurewebsites.net/ +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_nuget_url_419.yml b/src/licensedcode/data/rules/unknown-license-reference_nuget_url_419.yml index 40f8dd26c88..1c85b83c4d3 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_nuget_url_419.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_nuget_url_419.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://www.scict.ir/ +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_nuget_url_420.yml b/src/licensedcode/data/rules/unknown-license-reference_nuget_url_420.yml index 467990f09ec..f338ee9ea02 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_nuget_url_420.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_nuget_url_420.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://www.skewworks.com/netmf/ctr +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_nuget_url_422.yml b/src/licensedcode/data/rules/unknown-license-reference_nuget_url_422.yml index 2e2852f77fc..89341cb4e22 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_nuget_url_422.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_nuget_url_422.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - http://www.systemcoreplus.com/ +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_nuget_url_96.yml b/src/licensedcode/data/rules/unknown-license-reference_nuget_url_96.yml index 7e9dae3a0c0..7b4415db41d 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_nuget_url_96.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_nuget_url_96.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 ignorable_urls: - https://github.com/Coding-Keeda +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_see-license_1.yml b/src/licensedcode/data/rules/unknown-license-reference_see-license_1.yml index bd9da30c7ac..9b0ba3dc560 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_see-license_1.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_see-license_1.yml @@ -5,3 +5,4 @@ minimum_coverage: 100 only_known_words: yes referenced_filenames: - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_see-license_2.yml b/src/licensedcode/data/rules/unknown-license-reference_see-license_2.yml index 6857d124e06..58285442d53 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_see-license_2.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_see-license_2.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - LICENCE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_see_license_at_end.yml b/src/licensedcode/data/rules/unknown-license-reference_see_license_at_end.yml index 5cd26bff9ce..e06be044a40 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_see_license_at_end.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_see_license_at_end.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 minimum_coverage: 100 only_known_words: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_unknown_29.yml b/src/licensedcode/data/rules/unknown-license-reference_unknown_29.yml index f2d2df54344..174d17cba95 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_unknown_29.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_unknown_29.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_reference: yes referenced_filenames: - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_unknown_58.yml b/src/licensedcode/data/rules/unknown-license-reference_unknown_58.yml index 860533f28a3..03f41dc8bfb 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_unknown_58.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_unknown_58.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_reference: yes referenced_filenames: - license.txt +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown-license-reference_unknown_61.yml b/src/licensedcode/data/rules/unknown-license-reference_unknown_61.yml index d72e93d5daf..3cc511dd77f 100644 --- a/src/licensedcode/data/rules/unknown-license-reference_unknown_61.yml +++ b/src/licensedcode/data/rules/unknown-license-reference_unknown_61.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 100 referenced_filenames: - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_1.yml b/src/licensedcode/data/rules/unknown_1.yml index dbd67a903bb..2e56238b0f9 100644 --- a/src/licensedcode/data/rules/unknown_1.yml +++ b/src/licensedcode/data/rules/unknown_1.yml @@ -2,3 +2,4 @@ license_expression: unknown is_license_reference: yes relevance: 100 minimum_coverage: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_10.yml b/src/licensedcode/data/rules/unknown_10.yml index 6e26383261e..101111ba700 100644 --- a/src/licensedcode/data/rules/unknown_10.yml +++ b/src/licensedcode/data/rules/unknown_10.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 minimum_coverage: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_11.yml b/src/licensedcode/data/rules/unknown_11.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown_11.yml +++ b/src/licensedcode/data/rules/unknown_11.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_12.yml b/src/licensedcode/data/rules/unknown_12.yml index 5a2b0158f1c..ebae5a6da97 100644 --- a/src/licensedcode/data/rules/unknown_12.yml +++ b/src/licensedcode/data/rules/unknown_12.yml @@ -2,3 +2,4 @@ license_expression: unknown-license-reference is_license_intro: yes relevance: 100 minimum_coverage: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_14.yml b/src/licensedcode/data/rules/unknown_14.yml index 78031a74f1b..1e8bf0e526b 100644 --- a/src/licensedcode/data/rules/unknown_14.yml +++ b/src/licensedcode/data/rules/unknown_14.yml @@ -2,3 +2,4 @@ license_expression: unknown is_license_tag: yes relevance: 100 minimum_coverage: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_15.yml b/src/licensedcode/data/rules/unknown_15.yml index dbd67a903bb..2e56238b0f9 100644 --- a/src/licensedcode/data/rules/unknown_15.yml +++ b/src/licensedcode/data/rules/unknown_15.yml @@ -2,3 +2,4 @@ license_expression: unknown is_license_reference: yes relevance: 100 minimum_coverage: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_17.yml b/src/licensedcode/data/rules/unknown_17.yml index fc3d42b20a1..29434fd8d1d 100644 --- a/src/licensedcode/data/rules/unknown_17.yml +++ b/src/licensedcode/data/rules/unknown_17.yml @@ -3,3 +3,4 @@ is_license_notice: yes relevance: 100 referenced_filenames: - LICENSE +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_18.yml b/src/licensedcode/data/rules/unknown_18.yml index eb9a5834644..398048b6f63 100644 --- a/src/licensedcode/data/rules/unknown_18.yml +++ b/src/licensedcode/data/rules/unknown_18.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_notice: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_2.yml b/src/licensedcode/data/rules/unknown_2.yml index a4b53f9ce16..d65329e9194 100644 --- a/src/licensedcode/data/rules/unknown_2.yml +++ b/src/licensedcode/data/rules/unknown_2.yml @@ -1,3 +1,4 @@ license_expression: unknown is_license_notice: yes minimum_coverage: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_22.yml b/src/licensedcode/data/rules/unknown_22.yml index 97039c1478a..8e917bc48f2 100644 --- a/src/licensedcode/data/rules/unknown_22.yml +++ b/src/licensedcode/data/rules/unknown_22.yml @@ -1,3 +1,4 @@ license_expression: unknown is_license_notice: yes notes: found in https://github.com/CERTCC/trommel +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_23.yml b/src/licensedcode/data/rules/unknown_23.yml index d5b6d5f3976..18f36d633ae 100644 --- a/src/licensedcode/data/rules/unknown_23.yml +++ b/src/licensedcode/data/rules/unknown_23.yml @@ -4,3 +4,4 @@ ignorable_authors: - the National Center for Atmospheric Research notes: seen with FFpack at https://github.com/notlion/libluaav-wip/blob/master/gamma/fftpack%2B%2B2.cpp technically since this is a US agency, it may be public domain in the US. +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_24.yml b/src/licensedcode/data/rules/unknown_24.yml index 6e3e9932b7d..ac3bea78cf5 100644 --- a/src/licensedcode/data/rules/unknown_24.yml +++ b/src/licensedcode/data/rules/unknown_24.yml @@ -1,2 +1,3 @@ license_expression: unknown is_license_reference: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_3.yml b/src/licensedcode/data/rules/unknown_3.yml index f40529c09f7..3578ecbd7a0 100644 --- a/src/licensedcode/data/rules/unknown_3.yml +++ b/src/licensedcode/data/rules/unknown_3.yml @@ -1,3 +1,4 @@ license_expression: unknown is_license_reference: yes notes: seen in BCM code +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_32.yml b/src/licensedcode/data/rules/unknown_32.yml index 52bb4672d3a..922bd705370 100644 --- a/src/licensedcode/data/rules/unknown_32.yml +++ b/src/licensedcode/data/rules/unknown_32.yml @@ -1,3 +1,4 @@ license_expression: unknown is_license_reference: yes minimum_coverage: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_35.yml b/src/licensedcode/data/rules/unknown_35.yml index 6e3e9932b7d..ac3bea78cf5 100644 --- a/src/licensedcode/data/rules/unknown_35.yml +++ b/src/licensedcode/data/rules/unknown_35.yml @@ -1,2 +1,3 @@ license_expression: unknown is_license_reference: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_36.yml b/src/licensedcode/data/rules/unknown_36.yml index 6e3e9932b7d..ac3bea78cf5 100644 --- a/src/licensedcode/data/rules/unknown_36.yml +++ b/src/licensedcode/data/rules/unknown_36.yml @@ -1,2 +1,3 @@ license_expression: unknown is_license_reference: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_4.yml b/src/licensedcode/data/rules/unknown_4.yml index 180675ce5e2..67772bd5967 100644 --- a/src/licensedcode/data/rules/unknown_4.yml +++ b/src/licensedcode/data/rules/unknown_4.yml @@ -3,3 +3,4 @@ is_license_tag: yes relevance: 100 minimum_coverage: 100 notes: Used in brew for things that cannot be set in an SPDX expression +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_44.yml b/src/licensedcode/data/rules/unknown_44.yml index f78ec5c22fc..267d4844b5a 100644 --- a/src/licensedcode/data/rules/unknown_44.yml +++ b/src/licensedcode/data/rules/unknown_44.yml @@ -2,3 +2,4 @@ license_expression: free-unknown is_license_tag: yes relevance: 60 notes: Creative commons tag seen in RDF or XML documents +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_45.yml b/src/licensedcode/data/rules/unknown_45.yml index 050b0024dbb..76c7f1761e9 100644 --- a/src/licensedcode/data/rules/unknown_45.yml +++ b/src/licensedcode/data/rules/unknown_45.yml @@ -2,3 +2,4 @@ license_expression: unknown is_license_reference: yes relevance: 70 notes: seen in docbook documentations +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_47.yml b/src/licensedcode/data/rules/unknown_47.yml index abcaebbb185..fe6b7b95c04 100644 --- a/src/licensedcode/data/rules/unknown_47.yml +++ b/src/licensedcode/data/rules/unknown_47.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 70 ignorable_urls: - http://creativecommons.org/ns#Reproduction +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_48.yml b/src/licensedcode/data/rules/unknown_48.yml index a40a95019c6..3f4a62dac36 100644 --- a/src/licensedcode/data/rules/unknown_48.yml +++ b/src/licensedcode/data/rules/unknown_48.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 70 ignorable_urls: - http://creativecommons.org/ns#Distribution +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_49.yml b/src/licensedcode/data/rules/unknown_49.yml index b7ff50b330c..e3906d3096f 100644 --- a/src/licensedcode/data/rules/unknown_49.yml +++ b/src/licensedcode/data/rules/unknown_49.yml @@ -3,3 +3,4 @@ is_license_reference: yes relevance: 70 ignorable_urls: - http://creativecommons.org/ns#DerivativeWorks +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_5.yml b/src/licensedcode/data/rules/unknown_5.yml index 03a1c6b4e53..34801c5ea91 100644 --- a/src/licensedcode/data/rules/unknown_5.yml +++ b/src/licensedcode/data/rules/unknown_5.yml @@ -2,3 +2,4 @@ license_expression: unknown is_license_notice: yes relevance: 100 minimum_coverage: 90 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_50.yml b/src/licensedcode/data/rules/unknown_50.yml index b3a9a3a7aab..80278eee013 100644 --- a/src/licensedcode/data/rules/unknown_50.yml +++ b/src/licensedcode/data/rules/unknown_50.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 70 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_54.yml b/src/licensedcode/data/rules/unknown_54.yml index 6e3e9932b7d..ac3bea78cf5 100644 --- a/src/licensedcode/data/rules/unknown_54.yml +++ b/src/licensedcode/data/rules/unknown_54.yml @@ -1,2 +1,3 @@ license_expression: unknown is_license_reference: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_55.yml b/src/licensedcode/data/rules/unknown_55.yml index 6e3e9932b7d..ac3bea78cf5 100644 --- a/src/licensedcode/data/rules/unknown_55.yml +++ b/src/licensedcode/data/rules/unknown_55.yml @@ -1,2 +1,3 @@ license_expression: unknown is_license_reference: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_56.yml b/src/licensedcode/data/rules/unknown_56.yml index 6e3e9932b7d..ac3bea78cf5 100644 --- a/src/licensedcode/data/rules/unknown_56.yml +++ b/src/licensedcode/data/rules/unknown_56.yml @@ -1,2 +1,3 @@ license_expression: unknown is_license_reference: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_7.yml b/src/licensedcode/data/rules/unknown_7.yml index ddd0ee2c1d7..43b2442ebac 100644 --- a/src/licensedcode/data/rules/unknown_7.yml +++ b/src/licensedcode/data/rules/unknown_7.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_71.yml b/src/licensedcode/data/rules/unknown_71.yml index 6e3e9932b7d..ac3bea78cf5 100644 --- a/src/licensedcode/data/rules/unknown_71.yml +++ b/src/licensedcode/data/rules/unknown_71.yml @@ -1,2 +1,3 @@ license_expression: unknown is_license_reference: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_8.yml b/src/licensedcode/data/rules/unknown_8.yml index 6e3e9932b7d..ac3bea78cf5 100644 --- a/src/licensedcode/data/rules/unknown_8.yml +++ b/src/licensedcode/data/rules/unknown_8.yml @@ -1,2 +1,3 @@ license_expression: unknown is_license_reference: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_9.yml b/src/licensedcode/data/rules/unknown_9.yml index d22a7b8a719..121115866b2 100644 --- a/src/licensedcode/data/rules/unknown_9.yml +++ b/src/licensedcode/data/rules/unknown_9.yml @@ -1,2 +1,3 @@ license_expression: unknown is_license_tag: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_and_gpl-2.0-plus_1.yml b/src/licensedcode/data/rules/unknown_and_gpl-2.0-plus_1.yml index bd584c2a97a..c1192418cbf 100644 --- a/src/licensedcode/data/rules/unknown_and_gpl-2.0-plus_1.yml +++ b/src/licensedcode/data/rules/unknown_and_gpl-2.0-plus_1.yml @@ -1,3 +1,4 @@ license_expression: unknown AND gpl-2.0-plus is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_and_gpl-2.0-plus_or_lgpl-2.0-plus_1.yml b/src/licensedcode/data/rules/unknown_and_gpl-2.0-plus_or_lgpl-2.0-plus_1.yml index 1d1e6a0e879..87d618daf86 100644 --- a/src/licensedcode/data/rules/unknown_and_gpl-2.0-plus_or_lgpl-2.0-plus_1.yml +++ b/src/licensedcode/data/rules/unknown_and_gpl-2.0-plus_or_lgpl-2.0-plus_1.yml @@ -1,3 +1,4 @@ license_expression: unknown AND (gpl-2.0-plus OR lgpl-2.0-plus) is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_free_1.yml b/src/licensedcode/data/rules/unknown_free_1.yml index f9ec98f29c1..30b7ccf4e83 100644 --- a/src/licensedcode/data/rules/unknown_free_1.yml +++ b/src/licensedcode/data/rules/unknown_free_1.yml @@ -1,3 +1,4 @@ license_expression: unknown is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_free_2.yml b/src/licensedcode/data/rules/unknown_free_2.yml index f9ec98f29c1..30b7ccf4e83 100644 --- a/src/licensedcode/data/rules/unknown_free_2.yml +++ b/src/licensedcode/data/rules/unknown_free_2.yml @@ -1,3 +1,4 @@ license_expression: unknown is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_french_1.yml b/src/licensedcode/data/rules/unknown_french_1.yml index 787fb38f8d7..0bd1dec3cdc 100644 --- a/src/licensedcode/data/rules/unknown_french_1.yml +++ b/src/licensedcode/data/rules/unknown_french_1.yml @@ -3,3 +3,4 @@ is_license_notice: yes relevance: 80 minimum_coverage: 90 notes: in french +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_german_1.yml b/src/licensedcode/data/rules/unknown_german_1.yml index 3f5a48f289e..2d2a8ffdd4a 100644 --- a/src/licensedcode/data/rules/unknown_german_1.yml +++ b/src/licensedcode/data/rules/unknown_german_1.yml @@ -1,3 +1,3 @@ license_expression: unknown is_license_reference: yes -notes: in german \ No newline at end of file +notes: in germanis_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_gpl-3.0_15.yml b/src/licensedcode/data/rules/unknown_gpl-3.0_15.yml index 6e3e9932b7d..ac3bea78cf5 100644 --- a/src/licensedcode/data/rules/unknown_gpl-3.0_15.yml +++ b/src/licensedcode/data/rules/unknown_gpl-3.0_15.yml @@ -1,2 +1,3 @@ license_expression: unknown is_license_reference: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_kernel.yml b/src/licensedcode/data/rules/unknown_kernel.yml index da0f5ff5c3f..02315c45974 100644 --- a/src/licensedcode/data/rules/unknown_kernel.yml +++ b/src/licensedcode/data/rules/unknown_kernel.yml @@ -1,3 +1,4 @@ license_expression: unknown is_license_reference: yes notes: Seen in the kernel +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_kernel10.yml b/src/licensedcode/data/rules/unknown_kernel10.yml index da0f5ff5c3f..02315c45974 100644 --- a/src/licensedcode/data/rules/unknown_kernel10.yml +++ b/src/licensedcode/data/rules/unknown_kernel10.yml @@ -1,3 +1,4 @@ license_expression: unknown is_license_reference: yes notes: Seen in the kernel +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_kernel11.yml b/src/licensedcode/data/rules/unknown_kernel11.yml index da0f5ff5c3f..02315c45974 100644 --- a/src/licensedcode/data/rules/unknown_kernel11.yml +++ b/src/licensedcode/data/rules/unknown_kernel11.yml @@ -1,3 +1,4 @@ license_expression: unknown is_license_reference: yes notes: Seen in the kernel +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_kernel12.yml b/src/licensedcode/data/rules/unknown_kernel12.yml index 25350efbbd5..2c82170a544 100644 --- a/src/licensedcode/data/rules/unknown_kernel12.yml +++ b/src/licensedcode/data/rules/unknown_kernel12.yml @@ -3,3 +3,4 @@ is_license_notice: yes notes: Seen in the kernel ignorable_authors: - Intel Corporation. Intel +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_kernel13.yml b/src/licensedcode/data/rules/unknown_kernel13.yml index 25350efbbd5..2c82170a544 100644 --- a/src/licensedcode/data/rules/unknown_kernel13.yml +++ b/src/licensedcode/data/rules/unknown_kernel13.yml @@ -3,3 +3,4 @@ is_license_notice: yes notes: Seen in the kernel ignorable_authors: - Intel Corporation. Intel +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_kernel2.yml b/src/licensedcode/data/rules/unknown_kernel2.yml index 0d113e49ce9..ef7845f053b 100644 --- a/src/licensedcode/data/rules/unknown_kernel2.yml +++ b/src/licensedcode/data/rules/unknown_kernel2.yml @@ -1,3 +1,4 @@ license_expression: unknown is_license_notice: yes notes: Seen in the kernel +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_kernel3.yml b/src/licensedcode/data/rules/unknown_kernel3.yml index da0f5ff5c3f..02315c45974 100644 --- a/src/licensedcode/data/rules/unknown_kernel3.yml +++ b/src/licensedcode/data/rules/unknown_kernel3.yml @@ -1,3 +1,4 @@ license_expression: unknown is_license_reference: yes notes: Seen in the kernel +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_kernel4.yml b/src/licensedcode/data/rules/unknown_kernel4.yml index f9ec98f29c1..30b7ccf4e83 100644 --- a/src/licensedcode/data/rules/unknown_kernel4.yml +++ b/src/licensedcode/data/rules/unknown_kernel4.yml @@ -1,3 +1,4 @@ license_expression: unknown is_license_reference: yes relevance: 100 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_kernel6.yml b/src/licensedcode/data/rules/unknown_kernel6.yml index da0f5ff5c3f..02315c45974 100644 --- a/src/licensedcode/data/rules/unknown_kernel6.yml +++ b/src/licensedcode/data/rules/unknown_kernel6.yml @@ -1,3 +1,4 @@ license_expression: unknown is_license_reference: yes notes: Seen in the kernel +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_kernel7.yml b/src/licensedcode/data/rules/unknown_kernel7.yml index da0f5ff5c3f..02315c45974 100644 --- a/src/licensedcode/data/rules/unknown_kernel7.yml +++ b/src/licensedcode/data/rules/unknown_kernel7.yml @@ -1,3 +1,4 @@ license_expression: unknown is_license_reference: yes notes: Seen in the kernel +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_kernel9.yml b/src/licensedcode/data/rules/unknown_kernel9.yml index da0f5ff5c3f..02315c45974 100644 --- a/src/licensedcode/data/rules/unknown_kernel9.yml +++ b/src/licensedcode/data/rules/unknown_kernel9.yml @@ -1,3 +1,4 @@ license_expression: unknown is_license_reference: yes notes: Seen in the kernel +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_kernel_and_bsd-new.yml b/src/licensedcode/data/rules/unknown_kernel_and_bsd-new.yml index 612606d8533..263245bb73b 100644 --- a/src/licensedcode/data/rules/unknown_kernel_and_bsd-new.yml +++ b/src/licensedcode/data/rules/unknown_kernel_and_bsd-new.yml @@ -1,2 +1,3 @@ license_expression: bsd-new AND unknown is_license_reference: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_kernel_and_bsd-new_and_gpl-2.0.yml b/src/licensedcode/data/rules/unknown_kernel_and_bsd-new_and_gpl-2.0.yml index 5488661556c..bef26dccaf2 100644 --- a/src/licensedcode/data/rules/unknown_kernel_and_bsd-new_and_gpl-2.0.yml +++ b/src/licensedcode/data/rules/unknown_kernel_and_bsd-new_and_gpl-2.0.yml @@ -1,2 +1,3 @@ license_expression: (gpl-2.0 OR bsd-new) AND unknown is_license_reference: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_kernel_and_gpl-2.0-plus.yml b/src/licensedcode/data/rules/unknown_kernel_and_gpl-2.0-plus.yml index 9c9563482f8..17b9a935393 100644 --- a/src/licensedcode/data/rules/unknown_kernel_and_gpl-2.0-plus.yml +++ b/src/licensedcode/data/rules/unknown_kernel_and_gpl-2.0-plus.yml @@ -1,3 +1,4 @@ license_expression: unknown AND gpl-2.0-plus is_license_reference: yes notes: Seen in the kernel +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_kernel_and_gpl-2.0-plus2.yml b/src/licensedcode/data/rules/unknown_kernel_and_gpl-2.0-plus2.yml index 491cf895d7a..295f06694cc 100644 --- a/src/licensedcode/data/rules/unknown_kernel_and_gpl-2.0-plus2.yml +++ b/src/licensedcode/data/rules/unknown_kernel_and_gpl-2.0-plus2.yml @@ -4,3 +4,4 @@ referenced_filenames: - COPYING - /usr/doc/copyright/GPL notes: Seen in the kernel +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_kernel_and_gpl-2.0-plus3.yml b/src/licensedcode/data/rules/unknown_kernel_and_gpl-2.0-plus3.yml index 9c9563482f8..17b9a935393 100644 --- a/src/licensedcode/data/rules/unknown_kernel_and_gpl-2.0-plus3.yml +++ b/src/licensedcode/data/rules/unknown_kernel_and_gpl-2.0-plus3.yml @@ -1,3 +1,4 @@ license_expression: unknown AND gpl-2.0-plus is_license_reference: yes notes: Seen in the kernel +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_kernel_and_gpl-2.0-plus6.yml b/src/licensedcode/data/rules/unknown_kernel_and_gpl-2.0-plus6.yml index a1b783ed1bf..c0656635c88 100644 --- a/src/licensedcode/data/rules/unknown_kernel_and_gpl-2.0-plus6.yml +++ b/src/licensedcode/data/rules/unknown_kernel_and_gpl-2.0-plus6.yml @@ -1,2 +1,3 @@ license_expression: gpl-2.0-plus AND unknown is_license_reference: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_kernel_and_gpl-2.0.yml b/src/licensedcode/data/rules/unknown_kernel_and_gpl-2.0.yml index 971f5fda74a..c2876436bf0 100644 --- a/src/licensedcode/data/rules/unknown_kernel_and_gpl-2.0.yml +++ b/src/licensedcode/data/rules/unknown_kernel_and_gpl-2.0.yml @@ -1,2 +1,3 @@ license_expression: gpl-2.0 AND unknown is_license_reference: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_kernel_and_gpl-2.0_1.yml b/src/licensedcode/data/rules/unknown_kernel_and_gpl-2.0_1.yml index 971f5fda74a..c2876436bf0 100644 --- a/src/licensedcode/data/rules/unknown_kernel_and_gpl-2.0_1.yml +++ b/src/licensedcode/data/rules/unknown_kernel_and_gpl-2.0_1.yml @@ -1,2 +1,3 @@ license_expression: gpl-2.0 AND unknown is_license_reference: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_kernel_and_gpl-2.0_2.yml b/src/licensedcode/data/rules/unknown_kernel_and_gpl-2.0_2.yml index 4911655412d..1a408143bd8 100644 --- a/src/licensedcode/data/rules/unknown_kernel_and_gpl-2.0_2.yml +++ b/src/licensedcode/data/rules/unknown_kernel_and_gpl-2.0_2.yml @@ -4,3 +4,4 @@ referenced_filenames: - /usr/doc/copyright/GPL - COPYING notes: there is an explicit reference to COPYING in linux, hence a GPL-2.0 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_license_other_12.yml b/src/licensedcode/data/rules/unknown_license_other_12.yml index c56a327ec16..06dca60417a 100644 --- a/src/licensedcode/data/rules/unknown_license_other_12.yml +++ b/src/licensedcode/data/rules/unknown_license_other_12.yml @@ -1,3 +1,4 @@ license_expression: unknown-license-reference is_license_reference: yes relevance: 80 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_no_perm.yml b/src/licensedcode/data/rules/unknown_no_perm.yml index 077d7a8b738..70469d4d791 100644 --- a/src/licensedcode/data/rules/unknown_no_perm.yml +++ b/src/licensedcode/data/rules/unknown_no_perm.yml @@ -1,3 +1,4 @@ license_expression: unknown is_license_notice: yes relevance: 90 +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_not_gpl-2.0_193.yml b/src/licensedcode/data/rules/unknown_not_gpl-2.0_193.yml index 3badfd2733f..3b33b2ded78 100644 --- a/src/licensedcode/data/rules/unknown_not_gpl-2.0_193.yml +++ b/src/licensedcode/data/rules/unknown_not_gpl-2.0_193.yml @@ -4,3 +4,4 @@ referenced_filenames: - COPYING notes: Seen in Intel e100 GPL-licensed linux driver... but here there is no license stated and when the Intel ref is not there, we cannot conclude to a license. +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unknown_or_proprietary-license_1.yml b/src/licensedcode/data/rules/unknown_or_proprietary-license_1.yml index 4de79d1d6ea..5d597ca8c6a 100644 --- a/src/licensedcode/data/rules/unknown_or_proprietary-license_1.yml +++ b/src/licensedcode/data/rules/unknown_or_proprietary-license_1.yml @@ -1,3 +1,4 @@ license_expression: unknown OR proprietary-license is_license_notice: yes notes: see http://www.skybuilders.com/Products/dual_license/ +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/unlicense_and_unknown-license-reference_1.yml b/src/licensedcode/data/rules/unlicense_and_unknown-license-reference_1.yml index 93d13134aa8..1a74919db45 100644 --- a/src/licensedcode/data/rules/unlicense_and_unknown-license-reference_1.yml +++ b/src/licensedcode/data/rules/unlicense_and_unknown-license-reference_1.yml @@ -3,3 +3,4 @@ is_license_notice: yes relevance: 100 ignorable_urls: - http://unlicense.org/ +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/uoi-ncsa_and_unknown-license-reference_1.yml b/src/licensedcode/data/rules/uoi-ncsa_and_unknown-license-reference_1.yml index bc188440945..b45d9677aca 100644 --- a/src/licensedcode/data/rules/uoi-ncsa_and_unknown-license-reference_1.yml +++ b/src/licensedcode/data/rules/uoi-ncsa_and_unknown-license-reference_1.yml @@ -1,2 +1,3 @@ license_expression: uoi-ncsa AND unknown-license-reference is_license_notice: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/uoi-ncsa_and_unknown-license-reference_2.yml b/src/licensedcode/data/rules/uoi-ncsa_and_unknown-license-reference_2.yml index bc188440945..b45d9677aca 100644 --- a/src/licensedcode/data/rules/uoi-ncsa_and_unknown-license-reference_2.yml +++ b/src/licensedcode/data/rules/uoi-ncsa_and_unknown-license-reference_2.yml @@ -1,2 +1,3 @@ license_expression: uoi-ncsa AND unknown-license-reference is_license_notice: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/warranty-disclaimer_20.yml b/src/licensedcode/data/rules/warranty-disclaimer_20.yml index 6e3e9932b7d..ac3bea78cf5 100644 --- a/src/licensedcode/data/rules/warranty-disclaimer_20.yml +++ b/src/licensedcode/data/rules/warranty-disclaimer_20.yml @@ -1,2 +1,3 @@ license_expression: unknown is_license_reference: yes +is_unknown: yes \ No newline at end of file diff --git a/src/licensedcode/data/rules/warranty-disclaimer_and_unknown-license-reference_1.yml b/src/licensedcode/data/rules/warranty-disclaimer_and_unknown-license-reference_1.yml index aef4cd7c160..b06173ffe16 100644 --- a/src/licensedcode/data/rules/warranty-disclaimer_and_unknown-license-reference_1.yml +++ b/src/licensedcode/data/rules/warranty-disclaimer_and_unknown-license-reference_1.yml @@ -4,3 +4,4 @@ relevance: 100 referenced_filenames: - COPYING - COPYING.LIB +is_unknown: yes \ No newline at end of file From 4c423e468e79b650fa426d65c5502b1571bca0a1 Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Wed, 9 Jun 2021 21:43:00 +0530 Subject: [PATCH 483/709] Add consistency check for debian copyright files Add functions to check consistency of a debian copuright file, which if enabled, raises an exception in the following cases: - Unstructured File - Has other paragraphs detected - Has dupicate license paragraphs - Has paragraphs with license but not license name - All licenses in license paragraphs are not used - License expressions are not parsable Signed-off-by: Ayan Sinha Mahapatra --- src/packagedcode/debian_copyright.py | 208 ++++++++++++++---- .../test_all_licenses_not_used | 24 ++ .../crafted_for_tests/test_license_nameless | 24 ++ .../crafted_for_tests/test_license_with_names | 24 ++ .../test_licenses_unparsable | 21 ++ tests/packagedcode/test_debian_copyright.py | 52 ++++- 6 files changed, 314 insertions(+), 39 deletions(-) create mode 100644 tests/packagedcode/data/debian/copyright/crafted_for_tests/test_all_licenses_not_used create mode 100644 tests/packagedcode/data/debian/copyright/crafted_for_tests/test_license_nameless create mode 100644 tests/packagedcode/data/debian/copyright/crafted_for_tests/test_license_with_names create mode 100644 tests/packagedcode/data/debian/copyright/crafted_for_tests/test_licenses_unparsable diff --git a/src/packagedcode/debian_copyright.py b/src/packagedcode/debian_copyright.py index 2ec7f533a87..88d4106170f 100644 --- a/src/packagedcode/debian_copyright.py +++ b/src/packagedcode/debian_copyright.py @@ -62,45 +62,63 @@ def logger_debug(*args): return logger.debug(" ".join(isinstance(a, str) and a or repr(a) for a in args)) -def parse_copyright_file(location): +def parse_copyright_file(location, check_consistency=False): """ - Return an Obj + Return a DebianDetector Object containing copyright and license detections extracted from the debain copyright file at `location`. + If `check_consistency` is True, check if debian copyright file is consistently + structured according to the guidelines specified at + https://www.debian.org/doc/packaging-manuals/copyright-format/1.0 """ if not location or not location.endswith('copyright'): return if is_machine_readable_copyright(unicode_text(location)): - dc = StructuredCopyrightProcessor.from_file(location=location) + dc = StructuredCopyrightProcessor.from_file( + location=location, + check_consistency=check_consistency, + ) + else: - dc = UnstructuredCopyrightProcessor.from_file(location=location) + dc = UnstructuredCopyrightProcessor.from_file( + location=location, + check_consistency=check_consistency, + ) + + if check_consistency and dc.consistency_errors: + msg = f'Debian Copyright file in not consistent, because of the following: {dc.consistency_errors}' + raise DebianCopyrightStructureError(msg) if TRACE: logger_debug(f'parse_copyright_file: {dc}') return dc - +@attr.s class DebianDetector: # Absolute location of this copyright file location = attr.ib() + # List of consistency error messages if the debian copyright file is not consistent + # This is populated if the `check_consistency` flag in `parse_copyright_file` is set to True. + consistency_errors = attr.ib(default=attr.Factory(list)) + @classmethod def from_file(cls, *args, **kwargs): return NotImplementedError - + def get_copyright(self, *args, **kwargs): """ Return a copyright string suitable to use as a DebianPackage.copyright. """ return NotImplementedError - + def get_license_expression(self, *args, **kwargs): """ Return a license expression string suitable to use as a DebianPackage.license_expression. """ return NotImplementedError - + def get_declared_license(self, *args, **kwargs): """ Return a list of declared license string suitable to use as a DebianPackage.declared_license. @@ -110,30 +128,30 @@ def get_declared_license(self, *args, **kwargs): @attr.s class UnstructuredCopyrightProcessor(DebianDetector): - # Absolute location of this copyright file - location = attr.ib() - # List of LicenseMatches in an unstructured file license_matches = attr.ib(default=attr.Factory(list)) - + # List of detected copyrights in an unstructured file detected_copyrights = attr.ib(default=attr.Factory(list)) @classmethod - def from_file(cls, location): - + def from_file(cls, location, check_consistency=False): + dc = cls(location=location) - + + if check_consistency: + dc.consistency_errors.append(CONSISTENCY_ERROR_MESSAGES['unstructured']) + dc.detected_copyrights = copyright_detector(location) - + content = unicode_text(location) dc.license_matches = get_license_matches(query_string=content) - + return dc def get_declared_license(self, *args, **kwargs): return None - + def get_license_expression(self, filter_licenses=False, *args, **kwargs): matches = self.license_matches if not matches: @@ -149,20 +167,17 @@ def get_copyright(self, *args, **kwargs): @attr.s class StructuredCopyrightProcessor(DebianDetector): - # Absolute location of this copyright file - location = attr.ib() - # List of LicenseDetection objects having license matches from files/header paragraphs license_detections = attr.ib(default=attr.Factory(list)) - + # List of CopyrightDetection objects having copyrights from files/header paragraphs copyright_detections = attr.ib(default=attr.Factory(list)) - + # A cached DebianCopyright object built from the copyright file at location debian_copyright = attr.ib(default=None) @classmethod - def from_file(cls, location): + def from_file(cls, location, check_consistency=False): """ Return a DebianCopyrightFileProcessor object built from debian copyright file at ``location``, or None if this is not a debian copyright file. @@ -178,6 +193,9 @@ def from_file(cls, location): dc.detect_license() dc.detect_copyrights() + if check_consistency: + dc.get_consistentcy_errors() + return dc def get_declared_license( @@ -212,7 +230,7 @@ def get_copyright(self, skip_debian_packaging=False, unique_copyrights=False, *a declarable_copyrights = [] seen_copyrights = set() # TODO: Only Unique Holders (copyright without years) should be reported - + for copyright_detection in self.copyright_detections: if is_paragraph_debian_packaging(copyright_detection.paragraph) and skip_debian_packaging: continue @@ -220,16 +238,15 @@ def get_copyright(self, skip_debian_packaging=False, unique_copyrights=False, *a copyright_detection.paragraph, (CopyrightHeaderParagraph, CopyrightFilesParagraph) ): continue - + if unique_copyrights: for copyright in copyright_detection.copyrights: if copyright not in seen_copyrights: seen_copyrights.add(copyright) declarable_copyrights.append(copyright) continue - + declarable_copyrights.extend(copyright_detection.copyrights) - return '\n'.join(declarable_copyrights) @@ -248,7 +265,7 @@ def detect_copyrights(self): for p in pcs: p = p.dumps() copyrights.append(p) - + copyright_detections.append( CopyrightDetection(paragraph=paragraph, copyrights=copyrights) ) @@ -259,7 +276,7 @@ def detect_copyrights(self): copyright_detections.append( CopyrightDetection(paragraph=None, copyrights=copyrights) ) - + self.copyright_detections = copyright_detections def get_license_expression( @@ -309,7 +326,7 @@ def filter_duplicate_declared_license(paragraphs): filtered.append(paragraph) return filtered - + @staticmethod def filter_duplicate_license_detections(license_detections): """ @@ -410,6 +427,47 @@ def detect_license_in_other_paras(other_paras): return license_detections + def get_consistentcy_errors(self): + + edc = EnhancedDebianCopyright(debian_copyright=self.debian_copyright) + + # Check if other paragraphs are present + if edc.other_paragraphs: + self.consistency_errors.append(CONSISTENCY_ERROR_MESSAGES['other_paras']) + + # Check if there are duplicate license paragraphs + if edc.duplicate_license_paragraphs: + self.consistency_errors.append(CONSISTENCY_ERROR_MESSAGES['duplicate_license']) + + # Check if there are Files/Header/License paragraphs without License names + if edc.license_nameless_paragraphs: + self.consistency_errors.append(CONSISTENCY_ERROR_MESSAGES['license_nameless']) + + # Check if all the Licenses in License paragraphs are used + if not edc.is_all_licenses_used: + self.consistency_errors.append(CONSISTENCY_ERROR_MESSAGES['licenses_unused']) + + # Check if all the License Expressions are parsable and consistent + if not edc.is_all_licenses_expressions_parsable: + self.consistency_errors.append(CONSISTENCY_ERROR_MESSAGES['unparsable_expressions']) + + +CONSISTENCY_ERROR_MESSAGES = { + 'unstructured': 'Debian Copyright File is unstructured', + 'other_paras': ( + 'Paragraphs other than Header/File/License paragraphs present in debian copyright file', + 'or there is a formatting issue in a paragraph', + ), + 'duplicate_license': ( + 'Two License Paragraphs having the same License Name present in debian copyright file', + ), + 'license_nameless': 'Paragraphs without license names present in debian copyright file', + 'licenses_unused': ( + 'Some of the License Paragraphs are not referenced in Files/Header paragraphs', + ), + 'unparsable_expressions': 'Some license expressions present in paragraphs are not valid', +} + class NoLicenseFoundError(Exception): """ @@ -466,7 +524,6 @@ class DebianLicenseSymbol: Debian Copyright File and the corresponding list of LicenseMatch objects. This object is suitable to be used as a license_expression.LicenseSymbolLike object. """ - key = attr.ib() is_exception = attr.ib(default=False) matches = attr.ib(default=attr.Factory(list)) @@ -575,7 +632,7 @@ def from_license_paragraphs(cls, paras_with_license): unparsable_expressions=unparsable_expressions, license_detections=license_detections, ) - + def get_normalized_expression(self, exp): """ Return a LicenseExpression object build from an ``exp`` license expression string. @@ -606,9 +663,9 @@ def get_normalized_expression(self, exp): normalized_expression = get_license_expression_from_matches( license_matches=unknown_matches ) - + return normalized_expression - + @staticmethod def parse_paras_with_license_text(paras_with_license): @@ -744,7 +801,7 @@ def header_paragraph(self): @property def file_paragraphs(self): return self.get_paragraphs_by_type(CopyrightFilesParagraph) - + @property def license_paragraphs(self): return self.get_paragraphs_by_type(CopyrightLicenseParagraph) @@ -789,7 +846,7 @@ def duplicate_license_paragraphs(self): lic_name = paragraph.license.name if not lic_name: continue - + if lic_name not in seen_license_names: seen_license_names.add(lic_name) else: @@ -797,6 +854,82 @@ def duplicate_license_paragraphs(self): return duplicate_license_paras + @property + def license_nameless_paragraphs(self): + + license_nameless_paragraphs = [] + + for paragraph in self.debian_copyright.paragraphs: + if isinstance( + paragraph, + (CopyrightFilesParagraph, CopyrightLicenseParagraph) + ) and paragraph.license and not paragraph.license.name: + license_nameless_paragraphs.append(paragraph) + + return license_nameless_paragraphs + + @property + def is_all_licenses_used(self): + #FIXME: If `lgpl` isn't used but there is `lgpl+` somwhere this wouldn't detect. + # Could be parsed, normalaized and the individual components could be matched exactly. + + expressions_with_text = [] + expressions_without_text = [] + + for paragraph in self.license_paragraphs: + if paragraph.license.name: + expressions_with_text.append(paragraph.license.name) + + for paragraph in self.file_paragraphs: + if paragraph.license.name and not paragraph.license.text: + expressions_without_text.append(paragraph.license.name) + + header_paragraph = self.header_paragraph + if header_paragraph.license.name and not header_paragraph.license.text: + expressions_without_text.append(header_paragraph.license.name) + + for expression_with_text in expressions_with_text: + expression_used = False + + for expression_without_text in expressions_without_text: + + if expression_with_text in expression_without_text: + expression_used = True + + if not expression_used: + return False + + return True + + @property + def is_all_licenses_expressions_parsable(self): + licensing=Licensing() + license_expressions = self.get_all_license_expressions() + + for expression in license_expressions: + if ',' in expression: + expression = clean_debian_comma_logic(expression) + + try: + licensing.parse(expression) + except ExpressionError: + return False + + return True + + def get_all_license_expressions(self): + + license_expressions = [] + + for paragraph in self.debian_copyright.paragraphs: + if isinstance( + paragraph, + (CopyrightHeaderParagraph, CopyrightLicenseParagraph, CopyrightLicenseParagraph) + ) and paragraph.license.name: + license_expressions.append(paragraph.license.name) + + return license_expressions + def copyright_detector(location): """ @@ -963,6 +1096,7 @@ def add_unknown_matches(name, text): return [match] + @attr.s(slots=True, repr=False) class UnknownRule(Rule): """ diff --git a/tests/packagedcode/data/debian/copyright/crafted_for_tests/test_all_licenses_not_used b/tests/packagedcode/data/debian/copyright/crafted_for_tests/test_all_licenses_not_used new file mode 100644 index 00000000000..4a60029b256 --- /dev/null +++ b/tests/packagedcode/data/debian/copyright/crafted_for_tests/test_all_licenses_not_used @@ -0,0 +1,24 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: foo +Upstream-Contact: Someone +Source: http://www.lysator.liu.se/~nisse/nettle/ +Copyright: © 2001-2020 Someone + Some parts are Copyright © the Free Software Foundation and various + people. See below and source code comments for details. +License: GPL-2+ + +Files: * +Copyright: 2001-2020 Someone +License: GPL-2+ + +License: GPL-2+ + This program 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 Software Foundation; either version 2 of the License, or + (at your option) any later version. + +License: LGPL-3+ + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. \ No newline at end of file diff --git a/tests/packagedcode/data/debian/copyright/crafted_for_tests/test_license_nameless b/tests/packagedcode/data/debian/copyright/crafted_for_tests/test_license_nameless new file mode 100644 index 00000000000..fa87c9c20a2 --- /dev/null +++ b/tests/packagedcode/data/debian/copyright/crafted_for_tests/test_license_nameless @@ -0,0 +1,24 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: foo +Upstream-Contact: Someone +Source: http://www.lysator.liu.se/~nisse/nettle/ +Copyright: © 2001-2020 Someone + Some parts are Copyright © the Free Software Foundation and various + people. See below and source code comments for details. +License: LGPL-3+ or GPL-2+ + +Files: * +Copyright: 2001-2020 Someone +License: + +License: GPL-2+ + This program 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 Software Foundation; either version 2 of the License, or + (at your option) any later version. + +License: LGPL-3+ + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. \ No newline at end of file diff --git a/tests/packagedcode/data/debian/copyright/crafted_for_tests/test_license_with_names b/tests/packagedcode/data/debian/copyright/crafted_for_tests/test_license_with_names new file mode 100644 index 00000000000..c1e327dfb9f --- /dev/null +++ b/tests/packagedcode/data/debian/copyright/crafted_for_tests/test_license_with_names @@ -0,0 +1,24 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: foo +Upstream-Contact: Someone +Source: http://www.lysator.liu.se/~nisse/nettle/ +Copyright: © 2001-2020 Someone + Some parts are Copyright © the Free Software Foundation and various + people. See below and source code comments for details. +License: LGPL-3+ or GPL-2+ + +Files: * +Copyright: 2001-2020 Someone +License: LGPL-3+ or GPL-2+ + +License: GPL-2+ + This program 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 Software Foundation; either version 2 of the License, or + (at your option) any later version. + +License: LGPL-3+ + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. \ No newline at end of file diff --git a/tests/packagedcode/data/debian/copyright/crafted_for_tests/test_licenses_unparsable b/tests/packagedcode/data/debian/copyright/crafted_for_tests/test_licenses_unparsable new file mode 100644 index 00000000000..9465008abb7 --- /dev/null +++ b/tests/packagedcode/data/debian/copyright/crafted_for_tests/test_licenses_unparsable @@ -0,0 +1,21 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: foo +Upstream-Contact: Someone +Source: http://www.lysator.liu.se/~nisse/nettle/ +Copyright: © 2001-2020 Someone + Some parts are Copyright © the Free Software Foundation and various + people. See below and source code comments for details. +License: GPL-2+ + +Files: * +Copyright: 2001-2020 Someone +License: warranty disclaimer + +License: GPL-2+ + This program 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 Software Foundation; either version 2 of the License, or + (at your option) any later version. + +License: mit/x11 + mit/x11 license text \ No newline at end of file diff --git a/tests/packagedcode/test_debian_copyright.py b/tests/packagedcode/test_debian_copyright.py index ddc5a0b28a1..41b7710decb 100644 --- a/tests/packagedcode/test_debian_copyright.py +++ b/tests/packagedcode/test_debian_copyright.py @@ -41,7 +41,7 @@ def check_expected_parse_copyright_file( simplify_licenses=False unique_copyrights=True - dc = debian_copyright.parse_copyright_file(location=test_loc) + dc = debian_copyright.parse_copyright_file(location=test_loc, check_consistency=False) declared_license = dc.get_declared_license( filter_licenses=filter_licenses, skip_debian_packaging=skip_debian_packaging, @@ -244,7 +244,55 @@ def test_get_duplicate_license_paras(self): duplicate_paras = edebian_copyright.duplicate_license_paragraphs assert len(duplicate_paras) == 1 duplicate_paras[0].license.name == "GPL-2+" - + + def test_get_license_nameless_paras_with_name(self): + test_file = self.get_test_loc("crafted_for_tests/test_license_with_names") + edebian_copyright = debian_copyright.EnhancedDebianCopyright(debian_copyright=DebianCopyright.from_file(test_file)) + nameless_paras = edebian_copyright.license_nameless_paragraphs + assert len(nameless_paras) == 0 + + def test_get_license_nameless_paras_without_name(self): + test_file = self.get_test_loc("crafted_for_tests/test_license_nameless") + edebian_copyright = debian_copyright.EnhancedDebianCopyright(debian_copyright=DebianCopyright.from_file(test_file)) + nameless_paras = edebian_copyright.license_nameless_paragraphs + assert len(nameless_paras) == 1 + + def test_is_all_licenses_used_all_used(self): + test_file = self.get_test_loc("crafted_for_tests/test_license_with_names") + edebian_copyright = debian_copyright.EnhancedDebianCopyright(debian_copyright=DebianCopyright.from_file(test_file)) + assert edebian_copyright.is_all_licenses_used + + def test_is_all_licenses_used_all_not_used(self): + test_file = self.get_test_loc("crafted_for_tests/test_all_licenses_not_used") + edebian_copyright = debian_copyright.EnhancedDebianCopyright(debian_copyright=DebianCopyright.from_file(test_file)) + assert not edebian_copyright.is_all_licenses_used + + def test_is_all_licenses_expressions_parsable_case_parsable(self): + test_file = self.get_test_loc("crafted_for_tests/test_license_with_names") + edebian_copyright = debian_copyright.EnhancedDebianCopyright(debian_copyright=DebianCopyright.from_file(test_file)) + assert edebian_copyright.is_all_licenses_expressions_parsable + + def test_is_all_licenses_expressions_parsable_case_unparsable(self): + test_file = self.get_test_loc("crafted_for_tests/test_licenses_unparsable") + edebian_copyright = debian_copyright.EnhancedDebianCopyright(debian_copyright=DebianCopyright.from_file(test_file)) + assert not edebian_copyright.is_all_licenses_expressions_parsable + + def test_consistency_structured_copyright_file_inconsistent(self): + test_file = self.get_test_loc("debian-slim-2021-04-07/usr/share/doc/perl-base/copyright") + try: + debian_copyright.parse_copyright_file(location=test_file, check_consistency=True) + self.fail(msg="Exception not raised") + except debian_copyright.DebianCopyrightStructureError: + pass + + def test_consistency_unstructured_copyright_file(self): + test_file = self.get_test_loc("debian-2019-11-15/main/p/pulseaudio/stable_copyright") + try: + debian_copyright.parse_copyright_file(location=test_file, check_consistency=True) + self.fail(msg="Exception not raised") + except debian_copyright.DebianCopyrightStructureError: + pass + def test_if_structured_copyright_file(self): test_file = self.get_test_loc("debian-slim-2021-04-07/usr/share/doc/libhogweed6/copyright") content = debian_copyright.unicode_text(test_file) From bdc5354649b30b736b1f44246dcd79ed060278e8 Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Wed, 9 Jun 2021 21:51:08 +0530 Subject: [PATCH 484/709] Fix test file for appstream Signed-off-by: Ayan Sinha Mahapatra --- .../a/appstream/appstream_0.12.5-1_copyright | 2 +- ...m_0.12.5-1_copyright-detailed.expected.yml | 51 +++++++++++++------ .../appstream_0.12.5-1_copyright.expected.yml | 32 +++++++----- 3 files changed, 57 insertions(+), 28 deletions(-) diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/a/appstream/appstream_0.12.5-1_copyright b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/a/appstream/appstream_0.12.5-1_copyright index 02a5669962b..3596899774c 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/a/appstream/appstream_0.12.5-1_copyright +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/a/appstream/appstream_0.12.5-1_copyright @@ -1,4 +1,4 @@ -t: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: AppStream Upstream-Contact: Matthias Klumpp Source: https://www.freedesktop.org/wiki/Distributions/AppStream/ diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/a/appstream/appstream_0.12.5-1_copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/a/appstream/appstream_0.12.5-1_copyright-detailed.expected.yml index 3ccca50d08a..3a2a63c4826 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/a/appstream/appstream_0.12.5-1_copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/a/appstream/appstream_0.12.5-1_copyright-detailed.expected.yml @@ -1,16 +1,37 @@ -- -- gpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND gpl-2.0-plus - AND gpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND - lgpl-2.1-plus AND lgpl-2.1-plus AND (gpl-2.0-plus AND gpl-3.0) AND lgpl-2.1-plus AND gpl-2.0-plus - AND lgpl-3.0-plus +- - GPL-2+ and LGPL-2.1+ + - LGPL-2.1+ + - LGPL-2.1+ + - GPL-2+ + - GPL-2+ and LGPL-2.1+ + - LGPL-2.1+ + - LGPL-2.1+ + - LGPL-2.1+ + - LGPL-2.1+ + - LGPL-2.1+ + - GPL-2+ + - LGPL-2.1+ +- ((gpl-2.0-plus AND gpl-2.0-plus) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1)) + AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus + AND lgpl-2.1 AND lgpl-2.1) AND (gpl-2.0-plus AND gpl-2.0-plus) AND ((gpl-2.0-plus AND gpl-2.0-plus) + AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1)) AND (lgpl-2.1-plus AND lgpl-2.1-plus + AND lgpl-2.1 AND lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) + AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus + AND lgpl-2.1 AND lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) - | - Copyright 2012-2018, Matthias Klumpp Richard Hughes - Copyright 2012-2018, Matthias Klumpp - Copyright 2016-2018, Aleix Pol Gonzalez 2014-2018, Matthias Klumpp 2014, Sune Vuorela - Copyright 2012-2018, Matthias Klumpp - Copyright 2014-2016, Matthias Klumpp - Copyright 2017, Jan Grulich 2016, Matthias Klumpp - Copyright 2014-2016, Richard Hughes 2012-2017, Matthias Klumpp - Copyright 2016, Richard Hughes - Copyright 2014-2016, Matthias Klumpp 2014, Richard Hughes - Copyright 2017, Matthias Klumpp 2016, Lucas Moura + 2012-2018, Matthias Klumpp + Richard Hughes + 2012-2018, Matthias Klumpp + 2016-2018, Aleix Pol Gonzalez + 2014-2018, Matthias Klumpp + 2014, Sune Vuorela + 2012-2018, Matthias Klumpp + 2014-2016, Matthias Klumpp + 2017, Jan Grulich + 2016, Matthias Klumpp + 2014-2016, Richard Hughes + 2012-2017, Matthias Klumpp + 2016, Richard Hughes + 2014-2016, Matthias Klumpp + 2014, Richard Hughes + 2017, Matthias Klumpp + 2016, Lucas Moura diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/a/appstream/appstream_0.12.5-1_copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/a/appstream/appstream_0.12.5-1_copyright.expected.yml index 992ffadb27f..66e38acc8a9 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/a/appstream/appstream_0.12.5-1_copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/a/appstream/appstream_0.12.5-1_copyright.expected.yml @@ -1,13 +1,21 @@ -- -- gpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.1-plus AND (gpl-2.0-plus AND gpl-3.0) AND lgpl-3.0-plus +- - GPL-2+ and LGPL-2.1+ + - LGPL-2.1+ + - GPL-2+ +- ((gpl-2.0-plus AND gpl-2.0-plus) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1)) + AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (gpl-2.0-plus AND gpl-2.0-plus) - | - Copyright 2012-2018, Matthias Klumpp Richard Hughes - Copyright 2012-2018, Matthias Klumpp - Copyright 2016-2018, Aleix Pol Gonzalez 2014-2018, Matthias Klumpp 2014, Sune Vuorela - Copyright 2012-2018, Matthias Klumpp - Copyright 2014-2016, Matthias Klumpp - Copyright 2017, Jan Grulich 2016, Matthias Klumpp - Copyright 2014-2016, Richard Hughes 2012-2017, Matthias Klumpp - Copyright 2016, Richard Hughes - Copyright 2014-2016, Matthias Klumpp 2014, Richard Hughes - Copyright 2017, Matthias Klumpp 2016, Lucas Moura + 2012-2018, Matthias Klumpp + Richard Hughes + 2016-2018, Aleix Pol Gonzalez + 2014-2018, Matthias Klumpp + 2014, Sune Vuorela + 2014-2016, Matthias Klumpp + 2017, Jan Grulich + 2016, Matthias Klumpp + 2014-2016, Richard Hughes + 2012-2017, Matthias Klumpp + 2016, Richard Hughes + 2014-2016, Matthias Klumpp + 2014, Richard Hughes + 2017, Matthias Klumpp + 2016, Lucas Moura From 4fa04ffbef16ec944d2c0b42f32f2313b0b88b11 Mon Sep 17 00:00:00 2001 From: akugarg Date: Mon, 14 Jun 2021 11:39:13 +0530 Subject: [PATCH 485/709] Add is_unknown flag in data model for unknown licenses Signed-off-by: akugarg --- src/licensedcode/data/rules/unknown_german_1.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/licensedcode/data/rules/unknown_german_1.yml b/src/licensedcode/data/rules/unknown_german_1.yml index 2d2a8ffdd4a..8964c2f1fd0 100644 --- a/src/licensedcode/data/rules/unknown_german_1.yml +++ b/src/licensedcode/data/rules/unknown_german_1.yml @@ -1,3 +1,4 @@ license_expression: unknown is_license_reference: yes -notes: in germanis_unknown: yes \ No newline at end of file +notes: in german +is_unknown: yes \ No newline at end of file From 3dc3c3c817b5a8c87ee8030226c63f7d99dc2a6f Mon Sep 17 00:00:00 2001 From: akugarg Date: Mon, 14 Jun 2021 13:27:45 +0530 Subject: [PATCH 486/709] Add is_unknown flag for unknown-spdx Signed-off-by: akugarg --- src/licensedcode/models.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/licensedcode/models.py b/src/licensedcode/models.py index ac86b0fd5cc..1dd3870f786 100644 --- a/src/licensedcode/models.py +++ b/src/licensedcode/models.py @@ -1467,6 +1467,8 @@ def __attrs_post_init__(self, *args, **kwargs): ) self.license_expression = expression.render() + if "unknown" in self.license_expression: + self.is_unknown = True self.license_expression_object = expression self.is_license_tag = True self.is_small = False From 1d7872d57d794c79bf63b6b5aae7e77c21eaaad8 Mon Sep 17 00:00:00 2001 From: akugarg Date: Tue, 15 Jun 2021 00:12:08 +0530 Subject: [PATCH 487/709] Add a test for validation of rules Signed-off-by: akugarg --- src/licensedcode/models.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/licensedcode/models.py b/src/licensedcode/models.py index 1dd3870f786..f27b69f7bad 100644 --- a/src/licensedcode/models.py +++ b/src/licensedcode/models.py @@ -918,6 +918,11 @@ def validate(self, licensing=None): if not (0 <= self.minimum_coverage <= 100): yield 'Invalid rule minimum_coverage. Should be between 0 and 100.' + if self.is_unknown: + if not "unknown" in license_expression: + yield 'is_unknown rule cannot be true if license does not fall in unknown category.' + + if not is_false_positive: if not (0 <= self.relevance <= 100): yield 'Invalid rule relevance. Should be between 0 and 100.' From 29467b63213b1373e5b1683911939e19a435a591 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Tue, 15 Jun 2021 15:50:40 +0200 Subject: [PATCH 488/709] Replace nltk with pygmars, a simplified subset Signed-off-by: Philippe Ombredanne --- requirements.txt | 2 +- setup-mini.cfg | 2 +- setup.cfg | 2 +- src/cluecode/copyrights.py | 64 ++++++++++++++++++++------------------ 4 files changed, 36 insertions(+), 34 deletions(-) diff --git a/requirements.txt b/requirements.txt index e992e8449a9..d35a90952ce 100644 --- a/requirements.txt +++ b/requirements.txt @@ -34,7 +34,6 @@ license-expression==1.2 lxml==4.6.3 MarkupSafe==2.0.1 more-itertools==8.8.0 -nltk==3.4.5 normality==2.2.2 packageurl-python==0.9.4 packaging==20.9 @@ -50,6 +49,7 @@ publicsuffix2==2.20191221 pyahocorasick==1.4.2 pycparser==2.20 Pygments==2.9.0 +pygmars==0.5.0 pymaven-patch==0.3.0 pyparsing==2.4.7 PyYAML==5.4.1 diff --git a/setup-mini.cfg b/setup-mini.cfg index 518738aa4ad..b95cf91dde1 100644 --- a/setup-mini.cfg +++ b/setup-mini.cfg @@ -76,7 +76,6 @@ install_requires = license_expression >= 1.0 lxml >= 4.6.3, < 5.0.0 MarkupSafe >= 1.0 - nltk >= 3.2, !=3.6, < 4.0 packageurl_python >= 0.9.0 packaging > 20 pdfminer.six >= 20200101 @@ -86,6 +85,7 @@ install_requires = plugincode >= 21.1.21 publicsuffix2 pyahocorasick >= 1.4.0, < 1.5 + pygmars pygments pymaven_patch >= 0.2.8 requests >= 2.7.0, < 3.0.0 diff --git a/setup.cfg b/setup.cfg index e11e9284e4f..9192b1abcbf 100644 --- a/setup.cfg +++ b/setup.cfg @@ -76,7 +76,6 @@ install_requires = license_expression >= 1.0 lxml >= 4.6.3, < 5.0.0 MarkupSafe >= 1.0 - nltk >= 3.2, !=3.6, < 4.0 packageurl_python >= 0.9.0 packaging > 20 pdfminer.six >= 20200101 @@ -86,6 +85,7 @@ install_requires = plugincode >= 21.1.21 publicsuffix2 pyahocorasick >= 1.4.0, < 1.5 + pygmars pygments pymaven_patch >= 0.2.8 requests >= 2.7.0, < 3.0.0 diff --git a/src/cluecode/copyrights.py b/src/cluecode/copyrights.py index 1a80ac2b6f5..22cac1e1e58 100644 --- a/src/cluecode/copyrights.py +++ b/src/cluecode/copyrights.py @@ -14,13 +14,16 @@ from functools import partial from time import time -from cluecode import copyrights_hint +import pygmars + from commoncode.text import toascii from commoncode.text import unixlinesep +from cluecode import copyrights_hint + # Tracing flags TRACE = False or os.environ.get('SCANCODE_DEBUG_COPYRIGHT', False) -# set to 1 to enable nltk deep tracing +# set to 1 to enable pygmars deep tracing TRACE_DEEP = 0 if os.environ.get('SCANCODE_DEBUG_COPYRIGHT_DEEP'): TRACE_DEEP = 1 @@ -50,13 +53,13 @@ def logger_debug(*args): - prepare and cleanup text - identify regions of text that may contain copyright (using hints). These are called "candidates". - - tag the text for parts-of-speech (POS) to identify various copyright - statements parts such as dates, companues, names ("named entities"), etc. - This is done using NLTK POS tagging. + - tag the text to recognize (e.g. lex) parts-of-speech (POS) tags to identify various copyright + statements parts such as dates, companies, names ("named entities"), etc. + This is done using pygmars which contains a lexer derived from NLTK POS tagger. - feed the tagged text to a parsing grammar describing actual copyright - statements (also using NLTK) - - yield copyright statements, holder and authors with start and end line - from the parse tree with some post-detection cleanups. + statements (also using pygmars) and obtain a parse tree. + - Walk the parse tree and yield copyright statements, holder and authors with start + and end line from the parse tree with some extra post-detection cleanups. """ @@ -181,9 +184,8 @@ class CopyrightDetector(object): """ def __init__(self): - import nltk - self.tagger = nltk.RegexpTagger(patterns) - self.chunker = nltk.RegexpParser(grammar, trace=TRACE_DEEP) + self.lexer = pygmars.lex.RegexpLexer(patterns) + self.parser = pygmars.parse.RegexpParser(grammar, trace=TRACE_DEEP) def detect(self, numbered_lines, @@ -207,7 +209,7 @@ def detect(self, ``include_allrights`` is True. - Strip markup from text if ``demarkup`` is True. """ - from nltk.tree import Tree + Tree = pygmars.tree.Tree numbered_lines = list(numbered_lines) if not numbered_lines: return @@ -226,11 +228,11 @@ def detect(self, return # first, POS tag each token using token regexes - tagged_text = self.tagger.tag(tokens) - if TRACE: logger_debug('CopyrightDetector:tagged_text: ' + str(tagged_text)) + lexed_text = self.lexer.lex(tokens) + if TRACE: logger_debug('CopyrightDetector:tagged_text: ' + str(lexed_text)) # then build a parse tree based on tagged tokens - tree = self.chunker.parse(tagged_text) + tree = self.parser.parse(lexed_text) if TRACE: logger_debug('CopyrightDetector:parse tree: ' + str(tree)) as_str = partial(CopyrightDetector.as_str, include_allrights=include_allrights) @@ -1603,7 +1605,7 @@ def as_str(cls, node, ignores=frozenset(), include_allrights=False): ####################################### # All/No/Some Rights Reserved OR All Rights Are Reserved - ALLRIGHTRESERVED: { ? } #allrightsreserved + ALLRIGHTRESERVED: { ? } #allrightsreserved ####################################### @@ -1654,10 +1656,10 @@ def as_str(cls, node, ignores=frozenset(), include_allrights=False): DASHCAPS: { } # INRIA - CIRAD - INRA - COMPANY: { +} #1280 + COMPANY: { +} #1280 # Project Admins leethomason - COMPANY: { +} #1281 + COMPANY: { +} #1281 # the Regents of the University of California COMPANY: {? ?} #130 @@ -1694,7 +1696,7 @@ def as_str(cls, node, ignores=frozenset(), include_allrights=False): # NNP NN NNP NNP COMP COMP') COMPANY: { +} #207 - # was: COMPANY: { ? ? ? ? ? ?} #210 + # was COMPANY { ? ? ? ? ? ?} #210 COMPANY: {+ +} #210 COMPANY: { + ?} #220 COMPANY: {+ } #230 @@ -1767,16 +1769,16 @@ def as_str(cls, node, ignores=frozenset(), include_allrights=False): NAME: { } #483 # Kungliga Tekniska Hogskolan (Royal Institute of Technology, Stockholm, Sweden) - COMPANY: { } #529 + COMPANY: { } #529 # Instituto Nokia de Tecnologia - COMPANY: { } # 5391 + COMPANY: { } # 5391 # Laboratoire MASI - Institut Blaise Pascal - COMPANY: { } #5292 + COMPANY: { } #5292 # Nara Institute of Science and Technology. - COMPANY: { } #5293 + COMPANY: { } #5293 # Instituto Nokia de Tecnologia - INdT COMPANY: { } #52934 @@ -1800,7 +1802,7 @@ def as_str(cls, node, ignores=frozenset(), include_allrights=False): NAME-YEAR: { + ?} #5612 #Academy of Motion Picture Arts and Sciences - NAME: { } # 561 + NAME: { } # 561 # Adam Weinberger and the GNOME Foundation NAME: { } # 565 @@ -1834,12 +1836,12 @@ def as_str(cls, node, ignores=frozenset(), include_allrights=False): NAME: { } #710 NAME: {? } #720 NAME: {} #730 - NAME: { + } #740 + NAME: { + } #740 # by BitRouter - NAME: { } #741 + NAME: { } #741 # Philippe http//nexb.com joe@nexb.com - NAME: { } #742 + NAME: { } #742 # Companies COMPANY: {+ ? ?} #770 @@ -1965,10 +1967,10 @@ def as_str(cls, node, ignores=frozenset(), include_allrights=False): COMPANY: { } #1414 # by the Massachusetts Institute of Technology - COMPANY: { } #1415 + COMPANY: { } #1415 # Computer Systems and Communication Lab, Institute of Information Science, Academia Sinica. - COMPANY: { } #1416 + COMPANY: { } #1416 # Copyright 2007-2010 the original author or authors. # Copyright (c) 2007-2010 the original author or authors. @@ -2093,10 +2095,10 @@ def as_str(cls, node, ignores=frozenset(), include_allrights=False): COPYRIGHT: {+ } #2274 # Copyright (c) 2017 Contributors et.al. - COPYRIGHT: { } #2276 + COPYRIGHT: { } #2276 #Copyright (c) 2020 Contributors as noted in the AUTHORS file - COPYRIGHT: { * ? * } + COPYRIGHT: { * ? * } # copyrighted by Object Computing, Inc., St. Louis Missouri, Copyright (C) 2002, all rights reserved. COPYRIGHT: { + } #2278 From 858574114de4a17a090aaf46f9d7330b2591dc2f Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Tue, 15 Jun 2021 16:05:42 +0200 Subject: [PATCH 489/709] Add CHANGELOG entry on copyrights improvements Signed-off-by: Philippe Ombredanne --- CHANGELOG.rst | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 9b11df8be25..025363943bd 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -39,6 +39,11 @@ Copyright detection: - The data structure in the JSON is now using consistently named attributes as opposed to a plain value. + - The copyright detection speed has been significantly improved with the tests + taking roughly 1/2 of the time to run. This is achieved mostly by replacing + NLTK with a the minimal and simplified subset we need in a new library named + pygmars. + Package detection: ~~~~~~~~~~~~~~~~~~ From a7bbf69f71484a126af0a97ac00a6587bc122c4c Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Tue, 15 Jun 2021 16:14:03 +0200 Subject: [PATCH 490/709] Use correct streamline_scanned_file function Used to clean/streamline scans results in tests before comparison. Signed-off-by: Philippe Ombredanne --- tests/formattedcode/test_output_yaml.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/formattedcode/test_output_yaml.py b/tests/formattedcode/test_output_yaml.py index 2f5b65b1ca9..b627457b6b8 100644 --- a/tests/formattedcode/test_output_yaml.py +++ b/tests/formattedcode/test_output_yaml.py @@ -14,7 +14,7 @@ import saneyaml from commoncode.testcase import FileDrivenTesting -from scancode.cli_test_utils import streamline_scan +from scancode.cli_test_utils import streamline_scanned_file from scancode.cli_test_utils import run_scan_click test_env = FileDrivenTesting() @@ -85,4 +85,4 @@ def load_yaml_results(location): with open(location, encoding='utf-8') as res: scan_results = res.read() scan_results = saneyaml.load(scan_results) - return streamline_scan(scan_results, remove_file_date=True) + return streamline_scanned_file(scan_results, remove_file_date=True) From fabe2d305a16a05a9b5fe798a474638b970cc82e Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Tue, 15 Jun 2021 17:27:07 +0200 Subject: [PATCH 491/709] Format code Signed-off-by: Philippe Ombredanne --- src/formattedcode/output_json.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/formattedcode/output_json.py b/src/formattedcode/output_json.py index f9261c3f449..a33be38c7d7 100644 --- a/src/formattedcode/output_json.py +++ b/src/formattedcode/output_json.py @@ -98,7 +98,12 @@ def write_results(codebase, output_file, pretty=False, **kwargs): close_fd = True # Begin wri'w' JSON to `output_file` - with jsonstreams.Stream(jsonstreams.Type.object, fd=output_file, close_fd=close_fd, **jsonstreams_kwargs) as s: + with jsonstreams.Stream( + jsonstreams.Type.object, + fd=output_file, + close_fd=close_fd, + **jsonstreams_kwargs + ) as s: # Write headers codebase.add_files_count_to_current_header() codebase_headers = codebase.get_headers() From 39519fd84b6c5139d17a56b28fb61facaaa232d8 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Tue, 15 Jun 2021 17:28:26 +0200 Subject: [PATCH 492/709] Introduce new function to cleanup test scan cleanup_scan() is used for both JSON and YAML scans Signed-off-by: Philippe Ombredanne --- src/scancode/cli_test_utils.py | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/src/scancode/cli_test_utils.py b/src/scancode/cli_test_utils.py index 250b35bf0cd..5915025db4d 100644 --- a/src/scancode/cli_test_utils.py +++ b/src/scancode/cli_test_utils.py @@ -17,11 +17,11 @@ def run_scan_plain( - options, - cwd=None, - test_mode=True, - expected_rc=0, - env=None, + options, + cwd=None, + test_mode=True, + expected_rc=0, + env=None, retry=True, ): """ @@ -229,6 +229,22 @@ def load_json_result_from_string(string, remove_file_date=False): return scan_results +def cleanup_scan(scan_results, remove_file_date=False): + """ + Cleanup in place the ``scan_results`` mapping for dates, headers and + other variable data that break tests otherwise. + """ + # clean new headers attributes + streamline_headers(scan_results.get('headers', [])) + # clean file_level attributes + for scanned_file in scan_results['files']: + streamline_scanned_file(scanned_file, remove_file_date) + + # TODO: remove sort, this should no longer be needed + scan_results['files'].sort(key=lambda x: x['path']) + return scan_results + + def streamline_errors(errors): """ Modify the `errors` list in place to make it easier to test From 33d3714f90adcb13cf10ef3451c77b25e2bd2477 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Tue, 15 Jun 2021 17:29:00 +0200 Subject: [PATCH 493/709] Make YAML output work #2208 Signed-off-by: Philippe Ombredanne --- src/formattedcode/output_yaml.py | 15 ++++----------- tests/formattedcode/test_output_yaml.py | 6 +++--- 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/src/formattedcode/output_yaml.py b/src/formattedcode/output_yaml.py index 602890a39bb..367d49c8ac9 100644 --- a/src/formattedcode/output_yaml.py +++ b/src/formattedcode/output_yaml.py @@ -30,7 +30,8 @@ class YamlOutput(OutputPlugin): metavar='FILE', help='Write scan output as YAML to FILE.', help_group=OUTPUT_GROUP, - sort_order=20), + sort_order=20 + ), ] def is_enabled(self, output_yaml, **kwargs): @@ -45,13 +46,5 @@ def write_yaml(results, output_file, **kwargs): """ Write `results` to the `output_file` opened file-like object. """ - close_fd = False - try: - if isinstance(output_file, str): - output_file = open(output_file, 'w') - close_fd = True - output_file.write(saneyaml.dump(results, indent=4)) - output_file.write('\n') - finally: - if close_fd: - output_file.close() + output_file.write(saneyaml.dump(results, indent=4)) + output_file.write('\n') diff --git a/tests/formattedcode/test_output_yaml.py b/tests/formattedcode/test_output_yaml.py index b627457b6b8..106108bd0d1 100644 --- a/tests/formattedcode/test_output_yaml.py +++ b/tests/formattedcode/test_output_yaml.py @@ -14,7 +14,7 @@ import saneyaml from commoncode.testcase import FileDrivenTesting -from scancode.cli_test_utils import streamline_scanned_file +from scancode.cli_test_utils import cleanup_scan from scancode.cli_test_utils import run_scan_click test_env = FileDrivenTesting() @@ -58,7 +58,7 @@ def check_yaml_scan(expected_file, result_file, regen=False): results from `results_file`. This is convenient for updating tests expectations. But use with caution. """ - results = load_yaml_results(result_file) + results = load_yaml_results(result_file) or {} if regen: with open(expected_file, 'w') as reg: reg.write(saneyaml.dump(results)) @@ -85,4 +85,4 @@ def load_yaml_results(location): with open(location, encoding='utf-8') as res: scan_results = res.read() scan_results = saneyaml.load(scan_results) - return streamline_scanned_file(scan_results, remove_file_date=True) + return cleanup_scan(scan_results, remove_file_date=True) From 92a89a945307c14ec5fad8446c81605182a9b1c8 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Tue, 15 Jun 2021 18:03:45 +0200 Subject: [PATCH 494/709] Update tests for improved copyright detection #216 Signed-off-by: Philippe Ombredanne --- src/licensedcode/data/rules/openssl-ssleay.SPDX.yml | 2 ++ src/licensedcode/data/rules/openssl-ssleay_14.yml | 2 ++ src/licensedcode/data/rules/openssl-ssleay_18.yml | 2 ++ src/licensedcode/data/rules/openssl-ssleay_3.yml | 2 ++ src/licensedcode/data/rules/openssl-ssleay_31.yml | 4 +++- src/licensedcode/data/rules/openssl-ssleay_34.yml | 2 ++ src/licensedcode/data/rules/openssl-ssleay_35.yml | 2 ++ src/licensedcode/data/rules/openssl-ssleay_36.yml | 2 ++ src/licensedcode/data/rules/openssl-ssleay_37.yml | 2 ++ src/licensedcode/data/rules/openssl-ssleay_4.yml | 2 ++ src/licensedcode/data/rules/openssl-ssleay_40.yml | 2 ++ src/licensedcode/data/rules/openssl-ssleay_55.yml | 2 ++ src/licensedcode/data/rules/openssl-ssleay_56.yml | 2 ++ src/licensedcode/data/rules/openssl-ssleay_9.yml | 2 ++ src/licensedcode/data/rules/ssleay-windows_1.yml | 4 ++++ src/licensedcode/data/rules/ssleay-windows_2.yml | 4 ++++ src/licensedcode/data/rules/ssleay-windows_3.yml | 4 ++++ src/licensedcode/data/rules/ssleay-windows_4.yml | 4 ++++ src/licensedcode/data/rules/ssleay_3.yml | 4 ++++ src/licensedcode/data/rules/ssleay_4.yml | 4 ++++ src/licensedcode/data/rules/ssleay_5.yml | 2 ++ ...stable_firmware-qcom-media.copyright-detailed.expected.yml | 1 + .../stable_firmware-qcom-media.copyright.expected.yml | 1 + .../usr/share/doc/libssl1.1/copyright-detailed.expected.yml | 1 + .../usr/share/doc/libssl1.1/copyright.expected.yml | 1 + 25 files changed, 59 insertions(+), 1 deletion(-) diff --git a/src/licensedcode/data/rules/openssl-ssleay.SPDX.yml b/src/licensedcode/data/rules/openssl-ssleay.SPDX.yml index 9f693bfe234..3818c2566fa 100644 --- a/src/licensedcode/data/rules/openssl-ssleay.SPDX.yml +++ b/src/licensedcode/data/rules/openssl-ssleay.SPDX.yml @@ -4,8 +4,10 @@ minimum_coverage: 80 notes: license text as published by SPDX ignorable_copyrights: - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) ignorable_holders: - Eric Young + - Tim Hudson ignorable_authors: - Eric Young (eay@cryptsoft.com) - Tim Hudson (tjh@cryptsoft.com) diff --git a/src/licensedcode/data/rules/openssl-ssleay_14.yml b/src/licensedcode/data/rules/openssl-ssleay_14.yml index 1de16425b79..eb8c5f5d0bd 100644 --- a/src/licensedcode/data/rules/openssl-ssleay_14.yml +++ b/src/licensedcode/data/rules/openssl-ssleay_14.yml @@ -4,9 +4,11 @@ minimum_coverage: 80 ignorable_copyrights: - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) - Copyright (c) 1998-2018 The OpenSSL Project + - holder is Tim Hudson (tjh@cryptsoft.com) ignorable_holders: - Eric Young - The OpenSSL Project + - Tim Hudson ignorable_authors: - Eric Young (eay@cryptsoft.com) - Tim Hudson (tjh@cryptsoft.com) diff --git a/src/licensedcode/data/rules/openssl-ssleay_18.yml b/src/licensedcode/data/rules/openssl-ssleay_18.yml index 138f24f6850..1a11eaa21f2 100644 --- a/src/licensedcode/data/rules/openssl-ssleay_18.yml +++ b/src/licensedcode/data/rules/openssl-ssleay_18.yml @@ -4,9 +4,11 @@ minimum_coverage: 80 ignorable_copyrights: - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) - Copyright (c) The OpenSSL Project + - holder is Tim Hudson (tjh@cryptsoft.com) ignorable_holders: - Eric Young - The OpenSSL Project + - Tim Hudson ignorable_authors: - Eric Young (eay@cryptsoft.com) - Tim Hudson (tjh@cryptsoft.com) diff --git a/src/licensedcode/data/rules/openssl-ssleay_3.yml b/src/licensedcode/data/rules/openssl-ssleay_3.yml index df98d43ef9f..b195c72071f 100644 --- a/src/licensedcode/data/rules/openssl-ssleay_3.yml +++ b/src/licensedcode/data/rules/openssl-ssleay_3.yml @@ -4,8 +4,10 @@ minimum_coverage: 80 notes: full openssl/ssleay with extra headers ignorable_copyrights: - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) ignorable_holders: - Eric Young + - Tim Hudson ignorable_authors: - Eric Young (eay@cryptsoft.com) - Tim Hudson (tjh@cryptsoft.com) diff --git a/src/licensedcode/data/rules/openssl-ssleay_31.yml b/src/licensedcode/data/rules/openssl-ssleay_31.yml index 243806da1bc..0c5c01ca45a 100644 --- a/src/licensedcode/data/rules/openssl-ssleay_31.yml +++ b/src/licensedcode/data/rules/openssl-ssleay_31.yml @@ -1,12 +1,14 @@ license_expression: openssl-ssleay is_license_text: yes -notes: typo in "if the [rouines] from the library" +notes: typo in "if the [rouines] from the library" ignorable_copyrights: - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) - Copyright (c) 1998-2008 The OpenSSL Project + - holder is Tim Hudson (tjh@cryptsoft.com) ignorable_holders: - Eric Young - The OpenSSL Project + - Tim Hudson ignorable_authors: - Eric Young (eay@cryptsoft.com) - Tim Hudson (tjh@cryptsoft.com) diff --git a/src/licensedcode/data/rules/openssl-ssleay_34.yml b/src/licensedcode/data/rules/openssl-ssleay_34.yml index de7a59b80ed..268d9e6e5f5 100644 --- a/src/licensedcode/data/rules/openssl-ssleay_34.yml +++ b/src/licensedcode/data/rules/openssl-ssleay_34.yml @@ -3,8 +3,10 @@ is_license_text: yes relevance: 100 ignorable_copyrights: - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) ignorable_holders: - Eric Young + - Tim Hudson ignorable_authors: - Eric Young (eay@cryptsoft.com) - Tim Hudson (tjh@cryptsoft.com) diff --git a/src/licensedcode/data/rules/openssl-ssleay_35.yml b/src/licensedcode/data/rules/openssl-ssleay_35.yml index 84aa3da6a51..cce5127fb91 100644 --- a/src/licensedcode/data/rules/openssl-ssleay_35.yml +++ b/src/licensedcode/data/rules/openssl-ssleay_35.yml @@ -4,9 +4,11 @@ relevance: 100 ignorable_copyrights: - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) - Copyright (c) 1998-2016 The OpenSSL Project + - holder is Tim Hudson (tjh@cryptsoft.com) ignorable_holders: - Eric Young - The OpenSSL Project + - Tim Hudson ignorable_authors: - Eric Young (eay@cryptsoft.com) - Tim Hudson (tjh@cryptsoft.com) diff --git a/src/licensedcode/data/rules/openssl-ssleay_36.yml b/src/licensedcode/data/rules/openssl-ssleay_36.yml index deda3545e1c..4d9ad269ddb 100644 --- a/src/licensedcode/data/rules/openssl-ssleay_36.yml +++ b/src/licensedcode/data/rules/openssl-ssleay_36.yml @@ -5,9 +5,11 @@ minimum_coverage: 90 ignorable_copyrights: - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) - Copyright (c) 1998-2003 The OpenSSL Project + - holder is Tim Hudson (tjh@cryptsoft.com) ignorable_holders: - Eric Young - The OpenSSL Project + - Tim Hudson ignorable_authors: - Eric Young (eay@cryptsoft.com) - Tim Hudson (tjh@cryptsoft.com) diff --git a/src/licensedcode/data/rules/openssl-ssleay_37.yml b/src/licensedcode/data/rules/openssl-ssleay_37.yml index d4651b9b829..09c43c0e7df 100644 --- a/src/licensedcode/data/rules/openssl-ssleay_37.yml +++ b/src/licensedcode/data/rules/openssl-ssleay_37.yml @@ -4,9 +4,11 @@ relevance: 100 ignorable_copyrights: - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) - Copyright (c) 1998-2002 The OpenSSL Project + - holder is Tim Hudson (tjh@cryptsoft.com) ignorable_holders: - Eric Young - The OpenSSL Project + - Tim Hudson ignorable_authors: - Eric Young (eay@cryptsoft.com) - Tim Hudson (tjh@cryptsoft.com) diff --git a/src/licensedcode/data/rules/openssl-ssleay_4.yml b/src/licensedcode/data/rules/openssl-ssleay_4.yml index 07a41ba1417..88344531a3d 100644 --- a/src/licensedcode/data/rules/openssl-ssleay_4.yml +++ b/src/licensedcode/data/rules/openssl-ssleay_4.yml @@ -5,9 +5,11 @@ notes: full openssl/ssleay with extra headers ignorable_copyrights: - Copyright (c) Eric Young (eay@cryptsoft.com) - Copyright (c) The OpenSSL Project + - holder is Tim Hudson (tjh@cryptsoft.com) ignorable_holders: - Eric Young - The OpenSSL Project + - Tim Hudson ignorable_authors: - Eric Young (eay@cryptsoft.com) - Tim Hudson (tjh@cryptsoft.com) diff --git a/src/licensedcode/data/rules/openssl-ssleay_40.yml b/src/licensedcode/data/rules/openssl-ssleay_40.yml index 7057c0e8e4b..5169d67b314 100644 --- a/src/licensedcode/data/rules/openssl-ssleay_40.yml +++ b/src/licensedcode/data/rules/openssl-ssleay_40.yml @@ -4,9 +4,11 @@ relevance: 100 ignorable_copyrights: - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) - Copyright (c) 1998-2017 The OpenSSL Project + - holder is Tim Hudson (tjh@cryptsoft.com) ignorable_holders: - Eric Young - The OpenSSL Project + - Tim Hudson ignorable_authors: - Eric Young (eay@cryptsoft.com) - Tim Hudson (tjh@cryptsoft.com) diff --git a/src/licensedcode/data/rules/openssl-ssleay_55.yml b/src/licensedcode/data/rules/openssl-ssleay_55.yml index be01b045cb8..e3f667cff1c 100644 --- a/src/licensedcode/data/rules/openssl-ssleay_55.yml +++ b/src/licensedcode/data/rules/openssl-ssleay_55.yml @@ -4,9 +4,11 @@ relevance: 100 ignorable_copyrights: - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) - Copyright (c) 1998-2008 The OpenSSL Project + - holder is Tim Hudson (tjh@cryptsoft.com) ignorable_holders: - Eric Young - The OpenSSL Project + - Tim Hudson ignorable_authors: - Eric Young (eay@cryptsoft.com) - Tim Hudson (tjh@cryptsoft.com) diff --git a/src/licensedcode/data/rules/openssl-ssleay_56.yml b/src/licensedcode/data/rules/openssl-ssleay_56.yml index afe54792644..b3ff4483a79 100644 --- a/src/licensedcode/data/rules/openssl-ssleay_56.yml +++ b/src/licensedcode/data/rules/openssl-ssleay_56.yml @@ -4,9 +4,11 @@ relevance: 100 ignorable_copyrights: - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) - Copyright (c) 1998-2019 The OpenSSL Project + - holder is Tim Hudson (tjh@cryptsoft.com) ignorable_holders: - Eric Young - The OpenSSL Project + - Tim Hudson ignorable_authors: - Eric Young (eay@cryptsoft.com) - Tim Hudson (tjh@cryptsoft.com) diff --git a/src/licensedcode/data/rules/openssl-ssleay_9.yml b/src/licensedcode/data/rules/openssl-ssleay_9.yml index d09a9a0f974..4826ee55050 100644 --- a/src/licensedcode/data/rules/openssl-ssleay_9.yml +++ b/src/licensedcode/data/rules/openssl-ssleay_9.yml @@ -4,9 +4,11 @@ minimum_coverage: 80 ignorable_copyrights: - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) - Copyright (c) 1998 The OpenSSL Project + - holder is Tim Hudson (tjh@cryptsoft.com) ignorable_holders: - Eric Young - The OpenSSL Project + - Tim Hudson ignorable_authors: - Eric Young (eay@cryptsoft.com) - Tim Hudson (tjh@cryptsoft.com) diff --git a/src/licensedcode/data/rules/ssleay-windows_1.yml b/src/licensedcode/data/rules/ssleay-windows_1.yml index fa7f375b1c4..ec5582e9c4c 100644 --- a/src/licensedcode/data/rules/ssleay-windows_1.yml +++ b/src/licensedcode/data/rules/ssleay-windows_1.yml @@ -1,6 +1,10 @@ license_expression: ssleay-windows is_license_text: yes notes: SSLEAY windows Variant with typos +ignorable_copyrights: + - holder is Tim Hudson (tjh@cryptsoft.com) +ignorable_holders: + - Tim Hudson ignorable_authors: - Tim Hudson (tjh@cryptsoft.com) ignorable_emails: diff --git a/src/licensedcode/data/rules/ssleay-windows_2.yml b/src/licensedcode/data/rules/ssleay-windows_2.yml index cd91f99eca8..9295fa23e53 100644 --- a/src/licensedcode/data/rules/ssleay-windows_2.yml +++ b/src/licensedcode/data/rules/ssleay-windows_2.yml @@ -1,6 +1,10 @@ license_expression: ssleay-windows is_license_text: yes notes: Variant of Original SSLeay License with Windows exception +ignorable_copyrights: + - holder is Tim Hudson (tjh@mincom.oz.au) +ignorable_holders: + - Tim Hudson ignorable_authors: - Eric Young (eay@mincom.oz.au) - Tim Hudson (tjh@mincom.oz.au) diff --git a/src/licensedcode/data/rules/ssleay-windows_3.yml b/src/licensedcode/data/rules/ssleay-windows_3.yml index fa7f375b1c4..ec5582e9c4c 100644 --- a/src/licensedcode/data/rules/ssleay-windows_3.yml +++ b/src/licensedcode/data/rules/ssleay-windows_3.yml @@ -1,6 +1,10 @@ license_expression: ssleay-windows is_license_text: yes notes: SSLEAY windows Variant with typos +ignorable_copyrights: + - holder is Tim Hudson (tjh@cryptsoft.com) +ignorable_holders: + - Tim Hudson ignorable_authors: - Tim Hudson (tjh@cryptsoft.com) ignorable_emails: diff --git a/src/licensedcode/data/rules/ssleay-windows_4.yml b/src/licensedcode/data/rules/ssleay-windows_4.yml index 679ce80a610..1c3d00fdb4f 100644 --- a/src/licensedcode/data/rules/ssleay-windows_4.yml +++ b/src/licensedcode/data/rules/ssleay-windows_4.yml @@ -1,6 +1,10 @@ license_expression: ssleay-windows is_license_text: yes notes: SSLEAY windows Variant with typos +ignorable_copyrights: + - holder is Tim Hudson (tjh@mincom.oz.au) +ignorable_holders: + - Tim Hudson ignorable_authors: - Tim Hudson (tjh@mincom.oz.au) ignorable_emails: diff --git a/src/licensedcode/data/rules/ssleay_3.yml b/src/licensedcode/data/rules/ssleay_3.yml index 67f84ed1547..0f65d06e1d1 100644 --- a/src/licensedcode/data/rules/ssleay_3.yml +++ b/src/licensedcode/data/rules/ssleay_3.yml @@ -1,5 +1,9 @@ license_expression: ssleay is_license_text: yes +ignorable_copyrights: + - holder is Tim Hudson (tjh@cryptsoft.com) +ignorable_holders: + - Tim Hudson ignorable_emails: - eay@cryptsoft.com - tjh@cryptsoft.com diff --git a/src/licensedcode/data/rules/ssleay_4.yml b/src/licensedcode/data/rules/ssleay_4.yml index f8ce26dbd27..5c93c0748a6 100644 --- a/src/licensedcode/data/rules/ssleay_4.yml +++ b/src/licensedcode/data/rules/ssleay_4.yml @@ -1,6 +1,10 @@ license_expression: ssleay is_license_text: yes notes: Variant of SSLEay with typos +ignorable_copyrights: + - holder is Tim Hudson (tjh@mincom.oz.au) +ignorable_holders: + - Tim Hudson ignorable_emails: - eay@mincom.oz.au - tjh@mincom.oz.au diff --git a/src/licensedcode/data/rules/ssleay_5.yml b/src/licensedcode/data/rules/ssleay_5.yml index 0d4ccc2e652..32f64145ac1 100644 --- a/src/licensedcode/data/rules/ssleay_5.yml +++ b/src/licensedcode/data/rules/ssleay_5.yml @@ -2,8 +2,10 @@ license_expression: ssleay is_license_text: yes ignorable_copyrights: - Copyright (c) 1995-1997 Eric Young (eay@mincom.oz.au) + - holder is Tim Hudson (tjh@mincom.oz.au) ignorable_holders: - Eric Young + - Tim Hudson ignorable_authors: - Eric Young (eay@mincom.oz.au) ignorable_emails: diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-qcom-media.copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-qcom-media.copyright-detailed.expected.yml index 994ca3e7131..54b263af7fc 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-qcom-media.copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-qcom-media.copyright-detailed.expected.yml @@ -7,6 +7,7 @@ Copyright (c) 2013-2017 Qualcomm Technologies, Inc. Copyright (c) 1998-2011 The OpenSSL Project Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + holder is Tim Hudson (tjh@cryptsoft.com) Copyright (c) 1995-2005 Jean-loup Gailly Copyright (c) 1995-2009 Mark Adler Copyright (c) 1995-2003, 2010 Mark Adler diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-qcom-media.copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-qcom-media.copyright.expected.yml index 994ca3e7131..54b263af7fc 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-qcom-media.copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-qcom-media.copyright.expected.yml @@ -7,6 +7,7 @@ Copyright (c) 2013-2017 Qualcomm Technologies, Inc. Copyright (c) 1998-2011 The OpenSSL Project Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + holder is Tim Hudson (tjh@cryptsoft.com) Copyright (c) 1995-2005 Jean-loup Gailly Copyright (c) 1995-2009 Mark Adler Copyright (c) 1995-2003, 2010 Mark Adler diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libssl1.1/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libssl1.1/copyright-detailed.expected.yml index 009fbcd0507..585b38eeb7e 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libssl1.1/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libssl1.1/copyright-detailed.expected.yml @@ -5,3 +5,4 @@ Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson Copyright (c) 1998-2004 The OpenSSL Project Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + holder is Tim Hudson (tjh@cryptsoft.com) diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libssl1.1/copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libssl1.1/copyright.expected.yml index 009fbcd0507..585b38eeb7e 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libssl1.1/copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libssl1.1/copyright.expected.yml @@ -5,3 +5,4 @@ Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson Copyright (c) 1998-2004 The OpenSSL Project Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + holder is Tim Hudson (tjh@cryptsoft.com) From 06baf2defd1f2c027d1b00d4fece78d5752cfebf Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 16 Jun 2021 00:56:38 +0200 Subject: [PATCH 495/709] Use correct ignorables for OpenSSL licenses #216 Signed-off-by: Philippe Ombredanne --- .../data/licenses/openssl-ssleay.yml | 19 +++++++++++-------- .../data/licenses/ssleay-windows.yml | 9 +++++++-- src/licensedcode/data/licenses/ssleay.yml | 9 +++++++-- 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/src/licensedcode/data/licenses/openssl-ssleay.yml b/src/licensedcode/data/licenses/openssl-ssleay.yml index 40977ede49b..0e3960420f3 100644 --- a/src/licensedcode/data/licenses/openssl-ssleay.yml +++ b/src/licensedcode/data/licenses/openssl-ssleay.yml @@ -13,17 +13,20 @@ text_urls: - http://www.openssl.org/source/license.html faq_url: http://www.openssl.org/support/faq.html minimum_coverage: 70 -ignorable_copyrights: - - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) ignorable_authors: - Eric Young (eay@cryptsoft.com) - Tim Hudson (tjh@cryptsoft.com) - the OpenSSL Project +ignorable_copyrights: + - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) + - holder is Tim Hudson (tjh@cryptsoft.com) +ignorable_emails: + - eay@cryptsoft.com + - openssl-core@openssl.org + - tjh@cryptsoft.com ignorable_holders: - - Eric Young + - Eric Young + - Tim Hudson ignorable_urls: - - http://www.openssl.org/ -ignorable_emails: - - eay@cryptsoft.com - - openssl-core@openssl.org - - tjh@cryptsoft.com + - http://www.openssl.org/ + diff --git a/src/licensedcode/data/licenses/ssleay-windows.yml b/src/licensedcode/data/licenses/ssleay-windows.yml index cde9722b1c7..f2b7956262f 100644 --- a/src/licensedcode/data/licenses/ssleay-windows.yml +++ b/src/licensedcode/data/licenses/ssleay-windows.yml @@ -12,6 +12,11 @@ other_urls: ignorable_authors: - Eric Young (eay@cryptsoft.com) - Tim Hudson (tjh@cryptsoft.com) +ignorable_copyrights: + - holder is Tim Hudson (tjh@cryptsoft.com) ignorable_emails: - - eay@cryptsoft.com - - tjh@cryptsoft.com + - eay@cryptsoft.com + - tjh@cryptsoft.com +ignorable_holders: + - Tim Hudson + diff --git a/src/licensedcode/data/licenses/ssleay.yml b/src/licensedcode/data/licenses/ssleay.yml index 33da9b9eeb5..ba1284d55bb 100644 --- a/src/licensedcode/data/licenses/ssleay.yml +++ b/src/licensedcode/data/licenses/ssleay.yml @@ -9,6 +9,11 @@ text_urls: - http://www.openssl.org/source/license.html ignorable_authors: - Eric Young (eay@cryptsoft.com) +ignorable_copyrights: + - holder is Tim Hudson (tjh@cryptsoft.com) ignorable_emails: - - eay@cryptsoft.com - - tjh@cryptsoft.com + - eay@cryptsoft.com + - tjh@cryptsoft.com +ignorable_holders: + - Tim Hudson + From 4d61111c5bc0a2ece036cdeb2de2f456e13f8057 Mon Sep 17 00:00:00 2001 From: akugarg Date: Tue, 15 Jun 2021 18:13:05 +0530 Subject: [PATCH 496/709] Update Test cases Signed-off-by: akugarg --- src/licensedcode/models.py | 1 - .../filtered-expected.json | 1 + .../filtered-expected2.json | 1 + .../filtered-expected3.json | 1 + .../data/csv/livescan/expected.csv | 2 +- .../license-expression/scan.expected.json | 4 + .../plugin_license/license_url.expected.json | 1 + .../package/package.expected.json | 1 + .../sqlite/sqlite.expected.json | 136 ++++++++++++++++++ .../text/scan-diag.expected.json | 4 + .../plugin_license/text/scan.expected.json | 4 + .../text_long_lines/scan-diag.expected.json | 4 + .../text_long_lines/scan.expected.json | 4 + .../plugin_license_text/scan.expected.json | 9 ++ tests/scancode/data/info/all.expected.json | 3 + .../data/info/all.rooted.expected.json | 3 + .../scancode/data/license_text/test.expected | 1 + .../plugin_only_findings/basic.expected.json | 3 + .../data/end-2-end/bug-1141.expected.json | 2 + .../data/full_summary/summary.expected.json | 22 +++ .../summary_by_facet.expected.json | 22 +++ .../summary_details.expected.json | 22 +++ ...mary_key_files-details.expected.json-lines | 22 +++ .../summary_key_files.expected.json | 14 ++ .../component-package-build-expected.json | 7 + .../component-package-expected.json | 7 + .../license-holder-rollup-expected.json | 6 + ...iple-same-holder-and-license-expected.json | 4 + ...t-counted-in-license-holders-expected.json | 6 + .../package-fileset-expected.json | 4 + .../package-manifest-expected.json | 1 + ...rectory-with-minority-origin-expected.json | 4 + ...return-nested-local-majority-expected.json | 8 ++ .../data/score/basic-expected.json | 3 + .../score/consistent_licenses-expected.json | 2 + .../consistent_licenses_not-expected.json | 2 + ...consistent_licenses_not_spdx-expected.json | 2 + .../data/score/file_coverage-expected.json | 2 + .../data/score/full_text-expected.json | 3 + .../full_text_in_key_files-expected.json | 3 + .../data/score/spdx_licenses-expected.json | 3 + .../score/spdx_licenses_not-expected.json | 3 + .../data/score/top_declared-expected.json | 1 + 43 files changed, 356 insertions(+), 2 deletions(-) diff --git a/src/licensedcode/models.py b/src/licensedcode/models.py index f27b69f7bad..45809f0c414 100644 --- a/src/licensedcode/models.py +++ b/src/licensedcode/models.py @@ -880,7 +880,6 @@ def validate(self, licensing=None): self.is_license_reference, self.is_license_tag, self.is_license_intro, - self.is_unknown, ) has_license_flags = any(license_flags) diff --git a/tests/cluecode/data/plugin_filter_clues/filtered-expected.json b/tests/cluecode/data/plugin_filter_clues/filtered-expected.json index debf58b416f..f78006ef6e8 100644 --- a/tests/cluecode/data/plugin_filter_clues/filtered-expected.json +++ b/tests/cluecode/data/plugin_filter_clues/filtered-expected.json @@ -69,6 +69,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "3-seq", "rule_length": 367, "matched_length": 367, diff --git a/tests/cluecode/data/plugin_filter_clues/filtered-expected2.json b/tests/cluecode/data/plugin_filter_clues/filtered-expected2.json index 5a65662021d..6955d36539f 100644 --- a/tests/cluecode/data/plugin_filter_clues/filtered-expected2.json +++ b/tests/cluecode/data/plugin_filter_clues/filtered-expected2.json @@ -69,6 +69,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 145, "matched_length": 145, diff --git a/tests/cluecode/data/plugin_filter_clues/filtered-expected3.json b/tests/cluecode/data/plugin_filter_clues/filtered-expected3.json index bc4203307cb..4f6cda6e42c 100644 --- a/tests/cluecode/data/plugin_filter_clues/filtered-expected3.json +++ b/tests/cluecode/data/plugin_filter_clues/filtered-expected3.json @@ -69,6 +69,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "1-hash", "rule_length": 303, "matched_length": 303, diff --git a/tests/formattedcode/data/csv/livescan/expected.csv b/tests/formattedcode/data/csv/livescan/expected.csv index ac1a96b637a..c1469fad910 100644 --- a/tests/formattedcode/data/csv/livescan/expected.csv +++ b/tests/formattedcode/data/csv/livescan/expected.csv @@ -1,4 +1,4 @@ -Resource,type,name,base_name,extension,size,date,sha1,md5,sha256,mime_type,file_type,programming_language,is_binary,is_text,is_archive,is_media,is_source,is_script,percentage_of_license_text,files_count,dirs_count,size_count,scan_errors,license_expression,license__key,license__score,license__name,license__short_name,license__category,license__is_exception,license__owner,license__homepage_url,license__text_url,license__reference_url,license__scancode_text_url,license__scancode_data_url,license__spdx_license_key,license__spdx_url,start_line,end_line,matched_rule__identifier,matched_rule__license_expression,matched_rule__licenses,matched_rule__is_license_text,matched_rule__is_license_notice,matched_rule__is_license_reference,matched_rule__is_license_tag,matched_rule__is_license_intro,matched_rule__matcher,matched_rule__rule_length,matched_rule__matched_length,matched_rule__match_coverage,matched_rule__rule_relevance,copyright,copyright_holder,email,url,package__type,package__namespace,package__name,package__version,package__qualifiers,package__subpath,package__primary_language,package__description,package__release_date,package__homepage_url,package__download_url,package__size,package__sha1,package__md5,package__sha256,package__sha512,package__bug_tracking_url,package__code_view_url,package__vcs_url,package__copyright,package__license_expression,package__declared_license,package__notice_text,package__root_path,package__contains_source_code,package__extra_data +Resource,type,name,base_name,extension,size,date,sha1,md5,sha256,mime_type,file_type,programming_language,is_binary,is_text,is_archive,is_media,is_source,is_script,percentage_of_license_text,files_count,dirs_count,size_count,scan_errors,license_expression,license__key,license__score,license__name,license__short_name,license__category,license__is_exception,license__owner,license__homepage_url,license__text_url,license__reference_url,license__scancode_text_url,license__scancode_data_url,license__spdx_license_key,license__spdx_url,start_line,end_line,matched_rule__identifier,matched_rule__license_expression,matched_rule__licenses,matched_rule__is_license_text,matched_rule__is_license_notice,matched_rule__is_license_reference,matched_rule__is_license_tag,matched_rule__is_license_intro,matched_rule__is_unknown,matched_rule__matcher,matched_rule__rule_length,matched_rule__matched_length,matched_rule__match_coverage,matched_rule__rule_relevance,copyright,copyright_holder,email,url,package__type,package__namespace,package__name,package__version,package__qualifiers,package__subpath,package__primary_language,package__description,package__release_date,package__homepage_url,package__download_url,package__size,package__sha1,package__md5,package__sha256,package__sha512,package__bug_tracking_url,package__code_view_url,package__vcs_url,package__copyright,package__license_expression,package__declared_license,package__notice_text,package__root_path,package__contains_source_code,package__extra_data json2csv.rb,file,json2csv.rb,json2csv,.rb,912,2021-05-22,1236469a06a2bacbdd8e172ad718482af5b0a936,1307c281e0b153202e291b217eab85d5,12ba215313981dbe810d9ed696b7cc753d97adfcc26eba1e13f941dc7506aa4e,text/x-script.python,"Python script, ASCII text executable",Ruby,False,True,False,False,True,True,62.04,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, json2csv.rb,,,,,,,,,,,,,,,,,,,,,,,,apache-2.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, json2csv.rb,,,,,,,,,,,,,,,,,,,,,,,,,apache-2.0,100.00,Apache License 2.0,Apache 2.0,Permissive,False,Apache Software Foundation,http://www.apache.org/licenses/,http://www.apache.org/licenses/LICENSE-2.0,https://scancode-licensedb.aboutcode.org/apache-2.0,https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE,https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml,Apache-2.0,https://spdx.org/licenses/Apache-2.0,5,13,apache-2.0_7.RULE,apache-2.0,apache-2.0,,True,,,,2-aho,85,85,100.00,100.00,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, diff --git a/tests/licensedcode/data/plugin_license/license-expression/scan.expected.json b/tests/licensedcode/data/plugin_license/license-expression/scan.expected.json index 834ac3e58af..0de57193e75 100644 --- a/tests/licensedcode/data/plugin_license/license-expression/scan.expected.json +++ b/tests/licensedcode/data/plugin_license/license-expression/scan.expected.json @@ -49,6 +49,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 368, "matched_length": 368, @@ -97,6 +98,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "1-spdx-id", "rule_length": 13, "matched_length": 13, @@ -134,6 +136,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "1-spdx-id", "rule_length": 13, "matched_length": 13, @@ -171,6 +174,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "1-spdx-id", "rule_length": 13, "matched_length": 13, diff --git a/tests/licensedcode/data/plugin_license/license_url.expected.json b/tests/licensedcode/data/plugin_license/license_url.expected.json index ad98a74e1a6..91c8c797d44 100644 --- a/tests/licensedcode/data/plugin_license/license_url.expected.json +++ b/tests/licensedcode/data/plugin_license/license_url.expected.json @@ -57,6 +57,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 368, "matched_length": 368, diff --git a/tests/licensedcode/data/plugin_license/package/package.expected.json b/tests/licensedcode/data/plugin_license/package/package.expected.json index b7b3bd42ecf..f4d60464814 100644 --- a/tests/licensedcode/data/plugin_license/package/package.expected.json +++ b/tests/licensedcode/data/plugin_license/package/package.expected.json @@ -49,6 +49,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 3, "matched_length": 3, diff --git a/tests/licensedcode/data/plugin_license/sqlite/sqlite.expected.json b/tests/licensedcode/data/plugin_license/sqlite/sqlite.expected.json index 4f9ebf16aa5..c8e0c1de6a8 100644 --- a/tests/licensedcode/data/plugin_license/sqlite/sqlite.expected.json +++ b/tests/licensedcode/data/plugin_license/sqlite/sqlite.expected.json @@ -57,6 +57,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -93,6 +94,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -129,6 +131,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -165,6 +168,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -201,6 +205,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -237,6 +242,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -273,6 +279,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -309,6 +316,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -345,6 +353,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -381,6 +390,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -417,6 +427,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -453,6 +464,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -489,6 +501,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -525,6 +538,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -561,6 +575,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -597,6 +612,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -633,6 +649,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -669,6 +686,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -705,6 +723,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -741,6 +760,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -777,6 +797,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -813,6 +834,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -849,6 +871,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -885,6 +908,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -921,6 +945,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -957,6 +982,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -993,6 +1019,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -1029,6 +1056,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -1065,6 +1093,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -1101,6 +1130,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -1137,6 +1167,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -1173,6 +1204,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -1209,6 +1241,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -1245,6 +1278,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -1281,6 +1315,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -1317,6 +1352,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -1353,6 +1389,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -1389,6 +1426,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -1425,6 +1463,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -1461,6 +1500,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -1497,6 +1537,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -1533,6 +1574,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -1569,6 +1611,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -1605,6 +1648,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -1641,6 +1685,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -1677,6 +1722,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -1713,6 +1759,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -1749,6 +1796,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -1785,6 +1833,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -1821,6 +1870,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -1857,6 +1907,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -1893,6 +1944,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -1929,6 +1981,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -1965,6 +2018,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -2001,6 +2055,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -2037,6 +2092,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -2073,6 +2129,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -2109,6 +2166,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -2145,6 +2203,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -2181,6 +2240,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -2217,6 +2277,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -2253,6 +2314,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -2289,6 +2351,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -2325,6 +2388,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -2361,6 +2425,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -2397,6 +2462,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -2433,6 +2499,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -2469,6 +2536,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -2505,6 +2573,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -2541,6 +2610,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -2577,6 +2647,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -2613,6 +2684,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -2649,6 +2721,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -2685,6 +2758,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -2721,6 +2795,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -2757,6 +2832,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -2793,6 +2869,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -2829,6 +2906,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -2865,6 +2943,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -2901,6 +2980,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -2937,6 +3017,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -2973,6 +3054,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -3009,6 +3091,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -3045,6 +3128,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -3081,6 +3165,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -3117,6 +3202,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -3153,6 +3239,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -3189,6 +3276,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -3225,6 +3313,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -3261,6 +3350,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -3297,6 +3387,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -3333,6 +3424,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -3369,6 +3461,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -3405,6 +3498,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -3441,6 +3535,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -3477,6 +3572,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -3513,6 +3609,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -3549,6 +3646,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -3585,6 +3683,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -3621,6 +3720,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -3657,6 +3757,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -3693,6 +3794,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -3729,6 +3831,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -3765,6 +3868,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -3801,6 +3905,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -3837,6 +3942,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -3873,6 +3979,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -3909,6 +4016,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -3945,6 +4053,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -3981,6 +4090,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -4017,6 +4127,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -4053,6 +4164,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -4089,6 +4201,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -4125,6 +4238,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -4161,6 +4275,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -4197,6 +4312,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -4233,6 +4349,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -4269,6 +4386,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -4305,6 +4423,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -4341,6 +4460,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -4377,6 +4497,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -4413,6 +4534,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -4449,6 +4571,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -4485,6 +4608,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -4521,6 +4645,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -4557,6 +4682,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -4593,6 +4719,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -4629,6 +4756,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -4665,6 +4793,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -4701,6 +4830,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -4737,6 +4867,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -4773,6 +4904,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -4809,6 +4941,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -4845,6 +4978,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -4881,6 +5015,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, @@ -4917,6 +5052,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 42, "matched_length": 42, diff --git a/tests/licensedcode/data/plugin_license/text/scan-diag.expected.json b/tests/licensedcode/data/plugin_license/text/scan-diag.expected.json index c344ccc7a50..e5335c5a232 100644 --- a/tests/licensedcode/data/plugin_license/text/scan-diag.expected.json +++ b/tests/licensedcode/data/plugin_license/text/scan-diag.expected.json @@ -53,6 +53,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "1-spdx-id", "rule_length": 13, "matched_length": 13, @@ -91,6 +92,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "1-spdx-id", "rule_length": 13, "matched_length": 13, @@ -129,6 +131,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "1-spdx-id", "rule_length": 13, "matched_length": 13, @@ -176,6 +179,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "3-seq", "rule_length": 35, "matched_length": 32, diff --git a/tests/licensedcode/data/plugin_license/text/scan.expected.json b/tests/licensedcode/data/plugin_license/text/scan.expected.json index 0e87043a5f8..93606086805 100644 --- a/tests/licensedcode/data/plugin_license/text/scan.expected.json +++ b/tests/licensedcode/data/plugin_license/text/scan.expected.json @@ -52,6 +52,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "1-spdx-id", "rule_length": 13, "matched_length": 13, @@ -90,6 +91,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "1-spdx-id", "rule_length": 13, "matched_length": 13, @@ -128,6 +130,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "1-spdx-id", "rule_length": 13, "matched_length": 13, @@ -175,6 +178,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "3-seq", "rule_length": 35, "matched_length": 32, diff --git a/tests/licensedcode/data/plugin_license/text_long_lines/scan-diag.expected.json b/tests/licensedcode/data/plugin_license/text_long_lines/scan-diag.expected.json index 15fb8055219..da61ed16322 100644 --- a/tests/licensedcode/data/plugin_license/text_long_lines/scan-diag.expected.json +++ b/tests/licensedcode/data/plugin_license/text_long_lines/scan-diag.expected.json @@ -53,6 +53,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "1-spdx-id", "rule_length": 13, "matched_length": 13, @@ -91,6 +92,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "1-spdx-id", "rule_length": 13, "matched_length": 13, @@ -129,6 +131,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "1-spdx-id", "rule_length": 13, "matched_length": 13, @@ -176,6 +179,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 198, "matched_length": 198, diff --git a/tests/licensedcode/data/plugin_license/text_long_lines/scan.expected.json b/tests/licensedcode/data/plugin_license/text_long_lines/scan.expected.json index 3fd770d9ba7..5997802ecd9 100644 --- a/tests/licensedcode/data/plugin_license/text_long_lines/scan.expected.json +++ b/tests/licensedcode/data/plugin_license/text_long_lines/scan.expected.json @@ -52,6 +52,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "1-spdx-id", "rule_length": 13, "matched_length": 13, @@ -90,6 +91,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "1-spdx-id", "rule_length": 13, "matched_length": 13, @@ -128,6 +130,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "1-spdx-id", "rule_length": 13, "matched_length": 13, @@ -175,6 +178,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 198, "matched_length": 198, diff --git a/tests/licensedcode/data/plugin_license_text/scan.expected.json b/tests/licensedcode/data/plugin_license_text/scan.expected.json index 9c3c12a57d5..608fb22e2cc 100644 --- a/tests/licensedcode/data/plugin_license_text/scan.expected.json +++ b/tests/licensedcode/data/plugin_license_text/scan.expected.json @@ -95,6 +95,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 368, "matched_length": 368, @@ -162,6 +163,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 368, "matched_length": 368, @@ -229,6 +231,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 212, "matched_length": 212, @@ -265,6 +268,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 119, "matched_length": 119, @@ -335,6 +339,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "1-spdx-id", "rule_length": 13, "matched_length": 13, @@ -373,6 +378,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "1-spdx-id", "rule_length": 13, "matched_length": 13, @@ -411,6 +417,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "1-spdx-id", "rule_length": 13, "matched_length": 13, @@ -478,6 +485,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 212, "matched_length": 212, @@ -514,6 +522,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 119, "matched_length": 119, diff --git a/tests/scancode/data/info/all.expected.json b/tests/scancode/data/info/all.expected.json index 4e88ce3489e..0feac3ab48e 100644 --- a/tests/scancode/data/info/all.expected.json +++ b/tests/scancode/data/info/all.expected.json @@ -316,6 +316,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 243, "matched_length": 243, @@ -435,6 +436,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 50, "matched_length": 50, @@ -471,6 +473,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 50, "matched_length": 50, diff --git a/tests/scancode/data/info/all.rooted.expected.json b/tests/scancode/data/info/all.rooted.expected.json index 5478cff0e43..2fce1c1180f 100644 --- a/tests/scancode/data/info/all.rooted.expected.json +++ b/tests/scancode/data/info/all.rooted.expected.json @@ -168,6 +168,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 243, "matched_length": 243, @@ -269,6 +270,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 50, "matched_length": 50, @@ -305,6 +307,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 50, "matched_length": 50, diff --git a/tests/scancode/data/license_text/test.expected b/tests/scancode/data/license_text/test.expected index 97fbb9c6dc2..9ad49fcba49 100644 --- a/tests/scancode/data/license_text/test.expected +++ b/tests/scancode/data/license_text/test.expected @@ -50,6 +50,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 4, "matched_length": 4, diff --git a/tests/scancode/data/plugin_only_findings/basic.expected.json b/tests/scancode/data/plugin_only_findings/basic.expected.json index ce703b94a21..50b6c05e6c4 100644 --- a/tests/scancode/data/plugin_only_findings/basic.expected.json +++ b/tests/scancode/data/plugin_only_findings/basic.expected.json @@ -68,6 +68,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 243, "matched_length": 243, @@ -156,6 +157,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 50, "matched_length": 50, @@ -192,6 +194,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 50, "matched_length": 50, diff --git a/tests/summarycode/data/end-2-end/bug-1141.expected.json b/tests/summarycode/data/end-2-end/bug-1141.expected.json index b7269153314..606230657cc 100644 --- a/tests/summarycode/data/end-2-end/bug-1141.expected.json +++ b/tests/summarycode/data/end-2-end/bug-1141.expected.json @@ -314,6 +314,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "1-hash", "rule_length": 102, "matched_length": 102, @@ -541,6 +542,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 102, "matched_length": 102, diff --git a/tests/summarycode/data/full_summary/summary.expected.json b/tests/summarycode/data/full_summary/summary.expected.json index 88e1961fde4..d77d9c98006 100644 --- a/tests/summarycode/data/full_summary/summary.expected.json +++ b/tests/summarycode/data/full_summary/summary.expected.json @@ -3191,6 +3191,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 125, "matched_length": 125, @@ -3272,6 +3273,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 14, "matched_length": 14, @@ -3359,6 +3361,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 125, "matched_length": 125, @@ -3514,6 +3517,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 125, "matched_length": 125, @@ -3694,6 +3698,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 12, "matched_length": 12, @@ -3775,6 +3780,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 144, "matched_length": 144, @@ -3856,6 +3862,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 12, "matched_length": 12, @@ -3937,6 +3944,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "3-seq", "rule_length": 975, "matched_length": 967, @@ -4006,6 +4014,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 3, "matched_length": 3, @@ -6989,6 +6998,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 176, "matched_length": 176, @@ -7025,6 +7035,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 176, "matched_length": 176, @@ -7106,6 +7117,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 12, "matched_length": 12, @@ -7187,6 +7199,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 12, "matched_length": 12, @@ -7268,6 +7281,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 12, "matched_length": 12, @@ -7423,6 +7437,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 32, "matched_length": 32, @@ -7535,6 +7550,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 132, "matched_length": 132, @@ -7653,6 +7669,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 12, "matched_length": 12, @@ -7734,6 +7751,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 12, "matched_length": 12, @@ -7846,6 +7864,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 71, "matched_length": 71, @@ -7927,6 +7946,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 144, "matched_length": 144, @@ -8008,6 +8028,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 12, "matched_length": 12, @@ -8089,6 +8110,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 12, "matched_length": 12, diff --git a/tests/summarycode/data/full_summary/summary_by_facet.expected.json b/tests/summarycode/data/full_summary/summary_by_facet.expected.json index 545a11df3c1..a2cc2366cfb 100644 --- a/tests/summarycode/data/full_summary/summary_by_facet.expected.json +++ b/tests/summarycode/data/full_summary/summary_by_facet.expected.json @@ -672,6 +672,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 125, "matched_length": 125, @@ -755,6 +756,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 14, "matched_length": 14, @@ -844,6 +846,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 125, "matched_length": 125, @@ -1005,6 +1008,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 125, "matched_length": 125, @@ -1191,6 +1195,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 12, "matched_length": 12, @@ -1274,6 +1279,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 144, "matched_length": 144, @@ -1357,6 +1363,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 12, "matched_length": 12, @@ -1440,6 +1447,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "3-seq", "rule_length": 975, "matched_length": 967, @@ -1511,6 +1519,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 3, "matched_length": 3, @@ -1651,6 +1660,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 176, "matched_length": 176, @@ -1687,6 +1697,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 176, "matched_length": 176, @@ -1770,6 +1781,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 12, "matched_length": 12, @@ -1853,6 +1865,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 12, "matched_length": 12, @@ -1936,6 +1949,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 12, "matched_length": 12, @@ -2095,6 +2109,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 32, "matched_length": 32, @@ -2209,6 +2224,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 132, "matched_length": 132, @@ -2329,6 +2345,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 12, "matched_length": 12, @@ -2412,6 +2429,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 12, "matched_length": 12, @@ -2526,6 +2544,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 71, "matched_length": 71, @@ -2609,6 +2628,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 144, "matched_length": 144, @@ -2692,6 +2712,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 12, "matched_length": 12, @@ -2775,6 +2796,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 12, "matched_length": 12, diff --git a/tests/summarycode/data/full_summary/summary_details.expected.json b/tests/summarycode/data/full_summary/summary_details.expected.json index b71920b849b..880493bf5b2 100644 --- a/tests/summarycode/data/full_summary/summary_details.expected.json +++ b/tests/summarycode/data/full_summary/summary_details.expected.json @@ -681,6 +681,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 125, "matched_length": 125, @@ -794,6 +795,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 14, "matched_length": 14, @@ -913,6 +915,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 125, "matched_length": 125, @@ -1164,6 +1167,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 125, "matched_length": 125, @@ -1488,6 +1492,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 12, "matched_length": 12, @@ -1601,6 +1606,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 144, "matched_length": 144, @@ -1714,6 +1720,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 12, "matched_length": 12, @@ -1828,6 +1835,7 @@ "is_license_tag": false, "is_license_intro": false, "matcher": "3-seq", + "is_unknown": false, "rule_length": 975, "matched_length": 967, "match_coverage": 99.18, @@ -1928,6 +1936,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 3, "matched_length": 3, @@ -5091,6 +5100,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 176, "matched_length": 176, @@ -5127,6 +5137,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 176, "matched_length": 176, @@ -5240,6 +5251,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 12, "matched_length": 12, @@ -5353,6 +5365,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 12, "matched_length": 12, @@ -5466,6 +5479,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 12, "matched_length": 12, @@ -5725,6 +5739,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 32, "matched_length": 32, @@ -5901,6 +5916,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 132, "matched_length": 132, @@ -6083,6 +6099,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 12, "matched_length": 12, @@ -6196,6 +6213,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 12, "matched_length": 12, @@ -6372,6 +6390,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 71, "matched_length": 71, @@ -6485,6 +6504,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 144, "matched_length": 144, @@ -6598,6 +6618,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 12, "matched_length": 12, @@ -6711,6 +6732,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 12, "matched_length": 12, diff --git a/tests/summarycode/data/full_summary/summary_key_files-details.expected.json-lines b/tests/summarycode/data/full_summary/summary_key_files-details.expected.json-lines index 6de37e93b9d..5fc84e1510e 100644 --- a/tests/summarycode/data/full_summary/summary_key_files-details.expected.json-lines +++ b/tests/summarycode/data/full_summary/summary_key_files-details.expected.json-lines @@ -343,6 +343,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "3-seq", "rule_length": 975, "matched_length": 967, @@ -420,6 +421,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 3, "matched_length": 3, @@ -581,6 +583,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 12, "matched_length": 12, @@ -670,6 +673,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 144, "matched_length": 144, @@ -759,6 +763,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 12, "matched_length": 12, @@ -926,6 +931,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 125, "matched_length": 125, @@ -1015,6 +1021,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 14, "matched_length": 14, @@ -1110,6 +1117,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 125, "matched_length": 125, @@ -1289,6 +1297,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 125, "matched_length": 125, @@ -1462,6 +1471,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 12, "matched_length": 12, @@ -1551,6 +1561,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 12, "matched_length": 12, @@ -1640,6 +1651,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 12, "matched_length": 12, @@ -1729,6 +1741,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 144, "matched_length": 144, @@ -1818,6 +1831,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 12, "matched_length": 12, @@ -1907,6 +1921,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 12, "matched_length": 12, @@ -2036,6 +2051,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 176, "matched_length": 176, @@ -2072,6 +2088,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 176, "matched_length": 176, @@ -2251,6 +2268,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 32, "matched_length": 32, @@ -2379,6 +2397,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 132, "matched_length": 132, @@ -2513,6 +2532,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 12, "matched_length": 12, @@ -2602,6 +2622,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 12, "matched_length": 12, @@ -2730,6 +2751,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 71, "matched_length": 71, diff --git a/tests/summarycode/data/full_summary/summary_key_files.expected.json b/tests/summarycode/data/full_summary/summary_key_files.expected.json index 49ed8775bfd..c89cd7a84c7 100644 --- a/tests/summarycode/data/full_summary/summary_key_files.expected.json +++ b/tests/summarycode/data/full_summary/summary_key_files.expected.json @@ -402,6 +402,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 125, "matched_length": 125, @@ -487,6 +488,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 14, "matched_length": 14, @@ -578,6 +580,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 125, "matched_length": 125, @@ -1540,6 +1543,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 12, "matched_length": 12, @@ -1625,6 +1629,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 12, "matched_length": 12, @@ -1710,6 +1715,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 12, "matched_length": 12, @@ -1877,6 +1883,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 32, "matched_length": 32, @@ -1997,6 +2004,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 132, "matched_length": 132, @@ -2123,6 +2131,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 12, "matched_length": 12, @@ -2208,6 +2217,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 12, "matched_length": 12, @@ -2328,6 +2338,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 71, "matched_length": 71, @@ -2413,6 +2424,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 144, "matched_length": 144, @@ -2498,6 +2510,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 12, "matched_length": 12, @@ -2583,6 +2596,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 12, "matched_length": 12, diff --git a/tests/summarycode/data/plugin_consolidate/component-package-build-expected.json b/tests/summarycode/data/plugin_consolidate/component-package-build-expected.json index 9c415146b1d..caae18773ca 100644 --- a/tests/summarycode/data/plugin_consolidate/component-package-build-expected.json +++ b/tests/summarycode/data/plugin_consolidate/component-package-build-expected.json @@ -343,6 +343,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 3, "matched_length": 3, @@ -427,6 +428,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 3, "matched_length": 3, @@ -511,6 +513,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 3, "matched_length": 3, @@ -595,6 +598,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 3, "matched_length": 3, @@ -713,6 +717,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 4, "matched_length": 4, @@ -836,6 +841,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 3, "matched_length": 3, @@ -920,6 +926,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 7, "matched_length": 7, diff --git a/tests/summarycode/data/plugin_consolidate/component-package-expected.json b/tests/summarycode/data/plugin_consolidate/component-package-expected.json index 0dfbc23d16d..b5fd725e465 100644 --- a/tests/summarycode/data/plugin_consolidate/component-package-expected.json +++ b/tests/summarycode/data/plugin_consolidate/component-package-expected.json @@ -226,6 +226,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 3, "matched_length": 3, @@ -310,6 +311,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 3, "matched_length": 3, @@ -394,6 +396,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 3, "matched_length": 3, @@ -478,6 +481,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 3, "matched_length": 3, @@ -596,6 +600,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 4, "matched_length": 4, @@ -719,6 +724,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 3, "matched_length": 3, @@ -803,6 +809,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 7, "matched_length": 7, diff --git a/tests/summarycode/data/plugin_consolidate/license-holder-rollup-expected.json b/tests/summarycode/data/plugin_consolidate/license-holder-rollup-expected.json index 0028255627a..ea1ebacd48c 100644 --- a/tests/summarycode/data/plugin_consolidate/license-holder-rollup-expected.json +++ b/tests/summarycode/data/plugin_consolidate/license-holder-rollup-expected.json @@ -217,6 +217,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 3, "matched_length": 3, @@ -252,6 +253,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 3, "matched_length": 3, @@ -403,6 +405,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 3, "matched_length": 3, @@ -438,6 +441,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 3, "matched_length": 3, @@ -557,6 +561,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": true, + "is_unknown": true, "matcher": "2-aho", "rule_length": 2, "matched_length": 2, @@ -592,6 +597,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 3, "matched_length": 3, diff --git a/tests/summarycode/data/plugin_consolidate/multiple-same-holder-and-license-expected.json b/tests/summarycode/data/plugin_consolidate/multiple-same-holder-and-license-expected.json index a428b658723..f365989bdc3 100644 --- a/tests/summarycode/data/plugin_consolidate/multiple-same-holder-and-license-expected.json +++ b/tests/summarycode/data/plugin_consolidate/multiple-same-holder-and-license-expected.json @@ -121,6 +121,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 4, "matched_length": 4, @@ -156,6 +157,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 4, "matched_length": 4, @@ -251,6 +253,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 4, "matched_length": 4, @@ -286,6 +289,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 4, "matched_length": 4, diff --git a/tests/summarycode/data/plugin_consolidate/package-files-not-counted-in-license-holders-expected.json b/tests/summarycode/data/plugin_consolidate/package-files-not-counted-in-license-holders-expected.json index c5ec0dd41cf..e28a8928af3 100644 --- a/tests/summarycode/data/plugin_consolidate/package-files-not-counted-in-license-holders-expected.json +++ b/tests/summarycode/data/plugin_consolidate/package-files-not-counted-in-license-holders-expected.json @@ -209,6 +209,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 4, "matched_length": 4, @@ -332,6 +333,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 3, "matched_length": 3, @@ -416,6 +418,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 3, "matched_length": 3, @@ -500,6 +503,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 3, "matched_length": 3, @@ -584,6 +588,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 3, "matched_length": 3, @@ -668,6 +673,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 3, "matched_length": 3, diff --git a/tests/summarycode/data/plugin_consolidate/package-fileset-expected.json b/tests/summarycode/data/plugin_consolidate/package-fileset-expected.json index 8614f44a194..f9d54c63a54 100644 --- a/tests/summarycode/data/plugin_consolidate/package-fileset-expected.json +++ b/tests/summarycode/data/plugin_consolidate/package-fileset-expected.json @@ -156,6 +156,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 4, "matched_length": 4, @@ -267,6 +268,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 3, "matched_length": 3, @@ -351,6 +353,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 3, "matched_length": 3, @@ -435,6 +438,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 3, "matched_length": 3, diff --git a/tests/summarycode/data/plugin_consolidate/package-manifest-expected.json b/tests/summarycode/data/plugin_consolidate/package-manifest-expected.json index 4ae968fa258..30eae6346a7 100644 --- a/tests/summarycode/data/plugin_consolidate/package-manifest-expected.json +++ b/tests/summarycode/data/plugin_consolidate/package-manifest-expected.json @@ -152,6 +152,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 4, "matched_length": 4, diff --git a/tests/summarycode/data/plugin_consolidate/report-subdirectory-with-minority-origin-expected.json b/tests/summarycode/data/plugin_consolidate/report-subdirectory-with-minority-origin-expected.json index dab17481e91..6082a719635 100644 --- a/tests/summarycode/data/plugin_consolidate/report-subdirectory-with-minority-origin-expected.json +++ b/tests/summarycode/data/plugin_consolidate/report-subdirectory-with-minority-origin-expected.json @@ -137,6 +137,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 161, "matched_length": 161, @@ -221,6 +222,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 161, "matched_length": 161, @@ -305,6 +307,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 161, "matched_length": 161, @@ -423,6 +426,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 161, "matched_length": 161, diff --git a/tests/summarycode/data/plugin_consolidate/return-nested-local-majority-expected.json b/tests/summarycode/data/plugin_consolidate/return-nested-local-majority-expected.json index 1598d09a477..708cd9cd15a 100644 --- a/tests/summarycode/data/plugin_consolidate/return-nested-local-majority-expected.json +++ b/tests/summarycode/data/plugin_consolidate/return-nested-local-majority-expected.json @@ -169,6 +169,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": true, + "is_unknown": true, "matcher": "2-aho", "rule_length": 2, "matched_length": 2, @@ -204,6 +205,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 3, "matched_length": 3, @@ -289,6 +291,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": true, + "is_unknown": true, "matcher": "2-aho", "rule_length": 2, "matched_length": 2, @@ -324,6 +327,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 3, "matched_length": 3, @@ -443,6 +447,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 3, "matched_length": 3, @@ -478,6 +483,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 3, "matched_length": 3, @@ -563,6 +569,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": true, + "is_unknown": true, "matcher": "2-aho", "rule_length": 2, "matched_length": 2, @@ -598,6 +605,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 3, "matched_length": 3, diff --git a/tests/summarycode/data/score/basic-expected.json b/tests/summarycode/data/score/basic-expected.json index 3835635b406..2ad91c263fd 100644 --- a/tests/summarycode/data/score/basic-expected.json +++ b/tests/summarycode/data/score/basic-expected.json @@ -111,6 +111,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 161, "matched_length": 161, @@ -184,6 +185,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 161, "matched_length": 161, @@ -269,6 +271,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 2, "matched_length": 2, diff --git a/tests/summarycode/data/score/consistent_licenses-expected.json b/tests/summarycode/data/score/consistent_licenses-expected.json index 007a95678e4..fd9ecd65a5d 100644 --- a/tests/summarycode/data/score/consistent_licenses-expected.json +++ b/tests/summarycode/data/score/consistent_licenses-expected.json @@ -146,6 +146,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 2, "matched_length": 2, @@ -260,6 +261,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "1-spdx-id", "rule_length": 4, "matched_length": 4, diff --git a/tests/summarycode/data/score/consistent_licenses_not-expected.json b/tests/summarycode/data/score/consistent_licenses_not-expected.json index 64b3731daf8..6a3629f6398 100644 --- a/tests/summarycode/data/score/consistent_licenses_not-expected.json +++ b/tests/summarycode/data/score/consistent_licenses_not-expected.json @@ -146,6 +146,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 2, "matched_length": 2, @@ -260,6 +261,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "1-spdx-id", "rule_length": 6, "matched_length": 6, diff --git a/tests/summarycode/data/score/consistent_licenses_not_spdx-expected.json b/tests/summarycode/data/score/consistent_licenses_not_spdx-expected.json index a03c64607bf..fffd68d7d21 100644 --- a/tests/summarycode/data/score/consistent_licenses_not_spdx-expected.json +++ b/tests/summarycode/data/score/consistent_licenses_not_spdx-expected.json @@ -111,6 +111,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 81, "matched_length": 81, @@ -260,6 +261,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "1-hash", "rule_length": 81, "matched_length": 81, diff --git a/tests/summarycode/data/score/file_coverage-expected.json b/tests/summarycode/data/score/file_coverage-expected.json index 2fb49f64417..ca4e706384e 100644 --- a/tests/summarycode/data/score/file_coverage-expected.json +++ b/tests/summarycode/data/score/file_coverage-expected.json @@ -146,6 +146,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 2, "matched_length": 2, @@ -260,6 +261,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "1-spdx-id", "rule_length": 4, "matched_length": 4, diff --git a/tests/summarycode/data/score/full_text-expected.json b/tests/summarycode/data/score/full_text-expected.json index c457dd667dc..a99f3f3081e 100644 --- a/tests/summarycode/data/score/full_text-expected.json +++ b/tests/summarycode/data/score/full_text-expected.json @@ -146,6 +146,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 2, "matched_length": 2, @@ -260,6 +261,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "1-hash", "rule_length": 161, "matched_length": 161, @@ -333,6 +335,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "1-spdx-id", "rule_length": 4, "matched_length": 4, diff --git a/tests/summarycode/data/score/full_text_in_key_files-expected.json b/tests/summarycode/data/score/full_text_in_key_files-expected.json index e2751133615..fcfb4e00b9b 100644 --- a/tests/summarycode/data/score/full_text_in_key_files-expected.json +++ b/tests/summarycode/data/score/full_text_in_key_files-expected.json @@ -111,6 +111,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "1-hash", "rule_length": 161, "matched_length": 161, @@ -219,6 +220,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 2, "matched_length": 2, @@ -333,6 +335,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "1-spdx-id", "rule_length": 4, "matched_length": 4, diff --git a/tests/summarycode/data/score/spdx_licenses-expected.json b/tests/summarycode/data/score/spdx_licenses-expected.json index fa1464f9dbc..a7e55fb7438 100644 --- a/tests/summarycode/data/score/spdx_licenses-expected.json +++ b/tests/summarycode/data/score/spdx_licenses-expected.json @@ -146,6 +146,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 2, "matched_length": 2, @@ -260,6 +261,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "1-spdx-id", "rule_length": 4, "matched_length": 4, @@ -333,6 +335,7 @@ "is_license_reference": false, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 4, "matched_length": 4, diff --git a/tests/summarycode/data/score/spdx_licenses_not-expected.json b/tests/summarycode/data/score/spdx_licenses_not-expected.json index 38aa30d7d0b..6d4830500dd 100644 --- a/tests/summarycode/data/score/spdx_licenses_not-expected.json +++ b/tests/summarycode/data/score/spdx_licenses_not-expected.json @@ -146,6 +146,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 2, "matched_length": 2, @@ -260,6 +261,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "1-spdx-id", "rule_length": 4, "matched_length": 4, @@ -333,6 +335,7 @@ "is_license_reference": true, "is_license_tag": false, "is_license_intro": false, + "is_unknown": false, "matcher": "1-hash", "rule_length": 16, "matched_length": 16, diff --git a/tests/summarycode/data/score/top_declared-expected.json b/tests/summarycode/data/score/top_declared-expected.json index 296de60cabe..af266e6eb73 100644 --- a/tests/summarycode/data/score/top_declared-expected.json +++ b/tests/summarycode/data/score/top_declared-expected.json @@ -181,6 +181,7 @@ "is_license_reference": false, "is_license_tag": true, "is_license_intro": false, + "is_unknown": false, "matcher": "2-aho", "rule_length": 2, "matched_length": 2, From 6fc6a1ec54e57cdb55705235149a8a6f05688e55 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 16 Jun 2021 11:29:44 +0200 Subject: [PATCH 497/709] Add license headers Signed-off-by: Philippe Ombredanne --- libpip2pi/commands.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libpip2pi/commands.py b/libpip2pi/commands.py index b25dd07cbcf..6a37a785955 100644 --- a/libpip2pi/commands.py +++ b/libpip2pi/commands.py @@ -1,3 +1,7 @@ +# SPDX-License-Identifier: BSD-2-Clause-Views +# Copyright (c) 2010 David Wolever . All rights reserved. +# originally from https://github.com/wolever/pip2pi + import os import re import sys From b729df777239a541108cc149b129d5663cf1ff3b Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 16 Jun 2021 11:31:59 +0200 Subject: [PATCH 498/709] Drop Python 2. Minimum is now Python 3.6 Drop dep in pip Signed-off-by: Philippe Ombredanne --- setup.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/setup.py b/setup.py index 8929b3dc333..c60af2199bb 100644 --- a/setup.py +++ b/setup.py @@ -33,9 +33,7 @@ 'pip2tgz = libpip2pi.commands:pip2tgz', ], }, - install_requires=[ - "pip>=1.1", - ], + python_requires=[">=3.6"], license="BSD", classifiers=[ x.strip() for x in """ Development Status :: 4 - Beta From 03266f0ed0ae8496aba45c09a5b46098c7fa7aa5 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 16 Jun 2021 11:40:26 +0200 Subject: [PATCH 499/709] Make this a single scripts, not a package/module Signed-off-by: Philippe Ombredanne --- libpip2pi/__init__.py | 1 - libpip2pi/commands.py => pip2pi.py | 0 setup.py | 48 +++++++++++++----------------- 3 files changed, 20 insertions(+), 29 deletions(-) delete mode 100644 libpip2pi/__init__.py rename libpip2pi/commands.py => pip2pi.py (100%) diff --git a/libpip2pi/__init__.py b/libpip2pi/__init__.py deleted file mode 100644 index 94810e81beb..00000000000 --- a/libpip2pi/__init__.py +++ /dev/null @@ -1 +0,0 @@ -__version__ = (0, 8, 1) diff --git a/libpip2pi/commands.py b/pip2pi.py similarity index 100% rename from libpip2pi/commands.py rename to pip2pi.py diff --git a/setup.py b/setup.py index c60af2199bb..b4605db12b5 100644 --- a/setup.py +++ b/setup.py @@ -3,48 +3,40 @@ import os import sys -from setuptools import setup, find_packages +from setuptools import setup +from setuptools import find_packages -os.chdir(os.path.dirname(sys.argv[0]) or ".") - -try: - long_description = open("README.rst", "U").read() -except IOError: - long_description = "See https://github.com/wolever/pip2pi" - -import libpip2pi -version = ".".join(map(str, libpip2pi.__version__)) setup( name="pip2pi", - version=version, + version="0.9.0", url="https://github.com/wolever/pip2pi", author="David Wolever", author_email="david@wolever.net", description="pip2pi builds a PyPI-compatible package repository from pip requirements", - long_description=long_description, + long_description=open("README.rst").read(), maintainer="Md Safiyat Reza", maintainer_email="safiyat@voereir.com", packages=find_packages(), entry_points={ 'console_scripts': [ - 'dir2pi = libpip2pi.commands:dir2pi', - 'pip2pi = libpip2pi.commands:pip2pi', - 'pip2tgz = libpip2pi.commands:pip2tgz', + 'dir2pi = pip2pi:dir2pi', + 'pip2pi = pip2pi:pip2pi', + 'pip2tgz = pip2pi:pip2tgz', ], }, python_requires=[">=3.6"], - license="BSD", - classifiers=[ x.strip() for x in """ - Development Status :: 4 - Beta - Environment :: Console - Intended Audience :: Developers - Intended Audience :: System Administrators - License :: OSI Approved :: BSD License - Natural Language :: English - Operating System :: OS Independent - Programming Language :: Python - Topic :: Software Development - Topic :: Utilities - """.split("\n") if x.strip() ], + license="BSD-2-Clause-Views", + classifiers=[ + "Development Status :: 4 - Beta", + "Environment :: Console", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "License :: OSI Approved :: BSD License", + "Natural Language :: English", + "Operating System :: OS Independent", + "Programming Language :: Python", + "Topic :: Software Development", + "Topic :: Utilities", + ], ) From 537a971b31bb242c96d1448d522951c9f6d8b5dc Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 16 Jun 2021 11:41:25 +0200 Subject: [PATCH 500/709] Use correct Python 3.6 minimum version Signed-off-by: Philippe Ombredanne --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index b4605db12b5..4394a83c72e 100644 --- a/setup.py +++ b/setup.py @@ -25,7 +25,7 @@ 'pip2tgz = pip2pi:pip2tgz', ], }, - python_requires=[">=3.6"], + python_requires=">=3.6", license="BSD-2-Clause-Views", classifiers=[ "Development Status :: 4 - Beta", From ee9101d9c3f95e3090693cce6ba32a61815d69f8 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 16 Jun 2021 11:43:48 +0200 Subject: [PATCH 501/709] Sort imports with usort Signed-off-by: Philippe Ombredanne --- pip2pi.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/pip2pi.py b/pip2pi.py index 6a37a785955..e1d54c545fa 100644 --- a/pip2pi.py +++ b/pip2pi.py @@ -2,19 +2,20 @@ # Copyright (c) 2010 David Wolever . All rights reserved. # originally from https://github.com/wolever/pip2pi +import atexit +import functools +import glob +import optparse import os import re -import sys import shutil -import atexit +import sys import tempfile -import warnings import textwrap -import functools +import warnings from subprocess import check_call + import pkg_resources -import glob -import optparse try: from html import escape From a8f3326e5323d90cf1adb5f552d431415308f3ef Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 16 Jun 2021 11:45:09 +0200 Subject: [PATCH 502/709] Format code with black Signed-off-by: Philippe Ombredanne --- pip2pi.py | 340 ++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 214 insertions(+), 126 deletions(-) diff --git a/pip2pi.py b/pip2pi.py index e1d54c545fa..07c4ea5ca51 100644 --- a/pip2pi.py +++ b/pip2pi.py @@ -23,7 +23,9 @@ from cgi import escape try: - import wheel as _; _ + import wheel as _ + + _ has_wheel = True except ImportError: has_wheel = False @@ -37,37 +39,43 @@ def try_int(x): try: - pip_pkg_info = pkg_resources.get_distribution('pip') + pip_pkg_info = pkg_resources.get_distribution("pip") pip_version = tuple(try_int(x) for x in pip_pkg_info.version.split(".")) has_pip = True except ImportError: pip_version = None has_pip = False - pip_download_command = '' - pip_no_binary_command = '' + pip_download_command = "" + pip_no_binary_command = "" if pip_version: if pip_version >= (10, 0, 0): from pip._internal import main as pip_main - pip_download_command = 'download --dest' - pip_no_binary_command = '--no-binary=:all:' + + pip_download_command = "download --dest" + pip_no_binary_command = "--no-binary=:all:" elif pip_version >= (8, 0, 0): from pip import main as pip_main - pip_download_command = 'download --dest' - pip_no_binary_command = '--no-binary=:all:' + + pip_download_command = "download --dest" + pip_no_binary_command = "--no-binary=:all:" elif pip_version >= (7, 0, 0): from pip import main as pip_main - pip_download_command = 'install --download' - pip_no_binary_command = '--no-binary=:all:' + + pip_download_command = "install --download" + pip_no_binary_command = "--no-binary=:all:" else: from pip import main as pip_main - pip_download_command = 'install --download' - pip_no_binary_command = '--no-use-wheel' + + pip_download_command = "install --download" + pip_no_binary_command = "--no-use-wheel" + class PipError(Exception): pass + def warn_wheel(): print( "ERROR: .whl packages were downloaded but the wheel package " @@ -77,10 +85,11 @@ def warn_wheel(): ) try: import setuptools + setuptools_version = setuptools.__version__ except ImportError: - setuptools_version = '' - if setuptools_version < '1.0.0': + setuptools_version = "" + if setuptools_version < "1.0.0": print( "WARNING: your setuptools package is out of date. This " "could lead to bad things.\n" @@ -88,9 +97,11 @@ def warn_wheel(): " pip install -U setuptools" ) + def dedent(text): return textwrap.dedent(text.lstrip("\n")).rstrip() + def maintain_cwd(f): @functools.wraps(f) def maintain_cwd_helper(*args, **kwargs): @@ -99,58 +110,61 @@ def maintain_cwd_helper(*args, **kwargs): return f(*args, **kwargs) finally: os.chdir(orig_dir) + return maintain_cwd_helper + class InvalidFilePackageName(ValueError): def __init__(self, file, basedir=None): - msg = "unexpected file name: %r " %(file, ) + msg = "unexpected file name: %r " % (file,) msg += "(not in 'pkg-name-version.xxx' format" if basedir: - msg += "; found in directory: %r" %(basedir) + msg += "; found in directory: %r" % (basedir) msg += ")" super(InvalidFilePackageName, self).__init__(msg) + def egg_to_package(file): - warnings.warn("egg_to_package is deprecated; use file_to_package.", - stacklevel=1) + warnings.warn("egg_to_package is deprecated; use file_to_package.", stacklevel=1) return file_to_package(file) + def file_to_package(file, basedir=None): - """ Returns the package name for a given file, or raises an - ``InvalidFilePackageName`` exception if the file name is - not valid:: - - >>> file_to_package("foo-1.2.3_rc1.tar.gz") - ('foo', '1.2.3-rc1.tar.gz') - >>> file_to_package("foo-bar-1.2.tgz") - ('foo-bar', '1.2.tgz') - >>> file_to_package("kafka-quixey-0.8.1-1.tar.gz") - ('kafka-quixey', '0.8.1-1.tar.gz') - >>> file_to_package("foo-bar-1.2-py27-none-any.whl") - ('foo-bar', '1.2-py27-none-any.whl') - >>> file_to_package("Cython-0.17.2-cp26-none-linux_x86_64.whl") - ('Cython', '0.17.2-cp26-none-linux_x86_64.whl') - >>> file_to_package("PyYAML-3.10-py2.7-macosx-10.7-x86_64.egg") - ('PyYAML', '3.10-py2.7-macosx-10.7-x86_64.egg') - >>> file_to_package("python_ldap-2.3.9-py2.7-macosx-10.3-fat.egg") - ('python-ldap', '2.3.9-py2.7-macosx-10.3-fat.egg') - >>> file_to_package("python_ldap-2.4.19-cp27-none-macosx_10_10_x86_64.whl") - ('python-ldap', '2.4.19-cp27-none-macosx_10_10_x86_64.whl') - >>> file_to_package("foo.whl") - Traceback (most recent call last): - ... - InvalidFilePackageName: unexpected file name: 'foo.whl' (not in 'pkg-name-version.xxx' format) - >>> file_to_package("foo.png") - Traceback (most recent call last): - ... - InvalidFilePackageName: unexpected file name: 'foo.png' (not in 'pkg-name-version.xxx' format) - """ + """Returns the package name for a given file, or raises an + ``InvalidFilePackageName`` exception if the file name is + not valid:: + + >>> file_to_package("foo-1.2.3_rc1.tar.gz") + ('foo', '1.2.3-rc1.tar.gz') + >>> file_to_package("foo-bar-1.2.tgz") + ('foo-bar', '1.2.tgz') + >>> file_to_package("kafka-quixey-0.8.1-1.tar.gz") + ('kafka-quixey', '0.8.1-1.tar.gz') + >>> file_to_package("foo-bar-1.2-py27-none-any.whl") + ('foo-bar', '1.2-py27-none-any.whl') + >>> file_to_package("Cython-0.17.2-cp26-none-linux_x86_64.whl") + ('Cython', '0.17.2-cp26-none-linux_x86_64.whl') + >>> file_to_package("PyYAML-3.10-py2.7-macosx-10.7-x86_64.egg") + ('PyYAML', '3.10-py2.7-macosx-10.7-x86_64.egg') + >>> file_to_package("python_ldap-2.3.9-py2.7-macosx-10.3-fat.egg") + ('python-ldap', '2.3.9-py2.7-macosx-10.3-fat.egg') + >>> file_to_package("python_ldap-2.4.19-cp27-none-macosx_10_10_x86_64.whl") + ('python-ldap', '2.4.19-cp27-none-macosx_10_10_x86_64.whl') + >>> file_to_package("foo.whl") + Traceback (most recent call last): + ... + InvalidFilePackageName: unexpected file name: 'foo.whl' (not in 'pkg-name-version.xxx' format) + >>> file_to_package("foo.png") + Traceback (most recent call last): + ... + InvalidFilePackageName: unexpected file name: 'foo.png' (not in 'pkg-name-version.xxx' format) + """ file = os.path.basename(file) file_ext = os.path.splitext(file)[1].lower() if file_ext == ".egg": dist = pkg_resources.Distribution.from_location(None, file) name = dist.project_name - split = (name, file[len(name)+1:]) + split = (name, file[len(name) + 1 :]) to_safe_name = lambda x: x to_safe_rest = lambda x: x elif file_ext == ".whl": @@ -177,23 +191,23 @@ def pip_run_command(pip_args): print("===== WARNING =====") print("Cannot `import pip` - falling back to the pip executable.") print("This will be deprecated in a future release.") - print("Please open an issue if this will be a problem: " - "https://github.com/wolever/pip2pi/issues") + print( + "Please open an issue if this will be a problem: " + "https://github.com/wolever/pip2pi/issues" + ) print("===================") check_call(["pip"] + pip_args) return if pip_version < (1, 1): - raise RuntimeError("pip >= 1.1 required, but %s is installed" - %(pip_version, )) + raise RuntimeError("pip >= 1.1 required, but %s is installed" % (pip_version,)) # TODO: Remove this once # pip._internal.req.req_tracker.RequirementTracker.cleanup() does it # already. - os.environ.pop('PIP_REQ_TRACKER', None) + os.environ.pop("PIP_REQ_TRACKER", None) res = pip_main(pip_args) if res != 0: - raise PipError("pip failed with status %s while running: %s" - %(res, pip_args)) + raise PipError("pip failed with status %s while running: %s" % (res, pip_args)) OS_HAS_SYMLINK = hasattr(os, "symlink") @@ -206,57 +220,93 @@ def format_description(self, formatter): def add_index_options(self): self.add_option( - '-n', '--normalize-package-names', dest="normalize_package_names", - default=True, action="store_true", - help=dedent(""" + "-n", + "--normalize-package-names", + dest="normalize_package_names", + default=True, + action="store_true", + help=dedent( + """ Normalize package names in the simple index using whatever scheme is supported by the most recent version of pip (default). - """)) + """ + ), + ) self.add_option( - '-N', '--no-normalize-package-names', dest="normalize_package_names", - action="store_false") + "-N", + "--no-normalize-package-names", + dest="normalize_package_names", + action="store_false", + ) self.add_option( - '-a', '--aggressive-normalization', dest="aggressive_normalization", - default=False, action="store_true", - help=dedent(""" + "-a", + "--aggressive-normalization", + dest="aggressive_normalization", + default=False, + action="store_true", + help=dedent( + """ Aggressive create symlinks to many different package name normalizations to support multiple pip versions (for a package named "Spam_Eggs--cheese.shop", the following normalizations will be used: "spam-eggs-cheese-shop" (PEP-503), "spam-eggs-cheese.shop" (pip 6, pip 7), "Spam_Eggs--cheese.shop" (pip < 6)). - """)) + """ + ), + ) self.add_option( - '-x', '--no-build-html', dest="build_html", action="store_false", - default=True, help=dedent(""" + "-x", + "--no-build-html", + dest="build_html", + action="store_false", + default=True, + help=dedent( + """ Don't build index files for each directory, you might want to to disable this if your server dynamically builds index files using something like mod_autoindex and you want to make older package/module versions continue to be available. - """)) + """ + ), + ) self.add_option( - '-z', '--also-get-source', dest="get_source", action="store_true", - default=False, help=dedent(""" + "-z", + "--also-get-source", + dest="get_source", + action="store_true", + default=False, + help=dedent( + """ In addition to downloading wheels, eggs or any other package format also download the source tar.gz files in case the platform using this index does not support the wheel/egg/etc - """)) + """ + ), + ) self.add_option( - '-s', '--symlink', dest="use_symlink", - default=OS_HAS_SYMLINK, action="store_true", - help=dedent(""" + "-s", + "--symlink", + dest="use_symlink", + default=OS_HAS_SYMLINK, + action="store_true", + help=dedent( + """ Use symlinks in PACKAGE_DIR/simple/ rather than copying files. Default: %default - """)) - self.add_option( - '-A', '--absolute-symlink', dest='absolute_symlink', - default=False, action='store_true', - help='Use absolute path symlink (default is relative path).' + """ + ), ) self.add_option( - '-S', '--no-symlink', dest="use_symlink", action="store_false") - self.add_option( - '-v', '--verbose', dest="verbose", action="store_true") + "-A", + "--absolute-symlink", + dest="absolute_symlink", + default=False, + action="store_true", + help="Use absolute path symlink (default is relative path).", + ) + self.add_option("-S", "--no-symlink", dest="use_symlink", action="store_false") + self.add_option("-v", "--verbose", dest="verbose", action="store_true") def _process_args(self, largs, rargs, values): """ @@ -280,7 +330,8 @@ def _process_args(self, largs, rargs, values): def dir2pi(argv=sys.argv, use_symlink=None): parser = Pip2PiOptionParser( usage="usage: %prog PACKAGE_DIR", - description=dedent(""" + description=dedent( + """ Creates the directory PACKAGE_DIR/simple/ and populates it with the directory structure required to use with pip's --index-url. @@ -303,7 +354,9 @@ def dir2pi(argv=sys.argv, use_symlink=None): packages/simple/foo/ packages/simple/foo/index.html packages/simple/foo/foo-1.2.tar.gz - """)) + """ + ), + ) if use_symlink is not None: warnings.warn("dir2pi(use_symlink=...) is deprecated", stacklevel=1) @@ -313,7 +366,8 @@ def dir2pi(argv=sys.argv, use_symlink=None): option, argv = parser.parse_args(argv) if option.aggressive_normalization and not option.use_symlink: sys.stderr.write( - "Error: cannot use --aggressive-normalization without --symlink\n") + "Error: cannot use --aggressive-normalization without --symlink\n" + ) return 1 if len(argv) != 2: @@ -321,39 +375,43 @@ def dir2pi(argv=sys.argv, use_symlink=None): parser.exit() return _dir2pi(option, argv) + def normalize_pep503(pkg_name): # As per https://www.python.org/dev/peps/pep-0503/#normalized-names return re.sub(r"[-_.]+", "-", pkg_name).lower() + def normalize_pip67(pkg_name): # Normalize for pip 6 and 7 return re.sub(r"([-.])+", r"\1", pkg_name.replace("_", "-")).lower() + def try_symlink(option, source, target): try: os.symlink(source, target) if option.verbose: - print('linking %s to %s' %(source, target)) + print("linking %s to %s" % (source, target)) except OSError as e: if e.errno == 17: # ignore errors when the file exists return sys.stderr.write( - 'ERROR linking %s to %s (skipping): %s\n' - %(source, target, e) + "ERROR linking %s to %s (skipping): %s\n" % (source, target, e) ) def _dir2pi(option, argv): pkgdir = argv[1] if not os.path.isdir(pkgdir): - raise ValueError("no such directory: %r" %(pkgdir, )) + raise ValueError("no such directory: %r" % (pkgdir,)) pkgdirpath = lambda *x: os.path.join(pkgdir, *x) shutil.rmtree(pkgdirpath("simple"), ignore_errors=True) os.mkdir(pkgdirpath("simple")) - pkg_index = ("Simple Index" - "\n") + pkg_index = ( + "Simple Index" + "\n" + ) processed_pkg = set() for file in os.listdir(pkgdir): @@ -374,7 +432,9 @@ def _dir2pi(option, argv): os.mkdir(pkg_dir) if option.aggressive_normalization: - try_symlink(option, pkg_dir_name, pkgdirpath("simple", normalize_pip67(pkg_name))) + try_symlink( + option, pkg_dir_name, pkgdirpath("simple", normalize_pip67(pkg_name)) + ) try_symlink(option, pkg_dir_name, pkgdirpath("simple", pkg_name)) symlink_target = os.path.join(pkg_dir, pkg_basename) @@ -386,11 +446,11 @@ def _dir2pi(option, argv): try_symlink(option, symlink_source, symlink_target) else: if option.verbose: - print('copying %s to %s' % (symlink_target, pkg_filepath)) + print("copying %s to %s" % (symlink_target, pkg_filepath)) shutil.copy2(pkg_filepath, symlink_target) if pkg_name not in processed_pkg: - pkg_index += "%s
\n" %( + pkg_index += "%s
\n" % ( escape(pkg_dir_name), escape(pkg_name), ) @@ -398,9 +458,12 @@ def _dir2pi(option, argv): if option.build_html: with open(os.path.join(pkg_dir, "index.html"), "a") as fp: - fp.write("%(name)s
\n" %{ - "name": escape(pkg_basename), - }) + fp.write( + "%(name)s
\n" + % { + "name": escape(pkg_basename), + } + ) pkg_index += "\n" if option.build_html: @@ -409,18 +472,21 @@ def _dir2pi(option, argv): return 0 + def globall(globs): result = [] for g in globs: result.extend(glob.glob(g)) return result + @maintain_cwd def pip2tgz(argv=sys.argv): - glob_exts = ['*.whl', '*.tgz', '*.gz'] + glob_exts = ["*.whl", "*.tgz", "*.gz"] parser = Pip2PiOptionParser( usage="usage: %prog OUTPUT_DIRECTORY [PIP_OPTIONS] PACKAGES ...", - description=dedent(""" + description=dedent( + """ Where PACKAGES are any names accepted by pip (ex, `foo`, `foo==1.2`, `-r requirements.txt`), and [PIP_OPTIONS] can be any options accepted by `pip %s`. @@ -435,7 +501,10 @@ def pip2tgz(argv=sys.argv): %s \\ --index-url https://example.com/simple \\ bar==3.1 - """ % (pip_download_command, pip_no_binary_command))) + """ + % (pip_download_command, pip_no_binary_command) + ), + ) option, argv = parser.parse_args(argv) if len(argv) < 3: @@ -446,9 +515,7 @@ def pip2tgz(argv=sys.argv): if not os.path.exists(outdir): os.mkdir(outdir) - full_glob_paths = [ - os.path.join(outdir, g) for g in glob_exts - ] + full_glob_paths = [os.path.join(outdir, g) for g in glob_exts] pkg_file_set = lambda: set(globall(full_glob_paths)) old_pkgs = pkg_file_set() @@ -459,25 +526,25 @@ def pip2tgz(argv=sys.argv): os.chdir(outdir) new_pkgs = pkg_file_set() - old_pkgs - new_wheels = [ f for f in new_pkgs if f.endswith(".whl") ] + new_wheels = [f for f in new_pkgs if f.endswith(".whl")] res = handle_new_wheels(outdir, new_wheels) if res: return res num_pkgs = len(pkg_file_set() - old_pkgs) - print("\nDone. %s new archives currently saved in %r." %(num_pkgs, argv[1])) + print("\nDone. %s new archives currently saved in %r." % (num_pkgs, argv[1])) return 0 def handle_new_wheels(outdir, new_wheels): - """ Makes sure that, if wheel files are downloaded, their dependencies are - correctly handled. + """Makes sure that, if wheel files are downloaded, their dependencies are + correctly handled. - This is necessary because ``pip install -d ...`` was broken - pre-1.5.3[0]. + This is necessary because ``pip install -d ...`` was broken + pre-1.5.3[0]. - [0]: https://github.com/pypa/pip/issues/1617 - """ + [0]: https://github.com/pypa/pip/issues/1617 + """ if not new_wheels: return 0 @@ -495,11 +562,15 @@ def handle_new_wheels(outdir, new_wheels): os.unlink(f) return 1 - print(dedent(""" + print( + dedent( + """ WARNING: Your version of pip (%s) doesn't correctly support wheel files. I'll do my best to work around that for now, but if possible you should upgrade to at least 1.5.3. - """)) %(pip_version, ) + """ + ) + ) % (pip_version,) print("!" * 80) print @@ -507,14 +578,22 @@ def handle_new_wheels(outdir, new_wheels): for new_pkg in new_wheels: pkg_file_basedir = os.path.abspath(os.path.dirname(new_pkg)) pkg_name, _ = file_to_package(new_pkg) - pip_run_command([ - '-q', 'wheel', '-w', outdir, - '--find-links', pkg_file_basedir, - pkg_name, - ]) + pip_run_command( + [ + "-q", + "wheel", + "-w", + outdir, + "--find-links", + pkg_file_basedir, + pkg_name, + ] + ) + WINDOWS_PATH_RE = re.compile(r"^[A-Za-z]:\\") + def is_remote_target(target): return ":" in target and not WINDOWS_PATH_RE.match(target) @@ -522,7 +601,8 @@ def is_remote_target(target): def pip2pi(argv=sys.argv): parser = Pip2PiOptionParser( usage="usage: %prog TARGET [PIP_OPTIONS] PACKAGES ...", - description=dedent(""" + description=dedent( + """ Adds packages PACKAGES to PyPI-compatible package index at TARGET. If TARGET contains ':' it will be treated as a remote path. The @@ -549,7 +629,10 @@ def pip2pi(argv=sys.argv): -r requirements-dev.txt \\ bar==3.1 - """ % (pip_download_command, pip_no_binary_command, pip_no_binary_command))) + """ + % (pip_download_command, pip_no_binary_command, pip_no_binary_command) + ), + ) parser.add_index_options() option, argv = parser.parse_args(argv) @@ -586,10 +669,15 @@ def pip2pi(argv=sys.argv): return res if is_remote: - print("copying temporary index at %r to %r..." %(working_dir, target)) - check_call([ - "rsync", - "--recursive", "--progress", "--links", - working_dir + "/", target + "/", - ]) + print("copying temporary index at %r to %r..." % (working_dir, target)) + check_call( + [ + "rsync", + "--recursive", + "--progress", + "--links", + working_dir + "/", + target + "/", + ] + ) return 0 From 413c9a9fc7c5b917100ea48cfe8db8e0612b2042 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 16 Jun 2021 15:14:48 +0200 Subject: [PATCH 503/709] Rename, refactor and simplify pip2pi This is no a simple pip2py standalone script that can do only one thing: generate a PyPI-like index from a directory of wheels and sdist tarballs. Signed-off-by: Philippe Ombredanne --- pip2pi.py | 819 +++++++------------------------ setup.py => pip2pi.py.ABOUT | 2 - LICENSE.txt => pip2pi.py.LICENSE | 0 3 files changed, 167 insertions(+), 654 deletions(-) rename setup.py => pip2pi.py.ABOUT (93%) rename LICENSE.txt => pip2pi.py.LICENSE (100%) diff --git a/pip2pi.py b/pip2pi.py index 07c4ea5ca51..4fde8241189 100644 --- a/pip2pi.py +++ b/pip2pi.py @@ -1,683 +1,198 @@ -# SPDX-License-Identifier: BSD-2-Clause-Views +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# SPDX-License-Identifier: BSD-2-Clause-Views AND MIT +# Copyright (c) nexB Inc. +# Originally from https://github.com/wolever/pip2pi and modified extensivley # Copyright (c) 2010 David Wolever . All rights reserved. -# originally from https://github.com/wolever/pip2pi +# Partially derived from pip code +# Copyright (c) The pip developers -import atexit -import functools -import glob -import optparse import os import re import shutil -import sys -import tempfile -import textwrap -import warnings -from subprocess import check_call - -import pkg_resources - -try: - from html import escape -except ImportError: - from cgi import escape - -try: - import wheel as _ - _ - has_wheel = True -except ImportError: - has_wheel = False +from html import escape +from pathlib import Path +""" +Generate a PyPI simple-like index from a directory of Python wheels and tarballs. +""" -def try_int(x): - try: - return int(x) - except ValueError: - return x +def build_pypi_index(directory, write_index=False): + """ + Using a ``directory`` directory of wheels and sdists, create the a PyPI simple + directory index at ``directory``/simple/ populated with the proper PyPI simple + index directory structure crafted using symlinks. -try: - pip_pkg_info = pkg_resources.get_distribution("pip") - pip_version = tuple(try_int(x) for x in pip_pkg_info.version.split(".")) - has_pip = True -except ImportError: - pip_version = None - has_pip = False - pip_download_command = "" - pip_no_binary_command = "" + WARNING: The ``directory``/simple/ directory is removed if it exists. + """ + directory = Path(directory) -if pip_version: - if pip_version >= (10, 0, 0): - from pip._internal import main as pip_main + index_dir = directory / "simple" + if index_dir.exists(): + shutil.rmtree(str(index_dir), ignore_errors=True) - pip_download_command = "download --dest" - pip_no_binary_command = "--no-binary=:all:" - elif pip_version >= (8, 0, 0): - from pip import main as pip_main + index_dir.mkdir(parents=True) - pip_download_command = "download --dest" - pip_no_binary_command = "--no-binary=:all:" - elif pip_version >= (7, 0, 0): - from pip import main as pip_main + if write_index: + simple_html_index = [ + "PyPI Simple Index", + "", + ] - pip_download_command = "install --download" - pip_no_binary_command = "--no-binary=:all:" - else: - from pip import main as pip_main + package_names = set() + for pkg_file in directory.iterdir(): - pip_download_command = "install --download" - pip_no_binary_command = "--no-use-wheel" + pkg_filename = pkg_file.name + if ( + not pkg_file.is_file() + or not pkg_filename.endswith(dist_exts) + or pkg_filename.startswith(".") + ): + continue -class PipError(Exception): + pkg_name = get_package_name_from_filename(pkg_filename) + pkg_index_dir = index_dir / pkg_name + pkg_index_dir.mkdir(parents=True, exist_ok=True) + pkg_indexed_file = pkg_index_dir / pkg_filename + link_target = Path("../..") / pkg_filename + pkg_indexed_file.symlink_to(link_target) + + if write_index and pkg_name not in package_names: + esc_name = escape(pkg_name) + simple_html_index.append(f'{esc_name}
') + package_names.add(pkg_name) + + if write_index: + simple_html_index.append("") + index_html = index_dir / "index.html" + index_html.write_text("\n".join(simple_html_index)) + +""" +name: pip compatibility tags +version: 20.3.1 +download_url: https://github.com/pypa/pip/blob/20.3.1/src/pip/_internal/models/wheel.py +copyright: Copyright (c) 2008-2020 The pip developers (see AUTHORS.txt file) +license_expression: mit +notes: the weel name regex is copied from pip-20.3.1 pip/_internal/models/wheel.py + +Copyright (c) 2008-2020 The pip developers (see AUTHORS.txt file) + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +""" +get_wheel_from_filename = re.compile( + r"""^(?P(?P.+?)-(?P.*?)) + ((-(?P\d[^-]*?))?-(?P.+?)-(?P.+?)-(?P.+?) + \.whl)$""", + re.VERBOSE +).match + +sdist_exts = ".tar.gz", ".tar.bz2", ".zip", ".tar.xz", +wheel_ext = ".whl" +app_ext = ".pyz" +dist_exts = sdist_exts + (wheel_ext, app_ext) + + +class InvalidDistributionFilename(Exception): pass -def warn_wheel(): - print( - "ERROR: .whl packages were downloaded but the wheel package " - "is not installed, so they cannot be correctly processed.\n" - "Install it with:\n" - " pip install wheel" - ) - try: - import setuptools - - setuptools_version = setuptools.__version__ - except ImportError: - setuptools_version = "" - if setuptools_version < "1.0.0": - print( - "WARNING: your setuptools package is out of date. This " - "could lead to bad things.\n" - "You should likely update it:\n" - " pip install -U setuptools" - ) - - -def dedent(text): - return textwrap.dedent(text.lstrip("\n")).rstrip() - - -def maintain_cwd(f): - @functools.wraps(f) - def maintain_cwd_helper(*args, **kwargs): - orig_dir = os.getcwd() - try: - return f(*args, **kwargs) - finally: - os.chdir(orig_dir) - - return maintain_cwd_helper - - -class InvalidFilePackageName(ValueError): - def __init__(self, file, basedir=None): - msg = "unexpected file name: %r " % (file,) - msg += "(not in 'pkg-name-version.xxx' format" - if basedir: - msg += "; found in directory: %r" % (basedir) - msg += ")" - super(InvalidFilePackageName, self).__init__(msg) - - -def egg_to_package(file): - warnings.warn("egg_to_package is deprecated; use file_to_package.", stacklevel=1) - return file_to_package(file) - - -def file_to_package(file, basedir=None): - """Returns the package name for a given file, or raises an - ``InvalidFilePackageName`` exception if the file name is - not valid:: - - >>> file_to_package("foo-1.2.3_rc1.tar.gz") - ('foo', '1.2.3-rc1.tar.gz') - >>> file_to_package("foo-bar-1.2.tgz") - ('foo-bar', '1.2.tgz') - >>> file_to_package("kafka-quixey-0.8.1-1.tar.gz") - ('kafka-quixey', '0.8.1-1.tar.gz') - >>> file_to_package("foo-bar-1.2-py27-none-any.whl") - ('foo-bar', '1.2-py27-none-any.whl') - >>> file_to_package("Cython-0.17.2-cp26-none-linux_x86_64.whl") - ('Cython', '0.17.2-cp26-none-linux_x86_64.whl') - >>> file_to_package("PyYAML-3.10-py2.7-macosx-10.7-x86_64.egg") - ('PyYAML', '3.10-py2.7-macosx-10.7-x86_64.egg') - >>> file_to_package("python_ldap-2.3.9-py2.7-macosx-10.3-fat.egg") - ('python-ldap', '2.3.9-py2.7-macosx-10.3-fat.egg') - >>> file_to_package("python_ldap-2.4.19-cp27-none-macosx_10_10_x86_64.whl") - ('python-ldap', '2.4.19-cp27-none-macosx_10_10_x86_64.whl') - >>> file_to_package("foo.whl") +def get_package_name_from_filename(filename, normalize=True): + """ + Return the package name extracted from a package ``filename``. + Optionally ``normalize`` the name according to distribution name rules. + Raise an ``InvalidDistributionFilename`` if the ``filename`` is invalid:: + + >>> get_package_name_from_filename("foo-1.2.3_rc1.tar.gz") + 'foo' + >>> get_package_name_from_filename("foo-bar-1.2-py27-none-any.whl") + 'foo-bar' + >>> get_package_name_from_filename("Cython-0.17.2-cp26-none-linux_x86_64.whl") + 'cython' + >>> get_package_name_from_filename("python_ldap-2.4.19-cp27-none-macosx_10_10_x86_64.whl") + 'python-ldap' + >>> get_package_name_from_filename("foo.whl") Traceback (most recent call last): ... - InvalidFilePackageName: unexpected file name: 'foo.whl' (not in 'pkg-name-version.xxx' format) - >>> file_to_package("foo.png") + InvalidDistributionFilename: ... + >>> get_package_name_from_filename("foo.png") Traceback (most recent call last): ... - InvalidFilePackageName: unexpected file name: 'foo.png' (not in 'pkg-name-version.xxx' format) + InvalidFilePackageName: ... """ - file = os.path.basename(file) - file_ext = os.path.splitext(file)[1].lower() - if file_ext == ".egg": - dist = pkg_resources.Distribution.from_location(None, file) - name = dist.project_name - split = (name, file[len(name) + 1 :]) - to_safe_name = lambda x: x - to_safe_rest = lambda x: x - elif file_ext == ".whl": - bits = file.rsplit("-", 4) - split = (bits[0], "-".join(bits[1:])) - to_safe_name = pkg_resources.safe_name - to_safe_rest = lambda x: x - else: - match = re.search(r"(?P.*?)-(?P\d+.*)", file) - if not match: - raise InvalidFilePackageName(file, basedir) - split = (match.group("pkg"), match.group("rest")) - to_safe_name = pkg_resources.safe_name - to_safe_rest = pkg_resources.safe_name - - if len(split) != 2 or not split[1]: - raise InvalidFilePackageName(file, basedir) - - return (to_safe_name(split[0]), to_safe_rest(split[1])) - - -def pip_run_command(pip_args): - if not has_pip: - print("===== WARNING =====") - print("Cannot `import pip` - falling back to the pip executable.") - print("This will be deprecated in a future release.") - print( - "Please open an issue if this will be a problem: " - "https://github.com/wolever/pip2pi/issues" - ) - print("===================") - check_call(["pip"] + pip_args) - return - - if pip_version < (1, 1): - raise RuntimeError("pip >= 1.1 required, but %s is installed" % (pip_version,)) - # TODO: Remove this once - # pip._internal.req.req_tracker.RequirementTracker.cleanup() does it - # already. - os.environ.pop("PIP_REQ_TRACKER", None) - res = pip_main(pip_args) - if res != 0: - raise PipError("pip failed with status %s while running: %s" % (res, pip_args)) - - -OS_HAS_SYMLINK = hasattr(os, "symlink") - - -class Pip2PiOptionParser(optparse.OptionParser): - def format_description(self, formatter): - # Parent implementation reformats all the hard line breaks - return self.get_description() + "\n" - - def add_index_options(self): - self.add_option( - "-n", - "--normalize-package-names", - dest="normalize_package_names", - default=True, - action="store_true", - help=dedent( - """ - Normalize package names in the simple index using whatever - scheme is supported by the most recent version of pip (default). - """ - ), - ) - self.add_option( - "-N", - "--no-normalize-package-names", - dest="normalize_package_names", - action="store_false", - ) - self.add_option( - "-a", - "--aggressive-normalization", - dest="aggressive_normalization", - default=False, - action="store_true", - help=dedent( - """ - Aggressive create symlinks to many different package name - normalizations to support multiple pip versions (for a package - named "Spam_Eggs--cheese.shop", the following normalizations - will be used: "spam-eggs-cheese-shop" (PEP-503), - "spam-eggs-cheese.shop" (pip 6, pip 7), - "Spam_Eggs--cheese.shop" (pip < 6)). - """ - ), - ) - self.add_option( - "-x", - "--no-build-html", - dest="build_html", - action="store_false", - default=True, - help=dedent( - """ - Don't build index files for each directory, you might want to - to disable this if your server dynamically builds index files - using something like mod_autoindex and you want to make older - package/module versions continue to be available. - """ - ), - ) - self.add_option( - "-z", - "--also-get-source", - dest="get_source", - action="store_true", - default=False, - help=dedent( - """ - In addition to downloading wheels, eggs or any other package - format also download the source tar.gz files in case the - platform using this index does not support the wheel/egg/etc - """ - ), - ) - self.add_option( - "-s", - "--symlink", - dest="use_symlink", - default=OS_HAS_SYMLINK, - action="store_true", - help=dedent( - """ - Use symlinks in PACKAGE_DIR/simple/ rather than copying files. - Default: %default - """ - ), - ) - self.add_option( - "-A", - "--absolute-symlink", - dest="absolute_symlink", - default=False, - action="store_true", - help="Use absolute path symlink (default is relative path).", - ) - self.add_option("-S", "--no-symlink", dest="use_symlink", action="store_false") - self.add_option("-v", "--verbose", dest="verbose", action="store_true") - - def _process_args(self, largs, rargs, values): - """ - An unknown option pass-through implementation of OptionParser. - - When unknown arguments are encountered, bundle with largs and try again, - until rargs is depleted. - - sys.exit(status) will still be called if a known argument is passed - incorrectly (e.g. missing arguments or bad argument types, etc.) - - From http://stackoverflow.com/a/9307174/6364 - """ - while rargs: - try: - optparse.OptionParser._process_args(self, largs, rargs, values) - except (optparse.BadOptionError, optparse.AmbiguousOptionError) as e: - largs.append(e.opt_str) - - -def dir2pi(argv=sys.argv, use_symlink=None): - parser = Pip2PiOptionParser( - usage="usage: %prog PACKAGE_DIR", - description=dedent( - """ - Creates the directory PACKAGE_DIR/simple/ and populates it with the - directory structure required to use with pip's --index-url. - - Assumes that PACKAGE_DIR contains a bunch of archives named - 'package-name-version.ext' (ex 'foo-2.1.tar.gz' or - 'foo-bar-1.3rc1.bz2'). - - This makes the most sense if PACKAGE_DIR is somewhere inside a - webserver's htdocs directory. - - For example: - - $ ls packages/ - foo-1.2.tar.gz - $ dir2pi packages/ - $ find packages/ - packages/ - packages/foo-1.2.tar.gz - packages/simple/ - packages/simple/foo/ - packages/simple/foo/index.html - packages/simple/foo/foo-1.2.tar.gz - """ - ), - ) - - if use_symlink is not None: - warnings.warn("dir2pi(use_symlink=...) is deprecated", stacklevel=1) - - parser.add_index_options() - - option, argv = parser.parse_args(argv) - if option.aggressive_normalization and not option.use_symlink: - sys.stderr.write( - "Error: cannot use --aggressive-normalization without --symlink\n" - ) - return 1 - - if len(argv) != 2: - parser.print_help() - parser.exit() - return _dir2pi(option, argv) - - -def normalize_pep503(pkg_name): - # As per https://www.python.org/dev/peps/pep-0503/#normalized-names - return re.sub(r"[-_.]+", "-", pkg_name).lower() - - -def normalize_pip67(pkg_name): - # Normalize for pip 6 and 7 - return re.sub(r"([-.])+", r"\1", pkg_name.replace("_", "-")).lower() - - -def try_symlink(option, source, target): - try: - os.symlink(source, target) - if option.verbose: - print("linking %s to %s" % (source, target)) - except OSError as e: - if e.errno == 17: - # ignore errors when the file exists - return - sys.stderr.write( - "ERROR linking %s to %s (skipping): %s\n" % (source, target, e) - ) - - -def _dir2pi(option, argv): - pkgdir = argv[1] - if not os.path.isdir(pkgdir): - raise ValueError("no such directory: %r" % (pkgdir,)) - pkgdirpath = lambda *x: os.path.join(pkgdir, *x) - - shutil.rmtree(pkgdirpath("simple"), ignore_errors=True) - os.mkdir(pkgdirpath("simple")) - pkg_index = ( - "Simple Index" - "\n" - ) - - processed_pkg = set() - for file in os.listdir(pkgdir): - pkg_filepath = os.path.join(pkgdir, file) - if not os.path.isfile(pkg_filepath): - continue - pkg_basename = os.path.basename(file) - if pkg_basename.startswith("."): - continue - pkg_name, pkg_rest = file_to_package(pkg_basename, pkgdir) + if not filename or not filename.endswith(dist_exts): + raise InvalidDistributionFilename(filename) - pkg_dir_name = pkg_name - if option.normalize_package_names: - pkg_dir_name = normalize_pep503(pkg_dir_name) + filename = os.path.basename(filename) - pkg_dir = pkgdirpath("simple", pkg_dir_name) - if not os.path.exists(pkg_dir): - os.mkdir(pkg_dir) + if filename.endswith(sdist_exts): + name_ver = None + extension = None - if option.aggressive_normalization: - try_symlink( - option, pkg_dir_name, pkgdirpath("simple", normalize_pip67(pkg_name)) - ) - try_symlink(option, pkg_dir_name, pkgdirpath("simple", pkg_name)) + for ext in sdist_exts: + if filename.endswith(ext): + name_ver, extension, _ = filename.rpartition(ext) + break - symlink_target = os.path.join(pkg_dir, pkg_basename) - if option.absolute_symlink: - symlink_source = os.path.abspath(os.path.join("../../", pkg_basename)) - else: - symlink_source = os.path.join("../../", pkg_basename) - if option.use_symlink: - try_symlink(option, symlink_source, symlink_target) + if not extension or not name_ver: + raise InvalidDistributionFilename(filename) + + name, _, version = name_ver.rpartition('-') + + if not (name and version): + raise InvalidDistributionFilename(filename) + + elif filename.endswith(wheel_ext): + + wheel_info = get_wheel_from_filename(filename) + + if not wheel_info: + raise InvalidDistributionFilename(filename) + + name = wheel_info.group('name') + version = wheel_info.group('version') + + if not (name and version): + raise InvalidDistributionFilename(filename) + + elif filename.endswith(app_ext): + name_ver, extension, _ = filename.rpartition(".pyz") + + if "-" in filename: + name, _, version = name_ver.rpartition('-') else: - if option.verbose: - print("copying %s to %s" % (symlink_target, pkg_filepath)) - shutil.copy2(pkg_filepath, symlink_target) - - if pkg_name not in processed_pkg: - pkg_index += "%s
\n" % ( - escape(pkg_dir_name), - escape(pkg_name), - ) - processed_pkg.add(pkg_name) - - if option.build_html: - with open(os.path.join(pkg_dir, "index.html"), "a") as fp: - fp.write( - "%(name)s
\n" - % { - "name": escape(pkg_basename), - } - ) - pkg_index += "\n" - - if option.build_html: - with open(pkgdirpath("simple/index.html"), "w") as fp: - fp.write(pkg_index) - - return 0 - - -def globall(globs): - result = [] - for g in globs: - result.extend(glob.glob(g)) - return result - - -@maintain_cwd -def pip2tgz(argv=sys.argv): - glob_exts = ["*.whl", "*.tgz", "*.gz"] - parser = Pip2PiOptionParser( - usage="usage: %prog OUTPUT_DIRECTORY [PIP_OPTIONS] PACKAGES ...", - description=dedent( - """ - Where PACKAGES are any names accepted by pip (ex, `foo`, - `foo==1.2`, `-r requirements.txt`), and [PIP_OPTIONS] can be any - options accepted by `pip %s`. - - pip2tgz will download all packages required to install PACKAGES and - save them to sanely-named tarballs or wheel files in OUTPUT_DIRECTORY. - - For example: - - $ pip2tgz /var/www/packages/ -r requirements.txt foo==1.2 baz/ - $ pip2tgz /var/www/packages/ \\ - %s \\ - --index-url https://example.com/simple \\ - bar==3.1 - """ - % (pip_download_command, pip_no_binary_command) - ), - ) - - option, argv = parser.parse_args(argv) - if len(argv) < 3: - parser.print_help() - parser.exit() - - outdir = os.path.abspath(argv[1]) - if not os.path.exists(outdir): - os.mkdir(outdir) - - full_glob_paths = [os.path.join(outdir, g) for g in glob_exts] - pkg_file_set = lambda: set(globall(full_glob_paths)) - old_pkgs = pkg_file_set() - - if pip_version >= (8, 0, 0): - pip_run_command(pip_download_command.split() + [outdir] + argv[2:]) - else: - pip_run_command(pip_download_command.split() + [outdir] + argv[2:]) - - os.chdir(outdir) - new_pkgs = pkg_file_set() - old_pkgs - new_wheels = [f for f in new_pkgs if f.endswith(".whl")] - res = handle_new_wheels(outdir, new_wheels) - if res: - return res - - num_pkgs = len(pkg_file_set() - old_pkgs) - print("\nDone. %s new archives currently saved in %r." % (num_pkgs, argv[1])) - return 0 - - -def handle_new_wheels(outdir, new_wheels): - """Makes sure that, if wheel files are downloaded, their dependencies are - correctly handled. - - This is necessary because ``pip install -d ...`` was broken - pre-1.5.3[0]. - - [0]: https://github.com/pypa/pip/issues/1617 - """ - if not new_wheels: - return 0 - - if pip_version >= (1, 5, 3): - return 0 - - print("") - print("!" * 80) - - if not has_wheel: - warn_wheel() - # Remove the wheel files so that they will be re-downloaded and - # their dependencies installed next time around - for f in new_wheels: - os.unlink(f) - return 1 - - print( - dedent( - """ - WARNING: Your version of pip (%s) doesn't correctly support wheel - files. I'll do my best to work around that for now, but if possible - you should upgrade to at least 1.5.3. - """ - ) - ) % (pip_version,) - - print("!" * 80) - print - - for new_pkg in new_wheels: - pkg_file_basedir = os.path.abspath(os.path.dirname(new_pkg)) - pkg_name, _ = file_to_package(new_pkg) - pip_run_command( - [ - "-q", - "wheel", - "-w", - outdir, - "--find-links", - pkg_file_basedir, - pkg_name, - ] - ) - - -WINDOWS_PATH_RE = re.compile(r"^[A-Za-z]:\\") - - -def is_remote_target(target): - return ":" in target and not WINDOWS_PATH_RE.match(target) - - -def pip2pi(argv=sys.argv): - parser = Pip2PiOptionParser( - usage="usage: %prog TARGET [PIP_OPTIONS] PACKAGES ...", - description=dedent( - """ - Adds packages PACKAGES to PyPI-compatible package index at TARGET. - - If TARGET contains ':' it will be treated as a remote path. The - package index will be built locally and rsync will be used to copy - it to the remote host. - - PIP_OPTIONS can be any options accepted by `pip %s`, like - `--index-url` or `%s`. - - For example, to create a remote index: - - $ pip2pi example.com:/var/www/packages/ -r requirements.txt - - To create a local index: - - $ pip2pi ~/Sites/packages/ foo==1.2 - - To pass arguments to pip: - - $ pip2pi ~/Sites/packages/ \\ - %s \\ - --index-url https://example.com/simple \\ - -r requirements-base.txt \\ - -r requirements-dev.txt \\ - bar==3.1 - - """ - % (pip_download_command, pip_no_binary_command, pip_no_binary_command) - ), - ) - parser.add_index_options() - - option, argv = parser.parse_args(argv) - if len(argv) < 3: - parser.print_help() - parser.exit() - - target = argv[1] - pip_argv = argv[2:] - if is_remote_target(target): - is_remote = True - working_dir = tempfile.mkdtemp(prefix="pip2pi-working-dir") - atexit.register(lambda: shutil.rmtree(working_dir)) - else: - is_remote = False - working_dir = os.path.abspath(target) - - subcmd_argv = [argv[0], working_dir] + pip_argv - res = pip2tgz(subcmd_argv) - if res: - print("pip2tgz returned an error; aborting.") - return res - if option.get_source: - subcmd_argv_source = subcmd_argv[:] - subcmd_argv_source.insert(2, pip_no_binary_command) - res = pip2tgz(subcmd_argv_source) - if res: - print("pip2tgz returned an error; aborting.") - return res - - res = _dir2pi(option, subcmd_argv) - if res: - print("dir2pi returned an error; aborting.") - return res - - if is_remote: - print("copying temporary index at %r to %r..." % (working_dir, target)) - check_call( - [ - "rsync", - "--recursive", - "--progress", - "--links", - working_dir + "/", - target + "/", - ] - ) - return 0 + name = name_ver + + if not name: + raise InvalidDistributionFilename(filename) + + if normalize: + name = name.lower().replace('_', '-') + return name + + +if __name__ == "__main__": + import sys + pkg_dir = sys.argv[1] + build_pypi_index(pkg_dir) diff --git a/setup.py b/pip2pi.py.ABOUT similarity index 93% rename from setup.py rename to pip2pi.py.ABOUT index 4394a83c72e..341b2e73c58 100644 --- a/setup.py +++ b/pip2pi.py.ABOUT @@ -20,9 +20,7 @@ packages=find_packages(), entry_points={ 'console_scripts': [ - 'dir2pi = pip2pi:dir2pi', 'pip2pi = pip2pi:pip2pi', - 'pip2tgz = pip2pi:pip2tgz', ], }, python_requires=">=3.6", diff --git a/LICENSE.txt b/pip2pi.py.LICENSE similarity index 100% rename from LICENSE.txt rename to pip2pi.py.LICENSE From 0583d02152002fe9b3ce0f07e67cb2e36240031f Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 16 Jun 2021 15:24:09 +0200 Subject: [PATCH 504/709] Rename to gen_pypi_simple.py Signed-off-by: Philippe Ombredanne --- pip2pi.py => gen_pypi_simple.py | 115 ++++++++---------- gen_pypi_simple.py.ABOUT | 8 ++ ...pi.py.LICENSE => gen_pypi_simple.py.NOTICE | 33 ++++- pip2pi.py.ABOUT | 40 ------ 4 files changed, 92 insertions(+), 104 deletions(-) rename pip2pi.py => gen_pypi_simple.py (95%) create mode 100644 gen_pypi_simple.py.ABOUT rename pip2pi.py.LICENSE => gen_pypi_simple.py.NOTICE (51%) delete mode 100644 pip2pi.py.ABOUT diff --git a/pip2pi.py b/gen_pypi_simple.py similarity index 95% rename from pip2pi.py rename to gen_pypi_simple.py index 4fde8241189..887e407a258 100644 --- a/pip2pi.py +++ b/gen_pypi_simple.py @@ -2,11 +2,8 @@ # -*- coding: utf-8 -*- # SPDX-License-Identifier: BSD-2-Clause-Views AND MIT -# Copyright (c) nexB Inc. -# Originally from https://github.com/wolever/pip2pi and modified extensivley # Copyright (c) 2010 David Wolever . All rights reserved. -# Partially derived from pip code -# Copyright (c) The pip developers +# originally from https://github.com/wolever/pip2pi import os import re @@ -15,63 +12,6 @@ from html import escape from pathlib import Path -""" -Generate a PyPI simple-like index from a directory of Python wheels and tarballs. -""" - - -def build_pypi_index(directory, write_index=False): - """ - Using a ``directory`` directory of wheels and sdists, create the a PyPI simple - directory index at ``directory``/simple/ populated with the proper PyPI simple - index directory structure crafted using symlinks. - - WARNING: The ``directory``/simple/ directory is removed if it exists. - """ - - directory = Path(directory) - - index_dir = directory / "simple" - if index_dir.exists(): - shutil.rmtree(str(index_dir), ignore_errors=True) - - index_dir.mkdir(parents=True) - - if write_index: - simple_html_index = [ - "PyPI Simple Index", - "", - ] - - package_names = set() - for pkg_file in directory.iterdir(): - - pkg_filename = pkg_file.name - - if ( - not pkg_file.is_file() - or not pkg_filename.endswith(dist_exts) - or pkg_filename.startswith(".") - ): - continue - - pkg_name = get_package_name_from_filename(pkg_filename) - pkg_index_dir = index_dir / pkg_name - pkg_index_dir.mkdir(parents=True, exist_ok=True) - pkg_indexed_file = pkg_index_dir / pkg_filename - link_target = Path("../..") / pkg_filename - pkg_indexed_file.symlink_to(link_target) - - if write_index and pkg_name not in package_names: - esc_name = escape(pkg_name) - simple_html_index.append(f'{esc_name}
') - package_names.add(pkg_name) - - if write_index: - simple_html_index.append("") - index_html = index_dir / "index.html" - index_html.write_text("\n".join(simple_html_index)) - """ name: pip compatibility tags version: 20.3.1 @@ -192,6 +132,59 @@ def get_package_name_from_filename(filename, normalize=True): return name +def build_pypi_index(directory, write_index=False): + """ + Using a ``directory`` directory of wheels and sdists, create the a PyPI simple + directory index at ``directory``/simple/ populated with the proper PyPI simple + index directory structure crafted using symlinks. + + WARNING: The ``directory``/simple/ directory is removed if it exists. + """ + + directory = Path(directory) + + index_dir = directory / "simple" + if index_dir.exists(): + shutil.rmtree(str(index_dir), ignore_errors=True) + + index_dir.mkdir(parents=True) + + if write_index: + simple_html_index = [ + "PyPI Simple Index", + "", + ] + + package_names = set() + for pkg_file in directory.iterdir(): + + pkg_filename = pkg_file.name + + if ( + not pkg_file.is_file() + or not pkg_filename.endswith(dist_exts) + or pkg_filename.startswith(".") + ): + continue + + pkg_name = get_package_name_from_filename(pkg_filename) + pkg_index_dir = index_dir / pkg_name + pkg_index_dir.mkdir(parents=True, exist_ok=True) + pkg_indexed_file = pkg_index_dir / pkg_filename + link_target = Path("../..") / pkg_filename + pkg_indexed_file.symlink_to(link_target) + + if write_index and pkg_name not in package_names: + esc_name = escape(pkg_name) + simple_html_index.append(f'{esc_name}
') + package_names.add(pkg_name) + + if write_index: + simple_html_index.append("") + index_html = index_dir / "index.html" + index_html.write_text("\n".join(simple_html_index)) + + if __name__ == "__main__": import sys pkg_dir = sys.argv[1] diff --git a/gen_pypi_simple.py.ABOUT b/gen_pypi_simple.py.ABOUT new file mode 100644 index 00000000000..4de5ded0def --- /dev/null +++ b/gen_pypi_simple.py.ABOUT @@ -0,0 +1,8 @@ +about_resource: gen_pypi_simple.py +name: gen_pypi_simple.py +license_expression: bsd-2-clause-views and mit +copyright: Copyright (c) nexB Inc. + Copyright (c) 2010 David Wolever + Copyright (c) The pip developers +notes: Originally from https://github.com/wolever/pip2pi and modified extensivley + Also partially derived from pip code diff --git a/pip2pi.py.LICENSE b/gen_pypi_simple.py.NOTICE similarity index 51% rename from pip2pi.py.LICENSE rename to gen_pypi_simple.py.NOTICE index f3eb68308cc..6e0fbbcd5c4 100644 --- a/pip2pi.py.LICENSE +++ b/gen_pypi_simple.py.NOTICE @@ -1,7 +1,11 @@ -tl;dr: all code code is licensed under simplified BSD, unless stated otherwise. +SPDX-License-Identifier: BSD-2-Clause-Views AND mit -Unless stated otherwise in the source files, all code is copyright 2010 David -Wolever . All rights reserved. +Copyright (c) nexB Inc. +Copyright (c) 2010 David Wolever +Copyright (c) The pip developers + + +Original code: copyright 2010 David Wolever . All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -27,3 +31,26 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. The views and conclusions contained in the software and documentation are those of the authors and should not be interpreted as representing official policies, either expressed or implied, of David Wolever. + + +Original code: Copyright (c) 2008-2020 The pip developers + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + diff --git a/pip2pi.py.ABOUT b/pip2pi.py.ABOUT deleted file mode 100644 index 341b2e73c58..00000000000 --- a/pip2pi.py.ABOUT +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env python - -import os -import sys - -from setuptools import setup -from setuptools import find_packages - - -setup( - name="pip2pi", - version="0.9.0", - url="https://github.com/wolever/pip2pi", - author="David Wolever", - author_email="david@wolever.net", - description="pip2pi builds a PyPI-compatible package repository from pip requirements", - long_description=open("README.rst").read(), - maintainer="Md Safiyat Reza", - maintainer_email="safiyat@voereir.com", - packages=find_packages(), - entry_points={ - 'console_scripts': [ - 'pip2pi = pip2pi:pip2pi', - ], - }, - python_requires=">=3.6", - license="BSD-2-Clause-Views", - classifiers=[ - "Development Status :: 4 - Beta", - "Environment :: Console", - "Intended Audience :: Developers", - "Intended Audience :: System Administrators", - "License :: OSI Approved :: BSD License", - "Natural Language :: English", - "Operating System :: OS Independent", - "Programming Language :: Python", - "Topic :: Software Development", - "Topic :: Utilities", - ], -) From 89b8efe8f8e1ba46583a287c636e4f6127351929 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 16 Jun 2021 15:27:03 +0200 Subject: [PATCH 505/709] Move to etc/release directory Signed-off-by: Philippe Ombredanne --- gen_pypi_simple.py => etc/release/gen_pypi_simple.py | 0 gen_pypi_simple.py.ABOUT => etc/release/gen_pypi_simple.py.ABOUT | 0 .../release/gen_pypi_simple.py.NOTICE | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename gen_pypi_simple.py => etc/release/gen_pypi_simple.py (100%) rename gen_pypi_simple.py.ABOUT => etc/release/gen_pypi_simple.py.ABOUT (100%) rename gen_pypi_simple.py.NOTICE => etc/release/gen_pypi_simple.py.NOTICE (100%) diff --git a/gen_pypi_simple.py b/etc/release/gen_pypi_simple.py similarity index 100% rename from gen_pypi_simple.py rename to etc/release/gen_pypi_simple.py diff --git a/gen_pypi_simple.py.ABOUT b/etc/release/gen_pypi_simple.py.ABOUT similarity index 100% rename from gen_pypi_simple.py.ABOUT rename to etc/release/gen_pypi_simple.py.ABOUT diff --git a/gen_pypi_simple.py.NOTICE b/etc/release/gen_pypi_simple.py.NOTICE similarity index 100% rename from gen_pypi_simple.py.NOTICE rename to etc/release/gen_pypi_simple.py.NOTICE From 729d5d650604ee41f78fdd386ef8f72053c5a2d7 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 11 Jun 2021 15:35:55 +0200 Subject: [PATCH 506/709] Bump commoncode Signed-off-by: Philippe Ombredanne --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index d35a90952ce..d68bd4d09ec 100644 --- a/requirements.txt +++ b/requirements.txt @@ -9,7 +9,7 @@ cffi==1.14.5 chardet==4.0.0 click==8.0.1 colorama==0.4.4 -commoncode==21.5.25 +commoncode==21.6.11 cryptography==3.4.7 debian-inspector==21.5.25 dparse==0.5.1 From 5c7208aa2d81b02398da6bab5b37d2751b341b1e Mon Sep 17 00:00:00 2001 From: abhi27-web <57997268+abhi27-web@users.noreply.github.com> Date: Mon, 25 Jan 2021 21:09:36 +0530 Subject: [PATCH 507/709] Merge pull request #2375 from abhi27-web/patch-1 Update CONTRIBUTING.rst Authored-by: Abhigya Verma Signed-off-by: Philippe Ombredanne --- CONTRIBUTING.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index 7161f10bdcc..e35a719e2d4 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -22,7 +22,7 @@ with your name and email:: Signed-off-by: Jane Doe Please try to write a good commit message, see `good commit message wiki -`_ for +` for details. In particular use the imperative for your commit subject: think that you are giving an order to the codebase to update itself. From 451f88318d58135177699a7933856b3052195676 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 17 Jun 2021 08:51:08 +0200 Subject: [PATCH 508/709] Add CHANGELOG entry for SPDX format update Signed-off-by: Philippe Ombredanne --- CHANGELOG.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 025363943bd..da0688a82ca 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -31,6 +31,7 @@ Outputs: the JSON output - Add new Debian machine readable copyright output. - The CSV output "Resource" column has been renamed to "path". + - The SPDX output now has the mandatory DocumentNamespace attribut per SPDX specs #2344 Copyright detection: From 219ac9f1aa5a21d69e3c01a2ecf69183507f5ba1 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 17 Jun 2021 09:58:57 +0200 Subject: [PATCH 509/709] Streamline SPDX formatting code #2344 Format code. Refactor common code between RDF and TV. Signed-off-by: Philippe Ombredanne --- src/formattedcode/output_spdx.py | 166 ++++++++++++++++++++----------- 1 file changed, 110 insertions(+), 56 deletions(-) diff --git a/src/formattedcode/output_spdx.py b/src/formattedcode/output_spdx.py index 62928165506..900672b8a90 100644 --- a/src/formattedcode/output_spdx.py +++ b/src/formattedcode/output_spdx.py @@ -6,35 +6,31 @@ # See https://github.com/nexB/scancode-toolkit for support or download. # See https://aboutcode.org for more information about nexB OSS projects. # -from os.path import abspath -from os.path import basename -from os.path import dirname -from os.path import isdir import sys import uuid - from io import BytesIO -try: - from StringIO import StringIO -except ImportError: - from io import StringIO +from io import StringIO from spdx.checksum import Algorithm from spdx.creationinfo import Tool +from spdx.document import ExtractedLicense from spdx.document import Document from spdx.document import License -from spdx.document import ExtractedLicense from spdx.file import File from spdx.package import Package from spdx.utils import NoAssert from spdx.utils import SPDXNone from spdx.version import Version -from formattedcode import FileOptionType from commoncode.cliutils import OUTPUT_GROUP from commoncode.cliutils import PluggableCommandLineOption +from commoncode.fileutils import file_name +from commoncode.text import python_safe_name +from formattedcode import FileOptionType from plugincode.output import output_impl from plugincode.output import OutputPlugin +from commoncode.fileutils import parent_directory +import os # Tracing flags TRACE = False @@ -65,8 +61,8 @@ def logger_debug(*args): def _patch_license_list(): """ - Patch the SPDX library license list to match the list of ScanCode known SPDX - licenses. + Patch the SPDX Python library license list to match the list of ScanCode + known SPDX licenses. """ global _spdx_list_is_patched if not _spdx_list_is_patched: @@ -80,8 +76,8 @@ def _patch_license_list(): def get_licenses_by_spdx_key(licenses): """ - Return a mapping of {spdx_key: license object} given a sequence of License - objects. + Return a mapping of {spdx_key: license object} given a ``license`` sequence + of License objects. """ spdx_licenses = {} for lic in licenses: @@ -119,16 +115,14 @@ def is_enabled(self, spdx_tv, **kwargs): return spdx_tv def process_codebase(self, codebase, spdx_tv, **kwargs): - check_sha1(codebase) - files = self.get_files(codebase, **kwargs) - header = codebase.get_or_create_current_header() - tool_name = header.tool_name - tool_version = header.tool_version - notice = header.notice - input = kwargs.get('input', '') # NOQA - - write_spdx( - spdx_tv, files, tool_name, tool_version, notice, input, as_tagvalue=True) + _process_codebase( + spdx_plugin=self, + codebase=codebase, + input_path=kwargs.get('input', ''), + output_file=spdx_tv, + as_tagvalue=True, + **kwargs + ) @output_impl @@ -146,16 +140,55 @@ def is_enabled(self, spdx_rdf, **kwargs): return spdx_rdf def process_codebase(self, codebase, spdx_rdf, **kwargs): - check_sha1(codebase) - files = self.get_files(codebase, **kwargs) - header = codebase.get_or_create_current_header() - tool_name = header.tool_name - tool_version = header.tool_version - notice = header.notice - input = kwargs.get('input', '') # NOQA + _process_codebase( + spdx_plugin=self, + codebase=codebase, + input_path=kwargs.get('input', ''), + output_file=spdx_rdf, + as_tagvalue=False, + **kwargs + ) - write_spdx( - spdx_rdf, files, tool_name, tool_version, notice, input, as_tagvalue=False) + +def _process_codebase( + spdx_plugin, + codebase, + input_path, + output_file, + as_tagvalue=True, + **kwargs, +): + check_sha1(codebase) + files = spdx_plugin.get_files(codebase, **kwargs) + header = codebase.get_or_create_current_header() + tool_name = header.tool_name + tool_version = header.tool_version + notice = header.notice + package_name = build_package_name(input_path) + + write_spdx( + output_file=output_file, + files=files, + tool_name=tool_name, + tool_version=tool_version, + notice=notice, + package_name=package_name, + as_tagvalue=as_tagvalue, + ) + + +def build_package_name(input_path): + """ + Return a package name built from an ``input_path`` path. + + """ + if input_path: + absinput = absinput = os.path.abspath(input_path) + if os.path.isfile(absinput): + input_path = parent_directory(absinput) + return python_safe_name(file_name(input_path)) + + return 'scancode-toolkit-analyzed-package' def check_sha1(codebase): @@ -167,32 +200,45 @@ def check_sha1(codebase): 'WARNING: Files are missing a SHA1 attribute. ' 'Incomplete SPDX document created.', err=True, - fg='red') + fg='red', + ) -def write_spdx(output_file, files, tool_name, tool_version, notice, input_file, as_tagvalue=True): +def write_spdx( + output_file, + files, + tool_name, + tool_version, + notice, + package_name='', + download_location=NoAssert(), + as_tagvalue=True, +): """ - Write scan output as SPDX Tag/value or RDF. + Write scan output as SPDX Tag/value to ``output_file`` file-like + object using the ``files`` list of scanned file data. + Write as RDF XML if ``as_tagvalue`` is False. + + Use the ``notice`` string as a notice included in a document comment. + Include the ``tool_name`` and ``tool_version`` to indicate which tool is + producing this SPDX document. + Use ``package_name`` as a Package name and as a namespace prefix base. """ as_rdf = not as_tagvalue _patch_license_list() - absinput = abspath(input_file) - if isdir(absinput): - input_path = absinput - else: - input_path = dirname(absinput) + ns_prefix = '_'.join(package_name.lower().split()) doc = Document(Version(2, 1), License.from_identifier('CC0-1.0')) doc.comment = notice - doc.namespace = f'http://spdx.org/spdxdocs/{basename(input_path)}-{uuid.uuid4()}' + doc.namespace = f'http://spdx.org/spdxdocs/{ns_prefix}-{uuid.uuid4()}' tool_name = tool_name or 'ScanCode' - doc.creation_info.add_creator(Tool(tool_name + ' ' + tool_version)) + doc.creation_info.add_creator(Tool(f'{tool_name} {tool_version}')) doc.creation_info.set_created_now() package = doc.package = Package( - name=basename(input_path), - download_location=NoAssert() + name=package_name, + download_location=download_location ) # Use a set of unique copyrights for the package. @@ -224,7 +270,7 @@ def write_spdx(output_file, files, tool_name, tool_version, notice, input_file, spdx_id = file_license.get('spdx_license_key') if not spdx_id: - spdx_id = 'LicenseRef-scancode-' + license_key + spdx_id = f'LicenseRef-scancode-{license_key}' is_license_ref = spdx_id.lower().startswith('licenseref-') if not is_license_ref: @@ -232,18 +278,22 @@ def write_spdx(output_file, files, tool_name, tool_version, notice, input_file, else: spdx_license = ExtractedLicense(spdx_id) spdx_license.name = file_license.get('short_name') - comment = ('See details at https://github.com/nexB/scancode-toolkit' - '/blob/develop/src/licensedcode/data/licenses/%s.yml\n' % license_key) + # FIXME: replace this with the licensedb URL + comment = ( + f'See details at https://github.com/nexB/scancode-toolkit' + f'/blob/develop/src/licensedcode/data/licenses/{license_key}.yml\n' + ) spdx_license.comment = comment text = file_license.get('matched_text') - # always set some text, even if we did not extract the matched text + # always set some text, even if we did not extract the + # matched text if not text: text = comment spdx_license.text = text doc.add_extr_lic(spdx_license) - # Add licenses in the order they appear in the file. Maintaining the order - # might be useful for provenance purposes. + # Add licenses in the order they appear in the file. Maintaining + # the order might be useful for provenance purposes. file_entry.add_lics(spdx_license) package.add_lics_from_file(spdx_license) @@ -265,8 +315,9 @@ def write_spdx(output_file, files, tool_name, tool_version, notice, input_file, package.cr_text.update(file_entry.copyright) - # Create a text of copyright statements in the order they appear in the file. - # Maintaining the order might be useful for provenance purposes. + # Create a text of copyright statements in the order they appear in + # the file. Maintaining the order might be useful for provenance + # purposes. file_entry.copyright = '\n'.join(file_entry.copyright) + '\n' elif file_copyrights is None: @@ -287,7 +338,7 @@ def write_spdx(output_file, files, tool_name, tool_version, notice, input_file, output_file.write(msg) # Remove duplicate licenses from the list for the package. - unique_licenses = {(l.identifier, l.full_name): l for l in package.licenses_from_files} + unique_licenses = {l.identifier: l for l in package.licenses_from_files} unique_licenses = list(unique_licenses.values()) if not len(package.licenses_from_files): if all_files_have_no_license: @@ -296,7 +347,10 @@ def write_spdx(output_file, files, tool_name, tool_version, notice, input_file, package.licenses_from_files = [NoAssert()] else: # List license identifiers alphabetically for the package. - package.licenses_from_files = sorted(unique_licenses, key=lambda x: x.identifier) + package.licenses_from_files = sorted( + unique_licenses, + key=lambda x: x.identifier, + ) if len(package.cr_text) == 0: if all_files_have_no_copyright: From 6c7c024d7afe366cb17ea448c1c3cb2d469f986d Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 17 Jun 2021 09:59:27 +0200 Subject: [PATCH 510/709] Update SPDX test expectatations #2344 Signed-off-by: Philippe Ombredanne --- tests/formattedcode/data/spdx/license_known/expected.tv | 1 + .../formattedcode/data/spdx/license_known/expected_with_text.tv | 1 + tests/formattedcode/data/spdx/license_ref/expected.tv | 1 + tests/formattedcode/data/spdx/license_ref/expected_with_text.tv | 1 + tests/formattedcode/data/spdx/simple/expected.tv | 1 + tests/formattedcode/data/spdx/tree/expected.tv | 1 + tests/formattedcode/data/spdx/unicode/expected.tv | 1 + 7 files changed, 7 insertions(+) diff --git a/tests/formattedcode/data/spdx/license_known/expected.tv b/tests/formattedcode/data/spdx/license_known/expected.tv index f99bc615b1f..c8eb8639cb8 100644 --- a/tests/formattedcode/data/spdx/license_known/expected.tv +++ b/tests/formattedcode/data/spdx/license_known/expected.tv @@ -2,6 +2,7 @@ SPDXVersion: SPDX-2.1 DataLicense: CC0-1.0 SPDXID: SPDXRef-DOCUMENT +DocumentNamespace: http://spdx.org/spdxdocs/scan-ab8a6f7e-3a9a-466f-964f-be56571a3c19 DocumentComment: Generated with ScanCode and provided on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. No content created from ScanCode should be considered or used as legal advice. Consult an Attorney diff --git a/tests/formattedcode/data/spdx/license_known/expected_with_text.tv b/tests/formattedcode/data/spdx/license_known/expected_with_text.tv index f99bc615b1f..39ba0466a10 100644 --- a/tests/formattedcode/data/spdx/license_known/expected_with_text.tv +++ b/tests/formattedcode/data/spdx/license_known/expected_with_text.tv @@ -2,6 +2,7 @@ SPDXVersion: SPDX-2.1 DataLicense: CC0-1.0 SPDXID: SPDXRef-DOCUMENT +DocumentNamespace: http://spdx.org/spdxdocs/scan-8f1122d0-e528-466c-a22e-04bc0b174984 DocumentComment: Generated with ScanCode and provided on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. No content created from ScanCode should be considered or used as legal advice. Consult an Attorney diff --git a/tests/formattedcode/data/spdx/license_ref/expected.tv b/tests/formattedcode/data/spdx/license_ref/expected.tv index 256f6a737bc..6d5d34cf15f 100644 --- a/tests/formattedcode/data/spdx/license_ref/expected.tv +++ b/tests/formattedcode/data/spdx/license_ref/expected.tv @@ -2,6 +2,7 @@ SPDXVersion: SPDX-2.1 DataLicense: CC0-1.0 SPDXID: SPDXRef-DOCUMENT +DocumentNamespace: http://spdx.org/spdxdocs/scan-25498bb4-1cfc-461c-a7cf-389008e49b5a DocumentComment: Generated with ScanCode and provided on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. No content created from ScanCode should be considered or used as legal advice. Consult an Attorney diff --git a/tests/formattedcode/data/spdx/license_ref/expected_with_text.tv b/tests/formattedcode/data/spdx/license_ref/expected_with_text.tv index 0f9945d7145..f47022217cb 100644 --- a/tests/formattedcode/data/spdx/license_ref/expected_with_text.tv +++ b/tests/formattedcode/data/spdx/license_ref/expected_with_text.tv @@ -2,6 +2,7 @@ SPDXVersion: SPDX-2.1 DataLicense: CC0-1.0 SPDXID: SPDXRef-DOCUMENT +DocumentNamespace: http://spdx.org/spdxdocs/scan-ff644ef5-7b50-4793-ac2e-69cb1a0bece3 DocumentComment: Generated with ScanCode and provided on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. No content created from ScanCode should be considered or used as legal advice. Consult an Attorney diff --git a/tests/formattedcode/data/spdx/simple/expected.tv b/tests/formattedcode/data/spdx/simple/expected.tv index 0247b3d0de7..1fe39c2e88f 100644 --- a/tests/formattedcode/data/spdx/simple/expected.tv +++ b/tests/formattedcode/data/spdx/simple/expected.tv @@ -2,6 +2,7 @@ SPDXVersion: SPDX-2.1 DataLicense: CC0-1.0 SPDXID: SPDXRef-DOCUMENT +DocumentNamespace: http://spdx.org/spdxdocs/simple-95546eef-3081-4c4b-bd90-c899c395adaf DocumentComment: Generated with ScanCode and provided on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. No content created from ScanCode should be considered or used as legal advice. Consult an Attorney diff --git a/tests/formattedcode/data/spdx/tree/expected.tv b/tests/formattedcode/data/spdx/tree/expected.tv index 9f58864bcf0..fd023a04e2b 100644 --- a/tests/formattedcode/data/spdx/tree/expected.tv +++ b/tests/formattedcode/data/spdx/tree/expected.tv @@ -2,6 +2,7 @@ SPDXVersion: SPDX-2.1 DataLicense: CC0-1.0 SPDXID: SPDXRef-DOCUMENT +DocumentNamespace: http://spdx.org/spdxdocs/scan-3ef222be-8dfb-4d4f-b12c-a42e51156151 DocumentComment: Generated with ScanCode and provided on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. No content created from ScanCode should be considered or used as legal advice. Consult an Attorney diff --git a/tests/formattedcode/data/spdx/unicode/expected.tv b/tests/formattedcode/data/spdx/unicode/expected.tv index 3ee3a86b588..c3179d474a6 100644 --- a/tests/formattedcode/data/spdx/unicode/expected.tv +++ b/tests/formattedcode/data/spdx/unicode/expected.tv @@ -2,6 +2,7 @@ SPDXVersion: SPDX-2.1 DataLicense: CC0-1.0 SPDXID: SPDXRef-DOCUMENT +DocumentNamespace: http://spdx.org/spdxdocs/unicode-ea31be0f-16de-4eab-9fc7-4e3bafb753d3 DocumentComment: Generated with ScanCode and provided on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. No content created from ScanCode should be considered or used as legal advice. Consult an Attorney From 10290687b9a30b1bc9b1df2e1dd0eabf9a1bda13 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 17 Jun 2021 09:59:46 +0200 Subject: [PATCH 511/709] Use correct pytest setting for markers Signed-off-by: Philippe Ombredanne --- setup-mini.cfg | 2 +- setup.cfg | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/setup-mini.cfg b/setup-mini.cfg index b95cf91dde1..2cf6bfe41d1 100644 --- a/setup-mini.cfg +++ b/setup-mini.cfg @@ -234,6 +234,6 @@ python_functions=test addopts = -rfExXw - --strict + --strict-markers --ignore setup.py --doctest-modules diff --git a/setup.cfg b/setup.cfg index f9b99cc9903..d3296dc6c81 100644 --- a/setup.cfg +++ b/setup.cfg @@ -235,6 +235,6 @@ python_functions=test addopts = -rfExXw - --strict + --strict-markers --ignore setup.py --doctest-modules From d621379ec4580fc7e25f9861511087ef2e9f55a4 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 17 Jun 2021 10:41:15 +0200 Subject: [PATCH 512/709] Clarify function to extract data from wheel name Signed-off-by: Philippe Ombredanne --- etc/release/utils_thirdparty.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/etc/release/utils_thirdparty.py b/etc/release/utils_thirdparty.py index 4c78cd9cdcc..549ea919dd0 100755 --- a/etc/release/utils_thirdparty.py +++ b/etc/release/utils_thirdparty.py @@ -975,7 +975,7 @@ class Sdist(Distribution): @classmethod def from_filename(cls, filename): """ - Return a sdist object built from a filename. + Return a Sdist object built from a filename. Raise an exception if this is not a valid sdist filename """ name_ver = None @@ -1048,12 +1048,12 @@ class Wheel(Distribution): WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ - wheel_file_re = re.compile( + get_wheel_from_filename = re.compile( r"""^(?P(?P.+?)-(?P.*?)) ((-(?P\d[^-]*?))?-(?P.+?)-(?P.+?)-(?P.+?) \.whl)$""", re.VERBOSE - ) + ).match build = attr.ib( type=str, @@ -1092,7 +1092,7 @@ def from_filename(cls, filename): Return a wheel object built from a filename. Raise an exception if this is not a valid wheel filename """ - wheel_info = cls.wheel_file_re.match(filename) + wheel_info = cls.get_wheel_from_filename(filename) if not wheel_info: raise InvalidDistributionFilename(filename) From 035d64384c34e593d0252a58247b9beae4264fe6 Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Wed, 16 Jun 2021 09:16:49 +0530 Subject: [PATCH 513/709] Add rules to improve debian-slim license detection Signed-off-by: Ayan Sinha Mahapatra --- .../data/rules/debian_slim_structured_1.RULE | 2 + .../data/rules/debian_slim_structured_1.yml | 3 ++ .../data/rules/debian_slim_structured_10.RULE | 2 + .../data/rules/debian_slim_structured_10.yml | 5 +++ .../data/rules/debian_slim_structured_11.RULE | 8 ++++ .../data/rules/debian_slim_structured_11.yml | 4 ++ .../data/rules/debian_slim_structured_12.RULE | 1 + .../data/rules/debian_slim_structured_12.yml | 5 +++ .../data/rules/debian_slim_structured_13.RULE | 1 + .../data/rules/debian_slim_structured_13.yml | 5 +++ .../data/rules/debian_slim_structured_14.RULE | 2 + .../data/rules/debian_slim_structured_14.yml | 5 +++ .../data/rules/debian_slim_structured_15.RULE | 1 + .../data/rules/debian_slim_structured_15.yml | 5 +++ .../data/rules/debian_slim_structured_16.RULE | 1 + .../data/rules/debian_slim_structured_16.yml | 5 +++ .../data/rules/debian_slim_structured_17.RULE | 11 ++++++ .../data/rules/debian_slim_structured_17.yml | 4 ++ .../data/rules/debian_slim_structured_18.RULE | 16 ++++++++ .../data/rules/debian_slim_structured_18.yml | 3 ++ .../data/rules/debian_slim_structured_19.RULE | 1 + .../data/rules/debian_slim_structured_19.yml | 5 +++ .../data/rules/debian_slim_structured_2.RULE | 2 + .../data/rules/debian_slim_structured_2.yml | 5 +++ .../data/rules/debian_slim_structured_20.RULE | 2 + .../data/rules/debian_slim_structured_20.yml | 5 +++ .../data/rules/debian_slim_structured_21.RULE | 1 + .../data/rules/debian_slim_structured_21.yml | 5 +++ .../data/rules/debian_slim_structured_22.RULE | 1 + .../data/rules/debian_slim_structured_22.yml | 6 +++ .../data/rules/debian_slim_structured_23.RULE | 18 +++++++++ .../data/rules/debian_slim_structured_23.yml | 5 +++ .../data/rules/debian_slim_structured_25.RULE | 1 + .../data/rules/debian_slim_structured_25.yml | 4 ++ .../data/rules/debian_slim_structured_26.RULE | 2 + .../data/rules/debian_slim_structured_26.yml | 4 ++ .../data/rules/debian_slim_structured_27.RULE | 1 + .../data/rules/debian_slim_structured_27.yml | 4 ++ .../data/rules/debian_slim_structured_3.RULE | 2 + .../data/rules/debian_slim_structured_3.yml | 5 +++ .../data/rules/debian_slim_structured_4.RULE | 2 + .../data/rules/debian_slim_structured_4.yml | 5 +++ .../data/rules/debian_slim_structured_5.RULE | 1 + .../data/rules/debian_slim_structured_5.yml | 5 +++ .../data/rules/debian_slim_structured_6.RULE | 1 + .../data/rules/debian_slim_structured_6.yml | 5 +++ .../data/rules/debian_slim_structured_7.RULE | 1 + .../data/rules/debian_slim_structured_7.yml | 5 +++ .../data/rules/debian_slim_structured_8.RULE | 1 + .../data/rules/debian_slim_structured_8.yml | 5 +++ .../data/rules/debian_slim_structured_9.RULE | 2 + .../data/rules/debian_slim_structured_9.yml | 3 ++ .../rules/debian_slim_unstructured_1.RULE | 1 + .../data/rules/debian_slim_unstructured_1.yml | 2 + .../rules/debian_slim_unstructured_10.RULE | 3 ++ .../rules/debian_slim_unstructured_10.yml | 6 +++ .../rules/debian_slim_unstructured_100.RULE | 21 ++++++++++ .../rules/debian_slim_unstructured_100.yml | 5 +++ .../rules/debian_slim_unstructured_11.RULE | 2 + .../rules/debian_slim_unstructured_11.yml | 5 +++ .../rules/debian_slim_unstructured_13.RULE | 2 + .../rules/debian_slim_unstructured_13.yml | 6 +++ .../rules/debian_slim_unstructured_16.RULE | 8 ++++ .../rules/debian_slim_unstructured_16.yml | 4 ++ .../rules/debian_slim_unstructured_18.RULE | 9 +++++ .../rules/debian_slim_unstructured_18.yml | 2 + .../rules/debian_slim_unstructured_2.RULE | 3 ++ .../data/rules/debian_slim_unstructured_2.yml | 3 ++ .../rules/debian_slim_unstructured_20.RULE | 1 + .../rules/debian_slim_unstructured_20.yml | 4 ++ .../rules/debian_slim_unstructured_22.RULE | 1 + .../rules/debian_slim_unstructured_22.yml | 3 ++ .../rules/debian_slim_unstructured_23.RULE | 7 ++++ .../rules/debian_slim_unstructured_23.yml | 3 ++ .../rules/debian_slim_unstructured_25.RULE | 1 + .../rules/debian_slim_unstructured_25.yml | 3 ++ .../rules/debian_slim_unstructured_26.RULE | 1 + .../rules/debian_slim_unstructured_26.yml | 4 ++ .../rules/debian_slim_unstructured_27.RULE | 1 + .../rules/debian_slim_unstructured_27.yml | 3 ++ .../rules/debian_slim_unstructured_28.RULE | 1 + .../rules/debian_slim_unstructured_28.yml | 3 ++ .../rules/debian_slim_unstructured_29.RULE | 1 + .../rules/debian_slim_unstructured_29.yml | 3 ++ .../rules/debian_slim_unstructured_3.RULE | 17 ++++++++ .../data/rules/debian_slim_unstructured_3.yml | 4 ++ .../rules/debian_slim_unstructured_30.RULE | 1 + .../rules/debian_slim_unstructured_30.yml | 3 ++ .../rules/debian_slim_unstructured_32.RULE | 16 ++++++++ .../rules/debian_slim_unstructured_32.yml | 2 + .../rules/debian_slim_unstructured_37.RULE | 14 +++++++ .../rules/debian_slim_unstructured_37.yml | 4 ++ .../rules/debian_slim_unstructured_39.RULE | 34 ++++++++++++++++ .../rules/debian_slim_unstructured_39.yml | 2 + .../rules/debian_slim_unstructured_4.RULE | 3 ++ .../data/rules/debian_slim_unstructured_4.yml | 4 ++ .../rules/debian_slim_unstructured_40.RULE | 18 +++++++++ .../rules/debian_slim_unstructured_40.yml | 4 ++ .../rules/debian_slim_unstructured_41.RULE | 11 ++++++ .../rules/debian_slim_unstructured_41.yml | 6 +++ .../rules/debian_slim_unstructured_42.RULE | 11 ++++++ .../rules/debian_slim_unstructured_42.yml | 6 +++ .../rules/debian_slim_unstructured_43.RULE | 7 ++++ .../rules/debian_slim_unstructured_43.yml | 6 +++ .../rules/debian_slim_unstructured_44.RULE | 21 ++++++++++ .../rules/debian_slim_unstructured_44.yml | 2 + .../rules/debian_slim_unstructured_45.RULE | 4 ++ .../rules/debian_slim_unstructured_45.yml | 4 ++ .../rules/debian_slim_unstructured_46.RULE | 19 +++++++++ .../rules/debian_slim_unstructured_46.yml | 4 ++ .../rules/debian_slim_unstructured_47.RULE | 38 ++++++++++++++++++ .../rules/debian_slim_unstructured_47.yml | 2 + .../rules/debian_slim_unstructured_48.RULE | 1 + .../rules/debian_slim_unstructured_48.yml | 4 ++ .../rules/debian_slim_unstructured_49.RULE | 5 +++ .../rules/debian_slim_unstructured_49.yml | 3 ++ .../rules/debian_slim_unstructured_5.RULE | 7 ++++ .../data/rules/debian_slim_unstructured_5.yml | 3 ++ .../rules/debian_slim_unstructured_53.RULE | 15 +++++++ .../rules/debian_slim_unstructured_53.yml | 3 ++ .../rules/debian_slim_unstructured_54.RULE | 3 ++ .../rules/debian_slim_unstructured_54.yml | 4 ++ .../rules/debian_slim_unstructured_6.RULE | 9 +++++ .../data/rules/debian_slim_unstructured_6.yml | 5 +++ .../rules/debian_slim_unstructured_61.RULE | 1 + .../rules/debian_slim_unstructured_61.yml | 2 + .../rules/debian_slim_unstructured_62.RULE | 11 ++++++ .../rules/debian_slim_unstructured_62.yml | 2 + .../rules/debian_slim_unstructured_63.RULE | 39 +++++++++++++++++++ .../rules/debian_slim_unstructured_63.yml | 5 +++ .../rules/debian_slim_unstructured_64.RULE | 1 + .../rules/debian_slim_unstructured_64.yml | 3 ++ .../rules/debian_slim_unstructured_65.RULE | 13 +++++++ .../rules/debian_slim_unstructured_65.yml | 3 ++ .../rules/debian_slim_unstructured_66.RULE | 7 ++++ .../rules/debian_slim_unstructured_66.yml | 8 ++++ .../rules/debian_slim_unstructured_67.RULE | 3 ++ .../rules/debian_slim_unstructured_67.yml | 3 ++ .../rules/debian_slim_unstructured_68.RULE | 1 + .../rules/debian_slim_unstructured_68.yml | 4 ++ .../rules/debian_slim_unstructured_69.RULE | 3 ++ .../rules/debian_slim_unstructured_69.yml | 5 +++ .../rules/debian_slim_unstructured_70.RULE | 15 +++++++ .../rules/debian_slim_unstructured_70.yml | 6 +++ .../rules/debian_slim_unstructured_71.RULE | 14 +++++++ .../rules/debian_slim_unstructured_71.yml | 6 +++ .../rules/debian_slim_unstructured_73.RULE | 1 + .../rules/debian_slim_unstructured_73.yml | 2 + .../rules/debian_slim_unstructured_75.RULE | 1 + .../rules/debian_slim_unstructured_75.yml | 3 ++ .../rules/debian_slim_unstructured_76.RULE | 23 +++++++++++ .../rules/debian_slim_unstructured_76.yml | 2 + .../rules/debian_slim_unstructured_79.RULE | 1 + .../rules/debian_slim_unstructured_79.yml | 4 ++ .../rules/debian_slim_unstructured_8.RULE | 8 ++++ .../data/rules/debian_slim_unstructured_8.yml | 5 +++ .../rules/debian_slim_unstructured_80.RULE | 4 ++ .../rules/debian_slim_unstructured_80.yml | 2 + .../rules/debian_slim_unstructured_82.RULE | 6 +++ .../rules/debian_slim_unstructured_82.yml | 2 + .../rules/debian_slim_unstructured_83.RULE | 6 +++ .../rules/debian_slim_unstructured_83.yml | 5 +++ .../rules/debian_slim_unstructured_84.RULE | 2 + .../rules/debian_slim_unstructured_84.yml | 4 ++ .../rules/debian_slim_unstructured_85.RULE | 2 + .../rules/debian_slim_unstructured_85.yml | 5 +++ .../rules/debian_slim_unstructured_86.RULE | 1 + .../rules/debian_slim_unstructured_86.yml | 4 ++ .../rules/debian_slim_unstructured_87.RULE | 1 + .../rules/debian_slim_unstructured_87.yml | 4 ++ .../rules/debian_slim_unstructured_88.RULE | 1 + .../rules/debian_slim_unstructured_88.yml | 4 ++ .../rules/debian_slim_unstructured_89.RULE | 4 ++ .../rules/debian_slim_unstructured_89.yml | 2 + .../rules/debian_slim_unstructured_9.RULE | 6 +++ .../data/rules/debian_slim_unstructured_9.yml | 6 +++ .../rules/debian_slim_unstructured_90.RULE | 2 + .../rules/debian_slim_unstructured_90.yml | 4 ++ .../rules/debian_slim_unstructured_91.RULE | 8 ++++ .../rules/debian_slim_unstructured_91.yml | 5 +++ .../rules/debian_slim_unstructured_92.RULE | 10 +++++ .../rules/debian_slim_unstructured_92.yml | 4 ++ .../rules/debian_slim_unstructured_93.RULE | 4 ++ .../rules/debian_slim_unstructured_93.yml | 5 +++ .../rules/debian_slim_unstructured_94.RULE | 6 +++ .../rules/debian_slim_unstructured_94.yml | 5 +++ .../rules/debian_slim_unstructured_96.RULE | 2 + .../rules/debian_slim_unstructured_96.yml | 3 ++ .../rules/debian_slim_unstructured_97.RULE | 2 + .../rules/debian_slim_unstructured_97.yml | 2 + .../rules/debian_slim_unstructured_98.RULE | 3 ++ .../rules/debian_slim_unstructured_98.yml | 4 ++ .../rules/debian_slim_unstructured_99.RULE | 5 +++ .../rules/debian_slim_unstructured_99.yml | 4 ++ 194 files changed, 1009 insertions(+) create mode 100644 src/licensedcode/data/rules/debian_slim_structured_1.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_structured_1.yml create mode 100644 src/licensedcode/data/rules/debian_slim_structured_10.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_structured_10.yml create mode 100644 src/licensedcode/data/rules/debian_slim_structured_11.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_structured_11.yml create mode 100644 src/licensedcode/data/rules/debian_slim_structured_12.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_structured_12.yml create mode 100644 src/licensedcode/data/rules/debian_slim_structured_13.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_structured_13.yml create mode 100644 src/licensedcode/data/rules/debian_slim_structured_14.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_structured_14.yml create mode 100644 src/licensedcode/data/rules/debian_slim_structured_15.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_structured_15.yml create mode 100644 src/licensedcode/data/rules/debian_slim_structured_16.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_structured_16.yml create mode 100644 src/licensedcode/data/rules/debian_slim_structured_17.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_structured_17.yml create mode 100644 src/licensedcode/data/rules/debian_slim_structured_18.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_structured_18.yml create mode 100644 src/licensedcode/data/rules/debian_slim_structured_19.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_structured_19.yml create mode 100644 src/licensedcode/data/rules/debian_slim_structured_2.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_structured_2.yml create mode 100644 src/licensedcode/data/rules/debian_slim_structured_20.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_structured_20.yml create mode 100644 src/licensedcode/data/rules/debian_slim_structured_21.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_structured_21.yml create mode 100644 src/licensedcode/data/rules/debian_slim_structured_22.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_structured_22.yml create mode 100644 src/licensedcode/data/rules/debian_slim_structured_23.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_structured_23.yml create mode 100644 src/licensedcode/data/rules/debian_slim_structured_25.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_structured_25.yml create mode 100644 src/licensedcode/data/rules/debian_slim_structured_26.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_structured_26.yml create mode 100644 src/licensedcode/data/rules/debian_slim_structured_27.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_structured_27.yml create mode 100644 src/licensedcode/data/rules/debian_slim_structured_3.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_structured_3.yml create mode 100644 src/licensedcode/data/rules/debian_slim_structured_4.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_structured_4.yml create mode 100644 src/licensedcode/data/rules/debian_slim_structured_5.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_structured_5.yml create mode 100644 src/licensedcode/data/rules/debian_slim_structured_6.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_structured_6.yml create mode 100644 src/licensedcode/data/rules/debian_slim_structured_7.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_structured_7.yml create mode 100644 src/licensedcode/data/rules/debian_slim_structured_8.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_structured_8.yml create mode 100644 src/licensedcode/data/rules/debian_slim_structured_9.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_structured_9.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_1.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_1.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_10.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_10.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_100.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_100.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_11.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_11.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_13.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_13.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_16.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_16.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_18.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_18.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_2.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_2.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_20.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_20.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_22.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_22.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_23.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_23.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_25.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_25.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_26.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_26.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_27.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_27.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_28.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_28.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_29.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_29.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_3.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_3.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_30.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_30.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_32.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_32.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_37.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_37.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_39.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_39.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_4.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_4.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_40.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_40.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_41.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_41.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_42.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_42.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_43.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_43.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_44.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_44.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_45.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_45.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_46.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_46.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_47.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_47.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_48.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_48.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_49.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_49.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_5.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_5.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_53.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_53.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_54.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_54.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_6.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_6.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_61.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_61.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_62.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_62.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_63.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_63.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_64.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_64.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_65.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_65.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_66.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_66.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_67.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_67.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_68.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_68.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_69.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_69.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_70.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_70.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_71.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_71.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_73.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_73.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_75.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_75.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_76.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_76.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_79.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_79.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_8.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_8.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_80.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_80.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_82.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_82.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_83.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_83.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_84.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_84.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_85.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_85.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_86.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_86.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_87.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_87.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_88.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_88.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_89.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_89.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_9.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_9.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_90.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_90.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_91.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_91.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_92.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_92.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_93.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_93.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_94.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_94.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_96.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_96.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_97.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_97.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_98.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_98.yml create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_99.RULE create mode 100644 src/licensedcode/data/rules/debian_slim_unstructured_99.yml diff --git a/src/licensedcode/data/rules/debian_slim_structured_1.RULE b/src/licensedcode/data/rules/debian_slim_structured_1.RULE new file mode 100644 index 00000000000..04369e12de9 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_1.RULE @@ -0,0 +1,2 @@ +This file has been put in the public domain. +You can do whatever you want with this file diff --git a/src/licensedcode/data/rules/debian_slim_structured_1.yml b/src/licensedcode/data/rules/debian_slim_structured_1.yml new file mode 100644 index 00000000000..00979da968d --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_1.yml @@ -0,0 +1,3 @@ +license_expression: public-domain +is_license_text: yes +minimum_coverage: 80 diff --git a/src/licensedcode/data/rules/debian_slim_structured_10.RULE b/src/licensedcode/data/rules/debian_slim_structured_10.RULE new file mode 100644 index 00000000000..3048a8965ac --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_10.RULE @@ -0,0 +1,2 @@ +On a Debian system you can find a copy of this license in +/usr/share/common-licenses/GPL-3. diff --git a/src/licensedcode/data/rules/debian_slim_structured_10.yml b/src/licensedcode/data/rules/debian_slim_structured_10.yml new file mode 100644 index 00000000000..419709049da --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_10.yml @@ -0,0 +1,5 @@ +license_expression: gpl-3.0 +is_license_reference: yes +minimum_coverage: 90 +referenced_filenames: + - /usr/share/common-licenses/LGPL-3 diff --git a/src/licensedcode/data/rules/debian_slim_structured_11.RULE b/src/licensedcode/data/rules/debian_slim_structured_11.RULE new file mode 100644 index 00000000000..f0c2fb1b3b8 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_11.RULE @@ -0,0 +1,8 @@ + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. diff --git a/src/licensedcode/data/rules/debian_slim_structured_11.yml b/src/licensedcode/data/rules/debian_slim_structured_11.yml new file mode 100644 index 00000000000..703e1cc7398 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_11.yml @@ -0,0 +1,4 @@ +license_expression: bsd-simplified +is_license_text: yes +minimum_coverage: 90 +notes: Found in Debian Copyright Files, note that the disclaimer is missing, but is present elsewhere in the file. diff --git a/src/licensedcode/data/rules/debian_slim_structured_12.RULE b/src/licensedcode/data/rules/debian_slim_structured_12.RULE new file mode 100644 index 00000000000..1003baf0a1e --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_12.RULE @@ -0,0 +1 @@ +On Debian systems, the complete text of the GNU Lesser General Public License can be found in usr/share/common-licenses/LGPL. diff --git a/src/licensedcode/data/rules/debian_slim_structured_12.yml b/src/licensedcode/data/rules/debian_slim_structured_12.yml new file mode 100644 index 00000000000..787d49d1892 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_12.yml @@ -0,0 +1,5 @@ +license_expression: lgpl-2.0-plus +is_license_reference: yes +minimum_coverage: 90 +referenced_filenames: + - /usr/share/common-licenses/LGPL diff --git a/src/licensedcode/data/rules/debian_slim_structured_13.RULE b/src/licensedcode/data/rules/debian_slim_structured_13.RULE new file mode 100644 index 00000000000..ac60bb404f6 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_13.RULE @@ -0,0 +1 @@ +The complete text of the GNU Lesser General Public License can be found in /usr/share/common-licenses/LGPL-2. diff --git a/src/licensedcode/data/rules/debian_slim_structured_13.yml b/src/licensedcode/data/rules/debian_slim_structured_13.yml new file mode 100644 index 00000000000..09d0f422a9b --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_13.yml @@ -0,0 +1,5 @@ +license_expression: lgpl-2.0 +is_license_reference: yes +minimum_coverage: 90 +referenced_filenames: + - /usr/share/common-licenses/LGPL-2 diff --git a/src/licensedcode/data/rules/debian_slim_structured_14.RULE b/src/licensedcode/data/rules/debian_slim_structured_14.RULE new file mode 100644 index 00000000000..d3a8a8e5f22 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_14.RULE @@ -0,0 +1,2 @@ + On Debian systems, the complete text of the GNU Lesser General + Public License can be found in "/usr/share/common-licenses/LGPL-3" diff --git a/src/licensedcode/data/rules/debian_slim_structured_14.yml b/src/licensedcode/data/rules/debian_slim_structured_14.yml new file mode 100644 index 00000000000..82e01a0d4da --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_14.yml @@ -0,0 +1,5 @@ +license_expression: lgpl-3.0 +is_license_reference: yes +minimum_coverage: 90 +referenced_filenames: + - /usr/share/common-licenses/LGPL-3 diff --git a/src/licensedcode/data/rules/debian_slim_structured_15.RULE b/src/licensedcode/data/rules/debian_slim_structured_15.RULE new file mode 100644 index 00000000000..e2fb3e3ee58 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_15.RULE @@ -0,0 +1 @@ +On Debian systems, the complete text of the GNU Library General Public License, version 2, can be found in /usr/share/common-licenses/LGPL-2. diff --git a/src/licensedcode/data/rules/debian_slim_structured_15.yml b/src/licensedcode/data/rules/debian_slim_structured_15.yml new file mode 100644 index 00000000000..09d0f422a9b --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_15.yml @@ -0,0 +1,5 @@ +license_expression: lgpl-2.0 +is_license_reference: yes +minimum_coverage: 90 +referenced_filenames: + - /usr/share/common-licenses/LGPL-2 diff --git a/src/licensedcode/data/rules/debian_slim_structured_16.RULE b/src/licensedcode/data/rules/debian_slim_structured_16.RULE new file mode 100644 index 00000000000..321647335e1 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_16.RULE @@ -0,0 +1 @@ +On Debian systems, the complete text of the newest version of the GNU General Public License can be found in /usr/share/common-licenses/GPL. diff --git a/src/licensedcode/data/rules/debian_slim_structured_16.yml b/src/licensedcode/data/rules/debian_slim_structured_16.yml new file mode 100644 index 00000000000..ae40a2eb6ea --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_16.yml @@ -0,0 +1,5 @@ +license_expression: gpl-1.0-plus +is_license_reference: yes +minimum_coverage: 90 +referenced_filenames: + - /usr/share/common-licenses/GPL diff --git a/src/licensedcode/data/rules/debian_slim_structured_17.RULE b/src/licensedcode/data/rules/debian_slim_structured_17.RULE new file mode 100644 index 00000000000..c227e8285cb --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_17.RULE @@ -0,0 +1,11 @@ + This is free software; you can redistribute it and/or modify + it under the terms of version 2 of the GNU General Public + License version 2 as published by the Free Software Foundation. + . + This is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + . + You should have received a copy of the GNU General Public License + along with this program. If not, see . diff --git a/src/licensedcode/data/rules/debian_slim_structured_17.yml b/src/licensedcode/data/rules/debian_slim_structured_17.yml new file mode 100644 index 00000000000..0e9e1493aa6 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_17.yml @@ -0,0 +1,4 @@ +license_expression: gpl-2.0 +is_license_notice: yes +ignorable_urls: + - https://www.gnu.org/licenses/ diff --git a/src/licensedcode/data/rules/debian_slim_structured_18.RULE b/src/licensedcode/data/rules/debian_slim_structured_18.RULE new file mode 100644 index 00000000000..9d0f6d40b27 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_18.RULE @@ -0,0 +1,16 @@ + This document and translations of it may be copied and furnished to + others, and derivative works that comment on or otherwise explain it + or assist in its implementation may be prepared, copied, published + and distributed, in whole or in part, without restriction of any + kind, provided that the above copyright notice and this paragraph + are included on all such copies and derivative works. However, this + document itself may not be modified in any way, such as by removing + the copyright notice or references to the Internet Society or other + Internet organizations, except as needed for the purpose of + developing Internet standards in which case the procedures for + copyrights defined in the Internet Standards process must be + followed, or as required to translate it into languages other than + English. + . + The limited permissions granted above are perpetual and will not be + revoked by the Internet Society or its successors or assigns. diff --git a/src/licensedcode/data/rules/debian_slim_structured_18.yml b/src/licensedcode/data/rules/debian_slim_structured_18.yml new file mode 100644 index 00000000000..fb567a034df --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_18.yml @@ -0,0 +1,3 @@ +license_expression: ietf +is_license_text: yes +relevance: 90 diff --git a/src/licensedcode/data/rules/debian_slim_structured_19.RULE b/src/licensedcode/data/rules/debian_slim_structured_19.RULE new file mode 100644 index 00000000000..7fc459d0b5a --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_19.RULE @@ -0,0 +1 @@ +On Debian systems, the full text of the GNU Lesser General Public License version 2.1 can be found in the file `/usr/share/common-licenses/LGPL-2.1'. diff --git a/src/licensedcode/data/rules/debian_slim_structured_19.yml b/src/licensedcode/data/rules/debian_slim_structured_19.yml new file mode 100644 index 00000000000..392d6a76937 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_19.yml @@ -0,0 +1,5 @@ +license_expression: lgpl-2.1 +is_license_reference: yes +minimum_coverage: 90 +referenced_filenames: + - /usr/share/common-licenses/LGPL-2.1 diff --git a/src/licensedcode/data/rules/debian_slim_structured_2.RULE b/src/licensedcode/data/rules/debian_slim_structured_2.RULE new file mode 100644 index 00000000000..c09ffc4fa10 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_2.RULE @@ -0,0 +1,2 @@ + On Debian systems, the complete text of the GNU General Public + License version 2 can be found in '/usr/share/common-licenses/GPL-2'. diff --git a/src/licensedcode/data/rules/debian_slim_structured_2.yml b/src/licensedcode/data/rules/debian_slim_structured_2.yml new file mode 100644 index 00000000000..98135b8f27a --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_2.yml @@ -0,0 +1,5 @@ +license_expression: gpl-2.0 +is_license_reference: yes +minimum_coverage: 90 +referenced_filenames: + - /usr/share/common-licenses/GPL-2 diff --git a/src/licensedcode/data/rules/debian_slim_structured_20.RULE b/src/licensedcode/data/rules/debian_slim_structured_20.RULE new file mode 100644 index 00000000000..ddfebd56751 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_20.RULE @@ -0,0 +1,2 @@ +To the extent possible under law, the author(s) have dedicated all copyright and related and neighboring rights to this software to the public domain worldwide. This software is distributed without any warranty. +On Debian systems, the complete text of the CC0 license, version 1.0, can be found in /usr/share/common-licenses/CC0-1.0. diff --git a/src/licensedcode/data/rules/debian_slim_structured_20.yml b/src/licensedcode/data/rules/debian_slim_structured_20.yml new file mode 100644 index 00000000000..2fc3962386d --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_20.yml @@ -0,0 +1,5 @@ +license_expression: cc0-1.0 +is_license_notice: yes +minimum_coverage: 80 +referenced_filenames: + - /usr/share/common-licenses/CC0-1.0 diff --git a/src/licensedcode/data/rules/debian_slim_structured_21.RULE b/src/licensedcode/data/rules/debian_slim_structured_21.RULE new file mode 100644 index 00000000000..519b9f7b690 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_21.RULE @@ -0,0 +1 @@ +On Debian systems, the complete text of the CC0 license, version 1.0, can be found in /usr/share/common-licenses/CC0-1.0. diff --git a/src/licensedcode/data/rules/debian_slim_structured_21.yml b/src/licensedcode/data/rules/debian_slim_structured_21.yml new file mode 100644 index 00000000000..b31a8216a8f --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_21.yml @@ -0,0 +1,5 @@ +license_expression: cc0-1.0 +is_license_reference: yes +minimum_coverage: 90 +referenced_filenames: + - /usr/share/common-licenses/CC0-1.0 diff --git a/src/licensedcode/data/rules/debian_slim_structured_22.RULE b/src/licensedcode/data/rules/debian_slim_structured_22.RULE new file mode 100644 index 00000000000..06c09d0c0ac --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_22.RULE @@ -0,0 +1 @@ +On Debian systems, the complete text of the GNU Free Documentation License can be found in `/usr/share/common-licenses/GFDL-3'. diff --git a/src/licensedcode/data/rules/debian_slim_structured_22.yml b/src/licensedcode/data/rules/debian_slim_structured_22.yml new file mode 100644 index 00000000000..56e8f3739a8 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_22.yml @@ -0,0 +1,6 @@ +license_expression: gfdl-1.1-plus +is_license_reference: yes +minimum_coverage: 95 +referenced_filenames: + - /usr/share/common-licenses/GFDL-3 +notes: GFDL-3 deosn't exist, GFDL-1.3 does. diff --git a/src/licensedcode/data/rules/debian_slim_structured_23.RULE b/src/licensedcode/data/rules/debian_slim_structured_23.RULE new file mode 100644 index 00000000000..74fcf98ae9f --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_23.RULE @@ -0,0 +1,18 @@ +Permission is granted to make and distribute verbatim copies of + this manual provided the copyright notice and this permission notice + are preserved on all copies. + . + Permission is granted to process this file through troff and print the + results, provided the printed document carries copying permission + notice identical to this one except for the removal of this paragraph + (this paragraph not being relevant to the printed manual). + . + Permission is granted to copy and distribute modified versions of this + manual under the conditions for verbatim copying, provided that the entire + resulting derived work is distributed under the terms of a permission + notice identical to this one. + . + Permission is granted to copy and distribute translations of this manual + into another language, under the above conditions for modified versions, + except that this permission notice may be stated in a translation approved + by the Foundation. diff --git a/src/licensedcode/data/rules/debian_slim_structured_23.yml b/src/licensedcode/data/rules/debian_slim_structured_23.yml new file mode 100644 index 00000000000..cdd813cf0e8 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_23.yml @@ -0,0 +1,5 @@ +license_expression: latex2e +is_license_notice: yes +relevance: 85 +notes: there is some extra wording added and an ignore paragraph + diff --git a/src/licensedcode/data/rules/debian_slim_structured_25.RULE b/src/licensedcode/data/rules/debian_slim_structured_25.RULE new file mode 100644 index 00000000000..5941a834e52 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_25.RULE @@ -0,0 +1 @@ +Autogenerated files with permissive licenses. diff --git a/src/licensedcode/data/rules/debian_slim_structured_25.yml b/src/licensedcode/data/rules/debian_slim_structured_25.yml new file mode 100644 index 00000000000..94cd3b8a4fe --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_25.yml @@ -0,0 +1,4 @@ +license_expression: other-permissive AND free-unknown +is_license_notice: yes +relevance: 20 + diff --git a/src/licensedcode/data/rules/debian_slim_structured_26.RULE b/src/licensedcode/data/rules/debian_slim_structured_26.RULE new file mode 100644 index 00000000000..e8ee20b96b5 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_26.RULE @@ -0,0 +1,2 @@ + I believe that most files in debian/ hardly contains any creative + expression eligible for copyright. diff --git a/src/licensedcode/data/rules/debian_slim_structured_26.yml b/src/licensedcode/data/rules/debian_slim_structured_26.yml new file mode 100644 index 00000000000..1161e14f35a --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_26.yml @@ -0,0 +1,4 @@ +license_expression: public-domain +is_license_notice: yes +minimum_coverage: 100 +notes: Seen in debian copyright files for libhogween and libnettle with tag `public-domain` and refers to files in public domain. diff --git a/src/licensedcode/data/rules/debian_slim_structured_27.RULE b/src/licensedcode/data/rules/debian_slim_structured_27.RULE new file mode 100644 index 00000000000..f9732e2585e --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_27.RULE @@ -0,0 +1 @@ + No copyright to license. diff --git a/src/licensedcode/data/rules/debian_slim_structured_27.yml b/src/licensedcode/data/rules/debian_slim_structured_27.yml new file mode 100644 index 00000000000..e46aef0aed1 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_27.yml @@ -0,0 +1,4 @@ +license_expression: public-domain +is_license_notice: yes +minimum_coverage: 100 +notes: Seen in debian copyright file for liblzma. diff --git a/src/licensedcode/data/rules/debian_slim_structured_3.RULE b/src/licensedcode/data/rules/debian_slim_structured_3.RULE new file mode 100644 index 00000000000..8e43c9d7479 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_3.RULE @@ -0,0 +1,2 @@ + On Debian systems, the complete text of the GNU Lesser General Public + License version 2.1 can be found in '/usr/share/common-licenses/LGPL-2.1'. diff --git a/src/licensedcode/data/rules/debian_slim_structured_3.yml b/src/licensedcode/data/rules/debian_slim_structured_3.yml new file mode 100644 index 00000000000..392d6a76937 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_3.yml @@ -0,0 +1,5 @@ +license_expression: lgpl-2.1 +is_license_reference: yes +minimum_coverage: 90 +referenced_filenames: + - /usr/share/common-licenses/LGPL-2.1 diff --git a/src/licensedcode/data/rules/debian_slim_structured_4.RULE b/src/licensedcode/data/rules/debian_slim_structured_4.RULE new file mode 100644 index 00000000000..0208e930fd8 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_4.RULE @@ -0,0 +1,2 @@ + On Debian systems, the complete text of the GNU General Public + License version 3 can be found in '/usr/share/common-licenses/GPL-3'. diff --git a/src/licensedcode/data/rules/debian_slim_structured_4.yml b/src/licensedcode/data/rules/debian_slim_structured_4.yml new file mode 100644 index 00000000000..7754a2350d6 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_4.yml @@ -0,0 +1,5 @@ +license_expression: gpl-3.0 +is_license_reference: yes +minimum_coverage: 90 +referenced_filenames: + - /usr/share/common-licenses/GPL-3 diff --git a/src/licensedcode/data/rules/debian_slim_structured_5.RULE b/src/licensedcode/data/rules/debian_slim_structured_5.RULE new file mode 100644 index 00000000000..9f19d16d8d7 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_5.RULE @@ -0,0 +1 @@ +can be found in /usr/share/common-licenses/LGPL-2 diff --git a/src/licensedcode/data/rules/debian_slim_structured_5.yml b/src/licensedcode/data/rules/debian_slim_structured_5.yml new file mode 100644 index 00000000000..09d0f422a9b --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_5.yml @@ -0,0 +1,5 @@ +license_expression: lgpl-2.0 +is_license_reference: yes +minimum_coverage: 90 +referenced_filenames: + - /usr/share/common-licenses/LGPL-2 diff --git a/src/licensedcode/data/rules/debian_slim_structured_6.RULE b/src/licensedcode/data/rules/debian_slim_structured_6.RULE new file mode 100644 index 00000000000..143946d7cc5 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_6.RULE @@ -0,0 +1 @@ +can be found in /usr/share/common-licenses/LGPL-2.1 diff --git a/src/licensedcode/data/rules/debian_slim_structured_6.yml b/src/licensedcode/data/rules/debian_slim_structured_6.yml new file mode 100644 index 00000000000..392d6a76937 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_6.yml @@ -0,0 +1,5 @@ +license_expression: lgpl-2.1 +is_license_reference: yes +minimum_coverage: 90 +referenced_filenames: + - /usr/share/common-licenses/LGPL-2.1 diff --git a/src/licensedcode/data/rules/debian_slim_structured_7.RULE b/src/licensedcode/data/rules/debian_slim_structured_7.RULE new file mode 100644 index 00000000000..c72bd40c843 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_7.RULE @@ -0,0 +1 @@ +can be found in /usr/share/common-licenses/LGPL diff --git a/src/licensedcode/data/rules/debian_slim_structured_7.yml b/src/licensedcode/data/rules/debian_slim_structured_7.yml new file mode 100644 index 00000000000..879e22a2e3a --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_7.yml @@ -0,0 +1,5 @@ +license_expression: lgpl-2.0-plus +is_license_reference: yes +minimum_coverage: 90 +referenced_filenames: + - /usr/share/common-licenses/LGPL \ No newline at end of file diff --git a/src/licensedcode/data/rules/debian_slim_structured_8.RULE b/src/licensedcode/data/rules/debian_slim_structured_8.RULE new file mode 100644 index 00000000000..fdc2edd3a49 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_8.RULE @@ -0,0 +1 @@ +can be found in /usr/share/common-licenses/LGPL-3 diff --git a/src/licensedcode/data/rules/debian_slim_structured_8.yml b/src/licensedcode/data/rules/debian_slim_structured_8.yml new file mode 100644 index 00000000000..da9c2c3aa26 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_8.yml @@ -0,0 +1,5 @@ +license_expression: lgpl-3.0 +is_license_reference: yes +minimum_coverage: 90 +referenced_filenames: + - /usr/share/common-licenses/LGPL-3 \ No newline at end of file diff --git a/src/licensedcode/data/rules/debian_slim_structured_9.RULE b/src/licensedcode/data/rules/debian_slim_structured_9.RULE new file mode 100644 index 00000000000..50c94e01965 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_9.RULE @@ -0,0 +1,2 @@ +The Debian packaging files are in the public domain. +You may freely use, modify, distribute, and relicense them. \ No newline at end of file diff --git a/src/licensedcode/data/rules/debian_slim_structured_9.yml b/src/licensedcode/data/rules/debian_slim_structured_9.yml new file mode 100644 index 00000000000..c9a62026c20 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_structured_9.yml @@ -0,0 +1,3 @@ +license_expression: public-domain +is_license_text: yes +minimum_coverage: 80 \ No newline at end of file diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_1.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_1.RULE new file mode 100644 index 00000000000..d8dd60c152d --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_1.RULE @@ -0,0 +1 @@ +The library is licensed under the following terms \ No newline at end of file diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_1.yml b/src/licensedcode/data/rules/debian_slim_unstructured_1.yml new file mode 100644 index 00000000000..f9a9c1348ac --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_1.yml @@ -0,0 +1,2 @@ +license_expression: unknown-license-reference +is_license_intro: yes diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_10.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_10.RULE new file mode 100644 index 00000000000..f1e233bcecd --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_10.RULE @@ -0,0 +1,3 @@ +On Debian GNU/Linux systems, the complete text of the GNU General +Public License is in `/usr/share/common-licenses/GPL', the Artistic +license in `/usr/share/common-licenses/Artistic' diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_10.yml b/src/licensedcode/data/rules/debian_slim_unstructured_10.yml new file mode 100644 index 00000000000..b118f98ef8b --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_10.yml @@ -0,0 +1,6 @@ +license_expression: artistic-perl-1.0 OR gpl-1.0-plus +is_license_reference: yes +minimum_coverage: 90 +referenced_filenames: + - /usr/share/common-licenses/Artistic + - /usr/share/coomon-licenses/GPL diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_100.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_100.RULE new file mode 100644 index 00000000000..724a00b4cd0 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_100.RULE @@ -0,0 +1,21 @@ + The library is distributed under the terms of the GNU Lesser + General Public License (LGPL); see the file COPYING.LIB for the + actual terms. The helper programs + as well as the documentation are distributed under the terms of + the GNU General Public License (GPL); see the file COPYING for the + actual terms. + + This library used to be available under the GPL - this was changed + with version 1.1.7 with the rationale that there are now many free + crypto libraries available and many of them come with capabilities + similar to Libcrypt. We decided that to foster the use of + cryptography in Free Software an LGPLed library would make more + sense because it avoids problems due to license incompatibilities + between some Free Software licenses and the GPL. + + Please note that in many cases it is better for a library to be + licensed under the GPL, so that it provides an advantage for free + software projects. The Lesser GPL is so named because it does + less to protect the freedom of the users of the code that it + covers. See http://www.gnu.org/philosophy/why-not-lgpl.html for + more explanation. diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_100.yml b/src/licensedcode/data/rules/debian_slim_unstructured_100.yml new file mode 100644 index 00000000000..5f9b4765acf --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_100.yml @@ -0,0 +1,5 @@ +license_expression: lgpl-2.0-plus AND gpl-1.0-plus +is_license_notice: yes +minimum_coverage: 90 +ignorable_urls: + - http://www.gnu.org/philosophy/why-not-lgpl.html diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_11.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_11.RULE new file mode 100644 index 00000000000..6fa2ee57205 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_11.RULE @@ -0,0 +1,2 @@ +On Debian GNU/Linux systems, the complete text of the Artistic +license is in `/usr/share/common-licenses/Artistic' diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_11.yml b/src/licensedcode/data/rules/debian_slim_unstructured_11.yml new file mode 100644 index 00000000000..7af9db530d7 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_11.yml @@ -0,0 +1,5 @@ +license_expression: artistic-perl-1.0 +is_license_reference: yes +minimum_coverage: 90 +referenced_filenames: + - /usr/share/common-licenses/Artistic diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_13.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_13.RULE new file mode 100644 index 00000000000..b1ccb747b5b --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_13.RULE @@ -0,0 +1,2 @@ +License for redistribution is by either the Artistic License or +the GNU General Public License (v1). diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_13.yml b/src/licensedcode/data/rules/debian_slim_unstructured_13.yml new file mode 100644 index 00000000000..62f05e758cd --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_13.yml @@ -0,0 +1,6 @@ +license_expression: artistic-perl-1.0 OR gpl-1.0 +is_license_reference: yes +minimum_coverage: 90 +referenced_filenames: + - /usr/share/common-licenses/Artistic + - /usr/share/coomon-licenses/GPL diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_16.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_16.RULE new file mode 100644 index 00000000000..af87f911233 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_16.RULE @@ -0,0 +1,8 @@ +;; Everyone is granted permission to copy, modify and redistribute +;; , but only under the conditions described in the +;; GNU Emacs General Public License. A copy of this license is +;; supposed to have been given to you along with so you +;; can know your rights and responsibilities. It should be in a +;; file named COPYING. Among other things, the copyright notice +;; and this notice must be preserved on all copies. + diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_16.yml b/src/licensedcode/data/rules/debian_slim_unstructured_16.yml new file mode 100644 index 00000000000..dabacae3440 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_16.yml @@ -0,0 +1,4 @@ +license_expression: gpl-1.0-plus +is_license_notice: yes +referenced_filenames: + - COPYING \ No newline at end of file diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_18.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_18.RULE new file mode 100644 index 00000000000..d51b3177d8c --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_18.RULE @@ -0,0 +1,9 @@ +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 Software Foundation; either version 3, or (at your option) +any later version. + +is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_18.yml b/src/licensedcode/data/rules/debian_slim_unstructured_18.yml new file mode 100644 index 00000000000..013ccfaa4d1 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_18.yml @@ -0,0 +1,2 @@ +license_expression: gpl-3.0-plus +is_license_notice: yes diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_2.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_2.RULE new file mode 100644 index 00000000000..f55d6a0d165 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_2.RULE @@ -0,0 +1,3 @@ +The following runtime libraries are licensed under the terms of the +GNU General Public License (v3 or later) with version 3.1 of the GCC +Runtime Library Exception (included in this file): diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_2.yml b/src/licensedcode/data/rules/debian_slim_unstructured_2.yml new file mode 100644 index 00000000000..6990c364edf --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_2.yml @@ -0,0 +1,3 @@ +license_expression: gpl-3.0-plus WITH gcc-exception-3.1 +is_license_notice: yes +minimum_coverage: 90 diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_20.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_20.RULE new file mode 100644 index 00000000000..5cfc356c752 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_20.RULE @@ -0,0 +1 @@ +This has a mix of licenses, both LGPL-2.1 and GPL-3.0, plus the apparently \ No newline at end of file diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_20.yml b/src/licensedcode/data/rules/debian_slim_unstructured_20.yml new file mode 100644 index 00000000000..f1acdf08a4b --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_20.yml @@ -0,0 +1,4 @@ +license_expression: gpl-3.0 AND lgpl-2.1 +is_license_notice: yes +relevance: 95 + diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_22.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_22.RULE new file mode 100644 index 00000000000..96eee543252 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_22.RULE @@ -0,0 +1 @@ +mix of GPL-3.0 and LGPL-3.0 diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_22.yml b/src/licensedcode/data/rules/debian_slim_unstructured_22.yml new file mode 100644 index 00000000000..1a50a4765b9 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_22.yml @@ -0,0 +1,3 @@ +license_expression: lgpl-3.0 AND gpl-3.0 +is_license_notice: yes +minimum_coverage: 70 diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_23.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_23.RULE new file mode 100644 index 00000000000..a9ed36b1914 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_23.RULE @@ -0,0 +1,7 @@ +;; Everyone is granted permission to copy, modify and redistribute +;; , but only under the conditions described in the +;; General Public License. A copy of this license is +;; supposed to have been given to you along with so you +;; can know your rights and responsibilities. It should be in a +;; file named COPYING. Among other things, the copyright notice +;; and this notice must be preserved on all copies. diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_23.yml b/src/licensedcode/data/rules/debian_slim_unstructured_23.yml new file mode 100644 index 00000000000..bcca35d173f --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_23.yml @@ -0,0 +1,3 @@ +license_expression: gpl-1.0-plus +is_license_notice: yes + diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_25.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_25.RULE new file mode 100644 index 00000000000..94c2f264c07 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_25.RULE @@ -0,0 +1 @@ +mix of GPL-3.0 and LGPL-2.1/3 \ No newline at end of file diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_25.yml b/src/licensedcode/data/rules/debian_slim_unstructured_25.yml new file mode 100644 index 00000000000..2d117c5899e --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_25.yml @@ -0,0 +1,3 @@ +license_expression: gpl-3.0 AND lgpl-2.1 AND lgpl-3.0 +is_license_notice: yes +minimum_coverage: 95 diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_26.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_26.RULE new file mode 100644 index 00000000000..e2a1cd3918e --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_26.RULE @@ -0,0 +1 @@ +Mix of LGPL-2.1 and GPL-3.0. diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_26.yml b/src/licensedcode/data/rules/debian_slim_unstructured_26.yml new file mode 100644 index 00000000000..ccb8d9af1b0 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_26.yml @@ -0,0 +1,4 @@ +license_expression: lgpl-2.0 AND gpl-3.0 +is_license_notice: yes +minimum_coverage: 90 + diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_27.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_27.RULE new file mode 100644 index 00000000000..e6319342d04 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_27.RULE @@ -0,0 +1 @@ +Mix of GPL-3 and LGPL-2.1. diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_27.yml b/src/licensedcode/data/rules/debian_slim_unstructured_27.yml new file mode 100644 index 00000000000..fd62ad1e82f --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_27.yml @@ -0,0 +1,3 @@ +license_expression: gpl-3.0 AND lgpl-2.1 +is_license_notice: yes +minimum_coverage: 90 diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_28.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_28.RULE new file mode 100644 index 00000000000..9eb14b9ab77 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_28.RULE @@ -0,0 +1 @@ +Mix of GPL-2+ and GPL-3+ diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_28.yml b/src/licensedcode/data/rules/debian_slim_unstructured_28.yml new file mode 100644 index 00000000000..d7baa02499b --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_28.yml @@ -0,0 +1,3 @@ +license_expression: gpl-2.0-plus AND gpl-3.0-plus +is_license_notice: yes +minimum_coverage: 90 diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_29.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_29.RULE new file mode 100644 index 00000000000..7d05b752760 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_29.RULE @@ -0,0 +1 @@ +Mix of LGPL-2.1, LGPL-3 and GPL-3. diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_29.yml b/src/licensedcode/data/rules/debian_slim_unstructured_29.yml new file mode 100644 index 00000000000..551ee89298b --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_29.yml @@ -0,0 +1,3 @@ +license_expression: lgpl-2.1 AND lgpl-3.0 AND gpl-3.0 +is_license_notice: yes +minimum_coverage: 95 diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_3.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_3.RULE new file mode 100644 index 00000000000..69a3fb610a5 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_3.RULE @@ -0,0 +1,17 @@ +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 +Software Foundation; either version 3, or (at your option) any later +version. + +is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +Files that have exception clauses are licensed under the terms of the +GNU General Public License; either version 3, or (at your option) any +later version. + +On Debian GNU/Linux systems, the complete text of the GNU General +Public License is in `/usr/share/common-licenses/GPL', version 3 of this +license in `/usr/share/common-licenses/GPL-3'. diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_3.yml b/src/licensedcode/data/rules/debian_slim_unstructured_3.yml new file mode 100644 index 00000000000..17550e16ca6 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_3.yml @@ -0,0 +1,4 @@ +license_expression: gpl-3.0-plus +is_license_notice: yes +referenced_filenames: + - /usr/share/common-licenses/GPL-3 diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_30.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_30.RULE new file mode 100644 index 00000000000..779ac371cbc --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_30.RULE @@ -0,0 +1 @@ +Mix of LGPL-2.1 and LGPL-3. diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_30.yml b/src/licensedcode/data/rules/debian_slim_unstructured_30.yml new file mode 100644 index 00000000000..9d654ac9c16 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_30.yml @@ -0,0 +1,3 @@ +license_expression: lgpl-2.1 AND lgpl-3.0 +is_license_notice: yes +minimum_coverage: 95 diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_32.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_32.RULE new file mode 100644 index 00000000000..443fd8c303e --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_32.RULE @@ -0,0 +1,16 @@ +The subdirectory is a collection of software from several sources. +Each file may have its own copyright/license that is embedded in the source +file. + +This list documents those licenses which are more restrictive than +a BSD-like license or require the copyright notice +to be duplicated in documentation and/or other materials associated with +the distribution. Certain licenses documented here only apply to +specific targets. Certain clauses only apply if you are building the +code as part of your binary. + +Note that this list may omit certain licenses that +only pertain to the copying/modifying of the individual source code. +If you are distributing the source code, then you do not need to +worry about these omitted licenses, so long as you do not modify the +copyright information already in place. diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_32.yml b/src/licensedcode/data/rules/debian_slim_unstructured_32.yml new file mode 100644 index 00000000000..f9a9c1348ac --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_32.yml @@ -0,0 +1,2 @@ +license_expression: unknown-license-reference +is_license_intro: yes diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_37.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_37.RULE new file mode 100644 index 00000000000..8aab9e1f997 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_37.RULE @@ -0,0 +1,14 @@ +This file is part of. + + is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with ; if not, see . diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_37.yml b/src/licensedcode/data/rules/debian_slim_unstructured_37.yml new file mode 100644 index 00000000000..5aeea4d698f --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_37.yml @@ -0,0 +1,4 @@ +license_expression: lgpl-2.1-plus +is_license_notice: yes +ignorable_urls: + - http://www.gnu.org/licenses/ diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_39.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_39.RULE new file mode 100644 index 00000000000..7ae385970fc --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_39.RULE @@ -0,0 +1,34 @@ + + Disclaimer and license: Regarding this entire document or any + portion of it (including the pseudocode and C code), the author + makes no guarantees and is not responsible for any damage resulting + from its use. The author grants irrevocable permission to anyone + to use, modify, and distribute it in any way that does not diminish + the rights of anyone else to use, modify, and distribute it, + provided that redistributed derivative works do not contain + misleading author or version information. Derivative works need + not be licensed under similar terms. + + This document and translations of it may be copied and furnished to + others, and derivative works that comment on or otherwise explain it + or assist in its implementation may be prepared, copied, published + and distributed, in whole or in part, without restriction of any + kind, provided that the above copyright notice and this paragraph are + included on all such copies and derivative works. However, this + document itself may not be modified in any way, such as by removing + the copyright notice or references to the Internet Society or other + Internet organizations, except as needed for the purpose of + developing Internet standards in which case the procedures for + copyrights defined in the Internet Standards process must be + followed, or as required to translate it into languages other than + English. + + The limited permissions granted above are perpetual and will not be + revoked by the Internet Society or its successors or assigns. + + This document and the information contained herein is provided on an + "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING + TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION + HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF + MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_39.yml b/src/licensedcode/data/rules/debian_slim_unstructured_39.yml new file mode 100644 index 00000000000..8d00b329b33 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_39.yml @@ -0,0 +1,2 @@ +license_expression: other-permissive AND ietf +is_license_text: yes diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_4.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_4.RULE new file mode 100644 index 00000000000..486befa2d39 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_4.RULE @@ -0,0 +1,3 @@ +The overall license for is the GNU Lesser General Public +License, version 2.1 (or, at your option, any later version); see +the file COPYING.LIB for the full terms of this license. \ No newline at end of file diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_4.yml b/src/licensedcode/data/rules/debian_slim_unstructured_4.yml new file mode 100644 index 00000000000..41aa1afa917 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_4.yml @@ -0,0 +1,4 @@ +license_expression: lgpl-2.1-plus +is_license_notice: yes +referenced_filenames: + - COPYING.LIB diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_40.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_40.RULE new file mode 100644 index 00000000000..9beef4f85b1 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_40.RULE @@ -0,0 +1,18 @@ + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +On Debian GNU/Linux systems, the complete text of the Lesser GNU General +Public License can be found in `/usr/share/common-licenses/LGPL'. + diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_40.yml b/src/licensedcode/data/rules/debian_slim_unstructured_40.yml new file mode 100644 index 00000000000..08550362d99 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_40.yml @@ -0,0 +1,4 @@ +license_expression: lgpl-2.1-plus +is_license_notice: yes +referenced_filenames: + - /usr/share/common-licenses/LGPL diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_41.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_41.RULE new file mode 100644 index 00000000000..5041dc26d28 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_41.RULE @@ -0,0 +1,11 @@ + The Debian specific changes are and distributed under the terms of the GNU + General Public License, version 2. + + +On Debian GNU/Linux systems, the complete text of the GNU General +Public License can be found in `/usr/share/common-licenses/GPL'. + + A copy of the GNU General Public License is also available at + . You may also obtain + it by writing to the Free Software Foundation, Inc., 51 Franklin + St, Fifth Floor, Boston, MA 02110-1301 USA diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_41.yml b/src/licensedcode/data/rules/debian_slim_unstructured_41.yml new file mode 100644 index 00000000000..e7d53ddd8bf --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_41.yml @@ -0,0 +1,6 @@ +license_expression: gpl-2.0 +is_license_notice: yes +referenced_filenames: + - /usr/share/common-licenses/GPL +ignorable_urls: + - http://www.gnu.org/copyleft/gpl.html diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_42.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_42.RULE new file mode 100644 index 00000000000..b981ec148b3 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_42.RULE @@ -0,0 +1,11 @@ +distributed under the terms of the GNU + General Public License, version 2. + + +On Debian GNU/Linux systems, the complete text of the GNU General +Public License can be found in `/usr/share/common-licenses/GPL'. + + A copy of the GNU General Public License is also available at + . You may also obtain + it by writing to the Free Software Foundation, Inc., 51 Franklin + St, Fifth Floor, Boston, MA 02110-1301 USA diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_42.yml b/src/licensedcode/data/rules/debian_slim_unstructured_42.yml new file mode 100644 index 00000000000..42f08416a50 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_42.yml @@ -0,0 +1,6 @@ +license_expression: gpl-2.0 +is_license_notice: yes +referenced_filenames: + - /usr/share/common-licenses/GPL +ignorable_urls: + - http://www.gnu.org/copyleft/gpl.html \ No newline at end of file diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_43.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_43.RULE new file mode 100644 index 00000000000..cebeb2a2607 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_43.RULE @@ -0,0 +1,7 @@ +On Debian GNU/Linux systems, the complete text of the GNU General +Public License can be found in `/usr/share/common-licenses/GPL'. + + A copy of the GNU General Public License is also available at + . You may also obtain + it by writing to the Free Software Foundation, Inc., 51 Franklin + St, Fifth Floor, Boston, MA 02110-1301 USA diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_43.yml b/src/licensedcode/data/rules/debian_slim_unstructured_43.yml new file mode 100644 index 00000000000..831492636ea --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_43.yml @@ -0,0 +1,6 @@ +license_expression: gpl-1.0-plus +is_license_notice: yes +referenced_filenames: + - /usr/share/common-licenses/GPL +ignorable_urls: + - http://www.gnu.org/copyleft/gpl.html diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_44.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_44.RULE new file mode 100644 index 00000000000..6bfe9992b18 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_44.RULE @@ -0,0 +1,21 @@ +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_44.yml b/src/licensedcode/data/rules/debian_slim_unstructured_44.yml new file mode 100644 index 00000000000..19561caed97 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_44.yml @@ -0,0 +1,2 @@ +license_expression: bsd-unmodified +is_license_text: yes diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_45.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_45.RULE new file mode 100644 index 00000000000..1c0fe329011 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_45.RULE @@ -0,0 +1,4 @@ +redistributed under the terms of the GNU GPL, Version 2 or later, +found on Debian systems in the file /usr/share/common-licenses/GPL-2. + +which is in the public domain. diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_45.yml b/src/licensedcode/data/rules/debian_slim_unstructured_45.yml new file mode 100644 index 00000000000..fc94dc4c8f2 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_45.yml @@ -0,0 +1,4 @@ +license_expression: gpl-2.0-plus +is_license_notice: yes +referenced_filenames: + - /usr/share/common-licenses/GPL-2 diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_46.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_46.RULE new file mode 100644 index 00000000000..80dadccbe38 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_46.RULE @@ -0,0 +1,19 @@ +and is GPL V2 as well. + + This program 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 Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the + Free Software Foundation, Inc., + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. + +On Debian GNU/Linux systems, the complete text of the GNU General +Public License can be found in `/usr/share/common-licenses/GPL-2'. diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_46.yml b/src/licensedcode/data/rules/debian_slim_unstructured_46.yml new file mode 100644 index 00000000000..fc94dc4c8f2 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_46.yml @@ -0,0 +1,4 @@ +license_expression: gpl-2.0-plus +is_license_notice: yes +referenced_filenames: + - /usr/share/common-licenses/GPL-2 diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_47.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_47.RULE new file mode 100644 index 00000000000..a1e1ad52c70 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_47.RULE @@ -0,0 +1,38 @@ +Unless otherwise *explicitly* stated the following text describes the +licensed conditions under which the contents of this release +may be distributed: +------------------------------------------------------------------------- +Redistribution and use in source and binary forms of with +or without modification, are permitted provided that the following +conditions are met: + +1. Redistributions of source code must retain any existing copyright + notice, and this entire permission notice in its entirety, + including the disclaimer of warranties. + +2. Redistributions in binary form must reproduce all prior and current + copyright notices, this list of conditions, and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + +3. The name of any author may not be used to endorse or promote + products derived from this software without their specific prior + written permission. + +ALTERNATIVELY, this product may be distributed under the terms of the +GNU General Public License, in which case the provisions of the GNU +GPL are required INSTEAD OF the above restrictions. (This clause is +necessary due to a potential conflict between the GNU GPL and the +restrictions contained in a BSD-style copyright.) + +THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR +TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE +USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_47.yml b/src/licensedcode/data/rules/debian_slim_unstructured_47.yml new file mode 100644 index 00000000000..9349999f74d --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_47.yml @@ -0,0 +1,2 @@ +license_expression: bsd-new OR lgpl-2.0-plus +is_license_text: yes diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_48.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_48.RULE new file mode 100644 index 00000000000..0d2ff48fbe3 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_48.RULE @@ -0,0 +1 @@ +ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ PCRE2 LICENCE diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_48.yml b/src/licensedcode/data/rules/debian_slim_unstructured_48.yml new file mode 100644 index 00000000000..74b5f83bd3a --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_48.yml @@ -0,0 +1,4 @@ +license_expression: pcre +is_license_reference: yes +ignorable_urls: + - ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_49.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_49.RULE new file mode 100644 index 00000000000..b1e1735b3fd --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_49.RULE @@ -0,0 +1,5 @@ + +Many individual files are under other licenses. This file provides an +inventory of the copyright holders and licenses of all files in the +source tree. For specific licensing terms consult the files themselves. + diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_49.yml b/src/licensedcode/data/rules/debian_slim_unstructured_49.yml new file mode 100644 index 00000000000..15dc40f9d45 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_49.yml @@ -0,0 +1,3 @@ +license_expression: unknown-license-reference +is_license_intro: yes + diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_5.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_5.RULE new file mode 100644 index 00000000000..fc99b2a8d38 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_5.RULE @@ -0,0 +1,7 @@ + The library is distributed under the terms of the GNU Lesser + General Public License (LGPL); see the file COPYING.LIB for the + actual terms. The helper programs + as well as the documentation are distributed under the terms of + the GNU General Public License (GPL); see the file COPYING for the + actual terms. + diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_5.yml b/src/licensedcode/data/rules/debian_slim_unstructured_5.yml new file mode 100644 index 00000000000..46186e625fe --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_5.yml @@ -0,0 +1,3 @@ +license_expression: lgpl-2.0-plus AND gpl-1.0-plus +is_license_notice: yes +minimum_coverage: 90 diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_53.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_53.RULE new file mode 100644 index 00000000000..0ac67e9157e --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_53.RULE @@ -0,0 +1,15 @@ + +* Individual files may be covered by other copyrights +* (as noted in the file itself.) +* +* This material was originally written and compiled by Wietse Venema at +* Eindhoven University of Technology, The Netherlands, in 1990, 1991, +* 1992, 1993, 1994 and 1995. +* +* Redistribution and use in source and binary forms are permitted +* provided that this entire copyright notice is duplicated in all such +* copies. +* +* This software is provided "as is" and without any expressed or implied +* warranties, including, without limitation, the implied warranties of +* merchantibility and fitness for any particular purpose. diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_53.yml b/src/licensedcode/data/rules/debian_slim_unstructured_53.yml new file mode 100644 index 00000000000..df3d0f929df --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_53.yml @@ -0,0 +1,3 @@ +license_expression: tcp-wrappers +is_license_text: yes + diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_54.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_54.RULE new file mode 100644 index 00000000000..3d56099fa2c --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_54.RULE @@ -0,0 +1,3 @@ +Comment: On Debian systems the complete license text is available in + /usr/share/common-licenses/Apache-2.0 + diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_54.yml b/src/licensedcode/data/rules/debian_slim_unstructured_54.yml new file mode 100644 index 00000000000..61eb9344420 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_54.yml @@ -0,0 +1,4 @@ +license_expression: apache-2.0 +is_license_reference: yes +referenced_filenames: + - /usr/share/common-licenses/Apache-2.0 diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_6.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_6.RULE new file mode 100644 index 00000000000..1806ddf01c1 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_6.RULE @@ -0,0 +1,9 @@ + +Parts of this work are licensed under the terms of the GNU General +Public License. On Debian systems, the complete text of this license +can be found in /usr/share/common-licenses/GPL. + +Parts of this work are licensed under the terms of the GNU Library +General Public License. On Debian systems, the complete text of this +license be found in /usr/share/common-licenses/LGPL. + diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_6.yml b/src/licensedcode/data/rules/debian_slim_unstructured_6.yml new file mode 100644 index 00000000000..eea65b7b27c --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_6.yml @@ -0,0 +1,5 @@ +license_expression: lgpl-2.0-plus AND gpl-1.0-plus +is_license_notice: yes +referenced_filenames: + - /usr/share/common-licenses/LGPL + - /usr/share/common-licenses/GPL diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_61.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_61.RULE new file mode 100644 index 00000000000..5c435f9f358 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_61.RULE @@ -0,0 +1 @@ +Portions contributed by are subject to the following license \ No newline at end of file diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_61.yml b/src/licensedcode/data/rules/debian_slim_unstructured_61.yml new file mode 100644 index 00000000000..f9a9c1348ac --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_61.yml @@ -0,0 +1,2 @@ +license_expression: unknown-license-reference +is_license_intro: yes diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_62.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_62.RULE new file mode 100644 index 00000000000..f3840de66c1 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_62.RULE @@ -0,0 +1,11 @@ +License: The main library is licensed under GNU Lesser +General Public License (LGPL) version 2.1+, are licenced under the GNU General Public License version 3+. The + bindings use the same license as the respective underlying library, +i.e. LGPLv2.1+ for the main library and GPLv3+ for + +However to be able to use and link against a program needs to be +available under a license compatible with LGPLv3+ or GPLv2+ since GnuTLS +requires which requires is dual licensed +LGPLv3+ or GPLv2+. Starting with is needed, too. It also +is dual licensed LGPLv3+ or GPLv2+ ( earlier +version were LGPLv3+ only.) diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_62.yml b/src/licensedcode/data/rules/debian_slim_unstructured_62.yml new file mode 100644 index 00000000000..afd9cb7c060 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_62.yml @@ -0,0 +1,2 @@ +license_expression: lgpl-2.1-plus AND gpl-3.0-plus AND (lgpl-3.0-plus AND gpl-2.0-plus) +is_license_notice: yes diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_63.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_63.RULE new file mode 100644 index 00000000000..b421387cf6b --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_63.RULE @@ -0,0 +1,39 @@ + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. + + Alternatively, the contents of this package may be used under the + terms of the GNU General Public License ("GPL") version 2 or any + later version, in which case the provisions of the GPL are + applicable instead of the above. If you wish to allow the use of + your version of this package only under the terms of the GPL and + not to allow others to use your version of this file under the BSD + license, indicate your decision by deleting the provisions above + and replace them with the notice and other provisions required by + the GPL in this and the other files of this package. If you do not + delete the provisions above, a recipient may use your version of + this file under either the BSD or the GPL. + + On Debian systems, the complete text of the GNU General Public License + version 2 can be found in `/usr/share/common-licenses/GPL-2'. diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_63.yml b/src/licensedcode/data/rules/debian_slim_unstructured_63.yml new file mode 100644 index 00000000000..d666e28ae09 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_63.yml @@ -0,0 +1,5 @@ +license_expression: bsd-simplified OR gpl-2.0-plus +is_license_text: yes +referenced_filenames: + - /usr/share/common-licenses/GPL-2 + diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_64.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_64.RULE new file mode 100644 index 00000000000..1ea2f747906 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_64.RULE @@ -0,0 +1 @@ +The Debian Packaging is licensed under the same terms as MIT Kerberos. diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_64.yml b/src/licensedcode/data/rules/debian_slim_unstructured_64.yml new file mode 100644 index 00000000000..a075e8d6817 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_64.yml @@ -0,0 +1,3 @@ +license_expression: unknown-license-reference +is_license_intro: yes +notes: Present in the end of debian copyright files and refers to license texts in the same file. diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_65.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_65.RULE new file mode 100644 index 00000000000..b84349db7dc --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_65.RULE @@ -0,0 +1,13 @@ +License: The main library is licensed under GNU Lesser +General Public License (LGPL) version 2.1+, Gnutls Extra (which is currently +just the openssl wrapper library), build system, testsuite and commandline +utilities are licenced under the GNU General Public License version 3+. The +Guile bindings use the same license as the respective underlying library, +i.e. LGPLv2.1+ for the main library and GPLv3+ for Gnutls extra. + +However to be able to use and link against libgnutls a program needs to be +available under a license compatible with LGPLv3+ or GPLv2+ since GnuTLS +requires nettle which requires GMP. GMP (>= 6.0.0) is dual licensed +LGPLv3+ or GPLv2+. Starting with 3.5.7 libunistring is needed, too. It also +is dual licensed LGPLv3+ or GPLv2+ (libunistring 0.9.7 and above, earlier +version were LGPLv3+ only.) diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_65.yml b/src/licensedcode/data/rules/debian_slim_unstructured_65.yml new file mode 100644 index 00000000000..1f98c625abc --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_65.yml @@ -0,0 +1,3 @@ +license_expression: lgpl-2.1-plus AND gpl-3.0-plus AND (lgpl-3.0-plus AND gpl-2.0-plus) +is_license_notice: yes + diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_66.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_66.RULE new file mode 100644 index 00000000000..63fd6eb104b --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_66.RULE @@ -0,0 +1,7 @@ +On Debian GNU/Linux systems, the complete text of the latest version of +the GNU Lesser General Public License can be found in +`/usr/share/common-licenses/LGPL' v3 of the license in +`/usr/share/common-licenses/LGPL-3'; the GNU General Public License can +be found in `/usr/share/common-licenses/GPL' (version 3 in +/usr/share/common-licenses/GPL-3) The GNU Free Documentation +License is available under /usr/share/common-licenses/GFDL-1.3. diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_66.yml b/src/licensedcode/data/rules/debian_slim_unstructured_66.yml new file mode 100644 index 00000000000..75a99b904b2 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_66.yml @@ -0,0 +1,8 @@ +license_expression: lgpl-2.0-plus AND lgpl-3.0 AND gpl-1.0-plus AND gpl-3.0 AND gfdl-1.3 +is_license_reference: yes +referenced_filenames: + - /usr/share/common-licenses/LGPL + - /usr/share/common-licenses/LGPL-3 + - /usr/share/common-licenses/GPL + - /usr/share/common-licenses/GPL-3 + - /usr/share/common-licenses/GFDL-1.3 diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_67.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_67.RULE new file mode 100644 index 00000000000..678f4d5e7a2 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_67.RULE @@ -0,0 +1,3 @@ +contains code by +copyright is not assigned to the FSF. The code is licensed under the +CRYPTOGAMS license. diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_67.yml b/src/licensedcode/data/rules/debian_slim_unstructured_67.yml new file mode 100644 index 00000000000..15dc40f9d45 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_67.yml @@ -0,0 +1,3 @@ +license_expression: unknown-license-reference +is_license_intro: yes + diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_68.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_68.RULE new file mode 100644 index 00000000000..b7b12253c5c --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_68.RULE @@ -0,0 +1 @@ +On Debian systems the complete text of the license can be found in /usr/share/common-licenses/Apache-2.0 diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_68.yml b/src/licensedcode/data/rules/debian_slim_unstructured_68.yml new file mode 100644 index 00000000000..61eb9344420 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_68.yml @@ -0,0 +1,4 @@ +license_expression: apache-2.0 +is_license_reference: yes +referenced_filenames: + - /usr/share/common-licenses/Apache-2.0 diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_69.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_69.RULE new file mode 100644 index 00000000000..e943a1e296b --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_69.RULE @@ -0,0 +1,3 @@ +License: Apache-2.0 + On Debian systems the complete text of the license can be found in + /usr/share/common-licenses/Apache-2.0 diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_69.yml b/src/licensedcode/data/rules/debian_slim_unstructured_69.yml new file mode 100644 index 00000000000..9bb55278ed8 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_69.yml @@ -0,0 +1,5 @@ +license_expression: apache-2.0 +is_license_notice: yes +referenced_filenames: + - /usr/share/common-licenses/Apache-2.0 + diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_70.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_70.RULE new file mode 100644 index 00000000000..ec99350e990 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_70.RULE @@ -0,0 +1,15 @@ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + +License: Apache-2.0 + On Debian systems the complete text of the license can be found in + /usr/share/common-licenses/Apache-2.0 diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_70.yml b/src/licensedcode/data/rules/debian_slim_unstructured_70.yml new file mode 100644 index 00000000000..9b18ef838cf --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_70.yml @@ -0,0 +1,6 @@ +license_expression: apache-2.0 +is_license_notice: yes +referenced_filenames: + - /usr/share/common-licenses/Apache-2.0 +ignorable_urls: + - http://www.apache.org/licenses/LICENSE-2.0 diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_71.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_71.RULE new file mode 100644 index 00000000000..451b50410c6 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_71.RULE @@ -0,0 +1,14 @@ +Comment: On Debian systems the complete license text is available in + /usr/share/common-licenses/Apache-2.0 +License + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_71.yml b/src/licensedcode/data/rules/debian_slim_unstructured_71.yml new file mode 100644 index 00000000000..9b18ef838cf --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_71.yml @@ -0,0 +1,6 @@ +license_expression: apache-2.0 +is_license_notice: yes +referenced_filenames: + - /usr/share/common-licenses/Apache-2.0 +ignorable_urls: + - http://www.apache.org/licenses/LICENSE-2.0 diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_73.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_73.RULE new file mode 100644 index 00000000000..734da3036ac --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_73.RULE @@ -0,0 +1 @@ +License: LGPLv3+_or_GPLv2+ diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_73.yml b/src/licensedcode/data/rules/debian_slim_unstructured_73.yml new file mode 100644 index 00000000000..b3093f75188 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_73.yml @@ -0,0 +1,2 @@ +license_expression: lgpl-3.0-plus AND gpl-2.0-plus +is_license_tag: yes diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_75.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_75.RULE new file mode 100644 index 00000000000..243a03422ad --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_75.RULE @@ -0,0 +1 @@ + License: LGPLv2.1+ diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_75.yml b/src/licensedcode/data/rules/debian_slim_unstructured_75.yml new file mode 100644 index 00000000000..5deb0ae6dc7 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_75.yml @@ -0,0 +1,3 @@ +license_expression: lgpl-2.1-plus +is_license_tag: yes + diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_76.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_76.RULE new file mode 100644 index 00000000000..c0a5f1b741c --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_76.RULE @@ -0,0 +1,23 @@ +License: BSD-3-Clause + . + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of Ben Hoyt nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + . + THIS SOFTWARE IS PROVIDED BY BEN HOYT ''AS IS'' AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL BEN HOYT BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_76.yml b/src/licensedcode/data/rules/debian_slim_unstructured_76.yml new file mode 100644 index 00000000000..1940635e96d --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_76.yml @@ -0,0 +1,2 @@ +license_expression: bsd-new +is_license_text: yes diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_79.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_79.RULE new file mode 100644 index 00000000000..249757b9c22 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_79.RULE @@ -0,0 +1 @@ +ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_79.yml b/src/licensedcode/data/rules/debian_slim_unstructured_79.yml new file mode 100644 index 00000000000..74b5f83bd3a --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_79.yml @@ -0,0 +1,4 @@ +license_expression: pcre +is_license_reference: yes +ignorable_urls: + - ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_8.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_8.RULE new file mode 100644 index 00000000000..00e17546a17 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_8.RULE @@ -0,0 +1,8 @@ +This program 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 Software Foundation; either version 2 of the License, or +(at your option) any later version. + +On Debian GNU/Linux systems, the complete text of the GNU General +Public License is in `/usr/share/common-licenses/GPL', version 2 of this +license in `/usr/share/common-licenses/GPL-2'. diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_8.yml b/src/licensedcode/data/rules/debian_slim_unstructured_8.yml new file mode 100644 index 00000000000..0fd09a52a20 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_8.yml @@ -0,0 +1,5 @@ +license_expression: gpl-2.0-plus +is_license_reference: yes +minimum_coverage: 90 +referenced_filenames: + - /usr/share/common-licenses/GPL-2 diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_80.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_80.RULE new file mode 100644 index 00000000000..d73def56294 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_80.RULE @@ -0,0 +1,4 @@ +Release is distributed under the terms of the "BSD" licence, as +specified below. The documentation for, supplied in the "doc" +directory, is distributed under the same terms as the software itself. The data +in the testdata directory is not copyrighted and is in the public domain. diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_80.yml b/src/licensedcode/data/rules/debian_slim_unstructured_80.yml new file mode 100644 index 00000000000..63be182b43b --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_80.yml @@ -0,0 +1,2 @@ +license_expression: bsd-new AND public-domain +is_license_notice: yes diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_82.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_82.RULE new file mode 100644 index 00000000000..569cf4ad065 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_82.RULE @@ -0,0 +1,6 @@ +This package, the , are made available under +the GNU General Public License version 2, with the exception of the +libraries, which are made available under the +GNU Library General Public License Version 2, the library +which is made available under a BSD-style license and the and +libraries which are made available under an MIT-style license. diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_82.yml b/src/licensedcode/data/rules/debian_slim_unstructured_82.yml new file mode 100644 index 00000000000..77c2a0c9bc2 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_82.yml @@ -0,0 +1,2 @@ +license_expression: gpl-2.0 AND bsd-new AND mit +is_license_notice: yes diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_83.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_83.RULE new file mode 100644 index 00000000000..acd9fc95cc4 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_83.RULE @@ -0,0 +1,6 @@ + +On Debian GNU systems, the complete text of the GNU General Public +License can be found in `/usr/share/common-licenses/GPL-2'. The +complete text of the GNU Library General Public License can be found +in '/usr/share/common-licenses/LGPL-2'. + diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_83.yml b/src/licensedcode/data/rules/debian_slim_unstructured_83.yml new file mode 100644 index 00000000000..385c008498f --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_83.yml @@ -0,0 +1,5 @@ +license_expression: gpl-2.0 AND lgpl-2.0 +is_license_reference: yes +referenced_filenames: + - /usr/share/common-licenses/GPL-2 + - /usr/share/common-licenses/LGPL-2 diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_84.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_84.RULE new file mode 100644 index 00000000000..636647b7204 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_84.RULE @@ -0,0 +1,2 @@ +On Debian systems a copy of the complete text of the GNU FDL 1.3 +can be found in /usr/share/common-licenses/GFDL-1.3. diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_84.yml b/src/licensedcode/data/rules/debian_slim_unstructured_84.yml new file mode 100644 index 00000000000..e14c32fccb7 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_84.yml @@ -0,0 +1,4 @@ +license_expression: gfdl-1.3 +is_license_reference: yes +referenced_filenames: + - /usr/share/common-licenses/GFDL-1.3 diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_85.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_85.RULE new file mode 100644 index 00000000000..892efe1dcd2 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_85.RULE @@ -0,0 +1,2 @@ +On Debian GNU/Linux systems, the complete text of the GNU Free +Documentation License (FDL 1.3) can be found in /usr/share/common-licenses/GFDL-1.3. diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_85.yml b/src/licensedcode/data/rules/debian_slim_unstructured_85.yml new file mode 100644 index 00000000000..76e19f35cb1 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_85.yml @@ -0,0 +1,5 @@ +license_expression: gfdl-1.3 +is_license_reference: yes +referenced_filenames: + - /usr/share/common-licenses/GFDL-1.3 + diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_86.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_86.RULE new file mode 100644 index 00000000000..1ff6090afc4 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_86.RULE @@ -0,0 +1 @@ +The Debian packaging is and is licensed under the GPL, see `/usr/share/common-licenses/GPL'. diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_86.yml b/src/licensedcode/data/rules/debian_slim_unstructured_86.yml new file mode 100644 index 00000000000..1d8734fa256 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_86.yml @@ -0,0 +1,4 @@ +license_expression: gpl-1.0-plus +is_license_reference: yes +referenced_filenames: + - /usr/share/common-licenses/GPL diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_87.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_87.RULE new file mode 100644 index 00000000000..5e7df6f5e7f --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_87.RULE @@ -0,0 +1 @@ +The GNU General Public License v3 text is contained in /usr/share/common-licenses/GPL-3. diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_87.yml b/src/licensedcode/data/rules/debian_slim_unstructured_87.yml new file mode 100644 index 00000000000..6ba7fb65a74 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_87.yml @@ -0,0 +1,4 @@ +license_expression: gpl-3.0 +is_license_reference: yes +referenced_filenames: + - /usr/share/common-licenses/GPL-3 diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_88.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_88.RULE new file mode 100644 index 00000000000..d7287839cc3 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_88.RULE @@ -0,0 +1 @@ +The GNU General Public License v2 text is contained in /usr/share/common-licenses/GPL-2. diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_88.yml b/src/licensedcode/data/rules/debian_slim_unstructured_88.yml new file mode 100644 index 00000000000..e133ff878b0 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_88.yml @@ -0,0 +1,4 @@ +license_expression: gpl-2.0 +is_license_reference: yes +referenced_filenames: + - /usr/share/common-licenses/GPL-2 diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_89.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_89.RULE new file mode 100644 index 00000000000..112b8a6e5cf --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_89.RULE @@ -0,0 +1,4 @@ +The documentation is released under the GNU Free Documentation License +(GFDL) and it has cover texts. As such, it has been determined not to +meet the Debian Free Software Guidelines, and is not shipped in the +debian packages. diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_89.yml b/src/licensedcode/data/rules/debian_slim_unstructured_89.yml new file mode 100644 index 00000000000..99a5949331a --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_89.yml @@ -0,0 +1,2 @@ +license_expression: gfdl-1.1-plus +is_license_notice: yes diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_9.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_9.RULE new file mode 100644 index 00000000000..7d363767ce5 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_9.RULE @@ -0,0 +1,6 @@ +License for redistribution is by either the Artistic License or +the GNU General Public License (v1). + +On Debian GNU/Linux systems, the complete text of the GNU General +Public License is in `/usr/share/common-licenses/GPL', the Artistic +license in `/usr/share/common-licenses/Artistic' diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_9.yml b/src/licensedcode/data/rules/debian_slim_unstructured_9.yml new file mode 100644 index 00000000000..c9bc7374c0d --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_9.yml @@ -0,0 +1,6 @@ +license_expression: artistic-perl-1.0 OR gpl-1.0 +is_license_notice: yes +minimum_coverage: 90 +referenced_filenames: + - /usr/share/common-licenses/Artistic + - /usr/share/coomon-licenses/GPL diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_90.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_90.RULE new file mode 100644 index 00000000000..9f0ed709af9 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_90.RULE @@ -0,0 +1,2 @@ +is covered either by the LGPL, or +under the GNU General Public License /usr/share/common-licenses/GPL. diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_90.yml b/src/licensedcode/data/rules/debian_slim_unstructured_90.yml new file mode 100644 index 00000000000..845158f6dd0 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_90.yml @@ -0,0 +1,4 @@ +license_expression: gpl-1.0-plus OR lgpl-2.0-plus +is_license_notice: yes +referenced_filenames: + - /usr/share/common-licenses/GPL diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_91.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_91.RULE new file mode 100644 index 00000000000..4076519d586 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_91.RULE @@ -0,0 +1,8 @@ +http://www.oracle.com/technology/software/products/berkeley-db/db/index.html + +Copyright and license: + +The following is the license that applies to this copy of the Berkeley DB +software. For a license to use the Berkeley DB software under conditions +other than those described here, or to purchase support for this software, +please contact Oracle at berkeleydb-info_us@oracle.com. diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_91.yml b/src/licensedcode/data/rules/debian_slim_unstructured_91.yml new file mode 100644 index 00000000000..bc9d0d9d4ac --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_91.yml @@ -0,0 +1,5 @@ +license_expression: sleepycat +is_license_notice: yes +relevance: 100 +ignorable_urls: + - http://www.oracle.com/technology/software/products/berkeley-db/db/index.html diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_92.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_92.RULE new file mode 100644 index 00000000000..91e6ad99801 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_92.RULE @@ -0,0 +1,10 @@ + This manual is covered by the GNU FDL. Permission is granted to + copy, distribute and/or modify this document under the terms of the + GNU Free Documentation License (FDL), either version 1.2 of the + License, or (at your option) any later version published by the Free + Software Foundation (FSF); with no Invariant Sections, with no + Front-Cover Text, and with no Back-Cover Texts. + . + On Debian systems the full text of the GNU Free Documentation License + version 1.2 can be found in the file + `/usr/share/common-licenses/GFDL-1.2'. diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_92.yml b/src/licensedcode/data/rules/debian_slim_unstructured_92.yml new file mode 100644 index 00000000000..4d41c51d1cb --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_92.yml @@ -0,0 +1,4 @@ +license_expression: gfdl-1.2-plus +is_license_reference: yes +referenced_filenames: + - /usr/share/common-licenses/GFDL-1.2 diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_93.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_93.RULE new file mode 100644 index 00000000000..5d4e627a1e7 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_93.RULE @@ -0,0 +1,4 @@ + + On Debian systems the full text of the GNU Free Documentation License + version 1.2 can be found in the file + `/usr/share/common-licenses/GFDL-1.2'. diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_93.yml b/src/licensedcode/data/rules/debian_slim_unstructured_93.yml new file mode 100644 index 00000000000..dc1eb2f004d --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_93.yml @@ -0,0 +1,5 @@ +license_expression: gfdl-1.2-plus +is_license_reference: yes +referenced_filenames: + - /usr/share/common-licenses/GFDL-1.2 + diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_94.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_94.RULE new file mode 100644 index 00000000000..d63cb9ccfd3 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_94.RULE @@ -0,0 +1,6 @@ + This manual is covered by the GNU FDL. Permission is granted to + copy, distribute and/or modify this document under the terms of the + GNU Free Documentation License (FDL), either version 1.2 of the + License, or (at your option) any later version published by the Free + Software Foundation (FSF); with no Invariant Sections, with no + Front-Cover Text, and with no Back-Cover Texts. diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_94.yml b/src/licensedcode/data/rules/debian_slim_unstructured_94.yml new file mode 100644 index 00000000000..dc1eb2f004d --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_94.yml @@ -0,0 +1,5 @@ +license_expression: gfdl-1.2-plus +is_license_reference: yes +referenced_filenames: + - /usr/share/common-licenses/GFDL-1.2 + diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_96.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_96.RULE new file mode 100644 index 00000000000..655bae5d261 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_96.RULE @@ -0,0 +1,2 @@ +Most of the package is licensed under the GNU Lesser General Public +License (LGPL) version 2.1 (or later), diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_96.yml b/src/licensedcode/data/rules/debian_slim_unstructured_96.yml new file mode 100644 index 00000000000..6510ca94b4a --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_96.yml @@ -0,0 +1,3 @@ +license_expression: lgpl-2.1-plus +is_license_notice: yes +minimum_coverage: 99 diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_97.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_97.RULE new file mode 100644 index 00000000000..fbe86ce4be0 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_97.RULE @@ -0,0 +1,2 @@ +The documentation is licensed under +the GPLv2 (or later), diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_97.yml b/src/licensedcode/data/rules/debian_slim_unstructured_97.yml new file mode 100644 index 00000000000..4dd63d8726f --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_97.yml @@ -0,0 +1,2 @@ +license_expression: gpl-2.0-plus +is_license_notice: yes diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_98.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_98.RULE new file mode 100644 index 00000000000..cc1808b1937 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_98.RULE @@ -0,0 +1,3 @@ +The library is distributed under the terms of the GNU Lesser + General Public License (LGPL); see the file COPYING.LIB for the + actual terms. diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_98.yml b/src/licensedcode/data/rules/debian_slim_unstructured_98.yml new file mode 100644 index 00000000000..e9e078caea5 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_98.yml @@ -0,0 +1,4 @@ +license_expression: lgpl-2.0-plus +is_license_notice: yes +referenced_filenames: + - COPYING.LIB diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_99.RULE b/src/licensedcode/data/rules/debian_slim_unstructured_99.RULE new file mode 100644 index 00000000000..50bbeb2a1c4 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_99.RULE @@ -0,0 +1,5 @@ +The helper programs + as well as the documentation are distributed under the terms of + the GNU General Public License (GPL); see the file COPYING for the + actual terms. + diff --git a/src/licensedcode/data/rules/debian_slim_unstructured_99.yml b/src/licensedcode/data/rules/debian_slim_unstructured_99.yml new file mode 100644 index 00000000000..cd117461335 --- /dev/null +++ b/src/licensedcode/data/rules/debian_slim_unstructured_99.yml @@ -0,0 +1,4 @@ +license_expression: gpl-1.0-plus +is_license_notice: yes +referenced_filenames: + - COPYING From 9ae88d5f985f6d09f190f76be34a396bf3bb6482 Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Wed, 16 Jun 2021 09:18:32 +0530 Subject: [PATCH 514/709] Regenerate tests after adding rules Signed-off-by: Ayan Sinha Mahapatra --- ...m_0.12.5-1_copyright-detailed.expected.yml | 13 +++--- .../appstream_0.12.5-1_copyright.expected.yml | 4 +- .../stable_copyright-detailed.expected.yml | 2 +- .../stable_copyright-detailed.expected.yml | 16 +++---- .../c/clamav/stable_copyright.expected.yml | 14 +++--- .../stable_copyright-detailed.expected.yml | 6 +-- .../main/d/dpdk/stable_copyright.expected.yml | 4 +- .../stable_copyright-detailed.expected.yml | 2 +- .../e/e2fsprogs/stable_copyright.expected.yml | 2 +- .../stable_copyright-detailed.expected.yml | 7 ++- .../stable_copyright.expected.yml | 3 +- .../stable_copyright-detailed.expected.yml | 23 +++++----- .../stable_copyright.expected.yml | 7 ++- .../stable_copyright-detailed.expected.yml | 2 +- .../stable_copyright.expected.yml | 2 +- .../stable_copyright-detailed.expected.yml | 2 +- .../g/gnupg2/stable_copyright.expected.yml | 2 +- .../stable_copyright-detailed.expected.yml | 6 +-- .../stable_copyright.expected.yml | 4 +- .../stable_copyright-detailed.expected.yml | 6 +-- .../stable_copyright.expected.yml | 4 +- .../stable_copyright-detailed.expected.yml | 6 +-- .../stable_copyright.expected.yml | 4 +- .../stable_copyright-detailed.expected.yml | 6 +-- .../l/linux/stable_copyright.expected.yml | 4 +- .../stable_copyright-detailed.expected.yml | 4 +- .../stable_copyright.expected.yml | 2 +- .../stable_copyright-detailed.expected.yml | 14 +++--- .../stable_copyright.expected.yml | 6 +-- .../stable_copyright-detailed.expected.yml | 8 ++-- .../stable_copyright.expected.yml | 6 +-- .../stable_copyright-detailed.expected.yml | 8 ++-- .../p/pam-u2f/stable_copyright.expected.yml | 6 +-- .../stable_copyright-detailed.expected.yml | 10 ++-- .../p/pango1.0/stable_copyright.expected.yml | 5 +- .../stable_copyright-detailed.expected.yml | 6 +-- .../pulseaudio/stable_copyright.expected.yml | 3 +- .../stable_copyright-detailed.expected.yml | 2 +- .../slirp4netns/stable_copyright.expected.yml | 2 +- .../stable_copyright-detailed.expected.yml | 11 ++--- .../s/systemd/stable_copyright.expected.yml | 5 +- ...rmware-adi.copyright-detailed.expected.yml | 2 +- ...ux-nonfree.copyright-detailed.expected.yml | 2 +- ...ware-linux.copyright-detailed.expected.yml | 2 +- ...are-ralink.copyright-detailed.expected.yml | 2 +- .../adduser/copyright-detailed.expected.yml | 2 +- .../share/doc/adduser/copyright.expected.yml | 2 +- .../bsdutils/copyright-detailed.expected.yml | 29 ++++++------ .../share/doc/bsdutils/copyright.expected.yml | 10 ++-- .../copyright-detailed.expected.yml | 2 +- .../doc/debianutils/copyright.expected.yml | 2 +- .../e2fsprogs/copyright-detailed.expected.yml | 2 +- .../doc/e2fsprogs/copyright.expected.yml | 2 +- .../copyright-detailed.expected.yml | 40 ++++++++-------- .../doc/gcc-10-base/copyright.expected.yml | 19 ++++---- .../copyright-detailed.expected.yml | 46 +++++++++---------- .../doc/gcc-9-base/copyright.expected.yml | 20 ++++---- .../doc/gpgv/copyright-detailed.expected.yml | 2 +- .../usr/share/doc/gpgv/copyright.expected.yml | 2 +- .../doc/grep/copyright-detailed.expected.yml | 2 +- .../usr/share/doc/grep/copyright.expected.yml | 2 +- .../libblkid1/copyright-detailed.expected.yml | 29 ++++++------ .../doc/libblkid1/copyright.expected.yml | 10 ++-- .../libcrypt1/copyright-detailed.expected.yml | 8 ++-- .../doc/libcrypt1/copyright.expected.yml | 4 +- .../copyright-detailed.expected.yml | 2 +- .../libdebconfclient0/copyright.expected.yml | 2 +- .../copyright-detailed.expected.yml | 2 +- .../doc/libext2fs2/copyright.expected.yml | 2 +- .../copyright-detailed.expected.yml | 12 ++--- .../doc/libgcrypt20/copyright.expected.yml | 6 +-- .../libgmp10/copyright-detailed.expected.yml | 4 +- .../share/doc/libgmp10/copyright.expected.yml | 2 +- .../copyright-detailed.expected.yml | 46 +++++++++---------- .../doc/libgnutls30/copyright.expected.yml | 11 +++-- .../copyright-detailed.expected.yml | 11 ++--- .../doc/libgpg-error0/copyright.expected.yml | 5 +- .../copyright-detailed.expected.yml | 4 +- .../libgssapi-krb5-2/copyright.expected.yml | 2 +- .../copyright-detailed.expected.yml | 6 +-- .../doc/libhogweed6/copyright.expected.yml | 6 +-- .../copyright-detailed.expected.yml | 4 +- .../doc/libk5crypto3/copyright.expected.yml | 2 +- .../copyright-detailed.expected.yml | 3 +- .../doc/libkeyutils1/copyright.expected.yml | 2 +- .../libkrb5-3/copyright-detailed.expected.yml | 4 +- .../doc/libkrb5-3/copyright.expected.yml | 2 +- .../liblzma5/copyright-detailed.expected.yml | 7 ++- .../share/doc/liblzma5/copyright.expected.yml | 7 ++- .../libmount1/copyright-detailed.expected.yml | 29 ++++++------ .../doc/libmount1/copyright.expected.yml | 10 ++-- .../copyright-detailed.expected.yml | 6 +-- .../doc/libnettle8/copyright.expected.yml | 6 +-- .../libnsl2/copyright-detailed.expected.yml | 12 ++--- .../share/doc/libnsl2/copyright.expected.yml | 6 +-- .../copyright-detailed.expected.yml | 2 +- .../libsemanage-common/copyright.expected.yml | 2 +- .../libsepol1/copyright-detailed.expected.yml | 2 +- .../doc/libsepol1/copyright.expected.yml | 2 +- .../copyright-detailed.expected.yml | 29 ++++++------ .../doc/libsmartcols1/copyright.expected.yml | 10 ++-- .../copyright-detailed.expected.yml | 9 ++-- .../doc/libsystemd0/copyright.expected.yml | 6 +-- .../copyright-detailed.expected.yml | 7 ++- .../libtirpc-common/copyright.expected.yml | 4 +- .../libudev1/copyright-detailed.expected.yml | 9 ++-- .../share/doc/libudev1/copyright.expected.yml | 6 +-- .../copyright-detailed.expected.yml | 6 +-- .../doc/libunistring2/copyright.expected.yml | 4 +- .../libuuid1/copyright-detailed.expected.yml | 29 ++++++------ .../share/doc/libuuid1/copyright.expected.yml | 10 ++-- .../libzstd1/copyright-detailed.expected.yml | 4 +- .../share/doc/libzstd1/copyright.expected.yml | 2 +- .../logsave/copyright-detailed.expected.yml | 2 +- .../share/doc/logsave/copyright.expected.yml | 2 +- .../doc/mount/copyright-detailed.expected.yml | 29 ++++++------ .../share/doc/mount/copyright.expected.yml | 10 ++-- .../copyright-detailed.expected.yml | 29 ++++++------ .../doc/util-linux/copyright.expected.yml | 10 ++-- 119 files changed, 449 insertions(+), 491 deletions(-) diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/a/appstream/appstream_0.12.5-1_copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/a/appstream/appstream_0.12.5-1_copyright-detailed.expected.yml index 3a2a63c4826..5fbcf35f79f 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/a/appstream/appstream_0.12.5-1_copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/a/appstream/appstream_0.12.5-1_copyright-detailed.expected.yml @@ -10,13 +10,12 @@ - LGPL-2.1+ - GPL-2+ - LGPL-2.1+ -- ((gpl-2.0-plus AND gpl-2.0-plus) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1)) - AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus - AND lgpl-2.1 AND lgpl-2.1) AND (gpl-2.0-plus AND gpl-2.0-plus) AND ((gpl-2.0-plus AND gpl-2.0-plus) - AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1)) AND (lgpl-2.1-plus AND lgpl-2.1-plus - AND lgpl-2.1 AND lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) - AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus - AND lgpl-2.1 AND lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) +- ((gpl-2.0-plus AND gpl-2.0-plus) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1)) AND (lgpl-2.1-plus + AND lgpl-2.1-plus AND lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND (gpl-2.0-plus + AND gpl-2.0-plus) AND ((gpl-2.0-plus AND gpl-2.0-plus) AND (lgpl-2.1-plus AND lgpl-2.1-plus + AND lgpl-2.1)) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus + AND lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus + AND lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) - | 2012-2018, Matthias Klumpp Richard Hughes diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/a/appstream/appstream_0.12.5-1_copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/a/appstream/appstream_0.12.5-1_copyright.expected.yml index 66e38acc8a9..db340533c47 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/a/appstream/appstream_0.12.5-1_copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/a/appstream/appstream_0.12.5-1_copyright.expected.yml @@ -1,8 +1,8 @@ - - GPL-2+ and LGPL-2.1+ - LGPL-2.1+ - GPL-2+ -- ((gpl-2.0-plus AND gpl-2.0-plus) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1)) - AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (gpl-2.0-plus AND gpl-2.0-plus) +- ((gpl-2.0-plus AND gpl-2.0-plus) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1)) AND (lgpl-2.1-plus + AND lgpl-2.1-plus AND lgpl-2.1) AND (gpl-2.0-plus AND gpl-2.0-plus) - | 2012-2018, Matthias Klumpp Richard Hughes diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/b/backup-manager/stable_copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/b/backup-manager/stable_copyright-detailed.expected.yml index 64602336462..5cc4937fbc1 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/b/backup-manager/stable_copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/b/backup-manager/stable_copyright-detailed.expected.yml @@ -1,5 +1,5 @@ - -- gpl-2.0-plus AND gpl-2.0 AND gpl-2.0 +- gpl-2.0-plus AND gpl-2.0 - | Copyright 2003-2010 Alexis Sukrieh Copyright 2005 Alexis Sukrieh Debianization diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/c/clamav/stable_copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/c/clamav/stable_copyright-detailed.expected.yml index 14d2a0ea599..39539a2cb58 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/c/clamav/stable_copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/c/clamav/stable_copyright-detailed.expected.yml @@ -45,14 +45,14 @@ AND gpl-3.0 AND gpl-3.0) AND (gpl-3.0-plus WITH libtool-exception-2.0 AND gpl-1.0-plus AND other-copyleft AND gpl-2.0 AND gpl-2.0) AND (lgpl-2.0-plus AND libtool-exception-2.0 AND gpl-2.0-plus AND lgpl-2.1-plus AND gpl-2.0 AND other-copyleft AND gpl-2.0 AND lgpl-2.0) AND (lgpl-2.1 AND - lgpl-2.1-plus AND lgpl-2.1-plus AND other-copyleft AND lgpl-2.1 AND lgpl-2.1) AND ((lgpl-2.1 - AND lgpl-2.1-plus AND lgpl-2.1-plus AND other-copyleft AND lgpl-2.1 AND lgpl-2.1) AND bsd-new) - AND mit AND mit AND bsd-simplified AND bsd-simplified AND bsd-new AND bsd-new AND bsd-new - AND zlib AND zlib AND isc AND fsf-unlimited AND fsf-free AND fsf-unlimited-no-warranty AND - fsf-ap AND fsf-ap AND bzip2-libbzip-2010 AND (public-domain AND public-domain) AND public-domain - AND public-domain AND x11-tiff AND (public-domain AND public-domain) AND (apache-2.0 AND gpl-1.0-plus - AND apache-2.0 AND apache-2.0 AND gpl-1.0-plus AND apache-2.0 AND apache-2.0) AND (gpl-3.0-plus - AND bison-exception-2.2 AND gpl-1.0-plus AND other-copyleft AND gpl-3.0 AND gpl-3.0) + lgpl-2.1-plus AND lgpl-2.1-plus AND other-copyleft AND lgpl-2.1) AND ((lgpl-2.1 AND lgpl-2.1-plus + AND lgpl-2.1-plus AND other-copyleft AND lgpl-2.1) AND bsd-new) AND mit AND mit AND bsd-simplified + AND bsd-simplified AND bsd-new AND bsd-new AND bsd-new AND zlib AND zlib AND isc AND fsf-unlimited + AND fsf-free AND fsf-unlimited-no-warranty AND fsf-ap AND fsf-ap AND bzip2-libbzip-2010 AND + (public-domain AND public-domain) AND public-domain AND public-domain AND x11-tiff AND (public-domain + AND public-domain) AND (apache-2.0 AND gpl-1.0-plus AND apache-2.0 AND apache-2.0 AND gpl-1.0-plus + AND apache-2.0 AND apache-2.0) AND (gpl-3.0-plus AND bison-exception-2.2 AND gpl-1.0-plus + AND other-copyleft AND gpl-3.0 AND gpl-3.0) - | 1998-2015, Sourcefire, Inc. 2002-2007, Tomasz Kojm diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/c/clamav/stable_copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/c/clamav/stable_copyright.expected.yml index edb883a7eb7..cb289dcca9b 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/c/clamav/stable_copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/c/clamav/stable_copyright.expected.yml @@ -33,13 +33,13 @@ AND (gpl-3.0-plus WITH libtool-exception-2.0 AND gpl-1.0-plus AND other-copyleft AND gpl-2.0 AND gpl-2.0) AND (lgpl-2.0-plus AND libtool-exception-2.0 AND gpl-2.0-plus AND lgpl-2.1-plus AND gpl-2.0 AND other-copyleft AND gpl-2.0 AND lgpl-2.0) AND (lgpl-2.1 AND lgpl-2.1-plus AND - lgpl-2.1-plus AND other-copyleft AND lgpl-2.1 AND lgpl-2.1) AND ((lgpl-2.1 AND lgpl-2.1-plus - AND lgpl-2.1-plus AND other-copyleft AND lgpl-2.1 AND lgpl-2.1) AND bsd-new) AND mit AND bsd-simplified - AND bsd-new AND zlib AND isc AND fsf-unlimited AND fsf-free AND fsf-unlimited-no-warranty - AND fsf-ap AND fsf-ap AND bzip2-libbzip-2010 AND (public-domain AND public-domain) AND public-domain - AND public-domain AND x11-tiff AND (public-domain AND public-domain) AND (apache-2.0 AND gpl-1.0-plus - AND apache-2.0 AND apache-2.0 AND gpl-1.0-plus AND apache-2.0 AND apache-2.0) AND (gpl-3.0-plus - AND bison-exception-2.2 AND gpl-1.0-plus AND other-copyleft AND gpl-3.0 AND gpl-3.0) + lgpl-2.1-plus AND other-copyleft AND lgpl-2.1) AND ((lgpl-2.1 AND lgpl-2.1-plus AND lgpl-2.1-plus + AND other-copyleft AND lgpl-2.1) AND bsd-new) AND mit AND bsd-simplified AND bsd-new AND zlib + AND isc AND fsf-unlimited AND fsf-free AND fsf-unlimited-no-warranty AND fsf-ap AND fsf-ap + AND bzip2-libbzip-2010 AND (public-domain AND public-domain) AND public-domain AND public-domain + AND x11-tiff AND (public-domain AND public-domain) AND (apache-2.0 AND gpl-1.0-plus AND apache-2.0 + AND apache-2.0 AND gpl-1.0-plus AND apache-2.0 AND apache-2.0) AND (gpl-3.0-plus AND bison-exception-2.2 + AND gpl-1.0-plus AND other-copyleft AND gpl-3.0 AND gpl-3.0) - | 1998-2015, Sourcefire, Inc. 2002-2007, Tomasz Kojm diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/d/dpdk/stable_copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/d/dpdk/stable_copyright-detailed.expected.yml index 41c8d946a44..b1bcd8a12a5 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/d/dpdk/stable_copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/d/dpdk/stable_copyright-detailed.expected.yml @@ -13,9 +13,9 @@ - LGPL-2.1 - BSD-2-clause - BSD-3-clause -- bsd-new AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND bsd-simplified AND (bsd-new OR (gpl-2.0 - AND gpl-2.0 AND gpl-2.0)) AND (bsd-new OR (lgpl-2.1 AND lgpl-2.0-plus AND lgpl-2.1)) AND bsd-simplified - AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND (gpl-3.0 AND gpl-3.0) AND gpl-2.0-plus +- bsd-new AND (gpl-2.0 AND gpl-2.0) AND bsd-simplified AND (bsd-new OR (gpl-2.0 AND gpl-2.0)) + AND (bsd-new OR (lgpl-2.1 AND lgpl-2.0-plus AND lgpl-2.1)) AND bsd-simplified AND (gpl-2.0 + AND gpl-2.0) AND (gpl-3.0 AND gpl-3.0) AND gpl-2.0-plus - | 2008-2014 Cisco Systems, Inc. 2012-2014 6WIND S.A. diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/d/dpdk/stable_copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/d/dpdk/stable_copyright.expected.yml index 46144e9dc9b..643b14a5a57 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/d/dpdk/stable_copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/d/dpdk/stable_copyright.expected.yml @@ -6,8 +6,8 @@ - GPL-2.0+ - GPL-3 - LGPL-2.1 -- bsd-new AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND bsd-simplified AND (bsd-new OR (gpl-2.0 - AND gpl-2.0 AND gpl-2.0)) AND (bsd-new OR (lgpl-2.1 AND lgpl-2.0-plus AND lgpl-2.1)) AND gpl-2.0-plus +- bsd-new AND (gpl-2.0 AND gpl-2.0) AND bsd-simplified AND (bsd-new OR (gpl-2.0 AND gpl-2.0)) + AND (bsd-new OR (lgpl-2.1 AND lgpl-2.0-plus AND lgpl-2.1)) AND gpl-2.0-plus - | 2008-2014 Cisco Systems, Inc. 2012-2014 6WIND S.A. diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/e/e2fsprogs/stable_copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/e/e2fsprogs/stable_copyright-detailed.expected.yml index 9cf037404ae..31c5d5d9f60 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/e/e2fsprogs/stable_copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/e/e2fsprogs/stable_copyright-detailed.expected.yml @@ -1,5 +1,5 @@ - -- (gpl-2.0 AND lgpl-2.0 AND bsd-new AND mit-old-style-no-advert) AND (gpl-2.0 AND lgpl-2.1) +- (gpl-2.0 AND lgpl-2.0 AND bsd-new AND mit-old-style-no-advert) AND (gpl-2.0 AND lgpl-2.0) AND ntp-0 AND bsd-new - | Copyright (c) 2003-2007 Theodore Ts'o diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/e/e2fsprogs/stable_copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/e/e2fsprogs/stable_copyright.expected.yml index 9cf037404ae..31c5d5d9f60 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/e/e2fsprogs/stable_copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/e/e2fsprogs/stable_copyright.expected.yml @@ -1,5 +1,5 @@ - -- (gpl-2.0 AND lgpl-2.0 AND bsd-new AND mit-old-style-no-advert) AND (gpl-2.0 AND lgpl-2.1) +- (gpl-2.0 AND lgpl-2.0 AND bsd-new AND mit-old-style-no-advert) AND (gpl-2.0 AND lgpl-2.0) AND ntp-0 AND bsd-new - | Copyright (c) 2003-2007 Theodore Ts'o diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/e/epiphany-browser/stable_copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/e/epiphany-browser/stable_copyright-detailed.expected.yml index 46a24dde6ab..42aac7a3ab6 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/e/epiphany-browser/stable_copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/e/epiphany-browser/stable_copyright-detailed.expected.yml @@ -19,10 +19,9 @@ - CC-BY-SA-4.0 - (gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0) AND (cc0-1.0 AND cc0-1.0) AND (gpl-2.0-plus AND gpl-3.0-plus) AND (gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0) AND cc-by-sa-3.0 AND (lgpl-2.0-plus - AND gpl-2.0-plus AND lgpl-2.0 AND lgpl-2.0) AND (lgpl-2.0-plus AND gpl-2.0-plus AND lgpl-2.0 - AND lgpl-2.0) AND (lgpl-2.0-plus AND gpl-2.0-plus AND lgpl-2.0 AND lgpl-2.0) AND (lgpl-2.0-plus - AND gpl-2.0-plus AND lgpl-2.0 AND lgpl-2.0) AND (apache-2.0 AND apache-2.0) AND (gpl-3.0-plus - AND gpl-3.0-plus AND gpl-3.0) AND (cc-by-sa-4.0 AND cc-by-sa-4.0) + AND gpl-2.0-plus) AND (lgpl-2.0-plus AND gpl-2.0-plus) AND (lgpl-2.0-plus AND gpl-2.0-plus) + AND (lgpl-2.0-plus AND gpl-2.0-plus) AND (apache-2.0 AND apache-2.0) AND (gpl-3.0-plus AND + gpl-3.0-plus AND gpl-3.0) AND (cc-by-sa-4.0 AND cc-by-sa-4.0) - | 2009-2018 Igalia S.L 2002 Jorn Baayen diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/e/epiphany-browser/stable_copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/e/epiphany-browser/stable_copyright.expected.yml index 900308a4ffa..9b7fb79ebf1 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/e/epiphany-browser/stable_copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/e/epiphany-browser/stable_copyright.expected.yml @@ -6,8 +6,7 @@ - CC-BY-SA-4.0 - GPL-2+ - (gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0) AND (cc0-1.0 AND cc0-1.0) AND cc-by-sa-3.0 AND - (lgpl-2.0-plus AND gpl-2.0-plus AND lgpl-2.0 AND lgpl-2.0) AND (apache-2.0 AND apache-2.0) - AND (cc-by-sa-4.0 AND cc-by-sa-4.0) + (lgpl-2.0-plus AND gpl-2.0-plus) AND (apache-2.0 AND apache-2.0) AND (cc-by-sa-4.0 AND cc-by-sa-4.0) - | 2009-2018 Igalia S.L 2002 Jorn Baayen diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/f/fusiondirectory/stable_copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/f/fusiondirectory/stable_copyright-detailed.expected.yml index 5d214baf382..f2c3f984831 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/f/fusiondirectory/stable_copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/f/fusiondirectory/stable_copyright-detailed.expected.yml @@ -42,18 +42,17 @@ AND gpl-2.0) AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-1.0-plus AND gpl-2.0) AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-1.0-plus AND gpl-2.0) AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-1.0-plus AND gpl-2.0) AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-1.0-plus AND gpl-2.0) AND (lgpl-3.0-plus - AND gpl-2.0-plus AND lgpl-3.0) AND public-domain AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-1.0-plus - AND gpl-2.0) AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-1.0-plus AND gpl-2.0) AND mit AND - (gpl-2.0-plus AND gpl-2.0-plus AND gpl-1.0-plus AND gpl-2.0) AND (gpl-2.0-plus AND gpl-2.0-plus - AND gpl-1.0-plus AND gpl-2.0) AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-1.0-plus AND gpl-2.0) - AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-1.0-plus AND gpl-2.0) AND (gpl-2.0-plus AND gpl-2.0-plus - AND gpl-1.0-plus AND gpl-2.0) AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-1.0-plus AND gpl-2.0) - AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-1.0-plus AND gpl-2.0) AND (gpl-2.0-plus AND gpl-2.0-plus - AND gpl-1.0-plus AND gpl-2.0) AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-1.0-plus AND gpl-2.0) - AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-1.0-plus AND gpl-2.0) AND bsd-original AND mit - AND ((gpl-2.0-plus AND gpl-2.0-plus AND gpl-1.0-plus AND gpl-2.0) OR (gpl-3.0-plus AND gpl-2.0-plus) - OR (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) OR (lgpl-3.0-plus AND gpl-2.0-plus - AND lgpl-3.0) OR mit OR bsd-new OR bsd-original) + AND gpl-2.0-plus) AND public-domain AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-1.0-plus AND + gpl-2.0) AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-1.0-plus AND gpl-2.0) AND mit AND (gpl-2.0-plus + AND gpl-2.0-plus AND gpl-1.0-plus AND gpl-2.0) AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-1.0-plus + AND gpl-2.0) AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-1.0-plus AND gpl-2.0) AND (gpl-2.0-plus + AND gpl-2.0-plus AND gpl-1.0-plus AND gpl-2.0) AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-1.0-plus + AND gpl-2.0) AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-1.0-plus AND gpl-2.0) AND (gpl-2.0-plus + AND gpl-2.0-plus AND gpl-1.0-plus AND gpl-2.0) AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-1.0-plus + AND gpl-2.0) AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-1.0-plus AND gpl-2.0) AND (gpl-2.0-plus + AND gpl-2.0-plus AND gpl-1.0-plus AND gpl-2.0) AND bsd-original AND mit AND ((gpl-2.0-plus + AND gpl-2.0-plus AND gpl-1.0-plus AND gpl-2.0) OR (gpl-3.0-plus AND gpl-2.0-plus) OR (lgpl-2.1-plus + AND lgpl-2.1-plus AND lgpl-2.1) OR (lgpl-3.0-plus AND gpl-2.0-plus) OR mit OR bsd-new OR bsd-original) - | 2011-2016, FusionDirectory 2011-2017, FusionDirectory diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/f/fusiondirectory/stable_copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/f/fusiondirectory/stable_copyright.expected.yml index 35c307b177e..fdb50c8fcda 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/f/fusiondirectory/stable_copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/f/fusiondirectory/stable_copyright.expected.yml @@ -8,10 +8,9 @@ - GPL-3+ - LGPL-2.1+ - (gpl-2.0-plus AND gpl-2.0-plus AND gpl-1.0-plus AND gpl-2.0) AND bsd-new AND (lgpl-3.0-plus - AND gpl-2.0-plus AND lgpl-3.0) AND public-domain AND mit AND bsd-original AND ((gpl-2.0-plus - AND gpl-2.0-plus AND gpl-1.0-plus AND gpl-2.0) OR (gpl-3.0-plus AND gpl-2.0-plus) OR (lgpl-2.1-plus - AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) OR (lgpl-3.0-plus AND gpl-2.0-plus AND lgpl-3.0) - OR mit OR bsd-new OR bsd-original) + AND gpl-2.0-plus) AND public-domain AND mit AND bsd-original AND ((gpl-2.0-plus AND gpl-2.0-plus + AND gpl-1.0-plus AND gpl-2.0) OR (gpl-3.0-plus AND gpl-2.0-plus) OR (lgpl-2.1-plus AND lgpl-2.1-plus + AND lgpl-2.1) OR (lgpl-3.0-plus AND gpl-2.0-plus) OR mit OR bsd-new OR bsd-original) - | 2011-2016, FusionDirectory 2011-2017, FusionDirectory diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/g/gnome-control-center/stable_copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/g/gnome-control-center/stable_copyright-detailed.expected.yml index 16f31d233d6..a4b89bc0366 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/g/gnome-control-center/stable_copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/g/gnome-control-center/stable_copyright-detailed.expected.yml @@ -7,7 +7,7 @@ - LGPL-2+ - LGPL-2.1+ - (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0) AND mit AND (lgpl-2.0-plus AND lgpl-2.1-plus AND - lgpl-2.1-plus AND lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) + lgpl-2.0-plus) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.0-plus) - | 1996-2018 Free Software Foundation, Inc. 1999-2015 The Gnome Project diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/g/gnome-control-center/stable_copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/g/gnome-control-center/stable_copyright.expected.yml index 4a44cda8544..d8976de767f 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/g/gnome-control-center/stable_copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/g/gnome-control-center/stable_copyright.expected.yml @@ -3,7 +3,7 @@ - LGPL-2+ - LGPL-2.1+ - (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0) AND mit AND (lgpl-2.0-plus AND lgpl-2.1-plus AND - lgpl-2.1-plus AND lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) + lgpl-2.0-plus) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.0-plus) - | 1996-2018 Free Software Foundation, Inc. 1999-2015 The Gnome Project diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/g/gnupg2/stable_copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/g/gnupg2/stable_copyright-detailed.expected.yml index d8944155534..5fc5d92db87 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/g/gnupg2/stable_copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/g/gnupg2/stable_copyright-detailed.expected.yml @@ -29,7 +29,7 @@ AND gpl-3.0) OR bsd-new) AND (lgpl-3.0-plus AND lgpl-3.0-plus AND lgpl-3.0 AND lgpl-3.0) AND (gpl-3.0-plus AND gpl-3.0-plus AND gpl-1.0-plus AND gpl-1.0-plus AND gpl-3.0 AND gpl-3.0) AND ietf AND bsd-new AND (gpl-3.0-plus AND gpl-3.0-plus AND gpl-1.0-plus AND gpl-1.0-plus - AND gpl-3.0 AND gpl-3.0) AND (cc0-1.0 AND cc0-1.0 AND artistic-2.0) + AND gpl-3.0 AND gpl-3.0) AND (cc0-1.0 AND cc0-1.0) - | 1992, 1995-2016, Free Software Foundation, Inc 1998-2007, 2009, 2012, Free Software Foundation, Inc diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/g/gnupg2/stable_copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/g/gnupg2/stable_copyright.expected.yml index 2f90a855827..74d8feb8008 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/g/gnupg2/stable_copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/g/gnupg2/stable_copyright.expected.yml @@ -12,7 +12,7 @@ AND fsf-unlimited-no-warranty AND (lgpl-2.1-plus AND lgpl-3.0-plus) AND mit AND ((gpl-3.0-plus AND gpl-3.0-plus AND gpl-1.0-plus AND gpl-1.0-plus AND gpl-3.0 AND gpl-3.0) OR bsd-new) AND (lgpl-3.0-plus AND lgpl-3.0-plus AND lgpl-3.0 AND lgpl-3.0) AND ietf AND bsd-new AND (cc0-1.0 - AND cc0-1.0 AND artistic-2.0) + AND cc0-1.0) - | 1992, 1995-2016, Free Software Foundation, Inc 1998-2007, 2009, 2012, Free Software Foundation, Inc diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/l/linux-signed-amd64/stable_copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/l/linux-signed-amd64/stable_copyright-detailed.expected.yml index 760b0120174..94f68f5efa4 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/l/linux-signed-amd64/stable_copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/l/linux-signed-amd64/stable_copyright-detailed.expected.yml @@ -9,9 +9,9 @@ - GPL-2 - LGPL-2.1 - GPL-2+ or X11 -- (gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0) AND (lgpl-2.1 AND lgpl-2.1-plus AND lgpl-2.1 - AND lgpl-2.1) AND (gpl-2.0-plus OR mit) AND (bsd-new OR gpl-1.0-plus) AND unicode AND mit - AND (lgpl-2.1 AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) +- (gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0) AND (lgpl-2.1 AND lgpl-2.1-plus AND lgpl-2.1) + AND (gpl-2.0-plus OR mit) AND (bsd-new OR gpl-1.0-plus) AND unicode AND mit AND (lgpl-2.1 + AND lgpl-2.1-plus AND lgpl-2.1) - | 1991-2012 Linus Torvalds and many others 1996-2006 Manoj Srivastava diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/l/linux-signed-amd64/stable_copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/l/linux-signed-amd64/stable_copyright.expected.yml index b05ddb4f4fa..89e4ad70876 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/l/linux-signed-amd64/stable_copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/l/linux-signed-amd64/stable_copyright.expected.yml @@ -4,8 +4,8 @@ - CRYPTOGAMS - Unicode-data - Xen-interface -- (gpl-2.0 AND gpl-2.0) AND (lgpl-2.1 AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (gpl-2.0-plus - OR mit) AND (bsd-new OR gpl-1.0-plus) AND unicode AND mit +- (gpl-2.0 AND gpl-2.0) AND (lgpl-2.1 AND lgpl-2.1-plus AND lgpl-2.1) AND (gpl-2.0-plus OR mit) + AND (bsd-new OR gpl-1.0-plus) AND unicode AND mit - | 1991-2012 Linus Torvalds and many others 2011 Lennart Poettering diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/l/linux-signed-arm64/stable_copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/l/linux-signed-arm64/stable_copyright-detailed.expected.yml index 760b0120174..94f68f5efa4 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/l/linux-signed-arm64/stable_copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/l/linux-signed-arm64/stable_copyright-detailed.expected.yml @@ -9,9 +9,9 @@ - GPL-2 - LGPL-2.1 - GPL-2+ or X11 -- (gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0) AND (lgpl-2.1 AND lgpl-2.1-plus AND lgpl-2.1 - AND lgpl-2.1) AND (gpl-2.0-plus OR mit) AND (bsd-new OR gpl-1.0-plus) AND unicode AND mit - AND (lgpl-2.1 AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) +- (gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0) AND (lgpl-2.1 AND lgpl-2.1-plus AND lgpl-2.1) + AND (gpl-2.0-plus OR mit) AND (bsd-new OR gpl-1.0-plus) AND unicode AND mit AND (lgpl-2.1 + AND lgpl-2.1-plus AND lgpl-2.1) - | 1991-2012 Linus Torvalds and many others 1996-2006 Manoj Srivastava diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/l/linux-signed-arm64/stable_copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/l/linux-signed-arm64/stable_copyright.expected.yml index b05ddb4f4fa..89e4ad70876 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/l/linux-signed-arm64/stable_copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/l/linux-signed-arm64/stable_copyright.expected.yml @@ -4,8 +4,8 @@ - CRYPTOGAMS - Unicode-data - Xen-interface -- (gpl-2.0 AND gpl-2.0) AND (lgpl-2.1 AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (gpl-2.0-plus - OR mit) AND (bsd-new OR gpl-1.0-plus) AND unicode AND mit +- (gpl-2.0 AND gpl-2.0) AND (lgpl-2.1 AND lgpl-2.1-plus AND lgpl-2.1) AND (gpl-2.0-plus OR mit) + AND (bsd-new OR gpl-1.0-plus) AND unicode AND mit - | 1991-2012 Linus Torvalds and many others 2011 Lennart Poettering diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/l/linux-signed-i386/stable_copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/l/linux-signed-i386/stable_copyright-detailed.expected.yml index 760b0120174..94f68f5efa4 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/l/linux-signed-i386/stable_copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/l/linux-signed-i386/stable_copyright-detailed.expected.yml @@ -9,9 +9,9 @@ - GPL-2 - LGPL-2.1 - GPL-2+ or X11 -- (gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0) AND (lgpl-2.1 AND lgpl-2.1-plus AND lgpl-2.1 - AND lgpl-2.1) AND (gpl-2.0-plus OR mit) AND (bsd-new OR gpl-1.0-plus) AND unicode AND mit - AND (lgpl-2.1 AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) +- (gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0) AND (lgpl-2.1 AND lgpl-2.1-plus AND lgpl-2.1) + AND (gpl-2.0-plus OR mit) AND (bsd-new OR gpl-1.0-plus) AND unicode AND mit AND (lgpl-2.1 + AND lgpl-2.1-plus AND lgpl-2.1) - | 1991-2012 Linus Torvalds and many others 1996-2006 Manoj Srivastava diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/l/linux-signed-i386/stable_copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/l/linux-signed-i386/stable_copyright.expected.yml index b05ddb4f4fa..89e4ad70876 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/l/linux-signed-i386/stable_copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/l/linux-signed-i386/stable_copyright.expected.yml @@ -4,8 +4,8 @@ - CRYPTOGAMS - Unicode-data - Xen-interface -- (gpl-2.0 AND gpl-2.0) AND (lgpl-2.1 AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (gpl-2.0-plus - OR mit) AND (bsd-new OR gpl-1.0-plus) AND unicode AND mit +- (gpl-2.0 AND gpl-2.0) AND (lgpl-2.1 AND lgpl-2.1-plus AND lgpl-2.1) AND (gpl-2.0-plus OR mit) + AND (bsd-new OR gpl-1.0-plus) AND unicode AND mit - | 1991-2012 Linus Torvalds and many others 2011 Lennart Poettering diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/l/linux/stable_copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/l/linux/stable_copyright-detailed.expected.yml index 760b0120174..94f68f5efa4 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/l/linux/stable_copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/l/linux/stable_copyright-detailed.expected.yml @@ -9,9 +9,9 @@ - GPL-2 - LGPL-2.1 - GPL-2+ or X11 -- (gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0) AND (lgpl-2.1 AND lgpl-2.1-plus AND lgpl-2.1 - AND lgpl-2.1) AND (gpl-2.0-plus OR mit) AND (bsd-new OR gpl-1.0-plus) AND unicode AND mit - AND (lgpl-2.1 AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) +- (gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0) AND (lgpl-2.1 AND lgpl-2.1-plus AND lgpl-2.1) + AND (gpl-2.0-plus OR mit) AND (bsd-new OR gpl-1.0-plus) AND unicode AND mit AND (lgpl-2.1 + AND lgpl-2.1-plus AND lgpl-2.1) - | 1991-2012 Linus Torvalds and many others 1996-2006 Manoj Srivastava diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/l/linux/stable_copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/l/linux/stable_copyright.expected.yml index b05ddb4f4fa..89e4ad70876 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/l/linux/stable_copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/l/linux/stable_copyright.expected.yml @@ -4,8 +4,8 @@ - CRYPTOGAMS - Unicode-data - Xen-interface -- (gpl-2.0 AND gpl-2.0) AND (lgpl-2.1 AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (gpl-2.0-plus - OR mit) AND (bsd-new OR gpl-1.0-plus) AND unicode AND mit +- (gpl-2.0 AND gpl-2.0) AND (lgpl-2.1 AND lgpl-2.1-plus AND lgpl-2.1) AND (gpl-2.0-plus OR mit) + AND (bsd-new OR gpl-1.0-plus) AND unicode AND mit - | 1991-2012 Linus Torvalds and many others 2011 Lennart Poettering diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/libs/libsdl2-image/stable_copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/libs/libsdl2-image/stable_copyright-detailed.expected.yml index 4f994f1ce4f..8f7a1b6bc27 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/libs/libsdl2-image/stable_copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/libs/libsdl2-image/stable_copyright-detailed.expected.yml @@ -5,8 +5,8 @@ - LGPL-2+ - zlib/libpng - LGPL-2+ -- zlib AND zlib AND (lgpl-2.0-plus AND gpl-2.0-plus AND lgpl-2.0) AND unlicense AND (lgpl-2.0-plus - AND gpl-2.0-plus AND lgpl-2.0) +- zlib AND zlib AND (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.0) AND unlicense + AND (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.0) - | 1997-2016 Sam Lantinga 1997-2016 Sam Lantinga diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/libs/libsdl2-image/stable_copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/libs/libsdl2-image/stable_copyright.expected.yml index 40d3b459334..316e4b38ec6 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/libs/libsdl2-image/stable_copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/libs/libsdl2-image/stable_copyright.expected.yml @@ -1,7 +1,7 @@ - - zlib/libpng - LGPL-2+ - public-domain -- zlib AND (lgpl-2.0-plus AND gpl-2.0-plus AND lgpl-2.0) AND unlicense +- zlib AND (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.0) AND unlicense - | 1997-2016 Sam Lantinga 1990, 1991, 1993 David Koblas 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 9ea8d9df68a..f99439d4074 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 @@ -96,13 +96,13 @@ AND gpl-2.0 AND gpl-2.0 AND gpl-1.0-plus) AND other-copyleft AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0 AND gpl-2.0 AND gpl-1.0-plus) AND public-domain AND bsd-new AND bsd-new AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND bsd-simplified AND (lgpl-2.1-plus AND lgpl-2.1-plus - AND lgpl-2.1 AND lgpl-2.1) AND (lgpl-2.0 AND lgpl-3.0-plus AND lgpl-2.0) AND (gpl-2.0-plus - AND gpl-2.0-plus AND gpl-2.0 AND gpl-2.0 AND gpl-1.0-plus) AND bsd-simplified AND bsd-simplified - AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (gpl-2.0-plus AND gpl-2.0-plus - AND gpl-2.0 AND gpl-2.0 AND gpl-1.0-plus) AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0 AND - gpl-2.0 AND gpl-1.0-plus) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 AND gpl-2.0 AND gpl-1.0-plus) - AND fsf-free AND (lgpl-2.0-plus AND lgpl-2.0-plus) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 AND - gpl-2.0 AND gpl-1.0-plus) AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0 AND gpl-2.0 AND gpl-1.0-plus) + AND lgpl-2.1 AND lgpl-2.1) AND (lgpl-2.0 AND lgpl-3.0-plus) AND (gpl-2.0-plus AND gpl-2.0-plus + AND gpl-2.0 AND gpl-2.0 AND gpl-1.0-plus) AND bsd-simplified AND bsd-simplified AND (lgpl-2.1-plus + AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0 + AND gpl-2.0 AND gpl-1.0-plus) AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0 AND gpl-2.0 AND + gpl-1.0-plus) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 AND gpl-2.0 AND gpl-1.0-plus) AND fsf-free + AND (lgpl-2.0-plus AND lgpl-2.0-plus) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 AND gpl-2.0 AND + gpl-1.0-plus) AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0 AND gpl-2.0 AND gpl-1.0-plus) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 AND gpl-2.0 AND gpl-1.0-plus) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 AND gpl-2.0 AND gpl-1.0-plus) AND ((gpl-2.0 AND gpl-2.0 AND gpl-2.0 AND gpl-2.0 AND gpl-1.0-plus) AND bsd-simplified) AND bsd-new AND bsd-new AND (gpl-2.0 AND gpl-2.0 AND diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/m/mariadb-10.3/stable_copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/m/mariadb-10.3/stable_copyright.expected.yml index 634f57c8989..a67d668a085 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/m/mariadb-10.3/stable_copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/m/mariadb-10.3/stable_copyright.expected.yml @@ -20,9 +20,9 @@ - (gpl-2.0 AND gpl-2.0 AND gpl-2.0 AND gpl-2.0 AND gpl-1.0-plus) AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0 AND gpl-2.0 AND gpl-1.0-plus) AND other-copyleft AND public-domain AND bsd-new AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND bsd-simplified AND (lgpl-2.0 - AND lgpl-3.0-plus AND lgpl-2.0) AND fsf-free AND (lgpl-2.0-plus AND lgpl-2.0-plus) AND ((gpl-2.0 - AND gpl-2.0 AND gpl-2.0 AND gpl-2.0 AND gpl-1.0-plus) AND bsd-simplified) AND zlib AND gpl-3.0-plus - WITH bison-exception-2.2 AND gpl-2.0-plus WITH bison-exception-2.2 AND stlport-4.5 AND ((gpl-2.0 + AND lgpl-3.0-plus) AND fsf-free AND (lgpl-2.0-plus AND lgpl-2.0-plus) AND ((gpl-2.0 AND gpl-2.0 + AND gpl-2.0 AND gpl-2.0 AND gpl-1.0-plus) AND bsd-simplified) AND zlib AND gpl-3.0-plus WITH + bison-exception-2.2 AND gpl-2.0-plus WITH bison-exception-2.2 AND stlport-4.5 AND ((gpl-2.0 AND gpl-2.0 AND gpl-2.0 AND gpl-2.0 AND gpl-1.0-plus) OR (artistic-2.0 AND artistic-perl-1.0)) AND (gpl-3.0-plus AND gpl-3.0-plus) AND (x11-xconsortium AND public-domain) - | diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/n/nextcloud-desktop/stable_copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/n/nextcloud-desktop/stable_copyright-detailed.expected.yml index 68c07707a13..51e13bce036 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/n/nextcloud-desktop/stable_copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/n/nextcloud-desktop/stable_copyright-detailed.expected.yml @@ -28,10 +28,10 @@ AND lgpl-2.1 AND lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND public-domain-disclaimer AND bsd-new AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (lgpl-2.1 AND lgpl-2.1 AND lgpl-2.1 AND lgpl-2.1) AND (mit AND mit) AND - ijg AND (apache-2.0 AND lgpl-2.1 AND apache-2.0) AND (mit AND mit) AND boost-1.0 AND ((gpl-3.0 - AND gpl-3.0 AND gpl-1.0-plus AND gpl-1.0-plus AND other-copyleft AND gpl-1.0-plus AND gpl-3.0 - AND gpl-3.0) OR (lgpl-2.1 AND lgpl-2.1 AND lgpl-2.1 AND lgpl-2.1)) AND (gpl-2.0-plus AND gpl-2.0-plus - AND gpl-1.0-plus AND gpl-2.0 AND gpl-2.0) + ijg AND (apache-2.0 AND lgpl-2.1) AND (mit AND mit) AND boost-1.0 AND ((gpl-3.0 AND gpl-3.0 + AND gpl-1.0-plus AND gpl-1.0-plus AND other-copyleft AND gpl-1.0-plus AND gpl-3.0 AND gpl-3.0) + OR (lgpl-2.1 AND lgpl-2.1 AND lgpl-2.1 AND lgpl-2.1)) AND (gpl-2.0-plus AND gpl-2.0-plus AND + gpl-1.0-plus AND gpl-2.0 AND gpl-2.0) - | 2006, Alexander Neundorf 2006, Andreas Schneider diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/n/nextcloud-desktop/stable_copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/n/nextcloud-desktop/stable_copyright.expected.yml index 15ef7404545..24119065eca 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/n/nextcloud-desktop/stable_copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/n/nextcloud-desktop/stable_copyright.expected.yml @@ -12,9 +12,9 @@ - (gpl-2.0-plus AND gpl-2.0-plus AND gpl-1.0-plus AND gpl-2.0 AND gpl-2.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND public-domain-disclaimer AND bsd-new AND (lgpl-2.1 AND lgpl-2.1 AND lgpl-2.1 AND lgpl-2.1) AND (mit AND mit) AND ijg AND (apache-2.0 - AND lgpl-2.1 AND apache-2.0) AND boost-1.0 AND ((gpl-3.0 AND gpl-3.0 AND gpl-1.0-plus AND - gpl-1.0-plus AND other-copyleft AND gpl-1.0-plus AND gpl-3.0 AND gpl-3.0) OR (lgpl-2.1 AND - lgpl-2.1 AND lgpl-2.1 AND lgpl-2.1)) + AND lgpl-2.1) AND boost-1.0 AND ((gpl-3.0 AND gpl-3.0 AND gpl-1.0-plus AND gpl-1.0-plus AND + other-copyleft AND gpl-1.0-plus AND gpl-3.0 AND gpl-3.0) OR (lgpl-2.1 AND lgpl-2.1 AND lgpl-2.1 + AND lgpl-2.1)) - | 2006, Alexander Neundorf 2006, Andreas Schneider diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/p/pam-u2f/stable_copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/p/pam-u2f/stable_copyright-detailed.expected.yml index 09b246aff0d..eac11a80190 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/p/pam-u2f/stable_copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/p/pam-u2f/stable_copyright-detailed.expected.yml @@ -8,10 +8,10 @@ - GPL-2+ - GPL-3+ - BSD-2-clause -- bsd-simplified AND bsd-simplified AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0 AND gpl-2.0) - AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0 AND gpl-2.0) AND fsf-unlimited AND (gpl-3.0-plus - AND gpl-3.0-plus AND gpl-3.0 AND gpl-3.0) AND (gpl-2.0-plus AND gpl-2.0-plus AND libtool-exception-2.0 - AND gpl-2.0-plus AND gpl-2.0) +- bsd-simplified AND bsd-simplified AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0) AND (gpl-2.0-plus + AND gpl-2.0-plus AND gpl-2.0) AND fsf-unlimited AND (gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0 + AND gpl-3.0) AND (gpl-2.0-plus AND gpl-2.0-plus AND libtool-exception-2.0 AND gpl-2.0-plus + AND gpl-2.0) - | Copyright (c) 2006-2018 Yubico AB 2014-2016 Yubico AB diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/p/pam-u2f/stable_copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/p/pam-u2f/stable_copyright.expected.yml index 4ce4bfc69c8..ab27b132b54 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/p/pam-u2f/stable_copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/p/pam-u2f/stable_copyright.expected.yml @@ -3,9 +3,9 @@ - FSFUL - GPL-3+ - GPL-2+ with libtool exception -- bsd-simplified AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0 AND gpl-2.0) AND fsf-unlimited - AND (gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0 AND gpl-3.0) AND (gpl-2.0-plus AND gpl-2.0-plus - AND libtool-exception-2.0 AND gpl-2.0-plus AND gpl-2.0) +- bsd-simplified AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0) AND fsf-unlimited AND (gpl-3.0-plus + AND gpl-3.0-plus AND gpl-3.0 AND gpl-3.0) AND (gpl-2.0-plus AND gpl-2.0-plus AND libtool-exception-2.0 + AND gpl-2.0-plus AND gpl-2.0) - | Copyright (c) 2006-2018 Yubico AB 1996-2017, Free Software Foundation, Inc. diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/p/pango1.0/stable_copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/p/pango1.0/stable_copyright-detailed.expected.yml index 65445f06c89..a02e8164fee 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/p/pango1.0/stable_copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/p/pango1.0/stable_copyright-detailed.expected.yml @@ -14,12 +14,10 @@ - LGPL-2+ - TCL - Unicode -- (lgpl-2.0-plus AND gpl-2.0-plus AND lgpl-2.0) AND mit-old-style AND (lgpl-2.0-plus AND gpl-2.0-plus - AND lgpl-2.0) AND (lgpl-2.0-plus AND gpl-2.0-plus AND lgpl-2.0) AND (lgpl-2.0-plus AND gpl-2.0-plus - AND lgpl-2.0) AND ((lgpl-2.0-plus AND gpl-2.0-plus AND lgpl-2.0) AND tcl) AND (lgpl-2.0-plus - AND gpl-2.0-plus AND lgpl-2.0) AND (lgpl-2.0-plus AND gpl-2.0-plus AND lgpl-2.0) AND unicode - AND ((lgpl-2.0-plus AND gpl-2.0-plus AND lgpl-2.0) AND x11) AND (lgpl-2.0-plus AND gpl-2.0-plus - AND lgpl-2.0) +- (lgpl-2.0-plus AND gpl-2.0-plus) AND mit-old-style AND (lgpl-2.0-plus AND gpl-2.0-plus) AND + (lgpl-2.0-plus AND gpl-2.0-plus) AND (lgpl-2.0-plus AND gpl-2.0-plus) AND ((lgpl-2.0-plus + AND gpl-2.0-plus) AND tcl) AND (lgpl-2.0-plus AND gpl-2.0-plus) AND (lgpl-2.0-plus AND gpl-2.0-plus) + AND unicode AND ((lgpl-2.0-plus AND gpl-2.0-plus) AND x11) AND (lgpl-2.0-plus AND gpl-2.0-plus) - | 1999-2015 Red Hat 2005-2007 Imendio AB diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/p/pango1.0/stable_copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/p/pango1.0/stable_copyright.expected.yml index eb4f99fc4be..3af2215562f 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/p/pango1.0/stable_copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/p/pango1.0/stable_copyright.expected.yml @@ -5,9 +5,8 @@ - LGPL-2+ and ICU - ICU - TCL -- (lgpl-2.0-plus AND gpl-2.0-plus AND lgpl-2.0) AND mit-old-style AND ((lgpl-2.0-plus AND gpl-2.0-plus - AND lgpl-2.0) AND tcl) AND unicode AND ((lgpl-2.0-plus AND gpl-2.0-plus AND lgpl-2.0) AND - x11) +- (lgpl-2.0-plus AND gpl-2.0-plus) AND mit-old-style AND ((lgpl-2.0-plus AND gpl-2.0-plus) AND + tcl) AND unicode AND ((lgpl-2.0-plus AND gpl-2.0-plus) AND x11) - | 1999-2015 Red Hat 2005-2007 Imendio AB diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/p/pulseaudio/stable_copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/p/pulseaudio/stable_copyright-detailed.expected.yml index 6cca2b6dfbf..2e8d60d81de 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/p/pulseaudio/stable_copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/p/pulseaudio/stable_copyright-detailed.expected.yml @@ -6,13 +6,13 @@ AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND mit AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus + AND lgpl-2.1-plus AND lgpl-2.0-plus AND lgpl-2.0 AND lgpl-2.0 AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus - AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus - AND lgpl-2.1-plus AND lgpl-2.1-plus AND gpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND - lgpl-2.1-plus AND lgpl-2.1-plus + AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND gpl-2.0-plus AND lgpl-2.1-plus AND + lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus - | Copyright (c) 2004-2009 Lennart Poettering Copyright (c) 2006-2007 Pierre Ossman for Cendio AB diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/p/pulseaudio/stable_copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/p/pulseaudio/stable_copyright.expected.yml index dff46b054d8..10bb79465ff 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/p/pulseaudio/stable_copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/p/pulseaudio/stable_copyright.expected.yml @@ -1,5 +1,6 @@ - -- lgpl-2.1-plus AND sun-source AND libpbm AND gpl-2.0-plus AND adrian AND mit +- lgpl-2.1-plus AND sun-source AND libpbm AND gpl-2.0-plus AND adrian AND mit AND lgpl-2.0-plus + AND lgpl-2.0 - | Copyright (c) 2004-2009 Lennart Poettering Copyright (c) 2006-2007 Pierre Ossman for Cendio AB diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/s/slirp4netns/stable_copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/s/slirp4netns/stable_copyright-detailed.expected.yml index 9fa05ef8112..98f37c56155 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/s/slirp4netns/stable_copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/s/slirp4netns/stable_copyright-detailed.expected.yml @@ -21,7 +21,7 @@ - (gpl-2.0-plus AND gpl-3.0-plus) AND (gpl-2.0-plus AND gpl-3.0-plus) AND bsd-new AND bsd-simplified AND mit AND mit AND bsd-simplified AND (gpl-2.0-plus AND gpl-3.0-plus) AND (gpl-2.0-plus AND gpl-3.0-plus) AND mit AND bsd-simplified AND bsd-simplified AND bsd-simplified AND (lgpl-2.1-plus - AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) + AND lgpl-2.1-plus AND lgpl-2.1) - | 2018 Giuseppe Scrivano Akihiro Suda diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/s/slirp4netns/stable_copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/s/slirp4netns/stable_copyright.expected.yml index 5b403a1aac1..c502f5de29c 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/s/slirp4netns/stable_copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/s/slirp4netns/stable_copyright.expected.yml @@ -6,7 +6,7 @@ - LGPL-2.1+ - GPL-2 - (gpl-2.0-plus AND gpl-3.0-plus) AND bsd-new AND bsd-simplified AND mit AND bsd-simplified - AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) + AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) - | 2018 Giuseppe Scrivano Akihiro Suda diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/s/systemd/stable_copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/s/systemd/stable_copyright-detailed.expected.yml index 589b820fc54..f7fbd039279 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/s/systemd/stable_copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/s/systemd/stable_copyright-detailed.expected.yml @@ -14,12 +14,11 @@ - GPL-2+ - LGPL-2.1+ - CC0-1.0 -- (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (cc0-1.0 AND cc0-1.0 AND cc0-1.0) - AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 AND - gpl-2.0) AND (gpl-2.0-plus AND gpl-2.0-plus) AND mit AND public-domain-disclaimer AND (gpl-2.0-plus - AND gpl-2.0-plus) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (gpl-2.0 - AND gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND - lgpl-2.1) +- (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND (cc0-1.0 AND cc0-1.0 AND cc0-1.0) AND (gpl-2.0 + AND gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND + (gpl-2.0-plus AND gpl-2.0-plus) AND mit AND public-domain-disclaimer AND (gpl-2.0-plus AND + gpl-2.0-plus) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND (gpl-2.0 AND gpl-2.0 + AND gpl-2.0 AND gpl-2.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) - | 2008-2015 Kay Sievers 2010-2015 Lennart Poettering diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/s/systemd/stable_copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/s/systemd/stable_copyright.expected.yml index ea6f01ca9ac..17ced2dce64 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/s/systemd/stable_copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/s/systemd/stable_copyright.expected.yml @@ -4,9 +4,8 @@ - GPL-2+ - Expat - public-domain -- (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (cc0-1.0 AND cc0-1.0 AND cc0-1.0) - AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0-plus AND gpl-2.0-plus) AND - mit AND public-domain-disclaimer +- (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND (cc0-1.0 AND cc0-1.0 AND cc0-1.0) AND (gpl-2.0 + AND gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0-plus AND gpl-2.0-plus) AND mit AND public-domain-disclaimer - | 2008-2015 Kay Sievers 2010-2015 Lennart Poettering diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-adi.copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-adi.copyright-detailed.expected.yml index e1ae1aca056..62aadc68e24 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-adi.copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-adi.copyright-detailed.expected.yml @@ -1,5 +1,5 @@ - -- gpl-2.0-plus AND gpl-2.0 AND gpl-2.0 +- gpl-2.0-plus AND gpl-2.0 - | Copyright 2006-2009 Bastian Blank Copyright 2009 Ben Hutchings diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-linux-nonfree.copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-linux-nonfree.copyright-detailed.expected.yml index e1ae1aca056..62aadc68e24 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-linux-nonfree.copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-linux-nonfree.copyright-detailed.expected.yml @@ -1,5 +1,5 @@ - -- gpl-2.0-plus AND gpl-2.0 AND gpl-2.0 +- gpl-2.0-plus AND gpl-2.0 - | Copyright 2006-2009 Bastian Blank Copyright 2009 Ben Hutchings diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-linux.copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-linux.copyright-detailed.expected.yml index e1ae1aca056..62aadc68e24 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-linux.copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-linux.copyright-detailed.expected.yml @@ -1,5 +1,5 @@ - -- gpl-2.0-plus AND gpl-2.0 AND gpl-2.0 +- gpl-2.0-plus AND gpl-2.0 - | Copyright 2006-2009 Bastian Blank Copyright 2009 Ben Hutchings diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-ralink.copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-ralink.copyright-detailed.expected.yml index e1ae1aca056..62aadc68e24 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-ralink.copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-ralink.copyright-detailed.expected.yml @@ -1,5 +1,5 @@ - -- gpl-2.0-plus AND gpl-2.0 AND gpl-2.0 +- gpl-2.0-plus AND gpl-2.0 - | Copyright 2006-2009 Bastian Blank Copyright 2009 Ben Hutchings diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/adduser/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/adduser/copyright-detailed.expected.yml index dbc9ef87c5e..6cec6305790 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/adduser/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/adduser/copyright-detailed.expected.yml @@ -1,5 +1,5 @@ - -- gpl-2.0 AND gpl-2.0-plus +- gpl-2.0-plus - | Copyright (c) 2000 Roland Bauerschmidt Copyright (c) 1997, 1998, 1999 Guy Maor diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/adduser/copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/adduser/copyright.expected.yml index dbc9ef87c5e..6cec6305790 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/adduser/copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/adduser/copyright.expected.yml @@ -1,5 +1,5 @@ - -- gpl-2.0 AND gpl-2.0-plus +- gpl-2.0-plus - | Copyright (c) 2000 Roland Bauerschmidt Copyright (c) 1997, 1998, 1999 Guy Maor diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/bsdutils/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/bsdutils/copyright-detailed.expected.yml index 9bc35e81ba5..913d2b98450 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/bsdutils/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/bsdutils/copyright-detailed.expected.yml @@ -42,22 +42,19 @@ - LGPL-2.1+ - LGPL-3+ - MIT -- (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 - AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND - gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 - AND gpl-2.0 AND gpl-2.0) AND public-domain AND bsd-original-uc AND mit AND mit AND bsd-no-disclaimer - AND bsd-no-disclaimer AND bsd-no-disclaimer AND bsd-new AND bsd-new AND (lgpl-2.0-plus AND - lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0) AND (lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0-plus - AND lgpl-2.0) AND (lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0) AND (lgpl-2.1-plus - AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 - AND lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (gpl-3.0-plus - AND gpl-3.0-plus AND gpl-3.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) - AND (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND - lgpl-2.1 AND lgpl-2.1) AND (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0) AND (lgpl-2.0-plus - AND lgpl-2.1-plus AND lgpl-2.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) - AND (lgpl-3.0-plus AND lgpl-3.0-plus) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND - lgpl-2.1) AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0-plus AND - gpl-2.0-plus AND gpl-2.0 AND gpl-2.0) +- (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 + AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND + gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND public-domain AND bsd-original-uc AND mit + AND mit AND bsd-simplified AND bsd-simplified AND bsd-simplified AND bsd-new AND bsd-new AND + (lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0) AND (lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0) + AND (lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND + lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus + AND lgpl-2.1) AND (gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus + AND lgpl-2.1) AND (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0-plus) AND (lgpl-2.1-plus AND + lgpl-2.1-plus AND lgpl-2.1) AND (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0-plus) AND (lgpl-2.0-plus + AND lgpl-2.1-plus AND lgpl-2.0-plus) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND + (lgpl-3.0-plus AND lgpl-3.0-plus) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND (gpl-2.0-plus + AND gpl-2.0-plus AND gpl-2.0) AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0) - | Michal Luscon 1986 Gary S. Brown diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/bsdutils/copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/bsdutils/copyright.expected.yml index 11099084090..ca31e519c67 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/bsdutils/copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/bsdutils/copyright.expected.yml @@ -10,11 +10,11 @@ - GPL-3+ - LGPL - LGPL-3+ -- (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 - AND gpl-2.0) AND public-domain AND bsd-original-uc AND mit AND bsd-no-disclaimer AND bsd-new - AND (lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0) AND (lgpl-2.1-plus AND - lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0) AND - (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0) AND (lgpl-3.0-plus AND lgpl-3.0-plus) +- (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND public-domain + AND bsd-original-uc AND mit AND bsd-simplified AND bsd-new AND (lgpl-2.0-plus AND lgpl-2.0-plus + AND lgpl-2.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND (gpl-3.0-plus AND gpl-3.0-plus + AND gpl-3.0) AND (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0-plus) AND (lgpl-3.0-plus AND + lgpl-3.0-plus) - | Michal Luscon 1986 Gary S. Brown 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 0ce15b0121a..7ad2e2d6b2d 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,5 +1,5 @@ - -- gpl-1.0-plus AND gpl-2.0-plus AND public-domain AND smail-gpl +- gpl-2.0-plus AND smail-gpl - | Copyright (c) 1988 Landon Curt Noll & Ronald S. Karr Copyright (c) 1992 Ronald S. Karr diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/debianutils/copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/debianutils/copyright.expected.yml index 0ce15b0121a..7ad2e2d6b2d 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/debianutils/copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/debianutils/copyright.expected.yml @@ -1,5 +1,5 @@ - -- gpl-1.0-plus AND gpl-2.0-plus AND public-domain AND smail-gpl +- gpl-2.0-plus AND smail-gpl - | Copyright (c) 1988 Landon Curt Noll & Ronald S. Karr Copyright (c) 1992 Ronald S. Karr diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/e2fsprogs/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/e2fsprogs/copyright-detailed.expected.yml index 9cf037404ae..31c5d5d9f60 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/e2fsprogs/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/e2fsprogs/copyright-detailed.expected.yml @@ -1,5 +1,5 @@ - -- (gpl-2.0 AND lgpl-2.0 AND bsd-new AND mit-old-style-no-advert) AND (gpl-2.0 AND lgpl-2.1) +- (gpl-2.0 AND lgpl-2.0 AND bsd-new AND mit-old-style-no-advert) AND (gpl-2.0 AND lgpl-2.0) AND ntp-0 AND bsd-new - | Copyright (c) 2003-2007 Theodore Ts'o diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/e2fsprogs/copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/e2fsprogs/copyright.expected.yml index 9cf037404ae..31c5d5d9f60 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/e2fsprogs/copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/e2fsprogs/copyright.expected.yml @@ -1,5 +1,5 @@ - -- (gpl-2.0 AND lgpl-2.0 AND bsd-new AND mit-old-style-no-advert) AND (gpl-2.0 AND lgpl-2.1) +- (gpl-2.0 AND lgpl-2.0 AND bsd-new AND mit-old-style-no-advert) AND (gpl-2.0 AND lgpl-2.0) AND ntp-0 AND bsd-new - | Copyright (c) 2003-2007 Theodore Ts'o diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/gcc-10-base/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/gcc-10-base/copyright-detailed.expected.yml index 9e9e65f98e2..bbf5e2b9288 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/gcc-10-base/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/gcc-10-base/copyright-detailed.expected.yml @@ -1,25 +1,23 @@ - -- (gpl-2.0-plus AND gpl-3.0-plus) AND gpl-3.0 AND gpl-1.0-plus AND gpl-3.0-plus AND gcc-exception-3.1 - AND unknown-license-reference AND bsd-new AND unknown-license-reference AND uoi-ncsa AND mit - AND unknown-license-reference AND (mit OR commercial-license) AND gfdl-1.2 AND gcc-exception-3.1 - AND gpl-2.0 AND lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND public-domain - AND lgpl-2.1-plus AND lgpl-2.1-plus AND sunpro AND bsd-new AND gpl-2.0-plus AND gpl-2.0 AND - gpl-2.0 AND gpl-2.0 AND artistic-1.0 AND (artistic-perl-1.0 OR gpl-1.0-plus) AND artistic-1.0 - AND zlib AND d-zlib AND unknown-license-reference AND mit AND unknown-license-reference AND - gpl-3.0-plus WITH gcc-exception-3.1 AND gpl-2.0-plus AND gfdl-1.3-plus AND lgpl-2.1-plus AND - gpl-3.0 AND gcc-exception-3.1 AND gpl-3.0-plus AND gcc-exception-3.1 AND gpl-3.0 AND lgpl-2.0-plus - AND lgpl-2.1 AND gpl-3.0 AND lgpl-2.0-plus AND lgpl-2.1 AND lgpl-2.1 AND gpl-3.0 AND gpl-3.0-plus - AND gpl-1.0-plus AND gpl-3.0 AND lgpl-2.0-plus AND lgpl-2.1 AND gpl-2.0-plus AND gpl-3.0-plus - AND lgpl-2.1-plus AND gpl-3.0 AND gcc-exception-3.1 AND other-permissive AND gpl-1.0-plus - AND unknown-license-reference AND gpl-1.0-plus AND lgpl-2.0-plus AND bsla-no-advert AND bsla - AND bsd-original-uc AND bsd-new AND unknown-license-reference AND bsd-original-uc AND flex-2.5 - AND bsd-original-uc AND (gpl-3.0 AND gpl-2.0 AND lgpl-3.0-plus WITH cygwin-exception-lgpl-3.0-plus - AND other-copyleft AND other-permissive) AND x11-lucent AND amd-historical AND sunpro AND - osf-1990 AND nilsson-historical AND newlib-historical AND bsd-new AND amd-historical AND bsd-new - AND bsd-simplified AND bsd-simplified AND bsd-simplified AND x11-hanson AND bsd-simplified - AND bsd-new AND lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0-plus AND lgpl-2.0-plus AND intel-osl-1993 - AND osf-1990 AND hs-regexp AND bsd-simplified AND bsd-simplified AND bsd-simplified AND bsd-new - AND unicode AND unicode AND lgpl-2.1-plus +- gpl-3.0-plus AND gpl-3.0-plus WITH gcc-exception-3.1 AND unknown-license-reference AND bsd-new + AND unknown-license-reference AND uoi-ncsa AND mit AND unknown-license-reference AND (mit + OR commercial-license) AND gfdl-1.2 AND gcc-exception-3.1 AND gpl-2.0 AND lgpl-2.0-plus AND + lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND public-domain AND lgpl-2.1-plus AND + lgpl-2.1-plus AND sunpro AND bsd-new AND gpl-2.0-plus AND (artistic-perl-1.0 OR gpl-1.0) AND + zlib AND d-zlib AND unknown-license-reference AND mit AND unknown-license-reference AND gpl-3.0-plus + WITH gcc-exception-3.1 AND gpl-3.0-plus AND gfdl-1.3-plus AND lgpl-2.1-plus AND gpl-3.0 AND + gcc-exception-3.1 AND gpl-3.0-plus AND gcc-exception-3.1 AND (gpl-3.0 AND lgpl-2.1 AND lgpl-3.0) + AND (gpl-3.0 AND lgpl-2.1 AND lgpl-3.0) AND (lgpl-2.0 AND gpl-3.0) AND gpl-3.0-plus AND gpl-1.0-plus + AND (gpl-3.0 AND lgpl-2.1) AND (gpl-2.0-plus AND gpl-3.0-plus) AND lgpl-2.1-plus AND gpl-3.0 + AND gcc-exception-3.1 AND unknown-license-reference AND (lgpl-2.0-plus AND gpl-1.0-plus) AND + bsla-no-advert AND bsla AND bsd-original-uc AND bsd-new AND unknown-license-reference AND + bsd-original-uc AND flex-2.5 AND bsd-original-uc AND (gpl-3.0 AND gpl-2.0 AND lgpl-3.0-plus + WITH cygwin-exception-lgpl-3.0-plus AND other-copyleft AND other-permissive) AND x11-lucent + AND amd-historical AND sunpro AND osf-1990 AND nilsson-historical AND newlib-historical AND + bsd-new AND amd-historical AND bsd-new AND bsd-simplified AND bsd-simplified AND bsd-simplified + AND x11-hanson AND bsd-simplified AND bsd-new AND lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0-plus + AND lgpl-2.0-plus AND intel-osl-1993 AND osf-1990 AND hs-regexp AND bsd-simplified AND bsd-simplified + AND bsd-simplified AND bsd-new AND unicode AND unicode AND lgpl-2.1-plus - | Copyright (c) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Copyright (c) 2009-2019 by the LLVM contributors diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/gcc-10-base/copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/gcc-10-base/copyright.expected.yml index ce148e86902..d889e2b5640 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/gcc-10-base/copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/gcc-10-base/copyright.expected.yml @@ -1,13 +1,14 @@ - -- (gpl-2.0-plus AND gpl-3.0-plus) AND gpl-3.0 AND gpl-1.0-plus AND gpl-3.0-plus AND gcc-exception-3.1 - AND unknown-license-reference AND bsd-new AND uoi-ncsa AND mit AND (mit OR commercial-license) - AND gfdl-1.2 AND gpl-2.0 AND lgpl-2.0-plus AND lgpl-2.1-plus AND public-domain AND sunpro - AND gpl-2.0-plus AND artistic-1.0 AND (artistic-perl-1.0 OR gpl-1.0-plus) AND zlib AND d-zlib - AND gpl-3.0-plus WITH gcc-exception-3.1 AND gfdl-1.3-plus AND lgpl-2.1 AND other-permissive - AND bsla-no-advert AND bsla AND bsd-original-uc AND flex-2.5 AND (gpl-3.0 AND gpl-2.0 AND - lgpl-3.0-plus WITH cygwin-exception-lgpl-3.0-plus AND other-copyleft AND other-permissive) - AND x11-lucent AND amd-historical AND osf-1990 AND nilsson-historical AND newlib-historical - AND bsd-simplified AND x11-hanson AND intel-osl-1993 AND hs-regexp AND unicode +- gpl-3.0-plus AND gpl-3.0-plus WITH gcc-exception-3.1 AND unknown-license-reference AND bsd-new + AND uoi-ncsa AND mit AND (mit OR commercial-license) AND gfdl-1.2 AND gcc-exception-3.1 AND + gpl-2.0 AND lgpl-2.0-plus AND lgpl-2.1-plus AND public-domain AND sunpro AND gpl-2.0-plus + AND (artistic-perl-1.0 OR gpl-1.0) AND zlib AND d-zlib AND gfdl-1.3-plus AND gpl-3.0 AND (gpl-3.0 + AND lgpl-2.1 AND lgpl-3.0) AND (lgpl-2.0 AND gpl-3.0) AND gpl-1.0-plus AND (gpl-3.0 AND lgpl-2.1) + AND (gpl-2.0-plus AND gpl-3.0-plus) AND (lgpl-2.0-plus AND gpl-1.0-plus) AND bsla-no-advert + AND bsla AND bsd-original-uc AND flex-2.5 AND (gpl-3.0 AND gpl-2.0 AND lgpl-3.0-plus WITH + cygwin-exception-lgpl-3.0-plus AND other-copyleft AND other-permissive) AND x11-lucent AND + amd-historical AND osf-1990 AND nilsson-historical AND newlib-historical AND bsd-simplified + AND x11-hanson AND intel-osl-1993 AND hs-regexp AND unicode - | Copyright (c) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Copyright (c) 2009-2019 by the LLVM contributors diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/gcc-9-base/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/gcc-9-base/copyright-detailed.expected.yml index 80d4615771f..8d376f6aa4f 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/gcc-9-base/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/gcc-9-base/copyright-detailed.expected.yml @@ -1,28 +1,26 @@ - -- (gpl-2.0-plus AND gpl-3.0-plus) AND gpl-3.0 AND gpl-1.0-plus AND gpl-3.0-plus AND gcc-exception-3.1 - AND unknown-license-reference AND bsd-new AND unknown-license-reference AND uoi-ncsa AND mit - AND unknown-license-reference AND (mit OR commercial-license) AND gfdl-1.2 AND gcc-exception-3.1 - AND gpl-2.0 AND lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND public-domain - AND lgpl-2.1-plus AND lgpl-2.1-plus AND sunpro AND bsd-new AND gpl-2.0-plus AND gpl-2.0 AND - gpl-2.0 AND gpl-2.0 AND artistic-1.0 AND (artistic-perl-1.0 OR gpl-1.0-plus) AND artistic-1.0 - AND zlib AND d-zlib AND unknown-license-reference AND mit AND unknown-license-reference AND - gpl-3.0-plus WITH gcc-exception-3.1 AND gpl-3.0-plus WITH gcc-exception-3.1 AND gfdl-1.3-plus - AND lgpl-2.1-plus AND gpl-3.0-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND gpl-2.0-plus AND - gpl-3.0-plus AND lgpl-2.1 AND gpl-3.0-plus AND lgpl-2.1-plus AND lgpl-2.1 AND gpl-3.0-plus - AND lgpl-2.1-plus AND lgpl-3.0-plus AND gpl-3.0 AND lgpl-2.0-plus AND lgpl-3.0 AND gpl-3.0 - AND lgpl-2.0-plus AND lgpl-2.1 AND gpl-3.0 AND lgpl-2.0-plus AND lgpl-2.1 AND lgpl-2.1 AND - gpl-3.0 AND gpl-3.0-plus AND gpl-1.0-plus AND gpl-3.0 AND lgpl-2.0-plus AND lgpl-2.1 AND gpl-2.0-plus - AND gpl-3.0-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1 AND lgpl-3.0 AND gpl-3.0 AND - lgpl-2.1 AND lgpl-2.0-plus AND lgpl-3.0 AND lgpl-2.1-plus AND lgpl-2.0-plus AND gpl-3.0-plus - AND gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0-plus AND other-permissive AND - gpl-1.0-plus AND unknown-license-reference AND gpl-1.0-plus AND lgpl-2.0-plus AND bsla-no-advert - AND bsla AND bsd-original-uc AND bsd-new AND unknown-license-reference AND bsd-original-uc - AND flex-2.5 AND bsd-original-uc AND (gpl-3.0 AND gpl-2.0 AND lgpl-3.0-plus WITH cygwin-exception-lgpl-3.0-plus - AND other-copyleft AND other-permissive) AND x11-lucent AND amd-historical AND sunpro AND - osf-1990 AND nilsson-historical AND newlib-historical AND bsd-new AND amd-historical AND bsd-new - AND bsd-simplified AND bsd-simplified AND bsd-simplified AND x11-hanson AND bsd-simplified - AND bsd-new AND lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0-plus AND lgpl-2.0-plus AND intel-osl-1993 - AND osf-1990 AND hs-regexp AND bsd-simplified AND bsd-simplified AND bsd-simplified AND bsd-new +- gpl-3.0-plus AND gpl-3.0-plus WITH gcc-exception-3.1 AND unknown-license-reference AND bsd-new + AND unknown-license-reference AND uoi-ncsa AND mit AND unknown-license-reference AND (mit + OR commercial-license) AND gfdl-1.2 AND gcc-exception-3.1 AND gpl-2.0 AND lgpl-2.0-plus AND + lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND public-domain AND lgpl-2.1-plus AND + lgpl-2.1-plus AND sunpro AND bsd-new AND gpl-2.0-plus AND (artistic-perl-1.0 OR gpl-1.0) AND + zlib AND d-zlib AND unknown-license-reference AND mit AND unknown-license-reference AND gpl-3.0-plus + WITH gcc-exception-3.1 AND gpl-3.0-plus WITH gcc-exception-3.1 AND gfdl-1.3-plus AND lgpl-2.1-plus + AND gpl-3.0-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND gpl-2.0-plus AND gpl-3.0-plus AND + (gpl-3.0 AND lgpl-2.1) AND lgpl-2.1-plus AND lgpl-2.1 AND gpl-3.0-plus AND lgpl-2.1-plus AND + (lgpl-3.0 AND gpl-3.0) AND (gpl-3.0 AND lgpl-2.1 AND lgpl-3.0) AND (gpl-3.0 AND lgpl-2.1 AND + lgpl-3.0) AND (lgpl-2.0 AND gpl-3.0) AND gpl-3.0-plus AND gpl-1.0-plus AND gpl-2.0 AND (gpl-3.0 + AND lgpl-2.1) AND (gpl-2.0-plus AND gpl-3.0-plus) AND lgpl-2.1-plus AND lgpl-2.1 AND (lgpl-2.1 + AND lgpl-3.0 AND gpl-3.0) AND (lgpl-2.1 AND lgpl-3.0) AND lgpl-2.1-plus AND lgpl-2.0-plus + AND gpl-3.0-plus AND gpl-2.0-plus AND gpl-3.0-plus AND gpl-3.0-plus AND gpl-2.0-plus AND unknown-license-reference + AND (lgpl-2.0-plus AND gpl-1.0-plus) AND bsla-no-advert AND bsla AND bsd-original-uc AND bsd-new + AND unknown-license-reference AND bsd-original-uc AND flex-2.5 AND bsd-original-uc AND (gpl-3.0 + AND gpl-2.0 AND lgpl-3.0-plus WITH cygwin-exception-lgpl-3.0-plus AND other-copyleft AND other-permissive) + AND x11-lucent AND amd-historical AND sunpro AND osf-1990 AND nilsson-historical AND newlib-historical + AND bsd-new AND amd-historical AND bsd-new AND bsd-simplified AND bsd-simplified AND bsd-simplified + AND x11-hanson AND bsd-simplified AND bsd-new AND lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0-plus + AND lgpl-2.0-plus AND intel-osl-1993 AND osf-1990 AND hs-regexp AND bsd-simplified AND bsd-simplified + AND bsd-simplified AND bsd-new - | Copyright (c) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Copyright (c) 2009-2014 by the LLVM contributors diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/gcc-9-base/copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/gcc-9-base/copyright.expected.yml index 9bfcc06d5c9..da8ad452996 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/gcc-9-base/copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/gcc-9-base/copyright.expected.yml @@ -1,13 +1,15 @@ - -- (gpl-2.0-plus AND gpl-3.0-plus) AND gpl-3.0 AND gpl-1.0-plus AND gpl-3.0-plus AND gcc-exception-3.1 - AND unknown-license-reference AND bsd-new AND uoi-ncsa AND mit AND (mit OR commercial-license) - AND gfdl-1.2 AND gpl-2.0 AND lgpl-2.0-plus AND lgpl-2.1-plus AND public-domain AND sunpro - AND gpl-2.0-plus AND artistic-1.0 AND (artistic-perl-1.0 OR gpl-1.0-plus) AND zlib AND d-zlib - AND gpl-3.0-plus WITH gcc-exception-3.1 AND gfdl-1.3-plus AND lgpl-2.1 AND lgpl-3.0-plus AND - lgpl-3.0 AND other-permissive AND bsla-no-advert AND bsla AND bsd-original-uc AND flex-2.5 - AND (gpl-3.0 AND gpl-2.0 AND lgpl-3.0-plus WITH cygwin-exception-lgpl-3.0-plus AND other-copyleft - AND other-permissive) AND x11-lucent AND amd-historical AND osf-1990 AND nilsson-historical - AND newlib-historical AND bsd-simplified AND x11-hanson AND intel-osl-1993 AND hs-regexp +- gpl-3.0-plus AND gpl-3.0-plus WITH gcc-exception-3.1 AND unknown-license-reference AND bsd-new + AND uoi-ncsa AND mit AND (mit OR commercial-license) AND gfdl-1.2 AND gcc-exception-3.1 AND + gpl-2.0 AND lgpl-2.0-plus AND lgpl-2.1-plus AND public-domain AND sunpro AND gpl-2.0-plus + AND (artistic-perl-1.0 OR gpl-1.0) AND zlib AND d-zlib AND gfdl-1.3-plus AND (gpl-3.0 AND + lgpl-2.1) AND lgpl-2.1 AND (lgpl-3.0 AND gpl-3.0) AND (gpl-3.0 AND lgpl-2.1 AND lgpl-3.0) + AND (lgpl-2.0 AND gpl-3.0) AND gpl-1.0-plus AND (gpl-2.0-plus AND gpl-3.0-plus) AND (lgpl-2.1 + AND lgpl-3.0 AND gpl-3.0) AND (lgpl-2.1 AND lgpl-3.0) AND (lgpl-2.0-plus AND gpl-1.0-plus) + AND bsla-no-advert AND bsla AND bsd-original-uc AND flex-2.5 AND (gpl-3.0 AND gpl-2.0 AND + lgpl-3.0-plus WITH cygwin-exception-lgpl-3.0-plus AND other-copyleft AND other-permissive) + AND x11-lucent AND amd-historical AND osf-1990 AND nilsson-historical AND newlib-historical + AND bsd-simplified AND x11-hanson AND intel-osl-1993 AND hs-regexp - | Copyright (c) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Copyright (c) 2009-2014 by the LLVM contributors diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/gpgv/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/gpgv/copyright-detailed.expected.yml index 098256d7b99..ae5ddaeb468 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/gpgv/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/gpgv/copyright-detailed.expected.yml @@ -29,7 +29,7 @@ AND gpl-3.0) OR bsd-new) AND (lgpl-3.0-plus AND lgpl-3.0-plus AND lgpl-3.0 AND lgpl-3.0) AND (gpl-3.0-plus AND gpl-3.0-plus AND gpl-1.0-plus AND gpl-1.0-plus AND gpl-3.0 AND gpl-3.0) AND ietf AND bsd-new AND (gpl-3.0-plus AND gpl-3.0-plus AND gpl-1.0-plus AND gpl-1.0-plus - AND gpl-3.0 AND gpl-3.0) AND (cc0-1.0 AND cc0-1.0 AND artistic-2.0) + AND gpl-3.0 AND gpl-3.0) AND (cc0-1.0 AND cc0-1.0) - | 1992, 1995-2020, Free Software Foundation, Inc 1998-2007, 2009, 2012, Free Software Foundation, Inc diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/gpgv/copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/gpgv/copyright.expected.yml index b0811bdb3e7..29b5676c579 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/gpgv/copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/gpgv/copyright.expected.yml @@ -12,7 +12,7 @@ AND fsf-unlimited-no-warranty AND (lgpl-2.1-plus AND lgpl-3.0-plus) AND mit AND ((gpl-3.0-plus AND gpl-3.0-plus AND gpl-1.0-plus AND gpl-1.0-plus AND gpl-3.0 AND gpl-3.0) OR bsd-new) AND (lgpl-3.0-plus AND lgpl-3.0-plus AND lgpl-3.0 AND lgpl-3.0) AND ietf AND bsd-new AND (cc0-1.0 - AND cc0-1.0 AND artistic-2.0) + AND cc0-1.0) - | 1992, 1995-2020, Free Software Foundation, Inc 1998-2007, 2009, 2012, Free Software Foundation, Inc diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/grep/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/grep/copyright-detailed.expected.yml index 4e0976c0f6d..96d125c2179 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/grep/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/grep/copyright-detailed.expected.yml @@ -1,7 +1,7 @@ - - GPL-3+ - GPL-3+ - GPL-3+ -- (gpl-3.0-plus AND gpl-3.0-plus AND gpl-1.0-plus) AND (gpl-3.0-plus AND gpl-3.0-plus AND gpl-1.0-plus) +- (gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0) AND (gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0) - | 1992, 1997-2002, 2004-2012 Free Software Foundation, Inc. 2004, Stepan Kasal diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/grep/copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/grep/copyright.expected.yml index e205f900848..82ddca826a9 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/grep/copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/grep/copyright.expected.yml @@ -1,5 +1,5 @@ - - GPL-3+ -- gpl-3.0-plus AND gpl-3.0-plus AND gpl-1.0-plus +- gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0 - | 1992, 1997-2002, 2004-2012 Free Software Foundation, Inc. 2004, Stepan Kasal diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libblkid1/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libblkid1/copyright-detailed.expected.yml index 9bc35e81ba5..913d2b98450 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libblkid1/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libblkid1/copyright-detailed.expected.yml @@ -42,22 +42,19 @@ - LGPL-2.1+ - LGPL-3+ - MIT -- (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 - AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND - gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 - AND gpl-2.0 AND gpl-2.0) AND public-domain AND bsd-original-uc AND mit AND mit AND bsd-no-disclaimer - AND bsd-no-disclaimer AND bsd-no-disclaimer AND bsd-new AND bsd-new AND (lgpl-2.0-plus AND - lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0) AND (lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0-plus - AND lgpl-2.0) AND (lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0) AND (lgpl-2.1-plus - AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 - AND lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (gpl-3.0-plus - AND gpl-3.0-plus AND gpl-3.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) - AND (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND - lgpl-2.1 AND lgpl-2.1) AND (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0) AND (lgpl-2.0-plus - AND lgpl-2.1-plus AND lgpl-2.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) - AND (lgpl-3.0-plus AND lgpl-3.0-plus) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND - lgpl-2.1) AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0-plus AND - gpl-2.0-plus AND gpl-2.0 AND gpl-2.0) +- (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 + AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND + gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND public-domain AND bsd-original-uc AND mit + AND mit AND bsd-simplified AND bsd-simplified AND bsd-simplified AND bsd-new AND bsd-new AND + (lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0) AND (lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0) + AND (lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND + lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus + AND lgpl-2.1) AND (gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus + AND lgpl-2.1) AND (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0-plus) AND (lgpl-2.1-plus AND + lgpl-2.1-plus AND lgpl-2.1) AND (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0-plus) AND (lgpl-2.0-plus + AND lgpl-2.1-plus AND lgpl-2.0-plus) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND + (lgpl-3.0-plus AND lgpl-3.0-plus) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND (gpl-2.0-plus + AND gpl-2.0-plus AND gpl-2.0) AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0) - | Michal Luscon 1986 Gary S. Brown diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libblkid1/copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libblkid1/copyright.expected.yml index 11099084090..ca31e519c67 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libblkid1/copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libblkid1/copyright.expected.yml @@ -10,11 +10,11 @@ - GPL-3+ - LGPL - LGPL-3+ -- (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 - AND gpl-2.0) AND public-domain AND bsd-original-uc AND mit AND bsd-no-disclaimer AND bsd-new - AND (lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0) AND (lgpl-2.1-plus AND - lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0) AND - (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0) AND (lgpl-3.0-plus AND lgpl-3.0-plus) +- (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND public-domain + AND bsd-original-uc AND mit AND bsd-simplified AND bsd-new AND (lgpl-2.0-plus AND lgpl-2.0-plus + AND lgpl-2.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND (gpl-3.0-plus AND gpl-3.0-plus + AND gpl-3.0) AND (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0-plus) AND (lgpl-3.0-plus AND + lgpl-3.0-plus) - | Michal Luscon 1986 Gary S. Brown diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libcrypt1/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libcrypt1/copyright-detailed.expected.yml index fa726a834bb..a9dd1121c76 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libcrypt1/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libcrypt1/copyright-detailed.expected.yml @@ -1,8 +1,8 @@ - -- lgpl-2.1 AND unknown AND lgpl-2.0-plus AND lgpl-2.1 AND lgpl-2.1 AND bsd-new AND public-domain - AND public-domain AND bsd-simplified AND bsd-simplified AND bsd-simplified AND bsd-simplified - AND bsd-simplified AND public-domain AND bsd-new AND bsd-simplified AND public-domain AND - gpl-3.0 AND gpl-2.0-plus AND gpl-3.0 +- lgpl-2.1-plus AND unknown-license-reference AND lgpl-2.0-plus AND lgpl-2.1 AND lgpl-2.1 AND + bsd-new AND public-domain AND public-domain AND bsd-simplified AND bsd-simplified AND bsd-simplified + AND bsd-simplified AND bsd-simplified AND public-domain AND bsd-new AND bsd-simplified AND + public-domain AND gpl-3.0 AND gpl-2.0-plus AND gpl-3.0 - | Copyright Thorsten Kukuk, Bjorn Esser, Zack Weinberg LGPL Copyright Free Software Foundation, Inc. diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libcrypt1/copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libcrypt1/copyright.expected.yml index 0702854a184..d493360b4ea 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libcrypt1/copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libcrypt1/copyright.expected.yml @@ -1,6 +1,6 @@ - -- lgpl-2.1 AND unknown AND lgpl-2.0-plus AND bsd-new AND public-domain AND bsd-simplified AND - gpl-3.0 AND gpl-2.0-plus +- lgpl-2.1-plus AND unknown-license-reference AND lgpl-2.0-plus AND lgpl-2.1 AND bsd-new AND + public-domain AND bsd-simplified AND gpl-3.0 AND gpl-2.0-plus - | Copyright Thorsten Kukuk, Bjorn Esser, Zack Weinberg LGPL Copyright Free Software Foundation, Inc. diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libdebconfclient0/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libdebconfclient0/copyright-detailed.expected.yml index a3e8799d428..78db8b0d8c0 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libdebconfclient0/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libdebconfclient0/copyright-detailed.expected.yml @@ -1,5 +1,5 @@ - -- public-domain AND bsd-2-clause-plus-advertizing +- public-domain AND bsd-unmodified - | (c) Joey Hess (c) Jason Gunthorpe diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libdebconfclient0/copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libdebconfclient0/copyright.expected.yml index a3e8799d428..78db8b0d8c0 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libdebconfclient0/copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libdebconfclient0/copyright.expected.yml @@ -1,5 +1,5 @@ - -- public-domain AND bsd-2-clause-plus-advertizing +- public-domain AND bsd-unmodified - | (c) Joey Hess (c) Jason Gunthorpe diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libext2fs2/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libext2fs2/copyright-detailed.expected.yml index 9cf037404ae..31c5d5d9f60 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libext2fs2/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libext2fs2/copyright-detailed.expected.yml @@ -1,5 +1,5 @@ - -- (gpl-2.0 AND lgpl-2.0 AND bsd-new AND mit-old-style-no-advert) AND (gpl-2.0 AND lgpl-2.1) +- (gpl-2.0 AND lgpl-2.0 AND bsd-new AND mit-old-style-no-advert) AND (gpl-2.0 AND lgpl-2.0) AND ntp-0 AND bsd-new - | Copyright (c) 2003-2007 Theodore Ts'o diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libext2fs2/copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libext2fs2/copyright.expected.yml index 9cf037404ae..31c5d5d9f60 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libext2fs2/copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libext2fs2/copyright.expected.yml @@ -1,5 +1,5 @@ - -- (gpl-2.0 AND lgpl-2.0 AND bsd-new AND mit-old-style-no-advert) AND (gpl-2.0 AND lgpl-2.1) +- (gpl-2.0 AND lgpl-2.0 AND bsd-new AND mit-old-style-no-advert) AND (gpl-2.0 AND lgpl-2.0) AND ntp-0 AND bsd-new - | Copyright (c) 2003-2007 Theodore Ts'o diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgcrypt20/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgcrypt20/copyright-detailed.expected.yml index c65bd61eff7..98456de4df4 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgcrypt20/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgcrypt20/copyright-detailed.expected.yml @@ -1,11 +1,9 @@ - -- gpl-1.0-plus AND public-domain AND fsf-unlimited-no-warranty AND lgpl-2.1-plus AND gpl-2.0-plus - AND unknown-license-reference AND lgpl-2.1-plus AND unknown-license-reference AND gpl-1.0-plus - AND gpl-1.0-plus AND gpl-1.0-plus AND lgpl-2.0-plus AND gpl-1.0-plus AND gpl-1.0-plus AND - gpl-1.0-plus AND lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.0-plus - AND gpl-1.0-plus AND gpl-2.0-plus AND ((gpl-2.0 AND lgpl-2.1-plus) AND other-permissive) AND - bsd-new AND bsd-new AND (bsd-new OR gpl-1.0-plus) AND x11-xconsortium AND public-domain AND - public-domain AND ocb-open-source-2013 AND ocb-open-source-2013 AND gpl-2.0-plus +- gpl-1.0-plus AND public-domain AND fsf-unlimited-no-warranty AND (lgpl-2.0-plus AND gpl-1.0-plus) + AND lgpl-2.1-plus AND gpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.1-plus AND + lgpl-2.0-plus AND gpl-1.0-plus AND gpl-2.0-plus AND ((gpl-2.0 AND lgpl-2.1-plus) AND other-permissive) + AND bsd-new AND bsd-new AND (bsd-new OR gpl-1.0-plus) AND x11-xconsortium AND public-domain + AND public-domain AND ocb-open-source-2013 AND ocb-open-source-2013 AND gpl-2.0-plus - | Copyright (c) 1989,1991-2019 Free Software Foundation, Inc. Copyright (c) 1994 X Consortium diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgcrypt20/copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgcrypt20/copyright.expected.yml index 9dee335cce7..d3bc72acdc8 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgcrypt20/copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgcrypt20/copyright.expected.yml @@ -1,7 +1,7 @@ - -- gpl-1.0-plus AND public-domain AND fsf-unlimited-no-warranty AND lgpl-2.1-plus AND gpl-2.0-plus - AND unknown-license-reference AND lgpl-2.0-plus AND ((gpl-2.0 AND lgpl-2.1-plus) AND other-permissive) - AND bsd-new AND (bsd-new OR gpl-1.0-plus) AND x11-xconsortium AND ocb-open-source-2013 +- gpl-1.0-plus AND public-domain AND fsf-unlimited-no-warranty AND (lgpl-2.0-plus AND gpl-1.0-plus) + AND lgpl-2.1-plus AND gpl-2.0-plus AND lgpl-2.0-plus AND ((gpl-2.0 AND lgpl-2.1-plus) AND + other-permissive) AND bsd-new AND (bsd-new OR gpl-1.0-plus) AND x11-xconsortium AND ocb-open-source-2013 - | Copyright (c) 1989,1991-2019 Free Software Foundation, Inc. Copyright (c) 1994 X Consortium diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgmp10/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgmp10/copyright-detailed.expected.yml index 45c80ba7891..c7838b4095e 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgmp10/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgmp10/copyright-detailed.expected.yml @@ -1,4 +1,4 @@ - -- (lgpl-3.0-plus OR gpl-2.0-plus) AND lgpl-2.1-plus AND lgpl-3.0 AND gpl-2.0 AND gpl-2.0 AND - gpl-3.0 AND gfdl-1.2 AND lgpl-2.0-plus AND gpl-2.0 +- (lgpl-3.0-plus OR gpl-2.0-plus) AND lgpl-2.1-plus AND lgpl-3.0 AND gpl-2.0 AND gpl-3.0 AND + gfdl-1.1-plus AND (gpl-1.0-plus OR lgpl-2.0-plus) - Copyright 1991, 1996, 1999, 2000, 2007 Free Software Foundation, Inc. diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgmp10/copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgmp10/copyright.expected.yml index b9a9bcc7e40..c7838b4095e 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgmp10/copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgmp10/copyright.expected.yml @@ -1,4 +1,4 @@ - - (lgpl-3.0-plus OR gpl-2.0-plus) AND lgpl-2.1-plus AND lgpl-3.0 AND gpl-2.0 AND gpl-3.0 AND - gfdl-1.2 AND lgpl-2.0-plus + gfdl-1.1-plus AND (gpl-1.0-plus OR lgpl-2.0-plus) - Copyright 1991, 1996, 1999, 2000, 2007 Free Software Foundation, Inc. diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgnutls30/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgnutls30/copyright-detailed.expected.yml index 6e70c452150..b75776310ad 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgnutls30/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgnutls30/copyright-detailed.expected.yml @@ -1,29 +1,27 @@ - -- lgpl-2.1-plus AND unknown-license-reference AND gpl-1.0-plus AND lgpl-2.1-plus AND gpl-3.0-plus - AND lgpl-3.0-plus AND gpl-2.0-plus AND unknown-license-reference AND lgpl-3.0-plus AND gpl-2.0-plus - AND unknown-license-reference AND lgpl-3.0-plus AND gpl-2.0-plus AND lgpl-3.0-plus AND lgpl-2.1-plus - AND gpl-3.0-plus AND unknown-license-reference AND gfdl-1.1-plus AND gfdl-1.3-plus AND (lgpl-2.1 - AND gpl-2.0 AND gpl-3.0) AND lgpl-2.0-plus AND lgpl-3.0 AND lgpl-3.0 AND gfdl-1.1-plus AND - gfdl-1.3 AND lgpl-2.1-plus AND lgpl-3.0-plus AND gpl-2.0-plus AND lgpl-3.0-plus AND gpl-2.0-plus - AND lgpl-2.0-plus AND gpl-3.0 AND unknown-license-reference AND (bsd-new OR gpl-1.0-plus) - AND bsd-simplified AND public-domain AND isc AND cc0-1.0 AND mit AND mit AND apache-2.0 AND - lgpl-3.0-plus AND gpl-2.0-plus AND apache-2.0 AND apache-2.0 AND apache-2.0 AND apache-2.0 - AND apache-2.0 AND apache-2.0 AND apache-2.0 AND apache-2.0 AND mit AND mit AND mit AND mit - AND mit AND mit AND lgpl-2.0 AND lgpl-2.1-plus AND lgpl-3.0-plus AND gpl-2.0-plus AND lgpl-3.0-plus - AND gpl-2.0-plus AND mit AND mit AND lgpl-3.0-plus AND gpl-2.0-plus AND lgpl-3.0-plus AND - gpl-2.0-plus AND lgpl-3.0-plus AND gpl-2.0-plus AND lgpl-3.0-plus AND gpl-2.0-plus AND lgpl-3.0-plus - AND gpl-2.0-plus AND lgpl-3.0-plus AND gpl-2.0-plus AND lgpl-3.0-plus AND gpl-2.0-plus AND - lgpl-3.0-plus AND gpl-2.0-plus AND lgpl-3.0-plus AND gpl-2.0-plus AND lgpl-3.0-plus AND gpl-2.0-plus - AND lgpl-3.0-plus AND gpl-2.0-plus AND lgpl-3.0-plus AND gpl-2.0-plus AND lgpl-3.0-plus AND - gpl-2.0-plus AND lgpl-3.0-plus AND gpl-2.0-plus AND lgpl-3.0-plus AND gpl-2.0-plus AND lgpl-3.0-plus - AND gpl-2.0-plus AND lgpl-3.0-plus AND gpl-2.0-plus AND lgpl-3.0-plus AND gpl-2.0-plus AND - mit AND mit AND lgpl-2.1-plus AND lgpl-3.0-plus AND gpl-2.0-plus AND lgpl-3.0-plus AND gpl-2.0-plus - AND (lgpl-3.0-plus OR gpl-2.0-plus) AND gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0-plus AND - gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0-plus AND lgpl-2.0 AND lgpl-2.1-plus AND gpl-3.0-plus +- (lgpl-2.1-plus AND gpl-3.0-plus AND (lgpl-3.0-plus AND gpl-2.0-plus)) AND lgpl-2.1-plus AND + gpl-3.0-plus AND unknown-license-reference AND gfdl-1.1-plus AND gfdl-1.3-plus AND (lgpl-2.0-plus + AND lgpl-3.0 AND gpl-1.0-plus AND gpl-3.0 AND gfdl-1.3) AND lgpl-2.1-plus AND lgpl-3.0-plus + AND gpl-2.0-plus AND lgpl-3.0-plus AND gpl-2.0-plus AND lgpl-2.0-plus AND gpl-3.0 AND unknown-license-reference + AND (bsd-new OR gpl-1.0-plus) AND bsd-simplified AND public-domain AND isc AND cc0-1.0 AND + mit AND mit AND apache-2.0 AND (lgpl-3.0-plus AND gpl-2.0-plus) AND apache-2.0 AND apache-2.0 + AND apache-2.0 AND apache-2.0 AND apache-2.0 AND mit AND mit AND mit AND mit AND mit AND mit + AND lgpl-2.1-plus AND (lgpl-3.0-plus AND gpl-2.0-plus) AND (lgpl-3.0-plus AND gpl-2.0-plus) + AND mit AND mit AND (lgpl-3.0-plus AND gpl-2.0-plus) AND (lgpl-3.0-plus AND gpl-2.0-plus) + AND (lgpl-3.0-plus AND gpl-2.0-plus) AND (lgpl-3.0-plus AND gpl-2.0-plus) AND (lgpl-3.0-plus + AND gpl-2.0-plus) AND (lgpl-3.0-plus AND gpl-2.0-plus) AND (lgpl-3.0-plus AND gpl-2.0-plus) + AND (lgpl-3.0-plus AND gpl-2.0-plus) AND (lgpl-3.0-plus AND gpl-2.0-plus) AND (lgpl-3.0-plus + AND gpl-2.0-plus) AND (lgpl-3.0-plus AND gpl-2.0-plus) AND (lgpl-3.0-plus AND gpl-2.0-plus) + AND (lgpl-3.0-plus AND gpl-2.0-plus) AND (lgpl-3.0-plus AND gpl-2.0-plus) AND (lgpl-3.0-plus + AND gpl-2.0-plus) AND (lgpl-3.0-plus AND gpl-2.0-plus) AND (lgpl-3.0-plus AND gpl-2.0-plus) + AND (lgpl-3.0-plus AND gpl-2.0-plus) AND mit AND mit AND lgpl-2.1-plus AND (lgpl-3.0-plus + AND gpl-2.0-plus) AND (lgpl-3.0-plus AND gpl-2.0-plus) AND (lgpl-3.0-plus OR gpl-2.0-plus) AND gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0-plus - AND gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0-plus - AND gpl-3.0-plus AND lgpl-2.0 AND lgpl-2.1-plus AND gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0-plus - AND gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0-plus AND bsd-new + AND lgpl-2.1-plus AND gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0-plus AND + gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0-plus + AND gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0-plus AND lgpl-2.1-plus AND + gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0-plus + AND bsd-new - | Copyright (c) 2000-2019 Free Software Foundation, Inc. Copyright (c) 2004-2015 Free Software Foundation, Inc. diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgnutls30/copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgnutls30/copyright.expected.yml index b77086e6b8e..26342946ecb 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgnutls30/copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgnutls30/copyright.expected.yml @@ -1,9 +1,10 @@ - -- lgpl-2.1-plus AND unknown-license-reference AND gpl-1.0-plus AND gpl-3.0-plus AND lgpl-3.0-plus - AND gpl-2.0-plus AND gfdl-1.1-plus AND gfdl-1.3-plus AND (lgpl-2.1 AND gpl-2.0 AND gpl-3.0) - AND lgpl-2.0-plus AND lgpl-3.0 AND gfdl-1.3 AND gpl-3.0 AND (bsd-new OR gpl-1.0-plus) AND - bsd-simplified AND public-domain AND isc AND cc0-1.0 AND mit AND apache-2.0 AND lgpl-2.0 AND - (lgpl-3.0-plus OR gpl-2.0-plus) AND bsd-new +- (lgpl-2.1-plus AND gpl-3.0-plus AND (lgpl-3.0-plus AND gpl-2.0-plus)) AND lgpl-2.1-plus AND + gpl-3.0-plus AND unknown-license-reference AND gfdl-1.1-plus AND gfdl-1.3-plus AND (lgpl-2.0-plus + AND lgpl-3.0 AND gpl-1.0-plus AND gpl-3.0 AND gfdl-1.3) AND lgpl-3.0-plus AND gpl-2.0-plus + AND lgpl-2.0-plus AND gpl-3.0 AND (bsd-new OR gpl-1.0-plus) AND bsd-simplified AND public-domain + AND isc AND cc0-1.0 AND mit AND apache-2.0 AND (lgpl-3.0-plus AND gpl-2.0-plus) AND (lgpl-3.0-plus + OR gpl-2.0-plus) AND bsd-new - | Copyright (c) 2000-2019 Free Software Foundation, Inc. Copyright (c) 2004-2015 Free Software Foundation, Inc. diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgpg-error0/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgpg-error0/copyright-detailed.expected.yml index 685c9514cec..29baaa7c782 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgpg-error0/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgpg-error0/copyright-detailed.expected.yml @@ -13,12 +13,11 @@ - LGPL-2.1+ - GPL-3+ - BSD-3-clause -- (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus - AND lgpl-2.1 AND lgpl-2.1) AND ((lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) - OR bsd-new) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (lgpl-2.1-plus - AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND fsf-unlimited-no-warranty AND fsf-unlimited-no-warranty - AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus - AND lgpl-2.1 AND lgpl-2.1) AND (gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0) AND fsf-unlimited-no-warranty +- (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) + AND ((lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) OR bsd-new) AND (lgpl-2.1-plus AND lgpl-2.1-plus + AND lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND fsf-unlimited-no-warranty + AND fsf-unlimited-no-warranty AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND (lgpl-2.1-plus + AND lgpl-2.1-plus AND lgpl-2.1) AND (gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0) AND fsf-unlimited-no-warranty - | 2001-2004, 2010, 2012-2018, g10 Code GmbH 2008, 2011 Free Software Foundation, Inc. diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgpg-error0/copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgpg-error0/copyright.expected.yml index e334f4f966c..e6dd3d06275 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgpg-error0/copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgpg-error0/copyright.expected.yml @@ -3,9 +3,8 @@ - g10-permissive - GPL-3+ - BSD-3-clause -- (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND ((lgpl-2.1-plus AND lgpl-2.1-plus - AND lgpl-2.1 AND lgpl-2.1) OR bsd-new) AND fsf-unlimited-no-warranty AND (gpl-3.0-plus AND - gpl-3.0-plus AND gpl-3.0) +- (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND ((lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) + OR bsd-new) AND fsf-unlimited-no-warranty AND (gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0) - | 2001-2004, 2010, 2012-2018, g10 Code GmbH 2008, 2011 Free Software Foundation, Inc. diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgssapi-krb5-2/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgssapi-krb5-2/copyright-detailed.expected.yml index 614d09c4a2f..1027c6cf96c 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgssapi-krb5-2/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgssapi-krb5-2/copyright-detailed.expected.yml @@ -10,8 +10,8 @@ AND proprietary-license) AND bsd-original-uc AND mit-no-advert-export-control AND bsd-original AND mit AND isc AND isc AND other-permissive AND bsd-new AND rsa-md4 AND rsa-md5 AND rsa-1990 AND mit-with-modification-obligations AND unknown-license-reference AND bsd-new AND unknown-license-reference - AND (bsd-simplified OR gpl-2.0-plus) AND (mpl-1.1 OR gpl-1.0-plus) AND gpl-2.0 AND unknown-license-reference - AND bsd-new AND bsd-simplified AND unknown-license-reference + AND (bsd-simplified OR gpl-2.0-plus) AND unknown-license-reference AND bsd-new AND bsd-simplified + AND unknown-license-reference - | Copyright (c) 1985-2018 by the Massachusetts Institute of Technology copyright MIT, Cygnus Support, Novell, OpenVision Technologies, Oracle, Red Hat, Sun Microsystems, FundsXpress, and others diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgssapi-krb5-2/copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgssapi-krb5-2/copyright.expected.yml index 22924e515d7..13d36d4df8c 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgssapi-krb5-2/copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgssapi-krb5-2/copyright.expected.yml @@ -5,7 +5,7 @@ AND openldap-2.8 AND freebsd-doc AND cmu-uc AND nrl-permission AND ietf-trust AND mit-old-style AND (mit-no-advert-export-control AND proprietary-license) AND bsd-original-uc AND bsd-original AND isc AND rsa-md4 AND rsa-md5 AND rsa-1990 AND mit-with-modification-obligations AND (bsd-simplified - OR gpl-2.0-plus) AND (mpl-1.1 OR gpl-1.0-plus) AND gpl-2.0 + OR gpl-2.0-plus) - | Copyright (c) 1985-2018 by the Massachusetts Institute of Technology copyright MIT, Cygnus Support, Novell, OpenVision Technologies, Oracle, Red Hat, Sun Microsystems, FundsXpress, and others diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libhogweed6/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libhogweed6/copyright-detailed.expected.yml index 921835fc161..4d72bc7cd27 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libhogweed6/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libhogweed6/copyright-detailed.expected.yml @@ -87,8 +87,8 @@ AND gpl-2.0-plus)) AND ((lgpl-3.0-plus AND lgpl-3.0-plus) OR (gpl-2.0-plus AND gpl-2.0-plus)) AND ((lgpl-3.0-plus AND lgpl-3.0-plus) OR (gpl-2.0-plus AND gpl-2.0-plus)) AND ((lgpl-3.0-plus AND lgpl-3.0-plus) OR (gpl-2.0-plus AND gpl-2.0-plus)) AND ((lgpl-3.0-plus AND lgpl-3.0-plus) - OR (gpl-2.0-plus AND gpl-2.0-plus)) AND (lgpl-2.0-plus AND gpl-2.0-plus AND lgpl-2.0 AND lgpl-2.0) - AND ((lgpl-3.0-plus AND lgpl-3.0-plus) OR (gpl-2.0-plus AND gpl-2.0-plus)) AND ((lgpl-3.0-plus + OR (gpl-2.0-plus AND gpl-2.0-plus)) AND (lgpl-2.0-plus AND gpl-2.0-plus AND lgpl-2.0) AND + ((lgpl-3.0-plus AND lgpl-3.0-plus) OR (gpl-2.0-plus AND gpl-2.0-plus)) AND ((lgpl-3.0-plus AND lgpl-3.0-plus) OR (gpl-2.0-plus AND gpl-2.0-plus)) AND ((lgpl-3.0-plus AND lgpl-3.0-plus) OR (gpl-2.0-plus AND gpl-2.0-plus)) AND ((lgpl-3.0-plus AND lgpl-3.0-plus) OR (gpl-2.0-plus AND gpl-2.0-plus)) AND ((lgpl-3.0-plus AND lgpl-3.0-plus) OR (gpl-2.0-plus AND gpl-2.0-plus)) @@ -119,7 +119,7 @@ AND (gpl-3.0-plus AND gpl-3.0-plus WITH tex-exception) AND ((lgpl-3.0-plus AND lgpl-3.0-plus) OR (gpl-2.0-plus AND gpl-2.0-plus)) AND ((lgpl-3.0-plus AND lgpl-3.0-plus) OR (gpl-2.0-plus AND gpl-2.0-plus)) AND (gpl-2.0-plus AND gpl-2.0-plus) AND autoconf-simple-exception-2.0 AND - unknown-license-reference AND (gpl-2.0 AND gpl-2.0) AND fsf-ap + public-domain AND (gpl-2.0 AND gpl-2.0) AND fsf-ap - | © 2001-2020 Niels Möller Some parts are Copyright © the Free Software Foundation and various diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libhogweed6/copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libhogweed6/copyright.expected.yml index 3f97e433635..3a3cefbd5a6 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libhogweed6/copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libhogweed6/copyright.expected.yml @@ -8,9 +8,9 @@ - GAP - LGPL-3+ - ((lgpl-3.0-plus AND lgpl-3.0-plus) OR (gpl-2.0-plus AND gpl-2.0-plus)) AND (lgpl-2.0-plus - AND gpl-2.0-plus AND lgpl-2.0 AND lgpl-2.0) AND mit AND (gpl-3.0-plus AND gpl-3.0-plus WITH - tex-exception) AND (gpl-2.0-plus AND gpl-2.0-plus) AND autoconf-simple-exception-2.0 AND (gpl-2.0 - AND gpl-2.0) AND fsf-ap + AND gpl-2.0-plus AND lgpl-2.0) AND mit AND (gpl-3.0-plus AND gpl-3.0-plus WITH tex-exception) + AND (gpl-2.0-plus AND gpl-2.0-plus) AND autoconf-simple-exception-2.0 AND (gpl-2.0 AND gpl-2.0) + AND fsf-ap - | © 2001-2020 Niels Möller Some parts are Copyright © the Free Software Foundation and various diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libk5crypto3/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libk5crypto3/copyright-detailed.expected.yml index 614d09c4a2f..1027c6cf96c 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libk5crypto3/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libk5crypto3/copyright-detailed.expected.yml @@ -10,8 +10,8 @@ AND proprietary-license) AND bsd-original-uc AND mit-no-advert-export-control AND bsd-original AND mit AND isc AND isc AND other-permissive AND bsd-new AND rsa-md4 AND rsa-md5 AND rsa-1990 AND mit-with-modification-obligations AND unknown-license-reference AND bsd-new AND unknown-license-reference - AND (bsd-simplified OR gpl-2.0-plus) AND (mpl-1.1 OR gpl-1.0-plus) AND gpl-2.0 AND unknown-license-reference - AND bsd-new AND bsd-simplified AND unknown-license-reference + AND (bsd-simplified OR gpl-2.0-plus) AND unknown-license-reference AND bsd-new AND bsd-simplified + AND unknown-license-reference - | Copyright (c) 1985-2018 by the Massachusetts Institute of Technology copyright MIT, Cygnus Support, Novell, OpenVision Technologies, Oracle, Red Hat, Sun Microsystems, FundsXpress, and others diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libk5crypto3/copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libk5crypto3/copyright.expected.yml index 22924e515d7..13d36d4df8c 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libk5crypto3/copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libk5crypto3/copyright.expected.yml @@ -5,7 +5,7 @@ AND openldap-2.8 AND freebsd-doc AND cmu-uc AND nrl-permission AND ietf-trust AND mit-old-style AND (mit-no-advert-export-control AND proprietary-license) AND bsd-original-uc AND bsd-original AND isc AND rsa-md4 AND rsa-md5 AND rsa-1990 AND mit-with-modification-obligations AND (bsd-simplified - OR gpl-2.0-plus) AND (mpl-1.1 OR gpl-1.0-plus) AND gpl-2.0 + OR gpl-2.0-plus) - | Copyright (c) 1985-2018 by the Massachusetts Institute of Technology copyright MIT, Cygnus Support, Novell, OpenVision Technologies, Oracle, Red Hat, Sun Microsystems, FundsXpress, and others diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libkeyutils1/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libkeyutils1/copyright-detailed.expected.yml index f127c11b099..c97af6891d2 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libkeyutils1/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libkeyutils1/copyright-detailed.expected.yml @@ -4,8 +4,7 @@ - GPL-2+ - LGPL-2+ - (gpl-2.0-plus AND gpl-2.0-plus AND gpl-1.0-plus AND gpl-2.0) AND (lgpl-2.0-plus AND lgpl-2.0-plus - AND lgpl-2.0-plus AND lgpl-2.0) AND (lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0-plus AND - lgpl-2.0) + AND lgpl-2.0) AND (lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0) - | 2005-2018, Red Hat 2005-2018, Red Hat diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libkeyutils1/copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libkeyutils1/copyright.expected.yml index 63aa98acbe2..a89f3f6ebd9 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libkeyutils1/copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libkeyutils1/copyright.expected.yml @@ -1,5 +1,5 @@ - - GPL-2+ - LGPL-2+ - (gpl-2.0-plus AND gpl-2.0-plus AND gpl-1.0-plus AND gpl-2.0) AND (lgpl-2.0-plus AND lgpl-2.0-plus - AND lgpl-2.0-plus AND lgpl-2.0) + AND lgpl-2.0) - 2005-2018, Red Hat diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libkrb5-3/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libkrb5-3/copyright-detailed.expected.yml index 614d09c4a2f..1027c6cf96c 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libkrb5-3/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libkrb5-3/copyright-detailed.expected.yml @@ -10,8 +10,8 @@ AND proprietary-license) AND bsd-original-uc AND mit-no-advert-export-control AND bsd-original AND mit AND isc AND isc AND other-permissive AND bsd-new AND rsa-md4 AND rsa-md5 AND rsa-1990 AND mit-with-modification-obligations AND unknown-license-reference AND bsd-new AND unknown-license-reference - AND (bsd-simplified OR gpl-2.0-plus) AND (mpl-1.1 OR gpl-1.0-plus) AND gpl-2.0 AND unknown-license-reference - AND bsd-new AND bsd-simplified AND unknown-license-reference + AND (bsd-simplified OR gpl-2.0-plus) AND unknown-license-reference AND bsd-new AND bsd-simplified + AND unknown-license-reference - | Copyright (c) 1985-2018 by the Massachusetts Institute of Technology copyright MIT, Cygnus Support, Novell, OpenVision Technologies, Oracle, Red Hat, Sun Microsystems, FundsXpress, and others diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libkrb5-3/copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libkrb5-3/copyright.expected.yml index 22924e515d7..13d36d4df8c 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libkrb5-3/copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libkrb5-3/copyright.expected.yml @@ -5,7 +5,7 @@ AND openldap-2.8 AND freebsd-doc AND cmu-uc AND nrl-permission AND ietf-trust AND mit-old-style AND (mit-no-advert-export-control AND proprietary-license) AND bsd-original-uc AND bsd-original AND isc AND rsa-md4 AND rsa-md5 AND rsa-1990 AND mit-with-modification-obligations AND (bsd-simplified - OR gpl-2.0-plus) AND (mpl-1.1 OR gpl-1.0-plus) AND gpl-2.0 + OR gpl-2.0-plus) - | Copyright (c) 1985-2018 by the Massachusetts Institute of Technology copyright MIT, Cygnus Support, Novell, OpenVision Technologies, Oracle, Red Hat, Sun Microsystems, FundsXpress, and others diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/liblzma5/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/liblzma5/copyright-detailed.expected.yml index 7aadff096d4..bccf61efc3b 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/liblzma5/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/liblzma5/copyright-detailed.expected.yml @@ -30,12 +30,11 @@ AND public-domain AND public-domain AND public-domain AND public-domain AND lgpl-2.1 AND (epl-2.0 OR gpl-2.0-plus OR lgpl-2.1-plus) AND gpl-3.0 AND public-domain AND public-domain) AND public-domain AND unknown-license-reference AND (gpl-2.0-plus AND gpl-2.0-plus) AND public-domain AND public-domain - AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND fsf-unlimited AND (gpl-3.0-plus - WITH autoconf-macro-exception AND gpl-3.0) AND fsf-ap AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0-plus + AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND fsf-unlimited AND (gpl-3.0-plus WITH + autoconf-macro-exception AND gpl-3.0) AND fsf-ap AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0-plus AND gpl-2.0) AND unknown-license-reference AND unknown-license-reference AND public-domain AND public-domain AND public-domain AND fsf-ap AND (public-domain AND fsf-unlimited AND autoconf-exception-2.0 - AND gpl-2.0 AND gpl-2.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND - other-copyleft AND public-domain + AND gpl-2.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND other-copyleft AND public-domain - | 2006-2018, Lasse Collin 1999-2008, Igor Pavlov diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/liblzma5/copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/liblzma5/copyright.expected.yml index dee9f55a84a..63ba78b1bfe 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/liblzma5/copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/liblzma5/copyright.expected.yml @@ -15,10 +15,9 @@ AND public-domain AND public-domain AND public-domain AND public-domain AND lgpl-2.1 AND (epl-2.0 OR gpl-2.0-plus OR lgpl-2.1-plus) AND gpl-3.0 AND public-domain AND public-domain) AND public-domain AND unknown-license-reference AND (gpl-2.0-plus AND gpl-2.0-plus) AND (lgpl-2.1-plus AND lgpl-2.1-plus - AND lgpl-2.1 AND lgpl-2.1) AND fsf-unlimited AND (gpl-3.0-plus WITH autoconf-macro-exception - AND gpl-3.0) AND fsf-ap AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0-plus AND gpl-2.0) AND unknown-license-reference - AND (public-domain AND fsf-unlimited AND autoconf-exception-2.0 AND gpl-2.0 AND gpl-2.0) AND - other-copyleft + AND lgpl-2.1) AND fsf-unlimited AND (gpl-3.0-plus WITH autoconf-macro-exception AND gpl-3.0) + AND fsf-ap AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0-plus AND gpl-2.0) AND unknown-license-reference + AND (public-domain AND fsf-unlimited AND autoconf-exception-2.0 AND gpl-2.0) AND other-copyleft - | 2006-2018, Lasse Collin 1999-2008, Igor Pavlov diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libmount1/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libmount1/copyright-detailed.expected.yml index 9bc35e81ba5..913d2b98450 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libmount1/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libmount1/copyright-detailed.expected.yml @@ -42,22 +42,19 @@ - LGPL-2.1+ - LGPL-3+ - MIT -- (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 - AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND - gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 - AND gpl-2.0 AND gpl-2.0) AND public-domain AND bsd-original-uc AND mit AND mit AND bsd-no-disclaimer - AND bsd-no-disclaimer AND bsd-no-disclaimer AND bsd-new AND bsd-new AND (lgpl-2.0-plus AND - lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0) AND (lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0-plus - AND lgpl-2.0) AND (lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0) AND (lgpl-2.1-plus - AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 - AND lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (gpl-3.0-plus - AND gpl-3.0-plus AND gpl-3.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) - AND (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND - lgpl-2.1 AND lgpl-2.1) AND (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0) AND (lgpl-2.0-plus - AND lgpl-2.1-plus AND lgpl-2.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) - AND (lgpl-3.0-plus AND lgpl-3.0-plus) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND - lgpl-2.1) AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0-plus AND - gpl-2.0-plus AND gpl-2.0 AND gpl-2.0) +- (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 + AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND + gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND public-domain AND bsd-original-uc AND mit + AND mit AND bsd-simplified AND bsd-simplified AND bsd-simplified AND bsd-new AND bsd-new AND + (lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0) AND (lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0) + AND (lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND + lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus + AND lgpl-2.1) AND (gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus + AND lgpl-2.1) AND (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0-plus) AND (lgpl-2.1-plus AND + lgpl-2.1-plus AND lgpl-2.1) AND (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0-plus) AND (lgpl-2.0-plus + AND lgpl-2.1-plus AND lgpl-2.0-plus) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND + (lgpl-3.0-plus AND lgpl-3.0-plus) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND (gpl-2.0-plus + AND gpl-2.0-plus AND gpl-2.0) AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0) - | Michal Luscon 1986 Gary S. Brown diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libmount1/copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libmount1/copyright.expected.yml index 11099084090..ca31e519c67 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libmount1/copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libmount1/copyright.expected.yml @@ -10,11 +10,11 @@ - GPL-3+ - LGPL - LGPL-3+ -- (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 - AND gpl-2.0) AND public-domain AND bsd-original-uc AND mit AND bsd-no-disclaimer AND bsd-new - AND (lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0) AND (lgpl-2.1-plus AND - lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0) AND - (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0) AND (lgpl-3.0-plus AND lgpl-3.0-plus) +- (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND public-domain + AND bsd-original-uc AND mit AND bsd-simplified AND bsd-new AND (lgpl-2.0-plus AND lgpl-2.0-plus + AND lgpl-2.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND (gpl-3.0-plus AND gpl-3.0-plus + AND gpl-3.0) AND (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0-plus) AND (lgpl-3.0-plus AND + lgpl-3.0-plus) - | Michal Luscon 1986 Gary S. Brown diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libnettle8/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libnettle8/copyright-detailed.expected.yml index 921835fc161..4d72bc7cd27 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libnettle8/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libnettle8/copyright-detailed.expected.yml @@ -87,8 +87,8 @@ AND gpl-2.0-plus)) AND ((lgpl-3.0-plus AND lgpl-3.0-plus) OR (gpl-2.0-plus AND gpl-2.0-plus)) AND ((lgpl-3.0-plus AND lgpl-3.0-plus) OR (gpl-2.0-plus AND gpl-2.0-plus)) AND ((lgpl-3.0-plus AND lgpl-3.0-plus) OR (gpl-2.0-plus AND gpl-2.0-plus)) AND ((lgpl-3.0-plus AND lgpl-3.0-plus) - OR (gpl-2.0-plus AND gpl-2.0-plus)) AND (lgpl-2.0-plus AND gpl-2.0-plus AND lgpl-2.0 AND lgpl-2.0) - AND ((lgpl-3.0-plus AND lgpl-3.0-plus) OR (gpl-2.0-plus AND gpl-2.0-plus)) AND ((lgpl-3.0-plus + OR (gpl-2.0-plus AND gpl-2.0-plus)) AND (lgpl-2.0-plus AND gpl-2.0-plus AND lgpl-2.0) AND + ((lgpl-3.0-plus AND lgpl-3.0-plus) OR (gpl-2.0-plus AND gpl-2.0-plus)) AND ((lgpl-3.0-plus AND lgpl-3.0-plus) OR (gpl-2.0-plus AND gpl-2.0-plus)) AND ((lgpl-3.0-plus AND lgpl-3.0-plus) OR (gpl-2.0-plus AND gpl-2.0-plus)) AND ((lgpl-3.0-plus AND lgpl-3.0-plus) OR (gpl-2.0-plus AND gpl-2.0-plus)) AND ((lgpl-3.0-plus AND lgpl-3.0-plus) OR (gpl-2.0-plus AND gpl-2.0-plus)) @@ -119,7 +119,7 @@ AND (gpl-3.0-plus AND gpl-3.0-plus WITH tex-exception) AND ((lgpl-3.0-plus AND lgpl-3.0-plus) OR (gpl-2.0-plus AND gpl-2.0-plus)) AND ((lgpl-3.0-plus AND lgpl-3.0-plus) OR (gpl-2.0-plus AND gpl-2.0-plus)) AND (gpl-2.0-plus AND gpl-2.0-plus) AND autoconf-simple-exception-2.0 AND - unknown-license-reference AND (gpl-2.0 AND gpl-2.0) AND fsf-ap + public-domain AND (gpl-2.0 AND gpl-2.0) AND fsf-ap - | © 2001-2020 Niels Möller Some parts are Copyright © the Free Software Foundation and various diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libnettle8/copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libnettle8/copyright.expected.yml index 3f97e433635..3a3cefbd5a6 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libnettle8/copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libnettle8/copyright.expected.yml @@ -8,9 +8,9 @@ - GAP - LGPL-3+ - ((lgpl-3.0-plus AND lgpl-3.0-plus) OR (gpl-2.0-plus AND gpl-2.0-plus)) AND (lgpl-2.0-plus - AND gpl-2.0-plus AND lgpl-2.0 AND lgpl-2.0) AND mit AND (gpl-3.0-plus AND gpl-3.0-plus WITH - tex-exception) AND (gpl-2.0-plus AND gpl-2.0-plus) AND autoconf-simple-exception-2.0 AND (gpl-2.0 - AND gpl-2.0) AND fsf-ap + AND gpl-2.0-plus AND lgpl-2.0) AND mit AND (gpl-3.0-plus AND gpl-3.0-plus WITH tex-exception) + AND (gpl-2.0-plus AND gpl-2.0-plus) AND autoconf-simple-exception-2.0 AND (gpl-2.0 AND gpl-2.0) + AND fsf-ap - | © 2001-2020 Niels Möller Some parts are Copyright © the Free Software Foundation and various diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libnsl2/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libnsl2/copyright-detailed.expected.yml index dc2a9bbdc82..7f08b7c2d86 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libnsl2/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libnsl2/copyright-detailed.expected.yml @@ -24,12 +24,12 @@ - permissive-configure - permissive-fsf - permissive-makefile-in -- (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (lgpl-2.1 AND lgpl-3.0-plus - AND gpl-1.0-plus AND lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) - AND bsd-new AND fsf-ap AND fsf-unlimited-no-warranty AND fsf-unlimited-no-warranty AND (gpl-3.0-plus - WITH autoconf-simple-exception AND gpl-3.0) AND fsf-free AND (gpl-2.0-plus WITH autoconf-simple-exception-2.0 - AND gpl-2.0 AND gpl-2.0) AND x11-xconsortium AND (gpl-2.0-plus WITH libtool-exception-2.0 - AND gpl-2.0 AND gpl-2.0) AND fsf-unlimited AND fsf-ap +- (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND (lgpl-2.1 AND lgpl-3.0-plus AND gpl-1.0-plus + AND lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND bsd-new AND fsf-ap AND + fsf-unlimited-no-warranty AND fsf-unlimited-no-warranty AND (gpl-3.0-plus WITH autoconf-simple-exception + AND gpl-3.0) AND fsf-free AND (gpl-2.0-plus WITH autoconf-simple-exception-2.0 AND gpl-2.0) + AND x11-xconsortium AND (gpl-2.0-plus WITH libtool-exception-2.0 AND gpl-2.0) AND fsf-unlimited + AND fsf-ap - | 2020, Aurelien Jarno 2014, 2015, 2017-2018, Thorsten Kukuk diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libnsl2/copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libnsl2/copyright.expected.yml index 7b6937e3f7e..8e080e79fe7 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libnsl2/copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libnsl2/copyright.expected.yml @@ -11,10 +11,10 @@ - GPL-2+-libtool-exception - permissive-autoconf-m4 - (lgpl-2.1 AND lgpl-3.0-plus AND gpl-1.0-plus AND lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus - AND lgpl-2.1 AND lgpl-2.1) AND bsd-new AND fsf-ap AND fsf-unlimited-no-warranty AND fsf-unlimited-no-warranty + AND lgpl-2.1) AND bsd-new AND fsf-ap AND fsf-unlimited-no-warranty AND fsf-unlimited-no-warranty AND (gpl-3.0-plus WITH autoconf-simple-exception AND gpl-3.0) AND fsf-free AND (gpl-2.0-plus - WITH autoconf-simple-exception-2.0 AND gpl-2.0 AND gpl-2.0) AND x11-xconsortium AND (gpl-2.0-plus - WITH libtool-exception-2.0 AND gpl-2.0 AND gpl-2.0) AND fsf-unlimited + WITH autoconf-simple-exception-2.0 AND gpl-2.0) AND x11-xconsortium AND (gpl-2.0-plus WITH + libtool-exception-2.0 AND gpl-2.0) AND fsf-unlimited - | 2014, 2015, 2017-2018, Thorsten Kukuk 1996-2015, Free Software Foundation, Inc. diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libsemanage-common/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libsemanage-common/copyright-detailed.expected.yml index 4eff36a227b..a3220e7143b 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libsemanage-common/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libsemanage-common/copyright-detailed.expected.yml @@ -1,5 +1,5 @@ - -- lgpl-2.1-plus AND gpl-2.0 AND gpl-1.0-plus AND lgpl-2.0-plus AND gpl-1.0-plus AND other-copyleft +- lgpl-2.1-plus AND gpl-2.0 - | Copyright (c) 2004-2007 Tresys Technology, LLC Copyright (c) 2005 Red Hat, Inc. diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libsemanage-common/copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libsemanage-common/copyright.expected.yml index 675def8d1d3..a3220e7143b 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libsemanage-common/copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libsemanage-common/copyright.expected.yml @@ -1,5 +1,5 @@ - -- lgpl-2.1-plus AND gpl-2.0 AND gpl-1.0-plus AND lgpl-2.0-plus AND other-copyleft +- lgpl-2.1-plus AND gpl-2.0 - | Copyright (c) 2004-2007 Tresys Technology, LLC Copyright (c) 2005 Red Hat, Inc. diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libsepol1/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libsepol1/copyright-detailed.expected.yml index 4b602056cda..d216b54f096 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libsepol1/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libsepol1/copyright-detailed.expected.yml @@ -1,5 +1,5 @@ - -- lgpl-2.1-plus AND gpl-2.0 AND gpl-1.0-plus AND lgpl-2.0-plus AND gpl-1.0-plus AND other-copyleft +- lgpl-2.1-plus AND gpl-2.0 - | Copyright (c) 2003, 2004 Stephen Smalley Copyright (c) 2003-2007 Red Hat, Inc. diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libsepol1/copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libsepol1/copyright.expected.yml index 60ed54591d3..d216b54f096 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libsepol1/copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libsepol1/copyright.expected.yml @@ -1,5 +1,5 @@ - -- lgpl-2.1-plus AND gpl-2.0 AND gpl-1.0-plus AND lgpl-2.0-plus AND other-copyleft +- lgpl-2.1-plus AND gpl-2.0 - | Copyright (c) 2003, 2004 Stephen Smalley Copyright (c) 2003-2007 Red Hat, Inc. diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libsmartcols1/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libsmartcols1/copyright-detailed.expected.yml index 9bc35e81ba5..913d2b98450 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libsmartcols1/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libsmartcols1/copyright-detailed.expected.yml @@ -42,22 +42,19 @@ - LGPL-2.1+ - LGPL-3+ - MIT -- (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 - AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND - gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 - AND gpl-2.0 AND gpl-2.0) AND public-domain AND bsd-original-uc AND mit AND mit AND bsd-no-disclaimer - AND bsd-no-disclaimer AND bsd-no-disclaimer AND bsd-new AND bsd-new AND (lgpl-2.0-plus AND - lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0) AND (lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0-plus - AND lgpl-2.0) AND (lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0) AND (lgpl-2.1-plus - AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 - AND lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (gpl-3.0-plus - AND gpl-3.0-plus AND gpl-3.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) - AND (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND - lgpl-2.1 AND lgpl-2.1) AND (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0) AND (lgpl-2.0-plus - AND lgpl-2.1-plus AND lgpl-2.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) - AND (lgpl-3.0-plus AND lgpl-3.0-plus) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND - lgpl-2.1) AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0-plus AND - gpl-2.0-plus AND gpl-2.0 AND gpl-2.0) +- (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 + AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND + gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND public-domain AND bsd-original-uc AND mit + AND mit AND bsd-simplified AND bsd-simplified AND bsd-simplified AND bsd-new AND bsd-new AND + (lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0) AND (lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0) + AND (lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND + lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus + AND lgpl-2.1) AND (gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus + AND lgpl-2.1) AND (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0-plus) AND (lgpl-2.1-plus AND + lgpl-2.1-plus AND lgpl-2.1) AND (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0-plus) AND (lgpl-2.0-plus + AND lgpl-2.1-plus AND lgpl-2.0-plus) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND + (lgpl-3.0-plus AND lgpl-3.0-plus) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND (gpl-2.0-plus + AND gpl-2.0-plus AND gpl-2.0) AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0) - | Michal Luscon 1986 Gary S. Brown diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libsmartcols1/copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libsmartcols1/copyright.expected.yml index 11099084090..ca31e519c67 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libsmartcols1/copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libsmartcols1/copyright.expected.yml @@ -10,11 +10,11 @@ - GPL-3+ - LGPL - LGPL-3+ -- (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 - AND gpl-2.0) AND public-domain AND bsd-original-uc AND mit AND bsd-no-disclaimer AND bsd-new - AND (lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0) AND (lgpl-2.1-plus AND - lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0) AND - (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0) AND (lgpl-3.0-plus AND lgpl-3.0-plus) +- (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND public-domain + AND bsd-original-uc AND mit AND bsd-simplified AND bsd-new AND (lgpl-2.0-plus AND lgpl-2.0-plus + AND lgpl-2.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND (gpl-3.0-plus AND gpl-3.0-plus + AND gpl-3.0) AND (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0-plus) AND (lgpl-3.0-plus AND + lgpl-3.0-plus) - | Michal Luscon 1986 Gary S. Brown diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libsystemd0/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libsystemd0/copyright-detailed.expected.yml index bdf8c5e308c..c6110b9533f 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libsystemd0/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libsystemd0/copyright-detailed.expected.yml @@ -13,11 +13,10 @@ - GPL-2+ - LGPL-2.1+ - CC0-1.0 -- (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (cc0-1.0 AND cc0-1.0 AND cc0-1.0) - AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND (linux-syscall-exception-gpl AND gpl-2.0 - AND gpl-2.0 AND gpl-2.0) AND mit AND public-domain-disclaimer AND (gpl-2.0-plus AND gpl-2.0-plus) - AND (gpl-2.0-plus AND gpl-2.0-plus) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND - lgpl-2.1) +- (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND (cc0-1.0 AND cc0-1.0 AND cc0-1.0) AND (gpl-2.0 + AND gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND (linux-syscall-exception-gpl AND gpl-2.0 AND gpl-2.0 + AND gpl-2.0) AND mit AND public-domain-disclaimer AND (gpl-2.0-plus AND gpl-2.0-plus) AND + (gpl-2.0-plus AND gpl-2.0-plus) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) - | 2008-2015 Kay Sievers 2010-2015 Lennart Poettering diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libsystemd0/copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libsystemd0/copyright.expected.yml index b1ecc0d5e58..feef580fbb7 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libsystemd0/copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libsystemd0/copyright.expected.yml @@ -5,9 +5,9 @@ - Expat - public-domain - GPL-2+ -- (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (cc0-1.0 AND cc0-1.0 AND cc0-1.0) - AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND (linux-syscall-exception-gpl AND gpl-2.0 - AND gpl-2.0 AND gpl-2.0) AND mit AND public-domain-disclaimer AND (gpl-2.0-plus AND gpl-2.0-plus) +- (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND (cc0-1.0 AND cc0-1.0 AND cc0-1.0) AND (gpl-2.0 + AND gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND (linux-syscall-exception-gpl AND gpl-2.0 AND gpl-2.0 + AND gpl-2.0) AND mit AND public-domain-disclaimer AND (gpl-2.0-plus AND gpl-2.0-plus) - | 2008-2015 Kay Sievers 2010-2015 Lennart Poettering diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libtirpc-common/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libtirpc-common/copyright-detailed.expected.yml index 4b007488e24..b6271156787 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libtirpc-common/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libtirpc-common/copyright-detailed.expected.yml @@ -39,13 +39,12 @@ - BSD-4-Clause - LGPL-2.1+ - GPL-2 -- bsd-new AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND bsd-new AND unknown-license-reference +- bsd-new AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND bsd-new AND (other-permissive AND free-unknown) AND bsd-simplified AND bsd-new AND bsd-new AND bsd-new AND bsd-new AND bsd-original-voices - AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND fsf-ap AND bsd-new AND - bsd-simplified AND bsd-simplified AND bsd-simplified AND bsd-simplified AND bsd-new AND bsd-new + AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND fsf-ap AND bsd-new AND bsd-simplified + AND bsd-simplified AND bsd-simplified AND bsd-simplified AND bsd-new AND bsd-new AND bsd-new AND bsd-new AND bsd-new AND bsd-new AND bsd-new AND bsd-new AND bsd-new AND bsd-new AND bsd-new AND bsd-new AND bsd-new AND bsd-new AND bsd-new AND bsd-new AND bsd-new AND bsd-new AND bsd-new - AND bsd-new - | 2005 Bull S.A 2009 Steinar H. Gunderson diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libtirpc-common/copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libtirpc-common/copyright.expected.yml index 1affa58a74c..78cffa482fc 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libtirpc-common/copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libtirpc-common/copyright.expected.yml @@ -5,8 +5,8 @@ - LGPL-2.1+ - PERMISSIVE - GPL-2 -- bsd-new AND unknown-license-reference AND bsd-simplified AND bsd-original-voices AND (lgpl-2.1-plus - AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND fsf-ap +- bsd-new AND (other-permissive AND free-unknown) AND bsd-simplified AND bsd-original-voices + AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND fsf-ap - | 2005 Bull S.A 1984-2009 Sun Microsystems, Inc. diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libudev1/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libudev1/copyright-detailed.expected.yml index bdf8c5e308c..c6110b9533f 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libudev1/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libudev1/copyright-detailed.expected.yml @@ -13,11 +13,10 @@ - GPL-2+ - LGPL-2.1+ - CC0-1.0 -- (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (cc0-1.0 AND cc0-1.0 AND cc0-1.0) - AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND (linux-syscall-exception-gpl AND gpl-2.0 - AND gpl-2.0 AND gpl-2.0) AND mit AND public-domain-disclaimer AND (gpl-2.0-plus AND gpl-2.0-plus) - AND (gpl-2.0-plus AND gpl-2.0-plus) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND - lgpl-2.1) +- (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND (cc0-1.0 AND cc0-1.0 AND cc0-1.0) AND (gpl-2.0 + AND gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND (linux-syscall-exception-gpl AND gpl-2.0 AND gpl-2.0 + AND gpl-2.0) AND mit AND public-domain-disclaimer AND (gpl-2.0-plus AND gpl-2.0-plus) AND + (gpl-2.0-plus AND gpl-2.0-plus) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) - | 2008-2015 Kay Sievers 2010-2015 Lennart Poettering diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libudev1/copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libudev1/copyright.expected.yml index b1ecc0d5e58..feef580fbb7 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libudev1/copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libudev1/copyright.expected.yml @@ -5,9 +5,9 @@ - Expat - public-domain - GPL-2+ -- (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (cc0-1.0 AND cc0-1.0 AND cc0-1.0) - AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND (linux-syscall-exception-gpl AND gpl-2.0 - AND gpl-2.0 AND gpl-2.0) AND mit AND public-domain-disclaimer AND (gpl-2.0-plus AND gpl-2.0-plus) +- (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND (cc0-1.0 AND cc0-1.0 AND cc0-1.0) AND (gpl-2.0 + AND gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND (linux-syscall-exception-gpl AND gpl-2.0 AND gpl-2.0 + AND gpl-2.0) AND mit AND public-domain-disclaimer AND (gpl-2.0-plus AND gpl-2.0-plus) - | 2008-2015 Kay Sievers 2010-2015 Lennart Poettering diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libunistring2/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libunistring2/copyright-detailed.expected.yml index a4171b3478c..fe206e3cc43 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libunistring2/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libunistring2/copyright-detailed.expected.yml @@ -1,9 +1,9 @@ - - lgpl-3.0-plus AND gpl-2.0-plus AND fsf-unlimited AND gpl-2.0-plus AND gpl-1.0-plus WITH autoconf-simple-exception-2.0 AND gpl-3.0-plus AND gfdl-1.2-plus AND gpl-3.0-plus AND gpl-2.0-plus AND gpl-2.0-plus AND - x11-xconsortium AND mit AND gpl-3.0-plus AND lgpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0-plus - AND gpl-2.0-plus AND gfdl-1.2-plus AND unknown-license-reference AND gfdl-1.1-plus AND gfdl-1.1-plus - AND gfdl-1.2 AND mit AND x11-xconsortium + x11-xconsortium AND mit AND gpl-3.0-plus AND lgpl-3.0-plus AND lgpl-3.0-plus AND lgpl-3.0 + AND lgpl-3.0 AND gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0 AND gpl-3.0 AND gpl-2.0-plus AND + gpl-2.0-plus AND gpl-2.0 AND gpl-2.0 AND gfdl-1.2-plus AND gfdl-1.2-plus AND mit AND x11-xconsortium - | Copyright 1995-2017 Free Software Foundation, Inc. Copyright 1995-2017 Free Software Foundation, Inc. diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libunistring2/copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libunistring2/copyright.expected.yml index bf90cdabb94..e0e7ce05649 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libunistring2/copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libunistring2/copyright.expected.yml @@ -1,7 +1,7 @@ - - lgpl-3.0-plus AND gpl-2.0-plus AND fsf-unlimited AND gpl-1.0-plus WITH autoconf-simple-exception-2.0 - AND gpl-3.0-plus AND gfdl-1.2-plus AND x11-xconsortium AND mit AND unknown-license-reference - AND gfdl-1.1-plus AND gfdl-1.2 + AND gpl-3.0-plus AND gfdl-1.2-plus AND x11-xconsortium AND mit AND lgpl-3.0 AND gpl-3.0 AND + gpl-2.0 - | Copyright 1995-2017 Free Software Foundation, Inc. Copyright 1995-2017 Free Software Foundation, Inc. diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libuuid1/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libuuid1/copyright-detailed.expected.yml index 9bc35e81ba5..913d2b98450 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libuuid1/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libuuid1/copyright-detailed.expected.yml @@ -42,22 +42,19 @@ - LGPL-2.1+ - LGPL-3+ - MIT -- (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 - AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND - gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 - AND gpl-2.0 AND gpl-2.0) AND public-domain AND bsd-original-uc AND mit AND mit AND bsd-no-disclaimer - AND bsd-no-disclaimer AND bsd-no-disclaimer AND bsd-new AND bsd-new AND (lgpl-2.0-plus AND - lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0) AND (lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0-plus - AND lgpl-2.0) AND (lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0) AND (lgpl-2.1-plus - AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 - AND lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (gpl-3.0-plus - AND gpl-3.0-plus AND gpl-3.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) - AND (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND - lgpl-2.1 AND lgpl-2.1) AND (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0) AND (lgpl-2.0-plus - AND lgpl-2.1-plus AND lgpl-2.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) - AND (lgpl-3.0-plus AND lgpl-3.0-plus) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND - lgpl-2.1) AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0-plus AND - gpl-2.0-plus AND gpl-2.0 AND gpl-2.0) +- (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 + AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND + gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND public-domain AND bsd-original-uc AND mit + AND mit AND bsd-simplified AND bsd-simplified AND bsd-simplified AND bsd-new AND bsd-new AND + (lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0) AND (lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0) + AND (lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND + lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus + AND lgpl-2.1) AND (gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus + AND lgpl-2.1) AND (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0-plus) AND (lgpl-2.1-plus AND + lgpl-2.1-plus AND lgpl-2.1) AND (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0-plus) AND (lgpl-2.0-plus + AND lgpl-2.1-plus AND lgpl-2.0-plus) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND + (lgpl-3.0-plus AND lgpl-3.0-plus) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND (gpl-2.0-plus + AND gpl-2.0-plus AND gpl-2.0) AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0) - | Michal Luscon 1986 Gary S. Brown diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libuuid1/copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libuuid1/copyright.expected.yml index 11099084090..ca31e519c67 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libuuid1/copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libuuid1/copyright.expected.yml @@ -10,11 +10,11 @@ - GPL-3+ - LGPL - LGPL-3+ -- (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 - AND gpl-2.0) AND public-domain AND bsd-original-uc AND mit AND bsd-no-disclaimer AND bsd-new - AND (lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0) AND (lgpl-2.1-plus AND - lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0) AND - (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0) AND (lgpl-3.0-plus AND lgpl-3.0-plus) +- (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND public-domain + AND bsd-original-uc AND mit AND bsd-simplified AND bsd-new AND (lgpl-2.0-plus AND lgpl-2.0-plus + AND lgpl-2.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND (gpl-3.0-plus AND gpl-3.0-plus + AND gpl-3.0) AND (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0-plus) AND (lgpl-3.0-plus AND + lgpl-3.0-plus) - | Michal Luscon 1986 Gary S. Brown diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libzstd1/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libzstd1/copyright-detailed.expected.yml index bc743239b9c..79f4145a5e7 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libzstd1/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libzstd1/copyright-detailed.expected.yml @@ -8,8 +8,8 @@ - Expat - GPL-2 - BSD-3-clause -- (bsd-new AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 AND gpl-2.0)) AND zlib AND zlib AND mit AND - (bsd-new AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 AND gpl-2.0)) AND mit +- (bsd-new AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0)) AND zlib AND zlib AND mit AND (bsd-new AND + (gpl-2.0 AND gpl-2.0 AND gpl-2.0)) AND mit - | 2013-2018, Yann Collet 2016, Przemyslaw Skibinski diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libzstd1/copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libzstd1/copyright.expected.yml index facd87efa19..59f1f91fc50 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libzstd1/copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libzstd1/copyright.expected.yml @@ -3,7 +3,7 @@ - Expat - GPL-2 - BSD-3-clause -- (bsd-new AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 AND gpl-2.0)) AND zlib AND mit +- (bsd-new AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0)) AND zlib AND mit - | 2013-2018, Yann Collet 2016, Przemyslaw Skibinski diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/logsave/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/logsave/copyright-detailed.expected.yml index 9cf037404ae..31c5d5d9f60 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/logsave/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/logsave/copyright-detailed.expected.yml @@ -1,5 +1,5 @@ - -- (gpl-2.0 AND lgpl-2.0 AND bsd-new AND mit-old-style-no-advert) AND (gpl-2.0 AND lgpl-2.1) +- (gpl-2.0 AND lgpl-2.0 AND bsd-new AND mit-old-style-no-advert) AND (gpl-2.0 AND lgpl-2.0) AND ntp-0 AND bsd-new - | Copyright (c) 2003-2007 Theodore Ts'o diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/logsave/copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/logsave/copyright.expected.yml index 9cf037404ae..31c5d5d9f60 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/logsave/copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/logsave/copyright.expected.yml @@ -1,5 +1,5 @@ - -- (gpl-2.0 AND lgpl-2.0 AND bsd-new AND mit-old-style-no-advert) AND (gpl-2.0 AND lgpl-2.1) +- (gpl-2.0 AND lgpl-2.0 AND bsd-new AND mit-old-style-no-advert) AND (gpl-2.0 AND lgpl-2.0) AND ntp-0 AND bsd-new - | Copyright (c) 2003-2007 Theodore Ts'o diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/mount/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/mount/copyright-detailed.expected.yml index 9bc35e81ba5..913d2b98450 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/mount/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/mount/copyright-detailed.expected.yml @@ -42,22 +42,19 @@ - LGPL-2.1+ - LGPL-3+ - MIT -- (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 - AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND - gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 - AND gpl-2.0 AND gpl-2.0) AND public-domain AND bsd-original-uc AND mit AND mit AND bsd-no-disclaimer - AND bsd-no-disclaimer AND bsd-no-disclaimer AND bsd-new AND bsd-new AND (lgpl-2.0-plus AND - lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0) AND (lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0-plus - AND lgpl-2.0) AND (lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0) AND (lgpl-2.1-plus - AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 - AND lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (gpl-3.0-plus - AND gpl-3.0-plus AND gpl-3.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) - AND (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND - lgpl-2.1 AND lgpl-2.1) AND (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0) AND (lgpl-2.0-plus - AND lgpl-2.1-plus AND lgpl-2.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) - AND (lgpl-3.0-plus AND lgpl-3.0-plus) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND - lgpl-2.1) AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0-plus AND - gpl-2.0-plus AND gpl-2.0 AND gpl-2.0) +- (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 + AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND + gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND public-domain AND bsd-original-uc AND mit + AND mit AND bsd-simplified AND bsd-simplified AND bsd-simplified AND bsd-new AND bsd-new AND + (lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0) AND (lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0) + AND (lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND + lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus + AND lgpl-2.1) AND (gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus + AND lgpl-2.1) AND (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0-plus) AND (lgpl-2.1-plus AND + lgpl-2.1-plus AND lgpl-2.1) AND (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0-plus) AND (lgpl-2.0-plus + AND lgpl-2.1-plus AND lgpl-2.0-plus) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND + (lgpl-3.0-plus AND lgpl-3.0-plus) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND (gpl-2.0-plus + AND gpl-2.0-plus AND gpl-2.0) AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0) - | Michal Luscon 1986 Gary S. Brown diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/mount/copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/mount/copyright.expected.yml index 11099084090..ca31e519c67 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/mount/copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/mount/copyright.expected.yml @@ -10,11 +10,11 @@ - GPL-3+ - LGPL - LGPL-3+ -- (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 - AND gpl-2.0) AND public-domain AND bsd-original-uc AND mit AND bsd-no-disclaimer AND bsd-new - AND (lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0) AND (lgpl-2.1-plus AND - lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0) AND - (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0) AND (lgpl-3.0-plus AND lgpl-3.0-plus) +- (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND public-domain + AND bsd-original-uc AND mit AND bsd-simplified AND bsd-new AND (lgpl-2.0-plus AND lgpl-2.0-plus + AND lgpl-2.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND (gpl-3.0-plus AND gpl-3.0-plus + AND gpl-3.0) AND (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0-plus) AND (lgpl-3.0-plus AND + lgpl-3.0-plus) - | Michal Luscon 1986 Gary S. Brown diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/util-linux/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/util-linux/copyright-detailed.expected.yml index 9bc35e81ba5..913d2b98450 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/util-linux/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/util-linux/copyright-detailed.expected.yml @@ -42,22 +42,19 @@ - LGPL-2.1+ - LGPL-3+ - MIT -- (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 - AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND - gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 - AND gpl-2.0 AND gpl-2.0) AND public-domain AND bsd-original-uc AND mit AND mit AND bsd-no-disclaimer - AND bsd-no-disclaimer AND bsd-no-disclaimer AND bsd-new AND bsd-new AND (lgpl-2.0-plus AND - lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0) AND (lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0-plus - AND lgpl-2.0) AND (lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0) AND (lgpl-2.1-plus - AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 - AND lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (gpl-3.0-plus - AND gpl-3.0-plus AND gpl-3.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) - AND (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND - lgpl-2.1 AND lgpl-2.1) AND (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0) AND (lgpl-2.0-plus - AND lgpl-2.1-plus AND lgpl-2.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) - AND (lgpl-3.0-plus AND lgpl-3.0-plus) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1 AND - lgpl-2.1) AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0-plus AND - gpl-2.0-plus AND gpl-2.0 AND gpl-2.0) +- (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 + AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND + gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND public-domain AND bsd-original-uc AND mit + AND mit AND bsd-simplified AND bsd-simplified AND bsd-simplified AND bsd-new AND bsd-new AND + (lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0) AND (lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0) + AND (lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND + lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND (lgpl-2.1-plus AND lgpl-2.1-plus + AND lgpl-2.1) AND (gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus + AND lgpl-2.1) AND (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0-plus) AND (lgpl-2.1-plus AND + lgpl-2.1-plus AND lgpl-2.1) AND (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0-plus) AND (lgpl-2.0-plus + AND lgpl-2.1-plus AND lgpl-2.0-plus) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND + (lgpl-3.0-plus AND lgpl-3.0-plus) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND (gpl-2.0-plus + AND gpl-2.0-plus AND gpl-2.0) AND (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0) - | Michal Luscon 1986 Gary S. Brown diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/util-linux/copyright.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/util-linux/copyright.expected.yml index 11099084090..ca31e519c67 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/util-linux/copyright.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/util-linux/copyright.expected.yml @@ -10,11 +10,11 @@ - GPL-3+ - LGPL - LGPL-3+ -- (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0 AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0 - AND gpl-2.0) AND public-domain AND bsd-original-uc AND mit AND bsd-no-disclaimer AND bsd-new - AND (lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0-plus AND lgpl-2.0) AND (lgpl-2.1-plus AND - lgpl-2.1-plus AND lgpl-2.1 AND lgpl-2.1) AND (gpl-3.0-plus AND gpl-3.0-plus AND gpl-3.0) AND - (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0) AND (lgpl-3.0-plus AND lgpl-3.0-plus) +- (gpl-2.0-plus AND gpl-2.0-plus AND gpl-2.0) AND (gpl-2.0 AND gpl-2.0 AND gpl-2.0) AND public-domain + AND bsd-original-uc AND mit AND bsd-simplified AND bsd-new AND (lgpl-2.0-plus AND lgpl-2.0-plus + AND lgpl-2.0) AND (lgpl-2.1-plus AND lgpl-2.1-plus AND lgpl-2.1) AND (gpl-3.0-plus AND gpl-3.0-plus + AND gpl-3.0) AND (lgpl-2.0-plus AND lgpl-2.1-plus AND lgpl-2.0-plus) AND (lgpl-3.0-plus AND + lgpl-3.0-plus) - | Michal Luscon 1986 Gary S. Brown From a451a9c1701550d52c2eb53a5d066b10212a750c Mon Sep 17 00:00:00 2001 From: akugarg Date: Thu, 17 Jun 2021 14:59:03 +0530 Subject: [PATCH 515/709] Add is_unknown flag for license class Signed-off-by: akugarg --- src/licensedcode/models.py | 1 + src/scancode/api.py | 1 + 2 files changed, 2 insertions(+) diff --git a/src/licensedcode/models.py b/src/licensedcode/models.py index 45809f0c414..8612ab0b547 100644 --- a/src/licensedcode/models.py +++ b/src/licensedcode/models.py @@ -108,6 +108,7 @@ class License(object): # if this is a license exception, the license key this exception applies to is_exception = __attrib(default=False) + is_unknown = __attrib(default=False) # SPDX key for SPDX licenses spdx_license_key = __attrib(default=None) # list of other keys, such as deprecated ones diff --git a/src/scancode/api.py b/src/scancode/api.py index 16705e43125..501db87b919 100644 --- a/src/scancode/api.py +++ b/src/scancode/api.py @@ -238,6 +238,7 @@ def _licenses_data_from_match( result['short_name'] = lic.short_name result['category'] = lic.category result['is_exception'] = lic.is_exception + result['is_unknown']=lic.is_unknown result['owner'] = lic.owner result['homepage_url'] = lic.homepage_url result['text_url'] = lic.text_urls[0] if lic.text_urls else '' From e62be42b827f97b3f08c4990a3467998afc43f5e Mon Sep 17 00:00:00 2001 From: akugarg Date: Thu, 17 Jun 2021 16:43:28 +0530 Subject: [PATCH 516/709] Add is_unknown flag to data files of unknown licenses Signed-off-by: akugarg --- src/licensedcode/data/licenses/free-unknown.yml | 2 ++ src/licensedcode/data/licenses/license-file-reference.yml | 1 + src/licensedcode/data/licenses/see-license.yml | 1 + src/licensedcode/data/licenses/unknown-license-reference.yml | 1 + src/licensedcode/data/licenses/unknown-spdx.yml | 1 + src/licensedcode/data/licenses/unknown.yml | 1 + 6 files changed, 7 insertions(+) diff --git a/src/licensedcode/data/licenses/free-unknown.yml b/src/licensedcode/data/licenses/free-unknown.yml index 2266acfbe15..46ecfaad329 100644 --- a/src/licensedcode/data/licenses/free-unknown.yml +++ b/src/licensedcode/data/licenses/free-unknown.yml @@ -3,4 +3,6 @@ short_name: Free unknown name: Free unknown license detected but not recognized category: Unstated License owner: Unspecified +is_unknown: yes spdx_license_key: LicenseRef-scancode-free-unknown + diff --git a/src/licensedcode/data/licenses/license-file-reference.yml b/src/licensedcode/data/licenses/license-file-reference.yml index 988690a36e5..756c631a39f 100644 --- a/src/licensedcode/data/licenses/license-file-reference.yml +++ b/src/licensedcode/data/licenses/license-file-reference.yml @@ -4,4 +4,5 @@ short_name: license-file-reference name: license-file-reference category: Unstated License owner: Unspecified +is_unknown: yes notes: this was known before as "see-license" and is now unknown-license-reference diff --git a/src/licensedcode/data/licenses/see-license.yml b/src/licensedcode/data/licenses/see-license.yml index 199cbc94e34..069252efcd2 100644 --- a/src/licensedcode/data/licenses/see-license.yml +++ b/src/licensedcode/data/licenses/see-license.yml @@ -4,4 +4,5 @@ name: See License mention category: Unstated License owner: Unspecified is_deprecated: yes +is_unknown: yes notes: replaced by unknown-license-reference \ No newline at end of file diff --git a/src/licensedcode/data/licenses/unknown-license-reference.yml b/src/licensedcode/data/licenses/unknown-license-reference.yml index aaa91270b91..14e089533f0 100644 --- a/src/licensedcode/data/licenses/unknown-license-reference.yml +++ b/src/licensedcode/data/licenses/unknown-license-reference.yml @@ -3,6 +3,7 @@ short_name: Unknown License reference name: Unknown License file reference category: Unstated License owner: Unspecified +is_unknown: yes notes: This is reference to a license file with no clear license. this was known before as "see-license" and "license-file-reference" spdx_license_key: LicenseRef-scancode-unknown-license-reference diff --git a/src/licensedcode/data/licenses/unknown-spdx.yml b/src/licensedcode/data/licenses/unknown-spdx.yml index 4ef348cf70b..f1eee5cd342 100644 --- a/src/licensedcode/data/licenses/unknown-spdx.yml +++ b/src/licensedcode/data/licenses/unknown-spdx.yml @@ -3,6 +3,7 @@ short_name: unknown SPDX name: Unknown SPDX license detected but not recognized category: Unstated License owner: Unspecified +is_unknown: yes spdx_license_key: LicenseRef-scancode-unknown-spdx notes: This is something that clearly ressembles a license in an SPDX license expression but is not conclusively an SPDX license ID. \ No newline at end of file diff --git a/src/licensedcode/data/licenses/unknown.yml b/src/licensedcode/data/licenses/unknown.yml index faf9905a553..1de9d243167 100644 --- a/src/licensedcode/data/licenses/unknown.yml +++ b/src/licensedcode/data/licenses/unknown.yml @@ -3,5 +3,6 @@ short_name: unknown name: Unknown license detected but not recognized category: Unstated License owner: Unspecified +is_unknown: yes spdx_license_key: LicenseRef-scancode-unknown notes: This is something that clearly ressembles a license but is not conclusive. From e6c39576a3264ec80e4cbbdd439f417538d27dbe Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 17 Jun 2021 15:35:13 +0200 Subject: [PATCH 517/709] Ignore UUIDs in SPDX namespeca tests #2344 Signed-off-by: Philippe Ombredanne --- .../data/spdx/simple/expected.tv | 2 +- tests/formattedcode/test_output_spdx.py | 23 +++++++++++++++---- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/tests/formattedcode/data/spdx/simple/expected.tv b/tests/formattedcode/data/spdx/simple/expected.tv index 1fe39c2e88f..5417cdf118e 100644 --- a/tests/formattedcode/data/spdx/simple/expected.tv +++ b/tests/formattedcode/data/spdx/simple/expected.tv @@ -2,7 +2,7 @@ SPDXVersion: SPDX-2.1 DataLicense: CC0-1.0 SPDXID: SPDXRef-DOCUMENT -DocumentNamespace: http://spdx.org/spdxdocs/simple-95546eef-3081-4c4b-bd90-c899c395adaf +DocumentNamespace: http://spdx.org/spdxdocs/simple DocumentComment: Generated with ScanCode and provided on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. No content created from ScanCode should be considered or used as legal advice. Consult an Attorney diff --git a/tests/formattedcode/test_output_spdx.py b/tests/formattedcode/test_output_spdx.py index 8044b57dd2a..77f70125147 100644 --- a/tests/formattedcode/test_output_spdx.py +++ b/tests/formattedcode/test_output_spdx.py @@ -65,7 +65,6 @@ def sort_nested(data): maptypes = dict, dict coltypes = seqtypes + maptypes - if isinstance(data, maptypes): new_data = [] for k, v in data.items(): @@ -138,9 +137,25 @@ def load_and_clean_tv(location): """ with io.open(location, encoding='utf-8') as co: content = co.read() - content = [l for l in content.splitlines(False) - if l and l.strip() and not l.startswith(('Creator: ', 'Created: ',))] - return '\n'.join(content) + lines = [] + lines_append = lines.append + + dns = 'DocumentNamespace: http://spdx.org/spdxdocs/' + + for line in content.splitlines(False): + line = line.strip() + if not line: + continue + if line.startswith(('Creator: ', 'Created: ',)): + continue + if line.startswith(dns): + # only keep the left side of + # DocumentNamespace: http://spdx.org/spdxdocs/unicode-ea31be0f-16de-4eab-9fc7-4e3bafb753d3 + line, _, _ = line.partition('-') + + lines_append(line) + + return '\n'.join(lines) def check_tv_scan(expected_file, result_file, regen=False): From d77fd7a8e7bde9919dad60794ed393c77998dd56 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 17 Jun 2021 15:36:41 +0200 Subject: [PATCH 518/709] Do not import deprecated debut module Signed-off-by: Philippe Ombredanne --- src/formattedcode/output_debian.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/formattedcode/output_debian.py b/src/formattedcode/output_debian.py index 5fcbed5472e..7ded3b0fea1 100644 --- a/src/formattedcode/output_debian.py +++ b/src/formattedcode/output_debian.py @@ -6,9 +6,9 @@ # See https://github.com/nexB/scancode-toolkit for support or download. # See https://aboutcode.org for more information about nexB OSS projects. -from debut.copyright import CopyrightFilesParagraph -from debut.copyright import CopyrightHeaderParagraph -from debut.copyright import DebianCopyright +from debian_inspector.copyright import CopyrightFilesParagraph +from debian_inspector.copyright import CopyrightHeaderParagraph +from debian_inspector.copyright import DebianCopyright from license_expression import Licensing from commoncode.cliutils import PluggableCommandLineOption From af6a69f4064e17b386f3c4922ac0d9e8e65d0d11 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 17 Jun 2021 15:40:38 +0200 Subject: [PATCH 519/709] Do not use deprecated execute2 function Signed-off-by: Philippe Ombredanne --- src/scancode/cli_test_utils.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/scancode/cli_test_utils.py b/src/scancode/cli_test_utils.py index 5915025db4d..604cc468b4e 100644 --- a/src/scancode/cli_test_utils.py +++ b/src/scancode/cli_test_utils.py @@ -27,7 +27,8 @@ def run_scan_plain( """ Run a scan as a plain subprocess. Return rc, stdout, stderr. """ - from commoncode.command import execute2 + + from commoncode.command import execute options = add_windows_extra_timeout(options) @@ -39,7 +40,7 @@ def run_scan_plain( scmd = u'scancode' scan_cmd = os.path.join(scancode_root_dir, scmd) - rc, stdout, stderr = execute2( + rc, stdout, stderr = execute( cmd_loc=scan_cmd, args=options, cwd=cwd, @@ -51,7 +52,7 @@ def run_scan_plain( time.sleep(1) if '--verbose' not in options: options.append('--verbose') - result = rc, stdout, stderr = execute2( + result = rc, stdout, stderr = execute( cmd_loc=scan_cmd, args=options, cwd=cwd, From 8b4b61b788f350f83617f8f98ae2418fe4052ed1 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 17 Jun 2021 15:41:05 +0200 Subject: [PATCH 520/709] Do not use deprecated Type.object in jsonstreams Signed-off-by: Philippe Ombredanne --- src/formattedcode/output_json.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/formattedcode/output_json.py b/src/formattedcode/output_json.py index a33be38c7d7..2bb34971576 100644 --- a/src/formattedcode/output_json.py +++ b/src/formattedcode/output_json.py @@ -99,7 +99,7 @@ def write_results(codebase, output_file, pretty=False, **kwargs): # Begin wri'w' JSON to `output_file` with jsonstreams.Stream( - jsonstreams.Type.object, + jsonstreams.Type.OBJECT, fd=output_file, close_fd=close_fd, **jsonstreams_kwargs From 98af8879e253362645d1d22633c5051766f3909e Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 4 Sep 2020 15:58:25 +0200 Subject: [PATCH 521/709] Add new generated keywords Signed-off-by: Philippe Ombredanne --- src/summarycode/generated.py | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/summarycode/generated.py b/src/summarycode/generated.py index c7c2da8b18d..36917764fe0 100644 --- a/src/summarycode/generated.py +++ b/src/summarycode/generated.py @@ -157,12 +157,24 @@ def generated_scanner(location, **kwargs): 'function: static codebooks autogenerated by', # yarn lock - 'THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.', - 'This file has been automatically created by', - 'Please do not edit this file, all changes will be lost', + 'this is an autogenerated file. do not edit this file directly.', + 'this file has been automatically created by', + 'please do not edit this file, all changes will be lost', + + # thrift + 'this is an automatically-generated file.', + 'it could get re-generated if the allow_idl_generation flag is on', + + # aws sdk ruby + 'warning about generated code', + 'this file is generated. see the contributing guide for more information', + 'this file is generated', + + # seen in Go files: + 'code generated file. do not edit', # protoc - 'Generated by the protocol buffer compiler. DO NOT EDIT!', + 'generated by the protocol buffer compiler. do not edit!', )) From e7bc24e4ea75195d22f032f5ab468da8c5d6ba2a Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 4 Jun 2021 17:18:47 +0200 Subject: [PATCH 522/709] Add new misc. generated code clues Signed-off-by: Philippe Ombredanne --- src/summarycode/generated.py | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/summarycode/generated.py b/src/summarycode/generated.py index 36917764fe0..b544acae958 100644 --- a/src/summarycode/generated.py +++ b/src/summarycode/generated.py @@ -9,7 +9,6 @@ from itertools import islice - from commoncode.datautils import Boolean from commoncode.text import toascii from plugincode.scan import ScanPlugin @@ -19,7 +18,7 @@ import typecode.contenttype """ -Tag files as generated. +Tag files as generated code based on conspicuous strings. """ # Tracing flag @@ -77,7 +76,7 @@ def generated_scanner(location, **kwargs): return dict(is_generated=is_generated) -GENERATED_KEYWORDS = tuple(g.lower() for g in ( +GENERATED_KEYWORDS_LOWERED = tuple(g.lower() for g in ( 'generated by', 'auto-generated', 'automatically generated', @@ -160,7 +159,7 @@ def generated_scanner(location, **kwargs): 'this is an autogenerated file. do not edit this file directly.', 'this file has been automatically created by', 'please do not edit this file, all changes will be lost', - + # thrift 'this is an automatically-generated file.', 'it could get re-generated if the allow_idl_generation flag is on', @@ -172,22 +171,24 @@ def generated_scanner(location, **kwargs): # seen in Go files: 'code generated file. do not edit', + 'code generated by running "go generate". do not edit.' # protoc - 'generated by the protocol buffer compiler. do not edit!', - + 'generated by the protocol buffer compiler. do not edit!', + 'generated by the protocol buffer compiler.', )) -max_lines = 150 - - -def get_generated_code_hint(location, generated_keywords=GENERATED_KEYWORDS): +def get_generated_code_hint( + location, + max_lines=150, + generated_keywords=GENERATED_KEYWORDS_LOWERED +): """ Return a line of extracted text from a file if that file is likely generated source code. - for each of the the first few lines of a source code file + for each of the first few lines of a source code file if generated keywords are found in the line as lowercase yield the line text as a 'potentially_ generated' annotation """ @@ -196,9 +197,8 @@ def get_generated_code_hint(location, generated_keywords=GENERATED_KEYWORDS): return with open(location, 'rb') as filein: for line in islice(filein, max_lines): - text = toascii(line.strip()) - textl = text.lower() - if any(kw in textl for kw in generated_keywords): + text = toascii(line.strip()).lower() + if any(kw in text.lower() for kw in generated_keywords): # yield only the first 100 chars.. yield text[:100] From adc8a66ad8695ee07c835c7a6fe0d52427d0b0d4 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 17 Jun 2021 17:03:44 +0200 Subject: [PATCH 523/709] Update expected results for generated code Signed-off-by: Philippe Ombredanne --- tests/summarycode/test_generated.py | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/tests/summarycode/test_generated.py b/tests/summarycode/test_generated.py index e7cc81a0957..84fd336605e 100644 --- a/tests/summarycode/test_generated.py +++ b/tests/summarycode/test_generated.py @@ -20,9 +20,9 @@ class TestGeneratedCode(FileBasedTesting): def test_basic(self): expected = [ - '// This file was generated by the JavaTM Architecture ' - 'for XML Binding(JAXB) Reference Implementation', - '// Generated on: 2011.08.01 at 11:35:59 AM CEST' + '// This file was generated by the JavaTM Architecture '.lower() + + 'for XML Binding(JAXB) Reference Implementation'.lower(), + '// Generated on: 2011.08.01 at 11:35:59 AM CEST'.lower() ] test_file = self.get_test_loc('generated/simple/generated_1.java') result = list(generated.get_generated_code_hint(location=test_file)) @@ -30,44 +30,44 @@ def test_basic(self): def test_basic_alt(self): expected = [ - '// This file was generated by the JavaTM Architecture ' - 'for XML Binding(JAXB) Reference Implementation', - '// Generated on: 2013.11.15 at 04:17:00 PM CET' + '// This file was generated by the JavaTM Architecture '.lower() + + 'for XML Binding(JAXB) Reference Implementation'.lower(), + '// Generated on: 2013.11.15 at 04:17:00 PM CET'.lower() ] test_file = self.get_test_loc('generated/simple/generated_3.java') result = list(generated.get_generated_code_hint(location=test_file)) assert result == expected def test_basic2(self): - expected = ['* This class was generated by the JAX-WS RI.'] + expected = ['* This class was generated by the JAX-WS RI.'.lower()] test_file = self.get_test_loc('generated/simple/generated_2.java') result = list(generated.get_generated_code_hint(location=test_file)) assert result == expected def test_basic3(self): - expected = ['/* This class was automatically generated'] + expected = ['/* This class was automatically generated'.lower()] test_file = self.get_test_loc('generated/simple/generated_4.java') result = list(generated.get_generated_code_hint(location=test_file)) assert result == expected def test_basic4(self): expected = [ - '*

The following schema fragment specifies the ' - 'expected content contained within this class.' + '*

The following schema fragment specifies the '.lower() + + 'expected content contained within this class.'.lower() ] test_file = self.get_test_loc('generated/simple/generated_5.java') result = list(generated.get_generated_code_hint(location=test_file)) assert result == expected def test_basic5(self): - expected = ['/* DO NOT EDIT THIS FILE - it is machine generated */'] + expected = ['/* DO NOT EDIT THIS FILE - it is machine generated */'.lower()] test_file = self.get_test_loc('generated/simple/generated_6.c') result = list(generated.get_generated_code_hint(location=test_file)) assert result == expected def test_configure(self): expected = [ - '# Generated by GNU Autoconf 2.64 for Apache CouchDB 1.0.1.' + '# Generated by GNU Autoconf 2.64 for Apache CouchDB 1.0.1.'.lower() ] test_file = self.get_test_loc('generated/simple/configure') result = list(generated.get_generated_code_hint(location=test_file)) @@ -75,7 +75,7 @@ def test_configure(self): def test_tomcat_jspc(self): expected = [ - ' + + + + 4.0.0 + + + org.jboss.shrinkwrap.resolver + shrinkwrap-resolver-bom + 3.0.1 + pom + ShrinkWrap Resolver Bill of Materials + Centralized dependencyManagement for the ShrinkWrap Resolver Project + http://www.jboss.org/shrinkwrap + + + + + Apache License, Version 2.0 + http://www.apache.org/licenses/LICENSE-2.0.txt + + + + + + scm:git:git://github.com/shrinkwrap/shrinkwrap.git + scm:git:git@github.com:shrinkwrap/shrinkwrap.git + https://github.com/shrinkwrap/shrinkwrap + 3.0.1 + + + + + jboss.org + JBoss.org Community + JBoss.org + http://www.jboss.org + + + + + + + https://repository.jboss.org/nexus/service/local/staging/deploy/maven2/ + https://repository.jboss.org/nexus/content/repositories/snapshots/ + 3.3.9 + + + + + + + + + org.jboss.shrinkwrap.resolver + shrinkwrap-resolver-api + ${project.version} + + + org.jboss.shrinkwrap.resolver + shrinkwrap-resolver-spi + ${project.version} + + + org.jboss.shrinkwrap.resolver + shrinkwrap-resolver-api-maven + ${project.version} + + + org.jboss.shrinkwrap.resolver + shrinkwrap-resolver-spi-maven + ${project.version} + + + org.jboss.shrinkwrap.resolver + shrinkwrap-resolver-impl-maven + ${project.version} + + + org.jboss.shrinkwrap.resolver + shrinkwrap-resolver-api-maven-archive + ${project.version} + + + org.jboss.shrinkwrap.resolver + shrinkwrap-resolver-impl-maven-archive + ${project.version} + + + org.jboss.shrinkwrap.resolver + shrinkwrap-resolver-depchain + ${project.version} + pom + + + org.jboss.shrinkwrap.resolver + shrinkwrap-resolver-gradle-depchain + ${project.version} + pom + + + org.jboss.shrinkwrap.resolver + shrinkwrap-resolver-maven-plugin + ${project.version} + runtime + maven-plugin + + + org.jboss.shrinkwrap.resolver + shrinkwrap-resolver-api-gradle-embedded-archive + ${project.version} + + + org.jboss.shrinkwrap.resolver + shrinkwrap-resolver-impl-gradle-embedded-archive + ${project.version} + + + org.jboss.shrinkwrap.resolver + shrinkwrap-resolver-api-maven-embedded + ${project.version} + + + org.jboss.shrinkwrap.resolver + shrinkwrap-resolver-impl-maven-embedded + ${project.version} + + + + + org.apache.maven + maven + 3.3.9 + import + pom + + + + + + + + + + maven-release-plugin + + false + true + + + + + + + + + + gpg-sign + + + + + org.apache.maven.plugins + maven-gpg-plugin + + true + + + + + sign + + + + + + + + + + + + jboss-releases-repository + JBoss Releases Repository + ${jboss.releases.repo.url} + + + jboss-snapshots-repository + JBoss Snapshots Repository + ${jboss.snapshots.repo.url} + + + + diff --git a/tests/packagedcode/data/m2/depman/foo.pom.json b/tests/packagedcode/data/m2/depman/foo.pom.json new file mode 100644 index 00000000000..43e59df37b0 --- /dev/null +++ b/tests/packagedcode/data/m2/depman/foo.pom.json @@ -0,0 +1,163 @@ +{ + "model_version": "4.0.0", + "group_id": "org.jboss.shrinkwrap.resolver", + "artifact_id": "shrinkwrap-resolver-bom", + "version": "3.0.1", + "classifier": null, + "packaging": "pom", + "parent": {}, + "name": "ShrinkWrap Resolver Bill of Materials", + "description": "Centralized dependencyManagement for the ShrinkWrap Resolver Project", + "inception_year": null, + "url": "http://www.jboss.org/shrinkwrap", + "organization_name": null, + "organization_url": null, + "licenses": [ + { + "name": "Apache License, Version 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt", + "comments": null, + "distribution": null + } + ], + "developers": [ + { + "id": "jboss.org", + "name": "JBoss.org Community", + "email": null, + "url": null, + "organization": "JBoss.org", + "organization_url": "http://www.jboss.org", + "roles": [] + } + ], + "contributors": [], + "modules": [], + "mailing_lists": [], + "scm": { + "connection": "scm:git:git://github.com/shrinkwrap/shrinkwrap.git", + "developer_connection": null, + "url": "https://github.com/shrinkwrap/shrinkwrap", + "tag": "3.0.1" + }, + "issue_management": {}, + "ci_management": {}, + "distribution_management": { + "download_url": null, + "site": {}, + "repository": { + "id": "jboss-releases-repository", + "name": "JBoss Releases Repository", + "url": "${jboss.releases.repo.url}" + }, + "snapshot_repository": { + "id": "jboss-snapshots-repository", + "name": "JBoss Snapshots Repository", + "url": "${jboss.snapshots.repo.url}" + } + }, + "repositories": [], + "plugin_repositories": [], + "dependencies": { + "import": [ + { + "group_id": "org.apache.maven", + "artifact_id": "maven", + "version": "3.3.9", + "required": true + } + ], + "dependencyManagement": [ + { + "group_id": "org.jboss.shrinkwrap.resolver", + "artifact_id": "shrinkwrap-resolver-api", + "version": "3.0.1", + "required": true + }, + { + "group_id": "org.jboss.shrinkwrap.resolver", + "artifact_id": "shrinkwrap-resolver-spi", + "version": "3.0.1", + "required": true + }, + { + "group_id": "org.jboss.shrinkwrap.resolver", + "artifact_id": "shrinkwrap-resolver-api-maven", + "version": "3.0.1", + "required": true + }, + { + "group_id": "org.jboss.shrinkwrap.resolver", + "artifact_id": "shrinkwrap-resolver-spi-maven", + "version": "3.0.1", + "required": true + }, + { + "group_id": "org.jboss.shrinkwrap.resolver", + "artifact_id": "shrinkwrap-resolver-impl-maven", + "version": "3.0.1", + "required": true + }, + { + "group_id": "org.jboss.shrinkwrap.resolver", + "artifact_id": "shrinkwrap-resolver-api-maven-archive", + "version": "3.0.1", + "required": true + }, + { + "group_id": "org.jboss.shrinkwrap.resolver", + "artifact_id": "shrinkwrap-resolver-impl-maven-archive", + "version": "3.0.1", + "required": true + }, + { + "group_id": "org.jboss.shrinkwrap.resolver", + "artifact_id": "shrinkwrap-resolver-depchain", + "version": "3.0.1", + "required": true + }, + { + "group_id": "org.jboss.shrinkwrap.resolver", + "artifact_id": "shrinkwrap-resolver-gradle-depchain", + "version": "3.0.1", + "required": true + }, + { + "group_id": "org.jboss.shrinkwrap.resolver", + "artifact_id": "shrinkwrap-resolver-maven-plugin", + "version": "3.0.1", + "required": true + }, + { + "group_id": "org.jboss.shrinkwrap.resolver", + "artifact_id": "shrinkwrap-resolver-api-gradle-embedded-archive", + "version": "3.0.1", + "required": true + }, + { + "group_id": "org.jboss.shrinkwrap.resolver", + "artifact_id": "shrinkwrap-resolver-impl-gradle-embedded-archive", + "version": "3.0.1", + "required": true + }, + { + "group_id": "org.jboss.shrinkwrap.resolver", + "artifact_id": "shrinkwrap-resolver-api-maven-embedded", + "version": "3.0.1", + "required": true + }, + { + "group_id": "org.jboss.shrinkwrap.resolver", + "artifact_id": "shrinkwrap-resolver-impl-maven-embedded", + "version": "3.0.1", + "required": true + }, + { + "group_id": "org.apache.maven", + "artifact_id": "maven", + "version": "3.3.9", + "required": true + } + ] + } +} \ No newline at end of file diff --git a/tests/packagedcode/data/m2/depman/foo.pom.package.json b/tests/packagedcode/data/m2/depman/foo.pom.package.json new file mode 100644 index 00000000000..2a9a5068386 --- /dev/null +++ b/tests/packagedcode/data/m2/depman/foo.pom.package.json @@ -0,0 +1,182 @@ +{ + "type": "maven", + "namespace": "org.jboss.shrinkwrap.resolver", + "name": "shrinkwrap-resolver-bom", + "version": "3.0.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "Java", + "description": "ShrinkWrap Resolver Bill of Materials\nCentralized dependencyManagement for the ShrinkWrap Resolver Project", + "release_date": null, + "parties": [ + { + "type": "person", + "role": "developper", + "name": "JBoss.org Community", + "email": null, + "url": null + } + ], + "keywords": [], + "homepage_url": "http://www.jboss.org/shrinkwrap", + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": "https://github.com/shrinkwrap/shrinkwrap", + "vcs_url": "git://github.com/shrinkwrap/shrinkwrap.git", + "copyright": null, + "license_expression": "apache-2.0", + "declared_license": [ + { + "name": "Apache License, Version 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt", + "comments": null, + "distribution": null + } + ], + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:maven/org.apache.maven/maven@3.3.9", + "requirement": "3.3.9", + "scope": "import", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.jboss.shrinkwrap.resolver/shrinkwrap-resolver-api@3.0.1", + "requirement": "3.0.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.jboss.shrinkwrap.resolver/shrinkwrap-resolver-spi@3.0.1", + "requirement": "3.0.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.jboss.shrinkwrap.resolver/shrinkwrap-resolver-api-maven@3.0.1", + "requirement": "3.0.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.jboss.shrinkwrap.resolver/shrinkwrap-resolver-spi-maven@3.0.1", + "requirement": "3.0.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.jboss.shrinkwrap.resolver/shrinkwrap-resolver-impl-maven@3.0.1", + "requirement": "3.0.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.jboss.shrinkwrap.resolver/shrinkwrap-resolver-api-maven-archive@3.0.1", + "requirement": "3.0.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.jboss.shrinkwrap.resolver/shrinkwrap-resolver-impl-maven-archive@3.0.1", + "requirement": "3.0.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.jboss.shrinkwrap.resolver/shrinkwrap-resolver-depchain@3.0.1", + "requirement": "3.0.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.jboss.shrinkwrap.resolver/shrinkwrap-resolver-gradle-depchain@3.0.1", + "requirement": "3.0.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.jboss.shrinkwrap.resolver/shrinkwrap-resolver-maven-plugin@3.0.1", + "requirement": "3.0.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.jboss.shrinkwrap.resolver/shrinkwrap-resolver-api-gradle-embedded-archive@3.0.1", + "requirement": "3.0.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.jboss.shrinkwrap.resolver/shrinkwrap-resolver-impl-gradle-embedded-archive@3.0.1", + "requirement": "3.0.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.jboss.shrinkwrap.resolver/shrinkwrap-resolver-api-maven-embedded@3.0.1", + "requirement": "3.0.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.jboss.shrinkwrap.resolver/shrinkwrap-resolver-impl-maven-embedded@3.0.1", + "requirement": "3.0.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven@3.3.9", + "requirement": "3.3.9", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [ + "pkg:maven/org.jboss.shrinkwrap.resolver/shrinkwrap-resolver-bom@3.0.1?classifier=sources" + ], + "extra_data": {}, + "purl": "pkg:maven/org.jboss.shrinkwrap.resolver/shrinkwrap-resolver-bom@3.0.1", + "repository_homepage_url": "https://repo1.maven.org/maven2/org/jboss/shrinkwrap/resolver/shrinkwrap-resolver-bom/3.0.1/", + "repository_download_url": "https://repo1.maven.org/maven2/org/jboss/shrinkwrap/resolver/shrinkwrap-resolver-bom/3.0.1/shrinkwrap-resolver-bom-3.0.1.jar", + "api_data_url": "https://repo1.maven.org/maven2/org/jboss/shrinkwrap/resolver/shrinkwrap-resolver-bom/3.0.1/shrinkwrap-resolver-bom-3.0.1.pom" +} \ No newline at end of file diff --git a/tests/packagedcode/data/m2/digester/commons-digester/1.6/commons-digester-1.6.pom.package.json b/tests/packagedcode/data/m2/digester/commons-digester/1.6/commons-digester-1.6.pom.package.json index 64725728b39..51584b27458 100644 --- a/tests/packagedcode/data/m2/digester/commons-digester/1.6/commons-digester-1.6.pom.package.json +++ b/tests/packagedcode/data/m2/digester/commons-digester/1.6/commons-digester-1.6.pom.package.json @@ -27,44 +27,44 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/commons-beanutils/commons-beanutils", + "purl": "pkg:maven/commons-beanutils/commons-beanutils@1.6", "requirement": "1.6", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-logging/commons-logging", + "purl": "pkg:maven/commons-logging/commons-logging@1.0", "requirement": "1.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-collections/commons-collections", + "purl": "pkg:maven/commons-collections/commons-collections@2.1", "requirement": "2.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/xml-apis/xml-apis", + "purl": "pkg:maven/xml-apis/xml-apis@1.0.b2", "requirement": "1.0.b2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/digester/commons-digester/1.8/commons-digester-1.8.pom.package.json b/tests/packagedcode/data/m2/digester/commons-digester/1.8/commons-digester-1.8.pom.package.json index ada1e244f66..308c03be3a7 100644 --- a/tests/packagedcode/data/m2/digester/commons-digester/1.8/commons-digester-1.8.pom.package.json +++ b/tests/packagedcode/data/m2/digester/commons-digester/1.8/commons-digester-1.8.pom.package.json @@ -196,36 +196,36 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/commons-beanutils/commons-beanutils", + "purl": "pkg:maven/commons-beanutils/commons-beanutils@1.7.0", "requirement": "1.7.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-logging/commons-logging", + "purl": "pkg:maven/commons-logging/commons-logging@1.1", "requirement": "1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/xml-apis/xml-apis", + "purl": "pkg:maven/xml-apis/xml-apis@1.0.b2", "requirement": "1.0.b2", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/dom4j/dom4j/1.6.1/dom4j-1.6.1.pom.package.json b/tests/packagedcode/data/m2/dom4j/dom4j/1.6.1/dom4j-1.6.1.pom.package.json index 1162d771356..67547131b72 100644 --- a/tests/packagedcode/data/m2/dom4j/dom4j/1.6.1/dom4j-1.6.1.pom.package.json +++ b/tests/packagedcode/data/m2/dom4j/dom4j/1.6.1/dom4j-1.6.1.pom.package.json @@ -140,100 +140,100 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/jaxme/jaxme-api", + "purl": "pkg:maven/jaxme/jaxme-api@0.3", "requirement": "0.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/jaxen/jaxen", + "purl": "pkg:maven/jaxen/jaxen@1.1-beta-6", "requirement": "1.1-beta-6", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/msv/xsdlib", + "purl": "pkg:maven/msv/xsdlib@20030807", "requirement": "20030807", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/msv/relaxngDatatype", + "purl": "pkg:maven/msv/relaxngDatatype@20030807", "requirement": "20030807", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/pull-parser/pull-parser", + "purl": "pkg:maven/pull-parser/pull-parser@2", "requirement": "2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/xpp3/xpp3", + "purl": "pkg:maven/xpp3/xpp3@1.1.3.3", "requirement": "1.1.3.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/stax/stax-api", + "purl": "pkg:maven/stax/stax-api@1.0", "requirement": "1.0", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/xml-apis/xml-apis", + "purl": "pkg:maven/xml-apis/xml-apis@1.0.b2", "requirement": "1.0.b2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/junitperf/junitperf", + "purl": "pkg:maven/junitperf/junitperf@1.8", "requirement": "1.8", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/stax/stax-ri", + "purl": "pkg:maven/stax/stax-ri@1.0", "requirement": "1.0", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/xerces/xercesImpl", + "purl": "pkg:maven/xerces/xercesImpl@2.6.2", "requirement": "2.6.2", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/xalan/xalan", + "purl": "pkg:maven/xalan/xalan@2.5.1", "requirement": "2.5.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/doxia/doxia-core/1.0-alpha-4/doxia-core-1.0-alpha-4.pom.package.json b/tests/packagedcode/data/m2/doxia/doxia-core/1.0-alpha-4/doxia-core-1.0-alpha-4.pom.package.json index e64677d75c4..fb3e352015c 100644 --- a/tests/packagedcode/data/m2/doxia/doxia-core/1.0-alpha-4/doxia-core-1.0-alpha-4.pom.package.json +++ b/tests/packagedcode/data/m2/doxia/doxia-core/1.0-alpha-4/doxia-core-1.0-alpha-4.pom.package.json @@ -42,36 +42,36 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/oro/oro", + "purl": "pkg:maven/oro/oro@2.0.7", "requirement": "2.0.7", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/plexus/plexus-utils", + "purl": "pkg:maven/plexus/plexus-utils@1.0.2", "requirement": "1.0.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/doxia/doxia-sink-api", + "purl": "pkg:maven/doxia/doxia-sink-api@1.0-alpha-4", "requirement": "1.0-alpha-4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/plexus/plexus-container-default", + "purl": "pkg:maven/plexus/plexus-container-default@1.0-alpha-6", "requirement": "1.0-alpha-6", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/el/commons-el/1.0/commons-el-1.0.pom.package.json b/tests/packagedcode/data/m2/el/commons-el/1.0/commons-el-1.0.pom.package.json index b4f2d992cb8..3ff62ce1225 100644 --- a/tests/packagedcode/data/m2/el/commons-el/1.0/commons-el-1.0.pom.package.json +++ b/tests/packagedcode/data/m2/el/commons-el/1.0/commons-el-1.0.pom.package.json @@ -77,28 +77,28 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/servletapi/servletapi", + "purl": "pkg:maven/servletapi/servletapi@2.4-20040521", "requirement": "2.4-20040521", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/jspapi/jsp-api", + "purl": "pkg:maven/jspapi/jsp-api@2.0-20040521", "requirement": "2.0-20040521", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-logging/commons-logging", + "purl": "pkg:maven/commons-logging/commons-logging@1.0.3", "requirement": "1.0.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/fileupload/commons-fileupload/1.0/commons-fileupload-1.0.pom.package.json b/tests/packagedcode/data/m2/fileupload/commons-fileupload/1.0/commons-fileupload-1.0.pom.package.json index 01a8b55d8c2..130646835ba 100644 --- a/tests/packagedcode/data/m2/fileupload/commons-fileupload/1.0/commons-fileupload-1.0.pom.package.json +++ b/tests/packagedcode/data/m2/fileupload/commons-fileupload/1.0/commons-fileupload-1.0.pom.package.json @@ -77,20 +77,20 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/servletapi/servletapi", + "purl": "pkg:maven/servletapi/servletapi@2.3", "requirement": "2.3", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/httpunit/httpunit/1.6.2/httpunit-1.6.2.pom.package.json b/tests/packagedcode/data/m2/httpunit/httpunit/1.6.2/httpunit-1.6.2.pom.package.json index 4a6a97b7e4a..a2d41c76068 100644 --- a/tests/packagedcode/data/m2/httpunit/httpunit/1.6.2/httpunit-1.6.2.pom.package.json +++ b/tests/packagedcode/data/m2/httpunit/httpunit/1.6.2/httpunit-1.6.2.pom.package.json @@ -34,68 +34,68 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/xerces/xmlParserAPIs", + "purl": "pkg:maven/xerces/xmlParserAPIs@2.2.1", "requirement": "2.2.1", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/xerces/xercesImpl", + "purl": "pkg:maven/xerces/xercesImpl@2.6.2", "requirement": "2.6.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/nekohtml/nekohtml", + "purl": "pkg:maven/nekohtml/nekohtml@0.9.1", "requirement": "0.9.1", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/rhino/js", + "purl": "pkg:maven/rhino/js@1.5R4.1", "requirement": "1.5R4.1", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/servlet-api", + "purl": "pkg:maven/javax.servlet/servlet-api@2.3", "requirement": "2.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/jtidy/jtidy", + "purl": "pkg:maven/jtidy/jtidy@4aug2000r7-dev", "requirement": "4aug2000r7-dev", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.mail/mail", + "purl": "pkg:maven/javax.mail/mail@1.4", "requirement": "1.4", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/io/commons-io/1.3.1/commons-io-1.3.1.pom.package.json b/tests/packagedcode/data/m2/io/commons-io/1.3.1/commons-io-1.3.1.pom.package.json index bee27ff2095..23557b22ad3 100644 --- a/tests/packagedcode/data/m2/io/commons-io/1.3.1/commons-io-1.3.1.pom.package.json +++ b/tests/packagedcode/data/m2/io/commons-io/1.3.1/commons-io-1.3.1.pom.package.json @@ -231,12 +231,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/javax/servlet/jstl/1.1.0/jstl-1.1.0.pom.package.json b/tests/packagedcode/data/m2/javax/servlet/jstl/1.1.0/jstl-1.1.0.pom.package.json index a060d8167ca..b074d9e88af 100644 --- a/tests/packagedcode/data/m2/javax/servlet/jstl/1.1.0/jstl-1.1.0.pom.package.json +++ b/tests/packagedcode/data/m2/javax/servlet/jstl/1.1.0/jstl-1.1.0.pom.package.json @@ -27,12 +27,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/javax.servlet/jsp-api", + "purl": "pkg:maven/javax.servlet/jsp-api@2.0", "requirement": "2.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/lang/commons-lang/2.1/commons-lang-2.1.pom.package.json b/tests/packagedcode/data/m2/lang/commons-lang/2.1/commons-lang-2.1.pom.package.json index b5a6502f8c9..f34a185aea3 100644 --- a/tests/packagedcode/data/m2/lang/commons-lang/2.1/commons-lang-2.1.pom.package.json +++ b/tests/packagedcode/data/m2/lang/commons-lang/2.1/commons-lang-2.1.pom.package.json @@ -539,12 +539,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/lang/commons-lang/2.3/commons-lang-2.3.pom.package.json b/tests/packagedcode/data/m2/lang/commons-lang/2.3/commons-lang-2.3.pom.package.json index 62ee6235e99..5723a9191b5 100644 --- a/tests/packagedcode/data/m2/lang/commons-lang/2.3/commons-lang-2.3.pom.package.json +++ b/tests/packagedcode/data/m2/lang/commons-lang/2.3/commons-lang-2.3.pom.package.json @@ -616,12 +616,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/lang/commons-lang/2.4/commons-lang-2.4.pom.package.json b/tests/packagedcode/data/m2/lang/commons-lang/2.4/commons-lang-2.4.pom.package.json index 93a59cc214c..17e1cfb15af 100644 --- a/tests/packagedcode/data/m2/lang/commons-lang/2.4/commons-lang-2.4.pom.package.json +++ b/tests/packagedcode/data/m2/lang/commons-lang/2.4/commons-lang-2.4.pom.package.json @@ -616,12 +616,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/log4j/log4j/1.2.15/log4j-1.2.15.pom.package.json b/tests/packagedcode/data/m2/log4j/log4j/1.2.15/log4j-1.2.15.pom.package.json index bbdd382e87a..8e77b51e19d 100644 --- a/tests/packagedcode/data/m2/log4j/log4j/1.2.15/log4j-1.2.15.pom.package.json +++ b/tests/packagedcode/data/m2/log4j/log4j/1.2.15/log4j-1.2.15.pom.package.json @@ -42,52 +42,52 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/javax.mail/mail", + "purl": "pkg:maven/javax.mail/mail@1.4", "requirement": "1.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/javax.jms/jms", + "purl": "pkg:maven/javax.jms/jms@1.1", "requirement": "1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/com.sun.jdmk/jmxtools", + "purl": "pkg:maven/com.sun.jdmk/jmxtools@1.2.1", "requirement": "1.2.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/com.sun.jmx/jmxri", + "purl": "pkg:maven/com.sun.jmx/jmxri@1.2.1", "requirement": "1.2.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/oro/oro", + "purl": "pkg:maven/oro/oro@2.0.8", "requirement": "2.0.8", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/logging/commons-logging/1.0.3/commons-logging-1.0.3.pom.package.json b/tests/packagedcode/data/m2/logging/commons-logging/1.0.3/commons-logging-1.0.3.pom.package.json index baf7fbf6b2f..dabe15c8fb9 100644 --- a/tests/packagedcode/data/m2/logging/commons-logging/1.0.3/commons-logging-1.0.3.pom.package.json +++ b/tests/packagedcode/data/m2/logging/commons-logging/1.0.3/commons-logging-1.0.3.pom.package.json @@ -27,28 +27,28 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/log4j/log4j", + "purl": "pkg:maven/log4j/log4j@1.2.6", "requirement": "1.2.6", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/logkit/logkit", + "purl": "pkg:maven/logkit/logkit@1.0.1", "requirement": "1.0.1", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.7", "requirement": "3.7", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/logging/commons-logging/1.0.4/commons-logging-1.0.4.pom.package.json b/tests/packagedcode/data/m2/logging/commons-logging/1.0.4/commons-logging-1.0.4.pom.package.json index f3dddc5dcbd..b852cb3a97a 100644 --- a/tests/packagedcode/data/m2/logging/commons-logging/1.0.4/commons-logging-1.0.4.pom.package.json +++ b/tests/packagedcode/data/m2/logging/commons-logging/1.0.4/commons-logging-1.0.4.pom.package.json @@ -105,36 +105,36 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/log4j/log4j", + "purl": "pkg:maven/log4j/log4j@1.2.6", "requirement": "1.2.6", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/logkit/logkit", + "purl": "pkg:maven/logkit/logkit@1.0.1", "requirement": "1.0.1", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/avalon-framework/avalon-framework", + "purl": "pkg:maven/avalon-framework/avalon-framework@4.1.3", "requirement": "4.1.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.7", "requirement": "3.7", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/logging/commons-logging/1.1.1/commons-logging-1.1.1.pom.package.json b/tests/packagedcode/data/m2/logging/commons-logging/1.1.1/commons-logging-1.1.1.pom.package.json index 1c1dbe91920..ca9d893b43e 100644 --- a/tests/packagedcode/data/m2/logging/commons-logging/1.1.1/commons-logging-1.1.1.pom.package.json +++ b/tests/packagedcode/data/m2/logging/commons-logging/1.1.1/commons-logging-1.1.1.pom.package.json @@ -112,44 +112,44 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/log4j/log4j", + "purl": "pkg:maven/log4j/log4j@1.2.12", "requirement": "1.2.12", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/logkit/logkit", + "purl": "pkg:maven/logkit/logkit@1.0.1", "requirement": "1.0.1", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/avalon-framework/avalon-framework", + "purl": "pkg:maven/avalon-framework/avalon-framework@4.1.3", "requirement": "4.1.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/servlet-api", + "purl": "pkg:maven/javax.servlet/servlet-api@2.3", "requirement": "2.3", "scope": "provided", "is_runtime": true, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/logging/commons-logging/1.1/commons-logging-1.1.pom.package.json b/tests/packagedcode/data/m2/logging/commons-logging/1.1/commons-logging-1.1.pom.package.json index b936b77d489..27cd34fcce9 100644 --- a/tests/packagedcode/data/m2/logging/commons-logging/1.1/commons-logging-1.1.pom.package.json +++ b/tests/packagedcode/data/m2/logging/commons-logging/1.1/commons-logging-1.1.pom.package.json @@ -126,44 +126,44 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/log4j/log4j", + "purl": "pkg:maven/log4j/log4j@1.2.12", "requirement": "1.2.12", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/logkit/logkit", + "purl": "pkg:maven/logkit/logkit@1.0.1", "requirement": "1.0.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/avalon-framework/avalon-framework", + "purl": "pkg:maven/avalon-framework/avalon-framework@4.1.3", "requirement": "4.1.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/servlet-api", + "purl": "pkg:maven/javax.servlet/servlet-api@2.3", "requirement": "2.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/math/commons-math/1.2/commons-math-1.2.pom.package.json b/tests/packagedcode/data/m2/math/commons-math/1.2/commons-math-1.2.pom.package.json index 04c188a5b26..2bf5e654a99 100644 --- a/tests/packagedcode/data/m2/math/commons-math/1.2/commons-math-1.2.pom.package.json +++ b/tests/packagedcode/data/m2/math/commons-math/1.2/commons-math-1.2.pom.package.json @@ -196,28 +196,28 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.2", "requirement": "3.8.2", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-logging/commons-logging", + "purl": "pkg:maven/commons-logging/commons-logging@1.0.4", "requirement": "1.0.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-discovery/commons-discovery", + "purl": "pkg:maven/commons-discovery/commons-discovery@0.2", "requirement": "0.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/net/sf/ehcache/ehcache/1.2.3/ehcache-1.2.3.pom.package.json b/tests/packagedcode/data/m2/net/sf/ehcache/ehcache/1.2.3/ehcache-1.2.3.pom.package.json index e9bc1ff4b98..44cb7bb2054 100644 --- a/tests/packagedcode/data/m2/net/sf/ehcache/ehcache/1.2.3/ehcache-1.2.3.pom.package.json +++ b/tests/packagedcode/data/m2/net/sf/ehcache/ehcache/1.2.3/ehcache-1.2.3.pom.package.json @@ -84,68 +84,68 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/commons-logging/commons-logging", + "purl": "pkg:maven/commons-logging/commons-logging@1.0.4", "requirement": "1.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-collections/commons-collections", + "purl": "pkg:maven/commons-collections/commons-collections@2.1", "requirement": "2.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.hibernate/hibernate", + "purl": "pkg:maven/org.hibernate/hibernate@3.2.0.cr3", "requirement": "3.2.0.cr3", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/net.sf.hibernate/hibernate", + "purl": "pkg:maven/net.sf.hibernate/hibernate@2.1.8", "requirement": "2.1.8", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/servlet-api", + "purl": "pkg:maven/javax.servlet/servlet-api@2.4", "requirement": "2.4", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/httpunit/httpunit", + "purl": "pkg:maven/httpunit/httpunit@1.6", "requirement": "1.6", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-httpclient/commons-httpclient", + "purl": "pkg:maven/commons-httpclient/commons-httpclient@3.0.1", "requirement": "3.0.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/net/sf/kxml/kxml2/2.2.2/kxml2-2.2.2.pom.package.json b/tests/packagedcode/data/m2/net/sf/kxml/kxml2/2.2.2/kxml2-2.2.2.pom.package.json index 24d9e482758..12083b15f18 100644 --- a/tests/packagedcode/data/m2/net/sf/kxml/kxml2/2.2.2/kxml2-2.2.2.pom.package.json +++ b/tests/packagedcode/data/m2/net/sf/kxml/kxml2/2.2.2/kxml2-2.2.2.pom.package.json @@ -49,20 +49,20 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/xmlpull/xmlpull", + "purl": "pkg:maven/xmlpull/xmlpull@1.1.3.1", "requirement": "1.1.3.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.2", "requirement": "3.8.2", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/acegisecurity/acegi-security-parent/1.0.5/acegi-security-parent-1.0.5.pom.json b/tests/packagedcode/data/m2/org/acegisecurity/acegi-security-parent/1.0.5/acegi-security-parent-1.0.5.pom.json index f66607035ea..91b6a95f23a 100644 --- a/tests/packagedcode/data/m2/org/acegisecurity/acegi-security-parent/1.0.5/acegi-security-parent-1.0.5.pom.json +++ b/tests/packagedcode/data/m2/org/acegisecurity/acegi-security-parent/1.0.5/acegi-security-parent-1.0.5.pom.json @@ -327,6 +327,50 @@ "version": "3.8.1", "required": true } + ], + "dependencyManagement": [ + { + "group_id": "org.springframework", + "artifact_id": "spring-core", + "version": "1.2.9", + "required": true + }, + { + "group_id": "org.springframework", + "artifact_id": "spring-mock", + "version": "1.2.9", + "required": true + }, + { + "group_id": "org.springframework", + "artifact_id": "spring-remoting", + "version": "1.2.9", + "required": true + }, + { + "group_id": "org.springframework", + "artifact_id": "spring-web", + "version": "1.2.9", + "required": true + }, + { + "group_id": "org.springframework", + "artifact_id": "spring-jdbc", + "version": "1.2.9", + "required": true + }, + { + "group_id": "org.springframework", + "artifact_id": "spring-support", + "version": "1.2.9", + "required": true + }, + { + "group_id": "log4j", + "artifact_id": "log4j", + "version": "1.2.9", + "required": false + } ] } } \ No newline at end of file diff --git a/tests/packagedcode/data/m2/org/acegisecurity/acegi-security-parent/1.0.5/acegi-security-parent-1.0.5.pom.package.json b/tests/packagedcode/data/m2/org/acegisecurity/acegi-security-parent/1.0.5/acegi-security-parent-1.0.5.pom.package.json index 97aa6972c99..09d70c7b9e1 100644 --- a/tests/packagedcode/data/m2/org/acegisecurity/acegi-security-parent/1.0.5/acegi-security-parent-1.0.5.pom.package.json +++ b/tests/packagedcode/data/m2/org/acegisecurity/acegi-security-parent/1.0.5/acegi-security-parent-1.0.5.pom.package.json @@ -238,12 +238,68 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true + }, + { + "purl": "pkg:maven/org.springframework/spring-core@1.2.9", + "requirement": "1.2.9", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.springframework/spring-mock@1.2.9", + "requirement": "1.2.9", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.springframework/spring-remoting@1.2.9", + "requirement": "1.2.9", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.springframework/spring-web@1.2.9", + "requirement": "1.2.9", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.springframework/spring-jdbc@1.2.9", + "requirement": "1.2.9", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.springframework/spring-support@1.2.9", + "requirement": "1.2.9", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/log4j/log4j@1.2.9", + "requirement": "1.2.9", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/acegisecurity/acegi-security-parent/1.0.7/acegi-security-parent-1.0.7.pom.json b/tests/packagedcode/data/m2/org/acegisecurity/acegi-security-parent/1.0.7/acegi-security-parent-1.0.7.pom.json index 54900ecb0db..cf82544c079 100644 --- a/tests/packagedcode/data/m2/org/acegisecurity/acegi-security-parent/1.0.7/acegi-security-parent-1.0.7.pom.json +++ b/tests/packagedcode/data/m2/org/acegisecurity/acegi-security-parent/1.0.7/acegi-security-parent-1.0.7.pom.json @@ -333,6 +333,50 @@ "version": "3.8.1", "required": true } + ], + "dependencyManagement": [ + { + "group_id": "org.springframework", + "artifact_id": "spring-core", + "version": "1.2.9", + "required": true + }, + { + "group_id": "org.springframework", + "artifact_id": "spring-mock", + "version": "1.2.9", + "required": true + }, + { + "group_id": "org.springframework", + "artifact_id": "spring-remoting", + "version": "1.2.9", + "required": true + }, + { + "group_id": "org.springframework", + "artifact_id": "spring-web", + "version": "1.2.9", + "required": true + }, + { + "group_id": "org.springframework", + "artifact_id": "spring-jdbc", + "version": "1.2.9", + "required": true + }, + { + "group_id": "org.springframework", + "artifact_id": "spring-support", + "version": "1.2.9", + "required": true + }, + { + "group_id": "log4j", + "artifact_id": "log4j", + "version": "1.2.9", + "required": false + } ] } } \ No newline at end of file diff --git a/tests/packagedcode/data/m2/org/acegisecurity/acegi-security-parent/1.0.7/acegi-security-parent-1.0.7.pom.package.json b/tests/packagedcode/data/m2/org/acegisecurity/acegi-security-parent/1.0.7/acegi-security-parent-1.0.7.pom.package.json index d9ce2263396..cf57c61fc81 100644 --- a/tests/packagedcode/data/m2/org/acegisecurity/acegi-security-parent/1.0.7/acegi-security-parent-1.0.7.pom.package.json +++ b/tests/packagedcode/data/m2/org/acegisecurity/acegi-security-parent/1.0.7/acegi-security-parent-1.0.7.pom.package.json @@ -238,12 +238,68 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true + }, + { + "purl": "pkg:maven/org.springframework/spring-core@1.2.9", + "requirement": "1.2.9", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.springframework/spring-mock@1.2.9", + "requirement": "1.2.9", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.springframework/spring-remoting@1.2.9", + "requirement": "1.2.9", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.springframework/spring-web@1.2.9", + "requirement": "1.2.9", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.springframework/spring-jdbc@1.2.9", + "requirement": "1.2.9", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.springframework/spring-support@1.2.9", + "requirement": "1.2.9", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/log4j/log4j@1.2.9", + "requirement": "1.2.9", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/acegisecurity/acegi-security/1.0.5/acegi-security-1.0.5.pom.package.json b/tests/packagedcode/data/m2/org/acegisecurity/acegi-security/1.0.5/acegi-security-1.0.5.pom.package.json index f0d2aecc86d..0b41ebabf98 100644 --- a/tests/packagedcode/data/m2/org/acegisecurity/acegi-security/1.0.5/acegi-security-1.0.5.pom.package.json +++ b/tests/packagedcode/data/m2/org/acegisecurity/acegi-security/1.0.5/acegi-security-1.0.5.pom.package.json @@ -30,145 +30,145 @@ "purl": "pkg:maven/org.springframework/spring-core", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.springframework/spring-remoting", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.springframework/spring-jdbc", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.springframework/spring-web", "requirement": null, "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": null }, { "purl": "pkg:maven/org.springframework/spring-mock", "requirement": null, "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": null }, { - "purl": "pkg:maven/org.springframework/spring-ldap", + "purl": "pkg:maven/org.springframework/spring-ldap@1.1.2", "requirement": "1.1.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/net.sf.ehcache/ehcache", + "purl": "pkg:maven/net.sf.ehcache/ehcache@1.2.4", "requirement": "1.2.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/cas/casclient", + "purl": "pkg:maven/cas/casclient@2.0.11", "requirement": "2.0.11", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-lang/commons-lang", + "purl": "pkg:maven/commons-lang/commons-lang@2.1", "requirement": "2.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-logging/commons-logging", + "purl": "pkg:maven/commons-logging/commons-logging@1.0.4", "requirement": "1.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-codec/commons-codec", + "purl": "pkg:maven/commons-codec/commons-codec@1.3", "requirement": "1.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/oro/oro", + "purl": "pkg:maven/oro/oro@2.0.8", "requirement": "2.0.8", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-collections/commons-collections", + "purl": "pkg:maven/commons-collections/commons-collections@3.1", "requirement": "3.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/aspectj/aspectjrt", + "purl": "pkg:maven/aspectj/aspectjrt@1.2", "requirement": "1.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/jsp-api", + "purl": "pkg:maven/javax.servlet/jsp-api@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/servlet-api", + "purl": "pkg:maven/javax.servlet/servlet-api@2.4", "requirement": "2.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/taglibs/standard", + "purl": "pkg:maven/taglibs/standard@1.0.6", "requirement": "1.0.6", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { "purl": "pkg:maven/log4j/log4j", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.springframework/spring-support", @@ -176,39 +176,39 @@ "scope": "runtime", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": null }, { - "purl": "pkg:maven/hsqldb/hsqldb", + "purl": "pkg:maven/hsqldb/hsqldb@1.8.0.4", "requirement": "1.8.0.4", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.directory.server/apacheds-core", + "purl": "pkg:maven/org.apache.directory.server/apacheds-core@1.0.0", "requirement": "1.0.0", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.slf4j/slf4j-log4j12", + "purl": "pkg:maven/org.slf4j/slf4j-log4j12@1.0.1", "requirement": "1.0.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/jmock/jmock", + "purl": "pkg:maven/jmock/jmock@1.0.1", "requirement": "1.0.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/acegisecurity/acegi-security/1.0.7/acegi-security-1.0.7.pom.package.json b/tests/packagedcode/data/m2/org/acegisecurity/acegi-security/1.0.7/acegi-security-1.0.7.pom.package.json index fa2ceaef4b4..92434f4990a 100644 --- a/tests/packagedcode/data/m2/org/acegisecurity/acegi-security/1.0.7/acegi-security-1.0.7.pom.package.json +++ b/tests/packagedcode/data/m2/org/acegisecurity/acegi-security/1.0.7/acegi-security-1.0.7.pom.package.json @@ -30,145 +30,145 @@ "purl": "pkg:maven/org.springframework/spring-core", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.springframework/spring-remoting", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.springframework/spring-jdbc", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.springframework/spring-web", "requirement": null, "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": null }, { "purl": "pkg:maven/org.springframework/spring-mock", "requirement": null, "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": null }, { - "purl": "pkg:maven/org.springframework/spring-ldap", + "purl": "pkg:maven/org.springframework/spring-ldap@1.1.2", "requirement": "1.1.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/net.sf.ehcache/ehcache", + "purl": "pkg:maven/net.sf.ehcache/ehcache@1.2.4", "requirement": "1.2.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/cas/casclient", + "purl": "pkg:maven/cas/casclient@2.0.11", "requirement": "2.0.11", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-lang/commons-lang", + "purl": "pkg:maven/commons-lang/commons-lang@2.1", "requirement": "2.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-logging/commons-logging", + "purl": "pkg:maven/commons-logging/commons-logging@1.0.4", "requirement": "1.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-codec/commons-codec", + "purl": "pkg:maven/commons-codec/commons-codec@1.3", "requirement": "1.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/oro/oro", + "purl": "pkg:maven/oro/oro@2.0.8", "requirement": "2.0.8", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-collections/commons-collections", + "purl": "pkg:maven/commons-collections/commons-collections@3.1", "requirement": "3.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/aspectj/aspectjrt", + "purl": "pkg:maven/aspectj/aspectjrt@1.2", "requirement": "1.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/jsp-api", + "purl": "pkg:maven/javax.servlet/jsp-api@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/servlet-api", + "purl": "pkg:maven/javax.servlet/servlet-api@2.4", "requirement": "2.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/taglibs/standard", + "purl": "pkg:maven/taglibs/standard@1.0.6", "requirement": "1.0.6", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { "purl": "pkg:maven/log4j/log4j", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.springframework/spring-support", @@ -176,39 +176,39 @@ "scope": "runtime", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": null }, { - "purl": "pkg:maven/hsqldb/hsqldb", + "purl": "pkg:maven/hsqldb/hsqldb@1.8.0.4", "requirement": "1.8.0.4", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.directory.server/apacheds-core", + "purl": "pkg:maven/org.apache.directory.server/apacheds-core@1.0.0", "requirement": "1.0.0", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.slf4j/slf4j-log4j12", + "purl": "pkg:maven/org.slf4j/slf4j-log4j12@1.0.1", "requirement": "1.0.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/jmock/jmock", + "purl": "pkg:maven/jmock/jmock@1.0.1", "requirement": "1.0.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/ajax4jsf/ajax4jsf/1.1.1/ajax4jsf-1.1.1.pom.package.json b/tests/packagedcode/data/m2/org/ajax4jsf/ajax4jsf/1.1.1/ajax4jsf-1.1.1.pom.package.json index a8d859d41ee..0e54f31e5c5 100644 --- a/tests/packagedcode/data/m2/org/ajax4jsf/ajax4jsf/1.1.1/ajax4jsf-1.1.1.pom.package.json +++ b/tests/packagedcode/data/m2/org/ajax4jsf/ajax4jsf/1.1.1/ajax4jsf-1.1.1.pom.package.json @@ -27,132 +27,132 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/opensymphony/oscache", + "purl": "pkg:maven/opensymphony/oscache@2.3", "requirement": "2.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/com.sun.facelets/jsf-facelets", + "purl": "pkg:maven/com.sun.facelets/jsf-facelets@1.1.11", "requirement": "1.1.11", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/nekohtml/nekohtml", + "purl": "pkg:maven/nekohtml/nekohtml@0.9.5", "requirement": "0.9.5", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/net.sf.json-lib/json-lib", + "purl": "pkg:maven/net.sf.json-lib/json-lib@0.9", "requirement": "0.9", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-logging/commons-logging", + "purl": "pkg:maven/commons-logging/commons-logging@1.0.4", "requirement": "1.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/log4j/log4j", + "purl": "pkg:maven/log4j/log4j@1.2.14", "requirement": "1.2.14", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-beanutils/commons-beanutils", + "purl": "pkg:maven/commons-beanutils/commons-beanutils@1.7.0", "requirement": "1.7.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-digester/commons-digester", + "purl": "pkg:maven/commons-digester/commons-digester@1.8", "requirement": "1.8", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-collections/commons-collections", + "purl": "pkg:maven/commons-collections/commons-collections@3.2", "requirement": "3.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/javax.faces/jsf-api", + "purl": "pkg:maven/javax.faces/jsf-api@1.1_02", "requirement": "1.1_02", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/jstl", + "purl": "pkg:maven/javax.servlet/jstl@1.0", "requirement": "1.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/javax.el/el-api", + "purl": "pkg:maven/javax.el/el-api@1.0", "requirement": "1.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/servlet-api", + "purl": "pkg:maven/javax.servlet/servlet-api@2.4", "requirement": "2.4", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/jsp-api", + "purl": "pkg:maven/javax.servlet/jsp-api@2.0", "requirement": "2.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.faces/jsf-impl", + "purl": "pkg:maven/javax.faces/jsf-impl@1.1_02", "requirement": "1.1_02", "scope": "runtime", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/commons/commons-jaxrs/1.22/commons-jaxrs-1.22.pom.package.json b/tests/packagedcode/data/m2/org/apache/commons/commons-jaxrs/1.22/commons-jaxrs-1.22.pom.package.json index 7274d18af3a..9f3c83a5533 100644 --- a/tests/packagedcode/data/m2/org/apache/commons/commons-jaxrs/1.22/commons-jaxrs-1.22.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/commons/commons-jaxrs/1.22/commons-jaxrs-1.22.pom.package.json @@ -77,148 +77,148 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/javax.mail/javax.mail-api", + "purl": "pkg:maven/javax.mail/javax.mail-api@1.4.5", "requirement": "1.4.5", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/bouncycastle/bcprov-jdk16", + "purl": "pkg:maven/bouncycastle/bcprov-jdk16@140", "requirement": "140", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/com.fasterxml.jackson.core/jackson-databind", + "purl": "pkg:maven/com.fasterxml.jackson.core/jackson-databind@2.8.8", "requirement": "2.8.8", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/javax/javaee-api", + "purl": "pkg:maven/javax/javaee-api@7.0", "requirement": "7.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/com.fasterxml.jackson.core/jackson-annotations", + "purl": "pkg:maven/com.fasterxml.jackson.core/jackson-annotations@2.8.8", "requirement": "2.8.8", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/com.fasterxml.jackson.module/jackson-module-jaxb-annotations", + "purl": "pkg:maven/com.fasterxml.jackson.module/jackson-module-jaxb-annotations@2.8.8", "requirement": "2.8.8", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-net/commons-net", + "purl": "pkg:maven/commons-net/commons-net@3.4", "requirement": "3.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.slf4j/slf4j-api", + "purl": "pkg:maven/org.slf4j/slf4j-api@1.7.25", "requirement": "1.7.25", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.antlr/antlr4-runtime", + "purl": "pkg:maven/org.antlr/antlr4-runtime@4.5.3", "requirement": "4.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.jboss.resteasy/resteasy-jaxrs", + "purl": "pkg:maven/org.jboss.resteasy/resteasy-jaxrs@3.1.2.Final", "requirement": "3.1.2.Final", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.jboss.resteasy/resteasy-validator-provider-11", + "purl": "pkg:maven/org.jboss.resteasy/resteasy-validator-provider-11@3.1.2.Final", "requirement": "3.1.2.Final", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.projectlombok/lombok", + "purl": "pkg:maven/org.projectlombok/lombok@1.16.16", "requirement": "1.16.16", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.jboss.resteasy/resteasy-jaxb-provider", + "purl": "pkg:maven/org.jboss.resteasy/resteasy-jaxb-provider@3.1.2.Final", "requirement": "3.1.2.Final", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.jboss.resteasy/resteasy-jackson2-provider", + "purl": "pkg:maven/org.jboss.resteasy/resteasy-jackson2-provider@3.1.2.Final", "requirement": "3.1.2.Final", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@4.12", "requirement": "4.12", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/pl.pragmatists/JUnitParams", + "purl": "pkg:maven/pl.pragmatists/JUnitParams@1.1.0", "requirement": "1.1.0", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.mockito/mockito-all", + "purl": "pkg:maven/org.mockito/mockito-all@1.10.19", "requirement": "1.10.19", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.slf4j/slf4j-simple", + "purl": "pkg:maven/org.slf4j/slf4j-simple@1.7.25", "requirement": "1.7.25", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/felix/felix/1.0.0/felix-1.0.0.pom.package.json b/tests/packagedcode/data/m2/org/apache/felix/felix/1.0.0/felix-1.0.0.pom.package.json index 1c722f112fb..23bd39661de 100644 --- a/tests/packagedcode/data/m2/org/apache/felix/felix/1.0.0/felix-1.0.0.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/felix/felix/1.0.0/felix-1.0.0.pom.package.json @@ -27,20 +27,20 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/easymock/easymock", + "purl": "pkg:maven/easymock/easymock@1.2_Java1.3", "requirement": "1.2_Java1.3", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/felix/felix/1.0.2/felix-1.0.2.pom.package.json b/tests/packagedcode/data/m2/org/apache/felix/felix/1.0.2/felix-1.0.2.pom.package.json index c5e1cc7a85c..b6a5bac1960 100644 --- a/tests/packagedcode/data/m2/org/apache/felix/felix/1.0.2/felix-1.0.2.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/felix/felix/1.0.2/felix-1.0.2.pom.package.json @@ -27,20 +27,20 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/easymock/easymock", + "purl": "pkg:maven/easymock/easymock@1.2_Java1.3", "requirement": "1.2_Java1.3", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/felix/maven-bundle-plugin/1.4.0/maven-bundle-plugin-1.4.0.pom.package.json b/tests/packagedcode/data/m2/org/apache/felix/maven-bundle-plugin/1.4.0/maven-bundle-plugin-1.4.0.pom.package.json index a94dc42524d..89614b6dab8 100644 --- a/tests/packagedcode/data/m2/org/apache/felix/maven-bundle-plugin/1.4.0/maven-bundle-plugin-1.4.0.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/felix/maven-bundle-plugin/1.4.0/maven-bundle-plugin-1.4.0.pom.package.json @@ -27,156 +27,156 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/biz.aQute/bndlib", + "purl": "pkg:maven/biz.aQute/bndlib@0.0.238", "requirement": "0.0.238", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/net.sf.kxml/kxml2", + "purl": "pkg:maven/net.sf.kxml/kxml2@2.2.2", "requirement": "2.2.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/xmlpull/xmlpull", + "purl": "pkg:maven/xmlpull/xmlpull@1.1.3.1", "requirement": "1.1.3.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.felix/org.osgi.core", + "purl": "pkg:maven/org.apache.felix/org.osgi.core@1.0.0", "requirement": "1.0.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.felix/org.osgi.service.obr", + "purl": "pkg:maven/org.apache.felix/org.osgi.service.obr@1.0.1", "requirement": "1.0.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-project", + "purl": "pkg:maven/org.apache.maven/maven-project@2.0.7", "requirement": "2.0.7", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-model", + "purl": "pkg:maven/org.apache.maven/maven-model@2.0.7", "requirement": "2.0.7", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-plugin-api", + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@2.0.7", "requirement": "2.0.7", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-artifact", + "purl": "pkg:maven/org.apache.maven/maven-artifact@2.0.7", "requirement": "2.0.7", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-archiver", + "purl": "pkg:maven/org.apache.maven/maven-archiver@2.2", "requirement": "2.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-artifact-manager", + "purl": "pkg:maven/org.apache.maven/maven-artifact-manager@2.0.7", "requirement": "2.0.7", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-settings", + "purl": "pkg:maven/org.apache.maven/maven-settings@2.0.7", "requirement": "2.0.7", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.shared/maven-dependency-tree", + "purl": "pkg:maven/org.apache.maven.shared/maven-dependency-tree@1.1", "requirement": "1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.shared/maven-osgi", + "purl": "pkg:maven/org.apache.maven.shared/maven-osgi@0.2.0", "requirement": "0.2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.wagon/wagon-provider-api", + "purl": "pkg:maven/org.apache.maven.wagon/wagon-provider-api@1.0-beta-2", "requirement": "1.0-beta-2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-9-stable-1", "requirement": "1.0-alpha-9-stable-1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-archiver", + "purl": "pkg:maven/org.codehaus.plexus/plexus-archiver@1.0-alpha-7", "requirement": "1.0-alpha-7", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.4.7", "requirement": "1.4.7", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.shared/maven-plugin-testing-harness", + "purl": "pkg:maven/org.apache.maven.shared/maven-plugin-testing-harness@1.1", "requirement": "1.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/felix/org.osgi.service.obr/1.0.1/org.osgi.service.obr-1.0.1.pom.package.json b/tests/packagedcode/data/m2/org/apache/felix/org.osgi.service.obr/1.0.1/org.osgi.service.obr-1.0.1.pom.package.json index 3bff0041441..fa55fec05a8 100644 --- a/tests/packagedcode/data/m2/org/apache/felix/org.osgi.service.obr/1.0.1/org.osgi.service.obr-1.0.1.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/felix/org.osgi.service.obr/1.0.1/org.osgi.service.obr-1.0.1.pom.package.json @@ -35,12 +35,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.felix/org.osgi.core", + "purl": "pkg:maven/org.apache.felix/org.osgi.core@1.0.0", "requirement": "1.0.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/geronimo/genesis/config/project-config/1.1/project-config-1.1.pom.json b/tests/packagedcode/data/m2/org/apache/geronimo/genesis/config/project-config/1.1/project-config-1.1.pom.json index df97e9ba6ea..b3f31e9f995 100644 --- a/tests/packagedcode/data/m2/org/apache/geronimo/genesis/config/project-config/1.1/project-config-1.1.pom.json +++ b/tests/packagedcode/data/m2/org/apache/geronimo/genesis/config/project-config/1.1/project-config-1.1.pom.json @@ -115,6 +115,26 @@ "version": "3.8.1", "required": true } + ], + "dependencyManagement": [ + { + "group_id": "junit", + "artifact_id": "junit", + "version": "3.8.1", + "required": true + }, + { + "group_id": "org.apache.geronimo.genesis.plugins", + "artifact_id": "plugin-support", + "version": "1.1", + "required": true + }, + { + "group_id": "org.apache.geronimo.genesis.config", + "artifact_id": "logging-config", + "version": "1.1", + "required": true + } ] } } \ No newline at end of file diff --git a/tests/packagedcode/data/m2/org/apache/geronimo/genesis/config/project-config/1.1/project-config-1.1.pom.package.json b/tests/packagedcode/data/m2/org/apache/geronimo/genesis/config/project-config/1.1/project-config-1.1.pom.package.json index b266d6471a9..0eb147ef7c5 100644 --- a/tests/packagedcode/data/m2/org/apache/geronimo/genesis/config/project-config/1.1/project-config-1.1.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/geronimo/genesis/config/project-config/1.1/project-config-1.1.pom.package.json @@ -42,20 +42,44 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.geronimo.genesis.config/logging-config", + "purl": "pkg:maven/org.apache.geronimo.genesis.config/logging-config@1.1", "requirement": "1.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true + }, + { + "purl": "pkg:maven/junit/junit@3.8.1", + "requirement": "3.8.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.geronimo.genesis.plugins/plugin-support@1.1", + "requirement": "1.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.geronimo.genesis.config/logging-config@1.1", + "requirement": "1.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/geronimo/specs/geronimo-jsp_2.0_spec/1.1/geronimo-jsp_2.0_spec-1.1.pom.package.json b/tests/packagedcode/data/m2/org/apache/geronimo/specs/geronimo-jsp_2.0_spec/1.1/geronimo-jsp_2.0_spec-1.1.pom.package.json index 8b421cd81f6..e98a4570dc7 100644 --- a/tests/packagedcode/data/m2/org/apache/geronimo/specs/geronimo-jsp_2.0_spec/1.1/geronimo-jsp_2.0_spec-1.1.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/geronimo/specs/geronimo-jsp_2.0_spec/1.1/geronimo-jsp_2.0_spec-1.1.pom.package.json @@ -27,12 +27,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.geronimo.specs/geronimo-servlet_2.4_spec", + "purl": "pkg:maven/org.apache.geronimo.specs/geronimo-servlet_2.4_spec@1.1", "requirement": "1.1", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/geronimo/specs/specs/1.2/specs-1.2.pom.package.json b/tests/packagedcode/data/m2/org/apache/geronimo/specs/specs/1.2/specs-1.2.pom.package.json index 9cf2b85d82e..5dc0e97052b 100644 --- a/tests/packagedcode/data/m2/org/apache/geronimo/specs/specs/1.2/specs-1.2.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/geronimo/specs/specs/1.2/specs-1.2.pom.package.json @@ -27,12 +27,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-core/1.0-alpha-10/doxia-core-1.0-alpha-10.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-core/1.0-alpha-10/doxia-core-1.0-alpha-10.pom.package.json index b2fe647dccc..8063333ec5a 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-core/1.0-alpha-10/doxia-core-1.0-alpha-10.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-core/1.0-alpha-10/doxia-core-1.0-alpha-10.pom.package.json @@ -30,25 +30,25 @@ "purl": "pkg:maven/org.apache.maven.doxia/doxia-sink-api", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-core/1.0-alpha-7/doxia-core-1.0-alpha-7.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-core/1.0-alpha-7/doxia-core-1.0-alpha-7.pom.package.json index 53db1c76b81..409f6899793 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-core/1.0-alpha-7/doxia-core-1.0-alpha-7.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-core/1.0-alpha-7/doxia-core-1.0-alpha-7.pom.package.json @@ -27,36 +27,36 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/oro/oro", + "purl": "pkg:maven/oro/oro@2.0.7", "requirement": "2.0.7", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.doxia/doxia-sink-api", + "purl": "pkg:maven/org.apache.maven.doxia/doxia-sink-api@1.0-alpha-7", "requirement": "1.0-alpha-7", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.0.4", "requirement": "1.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-8", "requirement": "1.0-alpha-8", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-core/1.0-alpha-8/doxia-core-1.0-alpha-8.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-core/1.0-alpha-8/doxia-core-1.0-alpha-8.pom.package.json index a4334d78b6d..e3c4196b661 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-core/1.0-alpha-8/doxia-core-1.0-alpha-8.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-core/1.0-alpha-8/doxia-core-1.0-alpha-8.pom.package.json @@ -27,36 +27,36 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/oro/oro", + "purl": "pkg:maven/oro/oro@2.0.7", "requirement": "2.0.7", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.doxia/doxia-sink-api", + "purl": "pkg:maven/org.apache.maven.doxia/doxia-sink-api@1.0-alpha-8", "requirement": "1.0-alpha-8", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.0.4", "requirement": "1.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-8", "requirement": "1.0-alpha-8", "scope": "runtime", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-decoration-model/1.0-alpha-10/doxia-decoration-model-1.0-alpha-10.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-decoration-model/1.0-alpha-10/doxia-decoration-model-1.0-alpha-10.pom.package.json index 2c13687dd86..27de39b7ae4 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-decoration-model/1.0-alpha-10/doxia-decoration-model-1.0-alpha-10.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-decoration-model/1.0-alpha-10/doxia-decoration-model-1.0-alpha-10.pom.package.json @@ -30,9 +30,9 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-decoration-model/1.0-alpha-7/doxia-decoration-model-1.0-alpha-7.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-decoration-model/1.0-alpha-7/doxia-decoration-model-1.0-alpha-7.pom.package.json index 5ddc476eaba..331a1a6dbc2 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-decoration-model/1.0-alpha-7/doxia-decoration-model-1.0-alpha-7.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-decoration-model/1.0-alpha-7/doxia-decoration-model-1.0-alpha-7.pom.package.json @@ -27,20 +27,20 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.0.4", "requirement": "1.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-decoration-model/1.0-alpha-8/doxia-decoration-model-1.0-alpha-8.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-decoration-model/1.0-alpha-8/doxia-decoration-model-1.0-alpha-8.pom.package.json index e4e6d75ec7d..c43ac77ba50 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-decoration-model/1.0-alpha-8/doxia-decoration-model-1.0-alpha-8.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-decoration-model/1.0-alpha-8/doxia-decoration-model-1.0-alpha-8.pom.package.json @@ -27,20 +27,20 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.0.4", "requirement": "1.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-module-apt/1.0-alpha-10/doxia-module-apt-1.0-alpha-10.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-module-apt/1.0-alpha-10/doxia-module-apt-1.0-alpha-10.pom.package.json index 679c9344db3..568845048ad 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-module-apt/1.0-alpha-10/doxia-module-apt-1.0-alpha-10.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-module-apt/1.0-alpha-10/doxia-module-apt-1.0-alpha-10.pom.package.json @@ -30,9 +30,9 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-module-fml/1.0-alpha-10/doxia-module-fml-1.0-alpha-10.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-module-fml/1.0-alpha-10/doxia-module-fml-1.0-alpha-10.pom.package.json index f142b455e35..33ef194a718 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-module-fml/1.0-alpha-10/doxia-module-fml-1.0-alpha-10.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-module-fml/1.0-alpha-10/doxia-module-fml-1.0-alpha-10.pom.package.json @@ -30,9 +30,9 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-module-xdoc/1.0-alpha-10/doxia-module-xdoc-1.0-alpha-10.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-module-xdoc/1.0-alpha-10/doxia-module-xdoc-1.0-alpha-10.pom.package.json index 7d552711489..4b67de69d82 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-module-xdoc/1.0-alpha-10/doxia-module-xdoc-1.0-alpha-10.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-module-xdoc/1.0-alpha-10/doxia-module-xdoc-1.0-alpha-10.pom.package.json @@ -30,9 +30,9 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-module-xhtml/1.0-alpha-10/doxia-module-xhtml-1.0-alpha-10.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-module-xhtml/1.0-alpha-10/doxia-module-xhtml-1.0-alpha-10.pom.package.json index 3312d5b1ba0..00f4abe8f00 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-module-xhtml/1.0-alpha-10/doxia-module-xhtml-1.0-alpha-10.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-module-xhtml/1.0-alpha-10/doxia-module-xhtml-1.0-alpha-10.pom.package.json @@ -30,9 +30,9 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-modules/1.0-alpha-10/doxia-modules-1.0-alpha-10.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-modules/1.0-alpha-10/doxia-modules-1.0-alpha-10.pom.package.json index b6bf1f768e6..b2aa0c08d05 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-modules/1.0-alpha-10/doxia-modules-1.0-alpha-10.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-modules/1.0-alpha-10/doxia-modules-1.0-alpha-10.pom.package.json @@ -30,17 +30,17 @@ "purl": "pkg:maven/org.apache.maven.doxia/doxia-core", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven.doxia/doxia-sink-api", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven.doxia/doxia-core", @@ -48,7 +48,7 @@ "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-site-renderer/1.0-alpha-10/doxia-site-renderer-1.0-alpha-10.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-site-renderer/1.0-alpha-10/doxia-site-renderer-1.0-alpha-10.pom.package.json index 95f2131b482..9cff06b5f83 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-site-renderer/1.0-alpha-10/doxia-site-renderer-1.0-alpha-10.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-site-renderer/1.0-alpha-10/doxia-site-renderer-1.0-alpha-10.pom.package.json @@ -38,113 +38,113 @@ "purl": "pkg:maven/org.apache.maven.doxia/doxia-core", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven.doxia/doxia-sink-api", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-i18n", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-velocity", + "purl": "pkg:maven/org.codehaus.plexus/plexus-velocity@1.1.7", "requirement": "1.1.7", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.velocity/velocity", + "purl": "pkg:maven/org.apache.velocity/velocity@1.5", "requirement": "1.5", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { "purl": "pkg:maven/org.apache.maven.doxia/doxia-decoration-model", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { - "purl": "pkg:maven/commons-collections/commons-collections", + "purl": "pkg:maven/commons-collections/commons-collections@3.2", "requirement": "3.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { "purl": "pkg:maven/org.apache.maven.doxia/doxia-module-apt", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven.doxia/doxia-module-fml", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven.doxia/doxia-module-xdoc", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven.doxia/doxia-module-xhtml", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { - "purl": "pkg:maven/htmlunit/htmlunit", + "purl": "pkg:maven/htmlunit/htmlunit@1.9", "requirement": "1.9", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-site-renderer/1.0-alpha-7/doxia-site-renderer-1.0-alpha-7.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-site-renderer/1.0-alpha-7/doxia-site-renderer-1.0-alpha-7.pom.package.json index 7e710dea318..a6a14a22324 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-site-renderer/1.0-alpha-7/doxia-site-renderer-1.0-alpha-7.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-site-renderer/1.0-alpha-7/doxia-site-renderer-1.0-alpha-7.pom.package.json @@ -35,36 +35,36 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven.doxia/doxia-core", + "purl": "pkg:maven/org.apache.maven.doxia/doxia-core@1.0-alpha-7", "requirement": "1.0-alpha-7", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-i18n", + "purl": "pkg:maven/org.codehaus.plexus/plexus-i18n@1.0-beta-6", "requirement": "1.0-beta-6", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-velocity", + "purl": "pkg:maven/org.codehaus.plexus/plexus-velocity@1.1.2", "requirement": "1.1.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.doxia/doxia-decoration-model", + "purl": "pkg:maven/org.apache.maven.doxia/doxia-decoration-model@1.0-alpha-7", "requirement": "1.0-alpha-7", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-site-renderer/1.0-alpha-8/doxia-site-renderer-1.0-alpha-8.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-site-renderer/1.0-alpha-8/doxia-site-renderer-1.0-alpha-8.pom.package.json index f10ca81d1ed..9ea0edf8db4 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-site-renderer/1.0-alpha-8/doxia-site-renderer-1.0-alpha-8.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-site-renderer/1.0-alpha-8/doxia-site-renderer-1.0-alpha-8.pom.package.json @@ -35,36 +35,36 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven.doxia/doxia-core", + "purl": "pkg:maven/org.apache.maven.doxia/doxia-core@1.0-alpha-8", "requirement": "1.0-alpha-8", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-i18n", + "purl": "pkg:maven/org.codehaus.plexus/plexus-i18n@1.0-beta-6", "requirement": "1.0-beta-6", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-velocity", + "purl": "pkg:maven/org.codehaus.plexus/plexus-velocity@1.1.3", "requirement": "1.1.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.doxia/doxia-decoration-model", + "purl": "pkg:maven/org.apache.maven.doxia/doxia-decoration-model@1.0-alpha-8", "requirement": "1.0-alpha-8", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-sitetools/1.0-alpha-10/doxia-sitetools-1.0-alpha-10.pom.json b/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-sitetools/1.0-alpha-10/doxia-sitetools-1.0-alpha-10.pom.json index 8c9d9c764f5..ec1eafe16c0 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-sitetools/1.0-alpha-10/doxia-sitetools-1.0-alpha-10.pom.json +++ b/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-sitetools/1.0-alpha-10/doxia-sitetools-1.0-alpha-10.pom.json @@ -83,6 +83,68 @@ "version": "3.8.2", "required": true } + ], + "dependencyManagement": [ + { + "group_id": "org.apache.maven.doxia", + "artifact_id": "doxia-sink-api", + "version": "1.0-alpha-10", + "required": true + }, + { + "group_id": "org.apache.maven.doxia", + "artifact_id": "doxia-core", + "version": "1.0-alpha-10", + "required": true + }, + { + "group_id": "org.apache.maven.doxia", + "artifact_id": "doxia-module-apt", + "version": "1.0-alpha-10", + "required": true + }, + { + "group_id": "org.apache.maven.doxia", + "artifact_id": "doxia-module-fml", + "version": "1.0-alpha-10", + "required": true + }, + { + "group_id": "org.apache.maven.doxia", + "artifact_id": "doxia-module-xdoc", + "version": "1.0-alpha-10", + "required": true + }, + { + "group_id": "org.apache.maven.doxia", + "artifact_id": "doxia-module-xhtml", + "version": "1.0-alpha-10", + "required": true + }, + { + "group_id": "org.apache.maven.doxia", + "artifact_id": "doxia-decoration-model", + "version": "1.0-alpha-10", + "required": true + }, + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-container-default", + "version": "1.0-alpha-30", + "required": true + }, + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-i18n", + "version": "1.0-beta-7", + "required": true + }, + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-utils", + "version": "1.4.5", + "required": true + } ] } } \ No newline at end of file diff --git a/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-sitetools/1.0-alpha-10/doxia-sitetools-1.0-alpha-10.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-sitetools/1.0-alpha-10/doxia-sitetools-1.0-alpha-10.pom.package.json index c09d6a4c509..3c51ee1cd31 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-sitetools/1.0-alpha-10/doxia-sitetools-1.0-alpha-10.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia-sitetools/1.0-alpha-10/doxia-sitetools-1.0-alpha-10.pom.package.json @@ -27,12 +27,92 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.2", "requirement": "3.8.2", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.doxia/doxia-sink-api@1.0-alpha-10", + "requirement": "1.0-alpha-10", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.doxia/doxia-core@1.0-alpha-10", + "requirement": "1.0-alpha-10", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.doxia/doxia-module-apt@1.0-alpha-10", + "requirement": "1.0-alpha-10", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.doxia/doxia-module-fml@1.0-alpha-10", + "requirement": "1.0-alpha-10", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.doxia/doxia-module-xdoc@1.0-alpha-10", + "requirement": "1.0-alpha-10", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.doxia/doxia-module-xhtml@1.0-alpha-10", + "requirement": "1.0-alpha-10", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.doxia/doxia-decoration-model@1.0-alpha-10", + "requirement": "1.0-alpha-10", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-30", + "requirement": "1.0-alpha-30", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-i18n@1.0-beta-7", + "requirement": "1.0-beta-7", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.4.5", + "requirement": "1.4.5", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia/1.0-alpha-10/doxia-1.0-alpha-10.pom.json b/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia/1.0-alpha-10/doxia-1.0-alpha-10.pom.json index 6d4a7cb58d1..962460aa0ae 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia/1.0-alpha-10/doxia-1.0-alpha-10.pom.json +++ b/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia/1.0-alpha-10/doxia-1.0-alpha-10.pom.json @@ -85,6 +85,32 @@ "version": "3.8.2", "required": true } + ], + "dependencyManagement": [ + { + "group_id": "org.apache.maven.doxia", + "artifact_id": "doxia-sink-api", + "version": "1.0-alpha-10", + "required": true + }, + { + "group_id": "org.apache.maven.doxia", + "artifact_id": "doxia-core", + "version": "1.0-alpha-10", + "required": true + }, + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-container-default", + "version": "1.0-alpha-30", + "required": true + }, + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-utils", + "version": "1.4.5", + "required": true + } ] } } \ No newline at end of file diff --git a/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia/1.0-alpha-10/doxia-1.0-alpha-10.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia/1.0-alpha-10/doxia-1.0-alpha-10.pom.package.json index b7fbc3bb3ec..c0ce3f29132 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia/1.0-alpha-10/doxia-1.0-alpha-10.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia/1.0-alpha-10/doxia-1.0-alpha-10.pom.package.json @@ -27,12 +27,44 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.2", "requirement": "3.8.2", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.doxia/doxia-sink-api@1.0-alpha-10", + "requirement": "1.0-alpha-10", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.doxia/doxia-core@1.0-alpha-10", + "requirement": "1.0-alpha-10", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-30", + "requirement": "1.0-alpha-30", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.4.5", + "requirement": "1.4.5", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia/1.0-alpha-9/doxia-1.0-alpha-9.pom.json b/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia/1.0-alpha-9/doxia-1.0-alpha-9.pom.json index c4ba693821a..2074b08bc0b 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia/1.0-alpha-9/doxia-1.0-alpha-9.pom.json +++ b/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia/1.0-alpha-9/doxia-1.0-alpha-9.pom.json @@ -85,6 +85,32 @@ "version": "3.8.2", "required": true } + ], + "dependencyManagement": [ + { + "group_id": "org.apache.maven.doxia", + "artifact_id": "doxia-sink-api", + "version": "1.0-alpha-9", + "required": true + }, + { + "group_id": "org.apache.maven.doxia", + "artifact_id": "doxia-core", + "version": "1.0-alpha-9", + "required": true + }, + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-container-default", + "version": "1.0-alpha-30", + "required": true + }, + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-utils", + "version": "1.4.5", + "required": true + } ] } } \ No newline at end of file diff --git a/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia/1.0-alpha-9/doxia-1.0-alpha-9.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia/1.0-alpha-9/doxia-1.0-alpha-9.pom.package.json index 806ae1c334d..375a8b0b575 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia/1.0-alpha-9/doxia-1.0-alpha-9.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/doxia/doxia/1.0-alpha-9/doxia-1.0-alpha-9.pom.package.json @@ -27,12 +27,44 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.2", "requirement": "3.8.2", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.doxia/doxia-sink-api@1.0-alpha-9", + "requirement": "1.0-alpha-9", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.doxia/doxia-core@1.0-alpha-9", + "requirement": "1.0-alpha-9", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-30", + "requirement": "1.0-alpha-30", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.4.5", + "requirement": "1.4.5", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-archiver/2.2/maven-archiver-2.2.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-archiver/2.2/maven-archiver-2.2.pom.package.json index f520daa3607..1714c5603f7 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-archiver/2.2/maven-archiver-2.2.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-archiver/2.2/maven-archiver-2.2.pom.package.json @@ -27,28 +27,28 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-project", + "purl": "pkg:maven/org.apache.maven/maven-project@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-archiver", + "purl": "pkg:maven/org.codehaus.plexus/plexus-archiver@1.0-alpha-7", "requirement": "1.0-alpha-7", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-artifact", + "purl": "pkg:maven/org.apache.maven/maven-artifact@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-archiver/2.3/maven-archiver-2.3.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-archiver/2.3/maven-archiver-2.3.pom.package.json index 5af4d99aa28..9d6e5751532 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-archiver/2.3/maven-archiver-2.3.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-archiver/2.3/maven-archiver-2.3.pom.package.json @@ -27,52 +27,52 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-artifact", + "purl": "pkg:maven/org.apache.maven/maven-artifact@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-model", + "purl": "pkg:maven/org.apache.maven/maven-model@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-project", + "purl": "pkg:maven/org.apache.maven/maven-project@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-archiver", + "purl": "pkg:maven/org.codehaus.plexus/plexus-archiver@1.0-alpha-9", "requirement": "1.0-alpha-9", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.4.9", "requirement": "1.4.9", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-artifact-manager/2.0.1/maven-artifact-manager-2.0.1.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-artifact-manager/2.0.1/maven-artifact-manager-2.0.1.pom.package.json index b8e68d91e7a..5c9e2a5c68a 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-artifact-manager/2.0.1/maven-artifact-manager-2.0.1.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-artifact-manager/2.0.1/maven-artifact-manager-2.0.1.pom.package.json @@ -27,44 +27,44 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-repository-metadata", + "purl": "pkg:maven/org.apache.maven/maven-repository-metadata@2.0.1", "requirement": "2.0.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { - "purl": "pkg:maven/org.apache.maven/maven-artifact", + "purl": "pkg:maven/org.apache.maven/maven-artifact@2.0.1", "requirement": "2.0.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven.wagon/wagon-provider-api", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven.wagon/wagon-file", @@ -72,7 +72,7 @@ "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-artifact-manager/2.0.2/maven-artifact-manager-2.0.2.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-artifact-manager/2.0.2/maven-artifact-manager-2.0.2.pom.package.json index 5d1132457da..110da78988f 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-artifact-manager/2.0.2/maven-artifact-manager-2.0.2.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-artifact-manager/2.0.2/maven-artifact-manager-2.0.2.pom.package.json @@ -27,44 +27,44 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-repository-metadata", + "purl": "pkg:maven/org.apache.maven/maven-repository-metadata@2.0.2", "requirement": "2.0.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { - "purl": "pkg:maven/org.apache.maven/maven-artifact", + "purl": "pkg:maven/org.apache.maven/maven-artifact@2.0.2", "requirement": "2.0.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven.wagon/wagon-provider-api", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven.wagon/wagon-file", @@ -72,7 +72,7 @@ "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-artifact-manager/2.0.4/maven-artifact-manager-2.0.4.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-artifact-manager/2.0.4/maven-artifact-manager-2.0.4.pom.package.json index 11bcf0896e8..2c934621e2d 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-artifact-manager/2.0.4/maven-artifact-manager-2.0.4.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-artifact-manager/2.0.4/maven-artifact-manager-2.0.4.pom.package.json @@ -27,44 +27,44 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-repository-metadata", + "purl": "pkg:maven/org.apache.maven/maven-repository-metadata@2.0.4", "requirement": "2.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { - "purl": "pkg:maven/org.apache.maven/maven-artifact", + "purl": "pkg:maven/org.apache.maven/maven-artifact@2.0.4", "requirement": "2.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven.wagon/wagon-provider-api", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven.wagon/wagon-file", @@ -72,7 +72,7 @@ "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-artifact-manager/2.0.6/maven-artifact-manager-2.0.6.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-artifact-manager/2.0.6/maven-artifact-manager-2.0.6.pom.package.json index 714aee93ea6..91906071ebd 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-artifact-manager/2.0.6/maven-artifact-manager-2.0.6.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-artifact-manager/2.0.6/maven-artifact-manager-2.0.6.pom.package.json @@ -30,41 +30,41 @@ "purl": "pkg:maven/org.apache.maven/maven-repository-metadata", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven/maven-artifact", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven.wagon/wagon-provider-api", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven.wagon/wagon-file", @@ -72,15 +72,15 @@ "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": null }, { - "purl": "pkg:maven/easymock/easymock", + "purl": "pkg:maven/easymock/easymock@1.2_Java1.3", "requirement": "1.2_Java1.3", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-artifact-manager/2.0.7/maven-artifact-manager-2.0.7.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-artifact-manager/2.0.7/maven-artifact-manager-2.0.7.pom.package.json index 9d977945be1..282a39002d9 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-artifact-manager/2.0.7/maven-artifact-manager-2.0.7.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-artifact-manager/2.0.7/maven-artifact-manager-2.0.7.pom.package.json @@ -30,41 +30,41 @@ "purl": "pkg:maven/org.apache.maven/maven-repository-metadata", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven/maven-artifact", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven.wagon/wagon-provider-api", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven.wagon/wagon-file", @@ -72,15 +72,15 @@ "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": null }, { - "purl": "pkg:maven/easymock/easymock", + "purl": "pkg:maven/easymock/easymock@1.2_Java1.3", "requirement": "1.2_Java1.3", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-artifact-manager/2.0.8/maven-artifact-manager-2.0.8.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-artifact-manager/2.0.8/maven-artifact-manager-2.0.8.pom.package.json index 717587b5b21..d2f5d251798 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-artifact-manager/2.0.8/maven-artifact-manager-2.0.8.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-artifact-manager/2.0.8/maven-artifact-manager-2.0.8.pom.package.json @@ -30,41 +30,41 @@ "purl": "pkg:maven/org.apache.maven/maven-repository-metadata", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven/maven-artifact", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven.wagon/wagon-provider-api", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven.wagon/wagon-file", @@ -72,15 +72,15 @@ "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": null }, { - "purl": "pkg:maven/easymock/easymock", + "purl": "pkg:maven/easymock/easymock@1.2_Java1.3", "requirement": "1.2_Java1.3", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-artifact-manager/2.0/maven-artifact-manager-2.0.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-artifact-manager/2.0/maven-artifact-manager-2.0.pom.package.json index e669cee8176..c9a42e4e8bd 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-artifact-manager/2.0/maven-artifact-manager-2.0.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-artifact-manager/2.0/maven-artifact-manager-2.0.pom.package.json @@ -27,44 +27,44 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-repository-metadata", + "purl": "pkg:maven/org.apache.maven/maven-repository-metadata@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { - "purl": "pkg:maven/org.apache.maven/maven-artifact", + "purl": "pkg:maven/org.apache.maven/maven-artifact@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven.wagon/wagon-provider-api", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven.wagon/wagon-file", @@ -72,7 +72,7 @@ "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-artifact/2.0.1/maven-artifact-2.0.1.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-artifact/2.0.1/maven-artifact-2.0.1.pom.package.json index 273f83abae9..9586708da32 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-artifact/2.0.1/maven-artifact-2.0.1.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-artifact/2.0.1/maven-artifact-2.0.1.pom.package.json @@ -30,9 +30,9 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", @@ -40,7 +40,7 @@ "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-artifact/2.0.2/maven-artifact-2.0.2.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-artifact/2.0.2/maven-artifact-2.0.2.pom.package.json index 6cb11ca0cfe..421290e56eb 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-artifact/2.0.2/maven-artifact-2.0.2.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-artifact/2.0.2/maven-artifact-2.0.2.pom.package.json @@ -30,9 +30,9 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", @@ -40,7 +40,7 @@ "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-artifact/2.0.4/maven-artifact-2.0.4.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-artifact/2.0.4/maven-artifact-2.0.4.pom.package.json index 08b700d157a..ecd6ced757e 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-artifact/2.0.4/maven-artifact-2.0.4.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-artifact/2.0.4/maven-artifact-2.0.4.pom.package.json @@ -30,9 +30,9 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", @@ -40,7 +40,7 @@ "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-artifact/2.0.5/maven-artifact-2.0.5.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-artifact/2.0.5/maven-artifact-2.0.5.pom.package.json index 885608e6029..2409f8a6db9 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-artifact/2.0.5/maven-artifact-2.0.5.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-artifact/2.0.5/maven-artifact-2.0.5.pom.package.json @@ -30,9 +30,9 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", @@ -40,7 +40,7 @@ "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-artifact/2.0.6/maven-artifact-2.0.6.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-artifact/2.0.6/maven-artifact-2.0.6.pom.package.json index 700852860df..dcbeefce913 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-artifact/2.0.6/maven-artifact-2.0.6.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-artifact/2.0.6/maven-artifact-2.0.6.pom.package.json @@ -30,9 +30,9 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", @@ -40,7 +40,7 @@ "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-artifact/2.0.7/maven-artifact-2.0.7.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-artifact/2.0.7/maven-artifact-2.0.7.pom.package.json index 037f8834b26..cbf892ae783 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-artifact/2.0.7/maven-artifact-2.0.7.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-artifact/2.0.7/maven-artifact-2.0.7.pom.package.json @@ -30,9 +30,9 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", @@ -40,7 +40,7 @@ "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-artifact/2.0.8/maven-artifact-2.0.8.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-artifact/2.0.8/maven-artifact-2.0.8.pom.package.json index 44d13052ba2..501f802b5fa 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-artifact/2.0.8/maven-artifact-2.0.8.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-artifact/2.0.8/maven-artifact-2.0.8.pom.package.json @@ -30,9 +30,9 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", @@ -40,7 +40,7 @@ "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-artifact/2.0/maven-artifact-2.0.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-artifact/2.0/maven-artifact-2.0.pom.package.json index c85c99fe552..3e6c36d6354 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-artifact/2.0/maven-artifact-2.0.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-artifact/2.0/maven-artifact-2.0.pom.package.json @@ -30,9 +30,9 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", @@ -40,7 +40,7 @@ "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-core/2.0.8/maven-core-2.0.8.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-core/2.0.8/maven-core-2.0.8.pom.package.json index 7f7858981c2..51034a3e4bb 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-core/2.0.8/maven-core-2.0.8.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-core/2.0.8/maven-core-2.0.8.pom.package.json @@ -30,153 +30,153 @@ "purl": "pkg:maven/org.apache.maven/maven-settings", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven/maven-plugin-parameter-documenter", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-api", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven/maven-profile", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven/maven-model", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven/maven-artifact", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven.wagon/wagon-provider-api", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven/maven-repository-metadata", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven/maven-error-diagnostics", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven/maven-project", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { - "purl": "pkg:maven/commons-cli/commons-cli", + "purl": "pkg:maven/commons-cli/commons-cli@1.0", "requirement": "1.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { "purl": "pkg:maven/org.apache.maven/maven-plugin-api", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven/maven-plugin-descriptor", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-interactivity-api", + "purl": "pkg:maven/org.codehaus.plexus/plexus-interactivity-api@1.0-alpha-4", "requirement": "1.0-alpha-4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { "purl": "pkg:maven/org.apache.maven/maven-artifact-manager", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven/maven-monitor", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/classworlds/classworlds", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven.wagon/wagon-file", @@ -184,7 +184,7 @@ "scope": "runtime", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven.wagon/wagon-http-lightweight", @@ -192,7 +192,7 @@ "scope": "runtime", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven.wagon/wagon-ssh-external", @@ -200,7 +200,7 @@ "scope": "runtime", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven.wagon/wagon-ssh", @@ -208,7 +208,7 @@ "scope": "runtime", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-core/2.0/maven-core-2.0.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-core/2.0/maven-core-2.0.pom.package.json index fc405e242e9..69085953c4c 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-core/2.0/maven-core-2.0.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-core/2.0/maven-core-2.0.pom.package.json @@ -27,156 +27,156 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-settings", + "purl": "pkg:maven/org.apache.maven/maven-settings@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-plugin-parameter-documenter", + "purl": "pkg:maven/org.apache.maven/maven-plugin-parameter-documenter@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-api", + "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-api@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-profile", + "purl": "pkg:maven/org.apache.maven/maven-profile@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-model", + "purl": "pkg:maven/org.apache.maven/maven-model@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-artifact", + "purl": "pkg:maven/org.apache.maven/maven-artifact@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { "purl": "pkg:maven/org.apache.maven.wagon/wagon-provider-api", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { - "purl": "pkg:maven/org.apache.maven/maven-repository-metadata", + "purl": "pkg:maven/org.apache.maven/maven-repository-metadata@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-error-diagnostics", + "purl": "pkg:maven/org.apache.maven/maven-error-diagnostics@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-project", + "purl": "pkg:maven/org.apache.maven/maven-project@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-plugin-registry", + "purl": "pkg:maven/org.apache.maven/maven-plugin-registry@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-cli/commons-cli", + "purl": "pkg:maven/commons-cli/commons-cli@1.0", "requirement": "1.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-plugin-api", + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-plugin-descriptor", + "purl": "pkg:maven/org.apache.maven/maven-plugin-descriptor@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-interactivity-api", + "purl": "pkg:maven/org.codehaus.plexus/plexus-interactivity-api@1.0-alpha-4", "requirement": "1.0-alpha-4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-artifact-manager", + "purl": "pkg:maven/org.apache.maven/maven-artifact-manager@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-monitor", + "purl": "pkg:maven/org.apache.maven/maven-monitor@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven.wagon/wagon-file", @@ -184,7 +184,7 @@ "scope": "runtime", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven.wagon/wagon-http-lightweight", @@ -192,7 +192,7 @@ "scope": "runtime", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven.wagon/wagon-ssh", @@ -200,7 +200,7 @@ "scope": "runtime", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-error-diagnostics/2.0.8/maven-error-diagnostics-2.0.8.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-error-diagnostics/2.0.8/maven-error-diagnostics-2.0.8.pom.package.json index a922f209aac..b18ec9fd848 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-error-diagnostics/2.0.8/maven-error-diagnostics-2.0.8.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-error-diagnostics/2.0.8/maven-error-diagnostics-2.0.8.pom.package.json @@ -30,9 +30,9 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-error-diagnostics/2.0/maven-error-diagnostics-2.0.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-error-diagnostics/2.0/maven-error-diagnostics-2.0.pom.package.json index 4f9b6b49c24..b8b163ce796 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-error-diagnostics/2.0/maven-error-diagnostics-2.0.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-error-diagnostics/2.0/maven-error-diagnostics-2.0.pom.package.json @@ -30,9 +30,9 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-model/2.0.1/maven-model-2.0.1.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-model/2.0.1/maven-model-2.0.1.pom.package.json index abb577d5969..592d8e06041 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-model/2.0.1/maven-model-2.0.1.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-model/2.0.1/maven-model-2.0.1.pom.package.json @@ -30,9 +30,9 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-model/2.0.2/maven-model-2.0.2.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-model/2.0.2/maven-model-2.0.2.pom.package.json index 667e11f9d3f..4e202e8dc7b 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-model/2.0.2/maven-model-2.0.2.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-model/2.0.2/maven-model-2.0.2.pom.package.json @@ -30,9 +30,9 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-model/2.0.4/maven-model-2.0.4.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-model/2.0.4/maven-model-2.0.4.pom.package.json index 0cf5c379eb8..07602c3ad2c 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-model/2.0.4/maven-model-2.0.4.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-model/2.0.4/maven-model-2.0.4.pom.package.json @@ -30,9 +30,9 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-model/2.0.5/maven-model-2.0.5.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-model/2.0.5/maven-model-2.0.5.pom.package.json index 0826ef3308c..68c6f72ee49 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-model/2.0.5/maven-model-2.0.5.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-model/2.0.5/maven-model-2.0.5.pom.package.json @@ -30,9 +30,9 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-model/2.0.6/maven-model-2.0.6.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-model/2.0.6/maven-model-2.0.6.pom.package.json index c12e27806f7..3e6f8716983 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-model/2.0.6/maven-model-2.0.6.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-model/2.0.6/maven-model-2.0.6.pom.package.json @@ -30,9 +30,9 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-model/2.0.7/maven-model-2.0.7.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-model/2.0.7/maven-model-2.0.7.pom.package.json index 786421c45ca..03653286c24 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-model/2.0.7/maven-model-2.0.7.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-model/2.0.7/maven-model-2.0.7.pom.package.json @@ -30,9 +30,9 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-model/2.0.8/maven-model-2.0.8.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-model/2.0.8/maven-model-2.0.8.pom.package.json index 23ec4d30b72..c7d372e2965 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-model/2.0.8/maven-model-2.0.8.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-model/2.0.8/maven-model-2.0.8.pom.package.json @@ -30,9 +30,9 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-model/2.0/maven-model-2.0.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-model/2.0/maven-model-2.0.pom.package.json index 2ebfaab2723..61b7d2f26a4 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-model/2.0/maven-model-2.0.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-model/2.0/maven-model-2.0.pom.package.json @@ -30,9 +30,9 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-api/2.0.1/maven-plugin-api-2.0.1.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-api/2.0.1/maven-plugin-api-2.0.1.pom.package.json index 04d9ab441b8..7b38340417c 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-api/2.0.1/maven-plugin-api-2.0.1.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-api/2.0.1/maven-plugin-api-2.0.1.pom.package.json @@ -27,12 +27,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-api/2.0.2/maven-plugin-api-2.0.2.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-api/2.0.2/maven-plugin-api-2.0.2.pom.package.json index 93746adf63d..1ba731f3c4d 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-api/2.0.2/maven-plugin-api-2.0.2.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-api/2.0.2/maven-plugin-api-2.0.2.pom.package.json @@ -27,12 +27,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-api/2.0.4/maven-plugin-api-2.0.4.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-api/2.0.4/maven-plugin-api-2.0.4.pom.package.json index 14faf2ec36c..9358d76ed55 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-api/2.0.4/maven-plugin-api-2.0.4.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-api/2.0.4/maven-plugin-api-2.0.4.pom.package.json @@ -27,12 +27,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-api/2.0.6/maven-plugin-api-2.0.6.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-api/2.0.6/maven-plugin-api-2.0.6.pom.package.json index 65c8f507b6d..0f68685f8a3 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-api/2.0.6/maven-plugin-api-2.0.6.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-api/2.0.6/maven-plugin-api-2.0.6.pom.package.json @@ -27,12 +27,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-api/2.0.7/maven-plugin-api-2.0.7.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-api/2.0.7/maven-plugin-api-2.0.7.pom.package.json index f32d60ed902..2e99b94bfba 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-api/2.0.7/maven-plugin-api-2.0.7.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-api/2.0.7/maven-plugin-api-2.0.7.pom.package.json @@ -27,12 +27,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-api/2.0.8/maven-plugin-api-2.0.8.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-api/2.0.8/maven-plugin-api-2.0.8.pom.package.json index c2c697659f0..ec5a4536ba5 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-api/2.0.8/maven-plugin-api-2.0.8.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-api/2.0.8/maven-plugin-api-2.0.8.pom.package.json @@ -27,12 +27,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-api/2.0/maven-plugin-api-2.0.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-api/2.0/maven-plugin-api-2.0.pom.package.json index 2d868a7927a..e2238ec4ddc 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-api/2.0/maven-plugin-api-2.0.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-api/2.0/maven-plugin-api-2.0.pom.package.json @@ -27,12 +27,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-descriptor/2.0.8/maven-plugin-descriptor-2.0.8.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-descriptor/2.0.8/maven-plugin-descriptor-2.0.8.pom.package.json index ea5d7ff0dd5..10ad9b58f3b 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-descriptor/2.0.8/maven-plugin-descriptor-2.0.8.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-descriptor/2.0.8/maven-plugin-descriptor-2.0.8.pom.package.json @@ -30,25 +30,25 @@ "purl": "pkg:maven/org.apache.maven/maven-plugin-api", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven/maven-artifact", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-descriptor/2.0/maven-plugin-descriptor-2.0.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-descriptor/2.0/maven-plugin-descriptor-2.0.pom.package.json index 640b1ff0d37..47d7eeb9dee 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-descriptor/2.0/maven-plugin-descriptor-2.0.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-descriptor/2.0/maven-plugin-descriptor-2.0.pom.package.json @@ -27,28 +27,28 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-plugin-api", + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-artifact", + "purl": "pkg:maven/org.apache.maven/maven-artifact@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-parameter-documenter/2.0.8/maven-plugin-parameter-documenter-2.0.8.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-parameter-documenter/2.0.8/maven-plugin-parameter-documenter-2.0.8.pom.package.json index ca223aefa76..c4811d5b712 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-parameter-documenter/2.0.8/maven-plugin-parameter-documenter-2.0.8.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-parameter-documenter/2.0.8/maven-plugin-parameter-documenter-2.0.8.pom.package.json @@ -30,17 +30,17 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-parameter-documenter/2.0/maven-plugin-parameter-documenter-2.0.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-parameter-documenter/2.0/maven-plugin-parameter-documenter-2.0.pom.package.json index cf221525cae..024de06ea0c 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-parameter-documenter/2.0/maven-plugin-parameter-documenter-2.0.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-parameter-documenter/2.0/maven-plugin-parameter-documenter-2.0.pom.package.json @@ -30,17 +30,17 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-registry/2.0.6/maven-plugin-registry-2.0.6.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-registry/2.0.6/maven-plugin-registry-2.0.6.pom.package.json index 18dc536eacd..0a443710e94 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-registry/2.0.6/maven-plugin-registry-2.0.6.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-registry/2.0.6/maven-plugin-registry-2.0.6.pom.package.json @@ -30,17 +30,17 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-registry/2.0.7/maven-plugin-registry-2.0.7.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-registry/2.0.7/maven-plugin-registry-2.0.7.pom.package.json index 6ee69b61964..ad8b73f0c22 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-registry/2.0.7/maven-plugin-registry-2.0.7.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-registry/2.0.7/maven-plugin-registry-2.0.7.pom.package.json @@ -30,17 +30,17 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-registry/2.0.8/maven-plugin-registry-2.0.8.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-registry/2.0.8/maven-plugin-registry-2.0.8.pom.package.json index eac5eaf429f..861f854fc7c 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-registry/2.0.8/maven-plugin-registry-2.0.8.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-registry/2.0.8/maven-plugin-registry-2.0.8.pom.package.json @@ -30,17 +30,17 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-registry/2.0/maven-plugin-registry-2.0.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-registry/2.0/maven-plugin-registry-2.0.pom.package.json index cc15cb905cc..f8e6a60668f 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-registry/2.0/maven-plugin-registry-2.0.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-plugin-registry/2.0/maven-plugin-registry-2.0.pom.package.json @@ -30,17 +30,17 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-profile/2.0.1/maven-profile-2.0.1.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-profile/2.0.1/maven-profile-2.0.1.pom.package.json index aafd6954306..3300c73f8ed 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-profile/2.0.1/maven-profile-2.0.1.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-profile/2.0.1/maven-profile-2.0.1.pom.package.json @@ -27,28 +27,28 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-model", + "purl": "pkg:maven/org.apache.maven/maven-model@2.0.1", "requirement": "2.0.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-profile/2.0.2/maven-profile-2.0.2.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-profile/2.0.2/maven-profile-2.0.2.pom.package.json index 6fe67234d0a..8ad25ead8e3 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-profile/2.0.2/maven-profile-2.0.2.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-profile/2.0.2/maven-profile-2.0.2.pom.package.json @@ -27,28 +27,28 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-model", + "purl": "pkg:maven/org.apache.maven/maven-model@2.0.2", "requirement": "2.0.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-profile/2.0.4/maven-profile-2.0.4.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-profile/2.0.4/maven-profile-2.0.4.pom.package.json index 16afd22236a..78a0361692f 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-profile/2.0.4/maven-profile-2.0.4.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-profile/2.0.4/maven-profile-2.0.4.pom.package.json @@ -27,28 +27,28 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-model", + "purl": "pkg:maven/org.apache.maven/maven-model@2.0.4", "requirement": "2.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-profile/2.0.6/maven-profile-2.0.6.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-profile/2.0.6/maven-profile-2.0.6.pom.package.json index 8bf5f5032cc..63fabfd181f 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-profile/2.0.6/maven-profile-2.0.6.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-profile/2.0.6/maven-profile-2.0.6.pom.package.json @@ -30,25 +30,25 @@ "purl": "pkg:maven/org.apache.maven/maven-model", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-profile/2.0.7/maven-profile-2.0.7.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-profile/2.0.7/maven-profile-2.0.7.pom.package.json index 1cb80c91967..3ddd4689c6f 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-profile/2.0.7/maven-profile-2.0.7.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-profile/2.0.7/maven-profile-2.0.7.pom.package.json @@ -30,25 +30,25 @@ "purl": "pkg:maven/org.apache.maven/maven-model", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-profile/2.0.8/maven-profile-2.0.8.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-profile/2.0.8/maven-profile-2.0.8.pom.package.json index 5fc84cf8d3a..19ad3d87dca 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-profile/2.0.8/maven-profile-2.0.8.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-profile/2.0.8/maven-profile-2.0.8.pom.package.json @@ -30,25 +30,25 @@ "purl": "pkg:maven/org.apache.maven/maven-model", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-profile/2.0/maven-profile-2.0.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-profile/2.0/maven-profile-2.0.pom.package.json index f534c7ac137..3fd3a13e8a1 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-profile/2.0/maven-profile-2.0.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-profile/2.0/maven-profile-2.0.pom.package.json @@ -27,28 +27,28 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-model", + "purl": "pkg:maven/org.apache.maven/maven-model@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-project/2.0.1/maven-project-2.0.1.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-project/2.0.1/maven-project-2.0.1.pom.package.json index 5c3c17628a7..ebe6940c6f8 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-project/2.0.1/maven-project-2.0.1.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-project/2.0.1/maven-project-2.0.1.pom.package.json @@ -27,60 +27,60 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-artifact-test", + "purl": "pkg:maven/org.apache.maven/maven-artifact-test@2.0.1", "requirement": "2.0.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-profile", + "purl": "pkg:maven/org.apache.maven/maven-profile@2.0.1", "requirement": "2.0.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-model", + "purl": "pkg:maven/org.apache.maven/maven-model@2.0.1", "requirement": "2.0.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-artifact-manager", + "purl": "pkg:maven/org.apache.maven/maven-artifact-manager@2.0.1", "requirement": "2.0.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { - "purl": "pkg:maven/org.apache.maven/maven-artifact", + "purl": "pkg:maven/org.apache.maven/maven-artifact@2.0.1", "requirement": "2.0.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-project/2.0.2/maven-project-2.0.2.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-project/2.0.2/maven-project-2.0.2.pom.package.json index 81baee1ba95..f62f8ecc2a9 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-project/2.0.2/maven-project-2.0.2.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-project/2.0.2/maven-project-2.0.2.pom.package.json @@ -27,60 +27,60 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-artifact-test", + "purl": "pkg:maven/org.apache.maven/maven-artifact-test@2.0.2", "requirement": "2.0.2", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-profile", + "purl": "pkg:maven/org.apache.maven/maven-profile@2.0.2", "requirement": "2.0.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-model", + "purl": "pkg:maven/org.apache.maven/maven-model@2.0.2", "requirement": "2.0.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-artifact-manager", + "purl": "pkg:maven/org.apache.maven/maven-artifact-manager@2.0.2", "requirement": "2.0.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { - "purl": "pkg:maven/org.apache.maven/maven-artifact", + "purl": "pkg:maven/org.apache.maven/maven-artifact@2.0.2", "requirement": "2.0.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-project/2.0.4/maven-project-2.0.4.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-project/2.0.4/maven-project-2.0.4.pom.package.json index fbb2aa9a1b3..c74e4eabd52 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-project/2.0.4/maven-project-2.0.4.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-project/2.0.4/maven-project-2.0.4.pom.package.json @@ -27,68 +27,68 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-settings", + "purl": "pkg:maven/org.apache.maven/maven-settings@2.0.4", "requirement": "2.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-profile", + "purl": "pkg:maven/org.apache.maven/maven-profile@2.0.4", "requirement": "2.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-model", + "purl": "pkg:maven/org.apache.maven/maven-model@2.0.4", "requirement": "2.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-artifact-manager", + "purl": "pkg:maven/org.apache.maven/maven-artifact-manager@2.0.4", "requirement": "2.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { - "purl": "pkg:maven/org.apache.maven/maven-artifact", + "purl": "pkg:maven/org.apache.maven/maven-artifact@2.0.4", "requirement": "2.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { - "purl": "pkg:maven/org.apache.maven/maven-artifact-test", + "purl": "pkg:maven/org.apache.maven/maven-artifact-test@2.0.4", "requirement": "2.0.4", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-project/2.0.5/maven-project-2.0.5.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-project/2.0.5/maven-project-2.0.5.pom.package.json index 8b631b609ec..0107fa3ec35 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-project/2.0.5/maven-project-2.0.5.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-project/2.0.5/maven-project-2.0.5.pom.package.json @@ -27,68 +27,68 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-settings", + "purl": "pkg:maven/org.apache.maven/maven-settings@2.0.5", "requirement": "2.0.5", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-profile", + "purl": "pkg:maven/org.apache.maven/maven-profile@2.0.5", "requirement": "2.0.5", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-model", + "purl": "pkg:maven/org.apache.maven/maven-model@2.0.5", "requirement": "2.0.5", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-artifact-manager", + "purl": "pkg:maven/org.apache.maven/maven-artifact-manager@2.0.5", "requirement": "2.0.5", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { - "purl": "pkg:maven/org.apache.maven/maven-artifact", + "purl": "pkg:maven/org.apache.maven/maven-artifact@2.0.5", "requirement": "2.0.5", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { - "purl": "pkg:maven/org.apache.maven/maven-artifact-test", + "purl": "pkg:maven/org.apache.maven/maven-artifact-test@2.0.5", "requirement": "2.0.5", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-project/2.0.6/maven-project-2.0.6.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-project/2.0.6/maven-project-2.0.6.pom.package.json index 5208c324f90..f19c5b267ff 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-project/2.0.6/maven-project-2.0.6.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-project/2.0.6/maven-project-2.0.6.pom.package.json @@ -30,65 +30,65 @@ "purl": "pkg:maven/org.apache.maven/maven-settings", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven/maven-profile", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven/maven-model", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven/maven-artifact-manager", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven/maven-plugin-registry", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven/maven-artifact", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven/maven-artifact-test", @@ -96,7 +96,7 @@ "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-project/2.0.7/maven-project-2.0.7.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-project/2.0.7/maven-project-2.0.7.pom.package.json index 760b9d56aaf..ac83d999c44 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-project/2.0.7/maven-project-2.0.7.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-project/2.0.7/maven-project-2.0.7.pom.package.json @@ -30,65 +30,65 @@ "purl": "pkg:maven/org.apache.maven/maven-settings", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven/maven-profile", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven/maven-model", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven/maven-artifact-manager", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven/maven-plugin-registry", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven/maven-artifact", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven/maven-artifact-test", @@ -96,7 +96,7 @@ "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-project/2.0.8/maven-project-2.0.8.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-project/2.0.8/maven-project-2.0.8.pom.package.json index acf41d675a4..88980d46ab4 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-project/2.0.8/maven-project-2.0.8.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-project/2.0.8/maven-project-2.0.8.pom.package.json @@ -30,65 +30,65 @@ "purl": "pkg:maven/org.apache.maven/maven-settings", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven/maven-profile", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven/maven-model", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven/maven-artifact-manager", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven/maven-plugin-registry", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven/maven-artifact", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven/maven-artifact-test", @@ -96,7 +96,7 @@ "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-project/2.0/maven-project-2.0.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-project/2.0/maven-project-2.0.pom.package.json index 3e69f5559a1..ceaca26300a 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-project/2.0/maven-project-2.0.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-project/2.0/maven-project-2.0.pom.package.json @@ -27,60 +27,60 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-artifact-test", + "purl": "pkg:maven/org.apache.maven/maven-artifact-test@2.0", "requirement": "2.0", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-profile", + "purl": "pkg:maven/org.apache.maven/maven-profile@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-model", + "purl": "pkg:maven/org.apache.maven/maven-model@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-artifact-manager", + "purl": "pkg:maven/org.apache.maven/maven-artifact-manager@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { - "purl": "pkg:maven/org.apache.maven/maven-artifact", + "purl": "pkg:maven/org.apache.maven/maven-artifact@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-repository-metadata/2.0.1/maven-repository-metadata-2.0.1.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-repository-metadata/2.0.1/maven-repository-metadata-2.0.1.pom.package.json index 4d267216d31..454b60bb4c5 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-repository-metadata/2.0.1/maven-repository-metadata-2.0.1.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-repository-metadata/2.0.1/maven-repository-metadata-2.0.1.pom.package.json @@ -30,9 +30,9 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-repository-metadata/2.0.2/maven-repository-metadata-2.0.2.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-repository-metadata/2.0.2/maven-repository-metadata-2.0.2.pom.package.json index ea449def672..562e4c8fb89 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-repository-metadata/2.0.2/maven-repository-metadata-2.0.2.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-repository-metadata/2.0.2/maven-repository-metadata-2.0.2.pom.package.json @@ -30,9 +30,9 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-repository-metadata/2.0.4/maven-repository-metadata-2.0.4.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-repository-metadata/2.0.4/maven-repository-metadata-2.0.4.pom.package.json index 8a9e80fc511..6877b65c2c2 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-repository-metadata/2.0.4/maven-repository-metadata-2.0.4.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-repository-metadata/2.0.4/maven-repository-metadata-2.0.4.pom.package.json @@ -30,9 +30,9 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-repository-metadata/2.0.6/maven-repository-metadata-2.0.6.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-repository-metadata/2.0.6/maven-repository-metadata-2.0.6.pom.package.json index 960f73d5f58..871616eca24 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-repository-metadata/2.0.6/maven-repository-metadata-2.0.6.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-repository-metadata/2.0.6/maven-repository-metadata-2.0.6.pom.package.json @@ -30,9 +30,9 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-repository-metadata/2.0.7/maven-repository-metadata-2.0.7.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-repository-metadata/2.0.7/maven-repository-metadata-2.0.7.pom.package.json index b1d7ec375dc..c93c66b35bc 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-repository-metadata/2.0.7/maven-repository-metadata-2.0.7.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-repository-metadata/2.0.7/maven-repository-metadata-2.0.7.pom.package.json @@ -30,9 +30,9 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-repository-metadata/2.0.8/maven-repository-metadata-2.0.8.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-repository-metadata/2.0.8/maven-repository-metadata-2.0.8.pom.package.json index dfeea213912..87fdf74d319 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-repository-metadata/2.0.8/maven-repository-metadata-2.0.8.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-repository-metadata/2.0.8/maven-repository-metadata-2.0.8.pom.package.json @@ -30,9 +30,9 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-repository-metadata/2.0/maven-repository-metadata-2.0.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-repository-metadata/2.0/maven-repository-metadata-2.0.pom.package.json index b1d5c05fccd..6c585de2840 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-repository-metadata/2.0/maven-repository-metadata-2.0.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-repository-metadata/2.0/maven-repository-metadata-2.0.pom.package.json @@ -30,9 +30,9 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-settings/2.0.2/maven-settings-2.0.2.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-settings/2.0.2/maven-settings-2.0.2.pom.package.json index 16a1e1130fc..aa8a4faf9f8 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-settings/2.0.2/maven-settings-2.0.2.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-settings/2.0.2/maven-settings-2.0.2.pom.package.json @@ -27,28 +27,28 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-model", + "purl": "pkg:maven/org.apache.maven/maven-model@2.0.2", "requirement": "2.0.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-settings/2.0.4/maven-settings-2.0.4.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-settings/2.0.4/maven-settings-2.0.4.pom.package.json index 0bb11d6838f..a8957f6e009 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-settings/2.0.4/maven-settings-2.0.4.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-settings/2.0.4/maven-settings-2.0.4.pom.package.json @@ -27,28 +27,28 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-model", + "purl": "pkg:maven/org.apache.maven/maven-model@2.0.4", "requirement": "2.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-settings/2.0.6/maven-settings-2.0.6.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-settings/2.0.6/maven-settings-2.0.6.pom.package.json index 3764b0d1aa1..1a6b5a80778 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-settings/2.0.6/maven-settings-2.0.6.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-settings/2.0.6/maven-settings-2.0.6.pom.package.json @@ -30,25 +30,25 @@ "purl": "pkg:maven/org.apache.maven/maven-model", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-settings/2.0.7/maven-settings-2.0.7.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-settings/2.0.7/maven-settings-2.0.7.pom.package.json index d444d971dee..d355ebec36e 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-settings/2.0.7/maven-settings-2.0.7.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-settings/2.0.7/maven-settings-2.0.7.pom.package.json @@ -30,25 +30,25 @@ "purl": "pkg:maven/org.apache.maven/maven-model", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-settings/2.0.8/maven-settings-2.0.8.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-settings/2.0.8/maven-settings-2.0.8.pom.package.json index e32d5d8859d..13446a5ee51 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-settings/2.0.8/maven-settings-2.0.8.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-settings/2.0.8/maven-settings-2.0.8.pom.package.json @@ -30,25 +30,25 @@ "purl": "pkg:maven/org.apache.maven/maven-model", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven-settings/2.0/maven-settings-2.0.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven-settings/2.0/maven-settings-2.0.pom.package.json index 6658fcb4b28..fd7a93d4403 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven-settings/2.0/maven-settings-2.0.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven-settings/2.0/maven-settings-2.0.pom.package.json @@ -27,28 +27,28 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-model", + "purl": "pkg:maven/org.apache.maven/maven-model@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.1/maven-2.0.1.pom.json b/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.1/maven-2.0.1.pom.json index b6f39fcd28a..f1807bad2aa 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.1/maven-2.0.1.pom.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.1/maven-2.0.1.pom.json @@ -210,6 +210,44 @@ "version": "3.8.1", "required": true } + ], + "dependencyManagement": [ + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-container-default", + "version": "1.0-alpha-9", + "required": true + }, + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-utils", + "version": "1.0.5", + "required": true + }, + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-provider-api", + "version": "1.0-alpha-5", + "required": true + }, + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-ssh", + "version": "1.0-alpha-5", + "required": true + }, + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-file", + "version": "1.0-alpha-5", + "required": true + }, + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-http-lightweight", + "version": "1.0-alpha-5", + "required": true + } ] } } \ No newline at end of file diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.1/maven-2.0.1.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.1/maven-2.0.1.pom.package.json index d330da035bd..ea918c552b5 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.1/maven-2.0.1.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.1/maven-2.0.1.pom.package.json @@ -98,12 +98,60 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-9", + "requirement": "1.0-alpha-9", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.0.5", + "requirement": "1.0.5", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-provider-api@1.0-alpha-5", + "requirement": "1.0-alpha-5", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-ssh@1.0-alpha-5", + "requirement": "1.0-alpha-5", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-file@1.0-alpha-5", + "requirement": "1.0-alpha-5", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-http-lightweight@1.0-alpha-5", + "requirement": "1.0-alpha-5", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.2/maven-2.0.2.pom.json b/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.2/maven-2.0.2.pom.json index d5e34b68b9b..20d7ad1b78d 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.2/maven-2.0.2.pom.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.2/maven-2.0.2.pom.json @@ -210,6 +210,50 @@ "version": "3.8.1", "required": true } + ], + "dependencyManagement": [ + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-container-default", + "version": "1.0-alpha-9", + "required": true + }, + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-utils", + "version": "1.1", + "required": true + }, + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-provider-api", + "version": "1.0-alpha-6", + "required": true + }, + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-ssh", + "version": "1.0-alpha-6", + "required": true + }, + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-ssh-external", + "version": "1.0-alpha-6", + "required": true + }, + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-file", + "version": "1.0-alpha-6", + "required": true + }, + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-http-lightweight", + "version": "1.0-alpha-6", + "required": true + } ] } } \ No newline at end of file diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.2/maven-2.0.2.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.2/maven-2.0.2.pom.package.json index 3c076d6b4f9..3457a8c517e 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.2/maven-2.0.2.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.2/maven-2.0.2.pom.package.json @@ -98,12 +98,68 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-9", + "requirement": "1.0-alpha-9", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.1", + "requirement": "1.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-provider-api@1.0-alpha-6", + "requirement": "1.0-alpha-6", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-ssh@1.0-alpha-6", + "requirement": "1.0-alpha-6", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-ssh-external@1.0-alpha-6", + "requirement": "1.0-alpha-6", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-file@1.0-alpha-6", + "requirement": "1.0-alpha-6", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-http-lightweight@1.0-alpha-6", + "requirement": "1.0-alpha-6", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.4/maven-2.0.4.pom.json b/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.4/maven-2.0.4.pom.json index b28e862e1a9..4f94f216a96 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.4/maven-2.0.4.pom.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.4/maven-2.0.4.pom.json @@ -215,6 +215,50 @@ "version": "3.8.1", "required": true } + ], + "dependencyManagement": [ + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-container-default", + "version": "1.0-alpha-9", + "required": true + }, + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-utils", + "version": "1.1", + "required": true + }, + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-provider-api", + "version": "1.0-alpha-6", + "required": true + }, + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-ssh", + "version": "1.0-alpha-7", + "required": true + }, + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-ssh-external", + "version": "1.0-alpha-6", + "required": true + }, + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-file", + "version": "1.0-alpha-7", + "required": true + }, + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-http-lightweight", + "version": "1.0-alpha-6", + "required": true + } ] } } \ No newline at end of file diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.4/maven-2.0.4.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.4/maven-2.0.4.pom.package.json index b982f6673f0..f7852373235 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.4/maven-2.0.4.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.4/maven-2.0.4.pom.package.json @@ -98,12 +98,68 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-9", + "requirement": "1.0-alpha-9", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.1", + "requirement": "1.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-provider-api@1.0-alpha-6", + "requirement": "1.0-alpha-6", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-ssh@1.0-alpha-7", + "requirement": "1.0-alpha-7", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-ssh-external@1.0-alpha-6", + "requirement": "1.0-alpha-6", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-file@1.0-alpha-7", + "requirement": "1.0-alpha-7", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-http-lightweight@1.0-alpha-6", + "requirement": "1.0-alpha-6", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.5/maven-2.0.5.pom.json b/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.5/maven-2.0.5.pom.json index 6424bd64621..0f7ca74b900 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.5/maven-2.0.5.pom.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.5/maven-2.0.5.pom.json @@ -78,6 +78,62 @@ "version": "3.8.1", "required": true } + ], + "dependencyManagement": [ + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-container-default", + "version": "1.0-alpha-9", + "required": true + }, + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-utils", + "version": "1.1", + "required": true + }, + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-provider-api", + "version": "1.0-beta-2", + "required": true + }, + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-ssh", + "version": "1.0-beta-2", + "required": true + }, + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-ssh-external", + "version": "1.0-beta-2", + "required": true + }, + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-file", + "version": "1.0-beta-2", + "required": true + }, + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-http-lightweight", + "version": "1.0-beta-2", + "required": true + }, + { + "group_id": "easymock", + "artifact_id": "easymock", + "version": "1.2_Java1.3", + "required": true + }, + { + "group_id": "classworlds", + "artifact_id": "classworlds", + "version": "1.1", + "required": true + } ] } } \ No newline at end of file diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.5/maven-2.0.5.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.5/maven-2.0.5.pom.package.json index 84a1d0ce9b7..d9fb471b8ae 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.5/maven-2.0.5.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.5/maven-2.0.5.pom.package.json @@ -27,12 +27,84 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-9", + "requirement": "1.0-alpha-9", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.1", + "requirement": "1.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-provider-api@1.0-beta-2", + "requirement": "1.0-beta-2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-ssh@1.0-beta-2", + "requirement": "1.0-beta-2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-ssh-external@1.0-beta-2", + "requirement": "1.0-beta-2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-file@1.0-beta-2", + "requirement": "1.0-beta-2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-http-lightweight@1.0-beta-2", + "requirement": "1.0-beta-2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/easymock/easymock@1.2_Java1.3", + "requirement": "1.2_Java1.3", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/classworlds/classworlds@1.1", + "requirement": "1.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.6/maven-2.0.6.pom.json b/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.6/maven-2.0.6.pom.json index 4b227b62a83..518e9f6dc37 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.6/maven-2.0.6.pom.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.6/maven-2.0.6.pom.json @@ -77,6 +77,140 @@ "version": "3.8.1", "required": true } + ], + "dependencyManagement": [ + { + "group_id": "org.apache.maven", + "artifact_id": "maven-model", + "version": "2.0.6", + "required": true + }, + { + "group_id": "org.apache.maven", + "artifact_id": "maven-project", + "version": "2.0.6", + "required": true + }, + { + "group_id": "org.apache.maven.reporting", + "artifact_id": "maven-reporting-api", + "version": "2.0.6", + "required": true + }, + { + "group_id": "org.apache.maven", + "artifact_id": "maven-repository-metadata", + "version": "2.0.6", + "required": true + }, + { + "group_id": "org.apache.maven", + "artifact_id": "maven-artifact", + "version": "2.0.6", + "required": true + }, + { + "group_id": "org.apache.maven", + "artifact_id": "maven-artifact-manager", + "version": "2.0.6", + "required": true + }, + { + "group_id": "org.apache.maven", + "artifact_id": "maven-artifact-test", + "version": "2.0.6", + "required": true + }, + { + "group_id": "org.apache.maven", + "artifact_id": "maven-settings", + "version": "2.0.6", + "required": true + }, + { + "group_id": "org.apache.maven", + "artifact_id": "maven-plugin-parameter-documenter", + "version": "2.0.6", + "required": true + }, + { + "group_id": "org.apache.maven", + "artifact_id": "maven-profile", + "version": "2.0.6", + "required": true + }, + { + "group_id": "org.apache.maven", + "artifact_id": "maven-plugin-registry", + "version": "2.0.6", + "required": true + }, + { + "group_id": "org.apache.maven", + "artifact_id": "maven-plugin-api", + "version": "2.0.6", + "required": true + }, + { + "group_id": "org.apache.maven", + "artifact_id": "maven-monitor", + "version": "2.0.6", + "required": true + }, + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-container-default", + "version": "1.0-alpha-9-stable-1", + "required": true + }, + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-utils", + "version": "1.4.1", + "required": true + }, + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-provider-api", + "version": "1.0-beta-2", + "required": true + }, + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-ssh", + "version": "1.0-beta-2", + "required": true + }, + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-ssh-external", + "version": "1.0-beta-2", + "required": true + }, + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-file", + "version": "1.0-beta-2", + "required": true + }, + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-http-lightweight", + "version": "1.0-beta-2", + "required": true + }, + { + "group_id": "easymock", + "artifact_id": "easymock", + "version": "1.2_Java1.3", + "required": true + }, + { + "group_id": "classworlds", + "artifact_id": "classworlds", + "version": "1.1", + "required": true + } ] } } \ No newline at end of file diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.6/maven-2.0.6.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.6/maven-2.0.6.pom.package.json index 5e73806ac2d..e4cf33015df 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.6/maven-2.0.6.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.6/maven-2.0.6.pom.package.json @@ -27,12 +27,188 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven-model@2.0.6", + "requirement": "2.0.6", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven-project@2.0.6", + "requirement": "2.0.6", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-api@2.0.6", + "requirement": "2.0.6", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven-repository-metadata@2.0.6", + "requirement": "2.0.6", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven-artifact@2.0.6", + "requirement": "2.0.6", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven-artifact-manager@2.0.6", + "requirement": "2.0.6", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven-artifact-test@2.0.6", + "requirement": "2.0.6", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven-settings@2.0.6", + "requirement": "2.0.6", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven-plugin-parameter-documenter@2.0.6", + "requirement": "2.0.6", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven-profile@2.0.6", + "requirement": "2.0.6", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven-plugin-registry@2.0.6", + "requirement": "2.0.6", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@2.0.6", + "requirement": "2.0.6", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven-monitor@2.0.6", + "requirement": "2.0.6", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-9-stable-1", + "requirement": "1.0-alpha-9-stable-1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.4.1", + "requirement": "1.4.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-provider-api@1.0-beta-2", + "requirement": "1.0-beta-2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-ssh@1.0-beta-2", + "requirement": "1.0-beta-2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-ssh-external@1.0-beta-2", + "requirement": "1.0-beta-2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-file@1.0-beta-2", + "requirement": "1.0-beta-2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-http-lightweight@1.0-beta-2", + "requirement": "1.0-beta-2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/easymock/easymock@1.2_Java1.3", + "requirement": "1.2_Java1.3", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/classworlds/classworlds@1.1", + "requirement": "1.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.7/maven-2.0.7.pom.json b/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.7/maven-2.0.7.pom.json index 003ae941223..a68d19a4cb2 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.7/maven-2.0.7.pom.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.7/maven-2.0.7.pom.json @@ -77,6 +77,152 @@ "version": "3.8.1", "required": true } + ], + "dependencyManagement": [ + { + "group_id": "org.apache.maven", + "artifact_id": "maven-plugin-descriptor", + "version": "2.0.7", + "required": true + }, + { + "group_id": "org.apache.maven", + "artifact_id": "maven-error-diagnostics", + "version": "2.0.7", + "required": true + }, + { + "group_id": "org.apache.maven", + "artifact_id": "maven-model", + "version": "2.0.7", + "required": true + }, + { + "group_id": "org.apache.maven", + "artifact_id": "maven-project", + "version": "2.0.7", + "required": true + }, + { + "group_id": "org.apache.maven.reporting", + "artifact_id": "maven-reporting-api", + "version": "2.0.7", + "required": true + }, + { + "group_id": "org.apache.maven", + "artifact_id": "maven-repository-metadata", + "version": "2.0.7", + "required": true + }, + { + "group_id": "org.apache.maven", + "artifact_id": "maven-artifact", + "version": "2.0.7", + "required": true + }, + { + "group_id": "org.apache.maven", + "artifact_id": "maven-artifact-manager", + "version": "2.0.7", + "required": true + }, + { + "group_id": "org.apache.maven", + "artifact_id": "maven-artifact-test", + "version": "2.0.7", + "required": true + }, + { + "group_id": "org.apache.maven", + "artifact_id": "maven-settings", + "version": "2.0.7", + "required": true + }, + { + "group_id": "org.apache.maven", + "artifact_id": "maven-plugin-parameter-documenter", + "version": "2.0.7", + "required": true + }, + { + "group_id": "org.apache.maven", + "artifact_id": "maven-profile", + "version": "2.0.7", + "required": true + }, + { + "group_id": "org.apache.maven", + "artifact_id": "maven-plugin-registry", + "version": "2.0.7", + "required": true + }, + { + "group_id": "org.apache.maven", + "artifact_id": "maven-plugin-api", + "version": "2.0.7", + "required": true + }, + { + "group_id": "org.apache.maven", + "artifact_id": "maven-monitor", + "version": "2.0.7", + "required": true + }, + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-container-default", + "version": "1.0-alpha-9-stable-1", + "required": true + }, + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-utils", + "version": "1.4.1", + "required": true + }, + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-provider-api", + "version": "1.0-beta-2", + "required": true + }, + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-ssh", + "version": "1.0-beta-2", + "required": true + }, + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-ssh-external", + "version": "1.0-beta-2", + "required": true + }, + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-file", + "version": "1.0-beta-2", + "required": true + }, + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-http-lightweight", + "version": "1.0-beta-2", + "required": true + }, + { + "group_id": "easymock", + "artifact_id": "easymock", + "version": "1.2_Java1.3", + "required": true + }, + { + "group_id": "classworlds", + "artifact_id": "classworlds", + "version": "1.1", + "required": true + } ] } } \ No newline at end of file diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.7/maven-2.0.7.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.7/maven-2.0.7.pom.package.json index 04978474ab2..e70e27c6357 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.7/maven-2.0.7.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.7/maven-2.0.7.pom.package.json @@ -27,12 +27,204 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven-plugin-descriptor@2.0.7", + "requirement": "2.0.7", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven-error-diagnostics@2.0.7", + "requirement": "2.0.7", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven-model@2.0.7", + "requirement": "2.0.7", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven-project@2.0.7", + "requirement": "2.0.7", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-api@2.0.7", + "requirement": "2.0.7", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven-repository-metadata@2.0.7", + "requirement": "2.0.7", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven-artifact@2.0.7", + "requirement": "2.0.7", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven-artifact-manager@2.0.7", + "requirement": "2.0.7", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven-artifact-test@2.0.7", + "requirement": "2.0.7", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven-settings@2.0.7", + "requirement": "2.0.7", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven-plugin-parameter-documenter@2.0.7", + "requirement": "2.0.7", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven-profile@2.0.7", + "requirement": "2.0.7", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven-plugin-registry@2.0.7", + "requirement": "2.0.7", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@2.0.7", + "requirement": "2.0.7", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven-monitor@2.0.7", + "requirement": "2.0.7", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-9-stable-1", + "requirement": "1.0-alpha-9-stable-1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.4.1", + "requirement": "1.4.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-provider-api@1.0-beta-2", + "requirement": "1.0-beta-2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-ssh@1.0-beta-2", + "requirement": "1.0-beta-2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-ssh-external@1.0-beta-2", + "requirement": "1.0-beta-2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-file@1.0-beta-2", + "requirement": "1.0-beta-2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-http-lightweight@1.0-beta-2", + "requirement": "1.0-beta-2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/easymock/easymock@1.2_Java1.3", + "requirement": "1.2_Java1.3", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/classworlds/classworlds@1.1", + "requirement": "1.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.8/maven-2.0.8.pom.json b/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.8/maven-2.0.8.pom.json index 520753a8624..4fc2f12c4e3 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.8/maven-2.0.8.pom.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.8/maven-2.0.8.pom.json @@ -77,6 +77,152 @@ "version": "3.8.1", "required": true } + ], + "dependencyManagement": [ + { + "group_id": "org.apache.maven", + "artifact_id": "maven-plugin-descriptor", + "version": "2.0.8", + "required": true + }, + { + "group_id": "org.apache.maven", + "artifact_id": "maven-error-diagnostics", + "version": "2.0.8", + "required": true + }, + { + "group_id": "org.apache.maven", + "artifact_id": "maven-model", + "version": "2.0.8", + "required": true + }, + { + "group_id": "org.apache.maven", + "artifact_id": "maven-project", + "version": "2.0.8", + "required": true + }, + { + "group_id": "org.apache.maven.reporting", + "artifact_id": "maven-reporting-api", + "version": "2.0.8", + "required": true + }, + { + "group_id": "org.apache.maven", + "artifact_id": "maven-repository-metadata", + "version": "2.0.8", + "required": true + }, + { + "group_id": "org.apache.maven", + "artifact_id": "maven-artifact", + "version": "2.0.8", + "required": true + }, + { + "group_id": "org.apache.maven", + "artifact_id": "maven-artifact-manager", + "version": "2.0.8", + "required": true + }, + { + "group_id": "org.apache.maven", + "artifact_id": "maven-artifact-test", + "version": "2.0.8", + "required": true + }, + { + "group_id": "org.apache.maven", + "artifact_id": "maven-settings", + "version": "2.0.8", + "required": true + }, + { + "group_id": "org.apache.maven", + "artifact_id": "maven-plugin-parameter-documenter", + "version": "2.0.8", + "required": true + }, + { + "group_id": "org.apache.maven", + "artifact_id": "maven-profile", + "version": "2.0.8", + "required": true + }, + { + "group_id": "org.apache.maven", + "artifact_id": "maven-plugin-registry", + "version": "2.0.8", + "required": true + }, + { + "group_id": "org.apache.maven", + "artifact_id": "maven-plugin-api", + "version": "2.0.8", + "required": true + }, + { + "group_id": "org.apache.maven", + "artifact_id": "maven-monitor", + "version": "2.0.8", + "required": true + }, + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-container-default", + "version": "1.0-alpha-9-stable-1", + "required": true + }, + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-utils", + "version": "1.4.6", + "required": true + }, + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-provider-api", + "version": "1.0-beta-2", + "required": true + }, + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-ssh", + "version": "1.0-beta-2", + "required": true + }, + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-ssh-external", + "version": "1.0-beta-2", + "required": true + }, + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-file", + "version": "1.0-beta-2", + "required": true + }, + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-http-lightweight", + "version": "1.0-beta-2", + "required": true + }, + { + "group_id": "easymock", + "artifact_id": "easymock", + "version": "1.2_Java1.3", + "required": true + }, + { + "group_id": "classworlds", + "artifact_id": "classworlds", + "version": "1.1", + "required": true + } ] } } \ No newline at end of file diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.8/maven-2.0.8.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.8/maven-2.0.8.pom.package.json index 6870eb39fc4..bdb153acd87 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.8/maven-2.0.8.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven/2.0.8/maven-2.0.8.pom.package.json @@ -27,12 +27,204 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven-plugin-descriptor@2.0.8", + "requirement": "2.0.8", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven-error-diagnostics@2.0.8", + "requirement": "2.0.8", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven-model@2.0.8", + "requirement": "2.0.8", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven-project@2.0.8", + "requirement": "2.0.8", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-api@2.0.8", + "requirement": "2.0.8", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven-repository-metadata@2.0.8", + "requirement": "2.0.8", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven-artifact@2.0.8", + "requirement": "2.0.8", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven-artifact-manager@2.0.8", + "requirement": "2.0.8", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven-artifact-test@2.0.8", + "requirement": "2.0.8", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven-settings@2.0.8", + "requirement": "2.0.8", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven-plugin-parameter-documenter@2.0.8", + "requirement": "2.0.8", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven-profile@2.0.8", + "requirement": "2.0.8", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven-plugin-registry@2.0.8", + "requirement": "2.0.8", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@2.0.8", + "requirement": "2.0.8", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven-monitor@2.0.8", + "requirement": "2.0.8", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-9-stable-1", + "requirement": "1.0-alpha-9-stable-1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.4.6", + "requirement": "1.4.6", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-provider-api@1.0-beta-2", + "requirement": "1.0-beta-2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-ssh@1.0-beta-2", + "requirement": "1.0-beta-2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-ssh-external@1.0-beta-2", + "requirement": "1.0-beta-2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-file@1.0-beta-2", + "requirement": "1.0-beta-2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-http-lightweight@1.0-beta-2", + "requirement": "1.0-beta-2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/easymock/easymock@1.2_Java1.3", + "requirement": "1.2_Java1.3", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/classworlds/classworlds@1.1", + "requirement": "1.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven/2.0/maven-2.0.pom.json b/tests/packagedcode/data/m2/org/apache/maven/maven/2.0/maven-2.0.pom.json index c9bd712a85f..e034d989b90 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven/2.0/maven-2.0.pom.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven/2.0/maven-2.0.pom.json @@ -205,6 +205,44 @@ "version": "3.8.1", "required": true } + ], + "dependencyManagement": [ + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-container-default", + "version": "1.0-alpha-8", + "required": true + }, + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-utils", + "version": "1.0.4", + "required": true + }, + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-provider-api", + "version": "1.0-alpha-5", + "required": true + }, + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-ssh", + "version": "1.0-alpha-5", + "required": true + }, + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-file", + "version": "1.0-alpha-5", + "required": true + }, + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-http-lightweight", + "version": "1.0-alpha-5", + "required": true + } ] } } \ No newline at end of file diff --git a/tests/packagedcode/data/m2/org/apache/maven/maven/2.0/maven-2.0.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/maven/2.0/maven-2.0.pom.package.json index 1e9cdfefae0..c349ca41197 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/maven/2.0/maven-2.0.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/maven/2.0/maven-2.0.pom.package.json @@ -98,12 +98,60 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-8", + "requirement": "1.0-alpha-8", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.0.4", + "requirement": "1.0.4", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-provider-api@1.0-alpha-5", + "requirement": "1.0-alpha-5", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-ssh@1.0-alpha-5", + "requirement": "1.0-alpha-5", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-file@1.0-alpha-5", + "requirement": "1.0-alpha-5", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-http-lightweight@1.0-alpha-5", + "requirement": "1.0-alpha-5", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-antrun-plugin/1.1/maven-antrun-plugin-1.1.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-antrun-plugin/1.1/maven-antrun-plugin-1.1.pom.package.json index 616ae341f91..7925cb0ce05 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-antrun-plugin/1.1/maven-antrun-plugin-1.1.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-antrun-plugin/1.1/maven-antrun-plugin-1.1.pom.package.json @@ -38,25 +38,25 @@ "purl": "pkg:maven/org.apache.maven/maven-project", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { - "purl": "pkg:maven/ant/ant", + "purl": "pkg:maven/ant/ant@1.6.5", "requirement": "1.6.5", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/ant/ant-launcher", + "purl": "pkg:maven/ant/ant-launcher@1.6.5", "requirement": "1.6.5", "scope": "runtime", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-assembly-plugin/2.2-beta-2/maven-assembly-plugin-2.2-beta-2.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-assembly-plugin/2.2-beta-2/maven-assembly-plugin-2.2-beta-2.pom.package.json index 6af7031bac9..9536d5fbe1c 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-assembly-plugin/2.2-beta-2/maven-assembly-plugin-2.2-beta-2.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-assembly-plugin/2.2-beta-2/maven-assembly-plugin-2.2-beta-2.pom.package.json @@ -27,180 +27,180 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/aspectj/aspectjrt", + "purl": "pkg:maven/aspectj/aspectjrt@1.5.3", "requirement": "1.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-archiver", + "purl": "pkg:maven/org.codehaus.plexus/plexus-archiver@1.0-alpha-10", "requirement": "1.0-alpha-10", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.shared/file-management", + "purl": "pkg:maven/org.apache.maven.shared/file-management@1.1", "requirement": "1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.shared/maven-shared-io", + "purl": "pkg:maven/org.apache.maven.shared/maven-shared-io@1.1", "requirement": "1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-active-collections", + "purl": "pkg:maven/org.codehaus.plexus/plexus-active-collections@1.0-beta-2", "requirement": "1.0-beta-2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-io", + "purl": "pkg:maven/org.codehaus.plexus/plexus-io@1.0-alpha-2", "requirement": "1.0-alpha-2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-plugin-api", + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@2.0.4", "requirement": "2.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-project", + "purl": "pkg:maven/org.apache.maven/maven-project@2.0.4", "requirement": "2.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-archiver", + "purl": "pkg:maven/org.apache.maven/maven-archiver@2.2", "requirement": "2.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-9-stable-1", "requirement": "1.0-alpha-9-stable-1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.5.1", "requirement": "1.5.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-artifact", + "purl": "pkg:maven/org.apache.maven/maven-artifact@2.0.4", "requirement": "2.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-model", + "purl": "pkg:maven/org.apache.maven/maven-model@2.0.4", "requirement": "2.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.shared/maven-repository-builder", + "purl": "pkg:maven/org.apache.maven.shared/maven-repository-builder@1.0-alpha-2", "requirement": "1.0-alpha-2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.shared/maven-common-artifact-filters", + "purl": "pkg:maven/org.apache.maven.shared/maven-common-artifact-filters@1.0", "requirement": "1.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.shared/maven-plugin-testing-tools", + "purl": "pkg:maven/org.apache.maven.shared/maven-plugin-testing-tools@1.0-alpha-1", "requirement": "1.0-alpha-1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.shared/maven-test-tools", + "purl": "pkg:maven/org.apache.maven.shared/maven-test-tools@1.0-alpha-1", "requirement": "1.0-alpha-1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/easymock/easymock", + "purl": "pkg:maven/easymock/easymock@1.2_Java1.3", "requirement": "1.2_Java1.3", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/jdom/jdom", + "purl": "pkg:maven/jdom/jdom@1.0", "requirement": "1.0", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/jaxen/jaxen", + "purl": "pkg:maven/jaxen/jaxen@1.0-FCS", "requirement": "1.0-FCS", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/saxpath/saxpath", + "purl": "pkg:maven/saxpath/saxpath@1.0-FCS", "requirement": "1.0-FCS", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-checkstyle-plugin/2.1/maven-checkstyle-plugin-2.1.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-checkstyle-plugin/2.1/maven-checkstyle-plugin-2.1.pom.package.json index 12198b3e9ac..4d955479ba5 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-checkstyle-plugin/2.1/maven-checkstyle-plugin-2.1.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-checkstyle-plugin/2.1/maven-checkstyle-plugin-2.1.pom.package.json @@ -35,60 +35,60 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-plugin-api", + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/checkstyle/checkstyle", + "purl": "pkg:maven/checkstyle/checkstyle@4.1", "requirement": "4.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-impl", + "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-impl@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-velocity", + "purl": "pkg:maven/org.codehaus.plexus/plexus-velocity@1.1.2", "requirement": "1.1.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.1", "requirement": "1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/checkstyle/checkstyle-optional", + "purl": "pkg:maven/checkstyle/checkstyle-optional@4.1", "requirement": "4.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.shared/maven-plugin-testing-harness", + "purl": "pkg:maven/org.apache.maven.shared/maven-plugin-testing-harness@1.0-beta-1", "requirement": "1.0-beta-1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-checkstyle-plugin/2.2/maven-checkstyle-plugin-2.2.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-checkstyle-plugin/2.2/maven-checkstyle-plugin-2.2.pom.package.json index adcabe80e04..17d38f65c18 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-checkstyle-plugin/2.2/maven-checkstyle-plugin-2.2.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-checkstyle-plugin/2.2/maven-checkstyle-plugin-2.2.pom.package.json @@ -35,116 +35,116 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-artifact", + "purl": "pkg:maven/org.apache.maven/maven-artifact@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-model", + "purl": "pkg:maven/org.apache.maven/maven-model@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-plugin-api", + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-project", + "purl": "pkg:maven/org.apache.maven/maven-project@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-api", + "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-api@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-impl", + "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-impl@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.shared/maven-doxia-tools", + "purl": "pkg:maven/org.apache.maven.shared/maven-doxia-tools@1.0", "requirement": "1.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-9", "requirement": "1.0-alpha-9", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-resources", + "purl": "pkg:maven/org.codehaus.plexus/plexus-resources@1.0-alpha-4", "requirement": "1.0-alpha-4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.4.4", "requirement": "1.4.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-velocity", + "purl": "pkg:maven/org.codehaus.plexus/plexus-velocity@1.1.2", "requirement": "1.1.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/checkstyle/checkstyle", + "purl": "pkg:maven/checkstyle/checkstyle@4.4", "requirement": "4.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/checkstyle/checkstyle-optional", + "purl": "pkg:maven/checkstyle/checkstyle-optional@4.4", "requirement": "4.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.shared/maven-plugin-testing-harness", + "purl": "pkg:maven/org.apache.maven.shared/maven-plugin-testing-harness@1.0-beta-1", "requirement": "1.0-beta-1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-clean-plugin/2.2/maven-clean-plugin-2.2.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-clean-plugin/2.2/maven-clean-plugin-2.2.pom.package.json index 743125b613f..f3628e7b9e9 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-clean-plugin/2.2/maven-clean-plugin-2.2.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-clean-plugin/2.2/maven-clean-plugin-2.2.pom.package.json @@ -35,44 +35,44 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-project", + "purl": "pkg:maven/org.apache.maven/maven-project@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-plugin-api", + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.shared/file-management", + "purl": "pkg:maven/org.apache.maven.shared/file-management@1.2", "requirement": "1.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.1", "requirement": "1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.shared/maven-plugin-testing-harness", + "purl": "pkg:maven/org.apache.maven.shared/maven-plugin-testing-harness@1.1", "requirement": "1.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-compiler-plugin/2.0.2/maven-compiler-plugin-2.0.2.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-compiler-plugin/2.0.2/maven-compiler-plugin-2.0.2.pom.package.json index 608a85ba251..6d5f4542ac1 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-compiler-plugin/2.0.2/maven-compiler-plugin-2.0.2.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-compiler-plugin/2.0.2/maven-compiler-plugin-2.0.2.pom.package.json @@ -27,60 +27,60 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-plugin-api", + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.0.4", "requirement": "1.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-compiler-api", + "purl": "pkg:maven/org.codehaus.plexus/plexus-compiler-api@1.5.3", "requirement": "1.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-compiler-manager", + "purl": "pkg:maven/org.codehaus.plexus/plexus-compiler-manager@1.5.3", "requirement": "1.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-artifact", + "purl": "pkg:maven/org.apache.maven/maven-artifact@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-compiler-javac", + "purl": "pkg:maven/org.codehaus.plexus/plexus-compiler-javac@1.5.3", "requirement": "1.5.3", "scope": "runtime", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.shared/maven-plugin-testing-harness", + "purl": "pkg:maven/org.apache.maven.shared/maven-plugin-testing-harness@1.0-beta-1", "requirement": "1.0-beta-1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-dependency-plugin/2.0/maven-dependency-plugin-2.0.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-dependency-plugin/2.0/maven-dependency-plugin-2.0.pom.package.json index 50d1e9ab05c..6a0358051b3 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-dependency-plugin/2.0/maven-dependency-plugin-2.0.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-dependency-plugin/2.0/maven-dependency-plugin-2.0.pom.package.json @@ -56,164 +56,164 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-artifact", + "purl": "pkg:maven/org.apache.maven/maven-artifact@2.0.8", "requirement": "2.0.8", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-plugin-api", + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@2.0.8", "requirement": "2.0.8", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-project", + "purl": "pkg:maven/org.apache.maven/maven-project@2.0.8", "requirement": "2.0.8", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-model", + "purl": "pkg:maven/org.apache.maven/maven-model@2.0.8", "requirement": "2.0.8", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-core", + "purl": "pkg:maven/org.apache.maven/maven-core@2.0.8", "requirement": "2.0.8", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-archiver", + "purl": "pkg:maven/org.codehaus.plexus/plexus-archiver@1.0-alpha-9", "requirement": "1.0-alpha-9", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.4.6", "requirement": "1.4.6", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.shared/file-management", + "purl": "pkg:maven/org.apache.maven.shared/file-management@1.1", "requirement": "1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-9-stable-1", "requirement": "1.0-alpha-9-stable-1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.shared/maven-dependency-analyzer", + "purl": "pkg:maven/org.apache.maven.shared/maven-dependency-analyzer@1.0", "requirement": "1.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.shared/maven-dependency-tree", + "purl": "pkg:maven/org.apache.maven.shared/maven-dependency-tree@1.1", "requirement": "1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.shared/maven-common-artifact-filters", + "purl": "pkg:maven/org.apache.maven.shared/maven-common-artifact-filters@1.0", "requirement": "1.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-io", + "purl": "pkg:maven/org.codehaus.plexus/plexus-io@1.0-alpha-1", "requirement": "1.0-alpha-1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-api", + "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-api@2.0.6", "requirement": "2.0.6", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-impl", + "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-impl@2.0.4", "requirement": "2.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.doxia/doxia-sink-api", + "purl": "pkg:maven/org.apache.maven.doxia/doxia-sink-api@1.0-alpha-8", "requirement": "1.0-alpha-8", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.doxia/doxia-site-renderer", + "purl": "pkg:maven/org.apache.maven.doxia/doxia-site-renderer@1.0-alpha-8", "requirement": "1.0-alpha-8", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.shared/maven-plugin-testing-tools", + "purl": "pkg:maven/org.apache.maven.shared/maven-plugin-testing-tools@1.0-alpha-3", "requirement": "1.0-alpha-3", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.shared/maven-plugin-testing-harness", + "purl": "pkg:maven/org.apache.maven.shared/maven-plugin-testing-harness@1.1", "requirement": "1.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.2", "requirement": "3.8.2", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-install-plugin/2.2/maven-install-plugin-2.2.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-install-plugin/2.2/maven-install-plugin-2.2.pom.package.json index f3d027f5434..4ce9c6f6945 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-install-plugin/2.2/maven-install-plugin-2.2.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-install-plugin/2.2/maven-install-plugin-2.2.pom.package.json @@ -27,52 +27,52 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-plugin-api", + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@2.0.6", "requirement": "2.0.6", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-project", + "purl": "pkg:maven/org.apache.maven/maven-project@2.0.6", "requirement": "2.0.6", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-artifact-manager", + "purl": "pkg:maven/org.apache.maven/maven-artifact-manager@2.0.6", "requirement": "2.0.6", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-artifact", + "purl": "pkg:maven/org.apache.maven/maven-artifact@2.0.6", "requirement": "2.0.6", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-digest", + "purl": "pkg:maven/org.codehaus.plexus/plexus-digest@1.0", "requirement": "1.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.shared/maven-plugin-testing-harness", + "purl": "pkg:maven/org.apache.maven.shared/maven-plugin-testing-harness@1.0-beta-1", "requirement": "1.0-beta-1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-jar-plugin/2.2/maven-jar-plugin-2.2.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-jar-plugin/2.2/maven-jar-plugin-2.2.pom.package.json index a0334c3c198..31336cbaf62 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-jar-plugin/2.2/maven-jar-plugin-2.2.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-jar-plugin/2.2/maven-jar-plugin-2.2.pom.package.json @@ -35,68 +35,68 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-plugin-api", + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@2.0.6", "requirement": "2.0.6", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-project", + "purl": "pkg:maven/org.apache.maven/maven-project@2.0.7", "requirement": "2.0.7", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-archiver", + "purl": "pkg:maven/org.apache.maven/maven-archiver@2.3", "requirement": "2.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-archiver", + "purl": "pkg:maven/org.codehaus.plexus/plexus-archiver@1.0-alpha-9", "requirement": "1.0-alpha-9", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-io", + "purl": "pkg:maven/org.codehaus.plexus/plexus-io@1.0-alpha-1", "requirement": "1.0-alpha-1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-lang/commons-lang", + "purl": "pkg:maven/commons-lang/commons-lang@2.1", "requirement": "2.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.4.9", "requirement": "1.4.9", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.shared/maven-plugin-testing-harness", + "purl": "pkg:maven/org.apache.maven.shared/maven-plugin-testing-harness@1.1", "requirement": "1.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-plugin-parent/2.0.1/maven-plugin-parent-2.0.1.pom.json b/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-plugin-parent/2.0.1/maven-plugin-parent-2.0.1.pom.json index da7b710ae57..5c91da9f6bf 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-plugin-parent/2.0.1/maven-plugin-parent-2.0.1.pom.json +++ b/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-plugin-parent/2.0.1/maven-plugin-parent-2.0.1.pom.json @@ -197,6 +197,26 @@ "version": "2.0.1", "required": true } + ], + "dependencyManagement": [ + { + "group_id": "org.apache.maven", + "artifact_id": "maven-project", + "version": "2.0.1", + "required": true + }, + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-container-default", + "version": "1.0-alpha-8", + "required": true + }, + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-utils", + "version": "1.0.5", + "required": true + } ] } } \ No newline at end of file diff --git a/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-plugin-parent/2.0.1/maven-plugin-parent-2.0.1.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-plugin-parent/2.0.1/maven-plugin-parent-2.0.1.pom.package.json index ec9220bfc78..d6b9d23bdde 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-plugin-parent/2.0.1/maven-plugin-parent-2.0.1.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-plugin-parent/2.0.1/maven-plugin-parent-2.0.1.pom.package.json @@ -91,20 +91,44 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-plugin-api", + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@2.0.1", "requirement": "2.0.1", "scope": "compile", - "is_runtime": true, + "is_runtime": false, + "is_optional": true, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven-project@2.0.1", + "requirement": "2.0.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-8", + "requirement": "1.0-alpha-8", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.0.5", + "requirement": "1.0.5", + "scope": "dependencymanagement", + "is_runtime": false, "is_optional": false, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-pmd-plugin/2.3/maven-pmd-plugin-2.3.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-pmd-plugin/2.3/maven-pmd-plugin-2.3.pom.package.json index a6a2ff4b657..763ac946116 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-pmd-plugin/2.3/maven-pmd-plugin-2.3.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-pmd-plugin/2.3/maven-pmd-plugin-2.3.pom.package.json @@ -35,84 +35,84 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-model", + "purl": "pkg:maven/org.apache.maven/maven-model@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-plugin-api", + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-project", + "purl": "pkg:maven/org.apache.maven/maven-project@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-api", + "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-api@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-impl", + "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-impl@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.shared/maven-plugin-testing-harness", + "purl": "pkg:maven/org.apache.maven.shared/maven-plugin-testing-harness@1.0-beta-1", "requirement": "1.0-beta-1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-resources", + "purl": "pkg:maven/org.codehaus.plexus/plexus-resources@1.0-alpha-4", "requirement": "1.0-alpha-4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.4.2", "requirement": "1.4.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/pmd/pmd-jdk14", + "purl": "pkg:maven/pmd/pmd-jdk14@4.1.1", "requirement": "4.1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-artifact", + "purl": "pkg:maven/org.apache.maven/maven-artifact@2.0", "requirement": "2.0", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-release-plugin/2.0-beta-7/maven-release-plugin-2.0-beta-7.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-release-plugin/2.0-beta-7/maven-release-plugin-2.0-beta-7.pom.package.json index 8601fe2432a..d600fe54406 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-release-plugin/2.0-beta-7/maven-release-plugin-2.0-beta-7.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-release-plugin/2.0-beta-7/maven-release-plugin-2.0-beta-7.pom.package.json @@ -27,44 +27,44 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-plugin-api", + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.release/maven-release-manager", + "purl": "pkg:maven/org.apache.maven.release/maven-release-manager@1.0-alpha-4", "requirement": "1.0-alpha-4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/jmock/jmock-cglib", + "purl": "pkg:maven/jmock/jmock-cglib@1.0.1", "requirement": "1.0.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.scm/maven-scm-test", + "purl": "pkg:maven/org.apache.maven.scm/maven-scm-test@1.0", "requirement": "1.0", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.shared/maven-plugin-testing-harness", + "purl": "pkg:maven/org.apache.maven.shared/maven-plugin-testing-harness@1.0-beta-1", "requirement": "1.0-beta-1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-resources-plugin/2.2/maven-resources-plugin-2.2.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-resources-plugin/2.2/maven-resources-plugin-2.2.pom.package.json index fcbe7f6aea9..ce1c5230e82 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-resources-plugin/2.2/maven-resources-plugin-2.2.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-resources-plugin/2.2/maven-resources-plugin-2.2.pom.package.json @@ -27,36 +27,36 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-plugin-api", + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-project", + "purl": "pkg:maven/org.apache.maven/maven-project@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-model", + "purl": "pkg:maven/org.apache.maven/maven-model@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.shared/maven-plugin-testing-harness", + "purl": "pkg:maven/org.apache.maven.shared/maven-plugin-testing-harness@1.0-beta-1", "requirement": "1.0-beta-1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-site-plugin/2.0-beta-6/maven-site-plugin-2.0-beta-6.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-site-plugin/2.0-beta-6/maven-site-plugin-2.0-beta-6.pom.package.json index bd2dbbb3544..9df83de40cb 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-site-plugin/2.0-beta-6/maven-site-plugin-2.0-beta-6.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-site-plugin/2.0-beta-6/maven-site-plugin-2.0-beta-6.pom.package.json @@ -119,148 +119,148 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-artifact", + "purl": "pkg:maven/org.apache.maven/maven-artifact@2.0.2", "requirement": "2.0.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-artifact-manager", + "purl": "pkg:maven/org.apache.maven/maven-artifact-manager@2.0.2", "requirement": "2.0.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-model", + "purl": "pkg:maven/org.apache.maven/maven-model@2.0.2", "requirement": "2.0.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-plugin-api", + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-project", + "purl": "pkg:maven/org.apache.maven/maven-project@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-settings", + "purl": "pkg:maven/org.apache.maven/maven-settings@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.doxia/doxia-module-xhtml", + "purl": "pkg:maven/org.apache.maven.doxia/doxia-module-xhtml@1.0-alpha-10", "requirement": "1.0-alpha-10", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.doxia/doxia-sink-api", + "purl": "pkg:maven/org.apache.maven.doxia/doxia-sink-api@1.0-alpha-10", "requirement": "1.0-alpha-10", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.doxia/doxia-decoration-model", + "purl": "pkg:maven/org.apache.maven.doxia/doxia-decoration-model@1.0-alpha-10", "requirement": "1.0-alpha-10", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.doxia/doxia-site-renderer", + "purl": "pkg:maven/org.apache.maven.doxia/doxia-site-renderer@1.0-alpha-10", "requirement": "1.0-alpha-10", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-api", + "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-api@2.0.4", "requirement": "2.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.wagon/wagon-provider-api", + "purl": "pkg:maven/org.apache.maven.wagon/wagon-provider-api@1.0-beta-2", "requirement": "1.0-beta-2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-archiver", + "purl": "pkg:maven/org.codehaus.plexus/plexus-archiver@1.0-alpha-7", "requirement": "1.0-alpha-7", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-9", "requirement": "1.0-alpha-9", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-i18n", + "purl": "pkg:maven/org.codehaus.plexus/plexus-i18n@1.0-beta-7", "requirement": "1.0-beta-7", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.4.5", "requirement": "1.4.5", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.mortbay.jetty/jetty", + "purl": "pkg:maven/org.mortbay.jetty/jetty@6.1.5", "requirement": "6.1.5", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.shared/maven-plugin-testing-harness", + "purl": "pkg:maven/org.apache.maven.shared/maven-plugin-testing-harness@1.0-beta-1", "requirement": "1.0-beta-1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-source-plugin/2.0.4/maven-source-plugin-2.0.4.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-source-plugin/2.0.4/maven-source-plugin-2.0.4.pom.package.json index 506bfe85991..e92cc0d9aad 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-source-plugin/2.0.4/maven-source-plugin-2.0.4.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-source-plugin/2.0.4/maven-source-plugin-2.0.4.pom.package.json @@ -27,76 +27,76 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-model", + "purl": "pkg:maven/org.apache.maven/maven-model@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-artifact", + "purl": "pkg:maven/org.apache.maven/maven-artifact@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-plugin-api", + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-project", + "purl": "pkg:maven/org.apache.maven/maven-project@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-archiver", + "purl": "pkg:maven/org.codehaus.plexus/plexus-archiver@1.0-alpha-7", "requirement": "1.0-alpha-7", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.1", "requirement": "1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-9", "requirement": "1.0-alpha-9", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.shared/maven-plugin-testing-harness", + "purl": "pkg:maven/org.apache.maven.shared/maven-plugin-testing-harness@1.0-beta-1", "requirement": "1.0-beta-1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-surefire-plugin/2.4.2/maven-surefire-plugin-2.4.2.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-surefire-plugin/2.4.2/maven-surefire-plugin-2.4.2.pom.package.json index 1527914387e..8539213c673 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-surefire-plugin/2.4.2/maven-surefire-plugin-2.4.2.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-surefire-plugin/2.4.2/maven-surefire-plugin-2.4.2.pom.package.json @@ -35,52 +35,52 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-plugin-api", + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { "purl": "pkg:maven/org.apache.maven.surefire/surefire-booter", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { - "purl": "pkg:maven/org.apache.maven/maven-artifact", + "purl": "pkg:maven/org.apache.maven/maven-artifact@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-project", + "purl": "pkg:maven/org.apache.maven/maven-project@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-core", + "purl": "pkg:maven/org.apache.maven/maven-core@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-war-plugin/2.1-alpha-1/maven-war-plugin-2.1-alpha-1.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-war-plugin/2.1-alpha-1/maven-war-plugin-2.1-alpha-1.pom.package.json index fea18ec2f67..3d6dfbd5645 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-war-plugin/2.1-alpha-1/maven-war-plugin-2.1-alpha-1.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/plugins/maven-war-plugin/2.1-alpha-1/maven-war-plugin-2.1-alpha-1.pom.package.json @@ -27,60 +27,60 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-plugin-api", + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@2.0.6", "requirement": "2.0.6", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-artifact", + "purl": "pkg:maven/org.apache.maven/maven-artifact@2.0.6", "requirement": "2.0.6", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-archiver", + "purl": "pkg:maven/org.apache.maven/maven-archiver@2.2", "requirement": "2.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.4.7", "requirement": "1.4.7", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/com.thoughtworks.xstream/xstream", + "purl": "pkg:maven/com.thoughtworks.xstream/xstream@1.2.2", "requirement": "1.2.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.shared/maven-plugin-testing-harness", + "purl": "pkg:maven/org.apache.maven.shared/maven-plugin-testing-harness@1.1", "requirement": "1.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/reporting/maven-reporting-api/2.0.4/maven-reporting-api-2.0.4.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/reporting/maven-reporting-api/2.0.4/maven-reporting-api-2.0.4.pom.package.json index 14100ac76f9..68079fec333 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/reporting/maven-reporting-api/2.0.4/maven-reporting-api-2.0.4.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/reporting/maven-reporting-api/2.0.4/maven-reporting-api-2.0.4.pom.package.json @@ -35,12 +35,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven.doxia/doxia-sink-api", + "purl": "pkg:maven/org.apache.maven.doxia/doxia-sink-api@1.0-alpha-7", "requirement": "1.0-alpha-7", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/reporting/maven-reporting-api/2.0.6/maven-reporting-api-2.0.6.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/reporting/maven-reporting-api/2.0.6/maven-reporting-api-2.0.6.pom.package.json index 5102256cf48..0d813e2a04d 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/reporting/maven-reporting-api/2.0.6/maven-reporting-api-2.0.6.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/reporting/maven-reporting-api/2.0.6/maven-reporting-api-2.0.6.pom.package.json @@ -35,12 +35,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven.doxia/doxia-sink-api", + "purl": "pkg:maven/org.apache.maven.doxia/doxia-sink-api@1.0-alpha-7", "requirement": "1.0-alpha-7", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/reporting/maven-reporting-api/2.0.8/maven-reporting-api-2.0.8.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/reporting/maven-reporting-api/2.0.8/maven-reporting-api-2.0.8.pom.package.json index 5b8d5217858..441f30b039c 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/reporting/maven-reporting-api/2.0.8/maven-reporting-api-2.0.8.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/reporting/maven-reporting-api/2.0.8/maven-reporting-api-2.0.8.pom.package.json @@ -35,12 +35,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven.doxia/doxia-sink-api", + "purl": "pkg:maven/org.apache.maven.doxia/doxia-sink-api@1.0-alpha-9", "requirement": "1.0-alpha-9", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/reporting/maven-reporting-api/2.0/maven-reporting-api-2.0.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/reporting/maven-reporting-api/2.0/maven-reporting-api-2.0.pom.package.json index 147866c58eb..d4e5f8f0d8d 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/reporting/maven-reporting-api/2.0/maven-reporting-api-2.0.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/reporting/maven-reporting-api/2.0/maven-reporting-api-2.0.pom.package.json @@ -35,12 +35,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/doxia/doxia-sink-api", + "purl": "pkg:maven/doxia/doxia-sink-api@1.0-alpha-4", "requirement": "1.0-alpha-4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/reporting/maven-reporting-impl/2.0.4/maven-reporting-impl-2.0.4.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/reporting/maven-reporting-impl/2.0.4/maven-reporting-impl-2.0.4.pom.package.json index cda825f36fe..00479128b7a 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/reporting/maven-reporting-impl/2.0.4/maven-reporting-impl-2.0.4.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/reporting/maven-reporting-impl/2.0.4/maven-reporting-impl-2.0.4.pom.package.json @@ -35,60 +35,60 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-project", + "purl": "pkg:maven/org.apache.maven/maven-project@2.0.4", "requirement": "2.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-validator/commons-validator", + "purl": "pkg:maven/commons-validator/commons-validator@1.2.0", "requirement": "1.2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.doxia/doxia-core", + "purl": "pkg:maven/org.apache.maven.doxia/doxia-core@1.0-alpha-7", "requirement": "1.0-alpha-7", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-plugin-api", + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@2.0.4", "requirement": "2.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/oro/oro", + "purl": "pkg:maven/oro/oro@2.0.7", "requirement": "2.0.7", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-api", + "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-api@2.0.4", "requirement": "2.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.doxia/doxia-site-renderer", + "purl": "pkg:maven/org.apache.maven.doxia/doxia-site-renderer@1.0-alpha-7", "requirement": "1.0-alpha-7", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/reporting/maven-reporting-impl/2.0/maven-reporting-impl-2.0.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/reporting/maven-reporting-impl/2.0/maven-reporting-impl-2.0.pom.package.json index 5b5bbf8cbcb..c26740499d1 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/reporting/maven-reporting-impl/2.0/maven-reporting-impl-2.0.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/reporting/maven-reporting-impl/2.0/maven-reporting-impl-2.0.pom.package.json @@ -35,52 +35,52 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-project", + "purl": "pkg:maven/org.apache.maven/maven-project@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-validator/commons-validator", + "purl": "pkg:maven/commons-validator/commons-validator@1.1.4", "requirement": "1.1.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-plugin-api", + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/oro/oro", + "purl": "pkg:maven/oro/oro@2.0.7", "requirement": "2.0.7", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-api", + "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-api@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/doxia/doxia-core", + "purl": "pkg:maven/doxia/doxia-core@1.0-alpha-4", "requirement": "1.0-alpha-4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/scm/maven-scm-api/1.0-beta-3/maven-scm-api-1.0-beta-3.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/scm/maven-scm-api/1.0-beta-3/maven-scm-api-1.0-beta-3.pom.package.json index 1ae1c1aa8d2..192ea40ed71 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/scm/maven-scm-api/1.0-beta-3/maven-scm-api-1.0-beta-3.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/scm/maven-scm-api/1.0-beta-3/maven-scm-api-1.0-beta-3.pom.package.json @@ -27,12 +27,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/scm/maven-scm-manager-plexus/1.0-beta-3/maven-scm-manager-plexus-1.0-beta-3.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/scm/maven-scm-manager-plexus/1.0-beta-3/maven-scm-manager-plexus-1.0-beta-3.pom.package.json index d7b10716e56..f6a47aebfa9 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/scm/maven-scm-manager-plexus/1.0-beta-3/maven-scm-manager-plexus-1.0-beta-3.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/scm/maven-scm-manager-plexus/1.0-beta-3/maven-scm-manager-plexus-1.0-beta-3.pom.package.json @@ -27,12 +27,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-9", "requirement": "1.0-alpha-9", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/scm/maven-scm-managers/1.0-beta-3/maven-scm-managers-1.0-beta-3.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/scm/maven-scm-managers/1.0-beta-3/maven-scm-managers-1.0-beta-3.pom.package.json index 7e7f44bcadb..2308c5af725 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/scm/maven-scm-managers/1.0-beta-3/maven-scm-managers-1.0-beta-3.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/scm/maven-scm-managers/1.0-beta-3/maven-scm-managers-1.0-beta-3.pom.package.json @@ -27,12 +27,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven.scm/maven-scm-api", + "purl": "pkg:maven/org.apache.maven.scm/maven-scm-api@1.0-beta-3", "requirement": "1.0-beta-3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/scm/maven-scm-provider-cvs-commons/1.0-beta-3/maven-scm-provider-cvs-commons-1.0-beta-3.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/scm/maven-scm-provider-cvs-commons/1.0-beta-3/maven-scm-provider-cvs-commons-1.0-beta-3.pom.package.json index 5dcf04d01ff..3adad6ea3b2 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/scm/maven-scm-provider-cvs-commons/1.0-beta-3/maven-scm-provider-cvs-commons-1.0-beta-3.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/scm/maven-scm-provider-cvs-commons/1.0-beta-3/maven-scm-provider-cvs-commons-1.0-beta-3.pom.package.json @@ -27,12 +27,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven.scm/maven-scm-provider-cvstest", + "purl": "pkg:maven/org.apache.maven.scm/maven-scm-provider-cvstest@1.0-beta-3", "requirement": "1.0-beta-3", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/scm/maven-scm-provider-cvsexe/1.0-beta-3/maven-scm-provider-cvsexe-1.0-beta-3.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/scm/maven-scm-provider-cvsexe/1.0-beta-3/maven-scm-provider-cvsexe-1.0-beta-3.pom.package.json index d6899bd3628..d70ee37f710 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/scm/maven-scm-provider-cvsexe/1.0-beta-3/maven-scm-provider-cvsexe-1.0-beta-3.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/scm/maven-scm-provider-cvsexe/1.0-beta-3/maven-scm-provider-cvsexe-1.0-beta-3.pom.package.json @@ -27,20 +27,20 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven.scm/maven-scm-provider-cvstest", + "purl": "pkg:maven/org.apache.maven.scm/maven-scm-provider-cvstest@1.0-beta-3", "requirement": "1.0-beta-3", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.scm/maven-scm-provider-cvs-commons", + "purl": "pkg:maven/org.apache.maven.scm/maven-scm-provider-cvs-commons@1.0-beta-3", "requirement": "1.0-beta-3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/scm/maven-scm-provider-perforce/1.0-beta-3/maven-scm-provider-perforce-1.0-beta-3.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/scm/maven-scm-provider-perforce/1.0-beta-3/maven-scm-provider-perforce-1.0-beta-3.pom.package.json index 54f418db873..70cd21fc613 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/scm/maven-scm-provider-perforce/1.0-beta-3/maven-scm-provider-perforce-1.0-beta-3.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/scm/maven-scm-provider-perforce/1.0-beta-3/maven-scm-provider-perforce-1.0-beta-3.pom.package.json @@ -27,12 +27,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/regexp/regexp", + "purl": "pkg:maven/regexp/regexp@1.3", "requirement": "1.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/scm/maven-scm-provider-svnexe/1.0-beta-3/maven-scm-provider-svnexe-1.0-beta-3.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/scm/maven-scm-provider-svnexe/1.0-beta-3/maven-scm-provider-svnexe-1.0-beta-3.pom.package.json index f9c03fe1231..d734b178bec 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/scm/maven-scm-provider-svnexe/1.0-beta-3/maven-scm-provider-svnexe-1.0-beta-3.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/scm/maven-scm-provider-svnexe/1.0-beta-3/maven-scm-provider-svnexe-1.0-beta-3.pom.package.json @@ -27,28 +27,28 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven.scm/maven-scm-provider-svn-commons", + "purl": "pkg:maven/org.apache.maven.scm/maven-scm-provider-svn-commons@1.0-beta-3", "requirement": "1.0-beta-3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/regexp/regexp", + "purl": "pkg:maven/regexp/regexp@1.3", "requirement": "1.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.scm/maven-scm-provider-svntest", + "purl": "pkg:maven/org.apache.maven.scm/maven-scm-provider-svntest@1.0-beta-3", "requirement": "1.0-beta-3", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/scm/maven-scm-providers/1.0-beta-3/maven-scm-providers-1.0-beta-3.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/scm/maven-scm-providers/1.0-beta-3/maven-scm-providers-1.0-beta-3.pom.package.json index 08b4a10c96c..ca2ee752c26 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/scm/maven-scm-providers/1.0-beta-3/maven-scm-providers-1.0-beta-3.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/scm/maven-scm-providers/1.0-beta-3/maven-scm-providers-1.0-beta-3.pom.package.json @@ -27,20 +27,20 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven.scm/maven-scm-api", + "purl": "pkg:maven/org.apache.maven.scm/maven-scm-api@1.0-beta-3", "requirement": "1.0-beta-3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.scm/maven-scm-test", + "purl": "pkg:maven/org.apache.maven.scm/maven-scm-test@1.0-beta-3", "requirement": "1.0-beta-3", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/scm/maven-scm/1.0-beta-3/maven-scm-1.0-beta-3.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/scm/maven-scm/1.0-beta-3/maven-scm-1.0-beta-3.pom.package.json index 87bb388dbe5..1b8c0d59c63 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/scm/maven-scm/1.0-beta-3/maven-scm-1.0-beta-3.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/scm/maven-scm/1.0-beta-3/maven-scm-1.0-beta-3.pom.package.json @@ -27,12 +27,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.1", "requirement": "1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/shared/file-management/1.1/file-management-1.1.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/shared/file-management/1.1/file-management-1.1.pom.package.json index 51814316f55..561bbcadf9f 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/shared/file-management/1.1/file-management-1.1.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/shared/file-management/1.1/file-management-1.1.pom.package.json @@ -35,44 +35,44 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-plugin-api", + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.0.4", "requirement": "1.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.shared/maven-shared-io", + "purl": "pkg:maven/org.apache.maven.shared/maven-shared-io@1.0", "requirement": "1.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-9", "requirement": "1.0-alpha-9", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/shared/file-management/1.2/file-management-1.2.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/shared/file-management/1.2/file-management-1.2.pom.package.json index b206a931141..87f19419ffb 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/shared/file-management/1.2/file-management-1.2.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/shared/file-management/1.2/file-management-1.2.pom.package.json @@ -35,44 +35,44 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-plugin-api", + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@2.0.6", "requirement": "2.0.6", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.shared/maven-shared-io", + "purl": "pkg:maven/org.apache.maven.shared/maven-shared-io@1.1", "requirement": "1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.4.6", "requirement": "1.4.6", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-9", "requirement": "1.0-alpha-9", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/shared/maven-common-artifact-filters/1.0-alpha-1/maven-common-artifact-filters-1.0-alpha-1.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/shared/maven-common-artifact-filters/1.0-alpha-1/maven-common-artifact-filters-1.0-alpha-1.pom.package.json index e03805496ef..1a976254cb6 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/shared/maven-common-artifact-filters/1.0-alpha-1/maven-common-artifact-filters-1.0-alpha-1.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/shared/maven-common-artifact-filters/1.0-alpha-1/maven-common-artifact-filters-1.0-alpha-1.pom.package.json @@ -27,44 +27,44 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-artifact", + "purl": "pkg:maven/org.apache.maven/maven-artifact@2.0.2", "requirement": "2.0.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-9", "requirement": "1.0-alpha-9", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.shared/maven-test-tools", + "purl": "pkg:maven/org.apache.maven.shared/maven-test-tools@1.0-alpha-1", "requirement": "1.0-alpha-1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/easymock/easymock", + "purl": "pkg:maven/easymock/easymock@1.2_Java1.3", "requirement": "1.2_Java1.3", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/shared/maven-common-artifact-filters/1.0/maven-common-artifact-filters-1.0.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/shared/maven-common-artifact-filters/1.0/maven-common-artifact-filters-1.0.pom.package.json index 05cba823977..77cabe65cda 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/shared/maven-common-artifact-filters/1.0/maven-common-artifact-filters-1.0.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/shared/maven-common-artifact-filters/1.0/maven-common-artifact-filters-1.0.pom.package.json @@ -27,52 +27,52 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-artifact", + "purl": "pkg:maven/org.apache.maven/maven-artifact@2.0.8", "requirement": "2.0.8", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-9", "requirement": "1.0-alpha-9", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.shared/maven-plugin-testing-harness", + "purl": "pkg:maven/org.apache.maven.shared/maven-plugin-testing-harness@1.1", "requirement": "1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.shared/maven-test-tools", + "purl": "pkg:maven/org.apache.maven.shared/maven-test-tools@1.0-alpha-2", "requirement": "1.0-alpha-2", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/easymock/easymock", + "purl": "pkg:maven/easymock/easymock@1.2_Java1.3", "requirement": "1.2_Java1.3", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/shared/maven-dependency-analyzer/1.0/maven-dependency-analyzer-1.0.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/shared/maven-dependency-analyzer/1.0/maven-dependency-analyzer-1.0.pom.package.json index dfced1c3b72..b59f85b2159 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/shared/maven-dependency-analyzer/1.0/maven-dependency-analyzer-1.0.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/shared/maven-dependency-analyzer/1.0/maven-dependency-analyzer-1.0.pom.package.json @@ -27,68 +27,68 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/asm/asm", + "purl": "pkg:maven/asm/asm@3.0", "requirement": "3.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.4.6", "requirement": "1.4.6", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-project", + "purl": "pkg:maven/org.apache.maven/maven-project@2.0.5", "requirement": "2.0.5", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-model", + "purl": "pkg:maven/org.apache.maven/maven-model@2.0.5", "requirement": "2.0.5", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-artifact", + "purl": "pkg:maven/org.apache.maven/maven-artifact@2.0.5", "requirement": "2.0.5", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.shared/maven-plugin-testing-tools", + "purl": "pkg:maven/org.apache.maven.shared/maven-plugin-testing-tools@1.0-alpha-3", "requirement": "1.0-alpha-3", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/jmock/jmock", + "purl": "pkg:maven/jmock/jmock@1.1.0", "requirement": "1.1.0", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/shared/maven-dependency-tree/1.1/maven-dependency-tree-1.1.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/shared/maven-dependency-tree/1.1/maven-dependency-tree-1.1.pom.package.json index 3d51e9e7b1b..6c89fcee830 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/shared/maven-dependency-tree/1.1/maven-dependency-tree-1.1.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/shared/maven-dependency-tree/1.1/maven-dependency-tree-1.1.pom.package.json @@ -27,28 +27,28 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-project", + "purl": "pkg:maven/org.apache.maven/maven-project@2.0.8", "requirement": "2.0.8", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/jmock/jmock", + "purl": "pkg:maven/jmock/jmock@1.2.0", "requirement": "1.2.0", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.shared/maven-plugin-testing-harness", + "purl": "pkg:maven/org.apache.maven.shared/maven-plugin-testing-harness@1.1", "requirement": "1.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/shared/maven-osgi/0.2.0/maven-osgi-0.2.0.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/shared/maven-osgi/0.2.0/maven-osgi-0.2.0.pom.package.json index 1d5df77111d..dc0022eba7c 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/shared/maven-osgi/0.2.0/maven-osgi-0.2.0.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/shared/maven-osgi/0.2.0/maven-osgi-0.2.0.pom.package.json @@ -27,28 +27,28 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-project", + "purl": "pkg:maven/org.apache.maven/maven-project@2.0.6", "requirement": "2.0.6", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/biz.aQute/bndlib", + "purl": "pkg:maven/biz.aQute/bndlib@0.0.203", "requirement": "0.0.203", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.shared/maven-plugin-testing-harness", + "purl": "pkg:maven/org.apache.maven.shared/maven-plugin-testing-harness@1.0", "requirement": "1.0", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/shared/maven-plugin-testing-harness/1.1/maven-plugin-testing-harness-1.1.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/shared/maven-plugin-testing-harness/1.1/maven-plugin-testing-harness-1.1.pom.package.json index 153be075f55..379c5be40f2 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/shared/maven-plugin-testing-harness/1.1/maven-plugin-testing-harness-1.1.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/shared/maven-plugin-testing-harness/1.1/maven-plugin-testing-harness-1.1.pom.package.json @@ -27,44 +27,44 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-project", + "purl": "pkg:maven/org.apache.maven/maven-project@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-core", + "purl": "pkg:maven/org.apache.maven/maven-core@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.4.2", "requirement": "1.4.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-archiver", + "purl": "pkg:maven/org.codehaus.plexus/plexus-archiver@1.0-alpha-7", "requirement": "1.0-alpha-7", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/shared/maven-repository-builder/1.0-alpha-2/maven-repository-builder-1.0-alpha-2.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/shared/maven-repository-builder/1.0-alpha-2/maven-repository-builder-1.0-alpha-2.pom.package.json index 81a582e6e4f..84e43d883a4 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/shared/maven-repository-builder/1.0-alpha-2/maven-repository-builder-1.0-alpha-2.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/shared/maven-repository-builder/1.0-alpha-2/maven-repository-builder-1.0-alpha-2.pom.package.json @@ -27,76 +27,76 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-artifact", + "purl": "pkg:maven/org.apache.maven/maven-artifact@2.0.4", "requirement": "2.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-artifact-manager", + "purl": "pkg:maven/org.apache.maven/maven-artifact-manager@2.0.4", "requirement": "2.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-project", + "purl": "pkg:maven/org.apache.maven/maven-project@2.0.4", "requirement": "2.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.shared/maven-common-artifact-filters", + "purl": "pkg:maven/org.apache.maven.shared/maven-common-artifact-filters@1.0-alpha-1", "requirement": "1.0-alpha-1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.shared/maven-test-tools", + "purl": "pkg:maven/org.apache.maven.shared/maven-test-tools@1.0-alpha-1", "requirement": "1.0-alpha-1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/easymock/easymock", + "purl": "pkg:maven/easymock/easymock@1.2_Java1.3", "requirement": "1.2_Java1.3", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.wagon/wagon-file", + "purl": "pkg:maven/org.apache.maven.wagon/wagon-file@1.0-beta-2", "requirement": "1.0-beta-2", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.wagon/wagon-http-lightweight", + "purl": "pkg:maven/org.apache.maven.wagon/wagon-http-lightweight@1.0-beta-2", "requirement": "1.0-beta-2", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/shared/maven-shared-io/1.0/maven-shared-io-1.0.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/shared/maven-shared-io/1.0/maven-shared-io-1.0.pom.package.json index c9511044bc8..0d0cfdb959b 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/shared/maven-shared-io/1.0/maven-shared-io-1.0.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/shared/maven-shared-io/1.0/maven-shared-io-1.0.pom.package.json @@ -35,60 +35,60 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/easymock/easymock", + "purl": "pkg:maven/easymock/easymock@1.2_Java1.3", "requirement": "1.2_Java1.3", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-artifact", + "purl": "pkg:maven/org.apache.maven/maven-artifact@2.0.2", "requirement": "2.0.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-artifact-manager", + "purl": "pkg:maven/org.apache.maven/maven-artifact-manager@2.0.2", "requirement": "2.0.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.wagon/wagon-provider-api", + "purl": "pkg:maven/org.apache.maven.wagon/wagon-provider-api@1.0-alpha-6", "requirement": "1.0-alpha-6", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.2", "requirement": "1.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-9", "requirement": "1.0-alpha-9", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-plugin-api", + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.pom.package.json index 7413a1a3515..35835b7f1a8 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.pom.package.json @@ -35,60 +35,60 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-artifact", + "purl": "pkg:maven/org.apache.maven/maven-artifact@2.0.2", "requirement": "2.0.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-artifact-manager", + "purl": "pkg:maven/org.apache.maven/maven-artifact-manager@2.0.2", "requirement": "2.0.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.wagon/wagon-provider-api", + "purl": "pkg:maven/org.apache.maven.wagon/wagon-provider-api@1.0-alpha-6", "requirement": "1.0-alpha-6", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-plugin-api", + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.4.6", "requirement": "1.4.6", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-9", "requirement": "1.0-alpha-9", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/easymock/easymock", + "purl": "pkg:maven/easymock/easymock@1.2_Java1.3", "requirement": "1.2_Java1.3", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/surefire/surefire-api/2.4.2/surefire-api-2.4.2.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/surefire/surefire-api/2.4.2/surefire-api-2.4.2.pom.package.json index 1a5a1dd819a..81787befdf1 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/surefire/surefire-api/2.4.2/surefire-api-2.4.2.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/surefire/surefire-api/2.4.2/surefire-api-2.4.2.pom.package.json @@ -27,20 +27,20 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/jmock/jmock", + "purl": "pkg:maven/jmock/jmock@1.0.1", "requirement": "1.0.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/surefire/surefire-booter/2.4.2/surefire-booter-2.4.2.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/surefire/surefire-booter/2.4.2/surefire-booter-2.4.2.pom.package.json index f1429c78b7c..002cf747b59 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/surefire/surefire-booter/2.4.2/surefire-booter-2.4.2.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/surefire/surefire-booter/2.4.2/surefire-booter-2.4.2.pom.package.json @@ -27,28 +27,28 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/jmock/jmock", + "purl": "pkg:maven/jmock/jmock@1.0.1", "requirement": "1.0.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.surefire/surefire-api", + "purl": "pkg:maven/org.apache.maven.surefire/surefire-api@2.4.2", "requirement": "2.4.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/surefire/surefire-providers/2.4.2/surefire-providers-2.4.2.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/surefire/surefire-providers/2.4.2/surefire-providers-2.4.2.pom.package.json index ce56d070535..4a26b38fffd 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/surefire/surefire-providers/2.4.2/surefire-providers-2.4.2.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/surefire/surefire-providers/2.4.2/surefire-providers-2.4.2.pom.package.json @@ -30,9 +30,9 @@ "purl": "pkg:maven/org.apache.maven.surefire/surefire-api", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/surefire/surefire-testng/2.4.2/surefire-testng-2.4.2.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/surefire/surefire-testng/2.4.2/surefire-testng-2.4.2.pom.package.json index 76d7ac6765e..1d30ab5ce56 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/surefire/surefire-testng/2.4.2/surefire-testng-2.4.2.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/surefire/surefire-testng/2.4.2/surefire-testng-2.4.2.pom.package.json @@ -27,28 +27,28 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-artifact", + "purl": "pkg:maven/org.apache.maven/maven-artifact@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.testng/testng", + "purl": "pkg:maven/org.testng/testng@5.7", "requirement": "5.7", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/surefire/surefire/2.4.2/surefire-2.4.2.pom.json b/tests/packagedcode/data/m2/org/apache/maven/surefire/surefire/2.4.2/surefire-2.4.2.pom.json index cbf8976b046..9b463d50588 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/surefire/surefire/2.4.2/surefire-2.4.2.pom.json +++ b/tests/packagedcode/data/m2/org/apache/maven/surefire/surefire/2.4.2/surefire-2.4.2.pom.json @@ -92,6 +92,26 @@ "version": "1.0.1", "required": true } + ], + "dependencyManagement": [ + { + "group_id": "org.apache.maven.surefire", + "artifact_id": "surefire-api", + "version": "2.4.2", + "required": true + }, + { + "group_id": "org.apache.maven.surefire", + "artifact_id": "surefire-booter", + "version": "2.4.2", + "required": true + }, + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-utils", + "version": "1.4.9", + "required": true + } ] } } \ No newline at end of file diff --git a/tests/packagedcode/data/m2/org/apache/maven/surefire/surefire/2.4.2/surefire-2.4.2.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/surefire/surefire/2.4.2/surefire-2.4.2.pom.package.json index 5ef1dae5364..7fd94bb8e0f 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/surefire/surefire/2.4.2/surefire-2.4.2.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/surefire/surefire/2.4.2/surefire-2.4.2.pom.package.json @@ -42,20 +42,44 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/jmock/jmock", + "purl": "pkg:maven/jmock/jmock@1.0.1", "requirement": "1.0.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.surefire/surefire-api@2.4.2", + "requirement": "2.4.2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.surefire/surefire-booter@2.4.2", + "requirement": "2.4.2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.4.9", + "requirement": "1.4.9", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-file/1.0-alpha-5/wagon-file-1.0-alpha-5.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-file/1.0-alpha-5/wagon-file-1.0-alpha-5.pom.package.json index 98c0ed0e55a..1d2424935f9 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-file/1.0-alpha-5/wagon-file-1.0-alpha-5.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-file/1.0-alpha-5/wagon-file-1.0-alpha-5.pom.package.json @@ -63,52 +63,52 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.0.4", "requirement": "1.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.wagon/wagon-provider-api", + "purl": "pkg:maven/org.apache.maven.wagon/wagon-provider-api@1.0-alpha-5", "requirement": "1.0-alpha-5", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-8", "requirement": "1.0-alpha-8", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/classworlds/classworlds", + "purl": "pkg:maven/classworlds/classworlds@1.1-alpha-2", "requirement": "1.1-alpha-2", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.wagon/wagon-provider-test", + "purl": "pkg:maven/org.apache.maven.wagon/wagon-provider-test@1.0-alpha-5", "requirement": "1.0-alpha-5", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-http-lightweight/1.0-alpha-5/wagon-http-lightweight-1.0-alpha-5.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-http-lightweight/1.0-alpha-5/wagon-http-lightweight-1.0-alpha-5.pom.package.json index 73f9ca06237..832f4167379 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-http-lightweight/1.0-alpha-5/wagon-http-lightweight-1.0-alpha-5.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-http-lightweight/1.0-alpha-5/wagon-http-lightweight-1.0-alpha-5.pom.package.json @@ -63,76 +63,76 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.0.4", "requirement": "1.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.wagon/wagon-provider-api", + "purl": "pkg:maven/org.apache.maven.wagon/wagon-provider-api@1.0-alpha-5", "requirement": "1.0-alpha-5", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-8", "requirement": "1.0-alpha-8", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/servletapi/servletapi", + "purl": "pkg:maven/servletapi/servletapi@2.3", "requirement": "2.3", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/classworlds/classworlds", + "purl": "pkg:maven/classworlds/classworlds@1.1-alpha-2", "requirement": "1.1-alpha-2", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/jetty/jetty", + "purl": "pkg:maven/jetty/jetty@4.2.10", "requirement": "4.2.10", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/plexus/plexus-jetty-httpd", + "purl": "pkg:maven/plexus/plexus-jetty-httpd@1.0-beta-1", "requirement": "1.0-beta-1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.wagon/wagon-provider-test", + "purl": "pkg:maven/org.apache.maven.wagon/wagon-provider-test@1.0-alpha-5", "requirement": "1.0-alpha-5", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-http-lightweight/1.0-beta-2/wagon-http-lightweight-1.0-beta-2.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-http-lightweight/1.0-beta-2/wagon-http-lightweight-1.0-beta-2.pom.package.json index 5ec1e0a93a2..947d92ecb20 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-http-lightweight/1.0-beta-2/wagon-http-lightweight-1.0-beta-2.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-http-lightweight/1.0-beta-2/wagon-http-lightweight-1.0-beta-2.pom.package.json @@ -27,28 +27,28 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven.wagon/wagon-http-shared", + "purl": "pkg:maven/org.apache.maven.wagon/wagon-http-shared@1.0-beta-2", "requirement": "1.0-beta-2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/xml-apis/xml-apis", + "purl": "pkg:maven/xml-apis/xml-apis@1.0.b2", "requirement": "1.0.b2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/plexus/plexus-jetty-httpd", + "purl": "pkg:maven/plexus/plexus-jetty-httpd@1.0-beta-1", "requirement": "1.0-beta-1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-http-shared/1.0-beta-2/wagon-http-shared-1.0-beta-2.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-http-shared/1.0-beta-2/wagon-http-shared-1.0-beta-2.pom.package.json index 0b62134f31a..410693bc83e 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-http-shared/1.0-beta-2/wagon-http-shared-1.0-beta-2.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-http-shared/1.0-beta-2/wagon-http-shared-1.0-beta-2.pom.package.json @@ -27,12 +27,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/jtidy/jtidy", + "purl": "pkg:maven/jtidy/jtidy@4aug2000r7-dev", "requirement": "4aug2000r7-dev", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-provider-api/1.0-alpha-5/wagon-provider-api-1.0-alpha-5.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-provider-api/1.0-alpha-5/wagon-provider-api-1.0-alpha-5.pom.package.json index f8784e0d039..b8540a1243b 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-provider-api/1.0-alpha-5/wagon-provider-api-1.0-alpha-5.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-provider-api/1.0-alpha-5/wagon-provider-api-1.0-alpha-5.pom.package.json @@ -63,20 +63,20 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.0.4", "requirement": "1.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-provider-api/1.0-alpha-6/wagon-provider-api-1.0-alpha-6.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-provider-api/1.0-alpha-6/wagon-provider-api-1.0-alpha-6.pom.package.json index a8c81278e65..8fb8e4bf0e7 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-provider-api/1.0-alpha-6/wagon-provider-api-1.0-alpha-6.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-provider-api/1.0-alpha-6/wagon-provider-api-1.0-alpha-6.pom.package.json @@ -30,9 +30,9 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.pom.package.json index d417f2f44d5..495a9f5a071 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.pom.package.json @@ -30,9 +30,9 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-providers/1.0-beta-2/wagon-providers-1.0-beta-2.pom.json b/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-providers/1.0-beta-2/wagon-providers-1.0-beta-2.pom.json index b3923bcd3d9..180b5fa848e 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-providers/1.0-beta-2/wagon-providers-1.0-beta-2.pom.json +++ b/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-providers/1.0-beta-2/wagon-providers-1.0-beta-2.pom.json @@ -57,6 +57,20 @@ "version": "latest.release", "required": true } + ], + "dependencyManagement": [ + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-ssh-common", + "version": "1.0-beta-2", + "required": true + }, + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-ssh-common-test", + "version": "1.0-beta-2", + "required": true + } ] } } \ No newline at end of file diff --git a/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-providers/1.0-beta-2/wagon-providers-1.0-beta-2.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-providers/1.0-beta-2/wagon-providers-1.0-beta-2.pom.package.json index 5acc51724b8..f5e999d3be5 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-providers/1.0-beta-2/wagon-providers-1.0-beta-2.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-providers/1.0-beta-2/wagon-providers-1.0-beta-2.pom.package.json @@ -32,15 +32,31 @@ "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven.wagon/wagon-provider-api", "requirement": null, "scope": "compile", - "is_runtime": true, + "is_runtime": false, + "is_optional": true, + "is_resolved": null + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-ssh-common@1.0-beta-2", + "requirement": "1.0-beta-2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-ssh-common-test@1.0-beta-2", + "requirement": "1.0-beta-2", + "scope": "dependencymanagement", + "is_runtime": false, "is_optional": false, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-ssh-common/1.0-beta-2/wagon-ssh-common-1.0-beta-2.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-ssh-common/1.0-beta-2/wagon-ssh-common-1.0-beta-2.pom.package.json index 5ad006ad611..4063ef18a8c 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-ssh-common/1.0-beta-2/wagon-ssh-common-1.0-beta-2.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-ssh-common/1.0-beta-2/wagon-ssh-common-1.0-beta-2.pom.package.json @@ -30,17 +30,17 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-interactivity-api", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-ssh-external/1.0-beta-2/wagon-ssh-external-1.0-beta-2.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-ssh-external/1.0-beta-2/wagon-ssh-external-1.0-beta-2.pom.package.json index af99afc6e14..f5d210b2d28 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-ssh-external/1.0-beta-2/wagon-ssh-external-1.0-beta-2.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-ssh-external/1.0-beta-2/wagon-ssh-external-1.0-beta-2.pom.package.json @@ -30,17 +30,17 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven.wagon/wagon-ssh-common", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven.wagon/wagon-ssh-common-test", @@ -48,7 +48,7 @@ "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-ssh/1.0-alpha-5/wagon-ssh-1.0-alpha-5.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-ssh/1.0-alpha-5/wagon-ssh-1.0-alpha-5.pom.package.json index 09b8ec2b7bc..2ebd5b98894 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-ssh/1.0-alpha-5/wagon-ssh-1.0-alpha-5.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-ssh/1.0-alpha-5/wagon-ssh-1.0-alpha-5.pom.package.json @@ -63,76 +63,76 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/com.jcraft/jsch", + "purl": "pkg:maven/com.jcraft/jsch@0.1.23", "requirement": "0.1.23", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.0.4", "requirement": "1.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.wagon/wagon-provider-api", + "purl": "pkg:maven/org.apache.maven.wagon/wagon-provider-api@1.0-alpha-5", "requirement": "1.0-alpha-5", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-8", "requirement": "1.0-alpha-8", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/classworlds/classworlds", + "purl": "pkg:maven/classworlds/classworlds@1.1-alpha-2", "requirement": "1.1-alpha-2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/plexus/plexus-utils", + "purl": "pkg:maven/plexus/plexus-utils@1.0.2", "requirement": "1.0.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-interactivity-api", + "purl": "pkg:maven/org.codehaus.plexus/plexus-interactivity-api@1.0-alpha-4", "requirement": "1.0-alpha-4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.wagon/wagon-provider-test", + "purl": "pkg:maven/org.apache.maven.wagon/wagon-provider-test@1.0-alpha-5", "requirement": "1.0-alpha-5", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-ssh/1.0-beta-2/wagon-ssh-1.0-beta-2.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-ssh/1.0-beta-2/wagon-ssh-1.0-beta-2.pom.package.json index 05471153136..02f6f0b5ea4 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-ssh/1.0-beta-2/wagon-ssh-1.0-beta-2.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon-ssh/1.0-beta-2/wagon-ssh-1.0-beta-2.pom.package.json @@ -27,36 +27,36 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/com.jcraft/jsch", + "purl": "pkg:maven/com.jcraft/jsch@0.1.27", "requirement": "0.1.27", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-interactivity-api", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven.wagon/wagon-ssh-common", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven.wagon/wagon-ssh-common-test", @@ -64,7 +64,7 @@ "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon/1.0-alpha-6/wagon-1.0-alpha-6.pom.json b/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon/1.0-alpha-6/wagon-1.0-alpha-6.pom.json index 08ca41b7d74..f1fd464ef7d 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon/1.0-alpha-6/wagon-1.0-alpha-6.pom.json +++ b/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon/1.0-alpha-6/wagon-1.0-alpha-6.pom.json @@ -109,6 +109,38 @@ "version": "3.8.1", "required": true } + ], + "dependencyManagement": [ + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-provider-api", + "version": "1.0-alpha-6", + "required": true + }, + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-provider-test", + "version": "1.0-alpha-6", + "required": true + }, + { + "group_id": "junit", + "artifact_id": "junit", + "version": "3.8.1", + "required": true + }, + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-container-default", + "version": "1.0-alpha-8", + "required": true + }, + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-utils", + "version": "1.0.4", + "required": true + } ] } } \ No newline at end of file diff --git a/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon/1.0-alpha-6/wagon-1.0-alpha-6.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon/1.0-alpha-6/wagon-1.0-alpha-6.pom.package.json index 86f2d2d37f7..e1ab1338428 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon/1.0-alpha-6/wagon-1.0-alpha-6.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon/1.0-alpha-6/wagon-1.0-alpha-6.pom.package.json @@ -63,12 +63,52 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-provider-api@1.0-alpha-6", + "requirement": "1.0-alpha-6", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-provider-test@1.0-alpha-6", + "requirement": "1.0-alpha-6", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/junit/junit@3.8.1", + "requirement": "3.8.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-8", + "requirement": "1.0-alpha-8", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.0.4", + "requirement": "1.0.4", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon/1.0-beta-2/wagon-1.0-beta-2.pom.json b/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon/1.0-beta-2/wagon-1.0-beta-2.pom.json index f779febfae7..17072f9739f 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon/1.0-beta-2/wagon-1.0-beta-2.pom.json +++ b/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon/1.0-beta-2/wagon-1.0-beta-2.pom.json @@ -74,6 +74,56 @@ "version": "3.8.1", "required": true } + ], + "dependencyManagement": [ + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-provider-api", + "version": "1.0-beta-2", + "required": true + }, + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-provider-test", + "version": "1.0-beta-2", + "required": true + }, + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-ssh-common-test", + "version": "1.0-beta-2", + "required": true + }, + { + "group_id": "org.apache.maven.wagon", + "artifact_id": "wagon-ssh-common", + "version": "1.0-beta-2", + "required": true + }, + { + "group_id": "junit", + "artifact_id": "junit", + "version": "3.8.1", + "required": true + }, + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-interactivity-api", + "version": "1.0-alpha-4", + "required": true + }, + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-container-default", + "version": "1.0-alpha-8", + "required": true + }, + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-utils", + "version": "1.0.4", + "required": true + } ] } } \ No newline at end of file diff --git a/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon/1.0-beta-2/wagon-1.0-beta-2.pom.package.json b/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon/1.0-beta-2/wagon-1.0-beta-2.pom.package.json index 8583507aa64..88035f8ed72 100644 --- a/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon/1.0-beta-2/wagon-1.0-beta-2.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/maven/wagon/wagon/1.0-beta-2/wagon-1.0-beta-2.pom.package.json @@ -35,12 +35,76 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-provider-api@1.0-beta-2", + "requirement": "1.0-beta-2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-provider-test@1.0-beta-2", + "requirement": "1.0-beta-2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-ssh-common-test@1.0-beta-2", + "requirement": "1.0-beta-2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.wagon/wagon-ssh-common@1.0-beta-2", + "requirement": "1.0-beta-2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/junit/junit@3.8.1", + "requirement": "3.8.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-interactivity-api@1.0-alpha-4", + "requirement": "1.0-alpha-4", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-8", + "requirement": "1.0-alpha-8", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.0.4", + "requirement": "1.0.4", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/mina/build/1.1.1/build-1.1.1.pom.package.json b/tests/packagedcode/data/m2/org/apache/mina/build/1.1.1/build-1.1.1.pom.package.json index a854eb31cc1..31c1e548879 100644 --- a/tests/packagedcode/data/m2/org/apache/mina/build/1.1.1/build-1.1.1.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/mina/build/1.1.1/build-1.1.1.pom.package.json @@ -42,12 +42,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/mina/mina-core/1.1.1/mina-core-1.1.1.pom.package.json b/tests/packagedcode/data/m2/org/apache/mina/mina-core/1.1.1/mina-core-1.1.1.pom.package.json index 2100ef27345..485ce18ef79 100644 --- a/tests/packagedcode/data/m2/org/apache/mina/mina-core/1.1.1/mina-core-1.1.1.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/mina/mina-core/1.1.1/mina-core-1.1.1.pom.package.json @@ -27,28 +27,28 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.slf4j/slf4j-api", + "purl": "pkg:maven/org.slf4j/slf4j-api@1.4.2", "requirement": "1.4.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.slf4j/slf4j-simple", + "purl": "pkg:maven/org.slf4j/slf4j-simple@1.4.2", "requirement": "1.4.2", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/easymock/easymock", + "purl": "pkg:maven/easymock/easymock@1.2_Java1.3", "requirement": "1.2_Java1.3", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/myfaces/core/myfaces-api/1.1.5/myfaces-api-1.1.5.pom.package.json b/tests/packagedcode/data/m2/org/apache/myfaces/core/myfaces-api/1.1.5/myfaces-api-1.1.5.pom.package.json index 3fffd4905aa..897ac3b037d 100644 --- a/tests/packagedcode/data/m2/org/apache/myfaces/core/myfaces-api/1.1.5/myfaces-api-1.1.5.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/myfaces/core/myfaces-api/1.1.5/myfaces-api-1.1.5.pom.package.json @@ -27,92 +27,92 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/commons-lang/commons-lang", + "purl": "pkg:maven/commons-lang/commons-lang@2.1", "requirement": "2.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-beanutils/commons-beanutils", + "purl": "pkg:maven/commons-beanutils/commons-beanutils@1.7.0", "requirement": "1.7.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/jstl", + "purl": "pkg:maven/javax.servlet/jstl@1.1.0", "requirement": "1.1.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-logging/commons-logging", + "purl": "pkg:maven/commons-logging/commons-logging@1.0.4", "requirement": "1.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-digester/commons-digester", + "purl": "pkg:maven/commons-digester/commons-digester@1.6", "requirement": "1.6", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/easymock/easymockclassextension", + "purl": "pkg:maven/easymock/easymockclassextension@1.1", "requirement": "1.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.struts.shale/shale-test", + "purl": "pkg:maven/org.apache.struts.shale/shale-test@1.0.2", "requirement": "1.0.2", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/easymock/easymock", + "purl": "pkg:maven/easymock/easymock@1.1", "requirement": "1.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/aspectj/aspectjrt", + "purl": "pkg:maven/aspectj/aspectjrt@1.2.1", "requirement": "1.2.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/servlet-api", + "purl": "pkg:maven/javax.servlet/servlet-api@2.3", "requirement": "2.3", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/jsp-api", + "purl": "pkg:maven/javax.servlet/jsp-api@2.0", "requirement": "2.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/myfaces/core/myfaces-impl/1.1.5/myfaces-impl-1.1.5.pom.package.json b/tests/packagedcode/data/m2/org/apache/myfaces/core/myfaces-impl/1.1.5/myfaces-impl-1.1.5.pom.package.json index 935823b5c13..8859d83bf7a 100644 --- a/tests/packagedcode/data/m2/org/apache/myfaces/core/myfaces-impl/1.1.5/myfaces-impl-1.1.5.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/myfaces/core/myfaces-impl/1.1.5/myfaces-impl-1.1.5.pom.package.json @@ -27,92 +27,92 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/javax.servlet/servlet-api", + "purl": "pkg:maven/javax.servlet/servlet-api@2.3", "requirement": "2.3", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.myfaces.core/myfaces-api", + "purl": "pkg:maven/org.apache.myfaces.core/myfaces-api@1.1.5", "requirement": "1.1.5", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/jsp-api", + "purl": "pkg:maven/javax.servlet/jsp-api@2.0", "requirement": "2.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.myfaces.shared/myfaces-shared-impl", + "purl": "pkg:maven/org.apache.myfaces.shared/myfaces-shared-impl@2.0.5", "requirement": "2.0.5", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/portlet-api/portlet-api", + "purl": "pkg:maven/portlet-api/portlet-api@1.0", "requirement": "1.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-el/commons-el", + "purl": "pkg:maven/commons-el/commons-el@1.0", "requirement": "1.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-collections/commons-collections", + "purl": "pkg:maven/commons-collections/commons-collections@3.1", "requirement": "3.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-logging/commons-logging", + "purl": "pkg:maven/commons-logging/commons-logging@1.0.4", "requirement": "1.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-codec/commons-codec", + "purl": "pkg:maven/commons-codec/commons-codec@1.3", "requirement": "1.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.struts.shale/shale-test", + "purl": "pkg:maven/org.apache.struts.shale/shale-test@1.0.2", "requirement": "1.0.2", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/cactus/cactus", + "purl": "pkg:maven/cactus/cactus@13-1.7.1", "requirement": "13-1.7.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/myfaces/maven/myfaces-master/1.0.5/myfaces-master-1.0.5.pom.package.json b/tests/packagedcode/data/m2/org/apache/myfaces/maven/myfaces-master/1.0.5/myfaces-master-1.0.5.pom.package.json index 7193ffcdf11..7fc4dc4610f 100644 --- a/tests/packagedcode/data/m2/org/apache/myfaces/maven/myfaces-master/1.0.5/myfaces-master-1.0.5.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/myfaces/maven/myfaces-master/1.0.5/myfaces-master-1.0.5.pom.package.json @@ -301,12 +301,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/myfaces/tomahawk/tomahawk-project/1.1.5/tomahawk-project-1.1.5.pom.json b/tests/packagedcode/data/m2/org/apache/myfaces/tomahawk/tomahawk-project/1.1.5/tomahawk-project-1.1.5.pom.json index 672efcbe38e..f3a41fa9836 100644 --- a/tests/packagedcode/data/m2/org/apache/myfaces/tomahawk/tomahawk-project/1.1.5/tomahawk-project-1.1.5.pom.json +++ b/tests/packagedcode/data/m2/org/apache/myfaces/tomahawk/tomahawk-project/1.1.5/tomahawk-project-1.1.5.pom.json @@ -51,5 +51,26 @@ } ], "plugin_repositories": [], - "dependencies": {} + "dependencies": { + "dependencyManagement": [ + { + "group_id": "org.apache.myfaces.core", + "artifact_id": "myfaces-api", + "version": "1.1.5", + "required": true + }, + { + "group_id": "org.apache.myfaces.core", + "artifact_id": "myfaces-impl", + "version": "1.1.5", + "required": true + }, + { + "group_id": "org.apache.myfaces.shared", + "artifact_id": "myfaces-shared-tomahawk", + "version": "2.0.5", + "required": true + } + ] + } } \ No newline at end of file diff --git a/tests/packagedcode/data/m2/org/apache/myfaces/tomahawk/tomahawk-project/1.1.5/tomahawk-project-1.1.5.pom.package.json b/tests/packagedcode/data/m2/org/apache/myfaces/tomahawk/tomahawk-project/1.1.5/tomahawk-project-1.1.5.pom.package.json index e852d519c8b..9b67a5e1e07 100644 --- a/tests/packagedcode/data/m2/org/apache/myfaces/tomahawk/tomahawk-project/1.1.5/tomahawk-project-1.1.5.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/myfaces/tomahawk/tomahawk-project/1.1.5/tomahawk-project-1.1.5.pom.package.json @@ -25,7 +25,32 @@ "declared_license": null, "notice_text": null, "root_path": null, - "dependencies": [], + "dependencies": [ + { + "purl": "pkg:maven/org.apache.myfaces.core/myfaces-api@1.1.5", + "requirement": "1.1.5", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.myfaces.core/myfaces-impl@1.1.5", + "requirement": "1.1.5", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.myfaces.shared/myfaces-shared-tomahawk@2.0.5", + "requirement": "2.0.5", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + } + ], "contains_source_code": null, "source_packages": [ "pkg:maven/org.apache.myfaces.tomahawk/tomahawk-project@1.1.5?classifier=sources" diff --git a/tests/packagedcode/data/m2/org/apache/myfaces/tomahawk/tomahawk/1.1.5/tomahawk-1.1.5.pom.package.json b/tests/packagedcode/data/m2/org/apache/myfaces/tomahawk/tomahawk/1.1.5/tomahawk-1.1.5.pom.package.json index 001fb11d3de..96012261ff2 100644 --- a/tests/packagedcode/data/m2/org/apache/myfaces/tomahawk/tomahawk/1.1.5/tomahawk-1.1.5.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/myfaces/tomahawk/tomahawk/1.1.5/tomahawk-1.1.5.pom.package.json @@ -27,84 +27,84 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/commons-logging/commons-logging", + "purl": "pkg:maven/commons-logging/commons-logging@1.0.4", "requirement": "1.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-validator/commons-validator", + "purl": "pkg:maven/commons-validator/commons-validator@1.3.1", "requirement": "1.3.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-fileupload/commons-fileupload", + "purl": "pkg:maven/commons-fileupload/commons-fileupload@1.0", "requirement": "1.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-collections/commons-collections", + "purl": "pkg:maven/commons-collections/commons-collections@3.1", "requirement": "3.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/struts/struts", + "purl": "pkg:maven/struts/struts@1.2.9", "requirement": "1.2.9", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-el/commons-el", + "purl": "pkg:maven/commons-el/commons-el@1.0", "requirement": "1.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-codec/commons-codec", + "purl": "pkg:maven/commons-codec/commons-codec@1.3", "requirement": "1.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/oro/oro", + "purl": "pkg:maven/oro/oro@2.0.8", "requirement": "2.0.8", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-lang/commons-lang", + "purl": "pkg:maven/commons-lang/commons-lang@2.1", "requirement": "2.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/jstl", + "purl": "pkg:maven/javax.servlet/jstl@1.1.0", "requirement": "1.1.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { "purl": "pkg:maven/org.apache.myfaces.core/myfaces-api", @@ -112,7 +112,7 @@ "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": null }, { "purl": "pkg:maven/org.apache.myfaces.shared/myfaces-shared-tomahawk", @@ -120,31 +120,31 @@ "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": null }, { - "purl": "pkg:maven/javax.servlet/jsp-api", + "purl": "pkg:maven/javax.servlet/jsp-api@2.0", "requirement": "2.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/servlet-api", + "purl": "pkg:maven/javax.servlet/servlet-api@2.3", "requirement": "2.3", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/portlet-api/portlet-api", + "purl": "pkg:maven/portlet-api/portlet-api@1.0", "requirement": "1.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { "purl": "pkg:maven/org.apache.myfaces.core/myfaces-impl", @@ -152,71 +152,71 @@ "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": null }, { - "purl": "pkg:maven/cactus/cactus", + "purl": "pkg:maven/cactus/cactus@13-1.7.1", "requirement": "13-1.7.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/aspectj/aspectjrt", + "purl": "pkg:maven/aspectj/aspectjrt@1.2.1", "requirement": "1.2.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/easymock/easymock", + "purl": "pkg:maven/easymock/easymock@1.1", "requirement": "1.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/easymock/easymockclassextension", + "purl": "pkg:maven/easymock/easymockclassextension@1.1", "requirement": "1.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.shale/shale-test", + "purl": "pkg:maven/org.apache.shale/shale-test@1.0.3", "requirement": "1.0.3", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/jmock/jmock", + "purl": "pkg:maven/jmock/jmock@1.0.1", "requirement": "1.0.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/jmock/jmock-cglib", + "purl": "pkg:maven/jmock/jmock-cglib@1.0.1", "requirement": "1.0.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/maven-taglib/maven-taglib-plugin", + "purl": "pkg:maven/maven-taglib/maven-taglib-plugin@1.4.2", "requirement": "1.4.2", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/shale/shale-parent/1.0.4/shale-parent-1.0.4.pom.json b/tests/packagedcode/data/m2/org/apache/shale/shale-parent/1.0.4/shale-parent-1.0.4.pom.json index ede562a6271..531c95a7eb7 100644 --- a/tests/packagedcode/data/m2/org/apache/shale/shale-parent/1.0.4/shale-parent-1.0.4.pom.json +++ b/tests/packagedcode/data/m2/org/apache/shale/shale-parent/1.0.4/shale-parent-1.0.4.pom.json @@ -62,5 +62,92 @@ } ], "plugin_repositories": [], - "dependencies": {} + "dependencies": { + "dependencyManagement": [ + { + "group_id": "antlr", + "artifact_id": "antlr", + "version": "2.7.2", + "required": true + }, + { + "group_id": "commons-chain", + "artifact_id": "commons-chain", + "version": "1.1", + "required": true + }, + { + "group_id": "commons-digester", + "artifact_id": "commons-digester", + "version": "1.8", + "required": true + }, + { + "group_id": "commons-logging", + "artifact_id": "commons-logging", + "version": "1.1", + "required": true + }, + { + "group_id": "commons-validator", + "artifact_id": "commons-validator", + "version": "1.3.1", + "required": true + }, + { + "group_id": "htmlunit", + "artifact_id": "htmlunit", + "version": "1.8", + "required": true + }, + { + "group_id": "javax.portlet", + "artifact_id": "portlet-api", + "version": "1.0", + "required": true + }, + { + "group_id": "javax.servlet", + "artifact_id": "jsp-api", + "version": "2.0", + "required": true + }, + { + "group_id": "javax.servlet", + "artifact_id": "jstl", + "version": "1.1.2", + "required": true + }, + { + "group_id": "javax.servlet", + "artifact_id": "servlet-api", + "version": "2.4", + "required": true + }, + { + "group_id": "junit", + "artifact_id": "junit", + "version": "3.8.1", + "required": true + }, + { + "group_id": "org.apache.myfaces.core", + "artifact_id": "myfaces-api", + "version": "1.1.4", + "required": true + }, + { + "group_id": "oro", + "artifact_id": "oro", + "version": "2.0.8", + "required": true + }, + { + "group_id": "taglibs", + "artifact_id": "standard", + "version": "1.1.2", + "required": true + } + ] + } } \ No newline at end of file diff --git a/tests/packagedcode/data/m2/org/apache/shale/shale-parent/1.0.4/shale-parent-1.0.4.pom.package.json b/tests/packagedcode/data/m2/org/apache/shale/shale-parent/1.0.4/shale-parent-1.0.4.pom.package.json index ac3dbf6fbb6..d2c4972130f 100644 --- a/tests/packagedcode/data/m2/org/apache/shale/shale-parent/1.0.4/shale-parent-1.0.4.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/shale/shale-parent/1.0.4/shale-parent-1.0.4.pom.package.json @@ -25,7 +25,120 @@ "declared_license": null, "notice_text": null, "root_path": null, - "dependencies": [], + "dependencies": [ + { + "purl": "pkg:maven/antlr/antlr@2.7.2", + "requirement": "2.7.2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/commons-chain/commons-chain@1.1", + "requirement": "1.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/commons-digester/commons-digester@1.8", + "requirement": "1.8", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/commons-logging/commons-logging@1.1", + "requirement": "1.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/commons-validator/commons-validator@1.3.1", + "requirement": "1.3.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/htmlunit/htmlunit@1.8", + "requirement": "1.8", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/javax.portlet/portlet-api@1.0", + "requirement": "1.0", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/javax.servlet/jsp-api@2.0", + "requirement": "2.0", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/javax.servlet/jstl@1.1.2", + "requirement": "1.1.2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/javax.servlet/servlet-api@2.4", + "requirement": "2.4", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/junit/junit@3.8.1", + "requirement": "3.8.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.myfaces.core/myfaces-api@1.1.4", + "requirement": "1.1.4", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/oro/oro@2.0.8", + "requirement": "2.0.8", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/taglibs/standard@1.1.2", + "requirement": "1.1.2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + } + ], "contains_source_code": null, "source_packages": [ "pkg:maven/org.apache.shale/shale-parent@1.0.4?classifier=sources" diff --git a/tests/packagedcode/data/m2/org/apache/shale/shale-test/1.0.4/shale-test-1.0.4.pom.package.json b/tests/packagedcode/data/m2/org/apache/shale/shale-test/1.0.4/shale-test-1.0.4.pom.package.json index 27bc674df39..7f8bf1ab648 100644 --- a/tests/packagedcode/data/m2/org/apache/shale/shale-test/1.0.4/shale-test-1.0.4.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/shale/shale-test/1.0.4/shale-test-1.0.4.pom.package.json @@ -30,49 +30,49 @@ "purl": "pkg:maven/htmlunit/htmlunit", "requirement": null, "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": null }, { - "purl": "pkg:maven/jmock/jmock", + "purl": "pkg:maven/jmock/jmock@1.0.1", "requirement": "1.0.1", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/jmock/jmock-cglib", + "purl": "pkg:maven/jmock/jmock-cglib@1.0.1", "requirement": "1.0.1", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.cargo/cargo-core-uberjar", + "purl": "pkg:maven/org.codehaus.cargo/cargo-core-uberjar@0.8", "requirement": "0.8", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.cargo/cargo-ant", + "purl": "pkg:maven/org.codehaus.cargo/cargo-ant@0.8", "requirement": "0.8", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/apache/velocity/velocity/1.5/velocity-1.5.pom.package.json b/tests/packagedcode/data/m2/org/apache/velocity/velocity/1.5/velocity-1.5.pom.package.json index ad014a72844..036a8b54739 100644 --- a/tests/packagedcode/data/m2/org/apache/velocity/velocity/1.5/velocity-1.5.pom.package.json +++ b/tests/packagedcode/data/m2/org/apache/velocity/velocity/1.5/velocity-1.5.pom.package.json @@ -77,76 +77,76 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/commons-collections/commons-collections", + "purl": "pkg:maven/commons-collections/commons-collections@3.1", "requirement": "3.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-lang/commons-lang", + "purl": "pkg:maven/commons-lang/commons-lang@2.1", "requirement": "2.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/oro/oro", + "purl": "pkg:maven/oro/oro@2.0.8", "requirement": "2.0.8", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/jdom/jdom", + "purl": "pkg:maven/jdom/jdom@1.0", "requirement": "1.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/log4j/log4j", + "purl": "pkg:maven/log4j/log4j@1.2.12", "requirement": "1.2.12", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/servlet-api", + "purl": "pkg:maven/javax.servlet/servlet-api@2.3", "requirement": "2.3", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/logkit/logkit", + "purl": "pkg:maven/logkit/logkit@2.0", "requirement": "2.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/ant/ant", + "purl": "pkg:maven/ant/ant@1.6", "requirement": "1.6", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/werken-xpath/werken-xpath", + "purl": "pkg:maven/werken-xpath/werken-xpath@0.9.4", "requirement": "0.9.4", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/cargo/cargo-extensions/1.0-SNAPSHOT/cargo-extensions-1.0-20090219.165735-20.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/cargo/cargo-extensions/1.0-SNAPSHOT/cargo-extensions-1.0-20090219.165735-20.pom.package.json index 9855ea98bfa..ef8052b9281 100644 --- a/tests/packagedcode/data/m2/org/codehaus/cargo/cargo-extensions/1.0-SNAPSHOT/cargo-extensions-1.0-20090219.165735-20.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/cargo/cargo-extensions/1.0-SNAPSHOT/cargo-extensions-1.0-20090219.165735-20.pom.package.json @@ -27,92 +27,92 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.codehaus.cargo/cargo-core-api-generic", + "purl": "pkg:maven/org.codehaus.cargo/cargo-core-api-generic@1.0-SNAPSHOT", "requirement": "1.0-SNAPSHOT", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.cargo/cargo-core-container-geronimo", + "purl": "pkg:maven/org.codehaus.cargo/cargo-core-container-geronimo@1.0-SNAPSHOT", "requirement": "1.0-SNAPSHOT", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.cargo/cargo-core-container-jboss", + "purl": "pkg:maven/org.codehaus.cargo/cargo-core-container-jboss@1.0-SNAPSHOT", "requirement": "1.0-SNAPSHOT", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.cargo/cargo-core-container-jetty", + "purl": "pkg:maven/org.codehaus.cargo/cargo-core-container-jetty@1.0-SNAPSHOT", "requirement": "1.0-SNAPSHOT", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.cargo/cargo-core-container-jo", + "purl": "pkg:maven/org.codehaus.cargo/cargo-core-container-jo@1.0-SNAPSHOT", "requirement": "1.0-SNAPSHOT", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.cargo/cargo-core-container-jonas", + "purl": "pkg:maven/org.codehaus.cargo/cargo-core-container-jonas@1.0-SNAPSHOT", "requirement": "1.0-SNAPSHOT", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.cargo/cargo-core-container-orion", + "purl": "pkg:maven/org.codehaus.cargo/cargo-core-container-orion@1.0-SNAPSHOT", "requirement": "1.0-SNAPSHOT", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.cargo/cargo-core-container-resin", + "purl": "pkg:maven/org.codehaus.cargo/cargo-core-container-resin@1.0-SNAPSHOT", "requirement": "1.0-SNAPSHOT", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.cargo/cargo-core-container-tomcat", + "purl": "pkg:maven/org.codehaus.cargo/cargo-core-container-tomcat@1.0-SNAPSHOT", "requirement": "1.0-SNAPSHOT", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.cargo/cargo-core-container-weblogic", + "purl": "pkg:maven/org.codehaus.cargo/cargo-core-container-weblogic@1.0-SNAPSHOT", "requirement": "1.0-SNAPSHOT", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/cargo/cargo-extensions/1.0-SNAPSHOT/cargo-extensions-1.0-SNAPSHOT.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/cargo/cargo-extensions/1.0-SNAPSHOT/cargo-extensions-1.0-SNAPSHOT.pom.package.json index 9855ea98bfa..ef8052b9281 100644 --- a/tests/packagedcode/data/m2/org/codehaus/cargo/cargo-extensions/1.0-SNAPSHOT/cargo-extensions-1.0-SNAPSHOT.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/cargo/cargo-extensions/1.0-SNAPSHOT/cargo-extensions-1.0-SNAPSHOT.pom.package.json @@ -27,92 +27,92 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.codehaus.cargo/cargo-core-api-generic", + "purl": "pkg:maven/org.codehaus.cargo/cargo-core-api-generic@1.0-SNAPSHOT", "requirement": "1.0-SNAPSHOT", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.cargo/cargo-core-container-geronimo", + "purl": "pkg:maven/org.codehaus.cargo/cargo-core-container-geronimo@1.0-SNAPSHOT", "requirement": "1.0-SNAPSHOT", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.cargo/cargo-core-container-jboss", + "purl": "pkg:maven/org.codehaus.cargo/cargo-core-container-jboss@1.0-SNAPSHOT", "requirement": "1.0-SNAPSHOT", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.cargo/cargo-core-container-jetty", + "purl": "pkg:maven/org.codehaus.cargo/cargo-core-container-jetty@1.0-SNAPSHOT", "requirement": "1.0-SNAPSHOT", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.cargo/cargo-core-container-jo", + "purl": "pkg:maven/org.codehaus.cargo/cargo-core-container-jo@1.0-SNAPSHOT", "requirement": "1.0-SNAPSHOT", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.cargo/cargo-core-container-jonas", + "purl": "pkg:maven/org.codehaus.cargo/cargo-core-container-jonas@1.0-SNAPSHOT", "requirement": "1.0-SNAPSHOT", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.cargo/cargo-core-container-orion", + "purl": "pkg:maven/org.codehaus.cargo/cargo-core-container-orion@1.0-SNAPSHOT", "requirement": "1.0-SNAPSHOT", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.cargo/cargo-core-container-resin", + "purl": "pkg:maven/org.codehaus.cargo/cargo-core-container-resin@1.0-SNAPSHOT", "requirement": "1.0-SNAPSHOT", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.cargo/cargo-core-container-tomcat", + "purl": "pkg:maven/org.codehaus.cargo/cargo-core-container-tomcat@1.0-SNAPSHOT", "requirement": "1.0-SNAPSHOT", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.cargo/cargo-core-container-weblogic", + "purl": "pkg:maven/org.codehaus.cargo/cargo-core-container-weblogic@1.0-SNAPSHOT", "requirement": "1.0-SNAPSHOT", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/cargo/cargo-maven2-plugin/1.0-SNAPSHOT/cargo-maven2-plugin-1.0-20090219.165735-19.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/cargo/cargo-maven2-plugin/1.0-SNAPSHOT/cargo-maven2-plugin-1.0-20090219.165735-19.pom.package.json index 91f4f01cd24..8e0e3880aac 100644 --- a/tests/packagedcode/data/m2/org/codehaus/cargo/cargo-maven2-plugin/1.0-SNAPSHOT/cargo-maven2-plugin-1.0-20090219.165735-19.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/cargo/cargo-maven2-plugin/1.0-SNAPSHOT/cargo-maven2-plugin-1.0-20090219.165735-19.pom.package.json @@ -27,36 +27,36 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-plugin-api", + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-project", + "purl": "pkg:maven/org.apache.maven/maven-project@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-settings", + "purl": "pkg:maven/org.apache.maven/maven-settings@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.4.7", "requirement": "1.4.7", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { "purl": "pkg:maven/org.codehaus.cargo/cargo-core-api-container", @@ -67,20 +67,20 @@ "is_resolved": false }, { - "purl": "pkg:maven/jmock/jmock", + "purl": "pkg:maven/jmock/jmock@1.0.1", "requirement": "1.0.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-vfs/commons-vfs", + "purl": "pkg:maven/commons-vfs/commons-vfs@1.0", "requirement": "1.0", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/cargo/cargo-maven2-plugin/1.0-SNAPSHOT/cargo-maven2-plugin-1.0-SNAPSHOT.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/cargo/cargo-maven2-plugin/1.0-SNAPSHOT/cargo-maven2-plugin-1.0-SNAPSHOT.pom.package.json index 91f4f01cd24..8e0e3880aac 100644 --- a/tests/packagedcode/data/m2/org/codehaus/cargo/cargo-maven2-plugin/1.0-SNAPSHOT/cargo-maven2-plugin-1.0-SNAPSHOT.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/cargo/cargo-maven2-plugin/1.0-SNAPSHOT/cargo-maven2-plugin-1.0-SNAPSHOT.pom.package.json @@ -27,36 +27,36 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-plugin-api", + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-project", + "purl": "pkg:maven/org.apache.maven/maven-project@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-settings", + "purl": "pkg:maven/org.apache.maven/maven-settings@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.4.7", "requirement": "1.4.7", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { "purl": "pkg:maven/org.codehaus.cargo/cargo-core-api-container", @@ -67,20 +67,20 @@ "is_resolved": false }, { - "purl": "pkg:maven/jmock/jmock", + "purl": "pkg:maven/jmock/jmock@1.0.1", "requirement": "1.0.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-vfs/commons-vfs", + "purl": "pkg:maven/commons-vfs/commons-vfs@1.0", "requirement": "1.0", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/mojo/aspectj-maven-plugin/1.0/aspectj-maven-plugin-1.0.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/mojo/aspectj-maven-plugin/1.0/aspectj-maven-plugin-1.0.pom.package.json index 35dcf10ce6d..38e0c9115c2 100644 --- a/tests/packagedcode/data/m2/org/codehaus/mojo/aspectj-maven-plugin/1.0/aspectj-maven-plugin-1.0.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/mojo/aspectj-maven-plugin/1.0/aspectj-maven-plugin-1.0.pom.package.json @@ -49,76 +49,76 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-embedder", + "purl": "pkg:maven/org.apache.maven/maven-embedder@2.0", "requirement": "2.0", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-project", + "purl": "pkg:maven/org.apache.maven/maven-project@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.aspectj/aspectjrt", + "purl": "pkg:maven/org.aspectj/aspectjrt@1.5.4", "requirement": "1.5.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.aspectj/aspectjtools", + "purl": "pkg:maven/org.aspectj/aspectjtools@1.5.4", "requirement": "1.5.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-plugin-api", + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-api", + "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-api@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-impl", + "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-impl@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-artifact", + "purl": "pkg:maven/org.apache.maven/maven-artifact@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/mojo/build-helper-maven-plugin/1.2-SNAPSHOT/build-helper-maven-plugin-1.2-20080813.143116-6.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/mojo/build-helper-maven-plugin/1.2-SNAPSHOT/build-helper-maven-plugin-1.2-20080813.143116-6.pom.package.json index dc0e615ff33..e7baed1fe0a 100644 --- a/tests/packagedcode/data/m2/org/codehaus/mojo/build-helper-maven-plugin/1.2-SNAPSHOT/build-helper-maven-plugin-1.2-20080813.143116-6.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/mojo/build-helper-maven-plugin/1.2-SNAPSHOT/build-helper-maven-plugin-1.2-20080813.143116-6.pom.package.json @@ -42,36 +42,36 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-project", + "purl": "pkg:maven/org.apache.maven/maven-project@2.0.2", "requirement": "2.0.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-plugin-api", + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-artifact", + "purl": "pkg:maven/org.apache.maven/maven-artifact@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.1", "requirement": "1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/mojo/build-helper-maven-plugin/1.2-SNAPSHOT/build-helper-maven-plugin-1.2-SNAPSHOT.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/mojo/build-helper-maven-plugin/1.2-SNAPSHOT/build-helper-maven-plugin-1.2-SNAPSHOT.pom.package.json index dc0e615ff33..e7baed1fe0a 100644 --- a/tests/packagedcode/data/m2/org/codehaus/mojo/build-helper-maven-plugin/1.2-SNAPSHOT/build-helper-maven-plugin-1.2-SNAPSHOT.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/mojo/build-helper-maven-plugin/1.2-SNAPSHOT/build-helper-maven-plugin-1.2-SNAPSHOT.pom.package.json @@ -42,36 +42,36 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-project", + "purl": "pkg:maven/org.apache.maven/maven-project@2.0.2", "requirement": "2.0.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-plugin-api", + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-artifact", + "purl": "pkg:maven/org.apache.maven/maven-artifact@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.1", "requirement": "1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/mojo/cobertura-maven-plugin/2.2/cobertura-maven-plugin-2.2.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/mojo/cobertura-maven-plugin/2.2/cobertura-maven-plugin-2.2.pom.package.json index 0414c0f2e41..ab837417492 100644 --- a/tests/packagedcode/data/m2/org/codehaus/mojo/cobertura-maven-plugin/2.2/cobertura-maven-plugin-2.2.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/mojo/cobertura-maven-plugin/2.2/cobertura-maven-plugin-2.2.pom.package.json @@ -56,108 +56,108 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/net.sourceforge.cobertura/cobertura", + "purl": "pkg:maven/net.sourceforge.cobertura/cobertura@1.9", "requirement": "1.9", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/net.sourceforge.cobertura/cobertura-runtime", + "purl": "pkg:maven/net.sourceforge.cobertura/cobertura-runtime@1.9", "requirement": "1.9", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/urbanophile/java-getopt", + "purl": "pkg:maven/urbanophile/java-getopt@1.0.9", "requirement": "1.0.9", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-artifact", + "purl": "pkg:maven/org.apache.maven/maven-artifact@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-plugin-api", + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-api", + "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-api@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-project", + "purl": "pkg:maven/org.apache.maven/maven-project@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-impl", + "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-impl@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-9", "requirement": "1.0-alpha-9", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.1", "requirement": "1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/httpunit/httpunit", + "purl": "pkg:maven/httpunit/httpunit@1.6", "requirement": "1.6", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.shared/maven-plugin-testing-harness", + "purl": "pkg:maven/org.apache.maven.shared/maven-plugin-testing-harness@1.0-beta-1", "requirement": "1.0-beta-1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/mojo/findbugs-maven-plugin/1.1.1/findbugs-maven-plugin-1.1.1.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/mojo/findbugs-maven-plugin/1.1.1/findbugs-maven-plugin-1.1.1.pom.package.json index f969c4b0ce3..1577aba21ff 100644 --- a/tests/packagedcode/data/m2/org/codehaus/mojo/findbugs-maven-plugin/1.1.1/findbugs-maven-plugin-1.1.1.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/mojo/findbugs-maven-plugin/1.1.1/findbugs-maven-plugin-1.1.1.pom.package.json @@ -63,44 +63,44 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-artifact", + "purl": "pkg:maven/org.apache.maven/maven-artifact@2.0.4", "requirement": "2.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-impl", + "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-impl@2.0.4", "requirement": "2.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-api", + "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-api@2.0.4", "requirement": "2.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.doxia/doxia-core", + "purl": "pkg:maven/org.apache.maven.doxia/doxia-core@1.0-alpha-8", "requirement": "1.0-alpha-8", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/net.sourceforge.findbugs/findbugs", + "purl": "pkg:maven/net.sourceforge.findbugs/findbugs@1.2.0", "requirement": "1.2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/mojo/maven-buildnumber-plugin/0.9.6/maven-buildnumber-plugin-0.9.6.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/mojo/maven-buildnumber-plugin/0.9.6/maven-buildnumber-plugin-0.9.6.pom.package.json index fbbff2c5938..c2c7dd1b47b 100644 --- a/tests/packagedcode/data/m2/org/codehaus/mojo/maven-buildnumber-plugin/0.9.6/maven-buildnumber-plugin-0.9.6.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/mojo/maven-buildnumber-plugin/0.9.6/maven-buildnumber-plugin-0.9.6.pom.package.json @@ -42,84 +42,84 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-project", + "purl": "pkg:maven/org.apache.maven/maven-project@2.0.2", "requirement": "2.0.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-settings", + "purl": "pkg:maven/org.apache.maven/maven-settings@2.0.2", "requirement": "2.0.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-plugin-api", + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@2.0.2", "requirement": "2.0.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.scm/maven-scm-api", + "purl": "pkg:maven/org.apache.maven.scm/maven-scm-api@1.0-beta-3", "requirement": "1.0-beta-3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.scm/maven-scm-manager-plexus", + "purl": "pkg:maven/org.apache.maven.scm/maven-scm-manager-plexus@1.0-beta-3", "requirement": "1.0-beta-3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.scm/maven-scm-provider-svnexe", + "purl": "pkg:maven/org.apache.maven.scm/maven-scm-provider-svnexe@1.0-beta-3", "requirement": "1.0-beta-3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.scm/maven-scm-provider-cvsexe", + "purl": "pkg:maven/org.apache.maven.scm/maven-scm-provider-cvsexe@1.0-beta-3", "requirement": "1.0-beta-3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.scm/maven-scm-provider-starteam", + "purl": "pkg:maven/org.apache.maven.scm/maven-scm-provider-starteam@1.0-beta-3", "requirement": "1.0-beta-3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.scm/maven-scm-provider-clearcase", + "purl": "pkg:maven/org.apache.maven.scm/maven-scm-provider-clearcase@1.0-beta-3", "requirement": "1.0-beta-3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.scm/maven-scm-provider-perforce", + "purl": "pkg:maven/org.apache.maven.scm/maven-scm-provider-perforce@1.0-beta-3", "requirement": "1.0-beta-3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/mojo/mojo/11/mojo-11.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/mojo/mojo/11/mojo-11.pom.package.json index 710bb7a97e7..7a09eef2877 100644 --- a/tests/packagedcode/data/m2/org/codehaus/mojo/mojo/11/mojo-11.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/mojo/mojo/11/mojo-11.pom.package.json @@ -27,20 +27,20 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-plugin-api", + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/mojo/mojo/12/mojo-12.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/mojo/mojo/12/mojo-12.pom.package.json index dfc61753f7a..025ac08ed0a 100644 --- a/tests/packagedcode/data/m2/org/codehaus/mojo/mojo/12/mojo-12.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/mojo/mojo/12/mojo-12.pom.package.json @@ -27,20 +27,20 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-plugin-api", + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/mojo/mojo/14/mojo-14.pom.json b/tests/packagedcode/data/m2/org/codehaus/mojo/mojo/14/mojo-14.pom.json index a2cd1486593..b70f7e375fe 100644 --- a/tests/packagedcode/data/m2/org/codehaus/mojo/mojo/14/mojo-14.pom.json +++ b/tests/packagedcode/data/m2/org/codehaus/mojo/mojo/14/mojo-14.pom.json @@ -124,5 +124,20 @@ "url": "http://repository.codehaus.org" } ], - "dependencies": {} + "dependencies": { + "dependencyManagement": [ + { + "group_id": "org.apache.maven", + "artifact_id": "maven-plugin-api", + "version": "2.0", + "required": true + }, + { + "group_id": "junit", + "artifact_id": "junit", + "version": "3.8.1", + "required": true + } + ] + } } \ No newline at end of file diff --git a/tests/packagedcode/data/m2/org/codehaus/mojo/mojo/14/mojo-14.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/mojo/mojo/14/mojo-14.pom.package.json index 968680c5a9e..7290885011e 100644 --- a/tests/packagedcode/data/m2/org/codehaus/mojo/mojo/14/mojo-14.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/mojo/mojo/14/mojo-14.pom.package.json @@ -33,7 +33,24 @@ "declared_license": null, "notice_text": null, "root_path": null, - "dependencies": [], + "dependencies": [ + { + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@2.0", + "requirement": "2.0", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/junit/junit@3.8.1", + "requirement": "3.8.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + } + ], "contains_source_code": null, "source_packages": [ "pkg:maven/org.codehaus.mojo/mojo@14?classifier=sources" diff --git a/tests/packagedcode/data/m2/org/codehaus/mojo/mojo/16/mojo-16.pom.json b/tests/packagedcode/data/m2/org/codehaus/mojo/mojo/16/mojo-16.pom.json index 6abd00c69d5..6b9ffe53567 100644 --- a/tests/packagedcode/data/m2/org/codehaus/mojo/mojo/16/mojo-16.pom.json +++ b/tests/packagedcode/data/m2/org/codehaus/mojo/mojo/16/mojo-16.pom.json @@ -115,5 +115,20 @@ "url": "http://snapshots.repository.codehaus.org" } ], - "dependencies": {} + "dependencies": { + "dependencyManagement": [ + { + "group_id": "org.apache.maven", + "artifact_id": "maven-plugin-api", + "version": "2.0", + "required": true + }, + { + "group_id": "junit", + "artifact_id": "junit", + "version": "3.8.1", + "required": true + } + ] + } } \ No newline at end of file diff --git a/tests/packagedcode/data/m2/org/codehaus/mojo/mojo/16/mojo-16.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/mojo/mojo/16/mojo-16.pom.package.json index cbafed6fde5..02b9bf12bc5 100644 --- a/tests/packagedcode/data/m2/org/codehaus/mojo/mojo/16/mojo-16.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/mojo/mojo/16/mojo-16.pom.package.json @@ -33,7 +33,24 @@ "declared_license": null, "notice_text": null, "root_path": null, - "dependencies": [], + "dependencies": [ + { + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@2.0", + "requirement": "2.0", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/junit/junit@3.8.1", + "requirement": "3.8.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + } + ], "contains_source_code": null, "source_packages": [ "pkg:maven/org.codehaus.mojo/mojo@16?classifier=sources" diff --git a/tests/packagedcode/data/m2/org/codehaus/mojo/mojo/17/mojo-17.pom.json b/tests/packagedcode/data/m2/org/codehaus/mojo/mojo/17/mojo-17.pom.json index a9da6208d5c..2ae8d5bcc43 100644 --- a/tests/packagedcode/data/m2/org/codehaus/mojo/mojo/17/mojo-17.pom.json +++ b/tests/packagedcode/data/m2/org/codehaus/mojo/mojo/17/mojo-17.pom.json @@ -120,5 +120,20 @@ "url": "http://snapshots.repository.codehaus.org" } ], - "dependencies": {} + "dependencies": { + "dependencyManagement": [ + { + "group_id": "org.apache.maven", + "artifact_id": "maven-plugin-api", + "version": "2.0", + "required": true + }, + { + "group_id": "junit", + "artifact_id": "junit", + "version": "3.8.2", + "required": true + } + ] + } } \ No newline at end of file diff --git a/tests/packagedcode/data/m2/org/codehaus/mojo/mojo/17/mojo-17.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/mojo/mojo/17/mojo-17.pom.package.json index b402d7b921c..475c7750673 100644 --- a/tests/packagedcode/data/m2/org/codehaus/mojo/mojo/17/mojo-17.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/mojo/mojo/17/mojo-17.pom.package.json @@ -33,7 +33,24 @@ "declared_license": null, "notice_text": null, "root_path": null, - "dependencies": [], + "dependencies": [ + { + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@2.0", + "requirement": "2.0", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/junit/junit@3.8.2", + "requirement": "3.8.2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + } + ], "contains_source_code": null, "source_packages": [ "pkg:maven/org.codehaus.mojo/mojo@17?classifier=sources" diff --git a/tests/packagedcode/data/m2/org/codehaus/mojo/native-maven-plugin/1.0-alpha-2/native-maven-plugin-1.0-alpha-2.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/mojo/native-maven-plugin/1.0-alpha-2/native-maven-plugin-1.0-alpha-2.pom.package.json index c264097732a..0834d591300 100644 --- a/tests/packagedcode/data/m2/org/codehaus/mojo/native-maven-plugin/1.0-alpha-2/native-maven-plugin-1.0-alpha-2.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/mojo/native-maven-plugin/1.0-alpha-2/native-maven-plugin-1.0-alpha-2.pom.package.json @@ -30,73 +30,73 @@ "purl": "pkg:maven/org.apache.maven/maven-project", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven/maven-plugin-api", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.mojo.natives/maven-native-api", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.mojo.natives/maven-native-javah", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.mojo.natives/maven-native-generic-c", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.mojo.natives/maven-native-msvc", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.mojo.natives/maven-native-bcc", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.mojo.natives/maven-native-manager", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { - "purl": "pkg:maven/org.apache.maven.shared/maven-plugin-testing-harness", + "purl": "pkg:maven/org.apache.maven.shared/maven-plugin-testing-harness@1.0-beta-1", "requirement": "1.0-beta-1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/mojo/natives/maven-native-api/1.0-alpha-2/maven-native-api-1.0-alpha-2.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/mojo/natives/maven-native-api/1.0-alpha-2/maven-native-api-1.0-alpha-2.pom.package.json index 4116bb0ef4f..8a857fb9679 100644 --- a/tests/packagedcode/data/m2/org/codehaus/mojo/natives/maven-native-api/1.0-alpha-2/maven-native-api-1.0-alpha-2.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/mojo/natives/maven-native-api/1.0-alpha-2/maven-native-api-1.0-alpha-2.pom.package.json @@ -30,25 +30,25 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { - "purl": "pkg:maven/bcel/bcel", + "purl": "pkg:maven/bcel/bcel@5.1", "requirement": "5.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/mojo/natives/maven-native-bcc/1.0-alpha-2/maven-native-bcc-1.0-alpha-2.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/mojo/natives/maven-native-bcc/1.0-alpha-2/maven-native-bcc-1.0-alpha-2.pom.package.json index 14b462d2bbe..a7d3853e47a 100644 --- a/tests/packagedcode/data/m2/org/codehaus/mojo/natives/maven-native-bcc/1.0-alpha-2/maven-native-bcc-1.0-alpha-2.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/mojo/natives/maven-native-bcc/1.0-alpha-2/maven-native-bcc-1.0-alpha-2.pom.package.json @@ -30,9 +30,9 @@ "purl": "pkg:maven/org.codehaus.mojo.natives/maven-native-generic-c", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/mojo/natives/maven-native-components/1.0-alpha-2/maven-native-components-1.0-alpha-2.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/mojo/natives/maven-native-components/1.0-alpha-2/maven-native-components-1.0-alpha-2.pom.package.json index 8a58390536d..63d803e438c 100644 --- a/tests/packagedcode/data/m2/org/codehaus/mojo/natives/maven-native-components/1.0-alpha-2/maven-native-components-1.0-alpha-2.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/mojo/natives/maven-native-components/1.0-alpha-2/maven-native-components-1.0-alpha-2.pom.package.json @@ -30,25 +30,25 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.mojo.natives/maven-native-api", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/mojo/natives/maven-native-generic-c/1.0-alpha-2/maven-native-generic-c-1.0-alpha-2.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/mojo/natives/maven-native-generic-c/1.0-alpha-2/maven-native-generic-c-1.0-alpha-2.pom.package.json index c2f4bb64456..157383db797 100644 --- a/tests/packagedcode/data/m2/org/codehaus/mojo/natives/maven-native-generic-c/1.0-alpha-2/maven-native-generic-c-1.0-alpha-2.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/mojo/natives/maven-native-generic-c/1.0-alpha-2/maven-native-generic-c-1.0-alpha-2.pom.package.json @@ -30,9 +30,9 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/mojo/natives/maven-native-msvc/1.0-alpha-2/maven-native-msvc-1.0-alpha-2.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/mojo/natives/maven-native-msvc/1.0-alpha-2/maven-native-msvc-1.0-alpha-2.pom.package.json index d122fb94469..c00911ae8b6 100644 --- a/tests/packagedcode/data/m2/org/codehaus/mojo/natives/maven-native-msvc/1.0-alpha-2/maven-native-msvc-1.0-alpha-2.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/mojo/natives/maven-native-msvc/1.0-alpha-2/maven-native-msvc-1.0-alpha-2.pom.package.json @@ -30,9 +30,9 @@ "purl": "pkg:maven/org.codehaus.mojo.natives/maven-native-generic-c", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/mojo/natives/maven-native/1.0-alpha-2/maven-native-1.0-alpha-2.pom.json b/tests/packagedcode/data/m2/org/codehaus/mojo/natives/maven-native/1.0-alpha-2/maven-native-1.0-alpha-2.pom.json index 190b9b62831..a865678f582 100644 --- a/tests/packagedcode/data/m2/org/codehaus/mojo/natives/maven-native/1.0-alpha-2/maven-native-1.0-alpha-2.pom.json +++ b/tests/packagedcode/data/m2/org/codehaus/mojo/natives/maven-native/1.0-alpha-2/maven-native-1.0-alpha-2.pom.json @@ -50,5 +50,68 @@ "distribution_management": {}, "repositories": [], "plugin_repositories": [], - "dependencies": {} + "dependencies": { + "dependencyManagement": [ + { + "group_id": "org.apache.maven", + "artifact_id": "maven-plugin-api", + "version": "2.0.4", + "required": true + }, + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-container-default", + "version": "1.0-alpha-9", + "required": true + }, + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-utils", + "version": "1.1", + "required": true + }, + { + "group_id": "org.apache.maven", + "artifact_id": "maven-project", + "version": "2.0.4", + "required": true + }, + { + "group_id": "org.codehaus.mojo.natives", + "artifact_id": "maven-native-api", + "version": "1.0-alpha-2", + "required": true + }, + { + "group_id": "org.codehaus.mojo.natives", + "artifact_id": "maven-native-javah", + "version": "1.0-alpha-2", + "required": true + }, + { + "group_id": "org.codehaus.mojo.natives", + "artifact_id": "maven-native-generic-c", + "version": "1.0-alpha-2", + "required": true + }, + { + "group_id": "org.codehaus.mojo.natives", + "artifact_id": "maven-native-msvc", + "version": "1.0-alpha-2", + "required": true + }, + { + "group_id": "org.codehaus.mojo.natives", + "artifact_id": "maven-native-bcc", + "version": "1.0-alpha-2", + "required": true + }, + { + "group_id": "org.codehaus.mojo.natives", + "artifact_id": "maven-native-manager", + "version": "1.0-alpha-2", + "required": true + } + ] + } } \ No newline at end of file diff --git a/tests/packagedcode/data/m2/org/codehaus/mojo/natives/maven-native/1.0-alpha-2/maven-native-1.0-alpha-2.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/mojo/natives/maven-native/1.0-alpha-2/maven-native-1.0-alpha-2.pom.package.json index c1f71968ada..2b1759c3a38 100644 --- a/tests/packagedcode/data/m2/org/codehaus/mojo/natives/maven-native/1.0-alpha-2/maven-native-1.0-alpha-2.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/mojo/natives/maven-native/1.0-alpha-2/maven-native-1.0-alpha-2.pom.package.json @@ -33,7 +33,88 @@ "declared_license": null, "notice_text": null, "root_path": null, - "dependencies": [], + "dependencies": [ + { + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@2.0.4", + "requirement": "2.0.4", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-9", + "requirement": "1.0-alpha-9", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.1", + "requirement": "1.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven-project@2.0.4", + "requirement": "2.0.4", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.mojo.natives/maven-native-api@1.0-alpha-2", + "requirement": "1.0-alpha-2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.mojo.natives/maven-native-javah@1.0-alpha-2", + "requirement": "1.0-alpha-2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.mojo.natives/maven-native-generic-c@1.0-alpha-2", + "requirement": "1.0-alpha-2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.mojo.natives/maven-native-msvc@1.0-alpha-2", + "requirement": "1.0-alpha-2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.mojo.natives/maven-native-bcc@1.0-alpha-2", + "requirement": "1.0-alpha-2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.mojo.natives/maven-native-manager@1.0-alpha-2", + "requirement": "1.0-alpha-2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + } + ], "contains_source_code": null, "source_packages": [ "pkg:maven/org.codehaus.mojo.natives/maven-native@1.0-alpha-2?classifier=sources" diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-active-collections/1.0-beta-2/plexus-active-collections-1.0-beta-2.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-active-collections/1.0-beta-2/plexus-active-collections-1.0-beta-2.pom.package.json index b723491b067..7b893aa39c1 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-active-collections/1.0-beta-2/plexus-active-collections-1.0-beta-2.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-active-collections/1.0-beta-2/plexus-active-collections-1.0-beta-2.pom.package.json @@ -27,28 +27,28 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.codehaus.plexus/plexus-component-api", + "purl": "pkg:maven/org.codehaus.plexus/plexus-component-api@1.0-alpha-22", "requirement": "1.0-alpha-22", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-22", "requirement": "1.0-alpha-22", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-archiver/1.0-alpha-10/plexus-archiver-1.0-alpha-10.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-archiver/1.0-alpha-10/plexus-archiver-1.0-alpha-10.pom.package.json index 9ce233f39b7..bb02288e9ec 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-archiver/1.0-alpha-10/plexus-archiver-1.0-alpha-10.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-archiver/1.0-alpha-10/plexus-archiver-1.0-alpha-10.pom.package.json @@ -42,36 +42,36 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.5.1", "requirement": "1.5.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-15", "requirement": "1.0-alpha-15", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-component-api", + "purl": "pkg:maven/org.codehaus.plexus/plexus-component-api@1.0-alpha-15", "requirement": "1.0-alpha-15", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-io", + "purl": "pkg:maven/org.codehaus.plexus/plexus-io@1.0-alpha-2", "requirement": "1.0-alpha-2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-archiver/1.0-alpha-7/plexus-archiver-1.0-alpha-7.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-archiver/1.0-alpha-7/plexus-archiver-1.0-alpha-7.pom.package.json index 6390cd7020e..c07e63c5e35 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-archiver/1.0-alpha-7/plexus-archiver-1.0-alpha-7.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-archiver/1.0-alpha-7/plexus-archiver-1.0-alpha-7.pom.package.json @@ -42,12 +42,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.2", "requirement": "1.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-archiver/1.0-alpha-9/plexus-archiver-1.0-alpha-9.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-archiver/1.0-alpha-9/plexus-archiver-1.0-alpha-9.pom.package.json index 9c0df2897da..f78ad571051 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-archiver/1.0-alpha-9/plexus-archiver-1.0-alpha-9.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-archiver/1.0-alpha-9/plexus-archiver-1.0-alpha-9.pom.package.json @@ -42,36 +42,36 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.4.1", "requirement": "1.4.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-15", "requirement": "1.0-alpha-15", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-component-api", + "purl": "pkg:maven/org.codehaus.plexus/plexus-component-api@1.0-alpha-15", "requirement": "1.0-alpha-15", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-io", + "purl": "pkg:maven/org.codehaus.plexus/plexus-io@1.0-alpha-1", "requirement": "1.0-alpha-1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-classworlds/1.2-alpha-6/plexus-classworlds-1.2-alpha-6.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-classworlds/1.2-alpha-6/plexus-classworlds-1.2-alpha-6.pom.package.json index 90a6f7e8923..084d92101f5 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-classworlds/1.2-alpha-6/plexus-classworlds-1.2-alpha-6.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-classworlds/1.2-alpha-6/plexus-classworlds-1.2-alpha-6.pom.package.json @@ -27,12 +27,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-compiler-api/1.5.1/plexus-compiler-api-1.5.1.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-compiler-api/1.5.1/plexus-compiler-api-1.5.1.pom.package.json index ab0b64773ce..0fe034ebb9e 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-compiler-api/1.5.1/plexus-compiler-api-1.5.1.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-compiler-api/1.5.1/plexus-compiler-api-1.5.1.pom.package.json @@ -112,36 +112,36 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.0.4", "requirement": "1.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-8", "requirement": "1.0-alpha-8", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/classworlds/classworlds", + "purl": "pkg:maven/classworlds/classworlds@1.1-alpha-2", "requirement": "1.1-alpha-2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-compiler-api/1.5.3/plexus-compiler-api-1.5.3.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-compiler-api/1.5.3/plexus-compiler-api-1.5.3.pom.package.json index 62ead1eff9a..46e18b56c4c 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-compiler-api/1.5.3/plexus-compiler-api-1.5.3.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-compiler-api/1.5.3/plexus-compiler-api-1.5.3.pom.package.json @@ -27,12 +27,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-compiler-javac/1.5.3/plexus-compiler-javac-1.5.3.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-compiler-javac/1.5.3/plexus-compiler-javac-1.5.3.pom.package.json index d29cb860f9a..727bb72fd3f 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-compiler-javac/1.5.3/plexus-compiler-javac-1.5.3.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-compiler-javac/1.5.3/plexus-compiler-javac-1.5.3.pom.package.json @@ -27,20 +27,20 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.0.5", "requirement": "1.0.5", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-lang/commons-lang", + "purl": "pkg:maven/commons-lang/commons-lang@2.0", "requirement": "2.0", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-compiler-manager/1.5.3/plexus-compiler-manager-1.5.3.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-compiler-manager/1.5.3/plexus-compiler-manager-1.5.3.pom.package.json index e093a971651..b6aad863bff 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-compiler-manager/1.5.3/plexus-compiler-manager-1.5.3.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-compiler-manager/1.5.3/plexus-compiler-manager-1.5.3.pom.package.json @@ -27,12 +27,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.codehaus.plexus/plexus-compiler-api", + "purl": "pkg:maven/org.codehaus.plexus/plexus-compiler-api@1.5.3", "requirement": "1.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-compilers/1.5.3/plexus-compilers-1.5.3.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-compilers/1.5.3/plexus-compilers-1.5.3.pom.package.json index 01d151b777e..38abff512f4 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-compilers/1.5.3/plexus-compilers-1.5.3.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-compilers/1.5.3/plexus-compilers-1.5.3.pom.package.json @@ -112,36 +112,36 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-compiler-test", + "purl": "pkg:maven/org.codehaus.plexus/plexus-compiler-test@1.5.3", "requirement": "1.5.3", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-compiler-api", + "purl": "pkg:maven/org.codehaus.plexus/plexus-compiler-api@1.5.3", "requirement": "1.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-8", "requirement": "1.0-alpha-8", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-component-api/1.0-alpha-15/plexus-component-api-1.0-alpha-15.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-component-api/1.0-alpha-15/plexus-component-api-1.0-alpha-15.pom.package.json index 09d392a083b..395fa982f29 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-component-api/1.0-alpha-15/plexus-component-api-1.0-alpha-15.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-component-api/1.0-alpha-15/plexus-component-api-1.0-alpha-15.pom.package.json @@ -30,9 +30,9 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-classworlds", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.pom.package.json index b63d678af76..262b13f83ef 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.pom.package.json @@ -30,9 +30,9 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-classworlds", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-components/1.1.12/plexus-components-1.1.12.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-components/1.1.12/plexus-components-1.1.12.pom.package.json index a5e62f805d3..12ff7bf8d62 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-components/1.1.12/plexus-components-1.1.12.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-components/1.1.12/plexus-components-1.1.12.pom.package.json @@ -27,20 +27,20 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.codehaus.plexus/plexus-component-api", + "purl": "pkg:maven/org.codehaus.plexus/plexus-component-api@1.0-alpha-20", "requirement": "1.0-alpha-20", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-20", "requirement": "1.0-alpha-20", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-components/1.1.4/plexus-components-1.1.4.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-components/1.1.4/plexus-components-1.1.4.pom.package.json index 748bcc53bcd..1877e5e5a39 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-components/1.1.4/plexus-components-1.1.4.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-components/1.1.4/plexus-components-1.1.4.pom.package.json @@ -27,12 +27,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-8", "requirement": "1.0-alpha-8", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-components/1.1.5/plexus-components-1.1.5.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-components/1.1.5/plexus-components-1.1.5.pom.package.json index 37925ce7f11..09eb6b26831 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-components/1.1.5/plexus-components-1.1.5.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-components/1.1.5/plexus-components-1.1.5.pom.package.json @@ -27,12 +27,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-8", "requirement": "1.0-alpha-8", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-components/1.1.6/plexus-components-1.1.6.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-components/1.1.6/plexus-components-1.1.6.pom.package.json index ceec0b958df..da439d08a7e 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-components/1.1.6/plexus-components-1.1.6.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-components/1.1.6/plexus-components-1.1.6.pom.package.json @@ -27,12 +27,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-8", "requirement": "1.0-alpha-8", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-components/1.1.7/plexus-components-1.1.7.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-components/1.1.7/plexus-components-1.1.7.pom.package.json index f805c881d6c..1f669521ee4 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-components/1.1.7/plexus-components-1.1.7.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-components/1.1.7/plexus-components-1.1.7.pom.package.json @@ -27,12 +27,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-8", "requirement": "1.0-alpha-8", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-components/1.1.9/plexus-components-1.1.9.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-components/1.1.9/plexus-components-1.1.9.pom.package.json index 079bd659c5b..475d0c39104 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-components/1.1.9/plexus-components-1.1.9.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-components/1.1.9/plexus-components-1.1.9.pom.package.json @@ -27,20 +27,20 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.codehaus.plexus/plexus-component-api", + "purl": "pkg:maven/org.codehaus.plexus/plexus-component-api@1.0-alpha-16", "requirement": "1.0-alpha-16", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-16", "requirement": "1.0-alpha-16", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-container-default/1.0-alpha-15/plexus-container-default-1.0-alpha-15.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-container-default/1.0-alpha-15/plexus-container-default-1.0-alpha-15.pom.package.json index dc04d454a85..dfe4acbcd16 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-container-default/1.0-alpha-15/plexus-container-default-1.0-alpha-15.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-container-default/1.0-alpha-15/plexus-container-default-1.0-alpha-15.pom.package.json @@ -30,33 +30,33 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-component-api", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-classworlds", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { - "purl": "pkg:maven/jmock/jmock", + "purl": "pkg:maven/jmock/jmock@1.0.1", "requirement": "1.0.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-container-default/1.0-alpha-22/plexus-container-default-1.0-alpha-22.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-container-default/1.0-alpha-22/plexus-container-default-1.0-alpha-22.pom.package.json index 3b49edee577..0c9437c17c7 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-container-default/1.0-alpha-22/plexus-container-default-1.0-alpha-22.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-container-default/1.0-alpha-22/plexus-container-default-1.0-alpha-22.pom.package.json @@ -30,33 +30,33 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-component-api", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-classworlds", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { - "purl": "pkg:maven/jmock/jmock", + "purl": "pkg:maven/jmock/jmock@1.0.1", "requirement": "1.0.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-container-default/1.0-alpha-30/plexus-container-default-1.0-alpha-30.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-container-default/1.0-alpha-30/plexus-container-default-1.0-alpha-30.pom.package.json index bcd559124fe..240068e925c 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-container-default/1.0-alpha-30/plexus-container-default-1.0-alpha-30.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-container-default/1.0-alpha-30/plexus-container-default-1.0-alpha-30.pom.package.json @@ -30,25 +30,25 @@ "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-classworlds", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { - "purl": "pkg:maven/jmock/jmock", + "purl": "pkg:maven/jmock/jmock@1.0.1", "requirement": "1.0.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-container-default/1.0-alpha-7/plexus-container-default-1.0-alpha-7.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-container-default/1.0-alpha-7/plexus-container-default-1.0-alpha-7.pom.package.json index ee878143a6d..cc9312a0a28 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-container-default/1.0-alpha-7/plexus-container-default-1.0-alpha-7.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-container-default/1.0-alpha-7/plexus-container-default-1.0-alpha-7.pom.package.json @@ -27,28 +27,28 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/plexus/plexus-utils", + "purl": "pkg:maven/plexus/plexus-utils@1.0.2", "requirement": "1.0.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/classworlds/classworlds", + "purl": "pkg:maven/classworlds/classworlds@1.1-alpha-2", "requirement": "1.1-alpha-2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-container-default/1.0-alpha-8/plexus-container-default-1.0-alpha-8.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-container-default/1.0-alpha-8/plexus-container-default-1.0-alpha-8.pom.package.json index a6c9b42042e..4027731ee1f 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-container-default/1.0-alpha-8/plexus-container-default-1.0-alpha-8.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-container-default/1.0-alpha-8/plexus-container-default-1.0-alpha-8.pom.package.json @@ -112,28 +112,28 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.0.4", "requirement": "1.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/classworlds/classworlds", + "purl": "pkg:maven/classworlds/classworlds@1.1-alpha-2", "requirement": "1.1-alpha-2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.pom.package.json index f22e305a6e2..79fc274ec62 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.pom.package.json @@ -27,28 +27,28 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.0.4", "requirement": "1.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/classworlds/classworlds", + "purl": "pkg:maven/classworlds/classworlds@1.1-alpha-2", "requirement": "1.1-alpha-2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-container-default/1.0-alpha-9/plexus-container-default-1.0-alpha-9.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-container-default/1.0-alpha-9/plexus-container-default-1.0-alpha-9.pom.package.json index 9a6193c24e8..418e112711b 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-container-default/1.0-alpha-9/plexus-container-default-1.0-alpha-9.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-container-default/1.0-alpha-9/plexus-container-default-1.0-alpha-9.pom.package.json @@ -27,28 +27,28 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.0.4", "requirement": "1.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/classworlds/classworlds", + "purl": "pkg:maven/classworlds/classworlds@1.1-alpha-2", "requirement": "1.1-alpha-2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-containers/1.0-alpha-15/plexus-containers-1.0-alpha-15.pom.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-containers/1.0-alpha-15/plexus-containers-1.0-alpha-15.pom.json index 4d8beeb3894..7ac29b52604 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-containers/1.0-alpha-15/plexus-containers-1.0-alpha-15.pom.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-containers/1.0-alpha-15/plexus-containers-1.0-alpha-15.pom.json @@ -45,6 +45,26 @@ "version": "3.8.1", "required": true } + ], + "dependencyManagement": [ + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-classworlds", + "version": "1.2-alpha-6", + "required": true + }, + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-component-api", + "version": "1.0-alpha-15", + "required": true + }, + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-utils", + "version": "1.3", + "required": true + } ] } } \ No newline at end of file diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-containers/1.0-alpha-15/plexus-containers-1.0-alpha-15.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-containers/1.0-alpha-15/plexus-containers-1.0-alpha-15.pom.package.json index 5348d67ca6e..a865011f990 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-containers/1.0-alpha-15/plexus-containers-1.0-alpha-15.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-containers/1.0-alpha-15/plexus-containers-1.0-alpha-15.pom.package.json @@ -27,12 +27,36 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "compile", - "is_runtime": true, + "is_runtime": false, + "is_optional": true, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-classworlds@1.2-alpha-6", + "requirement": "1.2-alpha-6", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-component-api@1.0-alpha-15", + "requirement": "1.0-alpha-15", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.3", + "requirement": "1.3", + "scope": "dependencymanagement", + "is_runtime": false, "is_optional": false, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-containers/1.0-alpha-16/plexus-containers-1.0-alpha-16.pom.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-containers/1.0-alpha-16/plexus-containers-1.0-alpha-16.pom.json index 6e2803a2ea1..cce4a7d5f19 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-containers/1.0-alpha-16/plexus-containers-1.0-alpha-16.pom.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-containers/1.0-alpha-16/plexus-containers-1.0-alpha-16.pom.json @@ -45,6 +45,26 @@ "version": "3.8.1", "required": true } + ], + "dependencyManagement": [ + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-classworlds", + "version": "1.2-alpha-7", + "required": true + }, + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-component-api", + "version": "1.0-alpha-16", + "required": true + }, + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-utils", + "version": "1.3", + "required": true + } ] } } \ No newline at end of file diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-containers/1.0-alpha-16/plexus-containers-1.0-alpha-16.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-containers/1.0-alpha-16/plexus-containers-1.0-alpha-16.pom.package.json index 1b8a036a094..2bad745fc64 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-containers/1.0-alpha-16/plexus-containers-1.0-alpha-16.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-containers/1.0-alpha-16/plexus-containers-1.0-alpha-16.pom.package.json @@ -27,12 +27,36 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "compile", - "is_runtime": true, + "is_runtime": false, + "is_optional": true, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-classworlds@1.2-alpha-7", + "requirement": "1.2-alpha-7", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-component-api@1.0-alpha-16", + "requirement": "1.0-alpha-16", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.3", + "requirement": "1.3", + "scope": "dependencymanagement", + "is_runtime": false, "is_optional": false, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-containers/1.0-alpha-22/plexus-containers-1.0-alpha-22.pom.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-containers/1.0-alpha-22/plexus-containers-1.0-alpha-22.pom.json index 6737513b8a2..d70c33b078d 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-containers/1.0-alpha-22/plexus-containers-1.0-alpha-22.pom.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-containers/1.0-alpha-22/plexus-containers-1.0-alpha-22.pom.json @@ -45,6 +45,26 @@ "version": "3.8.1", "required": true } + ], + "dependencyManagement": [ + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-classworlds", + "version": "1.2-alpha-7", + "required": true + }, + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-component-api", + "version": "1.0-alpha-19", + "required": true + }, + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-utils", + "version": "1.3", + "required": true + } ] } } \ No newline at end of file diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-containers/1.0-alpha-22/plexus-containers-1.0-alpha-22.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-containers/1.0-alpha-22/plexus-containers-1.0-alpha-22.pom.package.json index 458d6dd20a5..3c95cb35e1a 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-containers/1.0-alpha-22/plexus-containers-1.0-alpha-22.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-containers/1.0-alpha-22/plexus-containers-1.0-alpha-22.pom.package.json @@ -27,12 +27,36 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "compile", - "is_runtime": true, + "is_runtime": false, + "is_optional": true, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-classworlds@1.2-alpha-7", + "requirement": "1.2-alpha-7", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-component-api@1.0-alpha-19", + "requirement": "1.0-alpha-19", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.3", + "requirement": "1.3", + "scope": "dependencymanagement", + "is_runtime": false, "is_optional": false, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-containers/1.0-alpha-30/plexus-containers-1.0-alpha-30.pom.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-containers/1.0-alpha-30/plexus-containers-1.0-alpha-30.pom.json index ae3cec526e1..4834a34ffa0 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-containers/1.0-alpha-30/plexus-containers-1.0-alpha-30.pom.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-containers/1.0-alpha-30/plexus-containers-1.0-alpha-30.pom.json @@ -45,6 +45,26 @@ "version": "3.8.1", "required": true } + ], + "dependencyManagement": [ + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-classworlds", + "version": "1.2-alpha-9", + "required": true + }, + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-utils", + "version": "1.4.5", + "required": true + }, + { + "group_id": "org.codehaus.plexus", + "artifact_id": "plexus-component-api", + "version": "1.0-alpha-30", + "required": true + } ] } } \ No newline at end of file diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-containers/1.0-alpha-30/plexus-containers-1.0-alpha-30.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-containers/1.0-alpha-30/plexus-containers-1.0-alpha-30.pom.package.json index a8b8c871a49..cdc80c6644f 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-containers/1.0-alpha-30/plexus-containers-1.0-alpha-30.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-containers/1.0-alpha-30/plexus-containers-1.0-alpha-30.pom.package.json @@ -27,12 +27,36 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "compile", - "is_runtime": true, + "is_runtime": false, + "is_optional": true, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-classworlds@1.2-alpha-9", + "requirement": "1.2-alpha-9", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.4.5", + "requirement": "1.4.5", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.plexus/plexus-component-api@1.0-alpha-30", + "requirement": "1.0-alpha-30", + "scope": "dependencymanagement", + "is_runtime": false, "is_optional": false, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-i18n/1.0-beta-7/plexus-i18n-1.0-beta-7.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-i18n/1.0-beta-7/plexus-i18n-1.0-beta-7.pom.package.json index dc97030078e..f6de55a7ba7 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-i18n/1.0-beta-7/plexus-i18n-1.0-beta-7.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-i18n/1.0-beta-7/plexus-i18n-1.0-beta-7.pom.package.json @@ -27,12 +27,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.4.1", "requirement": "1.4.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.pom.package.json index 8969f9834b0..3e26668ac72 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.pom.package.json @@ -112,36 +112,36 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-7", "requirement": "1.0-alpha-7", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/classworlds/classworlds", + "purl": "pkg:maven/classworlds/classworlds@1.1-alpha-2", "requirement": "1.1-alpha-2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/plexus/plexus-utils", + "purl": "pkg:maven/plexus/plexus-utils@1.0.2", "requirement": "1.0.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-io/1.0-alpha-1/plexus-io-1.0-alpha-1.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-io/1.0-alpha-1/plexus-io-1.0-alpha-1.pom.package.json index 43562d840ce..6a6941032c4 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-io/1.0-alpha-1/plexus-io-1.0-alpha-1.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-io/1.0-alpha-1/plexus-io-1.0-alpha-1.pom.package.json @@ -27,12 +27,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-9", "requirement": "1.0-alpha-9", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-io/1.0-alpha-2/plexus-io-1.0-alpha-2.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-io/1.0-alpha-2/plexus-io-1.0-alpha-2.pom.package.json index 38742eb7558..383e678a643 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-io/1.0-alpha-2/plexus-io-1.0-alpha-2.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-io/1.0-alpha-2/plexus-io-1.0-alpha-2.pom.package.json @@ -27,28 +27,28 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", + "purl": "pkg:maven/org.codehaus.plexus/plexus-utils@1.2", "requirement": "1.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-24", "requirement": "1.0-alpha-24", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.codehaus.plexus/plexus-component-api", + "purl": "pkg:maven/org.codehaus.plexus/plexus-component-api@1.0-alpha-24", "requirement": "1.0-alpha-24", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.pom.package.json index ed51cfcf95f..6b5bfb28ae5 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.pom.package.json @@ -112,12 +112,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-utils/1.0.5/plexus-utils-1.0.5.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-utils/1.0.5/plexus-utils-1.0.5.pom.package.json index 0d4b837bfa0..9c190e97f0b 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-utils/1.0.5/plexus-utils-1.0.5.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-utils/1.0.5/plexus-utils-1.0.5.pom.package.json @@ -27,12 +27,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/classworlds/classworlds", + "purl": "pkg:maven/classworlds/classworlds@1.1-alpha-2", "requirement": "1.1-alpha-2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-velocity/1.1.2/plexus-velocity-1.1.2.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-velocity/1.1.2/plexus-velocity-1.1.2.pom.package.json index f2241e4e28c..f2912debf09 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-velocity/1.1.2/plexus-velocity-1.1.2.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-velocity/1.1.2/plexus-velocity-1.1.2.pom.package.json @@ -112,60 +112,60 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-7", "requirement": "1.0-alpha-7", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/classworlds/classworlds", + "purl": "pkg:maven/classworlds/classworlds@1.1-alpha-2", "requirement": "1.1-alpha-2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/plexus/plexus-utils", + "purl": "pkg:maven/plexus/plexus-utils@1.0.2", "requirement": "1.0.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-collections/commons-collections", + "purl": "pkg:maven/commons-collections/commons-collections@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-logging/commons-logging-api", + "purl": "pkg:maven/commons-logging/commons-logging-api@1.0.4", "requirement": "1.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/velocity/velocity", + "purl": "pkg:maven/velocity/velocity@1.4", "requirement": "1.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-velocity/1.1.3/plexus-velocity-1.1.3.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-velocity/1.1.3/plexus-velocity-1.1.3.pom.package.json index f5cafc0f3c1..905d07dc02c 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-velocity/1.1.3/plexus-velocity-1.1.3.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-velocity/1.1.3/plexus-velocity-1.1.3.pom.package.json @@ -27,20 +27,20 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/commons-collections/commons-collections", + "purl": "pkg:maven/commons-collections/commons-collections@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/velocity/velocity", + "purl": "pkg:maven/velocity/velocity@1.4", "requirement": "1.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-velocity/1.1.7/plexus-velocity-1.1.7.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-velocity/1.1.7/plexus-velocity-1.1.7.pom.package.json index 555f61c8811..ad5f946714e 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-velocity/1.1.7/plexus-velocity-1.1.7.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus-velocity/1.1.7/plexus-velocity-1.1.7.pom.package.json @@ -27,28 +27,28 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-20", "requirement": "1.0-alpha-20", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-collections/commons-collections", + "purl": "pkg:maven/commons-collections/commons-collections@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/velocity/velocity", + "purl": "pkg:maven/velocity/velocity@1.4", "requirement": "1.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus/1.0.10/plexus-1.0.10.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus/1.0.10/plexus-1.0.10.pom.package.json index 4252bbb6c27..5a3a7ec1a23 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus/1.0.10/plexus-1.0.10.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus/1.0.10/plexus-1.0.10.pom.package.json @@ -161,12 +161,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus/1.0.11/plexus-1.0.11.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus/1.0.11/plexus-1.0.11.pom.package.json index 40f71237dbb..10311bf19b4 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus/1.0.11/plexus-1.0.11.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus/1.0.11/plexus-1.0.11.pom.package.json @@ -168,12 +168,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom.package.json index c3444b5054c..c753f320cf8 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom.package.json @@ -112,12 +112,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus/1.0.5/plexus-1.0.5.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus/1.0.5/plexus-1.0.5.pom.package.json index 747347f6263..f73769b0552 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus/1.0.5/plexus-1.0.5.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus/1.0.5/plexus-1.0.5.pom.package.json @@ -112,12 +112,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom.package.json index a559259a92d..d9b92a9889c 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom.package.json @@ -133,12 +133,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus/1.0.9/plexus-1.0.9.pom.package.json b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus/1.0.9/plexus-1.0.9.pom.package.json index 401282842c6..85465140dbe 100644 --- a/tests/packagedcode/data/m2/org/codehaus/plexus/plexus/1.0.9/plexus-1.0.9.pom.package.json +++ b/tests/packagedcode/data/m2/org/codehaus/plexus/plexus/1.0.9/plexus-1.0.9.pom.package.json @@ -140,12 +140,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/easymock/easymock/2.3/easymock-2.3.pom.package.json b/tests/packagedcode/data/m2/org/easymock/easymock/2.3/easymock-2.3.pom.package.json index fbb80c8d93d..fb5a03d9426 100644 --- a/tests/packagedcode/data/m2/org/easymock/easymock/2.3/easymock-2.3.pom.package.json +++ b/tests/packagedcode/data/m2/org/easymock/easymock/2.3/easymock-2.3.pom.package.json @@ -34,12 +34,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@4.3.1", "requirement": "4.3.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/easymock/easymockclassextension/2.3/easymockclassextension-2.3.pom.package.json b/tests/packagedcode/data/m2/org/easymock/easymockclassextension/2.3/easymockclassextension-2.3.pom.package.json index bf2a882ab3e..4d3bc9aa09e 100644 --- a/tests/packagedcode/data/m2/org/easymock/easymockclassextension/2.3/easymockclassextension-2.3.pom.package.json +++ b/tests/packagedcode/data/m2/org/easymock/easymockclassextension/2.3/easymockclassextension-2.3.pom.package.json @@ -34,36 +34,36 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.easymock/easymock", + "purl": "pkg:maven/org.easymock/easymock@2.3", "requirement": "2.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/cglib/cglib-nodep", + "purl": "pkg:maven/cglib/cglib-nodep@2.1_3", "requirement": "2.1_3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.objenesis/objenesis", + "purl": "pkg:maven/org.objenesis/objenesis@1.1", "requirement": "1.1", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@4.4", "requirement": "4.4", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/hibernate/hibernate-annotations/3.2.1.ga/hibernate-annotations-3.2.1.ga.pom.package.json b/tests/packagedcode/data/m2/org/hibernate/hibernate-annotations/3.2.1.ga/hibernate-annotations-3.2.1.ga.pom.package.json index c286cf7ed52..b5b544d0248 100644 --- a/tests/packagedcode/data/m2/org/hibernate/hibernate-annotations/3.2.1.ga/hibernate-annotations-3.2.1.ga.pom.package.json +++ b/tests/packagedcode/data/m2/org/hibernate/hibernate-annotations/3.2.1.ga/hibernate-annotations-3.2.1.ga.pom.package.json @@ -34,28 +34,28 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.hibernate/hibernate", + "purl": "pkg:maven/org.hibernate/hibernate@3.2.1.ga", "requirement": "3.2.1.ga", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/javax.persistence/persistence-api", + "purl": "pkg:maven/javax.persistence/persistence-api@1.0", "requirement": "1.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.lucene/lucene-core", + "purl": "pkg:maven/org.apache.lucene/lucene-core@2.0.0", "requirement": "2.0.0", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/hibernate/hibernate-annotations/3.3.1.GA/hibernate-annotations-3.3.1.GA.pom.package.json b/tests/packagedcode/data/m2/org/hibernate/hibernate-annotations/3.3.1.GA/hibernate-annotations-3.3.1.GA.pom.package.json index 34a70dcb3c1..885898c47ad 100644 --- a/tests/packagedcode/data/m2/org/hibernate/hibernate-annotations/3.3.1.GA/hibernate-annotations-3.3.1.GA.pom.package.json +++ b/tests/packagedcode/data/m2/org/hibernate/hibernate-annotations/3.3.1.GA/hibernate-annotations-3.3.1.GA.pom.package.json @@ -34,36 +34,36 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.hibernate/hibernate", + "purl": "pkg:maven/org.hibernate/hibernate@3.2.6.ga", "requirement": "3.2.6.ga", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.hibernate/hibernate-commons-annotations", + "purl": "pkg:maven/org.hibernate/hibernate-commons-annotations@3.0.0.ga", "requirement": "3.0.0.ga", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.hibernate/ejb3-persistence", + "purl": "pkg:maven/org.hibernate/ejb3-persistence@1.0.1.GA", "requirement": "1.0.1.GA", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-logging/commons-logging", + "purl": "pkg:maven/commons-logging/commons-logging@1.0.4", "requirement": "1.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/hibernate/hibernate-commons-annotations/3.0.0.ga/hibernate-commons-annotations-3.0.0.ga.pom.package.json b/tests/packagedcode/data/m2/org/hibernate/hibernate-commons-annotations/3.0.0.ga/hibernate-commons-annotations-3.0.0.ga.pom.package.json index ac0b3903288..baf4fe0aae1 100644 --- a/tests/packagedcode/data/m2/org/hibernate/hibernate-commons-annotations/3.0.0.ga/hibernate-commons-annotations-3.0.0.ga.pom.package.json +++ b/tests/packagedcode/data/m2/org/hibernate/hibernate-commons-annotations/3.0.0.ga/hibernate-commons-annotations-3.0.0.ga.pom.package.json @@ -34,20 +34,20 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/commons-logging/commons-logging", + "purl": "pkg:maven/commons-logging/commons-logging@1.0.4", "requirement": "1.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/log4j/log4j", + "purl": "pkg:maven/log4j/log4j@1.2.15", "requirement": "1.2.15", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/hibernate/hibernate-entitymanager/3.2.1.ga/hibernate-entitymanager-3.2.1.ga.pom.package.json b/tests/packagedcode/data/m2/org/hibernate/hibernate-entitymanager/3.2.1.ga/hibernate-entitymanager-3.2.1.ga.pom.package.json index 5362286ccd6..07fb673845a 100644 --- a/tests/packagedcode/data/m2/org/hibernate/hibernate-entitymanager/3.2.1.ga/hibernate-entitymanager-3.2.1.ga.pom.package.json +++ b/tests/packagedcode/data/m2/org/hibernate/hibernate-entitymanager/3.2.1.ga/hibernate-entitymanager-3.2.1.ga.pom.package.json @@ -34,28 +34,28 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.hibernate/hibernate-annotations", + "purl": "pkg:maven/org.hibernate/hibernate-annotations@3.2.1.ga", "requirement": "3.2.1.ga", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/jboss/javassist", + "purl": "pkg:maven/jboss/javassist@3.3.ga", "requirement": "3.3.ga", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/jboss/jboss-archive-browsing", + "purl": "pkg:maven/jboss/jboss-archive-browsing@5.0.0alpha-200607201-119", "requirement": "5.0.0alpha-200607201-119", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/hibernate/hibernate-entitymanager/3.3.2.GA/hibernate-entitymanager-3.3.2.GA.pom.package.json b/tests/packagedcode/data/m2/org/hibernate/hibernate-entitymanager/3.3.2.GA/hibernate-entitymanager-3.3.2.GA.pom.package.json index e89f3bc0131..2e1e6421f04 100644 --- a/tests/packagedcode/data/m2/org/hibernate/hibernate-entitymanager/3.3.2.GA/hibernate-entitymanager-3.3.2.GA.pom.package.json +++ b/tests/packagedcode/data/m2/org/hibernate/hibernate-entitymanager/3.3.2.GA/hibernate-entitymanager-3.3.2.GA.pom.package.json @@ -34,52 +34,52 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.hibernate/hibernate", + "purl": "pkg:maven/org.hibernate/hibernate@3.2.6.ga", "requirement": "3.2.6.ga", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.hibernate/hibernate-annotations", + "purl": "pkg:maven/org.hibernate/hibernate-annotations@3.3.1.GA", "requirement": "3.3.1.GA", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.hibernate/hibernate-commons-annotations", + "purl": "pkg:maven/org.hibernate/hibernate-commons-annotations@3.0.0.ga", "requirement": "3.0.0.ga", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.hibernate/ejb3-persistence", + "purl": "pkg:maven/org.hibernate/ejb3-persistence@1.0.1.GA", "requirement": "1.0.1.GA", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-logging/commons-logging", + "purl": "pkg:maven/commons-logging/commons-logging@1.0.4", "requirement": "1.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/javassist/javassist", + "purl": "pkg:maven/javassist/javassist@3.4.GA", "requirement": "3.4.GA", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/hibernate/hibernate/3.2.1.ga/hibernate-3.2.1.ga.pom.package.json b/tests/packagedcode/data/m2/org/hibernate/hibernate/3.2.1.ga/hibernate-3.2.1.ga.pom.package.json index 264498ed9db..9369e366b6f 100644 --- a/tests/packagedcode/data/m2/org/hibernate/hibernate/3.2.1.ga/hibernate-3.2.1.ga.pom.package.json +++ b/tests/packagedcode/data/m2/org/hibernate/hibernate/3.2.1.ga/hibernate-3.2.1.ga.pom.package.json @@ -42,140 +42,140 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/net.sf.ehcache/ehcache", + "purl": "pkg:maven/net.sf.ehcache/ehcache@1.2.3", "requirement": "1.2.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/swarmcache/swarmcache", + "purl": "pkg:maven/swarmcache/swarmcache@1.0RC2", "requirement": "1.0RC2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/jboss/jboss-cache", + "purl": "pkg:maven/jboss/jboss-cache@1.2.2", "requirement": "1.2.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/jgroups/jgroups-all", + "purl": "pkg:maven/jgroups/jgroups-all@2.2.8", "requirement": "2.2.8", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.transaction/jta", + "purl": "pkg:maven/javax.transaction/jta@1.0.1B", "requirement": "1.0.1B", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-logging/commons-logging", + "purl": "pkg:maven/commons-logging/commons-logging@1.0.4", "requirement": "1.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/c3p0/c3p0", + "purl": "pkg:maven/c3p0/c3p0@0.9.0", "requirement": "0.9.0", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/asm/asm-attrs", + "purl": "pkg:maven/asm/asm-attrs@1.5.3", "requirement": "1.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/javax.security/jacc", + "purl": "pkg:maven/javax.security/jacc@1.0", "requirement": "1.0", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/dom4j/dom4j", + "purl": "pkg:maven/dom4j/dom4j@1.6.1", "requirement": "1.6.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/antlr/antlr", + "purl": "pkg:maven/antlr/antlr@2.7.6", "requirement": "2.7.6", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/cglib/cglib", + "purl": "pkg:maven/cglib/cglib@2.1_3", "requirement": "2.1_3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/opensymphony/oscache", + "purl": "pkg:maven/opensymphony/oscache@2.1", "requirement": "2.1", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/asm/asm", + "purl": "pkg:maven/asm/asm@1.5.3", "requirement": "1.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-collections/commons-collections", + "purl": "pkg:maven/commons-collections/commons-collections@2.1.1", "requirement": "2.1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/proxool/proxool", + "purl": "pkg:maven/proxool/proxool@0.8.3", "requirement": "0.8.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/ant/ant", + "purl": "pkg:maven/ant/ant@1.6.5", "requirement": "1.6.5", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/hibernate/hibernate/3.2.6.ga/hibernate-3.2.6.ga.pom.package.json b/tests/packagedcode/data/m2/org/hibernate/hibernate/3.2.6.ga/hibernate-3.2.6.ga.pom.package.json index 2be3bb245ea..b99e4598c2a 100644 --- a/tests/packagedcode/data/m2/org/hibernate/hibernate/3.2.6.ga/hibernate-3.2.6.ga.pom.package.json +++ b/tests/packagedcode/data/m2/org/hibernate/hibernate/3.2.6.ga/hibernate-3.2.6.ga.pom.package.json @@ -42,140 +42,140 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/net.sf.ehcache/ehcache", + "purl": "pkg:maven/net.sf.ehcache/ehcache@1.2.3", "requirement": "1.2.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/swarmcache/swarmcache", + "purl": "pkg:maven/swarmcache/swarmcache@1.0RC2", "requirement": "1.0RC2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/jboss/jboss-cache", + "purl": "pkg:maven/jboss/jboss-cache@1.2.2", "requirement": "1.2.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/jgroups/jgroups-all", + "purl": "pkg:maven/jgroups/jgroups-all@2.2.8", "requirement": "2.2.8", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.transaction/jta", + "purl": "pkg:maven/javax.transaction/jta@1.0.1B", "requirement": "1.0.1B", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-logging/commons-logging", + "purl": "pkg:maven/commons-logging/commons-logging@1.0.4", "requirement": "1.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/c3p0/c3p0", + "purl": "pkg:maven/c3p0/c3p0@0.9.1", "requirement": "0.9.1", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/asm/asm-attrs", + "purl": "pkg:maven/asm/asm-attrs@1.5.3", "requirement": "1.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/javax.security/jacc", + "purl": "pkg:maven/javax.security/jacc@1.0", "requirement": "1.0", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/dom4j/dom4j", + "purl": "pkg:maven/dom4j/dom4j@1.6.1", "requirement": "1.6.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/antlr/antlr", + "purl": "pkg:maven/antlr/antlr@2.7.6", "requirement": "2.7.6", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/cglib/cglib", + "purl": "pkg:maven/cglib/cglib@2.1_3", "requirement": "2.1_3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/opensymphony/oscache", + "purl": "pkg:maven/opensymphony/oscache@2.1", "requirement": "2.1", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/asm/asm", + "purl": "pkg:maven/asm/asm@1.5.3", "requirement": "1.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-collections/commons-collections", + "purl": "pkg:maven/commons-collections/commons-collections@2.1.1", "requirement": "2.1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/proxool/proxool", + "purl": "pkg:maven/proxool/proxool@0.8.3", "requirement": "0.8.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/ant/ant", + "purl": "pkg:maven/ant/ant@1.6.5", "requirement": "1.6.5", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/mortbay/jetty/jetty-util/6.1.5/jetty-util-6.1.5.pom.package.json b/tests/packagedcode/data/m2/org/mortbay/jetty/jetty-util/6.1.5/jetty-util-6.1.5.pom.package.json index 448626267d6..faab183db89 100644 --- a/tests/packagedcode/data/m2/org/mortbay/jetty/jetty-util/6.1.5/jetty-util-6.1.5.pom.package.json +++ b/tests/packagedcode/data/m2/org/mortbay/jetty/jetty-util/6.1.5/jetty-util-6.1.5.pom.package.json @@ -32,15 +32,15 @@ "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": null }, { - "purl": "pkg:maven/org.mortbay.jetty/servlet-api-2.5", + "purl": "pkg:maven/org.mortbay.jetty/servlet-api-2.5@6.1.5", "requirement": "6.1.5", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/mortbay/jetty/jetty/6.1.5/jetty-6.1.5.pom.package.json b/tests/packagedcode/data/m2/org/mortbay/jetty/jetty/6.1.5/jetty-6.1.5.pom.package.json index 9d502491ec9..cff0ae928ae 100644 --- a/tests/packagedcode/data/m2/org/mortbay/jetty/jetty/6.1.5/jetty-6.1.5.pom.package.json +++ b/tests/packagedcode/data/m2/org/mortbay/jetty/jetty/6.1.5/jetty-6.1.5.pom.package.json @@ -32,23 +32,23 @@ "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": null }, { - "purl": "pkg:maven/org.mortbay.jetty/jetty-util", + "purl": "pkg:maven/org.mortbay.jetty/jetty-util@6.1.5", "requirement": "6.1.5", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.mortbay.jetty/servlet-api-2.5", + "purl": "pkg:maven/org.mortbay.jetty/servlet-api-2.5@6.1.5", "requirement": "6.1.5", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/mortbay/jetty/maven-jetty-plugin/6.1-SNAPSHOT/maven-jetty-plugin-6.1-20090123.170629-84.pom.package.json b/tests/packagedcode/data/m2/org/mortbay/jetty/maven-jetty-plugin/6.1-SNAPSHOT/maven-jetty-plugin-6.1-20090123.170629-84.pom.package.json index 4fdefec195e..db440581298 100644 --- a/tests/packagedcode/data/m2/org/mortbay/jetty/maven-jetty-plugin/6.1-SNAPSHOT/maven-jetty-plugin-6.1-20090123.170629-84.pom.package.json +++ b/tests/packagedcode/data/m2/org/mortbay/jetty/maven-jetty-plugin/6.1-SNAPSHOT/maven-jetty-plugin-6.1-20090123.170629-84.pom.package.json @@ -35,92 +35,92 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.mortbay.jetty/jetty", + "purl": "pkg:maven/org.mortbay.jetty/jetty@6.1-SNAPSHOT", "requirement": "6.1-SNAPSHOT", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-project", + "purl": "pkg:maven/org.apache.maven/maven-project@2.0.3", "requirement": "2.0.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-plugin-api", + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@2.0.3", "requirement": "2.0.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-artifact", + "purl": "pkg:maven/org.apache.maven/maven-artifact@2.0.3", "requirement": "2.0.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { "purl": "pkg:maven/org.apache.maven/maven-plugin-tools-api", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { - "purl": "pkg:maven/org.mortbay.jetty/jetty-plus", + "purl": "pkg:maven/org.mortbay.jetty/jetty-plus@6.1-SNAPSHOT", "requirement": "6.1-SNAPSHOT", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.mortbay.jetty/jetty-naming", + "purl": "pkg:maven/org.mortbay.jetty/jetty-naming@6.1-SNAPSHOT", "requirement": "6.1-SNAPSHOT", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.mortbay.jetty/jetty-management", + "purl": "pkg:maven/org.mortbay.jetty/jetty-management@6.1-SNAPSHOT", "requirement": "6.1-SNAPSHOT", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.mortbay.jetty/jsp-2.1-jetty", + "purl": "pkg:maven/org.mortbay.jetty/jsp-2.1-jetty@6.1-SNAPSHOT", "requirement": "6.1-SNAPSHOT", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.mortbay.jetty/jetty-annotations", + "purl": "pkg:maven/org.mortbay.jetty/jetty-annotations@6.1-SNAPSHOT", "requirement": "6.1-SNAPSHOT", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.mortbay.jetty/start", + "purl": "pkg:maven/org.mortbay.jetty/start@6.1-SNAPSHOT", "requirement": "6.1-SNAPSHOT", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/mortbay/jetty/maven-jetty-plugin/6.1-SNAPSHOT/maven-jetty-plugin-6.1-SNAPSHOT.pom.package.json b/tests/packagedcode/data/m2/org/mortbay/jetty/maven-jetty-plugin/6.1-SNAPSHOT/maven-jetty-plugin-6.1-SNAPSHOT.pom.package.json index 4fdefec195e..db440581298 100644 --- a/tests/packagedcode/data/m2/org/mortbay/jetty/maven-jetty-plugin/6.1-SNAPSHOT/maven-jetty-plugin-6.1-SNAPSHOT.pom.package.json +++ b/tests/packagedcode/data/m2/org/mortbay/jetty/maven-jetty-plugin/6.1-SNAPSHOT/maven-jetty-plugin-6.1-SNAPSHOT.pom.package.json @@ -35,92 +35,92 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.mortbay.jetty/jetty", + "purl": "pkg:maven/org.mortbay.jetty/jetty@6.1-SNAPSHOT", "requirement": "6.1-SNAPSHOT", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-project", + "purl": "pkg:maven/org.apache.maven/maven-project@2.0.3", "requirement": "2.0.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-plugin-api", + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@2.0.3", "requirement": "2.0.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-artifact", + "purl": "pkg:maven/org.apache.maven/maven-artifact@2.0.3", "requirement": "2.0.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { "purl": "pkg:maven/org.apache.maven/maven-plugin-tools-api", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { - "purl": "pkg:maven/org.mortbay.jetty/jetty-plus", + "purl": "pkg:maven/org.mortbay.jetty/jetty-plus@6.1-SNAPSHOT", "requirement": "6.1-SNAPSHOT", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.mortbay.jetty/jetty-naming", + "purl": "pkg:maven/org.mortbay.jetty/jetty-naming@6.1-SNAPSHOT", "requirement": "6.1-SNAPSHOT", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.mortbay.jetty/jetty-management", + "purl": "pkg:maven/org.mortbay.jetty/jetty-management@6.1-SNAPSHOT", "requirement": "6.1-SNAPSHOT", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.mortbay.jetty/jsp-2.1-jetty", + "purl": "pkg:maven/org.mortbay.jetty/jsp-2.1-jetty@6.1-SNAPSHOT", "requirement": "6.1-SNAPSHOT", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.mortbay.jetty/jetty-annotations", + "purl": "pkg:maven/org.mortbay.jetty/jetty-annotations@6.1-SNAPSHOT", "requirement": "6.1-SNAPSHOT", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.mortbay.jetty/start", + "purl": "pkg:maven/org.mortbay.jetty/start@6.1-SNAPSHOT", "requirement": "6.1-SNAPSHOT", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/mortbay/jetty/project/6.1-SNAPSHOT/project-6.1-20090123.170629-92.pom.json b/tests/packagedcode/data/m2/org/mortbay/jetty/project/6.1-SNAPSHOT/project-6.1-20090123.170629-92.pom.json index d8cef2196a0..b344dc3d1b2 100644 --- a/tests/packagedcode/data/m2/org/mortbay/jetty/project/6.1-SNAPSHOT/project-6.1-20090123.170629-92.pom.json +++ b/tests/packagedcode/data/m2/org/mortbay/jetty/project/6.1-SNAPSHOT/project-6.1-20090123.170629-92.pom.json @@ -73,5 +73,56 @@ } ], "plugin_repositories": [], - "dependencies": {} + "dependencies": { + "dependencyManagement": [ + { + "group_id": "org.apache.maven", + "artifact_id": "maven-plugin-tools-api", + "version": "2.0", + "required": true + }, + { + "group_id": "junit", + "artifact_id": "junit", + "version": "3.8.2", + "required": true + }, + { + "group_id": "org.slf4j", + "artifact_id": "jcl104-over-slf4j", + "version": "1.3.1", + "required": true + }, + { + "group_id": "org.slf4j", + "artifact_id": "slf4j-simple", + "version": "1.3.1", + "required": true + }, + { + "group_id": "ant", + "artifact_id": "ant", + "version": "1.6.5", + "required": true + }, + { + "group_id": "geronimo-spec", + "artifact_id": "geronimo-spec-jta", + "version": "1.0.1B-rc4", + "required": true + }, + { + "group_id": "javax.mail", + "artifact_id": "mail", + "version": "1.4", + "required": true + }, + { + "group_id": "javax.activation", + "artifact_id": "activation", + "version": "1.1", + "required": true + } + ] + } } \ No newline at end of file diff --git a/tests/packagedcode/data/m2/org/mortbay/jetty/project/6.1-SNAPSHOT/project-6.1-20090123.170629-92.pom.package.json b/tests/packagedcode/data/m2/org/mortbay/jetty/project/6.1-SNAPSHOT/project-6.1-20090123.170629-92.pom.package.json index 5d39fb2248a..e03c13303d4 100644 --- a/tests/packagedcode/data/m2/org/mortbay/jetty/project/6.1-SNAPSHOT/project-6.1-20090123.170629-92.pom.package.json +++ b/tests/packagedcode/data/m2/org/mortbay/jetty/project/6.1-SNAPSHOT/project-6.1-20090123.170629-92.pom.package.json @@ -25,7 +25,72 @@ "declared_license": null, "notice_text": null, "root_path": null, - "dependencies": [], + "dependencies": [ + { + "purl": "pkg:maven/org.apache.maven/maven-plugin-tools-api@2.0", + "requirement": "2.0", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/junit/junit@3.8.2", + "requirement": "3.8.2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.slf4j/jcl104-over-slf4j@1.3.1", + "requirement": "1.3.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.slf4j/slf4j-simple@1.3.1", + "requirement": "1.3.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/ant/ant@1.6.5", + "requirement": "1.6.5", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/geronimo-spec/geronimo-spec-jta@1.0.1B-rc4", + "requirement": "1.0.1B-rc4", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/javax.mail/mail@1.4", + "requirement": "1.4", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/javax.activation/activation@1.1", + "requirement": "1.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + } + ], "contains_source_code": null, "source_packages": [ "pkg:maven/org.mortbay.jetty/project@6.1-SNAPSHOT?classifier=sources" diff --git a/tests/packagedcode/data/m2/org/mortbay/jetty/project/6.1-SNAPSHOT/project-6.1-SNAPSHOT.pom.json b/tests/packagedcode/data/m2/org/mortbay/jetty/project/6.1-SNAPSHOT/project-6.1-SNAPSHOT.pom.json index d8cef2196a0..b344dc3d1b2 100644 --- a/tests/packagedcode/data/m2/org/mortbay/jetty/project/6.1-SNAPSHOT/project-6.1-SNAPSHOT.pom.json +++ b/tests/packagedcode/data/m2/org/mortbay/jetty/project/6.1-SNAPSHOT/project-6.1-SNAPSHOT.pom.json @@ -73,5 +73,56 @@ } ], "plugin_repositories": [], - "dependencies": {} + "dependencies": { + "dependencyManagement": [ + { + "group_id": "org.apache.maven", + "artifact_id": "maven-plugin-tools-api", + "version": "2.0", + "required": true + }, + { + "group_id": "junit", + "artifact_id": "junit", + "version": "3.8.2", + "required": true + }, + { + "group_id": "org.slf4j", + "artifact_id": "jcl104-over-slf4j", + "version": "1.3.1", + "required": true + }, + { + "group_id": "org.slf4j", + "artifact_id": "slf4j-simple", + "version": "1.3.1", + "required": true + }, + { + "group_id": "ant", + "artifact_id": "ant", + "version": "1.6.5", + "required": true + }, + { + "group_id": "geronimo-spec", + "artifact_id": "geronimo-spec-jta", + "version": "1.0.1B-rc4", + "required": true + }, + { + "group_id": "javax.mail", + "artifact_id": "mail", + "version": "1.4", + "required": true + }, + { + "group_id": "javax.activation", + "artifact_id": "activation", + "version": "1.1", + "required": true + } + ] + } } \ No newline at end of file diff --git a/tests/packagedcode/data/m2/org/mortbay/jetty/project/6.1-SNAPSHOT/project-6.1-SNAPSHOT.pom.package.json b/tests/packagedcode/data/m2/org/mortbay/jetty/project/6.1-SNAPSHOT/project-6.1-SNAPSHOT.pom.package.json index 5d39fb2248a..e03c13303d4 100644 --- a/tests/packagedcode/data/m2/org/mortbay/jetty/project/6.1-SNAPSHOT/project-6.1-SNAPSHOT.pom.package.json +++ b/tests/packagedcode/data/m2/org/mortbay/jetty/project/6.1-SNAPSHOT/project-6.1-SNAPSHOT.pom.package.json @@ -25,7 +25,72 @@ "declared_license": null, "notice_text": null, "root_path": null, - "dependencies": [], + "dependencies": [ + { + "purl": "pkg:maven/org.apache.maven/maven-plugin-tools-api@2.0", + "requirement": "2.0", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/junit/junit@3.8.2", + "requirement": "3.8.2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.slf4j/jcl104-over-slf4j@1.3.1", + "requirement": "1.3.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.slf4j/slf4j-simple@1.3.1", + "requirement": "1.3.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/ant/ant@1.6.5", + "requirement": "1.6.5", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/geronimo-spec/geronimo-spec-jta@1.0.1B-rc4", + "requirement": "1.0.1B-rc4", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/javax.mail/mail@1.4", + "requirement": "1.4", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/javax.activation/activation@1.1", + "requirement": "1.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + } + ], "contains_source_code": null, "source_packages": [ "pkg:maven/org.mortbay.jetty/project@6.1-SNAPSHOT?classifier=sources" diff --git a/tests/packagedcode/data/m2/org/mortbay/jetty/project/6.1.5/project-6.1.5.pom.json b/tests/packagedcode/data/m2/org/mortbay/jetty/project/6.1.5/project-6.1.5.pom.json index b0d50a6aa09..0bc2be5b006 100644 --- a/tests/packagedcode/data/m2/org/mortbay/jetty/project/6.1.5/project-6.1.5.pom.json +++ b/tests/packagedcode/data/m2/org/mortbay/jetty/project/6.1.5/project-6.1.5.pom.json @@ -190,5 +190,74 @@ "url": "http://people.apache.org/repo/m2-snapshot-repository/" } ], - "dependencies": {} + "dependencies": { + "dependencyManagement": [ + { + "group_id": "org.apache.maven", + "artifact_id": "maven-plugin-tools-api", + "version": "2.0", + "required": true + }, + { + "group_id": "junit", + "artifact_id": "junit", + "version": "3.8.2", + "required": true + }, + { + "group_id": "org.slf4j", + "artifact_id": "jcl104-over-slf4j", + "version": "1.3.1", + "required": true + }, + { + "group_id": "org.slf4j", + "artifact_id": "slf4j-simple", + "version": "1.3.1", + "required": true + }, + { + "group_id": "mx4j", + "artifact_id": "mx4j", + "version": "3.0.1", + "required": true + }, + { + "group_id": "mx4j", + "artifact_id": "mx4j-tools", + "version": "3.0.1", + "required": true + }, + { + "group_id": "xerces", + "artifact_id": "xercesImpl", + "version": "${xerces-version}", + "required": true + }, + { + "group_id": "commons-el", + "artifact_id": "commons-el", + "version": "1.0", + "required": true + }, + { + "group_id": "ant", + "artifact_id": "ant", + "version": "1.6.5", + "required": true + }, + { + "group_id": "javax.mail", + "artifact_id": "mail", + "version": "1.4", + "required": true + }, + { + "group_id": "javax.activation", + "artifact_id": "activation", + "version": "1.1", + "required": true + } + ] + } } \ No newline at end of file diff --git a/tests/packagedcode/data/m2/org/mortbay/jetty/project/6.1.5/project-6.1.5.pom.package.json b/tests/packagedcode/data/m2/org/mortbay/jetty/project/6.1.5/project-6.1.5.pom.package.json index 45bdcc5387e..0fa837a8124 100644 --- a/tests/packagedcode/data/m2/org/mortbay/jetty/project/6.1.5/project-6.1.5.pom.package.json +++ b/tests/packagedcode/data/m2/org/mortbay/jetty/project/6.1.5/project-6.1.5.pom.package.json @@ -96,7 +96,96 @@ ], "notice_text": null, "root_path": null, - "dependencies": [], + "dependencies": [ + { + "purl": "pkg:maven/org.apache.maven/maven-plugin-tools-api@2.0", + "requirement": "2.0", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/junit/junit@3.8.2", + "requirement": "3.8.2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.slf4j/jcl104-over-slf4j@1.3.1", + "requirement": "1.3.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.slf4j/slf4j-simple@1.3.1", + "requirement": "1.3.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/mx4j/mx4j@3.0.1", + "requirement": "3.0.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/mx4j/mx4j-tools@3.0.1", + "requirement": "3.0.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/xerces/xercesImpl", + "requirement": "${xerces-version}", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": false + }, + { + "purl": "pkg:maven/commons-el/commons-el@1.0", + "requirement": "1.0", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/ant/ant@1.6.5", + "requirement": "1.6.5", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/javax.mail/mail@1.4", + "requirement": "1.4", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/javax.activation/activation@1.1", + "requirement": "1.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + } + ], "contains_source_code": null, "source_packages": [ "pkg:maven/org.mortbay.jetty/project@6.1.5?classifier=sources" diff --git a/tests/packagedcode/data/m2/org/openqa/selenium/client-drivers/selenium-client-drivers/0.9.2/selenium-client-drivers-0.9.2.pom.package.json b/tests/packagedcode/data/m2/org/openqa/selenium/client-drivers/selenium-client-drivers/0.9.2/selenium-client-drivers-0.9.2.pom.package.json index 077a5227733..cdd01c5dfb4 100644 --- a/tests/packagedcode/data/m2/org/openqa/selenium/client-drivers/selenium-client-drivers/0.9.2/selenium-client-drivers-0.9.2.pom.package.json +++ b/tests/packagedcode/data/m2/org/openqa/selenium/client-drivers/selenium-client-drivers/0.9.2/selenium-client-drivers-0.9.2.pom.package.json @@ -30,17 +30,17 @@ "purl": "pkg:maven/org.openqa.selenium.core/selenium-core", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { - "purl": "pkg:maven/org.openqa.selenium.server/selenium-server", + "purl": "pkg:maven/org.openqa.selenium.server/selenium-server@0.9.2", "requirement": "0.9.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/openqa/selenium/client-drivers/selenium-java-client-driver/0.9.2/selenium-java-client-driver-0.9.2.pom.package.json b/tests/packagedcode/data/m2/org/openqa/selenium/client-drivers/selenium-java-client-driver/0.9.2/selenium-java-client-driver-0.9.2.pom.package.json index ab27ecfe6b0..5b18af78248 100644 --- a/tests/packagedcode/data/m2/org/openqa/selenium/client-drivers/selenium-java-client-driver/0.9.2/selenium-java-client-driver-0.9.2.pom.package.json +++ b/tests/packagedcode/data/m2/org/openqa/selenium/client-drivers/selenium-java-client-driver/0.9.2/selenium-java-client-driver-0.9.2.pom.package.json @@ -32,15 +32,15 @@ "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": null }, { "purl": "pkg:maven/junit/junit", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/openqa/selenium/core/selenium-core/0.8.3/selenium-core-0.8.3.pom.package.json b/tests/packagedcode/data/m2/org/openqa/selenium/core/selenium-core/0.8.3/selenium-core-0.8.3.pom.package.json index 0e44105c7e5..5bc60ed475d 100644 --- a/tests/packagedcode/data/m2/org/openqa/selenium/core/selenium-core/0.8.3/selenium-core-0.8.3.pom.package.json +++ b/tests/packagedcode/data/m2/org/openqa/selenium/core/selenium-core/0.8.3/selenium-core-0.8.3.pom.package.json @@ -27,28 +27,28 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.openqa.selenium.server/selenium-server-coreless", + "purl": "pkg:maven/org.openqa.selenium.server/selenium-server-coreless@0.9.1", "requirement": "0.9.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/rhino/js", + "purl": "pkg:maven/rhino/js@1.6R5", "requirement": "1.6R5", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/openqa/selenium/selenium-rc/0.9.1/selenium-rc-0.9.1.pom.json b/tests/packagedcode/data/m2/org/openqa/selenium/selenium-rc/0.9.1/selenium-rc-0.9.1.pom.json index f5b59834080..7365340211d 100644 --- a/tests/packagedcode/data/m2/org/openqa/selenium/selenium-rc/0.9.1/selenium-rc-0.9.1.pom.json +++ b/tests/packagedcode/data/m2/org/openqa/selenium/selenium-rc/0.9.1/selenium-rc-0.9.1.pom.json @@ -54,5 +54,68 @@ "url": "http://people.apache.org/maven-snapshot-repository" } ], - "dependencies": {} + "dependencies": { + "dependencyManagement": [ + { + "group_id": "org.openqa.selenium.server", + "artifact_id": "selenium-server-coreless", + "version": "0.9.1", + "required": true + }, + { + "group_id": "org.openqa.selenium.server", + "artifact_id": "selenium-server", + "version": "0.9.1", + "required": true + }, + { + "group_id": "org.openqa.selenium.core", + "artifact_id": "selenium-core", + "version": "0.8.3-SNAPSHOT", + "required": true + }, + { + "group_id": "org.openqa.selenium.ide", + "artifact_id": "selenium-ide", + "version": "0.8.1-SNAPSHOT", + "required": true + }, + { + "group_id": "ant", + "artifact_id": "ant", + "version": "1.6.5", + "required": true + }, + { + "group_id": "jetty", + "artifact_id": "org.mortbay.jetty", + "version": "5.1.10", + "required": true + }, + { + "group_id": "commons-logging", + "artifact_id": "commons-logging", + "version": "1.0.4", + "required": true + }, + { + "group_id": "javax.servlet", + "artifact_id": "servlet-api", + "version": "2.4", + "required": true + }, + { + "group_id": "rhino", + "artifact_id": "js", + "version": "1.6R2", + "required": true + }, + { + "group_id": "junit", + "artifact_id": "junit", + "version": "3.8.1", + "required": true + } + ] + } } \ No newline at end of file diff --git a/tests/packagedcode/data/m2/org/openqa/selenium/selenium-rc/0.9.1/selenium-rc-0.9.1.pom.package.json b/tests/packagedcode/data/m2/org/openqa/selenium/selenium-rc/0.9.1/selenium-rc-0.9.1.pom.package.json index 27385c2940a..c45813bca16 100644 --- a/tests/packagedcode/data/m2/org/openqa/selenium/selenium-rc/0.9.1/selenium-rc-0.9.1.pom.package.json +++ b/tests/packagedcode/data/m2/org/openqa/selenium/selenium-rc/0.9.1/selenium-rc-0.9.1.pom.package.json @@ -25,7 +25,88 @@ "declared_license": null, "notice_text": null, "root_path": null, - "dependencies": [], + "dependencies": [ + { + "purl": "pkg:maven/org.openqa.selenium.server/selenium-server-coreless@0.9.1", + "requirement": "0.9.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.openqa.selenium.server/selenium-server@0.9.1", + "requirement": "0.9.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.openqa.selenium.core/selenium-core@0.8.3-SNAPSHOT", + "requirement": "0.8.3-SNAPSHOT", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.openqa.selenium.ide/selenium-ide@0.8.1-SNAPSHOT", + "requirement": "0.8.1-SNAPSHOT", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/ant/ant@1.6.5", + "requirement": "1.6.5", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/jetty/org.mortbay.jetty@5.1.10", + "requirement": "5.1.10", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/commons-logging/commons-logging@1.0.4", + "requirement": "1.0.4", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/javax.servlet/servlet-api@2.4", + "requirement": "2.4", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/rhino/js@1.6R2", + "requirement": "1.6R2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/junit/junit@3.8.1", + "requirement": "3.8.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + } + ], "contains_source_code": null, "source_packages": [ "pkg:maven/org.openqa.selenium/selenium-rc@0.9.1?classifier=sources" diff --git a/tests/packagedcode/data/m2/org/openqa/selenium/selenium-rc/0.9.2/selenium-rc-0.9.2.pom.json b/tests/packagedcode/data/m2/org/openqa/selenium/selenium-rc/0.9.2/selenium-rc-0.9.2.pom.json index b0c3685b819..c06d9f72e56 100644 --- a/tests/packagedcode/data/m2/org/openqa/selenium/selenium-rc/0.9.2/selenium-rc-0.9.2.pom.json +++ b/tests/packagedcode/data/m2/org/openqa/selenium/selenium-rc/0.9.2/selenium-rc-0.9.2.pom.json @@ -54,5 +54,74 @@ "url": "http://people.apache.org/maven-snapshot-repository" } ], - "dependencies": {} + "dependencies": { + "dependencyManagement": [ + { + "group_id": "org.openqa.selenium.server", + "artifact_id": "selenium-server-coreless", + "version": "0.9.2", + "required": true + }, + { + "group_id": "org.openqa.selenium.server", + "artifact_id": "selenium-server", + "version": "0.9.2", + "required": true + }, + { + "group_id": "org.openqa.selenium.core", + "artifact_id": "selenium-core", + "version": "0.8.3", + "required": true + }, + { + "group_id": "org.openqa.selenium.ide", + "artifact_id": "selenium-ide", + "version": "0.8.1-SNAPSHOT", + "required": true + }, + { + "group_id": "ant", + "artifact_id": "ant", + "version": "1.6.5", + "required": true + }, + { + "group_id": "jetty", + "artifact_id": "org.mortbay.jetty", + "version": "5.1.10", + "required": true + }, + { + "group_id": "commons-logging", + "artifact_id": "commons-logging", + "version": "1.0.4", + "required": true + }, + { + "group_id": "javax.servlet", + "artifact_id": "servlet-api", + "version": "2.4", + "required": true + }, + { + "group_id": "rhino", + "artifact_id": "js", + "version": "1.6R2", + "required": true + }, + { + "group_id": "junit", + "artifact_id": "junit", + "version": "3.8.1", + "required": true + }, + { + "group_id": "bouncycastle", + "artifact_id": "bcprov-jdk15", + "version": "135", + "required": true + } + ] + } } \ No newline at end of file diff --git a/tests/packagedcode/data/m2/org/openqa/selenium/selenium-rc/0.9.2/selenium-rc-0.9.2.pom.package.json b/tests/packagedcode/data/m2/org/openqa/selenium/selenium-rc/0.9.2/selenium-rc-0.9.2.pom.package.json index 339db666db9..d98156711c0 100644 --- a/tests/packagedcode/data/m2/org/openqa/selenium/selenium-rc/0.9.2/selenium-rc-0.9.2.pom.package.json +++ b/tests/packagedcode/data/m2/org/openqa/selenium/selenium-rc/0.9.2/selenium-rc-0.9.2.pom.package.json @@ -25,7 +25,96 @@ "declared_license": null, "notice_text": null, "root_path": null, - "dependencies": [], + "dependencies": [ + { + "purl": "pkg:maven/org.openqa.selenium.server/selenium-server-coreless@0.9.2", + "requirement": "0.9.2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.openqa.selenium.server/selenium-server@0.9.2", + "requirement": "0.9.2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.openqa.selenium.core/selenium-core@0.8.3", + "requirement": "0.8.3", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.openqa.selenium.ide/selenium-ide@0.8.1-SNAPSHOT", + "requirement": "0.8.1-SNAPSHOT", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/ant/ant@1.6.5", + "requirement": "1.6.5", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/jetty/org.mortbay.jetty@5.1.10", + "requirement": "5.1.10", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/commons-logging/commons-logging@1.0.4", + "requirement": "1.0.4", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/javax.servlet/servlet-api@2.4", + "requirement": "2.4", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/rhino/js@1.6R2", + "requirement": "1.6R2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/junit/junit@3.8.1", + "requirement": "3.8.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/bouncycastle/bcprov-jdk15@135", + "requirement": "135", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + } + ], "contains_source_code": null, "source_packages": [ "pkg:maven/org.openqa.selenium/selenium-rc@0.9.2?classifier=sources" diff --git a/tests/packagedcode/data/m2/org/openqa/selenium/server/selenium-server-coreless/0.9.1/selenium-server-coreless-0.9.1.pom.package.json b/tests/packagedcode/data/m2/org/openqa/selenium/server/selenium-server-coreless/0.9.1/selenium-server-coreless-0.9.1.pom.package.json index 1ad6656b45e..b794ac554cc 100644 --- a/tests/packagedcode/data/m2/org/openqa/selenium/server/selenium-server-coreless/0.9.1/selenium-server-coreless-0.9.1.pom.package.json +++ b/tests/packagedcode/data/m2/org/openqa/selenium/server/selenium-server-coreless/0.9.1/selenium-server-coreless-0.9.1.pom.package.json @@ -30,33 +30,33 @@ "purl": "pkg:maven/ant/ant", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/jetty/org.mortbay.jetty", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/commons-logging/commons-logging", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/javax.servlet/servlet-api", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/junit/junit", @@ -64,7 +64,7 @@ "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/openqa/selenium/server/selenium-server-coreless/0.9.2/selenium-server-coreless-0.9.2.pom.package.json b/tests/packagedcode/data/m2/org/openqa/selenium/server/selenium-server-coreless/0.9.2/selenium-server-coreless-0.9.2.pom.package.json index 10581f5c03d..d511bb7ea6c 100644 --- a/tests/packagedcode/data/m2/org/openqa/selenium/server/selenium-server-coreless/0.9.2/selenium-server-coreless-0.9.2.pom.package.json +++ b/tests/packagedcode/data/m2/org/openqa/selenium/server/selenium-server-coreless/0.9.2/selenium-server-coreless-0.9.2.pom.package.json @@ -30,41 +30,41 @@ "purl": "pkg:maven/ant/ant", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/jetty/org.mortbay.jetty", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/commons-logging/commons-logging", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/javax.servlet/servlet-api", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/bouncycastle/bcprov-jdk15", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/junit/junit", @@ -72,7 +72,7 @@ "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/openqa/selenium/server/selenium-server/0.9.2/selenium-server-0.9.2.pom.package.json b/tests/packagedcode/data/m2/org/openqa/selenium/server/selenium-server/0.9.2/selenium-server-0.9.2.pom.package.json index 9fc5984d877..0c42a6d6a67 100644 --- a/tests/packagedcode/data/m2/org/openqa/selenium/server/selenium-server/0.9.2/selenium-server-0.9.2.pom.package.json +++ b/tests/packagedcode/data/m2/org/openqa/selenium/server/selenium-server/0.9.2/selenium-server-0.9.2.pom.package.json @@ -30,17 +30,17 @@ "purl": "pkg:maven/org.openqa.selenium.server/selenium-server-coreless", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.openqa.selenium.core/selenium-core", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/slf4j/slf4j-log4j12/1.4.2/slf4j-log4j12-1.4.2.pom.package.json b/tests/packagedcode/data/m2/org/slf4j/slf4j-log4j12/1.4.2/slf4j-log4j12-1.4.2.pom.package.json index df03b1f7348..1ad018b7e2b 100644 --- a/tests/packagedcode/data/m2/org/slf4j/slf4j-log4j12/1.4.2/slf4j-log4j12-1.4.2.pom.package.json +++ b/tests/packagedcode/data/m2/org/slf4j/slf4j-log4j12/1.4.2/slf4j-log4j12-1.4.2.pom.package.json @@ -30,17 +30,17 @@ "purl": "pkg:maven/org.slf4j/slf4j-api", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/log4j/log4j", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/slf4j/slf4j-parent/1.4.2/slf4j-parent-1.4.2.pom.json b/tests/packagedcode/data/m2/org/slf4j/slf4j-parent/1.4.2/slf4j-parent-1.4.2.pom.json index 31d8368ce22..158af4e6098 100644 --- a/tests/packagedcode/data/m2/org/slf4j/slf4j-parent/1.4.2/slf4j-parent-1.4.2.pom.json +++ b/tests/packagedcode/data/m2/org/slf4j/slf4j-parent/1.4.2/slf4j-parent-1.4.2.pom.json @@ -66,6 +66,20 @@ "version": "3.8.1", "required": true } + ], + "dependencyManagement": [ + { + "group_id": "org.slf4j", + "artifact_id": "slf4j-api", + "version": "1.4.2", + "required": true + }, + { + "group_id": "log4j", + "artifact_id": "log4j", + "version": "1.2.13", + "required": true + } ] } } \ No newline at end of file diff --git a/tests/packagedcode/data/m2/org/slf4j/slf4j-parent/1.4.2/slf4j-parent-1.4.2.pom.package.json b/tests/packagedcode/data/m2/org/slf4j/slf4j-parent/1.4.2/slf4j-parent-1.4.2.pom.package.json index 576d17c0cc7..206393ab146 100644 --- a/tests/packagedcode/data/m2/org/slf4j/slf4j-parent/1.4.2/slf4j-parent-1.4.2.pom.package.json +++ b/tests/packagedcode/data/m2/org/slf4j/slf4j-parent/1.4.2/slf4j-parent-1.4.2.pom.package.json @@ -35,12 +35,28 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true + }, + { + "purl": "pkg:maven/org.slf4j/slf4j-api@1.4.2", + "requirement": "1.4.2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/log4j/log4j@1.2.13", + "requirement": "1.2.13", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/springframework/spring-aop/2.5.3/spring-aop-2.5.3.pom.package.json b/tests/packagedcode/data/m2/org/springframework/spring-aop/2.5.3/spring-aop-2.5.3.pom.package.json index bd5785463de..4d17e3e841d 100644 --- a/tests/packagedcode/data/m2/org/springframework/spring-aop/2.5.3/spring-aop-2.5.3.pom.package.json +++ b/tests/packagedcode/data/m2/org/springframework/spring-aop/2.5.3/spring-aop-2.5.3.pom.package.json @@ -42,100 +42,100 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/aopalliance/aopalliance", + "purl": "pkg:maven/aopalliance/aopalliance@1.0", "requirement": "1.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/aspectj/aspectjrt", + "purl": "pkg:maven/aspectj/aspectjrt@1.5.4", "requirement": "1.5.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/aspectj/aspectjweaver", + "purl": "pkg:maven/aspectj/aspectjweaver@1.5.4", "requirement": "1.5.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/cglib/cglib-nodep", + "purl": "pkg:maven/cglib/cglib-nodep@2.1_3", "requirement": "2.1_3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-attributes/commons-attributes-api", + "purl": "pkg:maven/commons-attributes/commons-attributes-api@2.2", "requirement": "2.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-attributes/commons-attributes-compiler", + "purl": "pkg:maven/commons-attributes/commons-attributes-compiler@2.2", "requirement": "2.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-logging/commons-logging", + "purl": "pkg:maven/commons-logging/commons-logging@1.1.1", "requirement": "1.1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-pool/commons-pool", + "purl": "pkg:maven/commons-pool/commons-pool@1.3", "requirement": "1.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/com.jamonapi/jamon", + "purl": "pkg:maven/com.jamonapi/jamon@2.4", "requirement": "2.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/oro/oro", + "purl": "pkg:maven/oro/oro@2.0.8", "requirement": "2.0.8", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-beans", + "purl": "pkg:maven/org.springframework/spring-beans@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-core", + "purl": "pkg:maven/org.springframework/spring-core@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/springframework/spring-aspects/2.5.3/spring-aspects-2.5.3.pom.package.json b/tests/packagedcode/data/m2/org/springframework/spring-aspects/2.5.3/spring-aspects-2.5.3.pom.package.json index cc22979a334..51d9dc052bd 100644 --- a/tests/packagedcode/data/m2/org/springframework/spring-aspects/2.5.3/spring-aspects-2.5.3.pom.package.json +++ b/tests/packagedcode/data/m2/org/springframework/spring-aspects/2.5.3/spring-aspects-2.5.3.pom.package.json @@ -42,44 +42,44 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/aspectj/aspectjrt", + "purl": "pkg:maven/aspectj/aspectjrt@1.5.4", "requirement": "1.5.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/aspectj/aspectjweaver", + "purl": "pkg:maven/aspectj/aspectjweaver@1.5.4", "requirement": "1.5.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-logging/commons-logging", + "purl": "pkg:maven/commons-logging/commons-logging@1.1.1", "requirement": "1.1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-beans", + "purl": "pkg:maven/org.springframework/spring-beans@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-tx", + "purl": "pkg:maven/org.springframework/spring-tx@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/springframework/spring-aspects/2.5.4/spring-aspects-2.5.4.pom.package.json b/tests/packagedcode/data/m2/org/springframework/spring-aspects/2.5.4/spring-aspects-2.5.4.pom.package.json index 1c7d84330ff..308003f0917 100644 --- a/tests/packagedcode/data/m2/org/springframework/spring-aspects/2.5.4/spring-aspects-2.5.4.pom.package.json +++ b/tests/packagedcode/data/m2/org/springframework/spring-aspects/2.5.4/spring-aspects-2.5.4.pom.package.json @@ -42,44 +42,44 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/aspectj/aspectjrt", + "purl": "pkg:maven/aspectj/aspectjrt@1.5.4", "requirement": "1.5.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/aspectj/aspectjweaver", + "purl": "pkg:maven/aspectj/aspectjweaver@1.5.4", "requirement": "1.5.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-logging/commons-logging", + "purl": "pkg:maven/commons-logging/commons-logging@1.1.1", "requirement": "1.1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-beans", + "purl": "pkg:maven/org.springframework/spring-beans@2.5.4", "requirement": "2.5.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-tx", + "purl": "pkg:maven/org.springframework/spring-tx@2.5.4", "requirement": "2.5.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/springframework/spring-beans/2.5.3/spring-beans-2.5.3.pom.package.json b/tests/packagedcode/data/m2/org/springframework/spring-beans/2.5.3/spring-beans-2.5.3.pom.package.json index 0199c9f5187..f5d6fc0aed4 100644 --- a/tests/packagedcode/data/m2/org/springframework/spring-beans/2.5.3/spring-beans-2.5.3.pom.package.json +++ b/tests/packagedcode/data/m2/org/springframework/spring-beans/2.5.3/spring-beans-2.5.3.pom.package.json @@ -42,28 +42,28 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/cglib/cglib-nodep", + "purl": "pkg:maven/cglib/cglib-nodep@2.1_3", "requirement": "2.1_3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-logging/commons-logging", + "purl": "pkg:maven/commons-logging/commons-logging@1.1.1", "requirement": "1.1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-core", + "purl": "pkg:maven/org.springframework/spring-core@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/springframework/spring-context-support/2.5.3/spring-context-support-2.5.3.pom.package.json b/tests/packagedcode/data/m2/org/springframework/spring-context-support/2.5.3/spring-context-support-2.5.3.pom.package.json index 521abed2179..0298ae28c7d 100644 --- a/tests/packagedcode/data/m2/org/springframework/spring-context-support/2.5.3/spring-context-support-2.5.3.pom.package.json +++ b/tests/packagedcode/data/m2/org/springframework/spring-context-support/2.5.3/spring-context-support-2.5.3.pom.package.json @@ -42,196 +42,196 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/aopalliance/aopalliance", + "purl": "pkg:maven/aopalliance/aopalliance@1.0", "requirement": "1.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/cglib/cglib-nodep", + "purl": "pkg:maven/cglib/cglib-nodep@2.1_3", "requirement": "2.1_3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-collections/commons-collections", + "purl": "pkg:maven/commons-collections/commons-collections@3.2", "requirement": "3.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-logging/commons-logging", + "purl": "pkg:maven/commons-logging/commons-logging@1.1.1", "requirement": "1.1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/com.bea.wlplatform/commonj-twm", + "purl": "pkg:maven/com.bea.wlplatform/commonj-twm@1.1", "requirement": "1.1", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/freemarker/freemarker", + "purl": "pkg:maven/freemarker/freemarker@2.3.12", "requirement": "2.3.12", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/groovy/groovy", + "purl": "pkg:maven/groovy/groovy@1.5.1", "requirement": "1.5.1", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/jasperreports/jasperreports", + "purl": "pkg:maven/jasperreports/jasperreports@2.0.2", "requirement": "2.0.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/jruby/jruby-bin", + "purl": "pkg:maven/jruby/jruby-bin@1.0.1", "requirement": "1.0.1", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/net.sf.ehcache/ehcache", + "purl": "pkg:maven/net.sf.ehcache/ehcache@1.3.0", "requirement": "1.3.0", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/com.oracle/oc4j", + "purl": "pkg:maven/com.oracle/oc4j@1.0", "requirement": "1.0", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.beanshell/bsh", + "purl": "pkg:maven/org.beanshell/bsh@2.0b4", "requirement": "2.0b4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/opensymphony/quartz-all", + "purl": "pkg:maven/opensymphony/quartz-all@1.6.0", "requirement": "1.6.0", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/velocity/velocity", + "purl": "pkg:maven/velocity/velocity@1.5", "requirement": "1.5", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/velocity-tools/velocity-tools-generic", + "purl": "pkg:maven/velocity-tools/velocity-tools-generic@1.4", "requirement": "1.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/velocity-tools/velocity-tools-view", + "purl": "pkg:maven/velocity-tools/velocity-tools-view@1.4", "requirement": "1.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-aop", + "purl": "pkg:maven/org.springframework/spring-aop@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-beans", + "purl": "pkg:maven/org.springframework/spring-beans@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-context", + "purl": "pkg:maven/org.springframework/spring-context@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-core", + "purl": "pkg:maven/org.springframework/spring-core@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-jdbc", + "purl": "pkg:maven/org.springframework/spring-jdbc@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-tx", + "purl": "pkg:maven/org.springframework/spring-tx@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.activation/activation", + "purl": "pkg:maven/javax.activation/activation@1.1", "requirement": "1.1", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.mail/mail", + "purl": "pkg:maven/javax.mail/mail@1.4", "requirement": "1.4", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/springframework/spring-context/2.5.3/spring-context-2.5.3.pom.package.json b/tests/packagedcode/data/m2/org/springframework/spring-context/2.5.3/spring-context-2.5.3.pom.package.json index 40d3356283f..3d5b3b10d76 100644 --- a/tests/packagedcode/data/m2/org/springframework/spring-context/2.5.3/spring-context-2.5.3.pom.package.json +++ b/tests/packagedcode/data/m2/org/springframework/spring-context/2.5.3/spring-context-2.5.3.pom.package.json @@ -42,92 +42,92 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/aopalliance/aopalliance", + "purl": "pkg:maven/aopalliance/aopalliance@1.0", "requirement": "1.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/backport-util-concurrent/backport-util-concurrent", + "purl": "pkg:maven/backport-util-concurrent/backport-util-concurrent@3.0", "requirement": "3.0", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-logging/commons-logging", + "purl": "pkg:maven/commons-logging/commons-logging@1.1.1", "requirement": "1.1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/com.bea.wlplatform/commonj-twm", + "purl": "pkg:maven/com.bea.wlplatform/commonj-twm@1.1", "requirement": "1.1", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-agent", + "purl": "pkg:maven/org.springframework/spring-agent@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-aop", + "purl": "pkg:maven/org.springframework/spring-aop@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-beans", + "purl": "pkg:maven/org.springframework/spring-beans@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-core", + "purl": "pkg:maven/org.springframework/spring-core@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/javax.ejb/ejb", + "purl": "pkg:maven/javax.ejb/ejb@3.0", "requirement": "3.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.jms/jms", + "purl": "pkg:maven/javax.jms/jms@1.1", "requirement": "1.1", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.xml/jaxrpc-api", + "purl": "pkg:maven/javax.xml/jaxrpc-api@1.1", "requirement": "1.1", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/springframework/spring-core/2.5.3/spring-core-2.5.3.pom.package.json b/tests/packagedcode/data/m2/org/springframework/spring-core/2.5.3/spring-core-2.5.3.pom.package.json index d2978819529..1b6cc990df1 100644 --- a/tests/packagedcode/data/m2/org/springframework/spring-core/2.5.3/spring-core-2.5.3.pom.package.json +++ b/tests/packagedcode/data/m2/org/springframework/spring-core/2.5.3/spring-core-2.5.3.pom.package.json @@ -42,60 +42,60 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/asm/asm", + "purl": "pkg:maven/asm/asm@2.2.3", "requirement": "2.2.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/asm/asm-commons", + "purl": "pkg:maven/asm/asm-commons@2.2.3", "requirement": "2.2.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/asm/asm-util", + "purl": "pkg:maven/asm/asm-util@2.2.3", "requirement": "2.2.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/backport-util-concurrent/backport-util-concurrent", + "purl": "pkg:maven/backport-util-concurrent/backport-util-concurrent@3.0", "requirement": "3.0", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-collections/commons-collections", + "purl": "pkg:maven/commons-collections/commons-collections@3.2", "requirement": "3.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-logging/commons-logging", + "purl": "pkg:maven/commons-logging/commons-logging@1.1.1", "requirement": "1.1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/log4j/log4j", + "purl": "pkg:maven/log4j/log4j@1.2.13", "requirement": "1.2.13", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/springframework/spring-jdbc/2.5.3/spring-jdbc-2.5.3.pom.package.json b/tests/packagedcode/data/m2/org/springframework/spring-jdbc/2.5.3/spring-jdbc-2.5.3.pom.package.json index a993c663e5c..f2693af530b 100644 --- a/tests/packagedcode/data/m2/org/springframework/spring-jdbc/2.5.3/spring-jdbc-2.5.3.pom.package.json +++ b/tests/packagedcode/data/m2/org/springframework/spring-jdbc/2.5.3/spring-jdbc-2.5.3.pom.package.json @@ -42,68 +42,68 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/c3p0/c3p0", + "purl": "pkg:maven/c3p0/c3p0@0.9.1.2", "requirement": "0.9.1.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-dbcp/commons-dbcp", + "purl": "pkg:maven/commons-dbcp/commons-dbcp@1.2.2", "requirement": "1.2.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-logging/commons-logging", + "purl": "pkg:maven/commons-logging/commons-logging@1.1.1", "requirement": "1.1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/jotm/jotm", + "purl": "pkg:maven/jotm/jotm@2.0.10", "requirement": "2.0.10", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-beans", + "purl": "pkg:maven/org.springframework/spring-beans@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-context", + "purl": "pkg:maven/org.springframework/spring-context@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-core", + "purl": "pkg:maven/org.springframework/spring-core@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-tx", + "purl": "pkg:maven/org.springframework/spring-tx@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/springframework/spring-orm/2.5.3/spring-orm-2.5.3.pom.package.json b/tests/packagedcode/data/m2/org/springframework/spring-orm/2.5.3/spring-orm-2.5.3.pom.package.json index 0651c86977a..e8068343c44 100644 --- a/tests/packagedcode/data/m2/org/springframework/spring-orm/2.5.3/spring-orm-2.5.3.pom.package.json +++ b/tests/packagedcode/data/m2/org/springframework/spring-orm/2.5.3/spring-orm-2.5.3.pom.package.json @@ -42,132 +42,132 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/aopalliance/aopalliance", + "purl": "pkg:maven/aopalliance/aopalliance@1.0", "requirement": "1.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-logging/commons-logging", + "purl": "pkg:maven/commons-logging/commons-logging@1.1.1", "requirement": "1.1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/com.oracle/toplink-essentials", + "purl": "pkg:maven/com.oracle/toplink-essentials@2.41", "requirement": "2.41", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/com.oracle.toplink/toplink", + "purl": "pkg:maven/com.oracle.toplink/toplink@10.1.3", "requirement": "10.1.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.ibatis/ibatis-sqlmap", + "purl": "pkg:maven/org.apache.ibatis/ibatis-sqlmap@2.3.0", "requirement": "2.3.0", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.hibernate/hibernate", + "purl": "pkg:maven/org.hibernate/hibernate@3.2.6.ga", "requirement": "3.2.6.ga", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.hibernate/hibernate-entitymanager", + "purl": "pkg:maven/org.hibernate/hibernate-entitymanager@3.3.1.ga", "requirement": "3.3.1.ga", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-aop", + "purl": "pkg:maven/org.springframework/spring-aop@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-beans", + "purl": "pkg:maven/org.springframework/spring-beans@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-context", + "purl": "pkg:maven/org.springframework/spring-context@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-core", + "purl": "pkg:maven/org.springframework/spring-core@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-jdbc", + "purl": "pkg:maven/org.springframework/spring-jdbc@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-tx", + "purl": "pkg:maven/org.springframework/spring-tx@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-web", + "purl": "pkg:maven/org.springframework/spring-web@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.jdo/jdo2-api", + "purl": "pkg:maven/javax.jdo/jdo2-api@2.0", "requirement": "2.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.persistence/persistence-api", + "purl": "pkg:maven/javax.persistence/persistence-api@1.0", "requirement": "1.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/springframework/spring-test/2.5.3/spring-test-2.5.3.pom.package.json b/tests/packagedcode/data/m2/org/springframework/spring-test/2.5.3/spring-test-2.5.3.pom.package.json index bb03e281532..861bdb09bb2 100644 --- a/tests/packagedcode/data/m2/org/springframework/spring-test/2.5.3/spring-test-2.5.3.pom.package.json +++ b/tests/packagedcode/data/m2/org/springframework/spring-test/2.5.3/spring-test-2.5.3.pom.package.json @@ -42,132 +42,132 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/aspectj/aspectjrt", + "purl": "pkg:maven/aspectj/aspectjrt@1.5.4", "requirement": "1.5.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/aspectj/aspectjweaver", + "purl": "pkg:maven/aspectj/aspectjweaver@1.5.4", "requirement": "1.5.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-logging/commons-logging", + "purl": "pkg:maven/commons-logging/commons-logging@1.1.1", "requirement": "1.1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/taglibs/standard", + "purl": "pkg:maven/taglibs/standard@1.1.2", "requirement": "1.1.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-beans", + "purl": "pkg:maven/org.springframework/spring-beans@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-context", + "purl": "pkg:maven/org.springframework/spring-context@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-core", + "purl": "pkg:maven/org.springframework/spring-core@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-jdbc", + "purl": "pkg:maven/org.springframework/spring-jdbc@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-orm", + "purl": "pkg:maven/org.springframework/spring-orm@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-tx", + "purl": "pkg:maven/org.springframework/spring-tx@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-webmvc", + "purl": "pkg:maven/org.springframework/spring-webmvc@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.persistence/persistence-api", + "purl": "pkg:maven/javax.persistence/persistence-api@1.0", "requirement": "1.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.portlet/portlet-api", + "purl": "pkg:maven/javax.portlet/portlet-api@1.0", "requirement": "1.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/jsp-api", + "purl": "pkg:maven/javax.servlet/jsp-api@2.0", "requirement": "2.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/servlet-api", + "purl": "pkg:maven/javax.servlet/servlet-api@2.4", "requirement": "2.4", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/springframework/spring-test/2.5.4/spring-test-2.5.4.pom.package.json b/tests/packagedcode/data/m2/org/springframework/spring-test/2.5.4/spring-test-2.5.4.pom.package.json index 8912a7e0f39..eb36b277436 100644 --- a/tests/packagedcode/data/m2/org/springframework/spring-test/2.5.4/spring-test-2.5.4.pom.package.json +++ b/tests/packagedcode/data/m2/org/springframework/spring-test/2.5.4/spring-test-2.5.4.pom.package.json @@ -42,132 +42,132 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/aspectj/aspectjrt", + "purl": "pkg:maven/aspectj/aspectjrt@1.5.4", "requirement": "1.5.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/aspectj/aspectjweaver", + "purl": "pkg:maven/aspectj/aspectjweaver@1.5.4", "requirement": "1.5.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-logging/commons-logging", + "purl": "pkg:maven/commons-logging/commons-logging@1.1.1", "requirement": "1.1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/taglibs/standard", + "purl": "pkg:maven/taglibs/standard@1.1.2", "requirement": "1.1.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-beans", + "purl": "pkg:maven/org.springframework/spring-beans@2.5.4", "requirement": "2.5.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-context", + "purl": "pkg:maven/org.springframework/spring-context@2.5.4", "requirement": "2.5.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-core", + "purl": "pkg:maven/org.springframework/spring-core@2.5.4", "requirement": "2.5.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-jdbc", + "purl": "pkg:maven/org.springframework/spring-jdbc@2.5.4", "requirement": "2.5.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-orm", + "purl": "pkg:maven/org.springframework/spring-orm@2.5.4", "requirement": "2.5.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-tx", + "purl": "pkg:maven/org.springframework/spring-tx@2.5.4", "requirement": "2.5.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-webmvc", + "purl": "pkg:maven/org.springframework/spring-webmvc@2.5.4", "requirement": "2.5.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.persistence/persistence-api", + "purl": "pkg:maven/javax.persistence/persistence-api@1.0", "requirement": "1.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.portlet/portlet-api", + "purl": "pkg:maven/javax.portlet/portlet-api@1.0", "requirement": "1.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/jsp-api", + "purl": "pkg:maven/javax.servlet/jsp-api@2.0", "requirement": "2.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/servlet-api", + "purl": "pkg:maven/javax.servlet/servlet-api@2.4", "requirement": "2.4", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/springframework/spring-tx/2.5.3/spring-tx-2.5.3.pom.package.json b/tests/packagedcode/data/m2/org/springframework/spring-tx/2.5.3/spring-tx-2.5.3.pom.package.json index d783f49ac2b..bb11fb34e20 100644 --- a/tests/packagedcode/data/m2/org/springframework/spring-tx/2.5.3/spring-tx-2.5.3.pom.package.json +++ b/tests/packagedcode/data/m2/org/springframework/spring-tx/2.5.3/spring-tx-2.5.3.pom.package.json @@ -42,84 +42,84 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/aopalliance/aopalliance", + "purl": "pkg:maven/aopalliance/aopalliance@1.0", "requirement": "1.0", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-logging/commons-logging", + "purl": "pkg:maven/commons-logging/commons-logging@1.1.1", "requirement": "1.1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/com.experlog/xapool", + "purl": "pkg:maven/com.experlog/xapool@1.5.0", "requirement": "1.5.0", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/jotm/jotm", + "purl": "pkg:maven/jotm/jotm@2.0.10", "requirement": "2.0.10", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-aop", + "purl": "pkg:maven/org.springframework/spring-aop@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-beans", + "purl": "pkg:maven/org.springframework/spring-beans@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-context", + "purl": "pkg:maven/org.springframework/spring-context@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-core", + "purl": "pkg:maven/org.springframework/spring-core@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/javax.resource/connector-api", + "purl": "pkg:maven/javax.resource/connector-api@1.5", "requirement": "1.5", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.transaction/jta", + "purl": "pkg:maven/javax.transaction/jta@1.1", "requirement": "1.1", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/springframework/spring-web/2.5.3/spring-web-2.5.3.pom.package.json b/tests/packagedcode/data/m2/org/springframework/spring-web/2.5.3/spring-web-2.5.3.pom.package.json index f749d60dbc5..c45c7e16a41 100644 --- a/tests/packagedcode/data/m2/org/springframework/spring-web/2.5.3/spring-web-2.5.3.pom.package.json +++ b/tests/packagedcode/data/m2/org/springframework/spring-web/2.5.3/spring-web-2.5.3.pom.package.json @@ -42,124 +42,124 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/commons-beanutils/commons-beanutils", + "purl": "pkg:maven/commons-beanutils/commons-beanutils@1.7.0", "requirement": "1.7.0", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-fileupload/commons-fileupload", + "purl": "pkg:maven/commons-fileupload/commons-fileupload@1.2", "requirement": "1.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-httpclient/commons-httpclient", + "purl": "pkg:maven/commons-httpclient/commons-httpclient@3.1", "requirement": "3.1", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-logging/commons-logging", + "purl": "pkg:maven/commons-logging/commons-logging@1.1.1", "requirement": "1.1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/hessian/hessian", + "purl": "pkg:maven/hessian/hessian@3.1.3", "requirement": "3.1.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/log4j/log4j", + "purl": "pkg:maven/log4j/log4j@1.2.13", "requirement": "1.2.13", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.axis/axis", + "purl": "pkg:maven/org.apache.axis/axis@1.4", "requirement": "1.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/struts/struts", + "purl": "pkg:maven/struts/struts@1.2.9", "requirement": "1.2.9", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/taglibs/standard", + "purl": "pkg:maven/taglibs/standard@1.1.2", "requirement": "1.1.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-beans", + "purl": "pkg:maven/org.springframework/spring-beans@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-context", + "purl": "pkg:maven/org.springframework/spring-context@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-core", + "purl": "pkg:maven/org.springframework/spring-core@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/javax.faces/jsf-api", + "purl": "pkg:maven/javax.faces/jsf-api@1.1", "requirement": "1.1", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/jsp-api", + "purl": "pkg:maven/javax.servlet/jsp-api@2.0", "requirement": "2.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/servlet-api", + "purl": "pkg:maven/javax.servlet/servlet-api@2.4", "requirement": "2.4", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/springframework/spring-webmvc/2.5.3/spring-webmvc-2.5.3.pom.package.json b/tests/packagedcode/data/m2/org/springframework/spring-webmvc/2.5.3/spring-webmvc-2.5.3.pom.package.json index be7400186b1..a6e05486316 100644 --- a/tests/packagedcode/data/m2/org/springframework/spring-webmvc/2.5.3/spring-webmvc-2.5.3.pom.package.json +++ b/tests/packagedcode/data/m2/org/springframework/spring-webmvc/2.5.3/spring-webmvc-2.5.3.pom.package.json @@ -42,180 +42,180 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/commons-attributes/commons-attributes-api", + "purl": "pkg:maven/commons-attributes/commons-attributes-api@2.2", "requirement": "2.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-attributes/commons-attributes-compiler", + "purl": "pkg:maven/commons-attributes/commons-attributes-compiler@2.2", "requirement": "2.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-logging/commons-logging", + "purl": "pkg:maven/commons-logging/commons-logging@1.1.1", "requirement": "1.1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/com.lowagie/itext", + "purl": "pkg:maven/com.lowagie/itext@2.0.7", "requirement": "2.0.7", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/freemarker/freemarker", + "purl": "pkg:maven/freemarker/freemarker@2.3.12", "requirement": "2.3.12", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/jasperreports/jasperreports", + "purl": "pkg:maven/jasperreports/jasperreports@2.0.2", "requirement": "2.0.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/jexcelapi/jxl", + "purl": "pkg:maven/jexcelapi/jxl@2.6.6", "requirement": "2.6.6", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.tiles/tiles-api", + "purl": "pkg:maven/org.apache.tiles/tiles-api@2.0.5", "requirement": "2.0.5", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.tiles/tiles-core", + "purl": "pkg:maven/org.apache.tiles/tiles-core@2.0.5", "requirement": "2.0.5", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.tiles/tiles-jsp", + "purl": "pkg:maven/org.apache.tiles/tiles-jsp@2.0.5", "requirement": "2.0.5", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/poi/poi", + "purl": "pkg:maven/poi/poi@3.0.1", "requirement": "3.0.1", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/velocity/velocity", + "purl": "pkg:maven/velocity/velocity@1.5", "requirement": "1.5", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/velocity-tools/velocity-tools-generic", + "purl": "pkg:maven/velocity-tools/velocity-tools-generic@1.4", "requirement": "1.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/velocity-tools/velocity-tools-view", + "purl": "pkg:maven/velocity-tools/velocity-tools-view@1.4", "requirement": "1.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-beans", + "purl": "pkg:maven/org.springframework/spring-beans@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-context", + "purl": "pkg:maven/org.springframework/spring-context@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-context-support", + "purl": "pkg:maven/org.springframework/spring-context-support@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-core", + "purl": "pkg:maven/org.springframework/spring-core@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-web", + "purl": "pkg:maven/org.springframework/spring-web@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/jsp-api", + "purl": "pkg:maven/javax.servlet/jsp-api@2.0", "requirement": "2.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/jstl", + "purl": "pkg:maven/javax.servlet/jstl@1.1.0", "requirement": "1.1.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/servlet-api", + "purl": "pkg:maven/javax.servlet/servlet-api@2.4", "requirement": "2.4", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/springframework/spring-webmvc/2.5.4/spring-webmvc-2.5.4.pom.package.json b/tests/packagedcode/data/m2/org/springframework/spring-webmvc/2.5.4/spring-webmvc-2.5.4.pom.package.json index 1e958889c83..02415ac5cc5 100644 --- a/tests/packagedcode/data/m2/org/springframework/spring-webmvc/2.5.4/spring-webmvc-2.5.4.pom.package.json +++ b/tests/packagedcode/data/m2/org/springframework/spring-webmvc/2.5.4/spring-webmvc-2.5.4.pom.package.json @@ -42,180 +42,180 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/commons-attributes/commons-attributes-api", + "purl": "pkg:maven/commons-attributes/commons-attributes-api@2.2", "requirement": "2.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-attributes/commons-attributes-compiler", + "purl": "pkg:maven/commons-attributes/commons-attributes-compiler@2.2", "requirement": "2.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-logging/commons-logging", + "purl": "pkg:maven/commons-logging/commons-logging@1.1.1", "requirement": "1.1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/com.lowagie/itext", + "purl": "pkg:maven/com.lowagie/itext@2.0.7", "requirement": "2.0.7", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/freemarker/freemarker", + "purl": "pkg:maven/freemarker/freemarker@2.3.12", "requirement": "2.3.12", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/jasperreports/jasperreports", + "purl": "pkg:maven/jasperreports/jasperreports@2.0.2", "requirement": "2.0.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/jexcelapi/jxl", + "purl": "pkg:maven/jexcelapi/jxl@2.6.6", "requirement": "2.6.6", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.tiles/tiles-api", + "purl": "pkg:maven/org.apache.tiles/tiles-api@2.0.5", "requirement": "2.0.5", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.tiles/tiles-core", + "purl": "pkg:maven/org.apache.tiles/tiles-core@2.0.5", "requirement": "2.0.5", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.tiles/tiles-jsp", + "purl": "pkg:maven/org.apache.tiles/tiles-jsp@2.0.5", "requirement": "2.0.5", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/poi/poi", + "purl": "pkg:maven/poi/poi@3.0.1", "requirement": "3.0.1", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/velocity/velocity", + "purl": "pkg:maven/velocity/velocity@1.5", "requirement": "1.5", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/velocity-tools/velocity-tools-generic", + "purl": "pkg:maven/velocity-tools/velocity-tools-generic@1.4", "requirement": "1.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/velocity-tools/velocity-tools-view", + "purl": "pkg:maven/velocity-tools/velocity-tools-view@1.4", "requirement": "1.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-beans", + "purl": "pkg:maven/org.springframework/spring-beans@2.5.4", "requirement": "2.5.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-context", + "purl": "pkg:maven/org.springframework/spring-context@2.5.4", "requirement": "2.5.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-context-support", + "purl": "pkg:maven/org.springframework/spring-context-support@2.5.4", "requirement": "2.5.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-core", + "purl": "pkg:maven/org.springframework/spring-core@2.5.4", "requirement": "2.5.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-web", + "purl": "pkg:maven/org.springframework/spring-web@2.5.4", "requirement": "2.5.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/jsp-api", + "purl": "pkg:maven/javax.servlet/jsp-api@2.0", "requirement": "2.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/jstl", + "purl": "pkg:maven/javax.servlet/jstl@1.1.0", "requirement": "1.1.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/servlet-api", + "purl": "pkg:maven/javax.servlet/servlet-api@2.4", "requirement": "2.4", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/springframework/spring/2.5.4/spring-2.5.4.pom.package.json b/tests/packagedcode/data/m2/org/springframework/spring/2.5.4/spring-2.5.4.pom.package.json index 28bb7f8c9e4..3d7f9f4ea9e 100644 --- a/tests/packagedcode/data/m2/org/springframework/spring/2.5.4/spring-2.5.4.pom.package.json +++ b/tests/packagedcode/data/m2/org/springframework/spring/2.5.4/spring-2.5.4.pom.package.json @@ -42,524 +42,524 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/aopalliance/aopalliance", + "purl": "pkg:maven/aopalliance/aopalliance@1.0", "requirement": "1.0", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/asm/asm", + "purl": "pkg:maven/asm/asm@2.2.3", "requirement": "2.2.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/asm/asm-commons", + "purl": "pkg:maven/asm/asm-commons@2.2.3", "requirement": "2.2.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/asm/asm-util", + "purl": "pkg:maven/asm/asm-util@2.2.3", "requirement": "2.2.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/aspectj/aspectjrt", + "purl": "pkg:maven/aspectj/aspectjrt@1.5.4", "requirement": "1.5.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/aspectj/aspectjweaver", + "purl": "pkg:maven/aspectj/aspectjweaver@1.5.4", "requirement": "1.5.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/backport-util-concurrent/backport-util-concurrent", + "purl": "pkg:maven/backport-util-concurrent/backport-util-concurrent@3.0", "requirement": "3.0", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/c3p0/c3p0", + "purl": "pkg:maven/c3p0/c3p0@0.9.1.2", "requirement": "0.9.1.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/cglib/cglib-nodep", + "purl": "pkg:maven/cglib/cglib-nodep@2.1_3", "requirement": "2.1_3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-attributes/commons-attributes-api", + "purl": "pkg:maven/commons-attributes/commons-attributes-api@2.2", "requirement": "2.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-attributes/commons-attributes-compiler", + "purl": "pkg:maven/commons-attributes/commons-attributes-compiler@2.2", "requirement": "2.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-beanutils/commons-beanutils", + "purl": "pkg:maven/commons-beanutils/commons-beanutils@1.7.0", "requirement": "1.7.0", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-collections/commons-collections", + "purl": "pkg:maven/commons-collections/commons-collections@3.2", "requirement": "3.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-dbcp/commons-dbcp", + "purl": "pkg:maven/commons-dbcp/commons-dbcp@1.2.2", "requirement": "1.2.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-fileupload/commons-fileupload", + "purl": "pkg:maven/commons-fileupload/commons-fileupload@1.2", "requirement": "1.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-httpclient/commons-httpclient", + "purl": "pkg:maven/commons-httpclient/commons-httpclient@3.1", "requirement": "3.1", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-logging/commons-logging", + "purl": "pkg:maven/commons-logging/commons-logging@1.1.1", "requirement": "1.1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-pool/commons-pool", + "purl": "pkg:maven/commons-pool/commons-pool@1.3", "requirement": "1.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/com.bea.wlplatform/commonj-twm", + "purl": "pkg:maven/com.bea.wlplatform/commonj-twm@1.1", "requirement": "1.1", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/com.experlog/xapool", + "purl": "pkg:maven/com.experlog/xapool@1.5.0", "requirement": "1.5.0", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.ibatis/ibatis-sqlmap", + "purl": "pkg:maven/org.apache.ibatis/ibatis-sqlmap@2.3.0.677", "requirement": "2.3.0.677", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/com.jamonapi/jamon", + "purl": "pkg:maven/com.jamonapi/jamon@2.4", "requirement": "2.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/com.lowagie/itext", + "purl": "pkg:maven/com.lowagie/itext@2.0.7", "requirement": "2.0.7", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/com.oracle.toplink/toplink", + "purl": "pkg:maven/com.oracle.toplink/toplink@10.1.3", "requirement": "10.1.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/com.oracle/toplink-essentials", + "purl": "pkg:maven/com.oracle/toplink-essentials@2.41", "requirement": "2.41", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/com.oracle/oc4j", + "purl": "pkg:maven/com.oracle/oc4j@1.0", "requirement": "1.0", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/freemarker/freemarker", + "purl": "pkg:maven/freemarker/freemarker@2.3.12", "requirement": "2.3.12", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/groovy/groovy", + "purl": "pkg:maven/groovy/groovy@1.5.5", "requirement": "1.5.5", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/hessian/hessian", + "purl": "pkg:maven/hessian/hessian@3.1.3", "requirement": "3.1.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/jasperreports/jasperreports", + "purl": "pkg:maven/jasperreports/jasperreports@2.0.5", "requirement": "2.0.5", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/jexcelapi/jxl", + "purl": "pkg:maven/jexcelapi/jxl@2.6.6", "requirement": "2.6.6", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/jotm/jotm", + "purl": "pkg:maven/jotm/jotm@2.0.10", "requirement": "2.0.10", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/jruby/jruby-bin", + "purl": "pkg:maven/jruby/jruby-bin@1.0.1", "requirement": "1.0.1", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/log4j/log4j", + "purl": "pkg:maven/log4j/log4j@1.2.15", "requirement": "1.2.15", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/net.sf.ehcache/ehcache", + "purl": "pkg:maven/net.sf.ehcache/ehcache@1.4.1", "requirement": "1.4.1", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.axis/axis", + "purl": "pkg:maven/org.apache.axis/axis@1.4", "requirement": "1.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.tiles/tiles-api", + "purl": "pkg:maven/org.apache.tiles/tiles-api@2.0.5", "requirement": "2.0.5", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.tiles/tiles-core", + "purl": "pkg:maven/org.apache.tiles/tiles-core@2.0.5", "requirement": "2.0.5", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.tiles/tiles-jsp", + "purl": "pkg:maven/org.apache.tiles/tiles-jsp@2.0.5", "requirement": "2.0.5", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.beanshell/bsh", + "purl": "pkg:maven/org.beanshell/bsh@2.0b4", "requirement": "2.0b4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.hibernate/hibernate", + "purl": "pkg:maven/org.hibernate/hibernate@3.2.6.ga", "requirement": "3.2.6.ga", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.hibernate/hibernate-entitymanager", + "purl": "pkg:maven/org.hibernate/hibernate-entitymanager@3.3.2.ga", "requirement": "3.3.2.ga", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/poi/poi", + "purl": "pkg:maven/poi/poi@3.0.1", "requirement": "3.0.1", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/opensymphony/quartz-all", + "purl": "pkg:maven/opensymphony/quartz-all@1.6.0", "requirement": "1.6.0", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/struts/struts", + "purl": "pkg:maven/struts/struts@1.2.9", "requirement": "1.2.9", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/taglibs/standard", + "purl": "pkg:maven/taglibs/standard@1.1.2", "requirement": "1.1.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/tomcat/catalina", + "purl": "pkg:maven/tomcat/catalina@5.5.23", "requirement": "5.5.23", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/velocity/velocity", + "purl": "pkg:maven/velocity/velocity@1.5", "requirement": "1.5", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/velocity-tools/velocity-tools-generic", + "purl": "pkg:maven/velocity-tools/velocity-tools-generic@1.4", "requirement": "1.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/velocity-tools/velocity-tools-view", + "purl": "pkg:maven/velocity-tools/velocity-tools-view@1.4", "requirement": "1.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.activation/activation", + "purl": "pkg:maven/javax.activation/activation@1.1", "requirement": "1.1", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.ejb/ejb", + "purl": "pkg:maven/javax.ejb/ejb@3.0", "requirement": "3.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.faces/jsf-api", + "purl": "pkg:maven/javax.faces/jsf-api@1.1", "requirement": "1.1", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.jdo/jdo2-api", + "purl": "pkg:maven/javax.jdo/jdo2-api@2.0", "requirement": "2.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.jms/jms", + "purl": "pkg:maven/javax.jms/jms@1.1", "requirement": "1.1", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.mail/mail", + "purl": "pkg:maven/javax.mail/mail@1.4", "requirement": "1.4", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.persistence/persistence-api", + "purl": "pkg:maven/javax.persistence/persistence-api@1.0", "requirement": "1.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.portlet/portlet-api", + "purl": "pkg:maven/javax.portlet/portlet-api@1.0", "requirement": "1.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.resource/connector-api", + "purl": "pkg:maven/javax.resource/connector-api@1.5", "requirement": "1.5", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/jsp-api", + "purl": "pkg:maven/javax.servlet/jsp-api@2.0", "requirement": "2.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/jstl", + "purl": "pkg:maven/javax.servlet/jstl@1.1.0", "requirement": "1.1.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/servlet-api", + "purl": "pkg:maven/javax.servlet/servlet-api@2.4", "requirement": "2.4", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.transaction/jta", + "purl": "pkg:maven/javax.transaction/jta@1.1", "requirement": "1.1", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.xml/jaxrpc-api", + "purl": "pkg:maven/javax.xml/jaxrpc-api@1.1", "requirement": "1.1", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/testng/testng/5.7/testng-5.7.pom.package.json b/tests/packagedcode/data/m2/org/testng/testng/5.7/testng-5.7.pom.package.json index 4f71153e7b2..420ae05eb1e 100644 --- a/tests/packagedcode/data/m2/org/testng/testng/5.7/testng-5.7.pom.package.json +++ b/tests/packagedcode/data/m2/org/testng/testng/5.7/testng-5.7.pom.package.json @@ -34,36 +34,36 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/ant/ant", + "purl": "pkg:maven/ant/ant@1.6.5", "requirement": "1.6.5", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/qdox/qdox", + "purl": "pkg:maven/qdox/qdox@1.6.1", "requirement": "1.6.1", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.beanshell/bsh", + "purl": "pkg:maven/org.beanshell/bsh@2.0b4", "requirement": "2.0b4", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/testng/testng/5.8/testng-5.8.pom.package.json b/tests/packagedcode/data/m2/org/testng/testng/5.8/testng-5.8.pom.package.json index a97d5772c63..bd07bd52303 100644 --- a/tests/packagedcode/data/m2/org/testng/testng/5.8/testng-5.8.pom.package.json +++ b/tests/packagedcode/data/m2/org/testng/testng/5.8/testng-5.8.pom.package.json @@ -34,36 +34,36 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/ant/ant", + "purl": "pkg:maven/ant/ant@1.6.5", "requirement": "1.6.5", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/qdox/qdox", + "purl": "pkg:maven/qdox/qdox@1.6.1", "requirement": "1.6.1", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.beanshell/bsh", + "purl": "pkg:maven/org.beanshell/bsh@2.0b4", "requirement": "2.0b4", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/org/uncommons/reportng/0.9.5/reportng-0.9.5.pom.package.json b/tests/packagedcode/data/m2/org/uncommons/reportng/0.9.5/reportng-0.9.5.pom.package.json index 046c4ce1d59..8d36a34d492 100644 --- a/tests/packagedcode/data/m2/org/uncommons/reportng/0.9.5/reportng-0.9.5.pom.package.json +++ b/tests/packagedcode/data/m2/org/uncommons/reportng/0.9.5/reportng-0.9.5.pom.package.json @@ -27,12 +27,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.velocity/velocity", + "purl": "pkg:maven/org.apache.velocity/velocity@1.5", "requirement": "1.5", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/p6spy/p6spy/1.3/p6spy-1.3.pom.package.json b/tests/packagedcode/data/m2/p6spy/p6spy/1.3/p6spy-1.3.pom.package.json index ce46f93f399..d365b8f50f1 100644 --- a/tests/packagedcode/data/m2/p6spy/p6spy/1.3/p6spy-1.3.pom.package.json +++ b/tests/packagedcode/data/m2/p6spy/p6spy/1.3/p6spy-1.3.pom.package.json @@ -70,52 +70,52 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/regexp/regexp", + "purl": "pkg:maven/regexp/regexp@1.3", "requirement": "1.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/gnu-regexp/gnu-regexp", + "purl": "pkg:maven/gnu-regexp/gnu-regexp@1.1.4", "requirement": "1.1.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/log4j/log4j", + "purl": "pkg:maven/log4j/log4j@1.2.8", "requirement": "1.2.8", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/ant/ant", + "purl": "pkg:maven/ant/ant@1.6.2", "requirement": "1.6.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/oracle/classes12", + "purl": "pkg:maven/oracle/classes12@9.2.0.5", "requirement": "9.2.0.5", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/jboss/jboss", + "purl": "pkg:maven/jboss/jboss@2.4.6", "requirement": "2.4.6", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/parsing_issues/inifinite_loop/argus-webservices-2.7.0.pom.package.json b/tests/packagedcode/data/m2/parsing_issues/inifinite_loop/argus-webservices-2.7.0.pom.package.json index 52ad7a11261..b30bb38330f 100644 --- a/tests/packagedcode/data/m2/parsing_issues/inifinite_loop/argus-webservices-2.7.0.pom.package.json +++ b/tests/packagedcode/data/m2/parsing_issues/inifinite_loop/argus-webservices-2.7.0.pom.package.json @@ -37,84 +37,84 @@ "is_resolved": false }, { - "purl": "pkg:maven/javax.servlet/javax.servlet-api", + "purl": "pkg:maven/javax.servlet/javax.servlet-api@3.1.0", "requirement": "3.1.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.glassfish.jersey.containers/jersey-container-servlet", + "purl": "pkg:maven/org.glassfish.jersey.containers/jersey-container-servlet@2.6", "requirement": "2.6", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.glassfish.jersey.media/jersey-media-json-jackson", + "purl": "pkg:maven/org.glassfish.jersey.media/jersey-media-json-jackson@2.6", "requirement": "2.6", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { "purl": "pkg:maven/com.salesforce.argus/argus-core", "requirement": "${project.version}", "scope": "compile", - "is_runtime": true, - "is_optional": false, + "is_runtime": false, + "is_optional": true, "is_resolved": false }, { - "purl": "pkg:maven/com.fasterxml.jackson.core/jackson-annotations", + "purl": "pkg:maven/com.fasterxml.jackson.core/jackson-annotations@2.3.2", "requirement": "2.3.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/com.fasterxml.jackson.jaxrs/jackson-jaxrs-base", + "purl": "pkg:maven/com.fasterxml.jackson.jaxrs/jackson-jaxrs-base@2.3.2", "requirement": "2.3.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/com.fasterxml.jackson.jaxrs/jackson-jaxrs-json-provider", + "purl": "pkg:maven/com.fasterxml.jackson.jaxrs/jackson-jaxrs-json-provider@2.3.2", "requirement": "2.3.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.glassfish.jersey.core/jersey-common", + "purl": "pkg:maven/org.glassfish.jersey.core/jersey-common@2.6", "requirement": "2.6", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/io.jsonwebtoken/jjwt", + "purl": "pkg:maven/io.jsonwebtoken/jjwt@0.7.0", "requirement": "0.7.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@4.10", "requirement": "4.10", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/parsing_issues/inifinite_loop/argus-webservices-2.8.0.pom.package.json b/tests/packagedcode/data/m2/parsing_issues/inifinite_loop/argus-webservices-2.8.0.pom.package.json index 52ad7a11261..b30bb38330f 100644 --- a/tests/packagedcode/data/m2/parsing_issues/inifinite_loop/argus-webservices-2.8.0.pom.package.json +++ b/tests/packagedcode/data/m2/parsing_issues/inifinite_loop/argus-webservices-2.8.0.pom.package.json @@ -37,84 +37,84 @@ "is_resolved": false }, { - "purl": "pkg:maven/javax.servlet/javax.servlet-api", + "purl": "pkg:maven/javax.servlet/javax.servlet-api@3.1.0", "requirement": "3.1.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.glassfish.jersey.containers/jersey-container-servlet", + "purl": "pkg:maven/org.glassfish.jersey.containers/jersey-container-servlet@2.6", "requirement": "2.6", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.glassfish.jersey.media/jersey-media-json-jackson", + "purl": "pkg:maven/org.glassfish.jersey.media/jersey-media-json-jackson@2.6", "requirement": "2.6", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { "purl": "pkg:maven/com.salesforce.argus/argus-core", "requirement": "${project.version}", "scope": "compile", - "is_runtime": true, - "is_optional": false, + "is_runtime": false, + "is_optional": true, "is_resolved": false }, { - "purl": "pkg:maven/com.fasterxml.jackson.core/jackson-annotations", + "purl": "pkg:maven/com.fasterxml.jackson.core/jackson-annotations@2.3.2", "requirement": "2.3.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/com.fasterxml.jackson.jaxrs/jackson-jaxrs-base", + "purl": "pkg:maven/com.fasterxml.jackson.jaxrs/jackson-jaxrs-base@2.3.2", "requirement": "2.3.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/com.fasterxml.jackson.jaxrs/jackson-jaxrs-json-provider", + "purl": "pkg:maven/com.fasterxml.jackson.jaxrs/jackson-jaxrs-json-provider@2.3.2", "requirement": "2.3.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.glassfish.jersey.core/jersey-common", + "purl": "pkg:maven/org.glassfish.jersey.core/jersey-common@2.6", "requirement": "2.6", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/io.jsonwebtoken/jjwt", + "purl": "pkg:maven/io.jsonwebtoken/jjwt@0.7.0", "requirement": "0.7.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@4.10", "requirement": "4.10", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/parsing_issues/inifinite_loop/jacuzzi-database-0.2.1.pom.package.json b/tests/packagedcode/data/m2/parsing_issues/inifinite_loop/jacuzzi-database-0.2.1.pom.package.json index 625b6a76a4e..465de92ac2c 100644 --- a/tests/packagedcode/data/m2/parsing_issues/inifinite_loop/jacuzzi-database-0.2.1.pom.package.json +++ b/tests/packagedcode/data/m2/parsing_issues/inifinite_loop/jacuzzi-database-0.2.1.pom.package.json @@ -30,25 +30,25 @@ "purl": "pkg:maven/com.github.albertoanguita/jacuzzi-core", "requirement": "${version}", "scope": "compile", - "is_runtime": true, - "is_optional": false, + "is_runtime": false, + "is_optional": true, "is_resolved": false }, { - "purl": "pkg:maven/org.javalite/activejdbc", + "purl": "pkg:maven/org.javalite/activejdbc@1.4.12", "requirement": "1.4.12", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.xerial/sqlite-jdbc", + "purl": "pkg:maven/org.xerial/sqlite-jdbc@3.8.11.1", "requirement": "3.8.11.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/parsing_issues/inifinite_loop/ojcms-beans-0.1-beta.pom.package.json b/tests/packagedcode/data/m2/parsing_issues/inifinite_loop/ojcms-beans-0.1-beta.pom.package.json index bd6973f7021..de300ae10ac 100644 --- a/tests/packagedcode/data/m2/parsing_issues/inifinite_loop/ojcms-beans-0.1-beta.pom.package.json +++ b/tests/packagedcode/data/m2/parsing_issues/inifinite_loop/ojcms-beans-0.1-beta.pom.package.json @@ -27,12 +27,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.glassfish.jersey.media/jersey-media-json-jackson", + "purl": "pkg:maven/org.glassfish.jersey.media/jersey-media-json-jackson@2.25.1", "requirement": "2.25.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/parsing_issues/parse_error/jds-2.17.0718b.pom.package.json b/tests/packagedcode/data/m2/parsing_issues/parse_error/jds-2.17.0718b.pom.package.json index 0559186bbf6..13f357b55ad 100644 --- a/tests/packagedcode/data/m2/parsing_issues/parse_error/jds-2.17.0718b.pom.package.json +++ b/tests/packagedcode/data/m2/parsing_issues/parse_error/jds-2.17.0718b.pom.package.json @@ -42,44 +42,44 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@4.12", "requirement": "4.12", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.xerial/sqlite-jdbc", + "purl": "pkg:maven/org.xerial/sqlite-jdbc@3.16.1", "requirement": "3.16.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/com.microsoft.sqlserver/sqljdbc4", + "purl": "pkg:maven/com.microsoft.sqlserver/sqljdbc4@4.0", "requirement": "4.0", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.postgresql/postgresql", + "purl": "pkg:maven/org.postgresql/postgresql@42.0.0", "requirement": "42.0.0", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/mysql/mysql-connector-java", + "purl": "pkg:maven/mysql/mysql-connector-java@6.0.6", "requirement": "6.0.6", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/parsing_issues/parse_error/jds-3.0.1.pom.package.json b/tests/packagedcode/data/m2/parsing_issues/parse_error/jds-3.0.1.pom.package.json index 6b29eaca9ea..62eca2c7c89 100644 --- a/tests/packagedcode/data/m2/parsing_issues/parse_error/jds-3.0.1.pom.package.json +++ b/tests/packagedcode/data/m2/parsing_issues/parse_error/jds-3.0.1.pom.package.json @@ -42,44 +42,44 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@4.12", "requirement": "4.12", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.xerial/sqlite-jdbc", + "purl": "pkg:maven/org.xerial/sqlite-jdbc@3.16.1", "requirement": "3.16.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/com.microsoft.sqlserver/sqljdbc4", + "purl": "pkg:maven/com.microsoft.sqlserver/sqljdbc4@4.0", "requirement": "4.0", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.postgresql/postgresql", + "purl": "pkg:maven/org.postgresql/postgresql@42.0.0", "requirement": "42.0.0", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/mysql/mysql-connector-java", + "purl": "pkg:maven/mysql/mysql-connector-java@6.0.6", "requirement": "6.0.6", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/parsing_issues/parse_error/maven-javanet-plugin-1.7.pom.package.json b/tests/packagedcode/data/m2/parsing_issues/parse_error/maven-javanet-plugin-1.7.pom.package.json index 78982f10cf4..489d7a1bdac 100644 --- a/tests/packagedcode/data/m2/parsing_issues/parse_error/maven-javanet-plugin-1.7.pom.package.json +++ b/tests/packagedcode/data/m2/parsing_issues/parse_error/maven-javanet-plugin-1.7.pom.package.json @@ -49,60 +49,60 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/httpunit/httpunit", + "purl": "pkg:maven/httpunit/httpunit@1.5.4", "requirement": "1.5.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/xml-apis/xml-apis", + "purl": "pkg:maven/xml-apis/xml-apis@2.0.0", "requirement": "2.0.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/xerces/xerces", + "purl": "pkg:maven/xerces/xerces@2.2.1", "requirement": "2.2.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/jtidy/jtidy", + "purl": "pkg:maven/jtidy/jtidy@4aug2000r7-dev", "requirement": "4aug2000r7-dev", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/nekohtml/nekohtml", + "purl": "pkg:maven/nekohtml/nekohtml@0.9.5", "requirement": "0.9.5", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/dom4j/dom4j", + "purl": "pkg:maven/dom4j/dom4j@1.4", "requirement": "1.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/jaxen/jaxen", + "purl": "pkg:maven/jaxen/jaxen@1.0-FCS-full", "requirement": "1.0-FCS-full", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/parsing_issues/parse_error/springmvc-rest-docs-maven-plugin-1.0-RC1.pom.json b/tests/packagedcode/data/m2/parsing_issues/parse_error/springmvc-rest-docs-maven-plugin-1.0-RC1.pom.json index f302c46cdd3..d0dc1029c58 100644 --- a/tests/packagedcode/data/m2/parsing_issues/parse_error/springmvc-rest-docs-maven-plugin-1.0-RC1.pom.json +++ b/tests/packagedcode/data/m2/parsing_issues/parse_error/springmvc-rest-docs-maven-plugin-1.0-RC1.pom.json @@ -143,6 +143,128 @@ "version": "4.11", "required": true } + ], + "dependencyManagement": [ + { + "group_id": "com.fasterxml.jackson.core", + "artifact_id": "jackson-databind", + "version": "2.7.8", + "required": true + }, + { + "group_id": "com.fasterxml.jackson.core", + "artifact_id": "jackson-core", + "version": "2.7.8", + "required": true + }, + { + "group_id": "com.google.guava", + "artifact_id": "guava", + "version": "22.0", + "required": true + }, + { + "group_id": "javax.servlet", + "artifact_id": "javax.servlet-api", + "version": "3.1.0", + "required": true + }, + { + "group_id": "io.springfox", + "artifact_id": "springfox-swagger2", + "version": "2.7.0", + "required": true + }, + { + "group_id": "io.springfox", + "artifact_id": "springfox-staticdocs", + "version": "2.6.1", + "required": true + }, + { + "group_id": "io.swagger", + "artifact_id": "swagger-codegen-cli", + "version": "2.2.2", + "required": true + }, + { + "group_id": "org.springframework", + "artifact_id": "spring-webmvc", + "version": "4.3.8.RELEASE", + "required": true + }, + { + "group_id": "io.github.swagger2markup", + "artifact_id": "swagger2markup", + "version": "1.3.1", + "required": true + }, + { + "group_id": "org.springframework", + "artifact_id": "spring-test", + "version": "4.3.8.RELEASE", + "required": true + }, + { + "group_id": "org.apache.maven.plugin-tools", + "artifact_id": "maven-plugin-annotations", + "version": "3.4", + "required": true + }, + { + "group_id": "org.apache.commons", + "artifact_id": "commons-lang3", + "version": "3.5", + "required": true + }, + { + "group_id": "commons-io", + "artifact_id": "commons-io", + "version": "1.3.2", + "required": true + }, + { + "group_id": "org.apache.maven", + "artifact_id": "maven-plugin-api", + "version": "3.1.0", + "required": true + }, + { + "group_id": "org.apache.maven", + "artifact_id": "maven-core", + "version": "3.1.0", + "required": true + }, + { + "group_id": "org.eclipse.aether", + "artifact_id": "aether-api", + "version": "1.1.0", + "required": true + }, + { + "group_id": "org.eclipse.aether", + "artifact_id": "aether-util", + "version": "1.1.0", + "required": true + }, + { + "group_id": "org.hamcrest", + "artifact_id": "hamcrest-core", + "version": "1.3", + "required": true + }, + { + "group_id": "org.slf4j", + "artifact_id": "slf4j-log4j12", + "version": "1.7.25", + "required": true + }, + { + "group_id": "junit", + "artifact_id": "junit", + "version": "4.11", + "required": true + } ] } } \ No newline at end of file diff --git a/tests/packagedcode/data/m2/parsing_issues/parse_error/springmvc-rest-docs-maven-plugin-1.0-RC1.pom.package.json b/tests/packagedcode/data/m2/parsing_issues/parse_error/springmvc-rest-docs-maven-plugin-1.0-RC1.pom.package.json index d9a28393beb..8d302aecd59 100644 --- a/tests/packagedcode/data/m2/parsing_issues/parse_error/springmvc-rest-docs-maven-plugin-1.0-RC1.pom.package.json +++ b/tests/packagedcode/data/m2/parsing_issues/parse_error/springmvc-rest-docs-maven-plugin-1.0-RC1.pom.package.json @@ -30,145 +30,305 @@ "purl": "pkg:maven/com.github.vincentrussell/springmvc-rest-docs-deps", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { - "purl": "pkg:maven/com.fasterxml.jackson.core/jackson-databind", + "purl": "pkg:maven/com.fasterxml.jackson.core/jackson-databind@2.7.8", "requirement": "2.7.8", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/com.fasterxml.jackson.core/jackson-core", + "purl": "pkg:maven/com.fasterxml.jackson.core/jackson-core@2.7.8", "requirement": "2.7.8", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/io.springfox/springfox-swagger2", + "purl": "pkg:maven/io.springfox/springfox-swagger2@2.7.0", "requirement": "2.7.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/com.google.guava/guava", + "purl": "pkg:maven/com.google.guava/guava@22.0", "requirement": "22.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-webmvc", + "purl": "pkg:maven/org.springframework/spring-webmvc@4.3.8.RELEASE", "requirement": "4.3.8.RELEASE", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/io.github.swagger2markup/swagger2markup", + "purl": "pkg:maven/io.github.swagger2markup/swagger2markup@1.3.1", "requirement": "1.3.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/javax.servlet-api", + "purl": "pkg:maven/javax.servlet/javax.servlet-api@3.1.0", "requirement": "3.1.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-test", + "purl": "pkg:maven/org.springframework/spring-test@4.3.8.RELEASE", "requirement": "4.3.8.RELEASE", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.plugin-tools/maven-plugin-annotations", + "purl": "pkg:maven/org.apache.maven.plugin-tools/maven-plugin-annotations@3.4", "requirement": "3.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.eclipse.aether/aether-api", + "purl": "pkg:maven/org.eclipse.aether/aether-api@1.1.0", "requirement": "1.1.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.eclipse.aether/aether-util", + "purl": "pkg:maven/org.eclipse.aether/aether-util@1.1.0", "requirement": "1.1.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.commons/commons-lang3", + "purl": "pkg:maven/org.apache.commons/commons-lang3@3.5", "requirement": "3.5", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-io/commons-io", + "purl": "pkg:maven/commons-io/commons-io@1.3.2", "requirement": "1.3.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.hamcrest/hamcrest-core", + "purl": "pkg:maven/org.hamcrest/hamcrest-core@1.3", "requirement": "1.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-core", + "purl": "pkg:maven/org.apache.maven/maven-core@3.1.0", "requirement": "3.1.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven/maven-plugin-api", + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@3.1.0", "requirement": "3.1.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@4.11", "requirement": "4.11", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true + }, + { + "purl": "pkg:maven/com.fasterxml.jackson.core/jackson-databind@2.7.8", + "requirement": "2.7.8", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/com.fasterxml.jackson.core/jackson-core@2.7.8", + "requirement": "2.7.8", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/com.google.guava/guava@22.0", + "requirement": "22.0", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/javax.servlet/javax.servlet-api@3.1.0", + "requirement": "3.1.0", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/io.springfox/springfox-swagger2@2.7.0", + "requirement": "2.7.0", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/io.springfox/springfox-staticdocs@2.6.1", + "requirement": "2.6.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/io.swagger/swagger-codegen-cli@2.2.2", + "requirement": "2.2.2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.springframework/spring-webmvc@4.3.8.RELEASE", + "requirement": "4.3.8.RELEASE", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/io.github.swagger2markup/swagger2markup@1.3.1", + "requirement": "1.3.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.springframework/spring-test@4.3.8.RELEASE", + "requirement": "4.3.8.RELEASE", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven.plugin-tools/maven-plugin-annotations@3.4", + "requirement": "3.4", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.commons/commons-lang3@3.5", + "requirement": "3.5", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/commons-io/commons-io@1.3.2", + "requirement": "1.3.2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven-plugin-api@3.1.0", + "requirement": "3.1.0", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.maven/maven-core@3.1.0", + "requirement": "3.1.0", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.eclipse.aether/aether-api@1.1.0", + "requirement": "1.1.0", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.eclipse.aether/aether-util@1.1.0", + "requirement": "1.1.0", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.hamcrest/hamcrest-core@1.3", + "requirement": "1.3", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.slf4j/slf4j-log4j12@1.7.25", + "requirement": "1.7.25", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/junit/junit@4.11", + "requirement": "4.11", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/parsing_issues/was_empty/common-object-1.0.2.pom.package.json b/tests/packagedcode/data/m2/parsing_issues/was_empty/common-object-1.0.2.pom.package.json index 05f4e0e3410..d110cadc256 100644 --- a/tests/packagedcode/data/m2/parsing_issues/was_empty/common-object-1.0.2.pom.package.json +++ b/tests/packagedcode/data/m2/parsing_issues/was_empty/common-object-1.0.2.pom.package.json @@ -42,36 +42,36 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@4.10", "requirement": "4.10", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/com.alibaba/fastjson", + "purl": "pkg:maven/com.alibaba/fastjson@1.1.41", "requirement": "1.1.41", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.xson/xson", + "purl": "pkg:maven/org.xson/xson@1.0.2", "requirement": "1.0.2", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/be.cyberelf.nanoxml/lite", + "purl": "pkg:maven/be.cyberelf.nanoxml/lite@2.2.3", "requirement": "2.2.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/parsing_issues/was_empty/osgl-http-1.1.2.pom.package.json b/tests/packagedcode/data/m2/parsing_issues/was_empty/osgl-http-1.1.2.pom.package.json index b2825be1bbe..bb14eaa5ab3 100644 --- a/tests/packagedcode/data/m2/parsing_issues/was_empty/osgl-http-1.1.2.pom.package.json +++ b/tests/packagedcode/data/m2/parsing_issues/was_empty/osgl-http-1.1.2.pom.package.json @@ -34,44 +34,44 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@4.10", "requirement": "4.10", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/com.carrotsearch/junit-benchmarks", + "purl": "pkg:maven/com.carrotsearch/junit-benchmarks@0.7.2", "requirement": "0.7.2", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.osgl/osgl-storage", + "purl": "pkg:maven/org.osgl/osgl-storage@1.2.0", "requirement": "1.2.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/servlet-api", + "purl": "pkg:maven/javax.servlet/servlet-api@2.5", "requirement": "2.5", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.osgl/osgl-cache", + "purl": "pkg:maven/org.osgl/osgl-cache@1.0.2", "requirement": "1.0.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/plexus/plexus-root/1.0.3/plexus-root-1.0.3.pom.package.json b/tests/packagedcode/data/m2/plexus/plexus-root/1.0.3/plexus-root-1.0.3.pom.package.json index 1189ca49db0..5518d281f56 100644 --- a/tests/packagedcode/data/m2/plexus/plexus-root/1.0.3/plexus-root-1.0.3.pom.package.json +++ b/tests/packagedcode/data/m2/plexus/plexus-root/1.0.3/plexus-root-1.0.3.pom.package.json @@ -112,12 +112,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/validator/commons-validator/1.2.0/commons-validator-1.2.0.pom.package.json b/tests/packagedcode/data/m2/validator/commons-validator/1.2.0/commons-validator-1.2.0.pom.package.json index 1a3354c73a1..ddec114d813 100644 --- a/tests/packagedcode/data/m2/validator/commons-validator/1.2.0/commons-validator-1.2.0.pom.package.json +++ b/tests/packagedcode/data/m2/validator/commons-validator/1.2.0/commons-validator-1.2.0.pom.package.json @@ -259,52 +259,52 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/commons-beanutils/commons-beanutils", + "purl": "pkg:maven/commons-beanutils/commons-beanutils@1.7.0", "requirement": "1.7.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-digester/commons-digester", + "purl": "pkg:maven/commons-digester/commons-digester@1.6", "requirement": "1.6", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-logging/commons-logging", + "purl": "pkg:maven/commons-logging/commons-logging@1.0.4", "requirement": "1.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/oro/oro", + "purl": "pkg:maven/oro/oro@2.0.8", "requirement": "2.0.8", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/xml-apis/xml-apis", + "purl": "pkg:maven/xml-apis/xml-apis@2.0.2", "requirement": "2.0.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/validator/commons-validator/1.3.1/commons-validator-1.3.1.pom.package.json b/tests/packagedcode/data/m2/validator/commons-validator/1.3.1/commons-validator-1.3.1.pom.package.json index be8413ff7b2..400b6faf44e 100644 --- a/tests/packagedcode/data/m2/validator/commons-validator/1.3.1/commons-validator-1.3.1.pom.package.json +++ b/tests/packagedcode/data/m2/validator/commons-validator/1.3.1/commons-validator-1.3.1.pom.package.json @@ -266,52 +266,52 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/commons-beanutils/commons-beanutils", + "purl": "pkg:maven/commons-beanutils/commons-beanutils@1.7.0", "requirement": "1.7.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-digester/commons-digester", + "purl": "pkg:maven/commons-digester/commons-digester@1.6", "requirement": "1.6", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-logging/commons-logging", + "purl": "pkg:maven/commons-logging/commons-logging@1.0.4", "requirement": "1.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/oro/oro", + "purl": "pkg:maven/oro/oro@2.0.8", "requirement": "2.0.8", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/xml-apis/xml-apis", + "purl": "pkg:maven/xml-apis/xml-apis@2.0.2", "requirement": "2.0.2", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/velocity/velocity/1.4/velocity-1.4.pom.package.json b/tests/packagedcode/data/m2/velocity/velocity/1.4/velocity-1.4.pom.package.json index 310404186ce..f27211bf576 100644 --- a/tests/packagedcode/data/m2/velocity/velocity/1.4/velocity-1.4.pom.package.json +++ b/tests/packagedcode/data/m2/velocity/velocity/1.4/velocity-1.4.pom.package.json @@ -42,12 +42,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/velocity/velocity-dep", + "purl": "pkg:maven/velocity/velocity-dep@1.4", "requirement": "1.4", "scope": "runtime", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/m2/xml-apis/xml-apis/2.0.2/xml-apis-2.0.2.pom.package.json b/tests/packagedcode/data/m2/xml-apis/xml-apis/2.0.2/xml-apis-2.0.2.pom.package.json index 2d02d61eb87..f71b05ef9ff 100644 --- a/tests/packagedcode/data/m2/xml-apis/xml-apis/2.0.2/xml-apis-2.0.2.pom.package.json +++ b/tests/packagedcode/data/m2/xml-apis/xml-apis/2.0.2/xml-apis-2.0.2.pom.package.json @@ -27,12 +27,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/xml-apis/xml-apis", + "purl": "pkg:maven/xml-apis/xml-apis@1.0.b2", "requirement": "1.0.b2", "scope": "relocation", - "is_runtime": true, + "is_runtime": false, "is_optional": false, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/maven2/activemq-camel-pom.xml.package.json b/tests/packagedcode/data/maven2/activemq-camel-pom.xml.package.json index 9e882d4dcd8..20f47b07b4c 100644 --- a/tests/packagedcode/data/maven2/activemq-camel-pom.xml.package.json +++ b/tests/packagedcode/data/maven2/activemq-camel-pom.xml.package.json @@ -30,41 +30,41 @@ "purl": "pkg:maven/commons-logging/commons-logging-api", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.camel/camel-jms", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.activemq/activemq-core", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.activemq/activemq-pool", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.geronimo.specs/geronimo-annotation_1.0_spec", "requirement": null, "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": null }, { "purl": "pkg:maven/org.apache.activemq/activemq-core", @@ -72,7 +72,7 @@ "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": null }, { "purl": "pkg:maven/org.apache.camel/camel-core", @@ -80,7 +80,7 @@ "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": null }, { "purl": "pkg:maven/org.apache.camel/camel-spring", @@ -88,7 +88,7 @@ "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": null }, { "purl": "pkg:maven/org.springframework/spring-test", @@ -96,7 +96,7 @@ "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": null }, { "purl": "pkg:maven/junit/junit", @@ -104,7 +104,7 @@ "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": null }, { "purl": "pkg:maven/org.hamcrest/hamcrest-all", @@ -112,7 +112,7 @@ "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/maven2/ant-jai-1.7.0.pom.package.json b/tests/packagedcode/data/maven2/ant-jai-1.7.0.pom.package.json index f06cc832316..ea2bda814ba 100644 --- a/tests/packagedcode/data/maven2/ant-jai-1.7.0.pom.package.json +++ b/tests/packagedcode/data/maven2/ant-jai-1.7.0.pom.package.json @@ -27,28 +27,28 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.ant/ant", + "purl": "pkg:maven/org.apache.ant/ant@1.7.0", "requirement": "1.7.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/javax.media/jai-core", + "purl": "pkg:maven/javax.media/jai-core@1.1.2_01", "requirement": "1.1.2_01", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/jai/jai-codec", + "purl": "pkg:maven/jai/jai-codec@1.1.2.1", "requirement": "1.1.2.1", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/maven2/ant-jsch-1.7.0.pom.package.json b/tests/packagedcode/data/maven2/ant-jsch-1.7.0.pom.package.json index df3e7e5a2eb..5c4becabe76 100644 --- a/tests/packagedcode/data/maven2/ant-jsch-1.7.0.pom.package.json +++ b/tests/packagedcode/data/maven2/ant-jsch-1.7.0.pom.package.json @@ -27,20 +27,20 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.ant/ant", + "purl": "pkg:maven/org.apache.ant/ant@1.7.0", "requirement": "1.7.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/com.jcraft/jsch", + "purl": "pkg:maven/com.jcraft/jsch@0.1.29", "requirement": "0.1.29", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/maven2/commons-fileupload-1.0.pom.package.json b/tests/packagedcode/data/maven2/commons-fileupload-1.0.pom.package.json index 01a8b55d8c2..130646835ba 100644 --- a/tests/packagedcode/data/maven2/commons-fileupload-1.0.pom.package.json +++ b/tests/packagedcode/data/maven2/commons-fileupload-1.0.pom.package.json @@ -77,20 +77,20 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/servletapi/servletapi", + "purl": "pkg:maven/servletapi/servletapi@2.3", "requirement": "2.3", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/maven2/commons-validator-1.2.0.pom.package.json b/tests/packagedcode/data/maven2/commons-validator-1.2.0.pom.package.json index 1a3354c73a1..ddec114d813 100644 --- a/tests/packagedcode/data/maven2/commons-validator-1.2.0.pom.package.json +++ b/tests/packagedcode/data/maven2/commons-validator-1.2.0.pom.package.json @@ -259,52 +259,52 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/commons-beanutils/commons-beanutils", + "purl": "pkg:maven/commons-beanutils/commons-beanutils@1.7.0", "requirement": "1.7.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-digester/commons-digester", + "purl": "pkg:maven/commons-digester/commons-digester@1.6", "requirement": "1.6", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-logging/commons-logging", + "purl": "pkg:maven/commons-logging/commons-logging@1.0.4", "requirement": "1.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/oro/oro", + "purl": "pkg:maven/oro/oro@2.0.8", "requirement": "2.0.8", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/xml-apis/xml-apis", + "purl": "pkg:maven/xml-apis/xml-apis@2.0.2", "requirement": "2.0.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/maven2/easyconf-0.9.0.pom.package.json b/tests/packagedcode/data/maven2/easyconf-0.9.0.pom.package.json index 21e031fa841..aa98854eea6 100644 --- a/tests/packagedcode/data/maven2/easyconf-0.9.0.pom.package.json +++ b/tests/packagedcode/data/maven2/easyconf-0.9.0.pom.package.json @@ -63,148 +63,148 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/log4j/log4j", + "purl": "pkg:maven/log4j/log4j@1.2.8", "requirement": "1.2.8", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/servletapi/servletapi", + "purl": "pkg:maven/servletapi/servletapi@2.3", "requirement": "2.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/struts/struts", + "purl": "pkg:maven/struts/struts@1.1", "requirement": "1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-configuration/commons-configuration", + "purl": "pkg:maven/commons-configuration/commons-configuration@1.1", "requirement": "1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-collections/commons-collections", + "purl": "pkg:maven/commons-collections/commons-collections@3.1", "requirement": "3.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-lang/commons-lang", + "purl": "pkg:maven/commons-lang/commons-lang@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/dom4j/dom4j", + "purl": "pkg:maven/dom4j/dom4j@1.4", "requirement": "1.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-logging/commons-logging", + "purl": "pkg:maven/commons-logging/commons-logging@1.0.4", "requirement": "1.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-digester/commons-digester", + "purl": "pkg:maven/commons-digester/commons-digester@1.6", "requirement": "1.6", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/xerces/xerces", + "purl": "pkg:maven/xerces/xerces@2.2.1", "requirement": "2.2.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/xml-apis/xml-apis", + "purl": "pkg:maven/xml-apis/xml-apis@2.0.2", "requirement": "2.0.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/xdoclet/xdoclet", + "purl": "pkg:maven/xdoclet/xdoclet@1.2.1", "requirement": "1.2.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-beanutils/commons-beanutils-core", + "purl": "pkg:maven/commons-beanutils/commons-beanutils-core@1.7.0", "requirement": "1.7.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-beanutils/commons-beanutils-bean-collections", + "purl": "pkg:maven/commons-beanutils/commons-beanutils-bean-collections@1.7.0", "requirement": "1.7.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/xdoclet/xdoclet-web-module", + "purl": "pkg:maven/xdoclet/xdoclet-web-module@1.2.1", "requirement": "1.2.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/mx4j/mx4j-jmx", + "purl": "pkg:maven/mx4j/mx4j-jmx@2.1.1", "requirement": "2.1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/mx4j/mx4j-impl", + "purl": "pkg:maven/mx4j/mx4j-impl@2.1.1", "requirement": "2.1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/maven2/findbugs-maven-plugin-1.1.1.pom.package.json b/tests/packagedcode/data/maven2/findbugs-maven-plugin-1.1.1.pom.package.json index f969c4b0ce3..1577aba21ff 100644 --- a/tests/packagedcode/data/maven2/findbugs-maven-plugin-1.1.1.pom.package.json +++ b/tests/packagedcode/data/maven2/findbugs-maven-plugin-1.1.1.pom.package.json @@ -63,44 +63,44 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-artifact", + "purl": "pkg:maven/org.apache.maven/maven-artifact@2.0.4", "requirement": "2.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-impl", + "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-impl@2.0.4", "requirement": "2.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-api", + "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-api@2.0.4", "requirement": "2.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.doxia/doxia-core", + "purl": "pkg:maven/org.apache.maven.doxia/doxia-core@1.0-alpha-8", "requirement": "1.0-alpha-8", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/net.sourceforge.findbugs/findbugs", + "purl": "pkg:maven/net.sourceforge.findbugs/findbugs@1.2.0", "requirement": "1.2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/maven2/fna2_pom.xml.package.json b/tests/packagedcode/data/maven2/fna2_pom.xml.package.json index 327c811a135..37cf1d06cfb 100644 --- a/tests/packagedcode/data/maven2/fna2_pom.xml.package.json +++ b/tests/packagedcode/data/maven2/fna2_pom.xml.package.json @@ -51,59 +51,59 @@ "is_resolved": false }, { - "purl": "pkg:maven/com.adobe.ac.samples.lcds/blazeds_service_config", + "purl": "pkg:maven/com.adobe.ac.samples.lcds/blazeds_service_config@1.0-SNAPSHOT", "requirement": "1.0-SNAPSHOT", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/com.adobe.ac.samples.lcds/flex_remoted_objects", + "purl": "pkg:maven/com.adobe.ac.samples.lcds/flex_remoted_objects@1.0-SNAPSHOT", "requirement": "1.0-SNAPSHOT", "scope": "internal", - "is_runtime": true, + "is_runtime": false, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { "purl": "pkg:maven/com.adobe.flex/compiler", "requirement": "${flex.sdk.version}", "scope": "compile", - "is_runtime": true, - "is_optional": false, + "is_runtime": false, + "is_optional": true, "is_resolved": false }, { "purl": "pkg:maven/com.adobe.flex.framework/flex-framework", "requirement": "${flex.sdk.version}", "scope": "compile", - "is_runtime": true, - "is_optional": false, + "is_runtime": false, + "is_optional": true, "is_resolved": false }, { "purl": "pkg:maven/com.adobe.cairngorm/cairngorm", "requirement": "${cairngorm.version}", "scope": "compile", - "is_runtime": true, - "is_optional": false, + "is_runtime": false, + "is_optional": true, "is_resolved": false }, { "purl": "pkg:maven/com.adobe.cairngorm/cairngorm-enterprise", "requirement": "${cairngorm.version}", "scope": "compile", - "is_runtime": true, - "is_optional": false, + "is_runtime": false, + "is_optional": true, "is_resolved": false }, { "purl": "pkg:maven/com.adobe.lcds/fds", "requirement": "${lcds.version}", "scope": "compile", - "is_runtime": true, - "is_optional": false, + "is_runtime": false, + "is_optional": true, "is_resolved": false } ], diff --git a/tests/packagedcode/data/maven2/fna_pom_project.xml.package.json b/tests/packagedcode/data/maven2/fna_pom_project.xml.package.json index d132a93f54e..8da27823cdd 100644 --- a/tests/packagedcode/data/maven2/fna_pom_project.xml.package.json +++ b/tests/packagedcode/data/maven2/fna_pom_project.xml.package.json @@ -27,43 +27,43 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/com.adobe.ac.samples.bash/bash_blazeds_service_config", + "purl": "pkg:maven/com.adobe.ac.samples.bash/bash_blazeds_service_config@1.0", "requirement": "1.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/com.adobe.ac.samples.bash/bash_flex_remoted_objects", + "purl": "pkg:maven/com.adobe.ac.samples.bash/bash_flex_remoted_objects@1.0", "requirement": "1.0", "scope": "internal", - "is_runtime": true, + "is_runtime": false, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { "purl": "pkg:maven/com.adobe.flex/compiler", "requirement": "${flex.sdk.version}", "scope": "compile", - "is_runtime": true, - "is_optional": false, + "is_runtime": false, + "is_optional": true, "is_resolved": false }, { "purl": "pkg:maven/com.adobe.flex.framework/flex-framework", "requirement": "${flex.sdk.version}", "scope": "compile", - "is_runtime": true, - "is_optional": false, + "is_runtime": false, + "is_optional": true, "is_resolved": false }, { "purl": "pkg:maven/com.adobe.cairngorm/cairngorm", "requirement": "${cairngorm.version}", "scope": "compile", - "is_runtime": true, - "is_optional": false, + "is_runtime": false, + "is_optional": true, "is_resolved": false }, { diff --git a/tests/packagedcode/data/maven2/foo-pom.xml.json b/tests/packagedcode/data/maven2/foo-pom.xml.json index 8759fc87b71..5fe0732c407 100644 --- a/tests/packagedcode/data/maven2/foo-pom.xml.json +++ b/tests/packagedcode/data/maven2/foo-pom.xml.json @@ -75,6 +75,38 @@ "version": "Camden.SR5", "required": true } + ], + "dependencyManagement": [ + { + "group_id": "com.myco.foo.bar.baz", + "artifact_id": "baz-bar", + "version": "1.0", + "required": true + }, + { + "group_id": "com.myco.foo", + "artifact_id": "common-dependencies", + "version": "1.1", + "required": true + }, + { + "group_id": "org.springframework.boot", + "artifact_id": "spring-boot-dependencies", + "version": "1.4.2.RELEASE", + "required": true + }, + { + "group_id": "org.springframework.boot", + "artifact_id": "spring-boot-starter", + "version": "1.4.2.RELEASE", + "required": true + }, + { + "group_id": "org.springframework.cloud", + "artifact_id": "spring-cloud-dependencies", + "version": "Camden.SR5", + "required": true + } ] } } \ No newline at end of file diff --git a/tests/packagedcode/data/maven2/foo-pom.xml.package.json b/tests/packagedcode/data/maven2/foo-pom.xml.package.json index 13a4d1b5424..cb9b3b6aaa8 100644 --- a/tests/packagedcode/data/maven2/foo-pom.xml.package.json +++ b/tests/packagedcode/data/maven2/foo-pom.xml.package.json @@ -42,28 +42,68 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/com.myco.foo/common-dependencies", + "purl": "pkg:maven/com.myco.foo/common-dependencies@1.1", "requirement": "1.1", "scope": "import", - "is_runtime": true, + "is_runtime": false, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework.boot/spring-boot-dependencies", + "purl": "pkg:maven/org.springframework.boot/spring-boot-dependencies@1.4.2.RELEASE", "requirement": "1.4.2.RELEASE", "scope": "import", - "is_runtime": true, + "is_runtime": false, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework.cloud/spring-cloud-dependencies", + "purl": "pkg:maven/org.springframework.cloud/spring-cloud-dependencies@Camden.SR5", "requirement": "Camden.SR5", "scope": "import", - "is_runtime": true, + "is_runtime": false, "is_optional": false, - "is_resolved": false + "is_resolved": true + }, + { + "purl": "pkg:maven/com.myco.foo.bar.baz/baz-bar@1.0", + "requirement": "1.0", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/com.myco.foo/common-dependencies@1.1", + "requirement": "1.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.springframework.boot/spring-boot-dependencies@1.4.2.RELEASE", + "requirement": "1.4.2.RELEASE", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.springframework.boot/spring-boot-starter@1.4.2.RELEASE", + "requirement": "1.4.2.RELEASE", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.springframework.cloud/spring-cloud-dependencies@Camden.SR5", + "requirement": "Camden.SR5", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/maven2/gero_pom.xml.package.json b/tests/packagedcode/data/maven2/gero_pom.xml.package.json index 6c6d6eb87b3..55bfb1ccfb5 100644 --- a/tests/packagedcode/data/maven2/gero_pom.xml.package.json +++ b/tests/packagedcode/data/maven2/gero_pom.xml.package.json @@ -27,12 +27,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.axis/axis", + "purl": "pkg:maven/org.apache.axis/axis@1.4", "requirement": "1.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/maven2/idega_pom.xml.package.json b/tests/packagedcode/data/maven2/idega_pom.xml.package.json index c38ac6275a5..f490d43fd49 100644 --- a/tests/packagedcode/data/maven2/idega_pom.xml.package.json +++ b/tests/packagedcode/data/maven2/idega_pom.xml.package.json @@ -59,32 +59,32 @@ "purl": "pkg:maven/com.idega.block.platform/com.idega.core", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/com.idega.block.platform/com.idega.block.media", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/itextpdf/itext-paulo", "requirement": "${itextpdf-itext-paulo-version}", "scope": "compile", - "is_runtime": true, - "is_optional": false, + "is_runtime": false, + "is_optional": true, "is_resolved": false }, { "purl": "pkg:maven/itext/itext-xml", "requirement": "${itext-itext-xml-version}", "scope": "compile", - "is_runtime": true, - "is_optional": false, + "is_runtime": false, + "is_optional": true, "is_resolved": false } ], diff --git a/tests/packagedcode/data/maven2/jrecordbind-2.3.4.pom.package.json b/tests/packagedcode/data/maven2/jrecordbind-2.3.4.pom.package.json index d8a699bf593..e92beeef01d 100644 --- a/tests/packagedcode/data/maven2/jrecordbind-2.3.4.pom.package.json +++ b/tests/packagedcode/data/maven2/jrecordbind-2.3.4.pom.package.json @@ -42,36 +42,36 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/relaxngDatatype/relaxngDatatype", + "purl": "pkg:maven/relaxngDatatype/relaxngDatatype@20020414", "requirement": "20020414", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/com.sun.xml.bind/jaxb-impl", + "purl": "pkg:maven/com.sun.xml.bind/jaxb-impl@2.1.11", "requirement": "2.1.11", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/com.sun.xml.bind/jaxb-xjc", + "purl": "pkg:maven/com.sun.xml.bind/jaxb-xjc@2.1.11", "requirement": "2.1.11", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/com.sun.xsom/xsom", + "purl": "pkg:maven/com.sun.xsom/xsom@20081112", "requirement": "20081112", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/maven2/log4j-pom.xml.package.json b/tests/packagedcode/data/maven2/log4j-pom.xml.package.json index bbdd382e87a..8e77b51e19d 100644 --- a/tests/packagedcode/data/maven2/log4j-pom.xml.package.json +++ b/tests/packagedcode/data/maven2/log4j-pom.xml.package.json @@ -42,52 +42,52 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/javax.mail/mail", + "purl": "pkg:maven/javax.mail/mail@1.4", "requirement": "1.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/javax.jms/jms", + "purl": "pkg:maven/javax.jms/jms@1.1", "requirement": "1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/com.sun.jdmk/jmxtools", + "purl": "pkg:maven/com.sun.jdmk/jmxtools@1.2.1", "requirement": "1.2.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/com.sun.jmx/jmxri", + "purl": "pkg:maven/com.sun.jmx/jmxri@1.2.1", "requirement": "1.2.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/oro/oro", + "purl": "pkg:maven/oro/oro@2.0.8", "requirement": "2.0.8", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/maven2/logback-access.pom.package.json b/tests/packagedcode/data/maven2/logback-access.pom.package.json index 8f6c7d805e7..6b464b1382b 100644 --- a/tests/packagedcode/data/maven2/logback-access.pom.package.json +++ b/tests/packagedcode/data/maven2/logback-access.pom.package.json @@ -37,41 +37,41 @@ "purl": "pkg:maven/ch.qos.logback/logback-core", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/tomcat/catalina", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.mortbay.jetty/jetty", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/com.caucho/resin", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.mortbay.jetty/servlet-api-2.5", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/maven2/plexus-interactivity-api-1.0-alpha-4.pom.package.json b/tests/packagedcode/data/maven2/plexus-interactivity-api-1.0-alpha-4.pom.package.json index 8969f9834b0..3e26668ac72 100644 --- a/tests/packagedcode/data/maven2/plexus-interactivity-api-1.0-alpha-4.pom.package.json +++ b/tests/packagedcode/data/maven2/plexus-interactivity-api-1.0-alpha-4.pom.package.json @@ -112,36 +112,36 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-7", "requirement": "1.0-alpha-7", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/classworlds/classworlds", + "purl": "pkg:maven/classworlds/classworlds@1.1-alpha-2", "requirement": "1.1-alpha-2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/plexus/plexus-utils", + "purl": "pkg:maven/plexus/plexus-utils@1.0.2", "requirement": "1.0.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/maven2/proper_pom.xml.package.json b/tests/packagedcode/data/maven2/proper_pom.xml.package.json index 6c6d6eb87b3..55bfb1ccfb5 100644 --- a/tests/packagedcode/data/maven2/proper_pom.xml.package.json +++ b/tests/packagedcode/data/maven2/proper_pom.xml.package.json @@ -27,12 +27,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.axis/axis", + "purl": "pkg:maven/org.apache.axis/axis@1.4", "requirement": "1.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/maven2/rel_pom.xml.package.json b/tests/packagedcode/data/maven2/rel_pom.xml.package.json index 0ebe1335f41..89c3953a07f 100644 --- a/tests/packagedcode/data/maven2/rel_pom.xml.package.json +++ b/tests/packagedcode/data/maven2/rel_pom.xml.package.json @@ -27,76 +27,76 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.ant/ant", + "purl": "pkg:maven/org.apache.ant/ant@1.7.0", "requirement": "1.7.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-lang/commons-lang", + "purl": "pkg:maven/commons-lang/commons-lang@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-digester/commons-digester", + "purl": "pkg:maven/commons-digester/commons-digester@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/dom4j/dom4j", + "purl": "pkg:maven/dom4j/dom4j@1.6.1", "requirement": "1.6.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.hibernate/hibernate-annotations", + "purl": "pkg:maven/org.hibernate/hibernate-annotations@3.4.0.GA", "requirement": "3.4.0.GA", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.hibernate/hibernate-entitymanager", + "purl": "pkg:maven/org.hibernate/hibernate-entitymanager@3.4.0.GA", "requirement": "3.4.0.GA", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.hibernate/ejb3-persistence", + "purl": "pkg:maven/org.hibernate/ejb3-persistence@3.3.2.Beta1", "requirement": "3.3.2.Beta1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.slf4j/slf4j-jcl", + "purl": "pkg:maven/org.slf4j/slf4j-jcl@1.4.2", "requirement": "1.4.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/postgresql/postgresql", + "purl": "pkg:maven/postgresql/postgresql@8.3-603.jdbc4", "requirement": "8.3-603.jdbc4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/maven2/sea_pom.xml.json b/tests/packagedcode/data/maven2/sea_pom.xml.json index b213eb619b8..09d6acb2880 100644 --- a/tests/packagedcode/data/maven2/sea_pom.xml.json +++ b/tests/packagedcode/data/maven2/sea_pom.xml.json @@ -84,5 +84,230 @@ "url": "http://repository.codehaus.org" } ], - "dependencies": {} + "dependencies": { + "dependencyManagement": [ + { + "group_id": "org.jboss.seam", + "artifact_id": "jboss-seam", + "version": "2.2.0.GA", + "required": true + }, + { + "group_id": "org.jboss.seam", + "artifact_id": "jboss-seam-ioc", + "version": "2.2.0.GA", + "required": true + }, + { + "group_id": "org.jboss.seam", + "artifact_id": "jboss-seam-mail", + "version": "2.2.0.GA", + "required": true + }, + { + "group_id": "org.jboss.seam", + "artifact_id": "jboss-seam-pdf", + "version": "2.2.0.GA", + "required": true + }, + { + "group_id": "org.jboss.seam", + "artifact_id": "jboss-seam-remoting", + "version": "2.2.0.GA", + "required": true + }, + { + "group_id": "org.jboss.seam", + "artifact_id": "jboss-seam-resteasy", + "version": "2.2.0.GA", + "required": true + }, + { + "group_id": "org.jboss.seam", + "artifact_id": "jboss-seam-ui", + "version": "2.2.0.GA", + "required": true + }, + { + "group_id": "org.jboss.seam", + "artifact_id": "jboss-seam-debug", + "version": "2.2.0.GA", + "required": true + }, + { + "group_id": "org.jboss.seam", + "artifact_id": "jboss-seam-excel", + "version": "2.2.0.GA", + "required": true + }, + { + "group_id": "org.jboss.seam", + "artifact_id": "jboss-seam-jul", + "version": "2.2.0.GA", + "required": true + }, + { + "group_id": "org.richfaces.framework", + "artifact_id": "richfaces-api", + "version": "3.3.1.GA", + "required": true + }, + { + "group_id": "org.richfaces.framework", + "artifact_id": "richfaces-impl", + "version": "3.3.1.GA", + "required": true + }, + { + "group_id": "org.richfaces.ui", + "artifact_id": "richfaces-ui", + "version": "3.3.1.GA", + "required": true + }, + { + "group_id": "org.jbpm", + "artifact_id": "jbpm-jpdl", + "version": "3.2.2", + "required": true + }, + { + "group_id": "jboss", + "artifact_id": "jboss-cache", + "version": "1.4.1.SP9", + "required": true + }, + { + "group_id": "org.jboss.resteasy", + "artifact_id": "resteasy-jaxrs", + "version": "1.1-RC2", + "required": true + }, + { + "group_id": "org.jboss.resteasy", + "artifact_id": "resteasy-jaxb-provider", + "version": "1.1-RC2", + "required": true + }, + { + "group_id": "org.hibernate", + "artifact_id": "hibernate-core", + "version": "3.3.1.GA", + "required": true + }, + { + "group_id": "org.hibernate", + "artifact_id": "hibernate-search", + "version": "3.1.1.GA", + "required": true + }, + { + "group_id": "javax.transaction", + "artifact_id": "jta", + "version": "1.1", + "required": true + }, + { + "group_id": "org.codehaus.groovy", + "artifact_id": "groovy-all", + "version": "1.6.3", + "required": true + }, + { + "group_id": "org.drools", + "artifact_id": "drools-core", + "version": "5.0.1", + "required": true + }, + { + "group_id": "org.jboss.el", + "artifact_id": "jboss-el", + "version": "1.0_02.CR4", + "required": true + }, + { + "group_id": "org.tuckey", + "artifact_id": "urlrewritefilter", + "version": "3.1.0", + "required": true + }, + { + "group_id": "org.richfaces.samples", + "artifact_id": "glassX", + "version": "3.3.1.GA", + "required": true + }, + { + "group_id": "org.richfaces.samples", + "artifact_id": "darkX", + "version": "3.3.1.GA", + "required": true + }, + { + "group_id": "org.drools", + "artifact_id": "drools-api", + "version": "5.0.1", + "required": true + }, + { + "group_id": "org.hibernate", + "artifact_id": "hibernate-commons-annotations", + "version": "3.3.0.ga", + "required": true + }, + { + "group_id": "org.antlr", + "artifact_id": "antlr", + "version": "3.2", + "required": true + }, + { + "group_id": "org.antlr", + "artifact_id": "antlr-runtime", + "version": "3.2", + "required": true + }, + { + "group_id": "commons-digester", + "artifact_id": "commons-digester", + "version": "1.8.1", + "required": true + }, + { + "group_id": "commons-lang", + "artifact_id": "commons-lang", + "version": "2.3", + "required": true + }, + { + "group_id": "com.h2database", + "artifact_id": "h2", + "version": "1.1.118", + "required": true + }, + { + "group_id": "mysql", + "artifact_id": "mysql-connector-java", + "version": "5.1.10", + "required": true + }, + { + "group_id": "org.apache.openejb", + "artifact_id": "openejb-core", + "version": "3.1.2", + "required": true + }, + { + "group_id": "junit", + "artifact_id": "junit", + "version": "4.7", + "required": true + }, + { + "group_id": "org.testng", + "artifact_id": "testng", + "version": "5.9", + "required": true + } + ] + } } \ No newline at end of file diff --git a/tests/packagedcode/data/maven2/sea_pom.xml.package.json b/tests/packagedcode/data/maven2/sea_pom.xml.package.json index 90a71aee49a..5607399fb52 100644 --- a/tests/packagedcode/data/maven2/sea_pom.xml.package.json +++ b/tests/packagedcode/data/maven2/sea_pom.xml.package.json @@ -47,7 +47,304 @@ "declared_license": null, "notice_text": null, "root_path": null, - "dependencies": [], + "dependencies": [ + { + "purl": "pkg:maven/org.jboss.seam/jboss-seam@2.2.0.GA", + "requirement": "2.2.0.GA", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.jboss.seam/jboss-seam-ioc@2.2.0.GA", + "requirement": "2.2.0.GA", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.jboss.seam/jboss-seam-mail@2.2.0.GA", + "requirement": "2.2.0.GA", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.jboss.seam/jboss-seam-pdf@2.2.0.GA", + "requirement": "2.2.0.GA", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.jboss.seam/jboss-seam-remoting@2.2.0.GA", + "requirement": "2.2.0.GA", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.jboss.seam/jboss-seam-resteasy@2.2.0.GA", + "requirement": "2.2.0.GA", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.jboss.seam/jboss-seam-ui@2.2.0.GA", + "requirement": "2.2.0.GA", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.jboss.seam/jboss-seam-debug@2.2.0.GA", + "requirement": "2.2.0.GA", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.jboss.seam/jboss-seam-excel@2.2.0.GA", + "requirement": "2.2.0.GA", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.jboss.seam/jboss-seam-jul@2.2.0.GA", + "requirement": "2.2.0.GA", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.richfaces.framework/richfaces-api@3.3.1.GA", + "requirement": "3.3.1.GA", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.richfaces.framework/richfaces-impl@3.3.1.GA", + "requirement": "3.3.1.GA", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.richfaces.ui/richfaces-ui@3.3.1.GA", + "requirement": "3.3.1.GA", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.jbpm/jbpm-jpdl@3.2.2", + "requirement": "3.2.2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/jboss/jboss-cache@1.4.1.SP9", + "requirement": "1.4.1.SP9", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.jboss.resteasy/resteasy-jaxrs@1.1-RC2", + "requirement": "1.1-RC2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.jboss.resteasy/resteasy-jaxb-provider@1.1-RC2", + "requirement": "1.1-RC2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.hibernate/hibernate-core@3.3.1.GA", + "requirement": "3.3.1.GA", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.hibernate/hibernate-search@3.1.1.GA", + "requirement": "3.1.1.GA", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/javax.transaction/jta@1.1", + "requirement": "1.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.codehaus.groovy/groovy-all@1.6.3", + "requirement": "1.6.3", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.drools/drools-core@5.0.1", + "requirement": "5.0.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.jboss.el/jboss-el@1.0_02.CR4", + "requirement": "1.0_02.CR4", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.tuckey/urlrewritefilter@3.1.0", + "requirement": "3.1.0", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.richfaces.samples/glassX@3.3.1.GA", + "requirement": "3.3.1.GA", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.richfaces.samples/darkX@3.3.1.GA", + "requirement": "3.3.1.GA", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.drools/drools-api@5.0.1", + "requirement": "5.0.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.hibernate/hibernate-commons-annotations@3.3.0.ga", + "requirement": "3.3.0.ga", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.antlr/antlr@3.2", + "requirement": "3.2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.antlr/antlr-runtime@3.2", + "requirement": "3.2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/commons-digester/commons-digester@1.8.1", + "requirement": "1.8.1", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/commons-lang/commons-lang@2.3", + "requirement": "2.3", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/com.h2database/h2@1.1.118", + "requirement": "1.1.118", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/mysql/mysql-connector-java@5.1.10", + "requirement": "5.1.10", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.apache.openejb/openejb-core@3.1.2", + "requirement": "3.1.2", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/junit/junit@4.7", + "requirement": "4.7", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:maven/org.testng/testng@5.9", + "requirement": "5.9", + "scope": "dependencymanagement", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + } + ], "contains_source_code": null, "source_packages": [ "pkg:maven/no.knowit.seam/root@2.2.0-SNAPSHOT?classifier=sources" diff --git a/tests/packagedcode/data/maven2/specs-1.3.pom.package.json b/tests/packagedcode/data/maven2/specs-1.3.pom.package.json index f61a08123ab..99bbaab7d7a 100644 --- a/tests/packagedcode/data/maven2/specs-1.3.pom.package.json +++ b/tests/packagedcode/data/maven2/specs-1.3.pom.package.json @@ -27,12 +27,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/maven2/spring-2.5.4.pom.package.json b/tests/packagedcode/data/maven2/spring-2.5.4.pom.package.json index 28bb7f8c9e4..3d7f9f4ea9e 100644 --- a/tests/packagedcode/data/maven2/spring-2.5.4.pom.package.json +++ b/tests/packagedcode/data/maven2/spring-2.5.4.pom.package.json @@ -42,524 +42,524 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/aopalliance/aopalliance", + "purl": "pkg:maven/aopalliance/aopalliance@1.0", "requirement": "1.0", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/asm/asm", + "purl": "pkg:maven/asm/asm@2.2.3", "requirement": "2.2.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/asm/asm-commons", + "purl": "pkg:maven/asm/asm-commons@2.2.3", "requirement": "2.2.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/asm/asm-util", + "purl": "pkg:maven/asm/asm-util@2.2.3", "requirement": "2.2.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/aspectj/aspectjrt", + "purl": "pkg:maven/aspectj/aspectjrt@1.5.4", "requirement": "1.5.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/aspectj/aspectjweaver", + "purl": "pkg:maven/aspectj/aspectjweaver@1.5.4", "requirement": "1.5.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/backport-util-concurrent/backport-util-concurrent", + "purl": "pkg:maven/backport-util-concurrent/backport-util-concurrent@3.0", "requirement": "3.0", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/c3p0/c3p0", + "purl": "pkg:maven/c3p0/c3p0@0.9.1.2", "requirement": "0.9.1.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/cglib/cglib-nodep", + "purl": "pkg:maven/cglib/cglib-nodep@2.1_3", "requirement": "2.1_3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-attributes/commons-attributes-api", + "purl": "pkg:maven/commons-attributes/commons-attributes-api@2.2", "requirement": "2.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-attributes/commons-attributes-compiler", + "purl": "pkg:maven/commons-attributes/commons-attributes-compiler@2.2", "requirement": "2.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-beanutils/commons-beanutils", + "purl": "pkg:maven/commons-beanutils/commons-beanutils@1.7.0", "requirement": "1.7.0", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-collections/commons-collections", + "purl": "pkg:maven/commons-collections/commons-collections@3.2", "requirement": "3.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-dbcp/commons-dbcp", + "purl": "pkg:maven/commons-dbcp/commons-dbcp@1.2.2", "requirement": "1.2.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-fileupload/commons-fileupload", + "purl": "pkg:maven/commons-fileupload/commons-fileupload@1.2", "requirement": "1.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-httpclient/commons-httpclient", + "purl": "pkg:maven/commons-httpclient/commons-httpclient@3.1", "requirement": "3.1", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-logging/commons-logging", + "purl": "pkg:maven/commons-logging/commons-logging@1.1.1", "requirement": "1.1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-pool/commons-pool", + "purl": "pkg:maven/commons-pool/commons-pool@1.3", "requirement": "1.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/com.bea.wlplatform/commonj-twm", + "purl": "pkg:maven/com.bea.wlplatform/commonj-twm@1.1", "requirement": "1.1", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/com.experlog/xapool", + "purl": "pkg:maven/com.experlog/xapool@1.5.0", "requirement": "1.5.0", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.ibatis/ibatis-sqlmap", + "purl": "pkg:maven/org.apache.ibatis/ibatis-sqlmap@2.3.0.677", "requirement": "2.3.0.677", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/com.jamonapi/jamon", + "purl": "pkg:maven/com.jamonapi/jamon@2.4", "requirement": "2.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/com.lowagie/itext", + "purl": "pkg:maven/com.lowagie/itext@2.0.7", "requirement": "2.0.7", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/com.oracle.toplink/toplink", + "purl": "pkg:maven/com.oracle.toplink/toplink@10.1.3", "requirement": "10.1.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/com.oracle/toplink-essentials", + "purl": "pkg:maven/com.oracle/toplink-essentials@2.41", "requirement": "2.41", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/com.oracle/oc4j", + "purl": "pkg:maven/com.oracle/oc4j@1.0", "requirement": "1.0", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/freemarker/freemarker", + "purl": "pkg:maven/freemarker/freemarker@2.3.12", "requirement": "2.3.12", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/groovy/groovy", + "purl": "pkg:maven/groovy/groovy@1.5.5", "requirement": "1.5.5", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/hessian/hessian", + "purl": "pkg:maven/hessian/hessian@3.1.3", "requirement": "3.1.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/jasperreports/jasperreports", + "purl": "pkg:maven/jasperreports/jasperreports@2.0.5", "requirement": "2.0.5", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/jexcelapi/jxl", + "purl": "pkg:maven/jexcelapi/jxl@2.6.6", "requirement": "2.6.6", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/jotm/jotm", + "purl": "pkg:maven/jotm/jotm@2.0.10", "requirement": "2.0.10", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/jruby/jruby-bin", + "purl": "pkg:maven/jruby/jruby-bin@1.0.1", "requirement": "1.0.1", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/log4j/log4j", + "purl": "pkg:maven/log4j/log4j@1.2.15", "requirement": "1.2.15", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/net.sf.ehcache/ehcache", + "purl": "pkg:maven/net.sf.ehcache/ehcache@1.4.1", "requirement": "1.4.1", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.axis/axis", + "purl": "pkg:maven/org.apache.axis/axis@1.4", "requirement": "1.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.tiles/tiles-api", + "purl": "pkg:maven/org.apache.tiles/tiles-api@2.0.5", "requirement": "2.0.5", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.tiles/tiles-core", + "purl": "pkg:maven/org.apache.tiles/tiles-core@2.0.5", "requirement": "2.0.5", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.tiles/tiles-jsp", + "purl": "pkg:maven/org.apache.tiles/tiles-jsp@2.0.5", "requirement": "2.0.5", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.beanshell/bsh", + "purl": "pkg:maven/org.beanshell/bsh@2.0b4", "requirement": "2.0b4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.hibernate/hibernate", + "purl": "pkg:maven/org.hibernate/hibernate@3.2.6.ga", "requirement": "3.2.6.ga", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.hibernate/hibernate-entitymanager", + "purl": "pkg:maven/org.hibernate/hibernate-entitymanager@3.3.2.ga", "requirement": "3.3.2.ga", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/poi/poi", + "purl": "pkg:maven/poi/poi@3.0.1", "requirement": "3.0.1", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/opensymphony/quartz-all", + "purl": "pkg:maven/opensymphony/quartz-all@1.6.0", "requirement": "1.6.0", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/struts/struts", + "purl": "pkg:maven/struts/struts@1.2.9", "requirement": "1.2.9", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/taglibs/standard", + "purl": "pkg:maven/taglibs/standard@1.1.2", "requirement": "1.1.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/tomcat/catalina", + "purl": "pkg:maven/tomcat/catalina@5.5.23", "requirement": "5.5.23", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/velocity/velocity", + "purl": "pkg:maven/velocity/velocity@1.5", "requirement": "1.5", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/velocity-tools/velocity-tools-generic", + "purl": "pkg:maven/velocity-tools/velocity-tools-generic@1.4", "requirement": "1.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/velocity-tools/velocity-tools-view", + "purl": "pkg:maven/velocity-tools/velocity-tools-view@1.4", "requirement": "1.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.activation/activation", + "purl": "pkg:maven/javax.activation/activation@1.1", "requirement": "1.1", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.ejb/ejb", + "purl": "pkg:maven/javax.ejb/ejb@3.0", "requirement": "3.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.faces/jsf-api", + "purl": "pkg:maven/javax.faces/jsf-api@1.1", "requirement": "1.1", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.jdo/jdo2-api", + "purl": "pkg:maven/javax.jdo/jdo2-api@2.0", "requirement": "2.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.jms/jms", + "purl": "pkg:maven/javax.jms/jms@1.1", "requirement": "1.1", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.mail/mail", + "purl": "pkg:maven/javax.mail/mail@1.4", "requirement": "1.4", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.persistence/persistence-api", + "purl": "pkg:maven/javax.persistence/persistence-api@1.0", "requirement": "1.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.portlet/portlet-api", + "purl": "pkg:maven/javax.portlet/portlet-api@1.0", "requirement": "1.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.resource/connector-api", + "purl": "pkg:maven/javax.resource/connector-api@1.5", "requirement": "1.5", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/jsp-api", + "purl": "pkg:maven/javax.servlet/jsp-api@2.0", "requirement": "2.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/jstl", + "purl": "pkg:maven/javax.servlet/jstl@1.1.0", "requirement": "1.1.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/servlet-api", + "purl": "pkg:maven/javax.servlet/servlet-api@2.4", "requirement": "2.4", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.transaction/jta", + "purl": "pkg:maven/javax.transaction/jta@1.1", "requirement": "1.1", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.xml/jaxrpc-api", + "purl": "pkg:maven/javax.xml/jaxrpc-api@1.1", "requirement": "1.1", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/maven2/spring-orm-2.5.3.pom.package.json b/tests/packagedcode/data/maven2/spring-orm-2.5.3.pom.package.json index 0651c86977a..e8068343c44 100644 --- a/tests/packagedcode/data/maven2/spring-orm-2.5.3.pom.package.json +++ b/tests/packagedcode/data/maven2/spring-orm-2.5.3.pom.package.json @@ -42,132 +42,132 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/aopalliance/aopalliance", + "purl": "pkg:maven/aopalliance/aopalliance@1.0", "requirement": "1.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-logging/commons-logging", + "purl": "pkg:maven/commons-logging/commons-logging@1.1.1", "requirement": "1.1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/com.oracle/toplink-essentials", + "purl": "pkg:maven/com.oracle/toplink-essentials@2.41", "requirement": "2.41", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/com.oracle.toplink/toplink", + "purl": "pkg:maven/com.oracle.toplink/toplink@10.1.3", "requirement": "10.1.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.ibatis/ibatis-sqlmap", + "purl": "pkg:maven/org.apache.ibatis/ibatis-sqlmap@2.3.0", "requirement": "2.3.0", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.hibernate/hibernate", + "purl": "pkg:maven/org.hibernate/hibernate@3.2.6.ga", "requirement": "3.2.6.ga", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.hibernate/hibernate-entitymanager", + "purl": "pkg:maven/org.hibernate/hibernate-entitymanager@3.3.1.ga", "requirement": "3.3.1.ga", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-aop", + "purl": "pkg:maven/org.springframework/spring-aop@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-beans", + "purl": "pkg:maven/org.springframework/spring-beans@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-context", + "purl": "pkg:maven/org.springframework/spring-context@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-core", + "purl": "pkg:maven/org.springframework/spring-core@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-jdbc", + "purl": "pkg:maven/org.springframework/spring-jdbc@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-tx", + "purl": "pkg:maven/org.springframework/spring-tx@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-web", + "purl": "pkg:maven/org.springframework/spring-web@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.jdo/jdo2-api", + "purl": "pkg:maven/javax.jdo/jdo2-api@2.0", "requirement": "2.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.persistence/persistence-api", + "purl": "pkg:maven/javax.persistence/persistence-api@1.0", "requirement": "1.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/maven2/spring-webmvc-2.5.3.pom.package.json b/tests/packagedcode/data/maven2/spring-webmvc-2.5.3.pom.package.json index be7400186b1..a6e05486316 100644 --- a/tests/packagedcode/data/maven2/spring-webmvc-2.5.3.pom.package.json +++ b/tests/packagedcode/data/maven2/spring-webmvc-2.5.3.pom.package.json @@ -42,180 +42,180 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/commons-attributes/commons-attributes-api", + "purl": "pkg:maven/commons-attributes/commons-attributes-api@2.2", "requirement": "2.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-attributes/commons-attributes-compiler", + "purl": "pkg:maven/commons-attributes/commons-attributes-compiler@2.2", "requirement": "2.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-logging/commons-logging", + "purl": "pkg:maven/commons-logging/commons-logging@1.1.1", "requirement": "1.1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/com.lowagie/itext", + "purl": "pkg:maven/com.lowagie/itext@2.0.7", "requirement": "2.0.7", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/freemarker/freemarker", + "purl": "pkg:maven/freemarker/freemarker@2.3.12", "requirement": "2.3.12", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/jasperreports/jasperreports", + "purl": "pkg:maven/jasperreports/jasperreports@2.0.2", "requirement": "2.0.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/jexcelapi/jxl", + "purl": "pkg:maven/jexcelapi/jxl@2.6.6", "requirement": "2.6.6", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.tiles/tiles-api", + "purl": "pkg:maven/org.apache.tiles/tiles-api@2.0.5", "requirement": "2.0.5", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.tiles/tiles-core", + "purl": "pkg:maven/org.apache.tiles/tiles-core@2.0.5", "requirement": "2.0.5", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.tiles/tiles-jsp", + "purl": "pkg:maven/org.apache.tiles/tiles-jsp@2.0.5", "requirement": "2.0.5", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/poi/poi", + "purl": "pkg:maven/poi/poi@3.0.1", "requirement": "3.0.1", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/velocity/velocity", + "purl": "pkg:maven/velocity/velocity@1.5", "requirement": "1.5", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/velocity-tools/velocity-tools-generic", + "purl": "pkg:maven/velocity-tools/velocity-tools-generic@1.4", "requirement": "1.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/velocity-tools/velocity-tools-view", + "purl": "pkg:maven/velocity-tools/velocity-tools-view@1.4", "requirement": "1.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-beans", + "purl": "pkg:maven/org.springframework/spring-beans@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-context", + "purl": "pkg:maven/org.springframework/spring-context@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-context-support", + "purl": "pkg:maven/org.springframework/spring-context-support@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-core", + "purl": "pkg:maven/org.springframework/spring-core@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-web", + "purl": "pkg:maven/org.springframework/spring-web@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/jsp-api", + "purl": "pkg:maven/javax.servlet/jsp-api@2.0", "requirement": "2.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/jstl", + "purl": "pkg:maven/javax.servlet/jstl@1.1.0", "requirement": "1.1.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/servlet-api", + "purl": "pkg:maven/javax.servlet/servlet-api@2.4", "requirement": "2.4", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/maven2/startup-trigger-plugin-0.1.pom.package.json b/tests/packagedcode/data/maven2/startup-trigger-plugin-0.1.pom.package.json index 5c8637cc54c..0a2e5498db1 100644 --- a/tests/packagedcode/data/maven2/startup-trigger-plugin-0.1.pom.package.json +++ b/tests/packagedcode/data/maven2/startup-trigger-plugin-0.1.pom.package.json @@ -35,12 +35,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.mockito/mockito-all", + "purl": "pkg:maven/org.mockito/mockito-all@1.8.1", "requirement": "1.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/maven2/uni_pom.xml.package.json b/tests/packagedcode/data/maven2/uni_pom.xml.package.json index ff09e1acde7..5a93c22dcb9 100644 --- a/tests/packagedcode/data/maven2/uni_pom.xml.package.json +++ b/tests/packagedcode/data/maven2/uni_pom.xml.package.json @@ -27,44 +27,44 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/com.intel.gpe.clients/gpe-clients-all", + "purl": "pkg:maven/com.intel.gpe.clients/gpe-clients-all@2.0.4-SNAPSHOT", "requirement": "2.0.4-SNAPSHOT", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/com.intel.gpe.clients/gpe-gridbean-api", + "purl": "pkg:maven/com.intel.gpe.clients/gpe-gridbean-api@2.0.5-SNAPSHOT", "requirement": "2.0.5-SNAPSHOT", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/com.intel.gpe/gpe-utils", + "purl": "pkg:maven/com.intel.gpe/gpe-utils@2.0.5-SNAPSHOT", "requirement": "2.0.5-SNAPSHOT", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/com.intel.gpe.clients/gpe-gridbeans-swt", + "purl": "pkg:maven/com.intel.gpe.clients/gpe-gridbeans-swt@0.0.2-SNAPSHOT", "requirement": "0.0.2-SNAPSHOT", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/maven2/xml-format-maven-plugin-3.0.6.pom.package.json b/tests/packagedcode/data/maven2/xml-format-maven-plugin-3.0.6.pom.package.json index fa4f49524ad..3962678cd45 100644 --- a/tests/packagedcode/data/maven2/xml-format-maven-plugin-3.0.6.pom.package.json +++ b/tests/packagedcode/data/maven2/xml-format-maven-plugin-3.0.6.pom.package.json @@ -30,57 +30,57 @@ "purl": "pkg:maven/junit/junit", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.hamcrest/hamcrest-core", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.mockito/mockito-core", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven/maven-plugin-api", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven.plugin-tools/maven-plugin-annotations", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { - "purl": "pkg:maven/org.dom4j/dom4j", + "purl": "pkg:maven/org.dom4j/dom4j@2.0.1", "requirement": "2.0.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, diff --git a/tests/packagedcode/data/plugin/maven-package-expected.json b/tests/packagedcode/data/plugin/maven-package-expected.json index 748b49a61f2..370503ce1eb 100644 --- a/tests/packagedcode/data/plugin/maven-package-expected.json +++ b/tests/packagedcode/data/plugin/maven-package-expected.json @@ -126,28 +126,28 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.ant/ant", + "purl": "pkg:maven/org.apache.ant/ant@1.7.0", "requirement": "1.7.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/javax.media/jai-core", + "purl": "pkg:maven/javax.media/jai-core@1.1.2_01", "requirement": "1.1.2_01", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/jai/jai-codec", + "purl": "pkg:maven/jai/jai-codec@1.1.2.1", "requirement": "1.1.2.1", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, @@ -208,20 +208,20 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.ant/ant", + "purl": "pkg:maven/org.apache.ant/ant@1.7.0", "requirement": "1.7.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/com.jcraft/jsch", + "purl": "pkg:maven/com.jcraft/jsch@0.1.29", "requirement": "0.1.29", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, @@ -545,20 +545,20 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/servletapi/servletapi", + "purl": "pkg:maven/servletapi/servletapi@2.3", "requirement": "2.3", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, @@ -851,52 +851,52 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/commons-beanutils/commons-beanutils", + "purl": "pkg:maven/commons-beanutils/commons-beanutils@1.7.0", "requirement": "1.7.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-digester/commons-digester", + "purl": "pkg:maven/commons-digester/commons-digester@1.6", "requirement": "1.6", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-logging/commons-logging", + "purl": "pkg:maven/commons-logging/commons-logging@1.0.4", "requirement": "1.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/oro/oro", + "purl": "pkg:maven/oro/oro@2.0.8", "requirement": "2.0.8", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/xml-apis/xml-apis", + "purl": "pkg:maven/xml-apis/xml-apis@2.0.2", "requirement": "2.0.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, @@ -1011,148 +1011,148 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/log4j/log4j", + "purl": "pkg:maven/log4j/log4j@1.2.8", "requirement": "1.2.8", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/servletapi/servletapi", + "purl": "pkg:maven/servletapi/servletapi@2.3", "requirement": "2.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/struts/struts", + "purl": "pkg:maven/struts/struts@1.1", "requirement": "1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-configuration/commons-configuration", + "purl": "pkg:maven/commons-configuration/commons-configuration@1.1", "requirement": "1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-collections/commons-collections", + "purl": "pkg:maven/commons-collections/commons-collections@3.1", "requirement": "3.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-lang/commons-lang", + "purl": "pkg:maven/commons-lang/commons-lang@2.0", "requirement": "2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/dom4j/dom4j", + "purl": "pkg:maven/dom4j/dom4j@1.4", "requirement": "1.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-logging/commons-logging", + "purl": "pkg:maven/commons-logging/commons-logging@1.0.4", "requirement": "1.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-digester/commons-digester", + "purl": "pkg:maven/commons-digester/commons-digester@1.6", "requirement": "1.6", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/xerces/xerces", + "purl": "pkg:maven/xerces/xerces@2.2.1", "requirement": "2.2.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/xml-apis/xml-apis", + "purl": "pkg:maven/xml-apis/xml-apis@2.0.2", "requirement": "2.0.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/xdoclet/xdoclet", + "purl": "pkg:maven/xdoclet/xdoclet@1.2.1", "requirement": "1.2.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-beanutils/commons-beanutils-core", + "purl": "pkg:maven/commons-beanutils/commons-beanutils-core@1.7.0", "requirement": "1.7.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-beanutils/commons-beanutils-bean-collections", + "purl": "pkg:maven/commons-beanutils/commons-beanutils-bean-collections@1.7.0", "requirement": "1.7.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/xdoclet/xdoclet-web-module", + "purl": "pkg:maven/xdoclet/xdoclet-web-module@1.2.1", "requirement": "1.2.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/mx4j/mx4j-jmx", + "purl": "pkg:maven/mx4j/mx4j-jmx@2.1.1", "requirement": "2.1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/mx4j/mx4j-impl", + "purl": "pkg:maven/mx4j/mx4j-impl@2.1.1", "requirement": "2.1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, @@ -1249,44 +1249,44 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.apache.maven/maven-artifact", + "purl": "pkg:maven/org.apache.maven/maven-artifact@2.0.4", "requirement": "2.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-impl", + "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-impl@2.0.4", "requirement": "2.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-api", + "purl": "pkg:maven/org.apache.maven.reporting/maven-reporting-api@2.0.4", "requirement": "2.0.4", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.maven.doxia/doxia-core", + "purl": "pkg:maven/org.apache.maven.doxia/doxia-core@1.0-alpha-8", "requirement": "1.0-alpha-8", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/net.sourceforge.findbugs/findbugs", + "purl": "pkg:maven/net.sourceforge.findbugs/findbugs@1.2.0", "requirement": "1.2.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, @@ -1452,36 +1452,36 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/relaxngDatatype/relaxngDatatype", + "purl": "pkg:maven/relaxngDatatype/relaxngDatatype@20020414", "requirement": "20020414", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/com.sun.xml.bind/jaxb-impl", + "purl": "pkg:maven/com.sun.xml.bind/jaxb-impl@2.1.11", "requirement": "2.1.11", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/com.sun.xml.bind/jaxb-xjc", + "purl": "pkg:maven/com.sun.xml.bind/jaxb-xjc@2.1.11", "requirement": "2.1.11", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/com.sun.xsom/xsom", + "purl": "pkg:maven/com.sun.xsom/xsom@20081112", "requirement": "20081112", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, @@ -1570,41 +1570,41 @@ "purl": "pkg:maven/ch.qos.logback/logback-core", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/tomcat/catalina", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.mortbay.jetty/jetty", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/com.caucho/resin", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.mortbay.jetty/servlet-api-2.5", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null } ], "contains_source_code": null, @@ -1750,36 +1750,36 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default", + "purl": "pkg:maven/org.codehaus.plexus/plexus-container-default@1.0-alpha-7", "requirement": "1.0-alpha-7", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/classworlds/classworlds", + "purl": "pkg:maven/classworlds/classworlds@1.1-alpha-2", "requirement": "1.1-alpha-2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/plexus/plexus-utils", + "purl": "pkg:maven/plexus/plexus-utils@1.0.2", "requirement": "1.0.2", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, @@ -1951,12 +1951,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, @@ -2032,524 +2032,524 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/aopalliance/aopalliance", + "purl": "pkg:maven/aopalliance/aopalliance@1.0", "requirement": "1.0", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/asm/asm", + "purl": "pkg:maven/asm/asm@2.2.3", "requirement": "2.2.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/asm/asm-commons", + "purl": "pkg:maven/asm/asm-commons@2.2.3", "requirement": "2.2.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/asm/asm-util", + "purl": "pkg:maven/asm/asm-util@2.2.3", "requirement": "2.2.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/aspectj/aspectjrt", + "purl": "pkg:maven/aspectj/aspectjrt@1.5.4", "requirement": "1.5.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/aspectj/aspectjweaver", + "purl": "pkg:maven/aspectj/aspectjweaver@1.5.4", "requirement": "1.5.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/backport-util-concurrent/backport-util-concurrent", + "purl": "pkg:maven/backport-util-concurrent/backport-util-concurrent@3.0", "requirement": "3.0", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/c3p0/c3p0", + "purl": "pkg:maven/c3p0/c3p0@0.9.1.2", "requirement": "0.9.1.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/cglib/cglib-nodep", + "purl": "pkg:maven/cglib/cglib-nodep@2.1_3", "requirement": "2.1_3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-attributes/commons-attributes-api", + "purl": "pkg:maven/commons-attributes/commons-attributes-api@2.2", "requirement": "2.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-attributes/commons-attributes-compiler", + "purl": "pkg:maven/commons-attributes/commons-attributes-compiler@2.2", "requirement": "2.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-beanutils/commons-beanutils", + "purl": "pkg:maven/commons-beanutils/commons-beanutils@1.7.0", "requirement": "1.7.0", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-collections/commons-collections", + "purl": "pkg:maven/commons-collections/commons-collections@3.2", "requirement": "3.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-dbcp/commons-dbcp", + "purl": "pkg:maven/commons-dbcp/commons-dbcp@1.2.2", "requirement": "1.2.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-fileupload/commons-fileupload", + "purl": "pkg:maven/commons-fileupload/commons-fileupload@1.2", "requirement": "1.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-httpclient/commons-httpclient", + "purl": "pkg:maven/commons-httpclient/commons-httpclient@3.1", "requirement": "3.1", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-logging/commons-logging", + "purl": "pkg:maven/commons-logging/commons-logging@1.1.1", "requirement": "1.1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-pool/commons-pool", + "purl": "pkg:maven/commons-pool/commons-pool@1.3", "requirement": "1.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/com.bea.wlplatform/commonj-twm", + "purl": "pkg:maven/com.bea.wlplatform/commonj-twm@1.1", "requirement": "1.1", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/com.experlog/xapool", + "purl": "pkg:maven/com.experlog/xapool@1.5.0", "requirement": "1.5.0", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.ibatis/ibatis-sqlmap", + "purl": "pkg:maven/org.apache.ibatis/ibatis-sqlmap@2.3.0.677", "requirement": "2.3.0.677", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/com.jamonapi/jamon", + "purl": "pkg:maven/com.jamonapi/jamon@2.4", "requirement": "2.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/com.lowagie/itext", + "purl": "pkg:maven/com.lowagie/itext@2.0.7", "requirement": "2.0.7", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/com.oracle.toplink/toplink", + "purl": "pkg:maven/com.oracle.toplink/toplink@10.1.3", "requirement": "10.1.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/com.oracle/toplink-essentials", + "purl": "pkg:maven/com.oracle/toplink-essentials@2.41", "requirement": "2.41", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/com.oracle/oc4j", + "purl": "pkg:maven/com.oracle/oc4j@1.0", "requirement": "1.0", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/freemarker/freemarker", + "purl": "pkg:maven/freemarker/freemarker@2.3.12", "requirement": "2.3.12", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/groovy/groovy", + "purl": "pkg:maven/groovy/groovy@1.5.5", "requirement": "1.5.5", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/hessian/hessian", + "purl": "pkg:maven/hessian/hessian@3.1.3", "requirement": "3.1.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/jasperreports/jasperreports", + "purl": "pkg:maven/jasperreports/jasperreports@2.0.5", "requirement": "2.0.5", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/jexcelapi/jxl", + "purl": "pkg:maven/jexcelapi/jxl@2.6.6", "requirement": "2.6.6", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/jotm/jotm", + "purl": "pkg:maven/jotm/jotm@2.0.10", "requirement": "2.0.10", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/jruby/jruby-bin", + "purl": "pkg:maven/jruby/jruby-bin@1.0.1", "requirement": "1.0.1", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/junit/junit", + "purl": "pkg:maven/junit/junit@3.8.1", "requirement": "3.8.1", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/log4j/log4j", + "purl": "pkg:maven/log4j/log4j@1.2.15", "requirement": "1.2.15", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/net.sf.ehcache/ehcache", + "purl": "pkg:maven/net.sf.ehcache/ehcache@1.4.1", "requirement": "1.4.1", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.axis/axis", + "purl": "pkg:maven/org.apache.axis/axis@1.4", "requirement": "1.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.tiles/tiles-api", + "purl": "pkg:maven/org.apache.tiles/tiles-api@2.0.5", "requirement": "2.0.5", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.tiles/tiles-core", + "purl": "pkg:maven/org.apache.tiles/tiles-core@2.0.5", "requirement": "2.0.5", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.tiles/tiles-jsp", + "purl": "pkg:maven/org.apache.tiles/tiles-jsp@2.0.5", "requirement": "2.0.5", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.beanshell/bsh", + "purl": "pkg:maven/org.beanshell/bsh@2.0b4", "requirement": "2.0b4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.hibernate/hibernate", + "purl": "pkg:maven/org.hibernate/hibernate@3.2.6.ga", "requirement": "3.2.6.ga", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.hibernate/hibernate-entitymanager", + "purl": "pkg:maven/org.hibernate/hibernate-entitymanager@3.3.2.ga", "requirement": "3.3.2.ga", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/poi/poi", + "purl": "pkg:maven/poi/poi@3.0.1", "requirement": "3.0.1", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/opensymphony/quartz-all", + "purl": "pkg:maven/opensymphony/quartz-all@1.6.0", "requirement": "1.6.0", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/struts/struts", + "purl": "pkg:maven/struts/struts@1.2.9", "requirement": "1.2.9", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/taglibs/standard", + "purl": "pkg:maven/taglibs/standard@1.1.2", "requirement": "1.1.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/tomcat/catalina", + "purl": "pkg:maven/tomcat/catalina@5.5.23", "requirement": "5.5.23", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/velocity/velocity", + "purl": "pkg:maven/velocity/velocity@1.5", "requirement": "1.5", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/velocity-tools/velocity-tools-generic", + "purl": "pkg:maven/velocity-tools/velocity-tools-generic@1.4", "requirement": "1.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/velocity-tools/velocity-tools-view", + "purl": "pkg:maven/velocity-tools/velocity-tools-view@1.4", "requirement": "1.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.activation/activation", + "purl": "pkg:maven/javax.activation/activation@1.1", "requirement": "1.1", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.ejb/ejb", + "purl": "pkg:maven/javax.ejb/ejb@3.0", "requirement": "3.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.faces/jsf-api", + "purl": "pkg:maven/javax.faces/jsf-api@1.1", "requirement": "1.1", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.jdo/jdo2-api", + "purl": "pkg:maven/javax.jdo/jdo2-api@2.0", "requirement": "2.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.jms/jms", + "purl": "pkg:maven/javax.jms/jms@1.1", "requirement": "1.1", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.mail/mail", + "purl": "pkg:maven/javax.mail/mail@1.4", "requirement": "1.4", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.persistence/persistence-api", + "purl": "pkg:maven/javax.persistence/persistence-api@1.0", "requirement": "1.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.portlet/portlet-api", + "purl": "pkg:maven/javax.portlet/portlet-api@1.0", "requirement": "1.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.resource/connector-api", + "purl": "pkg:maven/javax.resource/connector-api@1.5", "requirement": "1.5", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/jsp-api", + "purl": "pkg:maven/javax.servlet/jsp-api@2.0", "requirement": "2.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/jstl", + "purl": "pkg:maven/javax.servlet/jstl@1.1.0", "requirement": "1.1.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/servlet-api", + "purl": "pkg:maven/javax.servlet/servlet-api@2.4", "requirement": "2.4", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.transaction/jta", + "purl": "pkg:maven/javax.transaction/jta@1.1", "requirement": "1.1", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.xml/jaxrpc-api", + "purl": "pkg:maven/javax.xml/jaxrpc-api@1.1", "requirement": "1.1", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, @@ -2625,132 +2625,132 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/aopalliance/aopalliance", + "purl": "pkg:maven/aopalliance/aopalliance@1.0", "requirement": "1.0", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/commons-logging/commons-logging", + "purl": "pkg:maven/commons-logging/commons-logging@1.1.1", "requirement": "1.1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/com.oracle/toplink-essentials", + "purl": "pkg:maven/com.oracle/toplink-essentials@2.41", "requirement": "2.41", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/com.oracle.toplink/toplink", + "purl": "pkg:maven/com.oracle.toplink/toplink@10.1.3", "requirement": "10.1.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.ibatis/ibatis-sqlmap", + "purl": "pkg:maven/org.apache.ibatis/ibatis-sqlmap@2.3.0", "requirement": "2.3.0", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.hibernate/hibernate", + "purl": "pkg:maven/org.hibernate/hibernate@3.2.6.ga", "requirement": "3.2.6.ga", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.hibernate/hibernate-entitymanager", + "purl": "pkg:maven/org.hibernate/hibernate-entitymanager@3.3.1.ga", "requirement": "3.3.1.ga", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-aop", + "purl": "pkg:maven/org.springframework/spring-aop@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-beans", + "purl": "pkg:maven/org.springframework/spring-beans@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-context", + "purl": "pkg:maven/org.springframework/spring-context@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-core", + "purl": "pkg:maven/org.springframework/spring-core@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-jdbc", + "purl": "pkg:maven/org.springframework/spring-jdbc@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-tx", + "purl": "pkg:maven/org.springframework/spring-tx@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-web", + "purl": "pkg:maven/org.springframework/spring-web@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.jdo/jdo2-api", + "purl": "pkg:maven/javax.jdo/jdo2-api@2.0", "requirement": "2.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.persistence/persistence-api", + "purl": "pkg:maven/javax.persistence/persistence-api@1.0", "requirement": "1.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, @@ -2826,180 +2826,180 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/commons-attributes/commons-attributes-api", + "purl": "pkg:maven/commons-attributes/commons-attributes-api@2.2", "requirement": "2.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-attributes/commons-attributes-compiler", + "purl": "pkg:maven/commons-attributes/commons-attributes-compiler@2.2", "requirement": "2.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/commons-logging/commons-logging", + "purl": "pkg:maven/commons-logging/commons-logging@1.1.1", "requirement": "1.1.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/com.lowagie/itext", + "purl": "pkg:maven/com.lowagie/itext@2.0.7", "requirement": "2.0.7", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/freemarker/freemarker", + "purl": "pkg:maven/freemarker/freemarker@2.3.12", "requirement": "2.3.12", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/jasperreports/jasperreports", + "purl": "pkg:maven/jasperreports/jasperreports@2.0.2", "requirement": "2.0.2", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/jexcelapi/jxl", + "purl": "pkg:maven/jexcelapi/jxl@2.6.6", "requirement": "2.6.6", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.tiles/tiles-api", + "purl": "pkg:maven/org.apache.tiles/tiles-api@2.0.5", "requirement": "2.0.5", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.tiles/tiles-core", + "purl": "pkg:maven/org.apache.tiles/tiles-core@2.0.5", "requirement": "2.0.5", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.apache.tiles/tiles-jsp", + "purl": "pkg:maven/org.apache.tiles/tiles-jsp@2.0.5", "requirement": "2.0.5", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/poi/poi", + "purl": "pkg:maven/poi/poi@3.0.1", "requirement": "3.0.1", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/velocity/velocity", + "purl": "pkg:maven/velocity/velocity@1.5", "requirement": "1.5", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/velocity-tools/velocity-tools-generic", + "purl": "pkg:maven/velocity-tools/velocity-tools-generic@1.4", "requirement": "1.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/velocity-tools/velocity-tools-view", + "purl": "pkg:maven/velocity-tools/velocity-tools-view@1.4", "requirement": "1.4", "scope": "compile", - "is_runtime": true, + "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-beans", + "purl": "pkg:maven/org.springframework/spring-beans@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-context", + "purl": "pkg:maven/org.springframework/spring-context@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-context-support", + "purl": "pkg:maven/org.springframework/spring-context-support@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-core", + "purl": "pkg:maven/org.springframework/spring-core@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/org.springframework/spring-web", + "purl": "pkg:maven/org.springframework/spring-web@2.5.3", "requirement": "2.5.3", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/jsp-api", + "purl": "pkg:maven/javax.servlet/jsp-api@2.0", "requirement": "2.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/jstl", + "purl": "pkg:maven/javax.servlet/jstl@1.1.0", "requirement": "1.1.0", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true }, { - "purl": "pkg:maven/javax.servlet/servlet-api", + "purl": "pkg:maven/javax.servlet/servlet-api@2.4", "requirement": "2.4", "scope": "provided", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, @@ -3068,12 +3068,12 @@ "root_path": null, "dependencies": [ { - "purl": "pkg:maven/org.mockito/mockito-all", + "purl": "pkg:maven/org.mockito/mockito-all@1.8.1", "requirement": "1.8.1", "scope": "test", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_resolved": true } ], "contains_source_code": null, @@ -3191,57 +3191,57 @@ "purl": "pkg:maven/junit/junit", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.hamcrest/hamcrest-core", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.mockito/mockito-core", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven/maven-plugin-api", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.apache.maven.plugin-tools/maven-plugin-annotations", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { "purl": "pkg:maven/org.codehaus.plexus/plexus-utils", "requirement": null, "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": null }, { - "purl": "pkg:maven/org.dom4j/dom4j", + "purl": "pkg:maven/org.dom4j/dom4j@2.0.1", "requirement": "2.0.1", "scope": "compile", - "is_runtime": true, - "is_optional": false, - "is_resolved": false + "is_runtime": false, + "is_optional": true, + "is_resolved": true } ], "contains_source_code": null, From 8732defbc7fb20f122698122c5fd0e8d7b0e350e Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Mon, 12 Jul 2021 14:24:39 +0200 Subject: [PATCH 589/709] Enable pub detection in scans Signed-off-by: Philippe Ombredanne --- src/packagedcode/__init__.py | 2 ++ tests/packagedcode/data/plugin/help.txt | 6 ++++ .../data/plugin/pubspec-expected.json | 28 +++++++++++++++++++ tests/packagedcode/test_plugin.py | 7 +++++ 4 files changed, 43 insertions(+) create mode 100644 tests/packagedcode/data/plugin/pubspec-expected.json diff --git a/src/packagedcode/__init__.py b/src/packagedcode/__init__.py index 5f7cf23de7a..8b6126a2b29 100644 --- a/src/packagedcode/__init__.py +++ b/src/packagedcode/__init__.py @@ -26,6 +26,7 @@ from packagedcode import nuget from packagedcode import opam from packagedcode import phpcomposer +from packagedcode import pubspec from packagedcode import pypi from packagedcode import readme from packagedcode import rpm @@ -82,6 +83,7 @@ win_pe.WindowsExecutable, readme.ReadmePackage, build.MetadataBzl, + pubspec.PubspecPackage, ] PACKAGES_BY_TYPE = {cls.default_type: cls for cls in PACKAGE_TYPES} diff --git a/tests/packagedcode/data/plugin/help.txt b/tests/packagedcode/data/plugin/help.txt index 4221dbb5a01..94f4be2f409 100644 --- a/tests/packagedcode/data/plugin/help.txt +++ b/tests/packagedcode/data/plugin/help.txt @@ -222,6 +222,12 @@ Package: pods metafiles: *.podspec extensions: .podspec +-------------------------------------------- +Package: pubspec + class: packagedcode.pubspec:PubspecPackage + metafiles: pubspec.yaml + extensions: .yaml + -------------------------------------------- Package: pypi class: packagedcode.pypi:PythonPackage diff --git a/tests/packagedcode/data/plugin/pubspec-expected.json b/tests/packagedcode/data/plugin/pubspec-expected.json new file mode 100644 index 00000000000..a2c19fb78b0 --- /dev/null +++ b/tests/packagedcode/data/plugin/pubspec-expected.json @@ -0,0 +1,28 @@ +{ + "headers": [ + { + "tool_name": "scancode-toolkit", + "options": { + "input": "", + "--json": "", + "--package": true, + "--processes": "-1", + "--strip-root": true + }, + "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", + "message": null, + "errors": [], + "extra_data": { + "files_count": 1 + } + } + ], + "files": [ + { + "path": "authors-pubspec.yaml", + "type": "file", + "packages": [], + "scan_errors": [] + } + ] +} \ No newline at end of file diff --git a/tests/packagedcode/test_plugin.py b/tests/packagedcode/test_plugin.py index 41b93315676..a0e04c5c3c6 100644 --- a/tests/packagedcode/test_plugin.py +++ b/tests/packagedcode/test_plugin.py @@ -139,3 +139,10 @@ def test_package_command_scan_cran_r_package(self): expected_file = self.get_test_loc('plugin/cran-package-expected.json') run_scan_click(['--package', '--strip-root', '--processes', '-1', test_dir, '--json', result_file]) check_json_scan(expected_file, result_file, regen=False) + + def test_package_command_scan_pubspec_package(self): + test_dir = self.get_test_loc('pubspec/specs/authors-pubspec.yaml') + result_file = self.get_temp_file('json') + expected_file = self.get_test_loc('plugin/pubspec-expected.json', must_exist=False) + run_scan_click(['--package', '--strip-root', '--processes', '-1', test_dir, '--json', result_file]) + check_json_scan(expected_file, result_file, regen=False) From 5063b12bec1b2b1996942f28732c5d1fcd589d69 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Mon, 12 Jul 2021 15:46:31 +0200 Subject: [PATCH 590/709] Add support for pub lockfiles #2110 Signed-off-by: Philippe Ombredanne --- src/packagedcode/pubspec.py | 186 +++++- .../data/pubspec/locks/dart-pubspec.lock | 397 ++++++++++++ .../locks/dart-pubspec.lock-expected.json | 493 +++++++++++++++ .../data/pubspec/locks/stock-pubspec.lock | 285 +++++++++ .../locks/stock-pubspec.lock-expected.json | 381 +++++++++++ .../data/pubspec/locks/weather-pubspec.lock | 482 ++++++++++++++ .../locks/weather-pubspec.lock-expected.json | 597 ++++++++++++++++++ .../data/pubspec/mini-pubspec.lock | 41 ++ .../pubspec/mini-pubspec.lock-expected.json | 93 +++ tests/packagedcode/packages_test_utils.py | 3 +- tests/packagedcode/test_plugin.py | 11 +- tests/packagedcode/test_pubspec.py | 19 +- 12 files changed, 2956 insertions(+), 32 deletions(-) create mode 100644 tests/packagedcode/data/pubspec/locks/dart-pubspec.lock create mode 100644 tests/packagedcode/data/pubspec/locks/dart-pubspec.lock-expected.json create mode 100644 tests/packagedcode/data/pubspec/locks/stock-pubspec.lock create mode 100644 tests/packagedcode/data/pubspec/locks/stock-pubspec.lock-expected.json create mode 100644 tests/packagedcode/data/pubspec/locks/weather-pubspec.lock create mode 100644 tests/packagedcode/data/pubspec/locks/weather-pubspec.lock-expected.json create mode 100644 tests/packagedcode/data/pubspec/mini-pubspec.lock create mode 100644 tests/packagedcode/data/pubspec/mini-pubspec.lock-expected.json diff --git a/src/packagedcode/pubspec.py b/src/packagedcode/pubspec.py index c7f885a06dd..b7057847257 100644 --- a/src/packagedcode/pubspec.py +++ b/src/packagedcode/pubspec.py @@ -9,6 +9,7 @@ import logging import sys +import warnings import attr import saneyaml @@ -58,8 +59,8 @@ def logger_debug(*args): @attr.s() class PubspecPackage(models.Package): - metafiles = ('pubspec.yaml',) - extensions = ('.yaml',) + metafiles = ('pubspec.yaml', 'pubspec.lock',) + extensions = ('.yaml', '.lock',) default_type = 'pubspec' default_primary_language = 'dart' default_web_baseurl = 'https://pub.dev/packages' @@ -68,7 +69,10 @@ class PubspecPackage(models.Package): @classmethod def recognize(cls, location): - yield parse_pub(location) + if is_pubspec_yaml(location): + yield parse_pub(location) + elif is_pubspec_lock(location): + yield parse_lock(location) def repository_homepage_url(self, baseurl=default_web_baseurl): return f'{baseurl}/{self.name}/versions/{self.version}' @@ -116,7 +120,7 @@ def parse_pub(location, compute_normalized_license=False): Return a PubspecPackage constructed from the pubspec.yaml file at ``location`` or None. """ - if not is_pubspec(location): + if not is_pubspec_yaml(location): return with open(location) as inp: package_data = saneyaml.load(inp.read()) @@ -127,44 +131,172 @@ def parse_pub(location, compute_normalized_license=False): return package -def is_pubspec(location): +def file_endswith(location, endswith): """ - Check if the file is a yaml file or not + Check if the file at ``location`` ends with ``endswith`` string or tuple. """ - return filetype.is_file(location) and location.endswith('pubspec.yaml') + return filetype.is_file(location) and location.endswith(endswith) -def collect_deps(data, dependency_field_name, is_runtime=True, is_optional=False): +def is_pubspec_yaml(location): + return file_endswith(location, 'pubspec.yaml') + + +def is_pubspec_lock(location): + return file_endswith(location, 'pubspec.lock') + + +def parse_lock(location): """ - Yield DependentPackage found in the ``dependency_field_name`` of ``data`` + Yield PubspecPackages dependencies constructed from the pubspec.lock file at + ``location``. + """ + if not is_pubspec_lock(location): + return + + with open(location) as inp: + locks_data = saneyaml.load(inp.read()) + + return PubspecPackage(dependencies=list(collect_locks(locks_data))) + + +def collect_locks(locks_data): + """ + Yield DependentPackage from locks data + + The general form is + packages: + _fe_analyzer_shared: + dependency: transitive + description: + name: _fe_analyzer_shared + url: "https://pub.dartlang.org" + source: hosted + version: "22.0.0" + sdks: + dart: ">=2.12.0 <3.0.0" + """ + # FIXME: we treat all as nno optioanl for now + sdks = locks_data.get('sdks') or {} + for name, version in sdks.items(): + dep = build_dep( + name, + version, + scope='sdk', + is_runtime=True, + is_optional=False, + ) + yield dep + + packages = locks_data.get('packages') or {} + for name, details in packages.items(): + version = details.get('version') + + # FIXME: see https://github.com/dart-lang/pub/blob/2a08832e0b997ff92de65571b6d79a9b9099faa0/lib/src/lock_file.dart#L344 + # transitive, direct main, direct dev, direct overridden. + # they do not map exactly to the pubspec scopes since transitive can be + # either main or dev + scope = details.get('dependency') + if scope == 'direct dev': + is_runtime = False + else: + is_runtime = True + + desc = details.get('description') or {} + known_desc = isinstance(desc, dict) + + # issue a warning for unknown data structure + warn = False + if not known_desc: + if not (isinstance(desc, str) and desc == 'flutter'): + warn = True + else: + dname = desc.get('name') + durl = desc.get('url') + dsource = details.get('source') + + if ( + (dname and dname != name) + or (durl and durl != 'https://pub.dartlang.org') + or (dsource and dsource not in ['hosted', 'sdk', ]) + ): + warn = True + + if warn: + warnings.warn( + f'Dart pubspec.locks with unsupported external repo ' + f'description or source: {details}', + stacklevel=1, + ) + + dep = build_dep( + name, + version, + scope=scope, + is_runtime=is_runtime, + is_optional=False, + ) + yield dep + + +def collect_deps(data, dependency_field_name, is_runtime=True, is_optional=False): """ + Yield DependentPackage found in the ``dependency_field_name`` of ``data``. + Use is_runtime and is_optional in created DependentPackage. + The shape of the data is: + dependencies: + path: 1.7.0 + meta: ^1.2.4 + yaml: ^3.1.0 + + environment: + sdk: '>=2.12.0 <3.0.0' + """ # TODO: these can be more complex for SDKs # https://dart.dev/tools/pub/dependencies#dependency-sources - dependencies = data.get(dependency_field_name) or {} for name, version in dependencies.items(): - if isinstance(version, dict) and 'sdk' in version: - # {'sdk': 'flutter'} type of deps.... - # which is a wart that we keep as a requiremnet - version = ', '.join(': '.join([k, str(v)]) for k, v in version.items()) - - if version.replace('.', '').isdigit(): - # version is pinned exactly if it is only made of dots and digits - purl = PackageURL(type='pubspec', name=name, version=version) - is_resolved = True - else: - purl = PackageURL(type='pubspec', name=name) - is_resolved = False - - yield models.DependentPackage( - purl=purl.to_string(), - requirement=version, + dep = build_dep( + name, + version, scope=dependency_field_name, is_runtime=is_runtime, is_optional=is_optional, - is_resolved=is_resolved, ) + yield dep + + +def build_dep(name, version, scope, is_runtime=True, is_optional=False): + """ + Return DependentPackage from the provided data. + """ + + # TODO: these can be more complex for SDKs + # https://dart.dev/tools/pub/dependencies#dependency-sources + + if isinstance(version, dict) and 'sdk' in version: + # {'sdk': 'flutter'} type of deps.... + # which is a wart that we keep as a requiremnet + version = ', '.join(': '.join([k, str(v)]) for k, v in version.items()) + + if version.replace('.', '').isdigit(): + # version is pinned exactly if it is only made of dots and digits + purl = PackageURL(type='pubspec', name=name, version=version) + is_resolved = True + else: + purl = PackageURL(type='pubspec', name=name) + is_resolved = False + + dep = models.DependentPackage( + purl=purl.to_string(), + requirement=version, + scope=scope, + is_runtime=is_runtime, + is_optional=is_optional, + is_resolved=is_resolved, + ) + return dep def build_package(pubspec_data): diff --git a/tests/packagedcode/data/pubspec/locks/dart-pubspec.lock b/tests/packagedcode/data/pubspec/locks/dart-pubspec.lock new file mode 100644 index 00000000000..ed8114f1577 --- /dev/null +++ b/tests/packagedcode/data/pubspec/locks/dart-pubspec.lock @@ -0,0 +1,397 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + _fe_analyzer_shared: + dependency: transitive + description: + name: _fe_analyzer_shared + url: "https://pub.dartlang.org" + source: hosted + version: "22.0.0" + analyzer: + dependency: "direct main" + description: + name: analyzer + url: "https://pub.dartlang.org" + source: hosted + version: "1.7.1" + args: + dependency: transitive + description: + name: args + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.1" + async: + dependency: transitive + description: + name: async + url: "https://pub.dartlang.org" + source: hosted + version: "2.7.0" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + charcode: + dependency: transitive + description: + name: charcode + url: "https://pub.dartlang.org" + source: hosted + version: "1.3.1" + cli_util: + dependency: transitive + description: + name: cli_util + url: "https://pub.dartlang.org" + source: hosted + version: "0.3.2" + collection: + dependency: transitive + description: + name: collection + url: "https://pub.dartlang.org" + source: hosted + version: "1.15.0" + convert: + dependency: transitive + description: + name: convert + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.1" + coverage: + dependency: transitive + description: + name: coverage + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.3" + crypto: + dependency: transitive + description: + name: crypto + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.1" + csslib: + dependency: transitive + description: + name: csslib + url: "https://pub.dartlang.org" + source: hosted + version: "0.17.0" + dartdoc: + dependency: "direct main" + description: + name: dartdoc + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.0" + file: + dependency: transitive + description: + name: file + url: "https://pub.dartlang.org" + source: hosted + version: "6.1.2" + frontend_server_client: + dependency: transitive + description: + name: frontend_server_client + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + glob: + dependency: transitive + description: + name: glob + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.1" + html: + dependency: transitive + description: + name: html + url: "https://pub.dartlang.org" + source: hosted + version: "0.15.0" + http: + dependency: "direct dev" + description: + name: http + url: "https://pub.dartlang.org" + source: hosted + version: "0.13.3" + http_multi_server: + dependency: transitive + description: + name: http_multi_server + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.1" + http_parser: + dependency: transitive + description: + name: http_parser + url: "https://pub.dartlang.org" + source: hosted + version: "4.0.0" + io: + dependency: transitive + description: + name: io + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.2" + js: + dependency: transitive + description: + name: js + url: "https://pub.dartlang.org" + source: hosted + version: "0.6.3" + json_annotation: + dependency: transitive + description: + name: json_annotation + url: "https://pub.dartlang.org" + source: hosted + version: "4.0.1" + logging: + dependency: transitive + description: + name: logging + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.1" + markdown: + dependency: transitive + description: + name: markdown + url: "https://pub.dartlang.org" + source: hosted + version: "4.0.0" + matcher: + dependency: transitive + description: + name: matcher + url: "https://pub.dartlang.org" + source: hosted + version: "0.12.10" + meta: + dependency: "direct main" + description: + name: meta + url: "https://pub.dartlang.org" + source: hosted + version: "1.3.0" + mime: + dependency: transitive + description: + name: mime + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.0" + node_preamble: + dependency: transitive + description: + name: node_preamble + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.1" + package_config: + dependency: transitive + description: + name: package_config + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.0" + path: + dependency: "direct main" + description: + name: path + url: "https://pub.dartlang.org" + source: hosted + version: "1.8.0" + pedantic: + dependency: transitive + description: + name: pedantic + url: "https://pub.dartlang.org" + source: hosted + version: "1.11.1" + pool: + dependency: transitive + description: + name: pool + url: "https://pub.dartlang.org" + source: hosted + version: "1.5.0" + pub_dartdoc_data: + dependency: "direct main" + description: + path: "../pub_dartdoc_data" + relative: true + source: path + version: "0.0.0" + pub_semver: + dependency: transitive + description: + name: pub_semver + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.0" + shelf: + dependency: transitive + description: + name: shelf + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.4" + shelf_packages_handler: + dependency: transitive + description: + name: shelf_packages_handler + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.0" + shelf_static: + dependency: transitive + description: + name: shelf_static + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.0" + shelf_web_socket: + dependency: transitive + description: + name: shelf_web_socket + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.1" + source_map_stack_trace: + dependency: transitive + description: + name: source_map_stack_trace + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + source_maps: + dependency: transitive + description: + name: source_maps + url: "https://pub.dartlang.org" + source: hosted + version: "0.10.10" + source_span: + dependency: transitive + description: + name: source_span + url: "https://pub.dartlang.org" + source: hosted + version: "1.8.1" + stack_trace: + dependency: transitive + description: + name: stack_trace + url: "https://pub.dartlang.org" + source: hosted + version: "1.10.0" + stream_channel: + dependency: transitive + description: + name: stream_channel + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + string_scanner: + dependency: transitive + description: + name: string_scanner + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" + tar: + dependency: "direct dev" + description: + name: tar + url: "https://pub.dartlang.org" + source: hosted + version: "0.4.0" + term_glyph: + dependency: transitive + description: + name: term_glyph + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" + test: + dependency: "direct dev" + description: + name: test + url: "https://pub.dartlang.org" + source: hosted + version: "1.17.9" + test_api: + dependency: transitive + description: + name: test_api + url: "https://pub.dartlang.org" + source: hosted + version: "0.4.1" + test_core: + dependency: transitive + description: + name: test_core + url: "https://pub.dartlang.org" + source: hosted + version: "0.3.29" + typed_data: + dependency: transitive + description: + name: typed_data + url: "https://pub.dartlang.org" + source: hosted + version: "1.3.0" + vm_service: + dependency: transitive + description: + name: vm_service + url: "https://pub.dartlang.org" + source: hosted + version: "7.1.0" + watcher: + dependency: transitive + description: + name: watcher + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.0" + web_socket_channel: + dependency: transitive + description: + name: web_socket_channel + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + webkit_inspection_protocol: + dependency: transitive + description: + name: webkit_inspection_protocol + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.0" + yaml: + dependency: transitive + description: + name: yaml + url: "https://pub.dartlang.org" + source: hosted + version: "3.1.0" +sdks: + dart: ">=2.12.0 <3.0.0" diff --git a/tests/packagedcode/data/pubspec/locks/dart-pubspec.lock-expected.json b/tests/packagedcode/data/pubspec/locks/dart-pubspec.lock-expected.json new file mode 100644 index 00000000000..b11d9f5d81b --- /dev/null +++ b/tests/packagedcode/data/pubspec/locks/dart-pubspec.lock-expected.json @@ -0,0 +1,493 @@ +{ + "type": "pubspec", + "namespace": null, + "name": null, + "version": null, + "qualifiers": {}, + "subpath": null, + "primary_language": "dart", + "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, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:pubspec/dart", + "requirement": ">=2.12.0 <3.0.0", + "scope": "sdk", + "is_runtime": true, + "is_optional": false, + "is_resolved": false + }, + { + "purl": "pkg:pubspec/_fe_analyzer_shared@22.0.0", + "requirement": "22.0.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/analyzer@1.7.1", + "requirement": "1.7.1", + "scope": "direct main", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/args@2.1.1", + "requirement": "2.1.1", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/async@2.7.0", + "requirement": "2.7.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/boolean_selector@2.1.0", + "requirement": "2.1.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/charcode@1.3.1", + "requirement": "1.3.1", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/cli_util@0.3.2", + "requirement": "0.3.2", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/collection@1.15.0", + "requirement": "1.15.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/convert@3.0.1", + "requirement": "3.0.1", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/coverage@1.0.3", + "requirement": "1.0.3", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/crypto@3.0.1", + "requirement": "3.0.1", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/csslib@0.17.0", + "requirement": "0.17.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/dartdoc@1.0.0", + "requirement": "1.0.0", + "scope": "direct main", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/file@6.1.2", + "requirement": "6.1.2", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/frontend_server_client@2.1.0", + "requirement": "2.1.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/glob@2.0.1", + "requirement": "2.0.1", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/html@0.15.0", + "requirement": "0.15.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/http@0.13.3", + "requirement": "0.13.3", + "scope": "direct dev", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/http_multi_server@3.0.1", + "requirement": "3.0.1", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/http_parser@4.0.0", + "requirement": "4.0.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/io@1.0.2", + "requirement": "1.0.2", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/js@0.6.3", + "requirement": "0.6.3", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/json_annotation@4.0.1", + "requirement": "4.0.1", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/logging@1.0.1", + "requirement": "1.0.1", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/markdown@4.0.0", + "requirement": "4.0.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/matcher@0.12.10", + "requirement": "0.12.10", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/meta@1.3.0", + "requirement": "1.3.0", + "scope": "direct main", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/mime@1.0.0", + "requirement": "1.0.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/node_preamble@2.0.1", + "requirement": "2.0.1", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/package_config@2.0.0", + "requirement": "2.0.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/path@1.8.0", + "requirement": "1.8.0", + "scope": "direct main", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/pedantic@1.11.1", + "requirement": "1.11.1", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/pool@1.5.0", + "requirement": "1.5.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/pub_dartdoc_data@0.0.0", + "requirement": "0.0.0", + "scope": "direct main", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/pub_semver@2.0.0", + "requirement": "2.0.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/shelf@1.1.4", + "requirement": "1.1.4", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/shelf_packages_handler@3.0.0", + "requirement": "3.0.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/shelf_static@1.0.0", + "requirement": "1.0.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/shelf_web_socket@1.0.1", + "requirement": "1.0.1", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/source_map_stack_trace@2.1.0", + "requirement": "2.1.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/source_maps@0.10.10", + "requirement": "0.10.10", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/source_span@1.8.1", + "requirement": "1.8.1", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/stack_trace@1.10.0", + "requirement": "1.10.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/stream_channel@2.1.0", + "requirement": "2.1.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/string_scanner@1.1.0", + "requirement": "1.1.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/tar@0.4.0", + "requirement": "0.4.0", + "scope": "direct dev", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/term_glyph@1.2.0", + "requirement": "1.2.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/test@1.17.9", + "requirement": "1.17.9", + "scope": "direct dev", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/test_api@0.4.1", + "requirement": "0.4.1", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/test_core@0.3.29", + "requirement": "0.3.29", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/typed_data@1.3.0", + "requirement": "1.3.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/vm_service@7.1.0", + "requirement": "7.1.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/watcher@1.0.0", + "requirement": "1.0.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/web_socket_channel@2.1.0", + "requirement": "2.1.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/webkit_inspection_protocol@1.0.0", + "requirement": "1.0.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/yaml@3.1.0", + "requirement": "3.1.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": null, + "repository_homepage_url": "https://pub.dev/packages/None/versions/None", + "repository_download_url": "https://pub.dartlang.org/packages/None/versions/None.tar.gz", + "api_data_url": "https://pub.dev/api/packages/None/versions/None" +} \ No newline at end of file diff --git a/tests/packagedcode/data/pubspec/locks/stock-pubspec.lock b/tests/packagedcode/data/pubspec/locks/stock-pubspec.lock new file mode 100644 index 00000000000..a20315a5f07 --- /dev/null +++ b/tests/packagedcode/data/pubspec/locks/stock-pubspec.lock @@ -0,0 +1,285 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + async: + dependency: transitive + description: + name: async + url: "https://pub.dartlang.org" + source: hosted + version: "2.6.1" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + characters: + dependency: transitive + description: + name: characters + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" + charcode: + dependency: transitive + description: + name: charcode + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" + clock: + dependency: transitive + description: + name: clock + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" + collection: + dependency: transitive + description: + name: collection + url: "https://pub.dartlang.org" + source: hosted + version: "1.15.0" + cupertino_icons: + dependency: "direct main" + description: + name: cupertino_icons + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.3" + equatable: + dependency: transitive + description: + name: equatable + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.3" + fake_async: + dependency: transitive + description: + name: fake_async + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" + firebase_auth: + dependency: "direct main" + description: + name: firebase_auth + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.0" + firebase_auth_platform_interface: + dependency: transitive + description: + name: firebase_auth_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "5.0.0" + firebase_auth_web: + dependency: transitive + description: + name: firebase_auth_web + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.0" + firebase_core: + dependency: "direct main" + description: + name: firebase_core + url: "https://pub.dartlang.org" + source: hosted + version: "1.3.0" + firebase_core_platform_interface: + dependency: transitive + description: + name: firebase_core_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "4.0.1" + firebase_core_web: + dependency: transitive + description: + name: firebase_core_web + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" + fl_chart: + dependency: "direct main" + description: + name: fl_chart + url: "https://pub.dartlang.org" + source: hosted + version: "0.36.2" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_svg: + dependency: "direct main" + description: + name: flutter_svg + url: "https://pub.dartlang.org" + source: hosted + version: "0.22.0" + flutter_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + flutter_web_plugins: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + http_parser: + dependency: transitive + description: + name: http_parser + url: "https://pub.dartlang.org" + source: hosted + version: "4.0.0" + intl: + dependency: transitive + description: + name: intl + url: "https://pub.dartlang.org" + source: hosted + version: "0.17.0" + js: + dependency: transitive + description: + name: js + url: "https://pub.dartlang.org" + source: hosted + version: "0.6.3" + matcher: + dependency: transitive + description: + name: matcher + url: "https://pub.dartlang.org" + source: hosted + version: "0.12.10" + meta: + dependency: transitive + description: + name: meta + url: "https://pub.dartlang.org" + source: hosted + version: "1.3.0" + path: + dependency: transitive + description: + name: path + url: "https://pub.dartlang.org" + source: hosted + version: "1.8.0" + path_drawing: + dependency: transitive + description: + name: path_drawing + url: "https://pub.dartlang.org" + source: hosted + version: "0.5.1" + path_parsing: + dependency: transitive + description: + name: path_parsing + url: "https://pub.dartlang.org" + source: hosted + version: "0.2.1" + pedantic: + dependency: transitive + description: + name: pedantic + url: "https://pub.dartlang.org" + source: hosted + version: "1.11.1" + petitparser: + dependency: transitive + description: + name: petitparser + url: "https://pub.dartlang.org" + source: hosted + version: "4.1.0" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.1" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.99" + source_span: + dependency: transitive + description: + name: source_span + url: "https://pub.dartlang.org" + source: hosted + version: "1.8.1" + stack_trace: + dependency: transitive + description: + name: stack_trace + url: "https://pub.dartlang.org" + source: hosted + version: "1.10.0" + stream_channel: + dependency: transitive + description: + name: stream_channel + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + string_scanner: + dependency: transitive + description: + name: string_scanner + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" + term_glyph: + dependency: transitive + description: + name: term_glyph + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" + test_api: + dependency: transitive + description: + name: test_api + url: "https://pub.dartlang.org" + source: hosted + version: "0.3.0" + typed_data: + dependency: transitive + description: + name: typed_data + url: "https://pub.dartlang.org" + source: hosted + version: "1.3.0" + vector_math: + dependency: transitive + description: + name: vector_math + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + xml: + dependency: transitive + description: + name: xml + url: "https://pub.dartlang.org" + source: hosted + version: "5.1.2" +sdks: + dart: ">=2.12.0 <3.0.0" + flutter: ">=1.24.0-7.0" diff --git a/tests/packagedcode/data/pubspec/locks/stock-pubspec.lock-expected.json b/tests/packagedcode/data/pubspec/locks/stock-pubspec.lock-expected.json new file mode 100644 index 00000000000..2db590a08b3 --- /dev/null +++ b/tests/packagedcode/data/pubspec/locks/stock-pubspec.lock-expected.json @@ -0,0 +1,381 @@ +{ + "type": "pubspec", + "namespace": null, + "name": null, + "version": null, + "qualifiers": {}, + "subpath": null, + "primary_language": "dart", + "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, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:pubspec/dart", + "requirement": ">=2.12.0 <3.0.0", + "scope": "sdk", + "is_runtime": true, + "is_optional": false, + "is_resolved": false + }, + { + "purl": "pkg:pubspec/flutter", + "requirement": ">=1.24.0-7.0", + "scope": "sdk", + "is_runtime": true, + "is_optional": false, + "is_resolved": false + }, + { + "purl": "pkg:pubspec/async@2.6.1", + "requirement": "2.6.1", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/boolean_selector@2.1.0", + "requirement": "2.1.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/characters@1.1.0", + "requirement": "1.1.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/charcode@1.2.0", + "requirement": "1.2.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/clock@1.1.0", + "requirement": "1.1.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/collection@1.15.0", + "requirement": "1.15.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/cupertino_icons@1.0.3", + "requirement": "1.0.3", + "scope": "direct main", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/equatable@2.0.3", + "requirement": "2.0.3", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/fake_async@1.2.0", + "requirement": "1.2.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/firebase_auth@2.0.0", + "requirement": "2.0.0", + "scope": "direct main", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/firebase_auth_platform_interface@5.0.0", + "requirement": "5.0.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/firebase_auth_web@2.0.0", + "requirement": "2.0.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/firebase_core@1.3.0", + "requirement": "1.3.0", + "scope": "direct main", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/firebase_core_platform_interface@4.0.1", + "requirement": "4.0.1", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/firebase_core_web@1.1.0", + "requirement": "1.1.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/fl_chart@0.36.2", + "requirement": "0.36.2", + "scope": "direct main", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/flutter@0.0.0", + "requirement": "0.0.0", + "scope": "direct main", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/flutter_svg@0.22.0", + "requirement": "0.22.0", + "scope": "direct main", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/flutter_test@0.0.0", + "requirement": "0.0.0", + "scope": "direct dev", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/flutter_web_plugins@0.0.0", + "requirement": "0.0.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/http_parser@4.0.0", + "requirement": "4.0.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/intl@0.17.0", + "requirement": "0.17.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/js@0.6.3", + "requirement": "0.6.3", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/matcher@0.12.10", + "requirement": "0.12.10", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/meta@1.3.0", + "requirement": "1.3.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/path@1.8.0", + "requirement": "1.8.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/path_drawing@0.5.1", + "requirement": "0.5.1", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/path_parsing@0.2.1", + "requirement": "0.2.1", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/pedantic@1.11.1", + "requirement": "1.11.1", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/petitparser@4.1.0", + "requirement": "4.1.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/plugin_platform_interface@2.0.1", + "requirement": "2.0.1", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/sky_engine@0.0.99", + "requirement": "0.0.99", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/source_span@1.8.1", + "requirement": "1.8.1", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/stack_trace@1.10.0", + "requirement": "1.10.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/stream_channel@2.1.0", + "requirement": "2.1.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/string_scanner@1.1.0", + "requirement": "1.1.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/term_glyph@1.2.0", + "requirement": "1.2.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/test_api@0.3.0", + "requirement": "0.3.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/typed_data@1.3.0", + "requirement": "1.3.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/vector_math@2.1.0", + "requirement": "2.1.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/xml@5.1.2", + "requirement": "5.1.2", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": null, + "repository_homepage_url": "https://pub.dev/packages/None/versions/None", + "repository_download_url": "https://pub.dartlang.org/packages/None/versions/None.tar.gz", + "api_data_url": "https://pub.dev/api/packages/None/versions/None" +} \ No newline at end of file diff --git a/tests/packagedcode/data/pubspec/locks/weather-pubspec.lock b/tests/packagedcode/data/pubspec/locks/weather-pubspec.lock new file mode 100644 index 00000000000..d349892878e --- /dev/null +++ b/tests/packagedcode/data/pubspec/locks/weather-pubspec.lock @@ -0,0 +1,482 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + _fe_analyzer_shared: + dependency: transitive + description: + name: _fe_analyzer_shared + url: "https://pub.dartlang.org" + source: hosted + version: "22.0.0" + analyzer: + dependency: transitive + description: + name: analyzer + url: "https://pub.dartlang.org" + source: hosted + version: "1.7.1" + args: + dependency: transitive + description: + name: args + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.1" + async: + dependency: transitive + description: + name: async + url: "https://pub.dartlang.org" + source: hosted + version: "2.6.1" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + build: + dependency: transitive + description: + name: build + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.2" + build_config: + dependency: transitive + description: + name: build_config + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.0" + build_daemon: + dependency: transitive + description: + name: build_daemon + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.0" + build_resolvers: + dependency: transitive + description: + name: build_resolvers + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.3" + build_runner: + dependency: "direct dev" + description: + name: build_runner + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.5" + build_runner_core: + dependency: transitive + description: + name: build_runner_core + url: "https://pub.dartlang.org" + source: hosted + version: "7.0.0" + built_collection: + dependency: "direct main" + description: + name: built_collection + url: "https://pub.dartlang.org" + source: hosted + version: "5.1.0" + built_value: + dependency: "direct main" + description: + name: built_value + url: "https://pub.dartlang.org" + source: hosted + version: "8.1.0" + built_value_generator: + dependency: "direct dev" + description: + name: built_value_generator + url: "https://pub.dartlang.org" + source: hosted + version: "8.1.0" + characters: + dependency: transitive + description: + name: characters + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" + charcode: + dependency: transitive + description: + name: charcode + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" + checked_yaml: + dependency: transitive + description: + name: checked_yaml + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.1" + cli_util: + dependency: transitive + description: + name: cli_util + url: "https://pub.dartlang.org" + source: hosted + version: "0.3.2" + clock: + dependency: transitive + description: + name: clock + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" + code_builder: + dependency: transitive + description: + name: code_builder + url: "https://pub.dartlang.org" + source: hosted + version: "4.0.0" + collection: + dependency: transitive + description: + name: collection + url: "https://pub.dartlang.org" + source: hosted + version: "1.15.0" + convert: + dependency: transitive + description: + name: convert + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.1" + crypto: + dependency: transitive + description: + name: crypto + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.1" + cupertino_icons: + dependency: "direct main" + description: + name: cupertino_icons + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.3" + dart_style: + dependency: transitive + description: + name: dart_style + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.1" + fake_async: + dependency: transitive + description: + name: fake_async + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" + file: + dependency: transitive + description: + name: file + url: "https://pub.dartlang.org" + source: hosted + version: "6.1.2" + fixnum: + dependency: transitive + description: + name: fixnum + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.0" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_redux: + dependency: "direct main" + description: + name: flutter_redux + url: "https://pub.dartlang.org" + source: hosted + version: "0.8.2" + flutter_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + frontend_server_client: + dependency: transitive + description: + name: frontend_server_client + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + glob: + dependency: transitive + description: + name: glob + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.1" + graphs: + dependency: transitive + description: + name: graphs + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.0" + http: + dependency: "direct main" + description: + name: http + url: "https://pub.dartlang.org" + source: hosted + version: "0.13.3" + http_multi_server: + dependency: transitive + description: + name: http_multi_server + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.1" + http_parser: + dependency: transitive + description: + name: http_parser + url: "https://pub.dartlang.org" + source: hosted + version: "4.0.0" + io: + dependency: transitive + description: + name: io + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.2" + js: + dependency: transitive + description: + name: js + url: "https://pub.dartlang.org" + source: hosted + version: "0.6.3" + json_annotation: + dependency: transitive + description: + name: json_annotation + url: "https://pub.dartlang.org" + source: hosted + version: "4.0.1" + logging: + dependency: transitive + description: + name: logging + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.1" + matcher: + dependency: transitive + description: + name: matcher + url: "https://pub.dartlang.org" + source: hosted + version: "0.12.10" + meta: + dependency: transitive + description: + name: meta + url: "https://pub.dartlang.org" + source: hosted + version: "1.3.0" + mime: + dependency: transitive + description: + name: mime + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.0" + package_config: + dependency: transitive + description: + name: package_config + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.0" + path: + dependency: transitive + description: + name: path + url: "https://pub.dartlang.org" + source: hosted + version: "1.8.0" + pedantic: + dependency: transitive + description: + name: pedantic + url: "https://pub.dartlang.org" + source: hosted + version: "1.11.1" + pool: + dependency: transitive + description: + name: pool + url: "https://pub.dartlang.org" + source: hosted + version: "1.5.0" + pub_semver: + dependency: transitive + description: + name: pub_semver + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.0" + pubspec_parse: + dependency: transitive + description: + name: pubspec_parse + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.0" + quiver: + dependency: transitive + description: + name: quiver + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.1" + redux: + dependency: "direct main" + description: + name: redux + url: "https://pub.dartlang.org" + source: hosted + version: "5.0.0" + shelf: + dependency: transitive + description: + name: shelf + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.4" + shelf_web_socket: + dependency: transitive + description: + name: shelf_web_socket + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.1" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.99" + source_gen: + dependency: transitive + description: + name: source_gen + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.2" + source_span: + dependency: transitive + description: + name: source_span + url: "https://pub.dartlang.org" + source: hosted + version: "1.8.1" + stack_trace: + dependency: transitive + description: + name: stack_trace + url: "https://pub.dartlang.org" + source: hosted + version: "1.10.0" + stream_channel: + dependency: transitive + description: + name: stream_channel + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + stream_transform: + dependency: transitive + description: + name: stream_transform + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.0" + string_scanner: + dependency: transitive + description: + name: string_scanner + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" + term_glyph: + dependency: transitive + description: + name: term_glyph + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" + test_api: + dependency: transitive + description: + name: test_api + url: "https://pub.dartlang.org" + source: hosted + version: "0.3.0" + timing: + dependency: transitive + description: + name: timing + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.0" + typed_data: + dependency: transitive + description: + name: typed_data + url: "https://pub.dartlang.org" + source: hosted + version: "1.3.0" + vector_math: + dependency: transitive + description: + name: vector_math + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + watcher: + dependency: transitive + description: + name: watcher + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.0" + web_socket_channel: + dependency: transitive + description: + name: web_socket_channel + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + yaml: + dependency: transitive + description: + name: yaml + url: "https://pub.dartlang.org" + source: hosted + version: "3.1.0" +sdks: + dart: ">=2.12.0 <3.0.0" diff --git a/tests/packagedcode/data/pubspec/locks/weather-pubspec.lock-expected.json b/tests/packagedcode/data/pubspec/locks/weather-pubspec.lock-expected.json new file mode 100644 index 00000000000..712879d5eb8 --- /dev/null +++ b/tests/packagedcode/data/pubspec/locks/weather-pubspec.lock-expected.json @@ -0,0 +1,597 @@ +{ + "type": "pubspec", + "namespace": null, + "name": null, + "version": null, + "qualifiers": {}, + "subpath": null, + "primary_language": "dart", + "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, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:pubspec/dart", + "requirement": ">=2.12.0 <3.0.0", + "scope": "sdk", + "is_runtime": true, + "is_optional": false, + "is_resolved": false + }, + { + "purl": "pkg:pubspec/_fe_analyzer_shared@22.0.0", + "requirement": "22.0.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/analyzer@1.7.1", + "requirement": "1.7.1", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/args@2.1.1", + "requirement": "2.1.1", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/async@2.6.1", + "requirement": "2.6.1", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/boolean_selector@2.1.0", + "requirement": "2.1.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/build@2.0.2", + "requirement": "2.0.2", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/build_config@1.0.0", + "requirement": "1.0.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/build_daemon@3.0.0", + "requirement": "3.0.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/build_resolvers@2.0.3", + "requirement": "2.0.3", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/build_runner@2.0.5", + "requirement": "2.0.5", + "scope": "direct dev", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/build_runner_core@7.0.0", + "requirement": "7.0.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/built_collection@5.1.0", + "requirement": "5.1.0", + "scope": "direct main", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/built_value@8.1.0", + "requirement": "8.1.0", + "scope": "direct main", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/built_value_generator@8.1.0", + "requirement": "8.1.0", + "scope": "direct dev", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/characters@1.1.0", + "requirement": "1.1.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/charcode@1.2.0", + "requirement": "1.2.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/checked_yaml@2.0.1", + "requirement": "2.0.1", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/cli_util@0.3.2", + "requirement": "0.3.2", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/clock@1.1.0", + "requirement": "1.1.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/code_builder@4.0.0", + "requirement": "4.0.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/collection@1.15.0", + "requirement": "1.15.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/convert@3.0.1", + "requirement": "3.0.1", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/crypto@3.0.1", + "requirement": "3.0.1", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/cupertino_icons@1.0.3", + "requirement": "1.0.3", + "scope": "direct main", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/dart_style@2.0.1", + "requirement": "2.0.1", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/fake_async@1.2.0", + "requirement": "1.2.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/file@6.1.2", + "requirement": "6.1.2", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/fixnum@1.0.0", + "requirement": "1.0.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/flutter@0.0.0", + "requirement": "0.0.0", + "scope": "direct main", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/flutter_redux@0.8.2", + "requirement": "0.8.2", + "scope": "direct main", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/flutter_test@0.0.0", + "requirement": "0.0.0", + "scope": "direct dev", + "is_runtime": false, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/frontend_server_client@2.1.0", + "requirement": "2.1.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/glob@2.0.1", + "requirement": "2.0.1", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/graphs@2.0.0", + "requirement": "2.0.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/http@0.13.3", + "requirement": "0.13.3", + "scope": "direct main", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/http_multi_server@3.0.1", + "requirement": "3.0.1", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/http_parser@4.0.0", + "requirement": "4.0.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/io@1.0.2", + "requirement": "1.0.2", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/js@0.6.3", + "requirement": "0.6.3", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/json_annotation@4.0.1", + "requirement": "4.0.1", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/logging@1.0.1", + "requirement": "1.0.1", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/matcher@0.12.10", + "requirement": "0.12.10", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/meta@1.3.0", + "requirement": "1.3.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/mime@1.0.0", + "requirement": "1.0.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/package_config@2.0.0", + "requirement": "2.0.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/path@1.8.0", + "requirement": "1.8.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/pedantic@1.11.1", + "requirement": "1.11.1", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/pool@1.5.0", + "requirement": "1.5.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/pub_semver@2.0.0", + "requirement": "2.0.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/pubspec_parse@1.0.0", + "requirement": "1.0.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/quiver@3.0.1", + "requirement": "3.0.1", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/redux@5.0.0", + "requirement": "5.0.0", + "scope": "direct main", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/shelf@1.1.4", + "requirement": "1.1.4", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/shelf_web_socket@1.0.1", + "requirement": "1.0.1", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/sky_engine@0.0.99", + "requirement": "0.0.99", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/source_gen@1.0.2", + "requirement": "1.0.2", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/source_span@1.8.1", + "requirement": "1.8.1", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/stack_trace@1.10.0", + "requirement": "1.10.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/stream_channel@2.1.0", + "requirement": "2.1.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/stream_transform@2.0.0", + "requirement": "2.0.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/string_scanner@1.1.0", + "requirement": "1.1.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/term_glyph@1.2.0", + "requirement": "1.2.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/test_api@0.3.0", + "requirement": "0.3.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/timing@1.0.0", + "requirement": "1.0.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/typed_data@1.3.0", + "requirement": "1.3.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/vector_math@2.1.0", + "requirement": "2.1.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/watcher@1.0.0", + "requirement": "1.0.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/web_socket_channel@2.1.0", + "requirement": "2.1.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/yaml@3.1.0", + "requirement": "3.1.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": null, + "repository_homepage_url": "https://pub.dev/packages/None/versions/None", + "repository_download_url": "https://pub.dartlang.org/packages/None/versions/None.tar.gz", + "api_data_url": "https://pub.dev/api/packages/None/versions/None" +} \ No newline at end of file diff --git a/tests/packagedcode/data/pubspec/mini-pubspec.lock b/tests/packagedcode/data/pubspec/mini-pubspec.lock new file mode 100644 index 00000000000..5464f980ac6 --- /dev/null +++ b/tests/packagedcode/data/pubspec/mini-pubspec.lock @@ -0,0 +1,41 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + async: + dependency: transitive + description: + name: async + url: "https://pub.dartlang.org" + source: hosted + version: "2.6.1" + cupertino_icons: + dependency: "direct main" + description: + name: cupertino_icons + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.3" + equatable: + dependency: transitive + description: + name: equatable + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.3" + fake_async: + dependency: transitive + description: + name: fake_async + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" + firebase_auth: + dependency: "direct main" + description: + name: firebase_auth + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.0" +sdks: + dart: ">=2.12.0 <3.0.0" + flutter: ">=1.24.0-7.0" diff --git a/tests/packagedcode/data/pubspec/mini-pubspec.lock-expected.json b/tests/packagedcode/data/pubspec/mini-pubspec.lock-expected.json new file mode 100644 index 00000000000..2c1b23c1728 --- /dev/null +++ b/tests/packagedcode/data/pubspec/mini-pubspec.lock-expected.json @@ -0,0 +1,93 @@ +{ + "type": "pubspec", + "namespace": null, + "name": null, + "version": null, + "qualifiers": {}, + "subpath": null, + "primary_language": "dart", + "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, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "root_path": null, + "dependencies": [ + { + "purl": "pkg:pubspec/dart", + "requirement": ">=2.12.0 <3.0.0", + "scope": "sdk", + "is_runtime": true, + "is_optional": false, + "is_resolved": false + }, + { + "purl": "pkg:pubspec/flutter", + "requirement": ">=1.24.0-7.0", + "scope": "sdk", + "is_runtime": true, + "is_optional": false, + "is_resolved": false + }, + { + "purl": "pkg:pubspec/async@2.6.1", + "requirement": "2.6.1", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/cupertino_icons@1.0.3", + "requirement": "1.0.3", + "scope": "direct main", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/equatable@2.0.3", + "requirement": "2.0.3", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/fake_async@1.2.0", + "requirement": "1.2.0", + "scope": "transitive", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + }, + { + "purl": "pkg:pubspec/firebase_auth@2.0.0", + "requirement": "2.0.0", + "scope": "direct main", + "is_runtime": true, + "is_optional": false, + "is_resolved": true + } + ], + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "purl": null, + "repository_homepage_url": "https://pub.dev/packages/None/versions/None", + "repository_download_url": "https://pub.dartlang.org/packages/None/versions/None.tar.gz", + "api_data_url": "https://pub.dev/api/packages/None/versions/None" +} \ No newline at end of file diff --git a/tests/packagedcode/packages_test_utils.py b/tests/packagedcode/packages_test_utils.py index f9c39572197..77b53fd2dde 100644 --- a/tests/packagedcode/packages_test_utils.py +++ b/tests/packagedcode/packages_test_utils.py @@ -30,6 +30,8 @@ def check_package_parse( """ manifest_loc = self.get_test_loc(manifest_loc, must_exist=True) package = package_function(manifest_loc) + if not package: + raise Exception(f'Failed to parse package: {manifest_loc}') return self.check_package(package, expected_loc, regen) def check_package(self, package, expected_loc, regen=False): @@ -97,7 +99,6 @@ def get_test_files(location, test_file_suffix): for file_name in files: if not file_name.endswith(test_file_suffix): continue - print(f'Found {file_name}') file_path = os.path.join(base_dir, file_name) file_path = file_path.replace(location, '', 1) diff --git a/tests/packagedcode/test_plugin.py b/tests/packagedcode/test_plugin.py index a0e04c5c3c6..073d14dfaa0 100644 --- a/tests/packagedcode/test_plugin.py +++ b/tests/packagedcode/test_plugin.py @@ -19,7 +19,7 @@ class TestPlugins(PackageTester): test_data_dir = os.path.join(os.path.dirname(__file__), 'data') - def test_package_list_command(self, regen=False): + def test_package_list_command(self, regen=True): expected_file = self.get_test_loc('plugin/help.txt') result = run_scan_click(['--list-packages']) if regen: @@ -145,4 +145,11 @@ def test_package_command_scan_pubspec_package(self): result_file = self.get_temp_file('json') expected_file = self.get_test_loc('plugin/pubspec-expected.json', must_exist=False) run_scan_click(['--package', '--strip-root', '--processes', '-1', test_dir, '--json', result_file]) - check_json_scan(expected_file, result_file, regen=False) + check_json_scan(expected_file, result_file, regen=True) + + def test_package_command_scan_pubspec_lock_package(self): + test_dir = self.get_test_loc('pubspec/locks/dart-pubspec.lock') + result_file = self.get_temp_file('json') + expected_file = self.get_test_loc('plugin/pubspec-lock-expected.json', must_exist=False) + run_scan_click(['--package', '--strip-root', '--processes', '-1', test_dir, '--json', result_file]) + check_json_scan(expected_file, result_file, regen=True) diff --git a/tests/packagedcode/test_pubspec.py b/tests/packagedcode/test_pubspec.py index f1aa3974cfd..b8b520bd8c2 100644 --- a/tests/packagedcode/test_pubspec.py +++ b/tests/packagedcode/test_pubspec.py @@ -11,8 +11,9 @@ from packagedcode import pubspec -from packages_test_utils import PackageTester +from packages_test_utils import check_result_equals_expected_json from packages_test_utils import build_tests +from packages_test_utils import PackageTester test_data_dir = os.path.join(os.path.dirname(__file__), 'data') @@ -20,13 +21,27 @@ class TestPubspecDatadriven(PackageTester): test_data_dir = test_data_dir + def test_parse_lock(self): + test_loc = self.get_test_loc('pubspec/mini-pubspec.lock') + expected_loc = self.get_test_loc('pubspec/mini-pubspec.lock-expected.json', must_exist=False) + result = pubspec.parse_lock(test_loc).to_dict() + check_result_equals_expected_json(result, expected_loc, regen=False) + build_tests( test_dir=os.path.join(test_data_dir, 'pubspec/specs'), clazz=TestPubspecDatadriven, - test_method_prefix='test_maven2_parse_misc_', + test_method_prefix='test_pubspec_yaml', package_function=pubspec.parse_pub, test_file_suffix='pubspec.yaml', regen=False, ) +build_tests( + test_dir=os.path.join(test_data_dir, 'pubspec/locks'), + clazz=TestPubspecDatadriven, + test_method_prefix='test_pubspec_lock', + package_function=pubspec.parse_lock, + test_file_suffix='pubspec.lock', + regen=False, +) From f7c3035075b773638a635c5753976e26e26a6344 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Tue, 13 Jul 2021 10:40:17 +0200 Subject: [PATCH 591/709] Rename test directory Signed-off-by: Philippe Ombredanne --- tests/packagedcode/{bashlex => test_bashlex}/APKBUILD | 0 tests/packagedcode/{bashlex => test_bashlex}/APKBUILD.output | 0 .../packagedcode/{bashlex => test_bashlex}/bsd-simplified.LICENSE | 0 tests/packagedcode/{bashlex => test_bashlex}/conftest.py | 0 tests/packagedcode/{bashlex => test_bashlex}/example.sh | 0 tests/packagedcode/{bashlex => test_bashlex}/example.sh.output | 0 tests/packagedcode/{bashlex => test_bashlex}/ltmain.sh | 0 tests/packagedcode/{bashlex => test_bashlex}/ltmain.sh.output | 0 tests/packagedcode/{bashlex => test_bashlex}/stripheredoc.sh | 0 .../packagedcode/{bashlex => test_bashlex}/stripheredoc.sh.output | 0 .../{bashlex/bashlex.ABOUT => test_bashlex/test_bashlex.ABOUT} | 0 .../bashlex.AUTHORS => test_bashlex/test_bashlex.AUTHORS} | 0 .../{bashlex/bashlex.NOTICE => test_bashlex/test_bashlex.NOTICE} | 0 13 files changed, 0 insertions(+), 0 deletions(-) rename tests/packagedcode/{bashlex => test_bashlex}/APKBUILD (100%) rename tests/packagedcode/{bashlex => test_bashlex}/APKBUILD.output (100%) rename tests/packagedcode/{bashlex => test_bashlex}/bsd-simplified.LICENSE (100%) rename tests/packagedcode/{bashlex => test_bashlex}/conftest.py (100%) rename tests/packagedcode/{bashlex => test_bashlex}/example.sh (100%) rename tests/packagedcode/{bashlex => test_bashlex}/example.sh.output (100%) rename tests/packagedcode/{bashlex => test_bashlex}/ltmain.sh (100%) rename tests/packagedcode/{bashlex => test_bashlex}/ltmain.sh.output (100%) rename tests/packagedcode/{bashlex => test_bashlex}/stripheredoc.sh (100%) rename tests/packagedcode/{bashlex => test_bashlex}/stripheredoc.sh.output (100%) rename tests/packagedcode/{bashlex/bashlex.ABOUT => test_bashlex/test_bashlex.ABOUT} (100%) rename tests/packagedcode/{bashlex/bashlex.AUTHORS => test_bashlex/test_bashlex.AUTHORS} (100%) rename tests/packagedcode/{bashlex/bashlex.NOTICE => test_bashlex/test_bashlex.NOTICE} (100%) diff --git a/tests/packagedcode/bashlex/APKBUILD b/tests/packagedcode/test_bashlex/APKBUILD similarity index 100% rename from tests/packagedcode/bashlex/APKBUILD rename to tests/packagedcode/test_bashlex/APKBUILD diff --git a/tests/packagedcode/bashlex/APKBUILD.output b/tests/packagedcode/test_bashlex/APKBUILD.output similarity index 100% rename from tests/packagedcode/bashlex/APKBUILD.output rename to tests/packagedcode/test_bashlex/APKBUILD.output diff --git a/tests/packagedcode/bashlex/bsd-simplified.LICENSE b/tests/packagedcode/test_bashlex/bsd-simplified.LICENSE similarity index 100% rename from tests/packagedcode/bashlex/bsd-simplified.LICENSE rename to tests/packagedcode/test_bashlex/bsd-simplified.LICENSE diff --git a/tests/packagedcode/bashlex/conftest.py b/tests/packagedcode/test_bashlex/conftest.py similarity index 100% rename from tests/packagedcode/bashlex/conftest.py rename to tests/packagedcode/test_bashlex/conftest.py diff --git a/tests/packagedcode/bashlex/example.sh b/tests/packagedcode/test_bashlex/example.sh similarity index 100% rename from tests/packagedcode/bashlex/example.sh rename to tests/packagedcode/test_bashlex/example.sh diff --git a/tests/packagedcode/bashlex/example.sh.output b/tests/packagedcode/test_bashlex/example.sh.output similarity index 100% rename from tests/packagedcode/bashlex/example.sh.output rename to tests/packagedcode/test_bashlex/example.sh.output diff --git a/tests/packagedcode/bashlex/ltmain.sh b/tests/packagedcode/test_bashlex/ltmain.sh similarity index 100% rename from tests/packagedcode/bashlex/ltmain.sh rename to tests/packagedcode/test_bashlex/ltmain.sh diff --git a/tests/packagedcode/bashlex/ltmain.sh.output b/tests/packagedcode/test_bashlex/ltmain.sh.output similarity index 100% rename from tests/packagedcode/bashlex/ltmain.sh.output rename to tests/packagedcode/test_bashlex/ltmain.sh.output diff --git a/tests/packagedcode/bashlex/stripheredoc.sh b/tests/packagedcode/test_bashlex/stripheredoc.sh similarity index 100% rename from tests/packagedcode/bashlex/stripheredoc.sh rename to tests/packagedcode/test_bashlex/stripheredoc.sh diff --git a/tests/packagedcode/bashlex/stripheredoc.sh.output b/tests/packagedcode/test_bashlex/stripheredoc.sh.output similarity index 100% rename from tests/packagedcode/bashlex/stripheredoc.sh.output rename to tests/packagedcode/test_bashlex/stripheredoc.sh.output diff --git a/tests/packagedcode/bashlex/bashlex.ABOUT b/tests/packagedcode/test_bashlex/test_bashlex.ABOUT similarity index 100% rename from tests/packagedcode/bashlex/bashlex.ABOUT rename to tests/packagedcode/test_bashlex/test_bashlex.ABOUT diff --git a/tests/packagedcode/bashlex/bashlex.AUTHORS b/tests/packagedcode/test_bashlex/test_bashlex.AUTHORS similarity index 100% rename from tests/packagedcode/bashlex/bashlex.AUTHORS rename to tests/packagedcode/test_bashlex/test_bashlex.AUTHORS diff --git a/tests/packagedcode/bashlex/bashlex.NOTICE b/tests/packagedcode/test_bashlex/test_bashlex.NOTICE similarity index 100% rename from tests/packagedcode/bashlex/bashlex.NOTICE rename to tests/packagedcode/test_bashlex/test_bashlex.NOTICE From 65f563338a6b3135dffab179b83ff895507a0491 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Tue, 13 Jul 2021 13:36:17 +0200 Subject: [PATCH 592/709] Add simple shell parser This can parse shell scripts to extract and expand variables. Signed-off-by: Philippe Ombredanne --- requirements.txt | 1 + setup-mini.cfg | 1 + setup.cfg | 1 + src/packagedcode/bashparse.py | 225 ++++++++++++++++++++++++++ tests/packagedcode/test_bashparse.py | 228 +++++++++++++++++++++++++++ 5 files changed, 456 insertions(+) create mode 100644 src/packagedcode/bashparse.py create mode 100644 tests/packagedcode/test_bashparse.py diff --git a/requirements.txt b/requirements.txt index c1d651ffa75..d176612ac09 100644 --- a/requirements.txt +++ b/requirements.txt @@ -38,6 +38,7 @@ normality==2.2.2 packageurl-python==0.9.4 packaging==20.9 patch==1.16 +parameter_expansion==0.2.0 pdfminer.six==20201018 pefile==2021.5.24 pip==21.1.2 diff --git a/setup-mini.cfg b/setup-mini.cfg index ec2d621ac11..9a2564f0455 100644 --- a/setup-mini.cfg +++ b/setup-mini.cfg @@ -78,6 +78,7 @@ install_requires = MarkupSafe >= 1.0 packageurl_python >= 0.9.0 packaging > 20 + parameter_expansion >= 0.2.0 pdfminer.six >= 20200101 pefile >= 2020.1.1 pkginfo >= 1.7.0 diff --git a/setup.cfg b/setup.cfg index 2feabb51794..e6c84dc7a89 100644 --- a/setup.cfg +++ b/setup.cfg @@ -78,6 +78,7 @@ install_requires = MarkupSafe >= 1.0 packageurl_python >= 0.9.0 packaging > 20 + parameter_expansion >= 0.2.0 pdfminer.six >= 20200101 pefile >= 2020.1.1 pkginfo >= 1.7.0 diff --git a/src/packagedcode/bashparse.py b/src/packagedcode/bashparse.py new file mode 100644 index 00000000000..aa5b4920b91 --- /dev/null +++ b/src/packagedcode/bashparse.py @@ -0,0 +1,225 @@ +# +# Copyright (c) nexB Inc. and others. All rights reserved. +# ScanCode is a trademark of nexB Inc. +# SPDX-License-Identifier: Apache-2.0 +# See http://www.apache.org/licenses/LICENSE-2.0 for the license text. +# See https://github.com/nexB/scancode-toolkit for support or download. +# See https://aboutcode.org for more information about nexB OSS projects. +# + +import os + +import attr +from parameter_expansion import pe +from pygmars import parse +from pygmars import Token +from pygmars import tree + +from packagedcode.bashlex import BashShellLexer + +""" +Extract and resolve variable from a Bash or shell script. +""" + +# Tracing flags +TRACE = False or os.environ.get('SCANCODE_DEBUG_BASHPARSE', False) +if TRACE: + TRACE = int(TRACE) + +VALIDATE = False or os.environ.get('SCANCODE_DEBUG_BASHPARSE_VALIDATE', False) + + +# Tracing flags +def logger_debug(*args): + pass + + +if TRACE: + import logging + import sys + + logger = logging.getLogger(__name__) + logging.basicConfig(stream=sys.stdout) + logger.setLevel(logging.DEBUG) + + def logger_debug(*args): + return logger.debug(' '.join(isinstance(a, str) and a or repr(a) for a in args)) + +# +# a pygmars minimal grammar to collect bash/shell variables +variables_grammar = ''' + +# variable like: \\n pkgname="gcc compiler" +SHELL-VARIABLE: + +# with the TOKEN-TEXT-NEWLINE at the start we ensure we get only things that +# start on a new line, e.g. should be top level rather than inside a function + +# variable like: \\n pkgname=gcc \\n +SHELL-VARIABLE: +''' + + +@attr.s +class ShellVariable: + + name = attr.ib() + value = attr.ib() + + def is_resolved(self): + """ + Return True if this variable is fully resolved and does not need further + shell expansion. + """ + return not any(c in self.value for c in '${}') + + @classmethod + def from_node(cls, node): + """ + Return a ShellVariable built from a parse tree node or None. + """ + if 'SHELL-VARIABLE' not in node.label: + return + + # removes space nodes + filtered = [ + token for token in node.leaves() + if token.label not in ('TOKEN-TEXT-NEWLINE', 'TOKEN-TEXT-WHITESPACE',) + ] + # we should be left with three elements + assert len(filtered) == 3, f'Unknown ShellVaribale node: {node}' + name_token, _equal, value_token = filtered + value = dequote(value_token) + return cls(name=name_token.value, value=value) + + @classmethod + def validate(cls, variables): + """ + Return a list of error messrage if some variables in a ``variables`` + list of ShellVariable are not valid. + """ + seen = set() + errors = [] + for var in variables: + if var.name in seen: + errors.append(f'Duplicate varibale name: {var.name}: {var.value}') + else: + seen.add(var.name) + return errors + + @classmethod + def resolve(cls, variables): + """ + Resolve each variables in a ``variables`` list of ShellVariable. + Return a tuple of (list with updated variables, list of error messages). + """ + + # mapping of variables that we use for resolution + # the mappings and values are updated as resolution progresses + environment = {} + errors = [] + for var in variables: + if not environment: + if not var.is_resolved(): + errors.append(f'Unresolvable first variable: {var}') + environment[var.name] = var.value + continue + if var.is_resolved(): + environment[var.name] = var.value + continue + try: + expanded = pe.expand(var.value, env=environment) + if TRACE: + logger_debug( + f'Resolved variable: {var} to: {expanded} with envt: {environment} ') + var.value = expanded + environment[var.name] = expanded + if not var.is_resolved(): + errors.append( + f'Partially resolved variable: {var} envt: {environment}') + except Exception as e: + errors.append(f'Failed to expand variable: {var} error: {e}') + + return variables, errors + + +def dequote(token): + """ + Return a token value stripped from quotes based on its token label. + """ + quote_style_by_token_label = { + 'TOKEN-LITERAL-STRING-DOUBLE':'"', + 'TOKEN-LITERAL-STRING-SINGLE': "'", + } + qs = quote_style_by_token_label.get(token.label) + if qs: + return token.value.strip(qs) + else: + return token.value + + +def collect_shell_variables(location, resolve=False): + """ + Return a tuple of (variables, errors) from collecting top-level variables + defined in bash script at ``location``. + """ + with open(location) as inp: + text = inp.read() + return collect_shell_variables_from_text(text, resolve) + + +def collect_shell_variables_from_text(text, resolve=False): + """ + Return a tuple of (variables, errors) from collecting top-level variables + defined in bash script ``text`` string. + """ + parse_tree = parse_shell(text) + variables = [] + # then walk the parse parse_tree to get variables + for node in parse_tree: + if TRACE: logger_debug(f'collect_shell_variables: parse_tree node: {node}') + if not isinstance(node, tree.Tree): + if TRACE: logger_debug(f' skipped: {node}') + continue + + variable = ShellVariable.from_node(node) + if TRACE: logger_debug(f' variable: {variable}') + if variable: + variables.append(variable) + + errors = [] + if resolve: + errors = ShellVariable.validate(variables) + variables, rerrors = ShellVariable.resolve(variables) + errors.extend(rerrors) + return variables, errors + + +def get_tokens(text): + """ + Return a Tokens from ``text``. + """ + lexer = BashShellLexer() + pygtokens = lexer.get_tokens_unprocessed(text) + return list(Token.from_pygments_tokens(pygtokens)) + + +def parse_shell(text, grammar=variables_grammar, trace=TRACE, validate=VALIDATE): + """ + Return a pygmars parse Tree built from a ``text`` string. + """ + tokens = get_tokens(text) + + # then build a parse parse_tree based on tagged tokens + parser = parse.Parser( + grammar=grammar, + trace=trace, + validate=validate, + ) + + parse_tree = parser.parse(tokens) + + if TRACE: + logger_debug(f'parse_shell: parse_tree: {parse_tree}') + + return parse_tree diff --git a/tests/packagedcode/test_bashparse.py b/tests/packagedcode/test_bashparse.py new file mode 100644 index 00000000000..c94d0dfc5a0 --- /dev/null +++ b/tests/packagedcode/test_bashparse.py @@ -0,0 +1,228 @@ +# +# Copyright (c) nexB Inc. and others. All rights reserved. +# ScanCode is a trademark of nexB Inc. +# SPDX-License-Identifier: Apache-2.0 +# See http://www.apache.org/licenses/LICENSE-2.0 for the license text. +# See https://github.com/nexB/scancode-toolkit for support or download. +# See https://aboutcode.org for more information about nexB OSS projects. +# + +import os.path + +from packagedcode import bashparse +from packagedcode.bashparse import ShellVariable + +from packages_test_utils import PackageTester + + +def clean_spaces(s): + lines = (l.rstrip() for l in s.splitlines()) + return '\n'.join(lines) + + +class TestBashParser(PackageTester): + test_data_dir = os.path.join(os.path.dirname(__file__), 'data') + + def test_get_tokens(self): + text = ''' +# Contributor: Natanael Copa +pkgname=gcc + +pkgname="$pkgname$_target" +foo=bar +baz=$foo +bez=${foo} +gnat() { + pkgdesc="Ada support for GCC" +} +''' + + result = [str(t) for t in bashparse.get_tokens(text)] + expected = [ + "Token('\\n', 'TOKEN-TEXT-NEWLINE', 1, 0)", + "Token('# Contributor: Natanael Copa \\n', 'TOKEN-COMMENT-SINGLE', 2, 1)", + "Token('pkgname', 'TOKEN-NAME-VARIABLE', 3, 54)", + "Token('=', 'TOKEN-OPERATOR-EQUAL', 3, 61)", + "Token('gcc', 'TOKEN-TEXT', 3, 62)", + "Token('\\n\\n', 'TOKEN-TEXT-NEWLINE', 3, 65)", + "Token('pkgname', 'TOKEN-NAME-VARIABLE', 5, 67)", + "Token('=', 'TOKEN-OPERATOR-EQUAL', 5, 74)", + 'Token(\'"$pkgname$_target"\', \'TOKEN-LITERAL-STRING-DOUBLE\', 5, 75)', + "Token('\\n', 'TOKEN-TEXT-NEWLINE', 5, 93)", + "Token('foo', 'TOKEN-NAME-VARIABLE', 6, 94)", + "Token('=', 'TOKEN-OPERATOR-EQUAL', 6, 97)", + "Token('bar', 'TOKEN-TEXT', 6, 98)", + "Token('\\n', 'TOKEN-TEXT-NEWLINE', 6, 101)", + "Token('baz', 'TOKEN-NAME-VARIABLE', 7, 102)", + "Token('=', 'TOKEN-OPERATOR-EQUAL', 7, 105)", + "Token('$foo', 'TOKEN-TEXT', 7, 106)", + "Token('\\n', 'TOKEN-TEXT-NEWLINE', 7, 110)", + "Token('bez', 'TOKEN-NAME-VARIABLE', 8, 111)", + "Token('=', 'TOKEN-OPERATOR-EQUAL', 8, 114)", + "Token('${foo}', 'TOKEN-TEXT', 8, 115)", + "Token('\\n', 'TOKEN-TEXT-NEWLINE', 8, 121)", + "Token('gnat()', 'TOKEN-TEXT', 9, 122)", + "Token(' ', 'TOKEN-TEXT-WHITESPACE', 9, 128)", + "Token('{', 'TOKEN-TEXT', 9, 129)", + "Token('\\n', 'TOKEN-TEXT-NEWLINE', 9, 130)", + "Token(' ', 'TOKEN-TEXT-WHITESPACE', 10, 131)", + 'Token(\'pkgdesc="Ada\', \'TOKEN-TEXT\', 10, 135)', + "Token(' ', 'TOKEN-TEXT-WHITESPACE', 10, 147)", + "Token('support', 'TOKEN-TEXT', 10, 148)", + "Token(' ', 'TOKEN-TEXT-WHITESPACE', 10, 155)", + "Token('for', 'TOKEN-TEXT', 10, 156)", + "Token(' ', 'TOKEN-TEXT-WHITESPACE', 10, 159)", + 'Token(\'GCC"\', \'TOKEN-TEXT\', 10, 160)', + "Token('\\n', 'TOKEN-TEXT-NEWLINE', 10, 164)", + "Token('}', 'TOKEN-TEXT', 11, 165)", + "Token('\\n', 'TOKEN-TEXT-NEWLINE', 11, 166)", + ] + + assert result == expected + + def test_parse_shell_with_variables_grammar_can_parse(self): + text = ''' +# Contributor: Natanael Copa +pkgname=gcc + +pkgname="$pkgname$_target" +pkgrel=2 +license="GPL-2.0-or-later + LGPL-2.1-or-later" + license="GPL-2.0-or-later + LGPL-2.1-or-later" + +gnat() { + pkgdesc="Ada support for GCC" +} +''' + + result = repr(bashparse.parse_shell(text)) + assert clean_spaces(result) == clean_spaces(EXPECTED_SIMPLE) + + def test_get_tokens_simple(self): + text = ''' +foo=bar +baz=$foo +bez=${foo} +''' + + result = [str(t) for t in bashparse.get_tokens(text)] + expected = [ + "Token('\\n', 'TOKEN-TEXT-NEWLINE', 1, 0)", + "Token('foo', 'TOKEN-NAME-VARIABLE', 2, 1)", + "Token('=', 'TOKEN-OPERATOR-EQUAL', 2, 4)", + "Token('bar', 'TOKEN-TEXT', 2, 5)", + "Token('\\n', 'TOKEN-TEXT-NEWLINE', 2, 8)", + "Token('baz', 'TOKEN-NAME-VARIABLE', 3, 9)", + "Token('=', 'TOKEN-OPERATOR-EQUAL', 3, 12)", + "Token('$foo', 'TOKEN-TEXT', 3, 13)", + "Token('\\n', 'TOKEN-TEXT-NEWLINE', 3, 17)", + "Token('bez', 'TOKEN-NAME-VARIABLE', 4, 18)", + "Token('=', 'TOKEN-OPERATOR-EQUAL', 4, 21)", + "Token('${foo}', 'TOKEN-TEXT', 4, 22)", + "Token('\\n', 'TOKEN-TEXT-NEWLINE', 4, 28)", + ] + + assert result == expected + + def test_collect_shell_variables_from_text_can_resolve(self): + text = ''' +foo=bar +baz=$foo +bez=${baz} +''' + result , errors = bashparse.collect_shell_variables_from_text(text) + expected = [ + ShellVariable(name='foo', value='bar'), + ShellVariable(name='baz', value='$foo'), + ShellVariable(name='bez', value='${baz}'), + ] + assert result == expected + + expected = [] + assert errors == expected + + result , errors = bashparse.collect_shell_variables_from_text(text, resolve=True) + expected = [ + ShellVariable(name='foo', value='bar'), + ShellVariable(name='baz', value='bar'), + ShellVariable(name='bez', value='bar'), + ] + assert result == expected + + expected = [] + assert errors == expected + + def test_collect_shell_variables_from_text_simple(self): + result , errors = bashparse.collect_shell_variables_from_text(TEST_TEXT1) + expected = [ + ShellVariable(name='_pkgbase', value='10.3.1'), + ShellVariable(name='pkgver', value='10.3.1_git20210424'), + ShellVariable(name='pkgname', value='$pkgname$_target'), + ShellVariable(name='pkgrel', value='2'), + ShellVariable(name='pkgdesc', value='The GNU Compiler Collection'), + ShellVariable(name='url', value='https://gcc.gnu.org'), + ShellVariable(name='arch', value='all'), + ShellVariable(name='license', value='GPL-2.0-or-later LGPL-2.1-or-later'), + ShellVariable(name='_gccrel', value='$pkgver-r$pkgrel'), + ShellVariable(name='depends', value='binutils$_target'), + ShellVariable(name='makedepends_build', value='gcc$_cross g++$_cross bison flex texinfo gawk zip gmp-dev mpfr-dev mpc1-dev zlib-dev'), + ShellVariable(name='makedepends_host', value='linux-headers gmp-dev mpfr-dev mpc1-dev isl-dev zlib-dev !gettext-dev libucontext-dev'), + ShellVariable(name='makedepends', value='$makedepends_build $makedepends_host'), + ShellVariable(name='source', value='https://dev.alpinelinux.org/~nenolod/gcc-${pkgver}.tar.xz\n 0001-posix_memalign.patch\n '), + ShellVariable(name='sha512sums', value='0ef281e6633b8bef7ce24d1448ec7b96aef66e414f90821a9 gcc-10.3.1_git20210424.tar.xz\nd1e10db83a04c02d99f9f6ce03f9 0001-posix_memalign.patch\n'), + ] + assert errors == [] + assert result == expected + + +TEST_TEXT1 = ''' +# Contributor: Natanael Copa +# Maintainer: Ariadne Conill +pkgname=gcc +_pkgbase=10.3.1 +pkgver=10.3.1_git20210424 +pkgname="$pkgname$_target" +pkgrel=2 +pkgdesc="The GNU Compiler Collection" +url="https://gcc.gnu.org" +arch="all" +license="GPL-2.0-or-later LGPL-2.1-or-later" +_gccrel=$pkgver-r$pkgrel +depends="binutils$_target" +makedepends_build="gcc$_cross g++$_cross bison flex texinfo gawk zip gmp-dev mpfr-dev mpc1-dev zlib-dev" +makedepends_host="linux-headers gmp-dev mpfr-dev mpc1-dev isl-dev zlib-dev !gettext-dev libucontext-dev" + +makedepends="$makedepends_build $makedepends_host" + +source="https://dev.alpinelinux.org/~nenolod/gcc-${pkgver}.tar.xz + 0001-posix_memalign.patch + " + +gnat() { + pkgdesc="Ada support for GCC" + depends="gcc=$_gccrel" +} + +sha512sums="0ef281e6633b8bef7ce24d1448ec7b96aef66e414f90821a9 gcc-10.3.1_git20210424.tar.xz +d1e10db83a04c02d99f9f6ce03f9 0001-posix_memalign.patch +" + +''' + +EXPECTED_SIMPLE = '''Tree('ROOT', [ +/TOKEN-TEXT-NEWLINE, # Contributor: Natanael Copa +/TOKEN-COMMENT-SINGLE, pkgname/TOKEN-NAME-VARIABLE, =/TOKEN-OPERATOR-EQUAL, gcc/TOKEN-TEXT, Tree('SHELL-VARIABLE', [ + +/TOKEN-TEXT-NEWLINE, pkgname/TOKEN-NAME-VARIABLE, =/TOKEN-OPERATOR-EQUAL, "$pkgname$_target"/TOKEN-LITERAL-STRING-DOUBLE]), Tree('SHELL-VARIABLE', [ +/TOKEN-TEXT-NEWLINE, pkgrel/TOKEN-NAME-VARIABLE, =/TOKEN-OPERATOR-EQUAL, 2/TOKEN-TEXT]), Tree('SHELL-VARIABLE', [ +/TOKEN-TEXT-NEWLINE, license/TOKEN-NAME-VARIABLE, =/TOKEN-OPERATOR-EQUAL, "GPL-2.0-or-later + LGPL-2.1-or-later"/TOKEN-LITERAL-STRING-DOUBLE]), +/TOKEN-TEXT-NEWLINE, /TOKEN-TEXT-WHITESPACE, license="GPL-2.0-or-later/TOKEN-TEXT, +/TOKEN-TEXT-NEWLINE, /TOKEN-TEXT-WHITESPACE, LGPL-2.1-or-later"/TOKEN-TEXT, + +/TOKEN-TEXT-NEWLINE, gnat()/TOKEN-TEXT, /TOKEN-TEXT-WHITESPACE, {/TOKEN-TEXT, +/TOKEN-TEXT-NEWLINE, /TOKEN-TEXT-WHITESPACE, pkgdesc="Ada/TOKEN-TEXT, /TOKEN-TEXT-WHITESPACE, support/TOKEN-TEXT, /TOKEN-TEXT-WHITESPACE, for/TOKEN-TEXT, /TOKEN-TEXT-WHITESPACE, GCC"/TOKEN-TEXT, +/TOKEN-TEXT-NEWLINE, }/TOKEN-TEXT, +/TOKEN-TEXT-NEWLINE])''' From 9adf5eb326a91436ecfcbbf81d7750b546e6e8df Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Tue, 13 Jul 2021 15:28:50 +0200 Subject: [PATCH 593/709] Add more bash parsing tests Signed-off-by: Philippe Ombredanne --- src/packagedcode/bashparse.py | 6 +- .../data/bashparse/APKBUILD-cairo.sh | 77 ++ .../bashparse/APKBUILD-cairo.sh-expected.json | 17 + .../data/bashparse/APKBUILD-gcc.sh | 704 ++++++++++++++++++ .../bashparse/APKBUILD-gcc.sh-expected.json | 29 + .../data/bashparse/APKBUILD-mongo.sh | 100 +++ .../bashparse/APKBUILD-mongo.sh-expected.json | 19 + .../data/bashparse/PKGBUILD-papermc.sh | 62 ++ .../PKGBUILD-papermc.sh-expected.json | 25 + tests/packagedcode/data/bashparse/bash.sh | 12 + .../data/bashparse/bash.sh-expected.json | 7 + tests/packagedcode/data/bashparse/ebuild.sh | 422 +++++++++++ .../data/bashparse/ebuild.sh-expected.json | 19 + tests/packagedcode/test_bashparse.py | 116 ++- 14 files changed, 1610 insertions(+), 5 deletions(-) create mode 100644 tests/packagedcode/data/bashparse/APKBUILD-cairo.sh create mode 100644 tests/packagedcode/data/bashparse/APKBUILD-cairo.sh-expected.json create mode 100644 tests/packagedcode/data/bashparse/APKBUILD-gcc.sh create mode 100644 tests/packagedcode/data/bashparse/APKBUILD-gcc.sh-expected.json create mode 100644 tests/packagedcode/data/bashparse/APKBUILD-mongo.sh create mode 100644 tests/packagedcode/data/bashparse/APKBUILD-mongo.sh-expected.json create mode 100644 tests/packagedcode/data/bashparse/PKGBUILD-papermc.sh create mode 100644 tests/packagedcode/data/bashparse/PKGBUILD-papermc.sh-expected.json create mode 100644 tests/packagedcode/data/bashparse/bash.sh create mode 100644 tests/packagedcode/data/bashparse/bash.sh-expected.json create mode 100644 tests/packagedcode/data/bashparse/ebuild.sh create mode 100644 tests/packagedcode/data/bashparse/ebuild.sh-expected.json diff --git a/src/packagedcode/bashparse.py b/src/packagedcode/bashparse.py index aa5b4920b91..9145f14d0e5 100644 --- a/src/packagedcode/bashparse.py +++ b/src/packagedcode/bashparse.py @@ -161,11 +161,13 @@ def dequote(token): def collect_shell_variables(location, resolve=False): """ Return a tuple of (variables, errors) from collecting top-level variables - defined in bash script at ``location``. + defined in bash script at ``location``. ``variables`` is a mapping of {name: + value} and ``errors`` a list of error message strings. """ with open(location) as inp: text = inp.read() - return collect_shell_variables_from_text(text, resolve) + vrs, errs = collect_shell_variables_from_text(text, resolve) + return {v.name: v.value for v in vrs}, errs def collect_shell_variables_from_text(text, resolve=False): diff --git a/tests/packagedcode/data/bashparse/APKBUILD-cairo.sh b/tests/packagedcode/data/bashparse/APKBUILD-cairo.sh new file mode 100644 index 00000000000..a7b31060b3d --- /dev/null +++ b/tests/packagedcode/data/bashparse/APKBUILD-cairo.sh @@ -0,0 +1,77 @@ +# Maintainer: Natanael Copa +pkgname=cairo +pkgver=1.16.0 +pkgrel=2 +pkgdesc="A vector graphics library" +url="https://cairographics.org/" +arch="all" +options="!check" # Recursive dependency on gtk+2.0 for check. +license="LGPL-2.0-or-later MPL-1.1" +depends= +depends_dev="fontconfig-dev freetype-dev libxrender-dev pixman-dev + xcb-util-dev libxext-dev $pkgname-tools" +makedepends="$depends_dev zlib-dev expat-dev glib-dev libpng-dev autoconf automake libtool" +subpackages="$pkgname-dev $pkgname-doc $pkgname-gobject $pkgname-tools $pkgname-dbg" +source="https://cairographics.org/releases/cairo-$pkgver.tar.xz + musl-stacksize.patch + CVE-2018-19876.patch + pdf-flush.patch + 85.patch + " +builddir="$srcdir/$pkgname-$pkgver" + +# secfixes: +# 1.16.0-r2: +# - CVE-2020-35492 +# 1.16.0-r1: +# - CVE-2018-19876 + +build() { + cd "$builddir" + ./configure \ + --build=$CBUILD \ + --host=$CHOST \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --enable-ft \ + --enable-gobject \ + --enable-pdf \ + --enable-png \ + --enable-ps \ + --enable-svg \ + --enable-tee \ + --enable-x \ + --enable-xcb \ + --enable-xcb-shm \ + --enable-xlib \ + --enable-xlib-xrender \ + --disable-xlib-xcb \ + --disable-static + make +} + +package() { + cd "$builddir" + make DESTDIR="$pkgdir" install +} + +gobject() { + pkgdesc="$pkgdesc (gobject bindings)" + mkdir -p "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/lib/libcairo-gobject.so.* "$subpkgdir"/usr/lib/ +} + +tools() { + pkgdesc="$pkgdesc (development tools)" + mkdir -p "$subpkgdir"/usr/lib/cairo + mv "$pkgdir"/usr/bin "$subpkgdir"/usr/ + mv "$pkgdir"/usr/lib/cairo/libcairo-trace.* \ + "$subpkgdir"/usr/lib/cairo/ +} + +sha512sums="9eb27c4cf01c0b8b56f2e15e651f6d4e52c99d0005875546405b64f1132aed12fbf84727273f493d84056a13105e065009d89e94a8bfaf2be2649e232b82377f cairo-1.16.0.tar.xz +86f26fe41deb5e14f553c999090d1ec1d92a534fa7984112c9a7f1d6c6a8f1b7bb735947e8ec3f26e817f56410efe8cc46c5e682f6a278d49b40a683513740e0 musl-stacksize.patch +8f13cdcae0f134e04778cf5915f858fb8d5357a7e0a454791c93d1566935b985ec66dfe1683cd0b74a1cb44a130923d7a27cf006f3fc70b9bee93abd58a55aa3 CVE-2018-19876.patch +533ea878dc7f917af92e2694bd3f535a09cde77f0ecd0cc00881fbc9ec1ea86f60026eacc76129705f525f6672929ad8d15d8cfe1bfa61e9962e805a7fbded81 pdf-flush.patch +20699d2dd10531f99587cdcd187a23e23bca5a9f031255c95aade4dadb79bbb62118c7ddff677c2fd20e4ba7694eee4debcd79a4d0736d62951a4fcee56ccae0 85.patch" diff --git a/tests/packagedcode/data/bashparse/APKBUILD-cairo.sh-expected.json b/tests/packagedcode/data/bashparse/APKBUILD-cairo.sh-expected.json new file mode 100644 index 00000000000..08cd0bc4e2b --- /dev/null +++ b/tests/packagedcode/data/bashparse/APKBUILD-cairo.sh-expected.json @@ -0,0 +1,17 @@ +[ + { + "pkgver": "1.16.0", + "pkgrel": "2", + "pkgdesc": "A vector graphics library", + "url": "https://cairographics.org/", + "arch": "all", + "options": "!check", + "depends_dev": "fontconfig-devfreetype-devlibxrender-devpixman-devxcb-util-devlibxext-dev-tools", + "makedepends": "fontconfig-devfreetype-devlibxrender-devpixman-devxcb-util-devlibxext-dev-toolszlib-devexpat-devglib-devlibpng-devautoconfautomakelibtool", + "subpackages": "-dev-doc-gobject-tools-dbg", + "source": "https://cairographics.org/releases/cairo-1.16.0.tar.xzmusl-stacksize.patchCVE-2018-19876.patchpdf-flush.patch85.patch", + "builddir": "/-1.16.0", + "sha512sums": "9eb27c4cf01c0b8b56f2e15e651f6d4e52c99d0005875546405b64f1132aed12fbf84727273f493d84056a13105e065009d89e94a8bfaf2be2649e232b82377f cairo-1.16.0.tar.xz\n86f26fe41deb5e14f553c999090d1ec1d92a534fa7984112c9a7f1d6c6a8f1b7bb735947e8ec3f26e817f56410efe8cc46c5e682f6a278d49b40a683513740e0 musl-stacksize.patch\n8f13cdcae0f134e04778cf5915f858fb8d5357a7e0a454791c93d1566935b985ec66dfe1683cd0b74a1cb44a130923d7a27cf006f3fc70b9bee93abd58a55aa3 CVE-2018-19876.patch\n533ea878dc7f917af92e2694bd3f535a09cde77f0ecd0cc00881fbc9ec1ea86f60026eacc76129705f525f6672929ad8d15d8cfe1bfa61e9962e805a7fbded81 pdf-flush.patch\n20699d2dd10531f99587cdcd187a23e23bca5a9f031255c95aade4dadb79bbb62118c7ddff677c2fd20e4ba7694eee4debcd79a4d0736d62951a4fcee56ccae0 85.patch" + }, + [] +] \ No newline at end of file diff --git a/tests/packagedcode/data/bashparse/APKBUILD-gcc.sh b/tests/packagedcode/data/bashparse/APKBUILD-gcc.sh new file mode 100644 index 00000000000..413264cd6df --- /dev/null +++ b/tests/packagedcode/data/bashparse/APKBUILD-gcc.sh @@ -0,0 +1,704 @@ +# Contributor: Natanael Copa +# Maintainer: Ariadne Conill +pkgname=gcc +_pkgbase=10.3.1 +pkgver=10.3.1_git20210424 +[ "$BOOTSTRAP" = "nolibc" ] && pkgname="gcc-pass2" +[ "$CBUILD" != "$CHOST" ] && _cross="-$CARCH" || _cross="" +[ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target="" + +pkgname="$pkgname$_target" +pkgrel=2 +pkgdesc="The GNU Compiler Collection" +url="https://gcc.gnu.org" +arch="all" +license="GPL-2.0-or-later LGPL-2.1-or-later" +_gccrel=$pkgver-r$pkgrel +depends="binutils$_target" +makedepends_build="gcc$_cross g++$_cross bison flex texinfo gawk zip gmp-dev mpfr-dev mpc1-dev zlib-dev" +makedepends_host="linux-headers gmp-dev mpfr-dev mpc1-dev isl-dev zlib-dev !gettext-dev libucontext-dev" +subpackages=" " +[ "$CHOST" = "$CTARGET" ] && subpackages="gcc-doc$_target" +replaces="libstdc++ binutils" + +: "${LANG_CXX:=true}" +: "${LANG_D:=true}" +: "${LANG_OBJC:=true}" +: "${LANG_GO:=true}" +: "${LANG_FORTRAN:=true}" +: "${LANG_ADA:=true}" + +_libgomp=true +_libgcc=true +_libatomic=true +_libitm=true + +if [ "$CHOST" != "$CTARGET" ]; then + if [ "$BOOTSTRAP" = nolibc ]; then + LANG_CXX=false + LANG_ADA=false + _libgcc=false + _builddir="$srcdir/build-cross-pass2" + else + _builddir="$srcdir/build-cross-final" + fi + LANG_OBJC=false + LANG_GO=false + LANG_FORTRAN=false + LANG_D=false + _libgomp=false + _libatomic=false + _libitm=false + + # reset target flags (should be set in crosscreate abuild) + # fixup flags. seems gcc treats CPPFLAGS as global without + # _FOR_xxx variants. wrap it in CFLAGS and CXXFLAGS. + export CFLAGS="$CPPFLAGS $CFLAGS" + export CXXFLAGS="$CPPFLAGS $CXXFLAGS" + unset CPPFLAGS + export CFLAGS_FOR_TARGET=" " + export CXXFLAGS_FOR_TARGET=" " + export LDFLAGS_FOR_TARGET=" " + + STRIP_FOR_TARGET="$CTARGET-strip" +elif [ "$CBUILD" != "$CHOST" ]; then + # fixup flags. seems gcc treats CPPFLAGS as global without + # _FOR_xxx variants. wrap it in CFLAGS and CXXFLAGS. + export CFLAGS="$CPPFLAGS $CFLAGS" + export CXXFLAGS="$CPPFLAGS $CXXFLAGS" + unset CPPFLAGS + + # reset flags and cc for build + export CC_FOR_BUILD="gcc" + export CXX_FOR_BUILD="g++" + export CFLAGS_FOR_BUILD=" " + export CXXFLAGS_FOR_BUILD=" " + export LDFLAGS_FOR_BUILD=" " + export CFLAGS_FOR_TARGET=" " + export CXXFLAGS_FOR_TARGET=" " + export LDFLAGS_FOR_TARGET=" " + + # Languages that do not need bootstrapping + LANG_OBJC=false + LANG_GO=false + LANG_FORTRAN=false + LANG_D=false + + STRIP_FOR_TARGET=${CROSS_COMPILE}strip + _builddir="$srcdir/build-cross-native" +else + STRIP_FOR_TARGET=${CROSS_COMPILE}strip + _builddir="$srcdir/build" +fi + +# GDC hasn't been ported to PowerPC +# See libphobos/configure.tgt in GCC sources for supported targets +# riscv fails with: error: static assert "unimplemented" +case "$CARCH" in +ppc64le|riscv64) LANG_D=false ;; +esac + +# libitm has TEXTRELs in ARM build, so disable for now +case "$CTARGET_ARCH" in +arm*) _libitm=false ;; +mips*) _libitm=false ;; +riscv64) _libitm=false ;; +esac + +# Internal libffi fails to build on MIPS at the moment, need to +# investigate further. We disable LANG_GO on mips64 as it requires +# the internal libffi. +case "$CTARGET_ARCH" in +mips*) LANG_GO=false ;; +esac + +# Fortran uses libquadmath if toolchain has __float128 +# currently on x86, x86_64 and ia64 +_libquadmath=$LANG_FORTRAN +case "$CTARGET_ARCH" in +x86 | x86_64) _libquadmath=$LANG_FORTRAN ;; +*) _libquadmath=false ;; +esac + +# libatomic is a dependency for openvswitch +$_libatomic && subpackages="$subpackages libatomic::$CTARGET_ARCH" +$_libgcc && subpackages="$subpackages libgcc::$CTARGET_ARCH" +$_libquadmath && subpackages="$subpackages libquadmath::$CTARGET_ARCH" +if $_libgomp; then + depends="$depends libgomp=$_gccrel" + subpackages="$subpackages libgomp::$CTARGET_ARCH" +fi + +case "$CARCH" in +riscv64) +LANG_ADA=false;; +esac + +_languages=c +if $LANG_CXX; then + subpackages="$subpackages libstdc++:libcxx:$CTARGET_ARCH g++$_target:gpp" + _languages="$_languages,c++" +fi +if $LANG_D; then + subpackages="$subpackages libgphobos::$CTARGET_ARCH gcc-gdc$_target:gdc" + _languages="$_languages,d" + makedepends_build="$makedepends_build libucontext-dev" +fi +if $LANG_OBJC; then + subpackages="$subpackages libobjc::$CTARGET_ARCH gcc-objc$_target:objc" + _languages="$_languages,objc" +fi +if $LANG_GO; then + subpackages="$subpackages libgo::$CTARGET_ARCH gcc-go$_target:go" + _languages="$_languages,go" +fi +if $LANG_FORTRAN; then + subpackages="$subpackages libgfortran::$CTARGET_ARCH gfortran$_target:gfortran" + _languages="$_languages,fortran" +fi +if $LANG_ADA; then + subpackages="$subpackages libgnat-static:libgnatstatic:$CTARGET_ARCH libgnat::$CTARGET_ARCH gcc-gnat$_target:gnat" + _languages="$_languages,ada" + [ "$CBUILD" = "$CTARGET" ] && makedepends_build="$makedepends_build gcc-gnat-bootstrap" + [ "$CBUILD" != "$CTARGET" ] && makedepends_build="$makedepends_build gcc-gnat gcc-gnat$_cross" +fi +makedepends="$makedepends_build $makedepends_host" + +# when using upstream releases, use this URI template +# https://gcc.gnu.org/pub/gcc/releases/gcc-${_pkgbase:-$pkgver}/gcc-${_pkgbase:-$pkgver}.tar.xz +# +# right now, we are using a git snapshot. +# +# PLEASE submit all patches to gcc to https://gitlab.alpinelinux.org/kaniini/alpine-gcc-patches, +# so that they can be properly tracked and easily rebased if needed. +source="https://dev.alpinelinux.org/~nenolod/gcc-${pkgver}.tar.xz + 0001-posix_memalign.patch + 0002-gcc-poison-system-directories.patch + 0003-Turn-on-Wl-z-relro-z-now-by-default.patch + 0004-Turn-on-D_FORTIFY_SOURCE-2-by-default-for-C-C-ObjC-O.patch + 0005-On-linux-targets-pass-as-needed-by-default-to-the-li.patch + 0006-Enable-Wformat-and-Wformat-security-by-default.patch + 0007-Enable-Wtrampolines-by-default.patch + 0008-Disable-ssp-on-nostdlib-nodefaultlibs-and-ffreestand.patch + 0009-Ensure-that-msgfmt-doesn-t-encounter-problems-during.patch + 0010-Don-t-declare-asprintf-if-defined-as-a-macro.patch + 0011-libiberty-copy-PIC-objects-during-build-process.patch + 0012-libitm-disable-FORTIFY.patch + 0013-libgcc_s.patch + 0014-nopie.patch + 0015-libffi-use-__linux__-instead-of-__gnu_linux__-for-mu.patch + 0016-dlang-update-zlib-binding.patch + 0017-dlang-fix-fcntl-on-mips-add-libucontext-dep.patch + 0018-ada-fix-shared-linking.patch + 0019-build-fix-CXXFLAGS_FOR_BUILD-passing.patch + 0020-add-fortify-headers-paths.patch + 0021-Alpine-musl-package-provides-libssp_nonshared.a.-We-.patch + 0022-DP-Use-push-state-pop-state-for-gold-as-well-when-li.patch + 0023-Pure-64-bit-MIPS.patch + 0024-use-pure-64-bit-configuration-where-appropriate.patch + 0025-always-build-libgcc_eh.a.patch + 0026-ada-libgnarl-compatibility-for-musl.patch + 0027-ada-musl-support-fixes.patch + 0028-gcc-go-Use-_off_t-type-instead-of-_loff_t.patch + 0029-gcc-go-Don-t-include-sys-user.h.patch + 0030-gcc-go-Fix-ucontext_t-on-PPC64.patch + 0031-gcc-go-Fix-handling-of-signal-34-on-musl.patch + 0032-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch + 0033-gcc-go-Fix-st_-a-m-c-tim-fields-in-generated-sysinfo.patch + 0034-gcc-go-signal-34-is-special-on-musl-libc.patch + 0035-gcc-go-Prefer-_off_t-over-_off64_t.patch + 0036-gcc-go-undef-SETCONTEXT_CLOBBERS_TLS-in-proc.c.patch + 0037-gcc-go-link-to-libucontext.patch + 0038-gcc-go-Disable-printing-of-unaccessible-ppc64-struct.patch + 0039-CRuntime_Musl-Support-v1.2.0-for-32-bits.patch + 0040-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch + 0041-Use-generic-errstr.go-implementation-on-musl.patch + " + +# we build out-of-tree +_gccdir="$srcdir"/gcc-$pkgver +_gcclibdir="/usr/lib/gcc/$CTARGET/${_pkgbase:-$pkgver}" +_gcclibexec="/usr/libexec/gcc/$CTARGET/${_pkgbase:-$pkgver}" + +prepare() { + cd "$_gccdir" + + _err= + for i in $source; do + case "$i" in + *.patch) + msg "Applying $i" + patch -p1 -i "$srcdir"/$i || _err="$_err $i" + ;; + esac + done + + if [ -n "$_err" ]; then + error "The following patches failed:" + for i in $_err; do + echo " $i" + done + return 1 + fi + + echo ${_pkgbase:-$pkgver} > gcc/BASE-VER +} + +build() { + local _arch_configure= + local _libc_configure= + local _cross_configure= + local _bootstrap_configure= + local _symvers= + + cd "$_gccdir" + + case "$CTARGET" in + aarch64-*-*-*) _arch_configure="--with-arch=armv8-a --with-abi=lp64";; + armv5-*-*-*eabi) _arch_configure="--with-arch=armv5te --with-tune=arm926ej-s --with-float=soft --with-abi=aapcs-linux";; + armv6-*-*-*eabihf) _arch_configure="--with-arch=armv6zk --with-tune=arm1176jzf-s --with-fpu=vfp --with-float=hard --with-abi=aapcs-linux";; + armv7-*-*-*eabihf) _arch_configure="--with-arch=armv7-a --with-tune=generic-armv7-a --with-fpu=vfpv3-d16 --with-float=hard --with-abi=aapcs-linux --with-mode=thumb";; + mips-*-*-*) _arch_configure="--with-arch=mips32 --with-mips-plt --with-float=soft --with-abi=32";; + mips64-*-*-*) _arch_configure="--with-arch=mips3 --with-tune=mips64 --with-mips-plt --with-float=soft --with-abi=64";; + mips64el-*-*-*) _arch_configure="--with-arch=mips3 --with-tune=mips64 --with-mips-plt --with-float=soft --with-abi=64";; + mipsel-*-*-*) _arch_configure="--with-arch=mips32 --with-mips-plt --with-float=soft --with-abi=32";; + powerpc-*-*-*) _arch_configure="--enable-secureplt --enable-decimal-float=no";; + powerpc64*-*-*-*) _arch_configure="--with-abi=elfv2 --enable-secureplt --enable-decimal-float=no --enable-targets=powerpcle-linux";; + i486-*-*-*) _arch_configure="--with-arch=i486 --with-tune=generic --enable-cld";; + i586-*-*-*) _arch_configure="--with-arch=i586 --with-tune=generic --enable-cld";; + s390x-*-*-*) _arch_configure="--with-arch=z196 --with-tune=zEC12 --with-zarch --with-long-double-128 --enable-decimal-float";; + riscv64-*-*-*) _arch_configure="--with-arch=rv64gc --with-abi=lp64d --enable-autolink-libatomic";; + esac + + case "$CTARGET_ARCH" in + mips*) _hash_style_configure="--with-linker-hash-style=sysv" ;; + *) _hash_style_configure="--with-linker-hash-style=gnu" ;; + esac + + case "$CTARGET_LIBC" in + musl) + # musl does not support mudflap, or libsanitizer + # libmpx uses secure_getenv and struct _libc_fpstate not present in musl + # alpine musl provides libssp_nonshared.a, so we don't need libssp either + _libc_configure="--disable-libssp --disable-libmpx --disable-libmudflap --disable-libsanitizer" + _symvers="--disable-symvers" + export libat_cv_have_ifunc=no + ;; + esac + + [ "$CBUILD" != "$CHOST" ] && _cross_configure="--disable-bootstrap" + [ "$CHOST" != "$CTARGET" ] && _cross_configure="--disable-bootstrap --with-sysroot=$CBUILDROOT" + + case "$BOOTSTRAP" in + nolibc) _bootstrap_configure="--with-newlib --disable-shared --enable-threads=no" ;; + *) _bootstrap_configure="--enable-shared --enable-threads --enable-tls" ;; + esac + + $_libgomp || _bootstrap_configure="$_bootstrap_configure --disable-libgomp" + $_libatomic || _bootstrap_configure="$_bootstrap_configure --disable-libatomic" + $_libitm || _bootstrap_configure="$_bootstrap_configure --disable-libitm" + $_libquadmath || _arch_configure="$_arch_configure --disable-libquadmath" + + msg "Building the following:" + echo "" + echo " CBUILD=$CBUILD" + echo " CHOST=$CHOST" + echo " CTARGET=$CTARGET" + echo " CTARGET_ARCH=$CTARGET_ARCH" + echo " CTARGET_LIBC=$CTARGET_LIBC" + echo " languages=$_languages" + echo " arch_configure=$_arch_configure" + echo " libc_configure=$_libc_configure" + echo " cross_configure=$_cross_configure" + echo " bootstrap_configure=$_bootstrap_configure" + echo " hash_style_configure=$_hash_style_configure" + echo "" + + export CFLAGS="$CFLAGS -O2" + + mkdir -p "$_builddir" + cd "$_builddir" + "$_gccdir"/configure --prefix=/usr \ + --mandir=/usr/share/man \ + --infodir=/usr/share/info \ + --build=${CBUILD} \ + --host=${CHOST} \ + --target=${CTARGET} \ + --with-pkgversion="Alpine $pkgver" \ + --enable-checking=release \ + --disable-fixed-point \ + --disable-libstdcxx-pch \ + --disable-multilib \ + --disable-nls \ + --disable-werror \ + $_symvers \ + --enable-__cxa_atexit \ + --enable-default-pie \ + --enable-default-ssp \ + --enable-cloog-backend \ + --enable-languages=$_languages \ + $_arch_configure \ + $_libc_configure \ + $_cross_configure \ + $_bootstrap_configure \ + --with-system-zlib \ + $_hash_style_configure + make +} + +package() { + cd "$_builddir" + make -j1 DESTDIR="$pkgdir" install + + ln -s gcc "$pkgdir"/usr/bin/cc + + # we dont support gcj -static + # and saving 35MB is not bad. + find "$pkgdir" \( -name libgtkpeer.a \ + -o -name libgjsmalsa.a \ + -o -name libgij.a \) \ + -delete + + # strip debug info from some static libs + find "$pkgdir" \( -name libgfortran.a -o -name libobjc.a -o -name libgomp.a \ + -o -name libgphobos.a -o -name libgdruntime.a \ + -o -name libmudflap.a -o -name libmudflapth.a \ + -o -name libgcc.a -o -name libgcov.a -o -name libquadmath.a \ + -o -name libitm.a -o -name libgo.a -o -name libcaf\*.a \ + -o -name libatomic.a -o -name libasan.a -o -name libtsan.a \) \ + -a -type f \ + -exec ${STRIP_FOR_TARGET} -g {} + + + if $_libgomp; then + mv "$pkgdir"/usr/lib/libgomp.spec "$pkgdir"/$_gcclibdir + fi + if $_libitm; then + mv "$pkgdir"/usr/lib/libitm.spec "$pkgdir"/$_gcclibdir + fi + + # remove ffi + rm -f "$pkgdir"/usr/lib/libffi* "$pkgdir"/usr/share/man/man3/ffi* + find "$pkgdir" -name 'ffi*.h' -delete + + local gdblib=${_target:+$CTARGET/}lib + if [ -d "$pkgdir"/usr/$gdblib/ ]; then + for i in $(find "$pkgdir"/usr/$gdblib/ -type f -maxdepth 1 -name "*-gdb.py"); do + mkdir -p "$pkgdir"/usr/share/gdb/python/auto-load/usr/$gdblib + mv "$i" "$pkgdir"/usr/share/gdb/python/auto-load/usr/$gdblib/ + done + fi + + # move ada runtime libs + if $LANG_ADA; then + for i in $(find "$pkgdir"/$_gcclibdir/adalib/ -type f -maxdepth 1 -name "libgna*.so"); do + mv "$i" "$pkgdir"/usr/lib/ + ln -s ../../../../${i##*/} $i + done + for i in $(find "$pkgdir"/$_gcclibdir/adalib/ -type f -maxdepth 1 -name "libgna*.a"); do + mv "$i" "$pkgdir"/usr/lib/ + ln -s ../../../../${i##*/} $i + done + fi + + if [ "$CHOST" != "$CTARGET" ]; then + # cross-gcc: remove any files that would conflict with the + # native gcc package + rm -rf "$pkgdir"/usr/bin/cc "$pkgdir"/usr/include "${pkgdir:?}"/usr/share + # libcc1 does not depend on target, don't ship it + rm -rf "$pkgdir"/usr/lib/libcc1.so* + + # fixup gcc library symlinks to be linker scripts so + # linker finds the libs from relocated sysroot + for so in "$pkgdir"/usr/"$CTARGET"/lib/*.so; do + if [ -h "$so" ]; then + local _real=$(basename "$(readlink "$so")") + rm -f "$so" + echo "GROUP ($_real)" > "$so" + fi + done + else + # add c89/c99 wrapper scripts + cat >"$pkgdir"/usr/bin/c89 <<'EOF' +#!/bin/sh +_flavor="-std=c89" +for opt; do + case "$opt" in + -ansi|-std=c89|-std=iso9899:1990) _flavor="";; + -std=*) echo "$(basename $0) called with non ANSI/ISO C option $opt" >&2 + exit 1;; + esac +done +exec gcc $_flavor ${1+"$@"} +EOF + cat >"$pkgdir"/usr/bin/c99 <<'EOF' +#!/bin/sh +_flavor="-std=c99" +for opt; do + case "$opt" in + -std=c99|-std=iso9899:1999) _flavor="";; + -std=*) echo "$(basename $0) called with non ISO C99 option $opt" >&2 + exit 1;; + esac +done +exec gcc $_flavor ${1+"$@"} +EOF + chmod 755 "$pkgdir"/usr/bin/c?9 + + # install lto plugin so regular binutils may use it + mkdir -p "$pkgdir"/usr/lib/bfd-plugins + ln -s /$_gcclibexec/liblto_plugin.so "$pkgdir/usr/lib/bfd-plugins/" + fi +} + +libatomic() { + pkgdesc="GCC Atomic library" + depends= + replaces="gcc" + + mkdir -p "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libatomic.so.* "$subpkgdir"/usr/lib/ +} + +libcxx() { + pkgdesc="GNU C++ standard runtime library" + depends= + + if [ "$CHOST" = "$CTARGET" ]; then + # verify that we are using clock_gettime rather than doing direct syscalls + # so we dont break 32 bit arches due to time64. + nm -D "$pkgdir"/usr/lib/libstdc++.so.* | grep clock_gettime + fi + + mkdir -p "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libstdc++.so.* "$subpkgdir"/usr/lib/ +} + +gpp() { + pkgdesc="GNU C++ standard library and compiler" + depends="libstdc++=$_gccrel gcc=$_gccrel libc-dev" + mkdir -p "$subpkgdir/$_gcclibexec" \ + "$subpkgdir"/usr/bin \ + "$subpkgdir"/usr/${_target:+$CTARGET/}include \ + "$subpkgdir"/usr/${_target:+$CTARGET/}lib \ + + mv "$pkgdir/$_gcclibexec/cc1plus" "$subpkgdir/$_gcclibexec/" + + mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/*++* "$subpkgdir"/usr/${_target:+$CTARGET/}lib/ + mv "$pkgdir"/usr/${_target:+$CTARGET/}include/c++ "$subpkgdir"/usr/${_target:+$CTARGET/}include/ + mv "$pkgdir"/usr/bin/*++ "$subpkgdir"/usr/bin/ +} + +libobjc() { + pkgdesc="GNU Objective-C runtime" + replaces="objc" + depends= + mkdir -p "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libobjc.so.* "$subpkgdir"/usr/lib/ +} + +objc() { + pkgdesc="GNU Objective-C" + replaces="gcc" + depends="libc-dev gcc=$_gccrel libobjc=$_gccrel" + + mkdir -p "$subpkgdir/$_gcclibexec" \ + "$subpkgdir"/$_gcclibdir/include \ + "$subpkgdir"/usr/lib + mv "$pkgdir/$_gcclibexec/cc1obj" "$subpkgdir/$_gcclibexec/" + mv "$pkgdir"/$_gcclibdir/include/objc "$subpkgdir"/$_gcclibdir/include/ + mv "$pkgdir"/usr/lib/libobjc.so "$pkgdir"/usr/lib/libobjc.a \ + "$subpkgdir"/usr/lib/ +} + +libgcc() { + pkgdesc="GNU C compiler runtime libraries" + depends= + + mkdir -p "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libgcc_s.so.* "$subpkgdir"/usr/lib/ +} + +libgomp() { + pkgdesc="GCC shared-memory parallel programming API library" + depends= + replaces="gcc" + + mkdir -p "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libgomp.so.* "$subpkgdir"/usr/lib/ +} + +libgphobos() { + pkgdesc="D programming language standard library for GCC" + depends= + + mkdir -p "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/lib/libgdruntime.so.* "$subpkgdir"/usr/lib/ + mv "$pkgdir"/usr/lib/libgphobos.so.* "$subpkgdir"/usr/lib/ +} + +gdc() { + pkgdesc="GCC-based D language compiler" + depends="gcc=$_gccrel libgphobos=$_gccrel musl-dev" + depends="$depends libucontext-dev" + + mkdir -p "$subpkgdir/$_gcclibexec" \ + "$subpkgdir"/$_gcclibdir/include/d/ \ + "$subpkgdir"/usr/lib \ + "$subpkgdir"/usr/bin + # Copy: The installed '.d' files, the static lib, the binary itself + # The shared libs are part of 'libgphobos' so one can run program + # without installing the compiler + mv "$pkgdir/$_gcclibexec/d21" "$subpkgdir/$_gcclibexec/" + mv "$pkgdir"/$_gcclibdir/include/d/* "$subpkgdir"/$_gcclibdir/include/d/ + mv "$pkgdir"/usr/lib/libgdruntime.a "$subpkgdir"/usr/lib/ + mv "$pkgdir"/usr/lib/libgphobos.a "$subpkgdir"/usr/lib/ + mv "$pkgdir"/usr/lib/libgphobos.spec "$subpkgdir"/usr/lib/ + mv "$pkgdir"/usr/bin/$CTARGET-gdc "$subpkgdir"/usr/bin/ + mv "$pkgdir"/usr/bin/gdc "$subpkgdir"/usr/bin/ +} + + +libgo() { + pkgdesc="Go runtime library for GCC" + depends= + + mkdir -p "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/lib/libgo.so.* "$subpkgdir"/usr/lib/ +} + +go() { + pkgdesc="Go support for GCC" + depends="gcc=$_gccrel libgo=$_gccrel !go" + + mkdir -p "$subpkgdir"/$_gcclibexec \ + "$subpkgdir"/usr/lib \ + "$subpkgdir"/usr/bin + mv "$pkgdir"/usr/lib/go "$subpkgdir"/usr/lib/ + mv "$pkgdir"/usr/bin/*gccgo "$subpkgdir"/usr/bin/ + mv "$pkgdir"/usr/bin/*go "$subpkgdir"/usr/bin + mv "$pkgdir"/usr/bin/*gofmt "$subpkgdir"/usr/bin + mv "$pkgdir"/$_gcclibexec/go1 "$subpkgdir"/$_gcclibexec/ + mv "$pkgdir"/$_gcclibexec/cgo "$subpkgdir"/$_gcclibexec/ + mv "$pkgdir"/$_gcclibexec/buildid "$subpkgdir"/$_gcclibexec/ + mv "$pkgdir"/$_gcclibexec/test2json "$subpkgdir"/$_gcclibexec/ + mv "$pkgdir"/$_gcclibexec/vet "$subpkgdir"/$_gcclibexec/ + mv "$pkgdir"/usr/lib/libgo.a \ + "$pkgdir"/usr/lib/libgo.so \ + "$pkgdir"/usr/lib/libgobegin.a \ + "$pkgdir"/usr/lib/libgolibbegin.a \ + "$subpkgdir"/usr/lib/ +} + +libgfortran() { + pkgdesc="Fortran runtime library for GCC" + depends= + + mkdir -p "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/lib/libgfortran.so.* "$subpkgdir"/usr/lib/ +} + +libquadmath() { + replaces="gcc" + pkgdesc="128-bit math library for GCC" + depends= + + mkdir -p "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/lib/libquadmath.so.* "$subpkgdir"/usr/lib/ +} + +gfortran() { + pkgdesc="GNU Fortran Compiler" + depends="gcc=$_gccrel libgfortran=$_gccrel" + $_libquadmath && depends="$depends libquadmath=$_gccrel" + replaces="gcc" + + mkdir -p "$subpkgdir"/$_gcclibexec \ + "$subpkgdir"/$_gcclibdir \ + "$subpkgdir"/usr/lib \ + "$subpkgdir"/usr/bin + mv "$pkgdir"/usr/bin/*gfortran "$subpkgdir"/usr/bin/ + mv "$pkgdir"/usr/lib/libgfortran.a \ + "$pkgdir"/usr/lib/libgfortran.so \ + "$subpkgdir"/usr/lib/ + if $_libquadmath; then + mv "$pkgdir"/usr/lib/libquadmath.a \ + "$pkgdir"/usr/lib/libquadmath.so \ + "$subpkgdir"/usr/lib/ + fi + mv "$pkgdir"/$_gcclibdir/finclude "$subpkgdir"/$_gcclibdir/ + mv "$pkgdir"/$_gcclibexec/f951 "$subpkgdir"/$_gcclibexec + mv "$pkgdir"/usr/lib/libgfortran.spec "$subpkgdir"/$_gcclibdir +} + +libgnat() { + pkgdesc="GNU Ada runtime shared libraries" + depends= + + mkdir -p "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/lib/libgna*.so "$subpkgdir"/usr/lib/ +} + +libgnatstatic() { + pkgdesc="GNU Ada static libraries" + depends= + + mkdir -p "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/lib/libgna*.a "$subpkgdir"/usr/lib/ +} + +gnat() { + pkgdesc="Ada support for GCC" + depends="gcc=$_gccrel" + provides="$pkgname-gnat-bootstrap" + [ "$CHOST" = "$CTARGET" ] && depends="$depends libgnat=$_gccrel" + + mkdir -p "$subpkgdir"/$_gcclibexec \ + "$subpkgdir"/$_gcclibdir \ + "$subpkgdir"/usr/bin + mv "$pkgdir"/$_gcclibexec/*gnat* "$subpkgdir"/$_gcclibexec/ + mv "$pkgdir"/$_gcclibdir/*ada* "$subpkgdir"/$_gcclibdir/ + mv "$pkgdir"/usr/bin/*gnat* "$subpkgdir"/usr/bin/ +} + +sha512sums="0ef281e6633b8bef7ce24d1448ec7b96aef66e414f90821a9a021dcd98eca8895d217d9d95b70fd9c96113689cd026aec951edc356462e439a9350edb4009df6 gcc-10.3.1_git20210424.tar.xz +d1e10db83a04c02d99f9f6ce03f949b83ccd013674773dcb08992c604048df6a08bf9bd16f74e3c60ea85fd861fb08c1fa9fe17c304af9bfc9a032b81f1ac9eb 0001-posix_memalign.patch +a77c7ebd994b5780cc5209f33ace24fc4d04353638dcdb14af192b0be5b0e5be397218ddba40e577af889a267af1aa69c1def474207a6661a37c3f5c15002bcb 0002-gcc-poison-system-directories.patch +108ad63f61e61f627a75613605962021c08bbde584f3c0507d6a07c6112487847ce89699d1d80efb9201c4eab3440ba66f2eeb781bd259fdfc9c87b3baee1e27 0003-Turn-on-Wl-z-relro-z-now-by-default.patch +dc28895223fe7ce531648225da3cd15e20c26a9be0248fdd66f11efb153647776bdbe8109097d87a087c4443e809a0d425848bdeae1442135c52a13bdd06ef75 0004-Turn-on-D_FORTIFY_SOURCE-2-by-default-for-C-C-ObjC-O.patch +ce7a5f243072284e767510083c57250dd5f1dcdcae102cf1ecbb06f36ea286b00b1f84dc32e5fdb76bac77b52ef3e4e650cff7cc0d14d94487a40ca9d5605bbd 0005-On-linux-targets-pass-as-needed-by-default-to-the-li.patch +f5458adfd23f51fa54fb690ec322552d7cadc3afa5773e13e73832c56832854ff14a73ff480c9990731ce929c5a4df35bc20247239268221b9af40ba37331228 0006-Enable-Wformat-and-Wformat-security-by-default.patch +2601b0de5fe402cdd9a3d87c2a3e959154c2ee413989db21fbc232f169b20d94807a1f89ff5ebb650a143d59b4b48187b338832d8de577fa47bfdd1b76313114 0007-Enable-Wtrampolines-by-default.patch +3eedfe70c85d963845a658444d8692792a34af8b5e0fa800991bf1e0e2c9ff3196c50f11a284cfaca5d48b4c78b614febf38339918c7fa7a7f4723a1f6bdad16 0008-Disable-ssp-on-nostdlib-nodefaultlibs-and-ffreestand.patch +6a4b6843cb27b560ac4327b17718806bac4b602903f696222617148a52e9918144648cc45642293beb7c8fd48eba325c115e1dcaa4adec85e1caff0ea33d2a8a 0009-Ensure-that-msgfmt-doesn-t-encounter-problems-during.patch +af174250b4fbcc3664bed51d919695511b538f2f3b65532383591f511bede3d13a1ade29aea66598d6df17f2e931a2d171f01c4e7008b4f468cfb13dc5f2b4cf 0010-Don-t-declare-asprintf-if-defined-as-a-macro.patch +aabac76659e3fa96fa7b4ee2571672c840c3dd37314f16516038d3934333a42b20442a967afce5a35a326685c3c8ef384fc97dc8f4dae57479038f5431e33c19 0011-libiberty-copy-PIC-objects-during-build-process.patch +36702acf0c9b34adb0b23b74167e5358c706246cc88ce569d4462555bb48288d5d633298aa447ef023c6f75de86dfa7d4ebbf3c43593e1279837ebd47061be0f 0012-libitm-disable-FORTIFY.patch +79912633ee707c60c66abf6ee16159db3357e4e75d4254f7f38cbc0119c2adfcfa2b8c6b1df3885526d68e49f88e2a0c87969a784ed8a1025a680a4f18acd06c 0013-libgcc_s.patch +c8c6f4e967afb5d4a9eccd917f6338a61547cc2fabbf56b25e27220b4f3c85f5002477bf2f9d05a911185cee8dcba3a12d3ad24c0d7b1d3b67a3a53bfea702c6 0014-nopie.patch +d8d8556a6192d7695e1aeb1e64bf98a02b068c427442dd9c23d2b9a863c504e577f35e0890b5f0a184c687ce9315cecff3d2e0bb82f19531a493efb72b54cfe7 0015-libffi-use-__linux__-instead-of-__gnu_linux__-for-mu.patch +b3fb29187561fef84b6eb0b35a582c79833203f689e5bf884146cd9a71ec407e0e3b27b0bd4953143d00879ce32331e92741e1c7229ca291ebf13dfd8f5d409c 0016-dlang-update-zlib-binding.patch +2a03683d5e00cc65f8ebc83638953dff89981069943169874df03f4f3a22348b960780250d9240505acf5b1bfbe154d57d14f310f29a94b76404f50611da9000 0017-dlang-fix-fcntl-on-mips-add-libucontext-dep.patch +3df60839e5337fccdd228ebf753fb0dbf672aefca5f3f16329b99c813b907f44e1ce4948ce7f692dca316eb307b83ae9f5028cf1875eb3c9fee85b2dee7bfe83 0018-ada-fix-shared-linking.patch +bd60be22341b508b4b5cb66eb48723d0f48770745352c60cfe146efa4d18ec58cccbb37f85b98dc0432e52bb5dc8dc1f28b3a3ca50d1ca6db68eb38df970e5aa 0019-build-fix-CXXFLAGS_FOR_BUILD-passing.patch +333f9c7a1935dc4f29783fa31c254bda6339c30ee770eb30d585ac422cd0f69701b5d988f9493471e4c83cf20937050f33320852a83ed6dfb2e739ee3539ca0e 0020-add-fortify-headers-paths.patch +053b0339936cc0469e8708ccc086fa1dabe8572199530e1e78a93551340dd35467a07273e19d2cbc7fe915b7a5bdf95c128718ba0518b67b9668ef0316b7aa06 0021-Alpine-musl-package-provides-libssp_nonshared.a.-We-.patch +7b3d849cdbdee5855918db4114de8f989ec5d612cddc7551eb63ca2878e69e3566353bbfafa9205a161ffd51c5aedd367de6ad82cd5ebf6cb28c716a8d447bb5 0022-DP-Use-push-state-pop-state-for-gold-as-well-when-li.patch +6b3c0fa81cebaf32948657bddaac99024f45c2fc19ac8bc504f3773b6458099b9907e310e162952973bdd41c9fc011e7a50bc8fa86cc0ebec9dd4c69830a012b 0023-Pure-64-bit-MIPS.patch +da634721fa9cba18e4f527b2cdbe6896c0251ce43865c6fbf29a7281d766c3a8f98e2ddd345b801c25b7ceb85880150ae9cc422aa8891b1fc28a3dc40bcd3114 0024-use-pure-64-bit-configuration-where-appropriate.patch +64b58a273993224f93c68cddfacc1b3da6b0900b2983f27f8db39b4375afa97cce564739c8fc320666821f6de526e54acbc4920c7e16612303b3d25aed34d5f1 0025-always-build-libgcc_eh.a.patch +6004be7d683993c175f819e1d62767b6ca2b80643917bb584ffffe2aee9fd5ad9745f91651ad5d1d00aed390e7346262b5c28bec356efd9ff1c85e4b54bcfe2e 0026-ada-libgnarl-compatibility-for-musl.patch +7a3ce107cc55356ac46f3a217eea1cf9cdddd43fd3fede048a26e5da2280f0af9f806392942d2896a0f841ca0b0b0eaceb4e20f09edee7a743b515d3553fc8b3 0027-ada-musl-support-fixes.patch +0cd8303456ec5479942970679352fe8bcd259b8b04bffba458545abdfac87163a8fb8e55c3aa505c516af8fd0a1bfb5f2ee4c6027ec9bcb0b0d3564469a18e23 0028-gcc-go-Use-_off_t-type-instead-of-_loff_t.patch +6cc82829bb8bf8ffb473e4f2f9c2f657a4078290fc7c3208d199c0b07c2c3a7575a0c423e52fc02fd96c81158ab2e7ad33ccb651523ba80e00dee9e503d19c6d 0029-gcc-go-Don-t-include-sys-user.h.patch +868e0cf5d32412c557d7835e03eb23621745179e77c87d69b810f8ec968cf80606cb5cb8085e5e125f08e809d5e3ff50c4de869d94caca5f4257669237a29b92 0030-gcc-go-Fix-ucontext_t-on-PPC64.patch +257814e2dc39bf01dedc3efe9f50029bdc230e112a0e739d0547896212b87bcdb9d40d4632a237137c91e2d9605b2256ebd45ee005920a5c4e401e699ce69f46 0031-gcc-go-Fix-handling-of-signal-34-on-musl.patch +0e33205e6ef0b58d12eb80d3fd6ce7361e9e3a86ba2ae781745133be1f0fea6a1e95fd58331765f6bb599f4ad355224c954db4fbaf804b9e4c0ea01dbaae1638 0032-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch +bb1e3bbea65644435134910e04b8d4de27642026371b19f4faf51b90e32af08e7181b3198e936b3626cba2126f8f9182ce39f6b8c8849b6b27f56a1c45e4f8c5 0033-gcc-go-Fix-st_-a-m-c-tim-fields-in-generated-sysinfo.patch +0758417ab682ee6d4b75f1ba2d0c1f568e115a16625eb664066c1862178a43ae717396c5d61a355a08fc01929041abebbf33bc58176a0b78ab384aba7d2ed8ba 0034-gcc-go-signal-34-is-special-on-musl-libc.patch +d0b132d1bb9a455af23829a9da4ff89c27eff3f642e2280712667753d552fc214424470cad4cecd0ae39052553b6a22d7dc7a20eebfd1cb976d98552b00b9dcd 0035-gcc-go-Prefer-_off_t-over-_off64_t.patch +a21844975ff13317ed7985b5f5b257a0bc1dd961360b6a6f36bf52151b8edf5ecf38fbdd47cb2c28c13ed3dfbf4ca112d91d81373fd3e2c5992aba35296645af 0036-gcc-go-undef-SETCONTEXT_CLOBBERS_TLS-in-proc.c.patch +0217263fc1fcfbde92fcebfc626b2cf0ba30e704b4fbe5a11f55d9ca5b579cceac3ba9ec45e7f53cd8805678b69fb6e5ab1295e67938b9c83f82e44ddebd0a85 0037-gcc-go-link-to-libucontext.patch +8a90ce84d493bfcdcad4cb1a02a320dca18e8178e717451087501b059ca00ab8f6b73d628bcb3f49c5c6702b7222b063d3c0803d093e2c6f58820b6aa578969e 0038-gcc-go-Disable-printing-of-unaccessible-ppc64-struct.patch +a3e7362fa95d5ffa56b0d8ea73f6f8e867409ae3b85d041aa0591dba093c5bb1d30f3294151c5142e8d1df91f4d138e9f4484009b8a675c8fc3b754a34c7648e 0039-CRuntime_Musl-Support-v1.2.0-for-32-bits.patch +dc7a8f6dc885dc34229128a716531b375ec4e8247a8522adb623c5a6b39db60ff471436b360a25f0310ee16fe1a6ec85ff64398cbae2677534626972ac01db22 0040-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch +046bfe95d6de9df148e6c410b5d23a49c488ab41d95e599fc381a2b7d190e6d7d99de59fa8cd8c3a711ee2310426f3cdcd323cf887c8d11543e119d205659b6a 0041-Use-generic-errstr.go-implementation-on-musl.patch" diff --git a/tests/packagedcode/data/bashparse/APKBUILD-gcc.sh-expected.json b/tests/packagedcode/data/bashparse/APKBUILD-gcc.sh-expected.json new file mode 100644 index 00000000000..5731eea32dc --- /dev/null +++ b/tests/packagedcode/data/bashparse/APKBUILD-gcc.sh-expected.json @@ -0,0 +1,29 @@ +[ + { + "_pkgbase": "10.3.1", + "pkgver": "10.3.1_git20210424", + "pkgname": "", + "pkgrel": "2", + "pkgdesc": "The GNU Compiler Collection", + "url": "https://gcc.gnu.org", + "arch": "all", + "license": "GPL-2.0-or-later LGPL-2.1-or-later", + "_gccrel": "10.3.1_git20210424-r2", + "depends": "binutils", + "makedepends_build": "gccg++bisonflextexinfogawkzipgmp-devmpfr-devmpc1-devzlib-dev", + "makedepends_host": "linux-headers gmp-dev mpfr-dev mpc1-dev isl-dev zlib-dev !gettext-dev libucontext-dev", + "subpackages": " ", + "replaces": "libstdc++ binutils", + "_libgomp": "true", + "_libgcc": "true", + "_libatomic": "true", + "_libitm": "true", + "LANG_ADA": "false;;", + "_languages": "c", + "makedepends": "gccg++bisonflextexinfogawkzipgmp-devmpfr-devmpc1-devzlib-devlinux-headersgmp-devmpfr-devmpc1-devisl-devzlib-dev!gettext-devlibucontext-dev", + "_gcclibdir": "/usr/lib/gcc//10.3.1", + "_gcclibexec": "/usr/libexec/gcc//10.3.1", + "sha512sums": "0ef281e6633b8bef7ce24d1448ec7b96aef66e414f90821a9a021dcd98eca8895d217d9d95b70fd9c96113689cd026aec951edc356462e439a9350edb4009df6 gcc-10.3.1_git20210424.tar.xz\nd1e10db83a04c02d99f9f6ce03f949b83ccd013674773dcb08992c604048df6a08bf9bd16f74e3c60ea85fd861fb08c1fa9fe17c304af9bfc9a032b81f1ac9eb 0001-posix_memalign.patch\na77c7ebd994b5780cc5209f33ace24fc4d04353638dcdb14af192b0be5b0e5be397218ddba40e577af889a267af1aa69c1def474207a6661a37c3f5c15002bcb 0002-gcc-poison-system-directories.patch\n108ad63f61e61f627a75613605962021c08bbde584f3c0507d6a07c6112487847ce89699d1d80efb9201c4eab3440ba66f2eeb781bd259fdfc9c87b3baee1e27 0003-Turn-on-Wl-z-relro-z-now-by-default.patch\ndc28895223fe7ce531648225da3cd15e20c26a9be0248fdd66f11efb153647776bdbe8109097d87a087c4443e809a0d425848bdeae1442135c52a13bdd06ef75 0004-Turn-on-D_FORTIFY_SOURCE-2-by-default-for-C-C-ObjC-O.patch\nce7a5f243072284e767510083c57250dd5f1dcdcae102cf1ecbb06f36ea286b00b1f84dc32e5fdb76bac77b52ef3e4e650cff7cc0d14d94487a40ca9d5605bbd 0005-On-linux-targets-pass-as-needed-by-default-to-the-li.patch\nf5458adfd23f51fa54fb690ec322552d7cadc3afa5773e13e73832c56832854ff14a73ff480c9990731ce929c5a4df35bc20247239268221b9af40ba37331228 0006-Enable-Wformat-and-Wformat-security-by-default.patch\n2601b0de5fe402cdd9a3d87c2a3e959154c2ee413989db21fbc232f169b20d94807a1f89ff5ebb650a143d59b4b48187b338832d8de577fa47bfdd1b76313114 0007-Enable-Wtrampolines-by-default.patch\n3eedfe70c85d963845a658444d8692792a34af8b5e0fa800991bf1e0e2c9ff3196c50f11a284cfaca5d48b4c78b614febf38339918c7fa7a7f4723a1f6bdad16 0008-Disable-ssp-on-nostdlib-nodefaultlibs-and-ffreestand.patch\n6a4b6843cb27b560ac4327b17718806bac4b602903f696222617148a52e9918144648cc45642293beb7c8fd48eba325c115e1dcaa4adec85e1caff0ea33d2a8a 0009-Ensure-that-msgfmt-doesn-t-encounter-problems-during.patch\naf174250b4fbcc3664bed51d919695511b538f2f3b65532383591f511bede3d13a1ade29aea66598d6df17f2e931a2d171f01c4e7008b4f468cfb13dc5f2b4cf 0010-Don-t-declare-asprintf-if-defined-as-a-macro.patch\naabac76659e3fa96fa7b4ee2571672c840c3dd37314f16516038d3934333a42b20442a967afce5a35a326685c3c8ef384fc97dc8f4dae57479038f5431e33c19 0011-libiberty-copy-PIC-objects-during-build-process.patch\n36702acf0c9b34adb0b23b74167e5358c706246cc88ce569d4462555bb48288d5d633298aa447ef023c6f75de86dfa7d4ebbf3c43593e1279837ebd47061be0f 0012-libitm-disable-FORTIFY.patch\n79912633ee707c60c66abf6ee16159db3357e4e75d4254f7f38cbc0119c2adfcfa2b8c6b1df3885526d68e49f88e2a0c87969a784ed8a1025a680a4f18acd06c 0013-libgcc_s.patch\nc8c6f4e967afb5d4a9eccd917f6338a61547cc2fabbf56b25e27220b4f3c85f5002477bf2f9d05a911185cee8dcba3a12d3ad24c0d7b1d3b67a3a53bfea702c6 0014-nopie.patch\nd8d8556a6192d7695e1aeb1e64bf98a02b068c427442dd9c23d2b9a863c504e577f35e0890b5f0a184c687ce9315cecff3d2e0bb82f19531a493efb72b54cfe7 0015-libffi-use-__linux__-instead-of-__gnu_linux__-for-mu.patch\nb3fb29187561fef84b6eb0b35a582c79833203f689e5bf884146cd9a71ec407e0e3b27b0bd4953143d00879ce32331e92741e1c7229ca291ebf13dfd8f5d409c 0016-dlang-update-zlib-binding.patch\n2a03683d5e00cc65f8ebc83638953dff89981069943169874df03f4f3a22348b960780250d9240505acf5b1bfbe154d57d14f310f29a94b76404f50611da9000 0017-dlang-fix-fcntl-on-mips-add-libucontext-dep.patch\n3df60839e5337fccdd228ebf753fb0dbf672aefca5f3f16329b99c813b907f44e1ce4948ce7f692dca316eb307b83ae9f5028cf1875eb3c9fee85b2dee7bfe83 0018-ada-fix-shared-linking.patch\nbd60be22341b508b4b5cb66eb48723d0f48770745352c60cfe146efa4d18ec58cccbb37f85b98dc0432e52bb5dc8dc1f28b3a3ca50d1ca6db68eb38df970e5aa 0019-build-fix-CXXFLAGS_FOR_BUILD-passing.patch\n333f9c7a1935dc4f29783fa31c254bda6339c30ee770eb30d585ac422cd0f69701b5d988f9493471e4c83cf20937050f33320852a83ed6dfb2e739ee3539ca0e 0020-add-fortify-headers-paths.patch\n053b0339936cc0469e8708ccc086fa1dabe8572199530e1e78a93551340dd35467a07273e19d2cbc7fe915b7a5bdf95c128718ba0518b67b9668ef0316b7aa06 0021-Alpine-musl-package-provides-libssp_nonshared.a.-We-.patch\n7b3d849cdbdee5855918db4114de8f989ec5d612cddc7551eb63ca2878e69e3566353bbfafa9205a161ffd51c5aedd367de6ad82cd5ebf6cb28c716a8d447bb5 0022-DP-Use-push-state-pop-state-for-gold-as-well-when-li.patch\n6b3c0fa81cebaf32948657bddaac99024f45c2fc19ac8bc504f3773b6458099b9907e310e162952973bdd41c9fc011e7a50bc8fa86cc0ebec9dd4c69830a012b 0023-Pure-64-bit-MIPS.patch\nda634721fa9cba18e4f527b2cdbe6896c0251ce43865c6fbf29a7281d766c3a8f98e2ddd345b801c25b7ceb85880150ae9cc422aa8891b1fc28a3dc40bcd3114 0024-use-pure-64-bit-configuration-where-appropriate.patch\n64b58a273993224f93c68cddfacc1b3da6b0900b2983f27f8db39b4375afa97cce564739c8fc320666821f6de526e54acbc4920c7e16612303b3d25aed34d5f1 0025-always-build-libgcc_eh.a.patch\n6004be7d683993c175f819e1d62767b6ca2b80643917bb584ffffe2aee9fd5ad9745f91651ad5d1d00aed390e7346262b5c28bec356efd9ff1c85e4b54bcfe2e 0026-ada-libgnarl-compatibility-for-musl.patch\n7a3ce107cc55356ac46f3a217eea1cf9cdddd43fd3fede048a26e5da2280f0af9f806392942d2896a0f841ca0b0b0eaceb4e20f09edee7a743b515d3553fc8b3 0027-ada-musl-support-fixes.patch\n0cd8303456ec5479942970679352fe8bcd259b8b04bffba458545abdfac87163a8fb8e55c3aa505c516af8fd0a1bfb5f2ee4c6027ec9bcb0b0d3564469a18e23 0028-gcc-go-Use-_off_t-type-instead-of-_loff_t.patch\n6cc82829bb8bf8ffb473e4f2f9c2f657a4078290fc7c3208d199c0b07c2c3a7575a0c423e52fc02fd96c81158ab2e7ad33ccb651523ba80e00dee9e503d19c6d 0029-gcc-go-Don-t-include-sys-user.h.patch\n868e0cf5d32412c557d7835e03eb23621745179e77c87d69b810f8ec968cf80606cb5cb8085e5e125f08e809d5e3ff50c4de869d94caca5f4257669237a29b92 0030-gcc-go-Fix-ucontext_t-on-PPC64.patch\n257814e2dc39bf01dedc3efe9f50029bdc230e112a0e739d0547896212b87bcdb9d40d4632a237137c91e2d9605b2256ebd45ee005920a5c4e401e699ce69f46 0031-gcc-go-Fix-handling-of-signal-34-on-musl.patch\n0e33205e6ef0b58d12eb80d3fd6ce7361e9e3a86ba2ae781745133be1f0fea6a1e95fd58331765f6bb599f4ad355224c954db4fbaf804b9e4c0ea01dbaae1638 0032-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch\nbb1e3bbea65644435134910e04b8d4de27642026371b19f4faf51b90e32af08e7181b3198e936b3626cba2126f8f9182ce39f6b8c8849b6b27f56a1c45e4f8c5 0033-gcc-go-Fix-st_-a-m-c-tim-fields-in-generated-sysinfo.patch\n0758417ab682ee6d4b75f1ba2d0c1f568e115a16625eb664066c1862178a43ae717396c5d61a355a08fc01929041abebbf33bc58176a0b78ab384aba7d2ed8ba 0034-gcc-go-signal-34-is-special-on-musl-libc.patch\nd0b132d1bb9a455af23829a9da4ff89c27eff3f642e2280712667753d552fc214424470cad4cecd0ae39052553b6a22d7dc7a20eebfd1cb976d98552b00b9dcd 0035-gcc-go-Prefer-_off_t-over-_off64_t.patch\na21844975ff13317ed7985b5f5b257a0bc1dd961360b6a6f36bf52151b8edf5ecf38fbdd47cb2c28c13ed3dfbf4ca112d91d81373fd3e2c5992aba35296645af 0036-gcc-go-undef-SETCONTEXT_CLOBBERS_TLS-in-proc.c.patch\n0217263fc1fcfbde92fcebfc626b2cf0ba30e704b4fbe5a11f55d9ca5b579cceac3ba9ec45e7f53cd8805678b69fb6e5ab1295e67938b9c83f82e44ddebd0a85 0037-gcc-go-link-to-libucontext.patch\n8a90ce84d493bfcdcad4cb1a02a320dca18e8178e717451087501b059ca00ab8f6b73d628bcb3f49c5c6702b7222b063d3c0803d093e2c6f58820b6aa578969e 0038-gcc-go-Disable-printing-of-unaccessible-ppc64-struct.patch\na3e7362fa95d5ffa56b0d8ea73f6f8e867409ae3b85d041aa0591dba093c5bb1d30f3294151c5142e8d1df91f4d138e9f4484009b8a675c8fc3b754a34c7648e 0039-CRuntime_Musl-Support-v1.2.0-for-32-bits.patch\ndc7a8f6dc885dc34229128a716531b375ec4e8247a8522adb623c5a6b39db60ff471436b360a25f0310ee16fe1a6ec85ff64398cbae2677534626972ac01db22 0040-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch\n046bfe95d6de9df148e6c410b5d23a49c488ab41d95e599fc381a2b7d190e6d7d99de59fa8cd8c3a711ee2310426f3cdcd323cf887c8d11543e119d205659b6a 0041-Use-generic-errstr.go-implementation-on-musl.patch" + }, + [] +] \ No newline at end of file diff --git a/tests/packagedcode/data/bashparse/APKBUILD-mongo.sh b/tests/packagedcode/data/bashparse/APKBUILD-mongo.sh new file mode 100644 index 00000000000..38a9823f4c2 --- /dev/null +++ b/tests/packagedcode/data/bashparse/APKBUILD-mongo.sh @@ -0,0 +1,100 @@ +# Maintainer: Marc Vertes +# Contributor: Filipp Andronov +pkgname=mongodb +pkgver=4.0.6 +pkgrel=1 +pkgdesc="A high-performance, open source, schema-free document-oriented database" +url="http://www.mongodb.org" +arch="x86_64 ppc64le aarch64" +options="!check" # out of disk space (>35GB) +license='AGPL3' +pkgusers="mongodb" +pkggroups="mongodb" +makedepends="scons py-setuptools py2-cheetah py2-typing py2-yaml paxmark + openssl-dev pcre-dev snappy-dev boost-dev asio-dev libpcap-dev + snowball-dev zlib-dev cyrus-sasl-dev yaml-cpp-dev curl-dev" +install="$pkgname.pre-install" +source="http://downloads.mongodb.org/src/mongodb-src-r${pkgver}.tar.gz + fix-backtrace.patch + fix-default-stacksize.patch + fix-elf-native-class.patch + fix-processinfo_linux.patch + fix-resolv.patch + fix-strerror_r.patch + wiredtiger.patch + + mongodb.confd + mongodb.initd + mongodb.logrotate + mongos.confd + mongos.initd + " + +builddir="$srcdir"/$pkgname-src-r$pkgver +_buildopts=" + --allocator=system \ + --disable-warnings-as-errors \ + --use-system-boost \ + --use-system-pcre \ + --use-system-stemmer \ + --use-system-snappy \ + --use-system-zlib \ + --use-system-yaml \ + --use-sasl-client \ + --ssl \ + " + +case $CARCH in + aarch64) _buildopts="$_buildopts CCFLAGS=-march=armv8-a+crc" ;; +esac + +build() { + cd "$builddir" + export SCONSFLAGS="$MAKEFLAGS" + scons $_buildopts --prefix=$pkgdir/usr core +} + +check() { + cd "$builddir" + + export SCONSFLAGS="$MAKEFLAGS" + scons $_buildopts unittests + python buildscripts/resmoke.py --suites=unittests --jobs=2 +} + +package() { + cd "$builddir" + + # install mongo targets + export SCONSFLAGS="$MAKEFLAGS" + scons $_buildopts --prefix=$pkgdir/usr install + + # java jit requires paxmark + paxmark -m "$pkgdir"/usr/bin/mongo* + + # install alpine specific files + install -dm700 "$pkgdir/var/lib/mongodb" + install -dm755 "$pkgdir/var/log/mongodb" + chown mongodb:mongodb "$pkgdir/var/lib/mongodb" "$pkgdir/var/log/mongodb" + + install -Dm755 "$srcdir/mongodb.initd" "$pkgdir/etc/init.d/mongodb" + install -Dm644 "$srcdir/mongodb.confd" "$pkgdir/etc/conf.d/mongodb" + install -Dm644 "$srcdir/mongodb.logrotate" "$pkgdir/etc/logrotate.d/mongodb" + + install -Dm755 "$srcdir/mongos.initd" "$pkgdir/etc/init.d/mongos" + install -Dm644 "$srcdir/mongos.confd" "$pkgdir/etc/conf.d/mongos" +} + +sha512sums="72e04154cf221833522bb0c2cc99acc2a86d20e2dcbf1f8c6ff0a870edf7b2529a55b6821c664805c00c12a311ae374a276ef1e3ccea1ed84fb125bb8726906a mongodb-src-r4.0.6.tar.gz +05c4331d028eb396e6cf52d96cdaa2af7199a03522e1a8211df2d36cb053ec093a51e9abf83c4dc00c09a0b1fa119a79bcc719fbc81a48f50ca1527c26613cf0 fix-backtrace.patch +1492137b0e3456d90a79617c1cd5ead5c71b1cfaae9ee41c75d56cd25f404ec73a690f95ce0d8c064c0a14206daca8070aa769b7cdfa904a338a425b52c293fa fix-default-stacksize.patch +56db8f43afc94713ac65b174189e2dd903b5e1eff0b65f1bdac159e52ad4de6606c449865d73bd47bffad6a8fc339777e2b11395596e9a476867d94a219c7925 fix-elf-native-class.patch +4b72d659eb6cf8c5b303bd91fe28d4cebeefda97be5b93df12a3e265283b4057ff299e14763a0b9f4b6eaae8da1725af35038b3aba578c66dd950f1703c28d42 fix-processinfo_linux.patch +aac12cffc452f1dc365c65944a015476c2011b0975144879d28938c690fe6e77b6bd672e040b4c04c02cb002224e24d6f13adb083324f424ef4cdb79a3a71f6b fix-resolv.patch +92cf2c55c68b975408ed2f7fde65da6b238b617dfaa0737a1c51ce19344dba11dd96c0a99f7671c1b7464f5114b3e820a32a25b1600d1c8217262b60fe0364ea fix-strerror_r.patch +ecbe6cb579b33dd4888096712f150772db06fd38219ca2a7679b1dc1ee73b0c3f5ee498af12ecd0265b5231a9fe6b7c12b2c1d606ed04caa6aa00c3ad3fe925a wiredtiger.patch +9bcd870742c31bf25f34188ddc3c414de1103e9860dea9f54eee276b89bc2cf1226abab1749c5cda6a6fb0880e541373754e5e83d63cc7189d4b9c274fd555c3 mongodb.confd +74009794d566dd9d70ec93ffd95c830ee4696165574ecf87398165637fb40799b38d182ef54c50fd0772d589be94ade7f7a49247f3d31c1f012cb4e44cc9f5df mongodb.initd +8c089b1a11f494e4148fb4646265964c925bf937633a65e395ee1361d42facf837871dd493a9a2e0f480ae0e0829dbd3ed60794c5334e2716332e131fc5c2c51 mongodb.logrotate +61d8734cef644187eeadc821c89e63a3fbf61860fe2db6e74557b1c6760fe83ba7549cb04f9e3aacea4d8e7e4d81a3b1bc0d5e29715eca33c4761adb17ea9ab7 mongos.confd +13aad7247b848ac58b2bc0b40a0d30d909e950380abd0c83fab0e2a394a42dc268a66dac53cf9feec6971739977470082cc4339cca827f41044cfe43803ef3f7 mongos.initd" diff --git a/tests/packagedcode/data/bashparse/APKBUILD-mongo.sh-expected.json b/tests/packagedcode/data/bashparse/APKBUILD-mongo.sh-expected.json new file mode 100644 index 00000000000..ab9312844c5 --- /dev/null +++ b/tests/packagedcode/data/bashparse/APKBUILD-mongo.sh-expected.json @@ -0,0 +1,19 @@ +[ + { + "pkgver": "4.0.6", + "pkgrel": "1", + "pkgdesc": "A high-performance, open source, schema-free document-oriented database", + "url": "http://www.mongodb.org", + "arch": "x86_64 ppc64le aarch64", + "options": "!check", + "pkgusers": "mongodb", + "pkggroups": "mongodb", + "makedepends": "scons py-setuptools py2-cheetah py2-typing py2-yaml paxmark\n\topenssl-dev pcre-dev snappy-dev boost-dev asio-dev libpcap-dev\n\tsnowball-dev zlib-dev cyrus-sasl-dev yaml-cpp-dev curl-dev", + "install": ".pre-install", + "source": "http://downloads.mongodb.org/src/mongodb-src-r4.0.6.tar.gzfix-backtrace.patchfix-default-stacksize.patchfix-elf-native-class.patchfix-processinfo_linux.patchfix-resolv.patchfix-strerror_r.patchwiredtiger.patchmongodb.confdmongodb.initdmongodb.logrotatemongos.confdmongos.initd", + "builddir": "", + "_buildopts": "\n\t--allocator=system \\\n\t--disable-warnings-as-errors \\\n\t--use-system-boost \\\n\t--use-system-pcre \\\n\t--use-system-stemmer \\\n\t--use-system-snappy \\\n\t--use-system-zlib \\\n\t--use-system-yaml \\\n\t--use-sasl-client \\\n\t--ssl \\\n\t", + "sha512sums": "72e04154cf221833522bb0c2cc99acc2a86d20e2dcbf1f8c6ff0a870edf7b2529a55b6821c664805c00c12a311ae374a276ef1e3ccea1ed84fb125bb8726906a mongodb-src-r4.0.6.tar.gz\n05c4331d028eb396e6cf52d96cdaa2af7199a03522e1a8211df2d36cb053ec093a51e9abf83c4dc00c09a0b1fa119a79bcc719fbc81a48f50ca1527c26613cf0 fix-backtrace.patch\n1492137b0e3456d90a79617c1cd5ead5c71b1cfaae9ee41c75d56cd25f404ec73a690f95ce0d8c064c0a14206daca8070aa769b7cdfa904a338a425b52c293fa fix-default-stacksize.patch\n56db8f43afc94713ac65b174189e2dd903b5e1eff0b65f1bdac159e52ad4de6606c449865d73bd47bffad6a8fc339777e2b11395596e9a476867d94a219c7925 fix-elf-native-class.patch\n4b72d659eb6cf8c5b303bd91fe28d4cebeefda97be5b93df12a3e265283b4057ff299e14763a0b9f4b6eaae8da1725af35038b3aba578c66dd950f1703c28d42 fix-processinfo_linux.patch\naac12cffc452f1dc365c65944a015476c2011b0975144879d28938c690fe6e77b6bd672e040b4c04c02cb002224e24d6f13adb083324f424ef4cdb79a3a71f6b fix-resolv.patch\n92cf2c55c68b975408ed2f7fde65da6b238b617dfaa0737a1c51ce19344dba11dd96c0a99f7671c1b7464f5114b3e820a32a25b1600d1c8217262b60fe0364ea fix-strerror_r.patch\necbe6cb579b33dd4888096712f150772db06fd38219ca2a7679b1dc1ee73b0c3f5ee498af12ecd0265b5231a9fe6b7c12b2c1d606ed04caa6aa00c3ad3fe925a wiredtiger.patch\n9bcd870742c31bf25f34188ddc3c414de1103e9860dea9f54eee276b89bc2cf1226abab1749c5cda6a6fb0880e541373754e5e83d63cc7189d4b9c274fd555c3 mongodb.confd\n74009794d566dd9d70ec93ffd95c830ee4696165574ecf87398165637fb40799b38d182ef54c50fd0772d589be94ade7f7a49247f3d31c1f012cb4e44cc9f5df mongodb.initd\n8c089b1a11f494e4148fb4646265964c925bf937633a65e395ee1361d42facf837871dd493a9a2e0f480ae0e0829dbd3ed60794c5334e2716332e131fc5c2c51 mongodb.logrotate\n61d8734cef644187eeadc821c89e63a3fbf61860fe2db6e74557b1c6760fe83ba7549cb04f9e3aacea4d8e7e4d81a3b1bc0d5e29715eca33c4761adb17ea9ab7 mongos.confd\n13aad7247b848ac58b2bc0b40a0d30d909e950380abd0c83fab0e2a394a42dc268a66dac53cf9feec6971739977470082cc4339cca827f41044cfe43803ef3f7 mongos.initd" + }, + [] +] \ No newline at end of file diff --git a/tests/packagedcode/data/bashparse/PKGBUILD-papermc.sh b/tests/packagedcode/data/bashparse/PKGBUILD-papermc.sh new file mode 100644 index 00000000000..de4383c6af6 --- /dev/null +++ b/tests/packagedcode/data/bashparse/PKGBUILD-papermc.sh @@ -0,0 +1,62 @@ +# Maintainer: Gordian Edenhofer + +pkgname=papermc +_pkgver=1.17.1 +_build=100 +_license_commit=40b3461 +pkgver="${_pkgver}+b${_build}" +pkgrel=3 +pkgdesc="Next generation of Minecraft server, compatible with Spigot plugins and offering uncompromising performance" +arch=('any') +url="https://papermc.io/" +license=('custom') +depends=('java-runtime-headless>=8' 'tmux' 'sudo' 'bash' 'awk' 'sed') +optdepends=("tar: needed in order to create world backups" + "netcat: required in order to suspend an idle server") +conflicts=('papermc-git') +backup=('etc/conf.d/papermc') +install="${pkgname}.install" +source=("papermc.${pkgver}.jar"::"https://papermc.io/api/v1/paper/${_pkgver}/${_build}/download" + "papermc-backup.service" + "papermc-backup.timer" + "papermc.service" + "papermc.conf" + "papermc.sh" + "papermc.tmpfiles" + "papermc.sysusers" + "LICENSE_${pkgver}.md"::"https://raw.githubusercontent.com/PaperMC/Paper/${_license_commit}/LICENSE.md") +noextract=("papermc.${pkgver}.jar") +sha512sums=('34366f0d5e116c011e2ff2dba884b3c5dda6444e0fb28115bc5e12ee839551a77ade8bc174939ecb8f818fc0eca65aa478d87f0b9082b894efbd587909dbfbb8' + 'a4fcc9f28436c0163e9414f2793fcbd4f6ea74772230cdff4a628246eae2a8008688b3dfb94d433f8f0887cd7eea3fe43ce25f9d5812d46e62179ff315b62895' + '51c5345155e8640d4f1eaef0c8cfb890ae46063f2d4e7a0fe181ad4c8ff7b96fea88b0f9fc74031d589dfd61602f37b440f183ca1859835930fe69d37508cd42' + 'f29c4044d9e3cc5ab137c21f7e62399b36d7e1f777d5558a39f7b4a01de75bdf2de0b8678e424accc03934ca7db9ebb6a22c78c8c4497759287dd55e1c3eb456' + 'fe268d7380f881229100700b1d4f4897904a630aa65b0b06bba08be5d5918f208d497e01fc5306deecd5d93a78cfdb7e9c7f1c3b910b3a414ce9af186a05224d' + 'bb0633de2da12b0f9e8c9ba29ef61c91785e9e6fb65f7712d60cf99d2045a38321073b78d7a7e1b34078e5627acbe42e8f3ad7164bbf6eef27dbbb3c5d41d748' + 'c40cba5dfbf5af5d206cd42fa2b43f2321b481f83ab79c9ce4eaa76f204abab48ff2d8b8526a1a3d82636be97f18596d4343b0efc72a7082642e4af8d1b561c5' + '115fe7213d7edd0e3159607a31b28edb6e6b3bd1d454d516973e38c8cf0b803275c2c4e59b29e2260561270d931c71bad134046535e5add309e0a8d055cde0ff' + '8621db1c6355b4467081ae1860a78a910c1ab3e50c8b1d71a70d701cca46131933c5d8d1352d42e0d79f75bd40e73e4fc825b9fb5be80326ef65c115244aa9df') + +_game="papermc" +_server_root="/srv/papermc" + +package() { + install -Dm644 ${_game}.conf "${pkgdir}/etc/conf.d/${_game}" + install -Dm755 ${_game}.sh "${pkgdir}/usr/bin/${_game}" + install -Dm644 ${_game}.service "${pkgdir}/usr/lib/systemd/system/${_game}.service" + install -Dm644 ${_game}-backup.service "${pkgdir}/usr/lib/systemd/system/${_game}-backup.service" + install -Dm644 ${_game}-backup.timer "${pkgdir}/usr/lib/systemd/system/${_game}-backup.timer" + install -Dm644 ${_game}.sysusers "${pkgdir}/usr/lib/sysusers.d/${_game}.conf" + install -Dm644 ${_game}.tmpfiles "${pkgdir}/usr/lib/tmpfiles.d/${_game}.conf" + install -Dm644 ${_game}.${pkgver}.jar "${pkgdir}/${_server_root}/${_game}.${pkgver}.jar" + ln -s "${_game}.${pkgver}.jar" "${pkgdir}${_server_root}/${_game}_server.jar" + + # Link the log files + mkdir -p "${pkgdir}/var/log/" + install -dm2755 "${pkgdir}/${_server_root}/logs" + ln -s "${_server_root}/logs" "${pkgdir}/var/log/${_game}" + + # Give the group write permissions and set user or group ID on execution + chmod g+ws "${pkgdir}${_server_root}" + + install -D ./LICENSE_${pkgver}.md "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" +} diff --git a/tests/packagedcode/data/bashparse/PKGBUILD-papermc.sh-expected.json b/tests/packagedcode/data/bashparse/PKGBUILD-papermc.sh-expected.json new file mode 100644 index 00000000000..1173c4329d0 --- /dev/null +++ b/tests/packagedcode/data/bashparse/PKGBUILD-papermc.sh-expected.json @@ -0,0 +1,25 @@ +[ + { + "pkgname": "papermc", + "_pkgver": "1.17.1", + "_build": "100", + "_license_commit": "40b3461", + "pkgver": "1.17.1+b100", + "pkgrel": "3", + "pkgdesc": "Next generation of Minecraft server, compatible with Spigot plugins and offering uncompromising performance", + "arch": "('any')", + "url": "https://papermc.io/", + "license": "('custom')", + "depends": "('java-runtime-headless>=8'", + "optdepends": "(\"tar:", + "conflicts": "('papermc-git')", + "backup": "('etc/conf.d/papermc')", + "install": "papermc.install", + "source": "(papermc.1.17.1+b100.jar::https://papermc.io/api/v1/paper/1.17.1/100/download", + "noextract": "(papermc.1.17.1+b100.jar)", + "sha512sums": "('34366f0d5e116c011e2ff2dba884b3c5dda6444e0fb28115bc5e12ee839551a77ade8bc174939ecb8f818fc0eca65aa478d87f0b9082b894efbd587909dbfbb8'", + "_game": "papermc", + "_server_root": "/srv/papermc" + }, + [] +] \ No newline at end of file diff --git a/tests/packagedcode/data/bashparse/bash.sh b/tests/packagedcode/data/bashparse/bash.sh new file mode 100644 index 00000000000..340856de49c --- /dev/null +++ b/tests/packagedcode/data/bashparse/bash.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash +export EDITOR=${EDITOR:=notepad} +WIN_BASE=`dirname $0` +UNIX_BASE=`cygpath "$WIN_BASE"` +export PATH="$PATH:$UNIX_BASE/${PYTHON_BIN_RELDIR_UNIX}:$UNIX_BASE/${PYTHON_BIN_RELDIR_UNIX}/Scripts" +export PYTHON_DIRECT=1 +export PYTHONUNBUFFERED=1 +if [[ $# > 0 ]]; then + $UNIX_BASE/${GIT_BIN_RELDIR_UNIX}/bin/bash.exe "$@" +else + $UNIX_BASE/${GIT_BIN_RELDIR_UNIX}/git-bash.exe & +fi diff --git a/tests/packagedcode/data/bashparse/bash.sh-expected.json b/tests/packagedcode/data/bashparse/bash.sh-expected.json new file mode 100644 index 00000000000..eca06903274 --- /dev/null +++ b/tests/packagedcode/data/bashparse/bash.sh-expected.json @@ -0,0 +1,7 @@ +[ + { + "WIN_BASE": "`dirname", + "UNIX_BASE": "`cygpath" + }, + [] +] \ No newline at end of file diff --git a/tests/packagedcode/data/bashparse/ebuild.sh b/tests/packagedcode/data/bashparse/ebuild.sh new file mode 100644 index 00000000000..37db90a914e --- /dev/null +++ b/tests/packagedcode/data/bashparse/ebuild.sh @@ -0,0 +1,422 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit desktop libtool qmake-utils systemd + +MY_PV=${PV/_beta/-b} +MY_P=${PN}-${MY_PV} + +DESCRIPTION="Featureful client/server network backup suite" +HOMEPAGE="https://www.bacula.org/" +SRC_URI="mirror://sourceforge/bacula/${MY_P}.tar.gz" + +LICENSE="AGPL-3" +SLOT="0" +KEYWORDS="amd64 ppc ~sparc x86" +IUSE="acl bacula-clientonly bacula-nodir bacula-nosd +batch-insert examples ipv6 logwatch mysql postgres qt5 readline +sqlite ssl static tcpd vim-syntax X" + +DEPEND=" + !bacula-clientonly? ( + !bacula-nodir? ( virtual/mta ) + postgres? ( dev-db/postgresql:=[threads] ) + mysql? ( || ( dev-db/mysql-connector-c dev-db/mariadb-connector-c ) ) + sqlite? ( dev-db/sqlite:3 ) + ) + dev-libs/gmp:0 + qt5? ( + dev-qt/qtcore:5 + dev-qt/qtgui:5 + dev-qt/qtwidgets:5 + dev-qt/qtsvg:5 + x11-libs/qwt:6 + ) + logwatch? ( sys-apps/logwatch ) + readline? ( sys-libs/readline:0 ) + static? ( + dev-libs/lzo[static-libs] + sys-libs/ncurses:=[static-libs] + sys-libs/zlib[static-libs] + acl? ( virtual/acl[static-libs(+)] ) + ssl? ( dev-libs/openssl:0=[static-libs] ) + ) + !static? ( + dev-libs/lzo + sys-libs/ncurses:= + sys-libs/zlib + acl? ( virtual/acl ) + ssl? ( dev-libs/openssl:0= ) + ) + tcpd? ( >=sys-apps/tcp-wrappers-7.6 ) +" +RDEPEND="${DEPEND} + acct-user/bacula + acct-group/bacula + !bacula-clientonly? ( + !bacula-nosd? ( + app-arch/mt-st + sys-block/mtx + ) + ) + vim-syntax? ( || ( app-editors/vim app-editors/gvim ) ) +" + +REQUIRED_USE=" + !bacula-clientonly? ( ^^ ( mysql postgres sqlite ) ) + static? ( bacula-clientonly ) +" + +S=${WORKDIR}/${MY_P} + +pkg_setup() { + #XOR and !bacula-clientonly controlled by REQUIRED_USE + use mysql && export mydbtype="mysql" + use postgres && export mydbtype="postgresql" + use sqlite && export mydbtype="sqlite3" + + if use bacula-clientonly && use static && use qt5; then + ewarn + ewarn "Building statically linked 'bat' is not supported. Ignorig 'qt5' useflag." + ewarn + fi +} + +src_prepare() { + # adjusts default configuration files for several binaries + # to /etc/bacula/ instead of ./ + pushd src >&/dev/null || die + for f in console/console.c dird/dird.c filed/filed.c \ + stored/bcopy.c stored/bextract.c stored/bls.c \ + stored/bscan.c stored/btape.c stored/stored.c \ + qt-console/main.cpp; do + sed -i -e 's|^\(#define CONFIG_FILE "\)|\1/etc/bacula/|g' "${f}" \ + || die "sed on ${f} failed" + done + popd >&/dev/null || die + + # bug 466688 drop deprecated categories from Desktop file + sed -i -e 's/Application;//' scripts/bat.desktop.in || die + + # bug 466690 Use CXXFLAGS instead of CFLAGS + sed -i -e 's/@CFLAGS@/@CXXFLAGS@/' autoconf/Make.common.in || die + + # drop automatic install of unneeded documentation (for bug 356499) + eapply -p0 "${FILESDIR}"/7.2.0/${PN}-7.2.0-doc.patch + + # bug #310087 + eapply "${FILESDIR}"/5.2.3/${PN}-5.2.3-as-needed.patch + + # bug #311161 + eapply -p0 "${FILESDIR}"/9.0.2/${PN}-9.0.2-lib-search-path.patch + + # bat needs to respect LDFLAGS and CFLAGS + eapply -p0 "${FILESDIR}"/9.0.6/${PN}-9.0.6-bat-pro.patch + + # bug #328701 + eapply -p0 "${FILESDIR}"/5.2.3/${PN}-5.2.3-openssl-1.patch + + eapply -p0 "${FILESDIR}"/9.6.3/${PN}-9.6.3-fix-static.patch + + # fix soname in libbaccat.so bug #602952 + eapply -p0 "${FILESDIR}/bacula-fix-sonames.patch" + + # do not strip binaries + sed -i -e "s/strip /# strip /" src/filed/Makefile.in || die + sed -i -e "s/strip /# strip /" src/console/Makefile.in || die + + # fix file not found error during make depend + eapply -p0 "${FILESDIR}"/7.0.2/${PN}-7.0.2-depend.patch + + eapply_user + + # Fix systemd unit files: + # bug 497748 + sed -i -e '/Requires/d' platforms/systemd/*.service.in || die + sed -i -e '/StandardOutput/d' platforms/systemd/*.service.in || die + # bug 504370 + sed -i -e '/Alias=bacula-dir/d' platforms/systemd/bacula-dir.service.in || die + # bug 584442 and 504368 + sed -i -e 's/@dir_user@/root/g' platforms/systemd/bacula-dir.service.in || die + + # build 'bat' for Qt5 + export QMAKE="$(qt5_get_bindir)"/qmake + + # adapt to >=Qt-5.9 (see bug #644566) + # qmake needs an existing target file to generate install instructions + sed -i -e 's#bins.files = bat#bins.files = .libs/bat#g' \ + src/qt-console/bat.pro.in || die + mkdir src/qt-console/.libs || die + touch src/qt-console/.libs/bat || die + chmod 755 src/qt-console/.libs/bat || die + + # fix handling of libressl version + # needs separate handling for =libressl2.7 + # (see bug #655520) + if has_version "&/dev/null || die + emake DESTDIR="${D}" install + popd >&/dev/null || die + fi + fi + + # Install all man pages + doman "${S}"/manpages/*.[18] + + if ! use qt5; then + rm -vf "${D}"/usr/share/man/man1/bat.1* + fi + rm -vf "${D}"/usr/share/man/man1/bacula-tray-monitor.1* + + if use bacula-clientonly || use bacula-nodir ; then + rm -vf "${D}"/usr/libexec/bacula/create_*_database + rm -vf "${D}"/usr/libexec/bacula/drop_*_database + rm -vf "${D}"/usr/libexec/bacula/make_*_tables + rm -vf "${D}"/usr/libexec/bacula/update_*_tables + rm -vf "${D}"/usr/libexec/bacula/drop_*_tables + rm -vf "${D}"/usr/libexec/bacula/grant_*_privileges + rm -vf "${D}"/usr/libexec/bacula/*_catalog_backup + fi + if use bacula-clientonly || use bacula-nosd; then + rm -vf "${D}"/usr/libexec/bacula/disk-changer + rm -vf "${D}"/usr/libexec/bacula/mtx-changer + rm -vf "${D}"/usr/libexec/bacula/dvd-handler + fi + + # documentation + dodoc ChangeLog ReleaseNotes SUPPORT + + # install examples (bug #457504) + if use examples; then + docinto examples/ + dodoc -r examples/* + fi + + # vim-files + if use vim-syntax; then + insinto /usr/share/vim/vimfiles/syntax + doins scripts/bacula.vim + insinto /usr/share/vim/vimfiles/ftdetect + newins scripts/filetype.vim bacula_ft.vim + fi + + # setup init scripts + myscripts="bacula-fd" + if ! use bacula-clientonly; then + if ! use bacula-nodir; then + myscripts="${myscripts} bacula-dir" + fi + if ! use bacula-nosd; then + myscripts="${myscripts} bacula-sd" + fi + fi + for script in ${myscripts}; do + # copy over init script and config to a temporary location + # so we can modify them as needed + cp "${FILESDIR}/${script}".confd "${T}/${script}".confd || die "failed to copy ${script}.confd" + cp "${FILESDIR}/newscripts/${script}".initd "${T}/${script}".initd || die "failed to copy ${script}.initd" + + # now set the database dependancy for the director init script + case "${script}" in + bacula-dir) + case "${mydbtype}" in + sqlite3) + # sqlite databases don't have a daemon + sed -i -e 's/need "%database%"/:/g' "${T}/${script}".initd || die + ;; + *) + # all other databases have daemons + sed -i -e "s:%database%:${mydbtype}:" "${T}/${script}".initd || die + ;; + esac + ;; + *) + ;; + esac + + # install init script and config + newinitd "${T}/${script}".initd "${script}" + newconfd "${T}/${script}".confd "${script}" + done + + systemd_dounit "${S}"/platforms/systemd/bacula-{dir,fd,sd}.service + + # make sure the working directory exists + diropts -m0750 + keepdir /var/lib/bacula + + # make sure bacula group can execute bacula libexec scripts + fowners -R root:bacula /usr/libexec/bacula +} + +pkg_postinst() { + if use bacula-clientonly; then + fowners root:bacula /var/lib/bacula + else + fowners bacula:bacula /var/lib/bacula + fi + + einfo + einfo "A group 'bacula' has been created. Any users you add to this" + einfo "group have access to files created by the daemons." + einfo + einfo "A user 'bacula' has been created. Please see the bacula manual" + einfo "for information about running bacula as a non-root user." + einfo + + if ! use bacula-clientonly && ! use bacula-nodir; then + einfo + einfo "If this is a new install, you must create the ${mydbtype} databases with:" + einfo " /usr/libexec/bacula/create_${mydbtype}_database" + einfo " /usr/libexec/bacula/make_${mydbtype}_tables" + einfo " /usr/libexec/bacula/grant_${mydbtype}_privileges" + einfo + + ewarn "ATTENTION!" + ewarn "The format of the database may have changed." + ewarn "If you just upgraded from a version below 9.0.0 you must run" + ewarn "'update_bacula_tables' now." + ewarn "Make sure to have a backup of your catalog before." + ewarn + fi + + if use sqlite; then + einfo + einfo "Be aware that Bacula does not officially support SQLite database anymore." + einfo "Best use it only for a client-only installation. See Bug #445540." + einfo + fi + + einfo "Please note that 'bconsole' will always be installed. To compile 'bat'" + einfo "you have to enable 'USE=qt5'." + einfo + einfo "/var/lib/bacula/tmp was configured for archivedir. This dir will be used during" + einfo "restores, so be sure to set it to an appropriate in dir in the bacula config." +} diff --git a/tests/packagedcode/data/bashparse/ebuild.sh-expected.json b/tests/packagedcode/data/bashparse/ebuild.sh-expected.json new file mode 100644 index 00000000000..ebe22e71b59 --- /dev/null +++ b/tests/packagedcode/data/bashparse/ebuild.sh-expected.json @@ -0,0 +1,19 @@ +[ + { + "EAPI": "7", + "MY_PV": "", + "MY_P": "-", + "DESCRIPTION": "Featureful client/server network backup suite", + "HOMEPAGE": "https://www.bacula.org/", + "SRC_URI": "mirror://sourceforge/bacula/-.tar.gz", + "LICENSE": "AGPL-3", + "SLOT": "0", + "KEYWORDS": "amd64 ppc ~sparc x86", + "IUSE": "acl bacula-clientonly bacula-nodir bacula-nosd +batch-insert examples ipv6 logwatch mysql postgres qt5 readline +sqlite ssl static tcpd vim-syntax X", + "DEPEND": "\n\t!bacula-clientonly? (\n\t\t!bacula-nodir? ( virtual/mta )\n\t\tpostgres? ( dev-db/postgresql:=[threads] )\n\t\tmysql? ( || ( dev-db/mysql-connector-c dev-db/mariadb-connector-c ) )\n\t\tsqlite? ( dev-db/sqlite:3 )\n\t)\n\tdev-libs/gmp:0\n\tqt5? (\n\t\tdev-qt/qtcore:5\n\t\tdev-qt/qtgui:5\n\t\tdev-qt/qtwidgets:5\n\t\tdev-qt/qtsvg:5\n\t\tx11-libs/qwt:6\n\t)\n\tlogwatch? ( sys-apps/logwatch )\n\treadline? ( sys-libs/readline:0 )\n\tstatic? (\n\t\tdev-libs/lzo[static-libs]\n\t\tsys-libs/ncurses:=[static-libs]\n\t\tsys-libs/zlib[static-libs]\n\t\tacl? ( virtual/acl[static-libs(+)] )\n\t\tssl? ( dev-libs/openssl:0=[static-libs] )\n\t)\n\t!static? (\n\t\tdev-libs/lzo\n\t\tsys-libs/ncurses:=\n\t\tsys-libs/zlib\n\t\tacl? ( virtual/acl )\n\t\tssl? ( dev-libs/openssl:0= )\n\t)\n\ttcpd? ( >=sys-apps/tcp-wrappers-7.6 )\n", + "RDEPEND": "!bacula-clientonly?(!bacula-nodir?(virtual/mta)postgres?(dev-db/postgresql:=[threads])mysql?(||(dev-db/mysql-connector-cdev-db/mariadb-connector-c))sqlite?(dev-db/sqlite:3))dev-libs/gmp:0qt5?(dev-qt/qtcore:5dev-qt/qtgui:5dev-qt/qtwidgets:5dev-qt/qtsvg:5x11-libs/qwt:6)logwatch?(sys-apps/logwatch)readline?(sys-libs/readline:0)static?(dev-libs/lzo[static-libs]sys-libs/ncurses:=[static-libs]sys-libs/zlib[static-libs]acl?(virtual/acl[static-libs(+)])ssl?(dev-libs/openssl:0=[static-libs]))!static?(dev-libs/lzosys-libs/ncurses:=sys-libs/zlibacl?(virtual/acl)ssl?(dev-libs/openssl:0=))tcpd?(>=sys-apps/tcp-wrappers-7.6)acct-user/baculaacct-group/bacula!bacula-clientonly?(!bacula-nosd?(app-arch/mt-stsys-block/mtx))vim-syntax?(||(app-editors/vimapp-editors/gvim))", + "REQUIRED_USE": "\n\t!bacula-clientonly? ( ^^ ( mysql postgres sqlite ) )\n\tstatic? ( bacula-clientonly )\n", + "S": "/-" + }, + [] +] \ No newline at end of file diff --git a/tests/packagedcode/test_bashparse.py b/tests/packagedcode/test_bashparse.py index c94d0dfc5a0..57420157a10 100644 --- a/tests/packagedcode/test_bashparse.py +++ b/tests/packagedcode/test_bashparse.py @@ -7,13 +7,87 @@ # See https://aboutcode.org for more information about nexB OSS projects. # +from functools import partial import os.path +from commoncode import text from packagedcode import bashparse from packagedcode.bashparse import ShellVariable +from packages_test_utils import check_result_equals_expected_json +from packages_test_utils import get_test_files from packages_test_utils import PackageTester +test_data_dir = os.path.join(os.path.dirname(__file__), 'data') + + +def create_test_function(test_file_loc, tested_function, test_name, regen=False): + """ + Return a test function closed on test arguments to run + `tested_function(test_file_loc)`. + """ + + def test_package(self): + test_loc = self.get_test_loc(test_file_loc, must_exist=True) + result = tested_function(test_loc) + check_result_equals_expected_json( + result=result, + expected_loc=test_loc + '-expected.json', + regen=regen, + ) + + test_package.__name__ = test_name + return test_package + + +def build_tests( + test_dir, + test_file_suffix, + clazz, + tested_function, + test_method_prefix, + regen=False, +): + """ + Dynamically build test methods from files in ``test_dir`` ending with + ``test_file_suffix`` and attach a test method to the ``clazz`` test class. + + For each method: + - run ``tested_function`` with a test file with``test_file_suffix`` + ``tested_function`` should return a JSON-serializable object. + - set the name prefixed with ``test_method_prefix``. + - check that a test expected file named -expected.json` + has content matching the results of the ``tested_function`` returned value. + """ + assert issubclass(clazz, PackageTester) + + # loop through all items and attach a test method to our test class + for test_file_path in get_test_files(test_dir, test_file_suffix): + test_name = test_method_prefix + text.python_safe_name(test_file_path) + test_file_loc = os.path.join(test_dir, test_file_path) + + test_method = create_test_function( + test_file_loc=test_file_loc, + tested_function=tested_function, + test_name=test_name, + regen=regen, + ) + setattr(clazz, test_name, test_method) + + +class TestBashParserDatadriven(PackageTester): + test_data_dir = test_data_dir + + +build_tests( + test_dir=os.path.join(test_data_dir, 'bashparse'), + test_file_suffix='.sh', + clazz=TestBashParserDatadriven, + tested_function=lambda loc: list(bashparse.collect_shell_variables(loc, resolve=True)), + test_method_prefix='test_collect_shell_variables_', + regen=False, +) + def clean_spaces(s): lines = (l.rstrip() for l in s.splitlines()) @@ -132,7 +206,7 @@ def test_collect_shell_variables_from_text_can_resolve(self): baz=$foo bez=${baz} ''' - result , errors = bashparse.collect_shell_variables_from_text(text) + result, errors = bashparse.collect_shell_variables_from_text(text) expected = [ ShellVariable(name='foo', value='bar'), ShellVariable(name='baz', value='$foo'), @@ -143,7 +217,7 @@ def test_collect_shell_variables_from_text_can_resolve(self): expected = [] assert errors == expected - result , errors = bashparse.collect_shell_variables_from_text(text, resolve=True) + result, errors = bashparse.collect_shell_variables_from_text(text, resolve=True) expected = [ ShellVariable(name='foo', value='bar'), ShellVariable(name='baz', value='bar'), @@ -154,8 +228,44 @@ def test_collect_shell_variables_from_text_can_resolve(self): expected = [] assert errors == expected + def test_collect_shell_variables_from_text_can_parse_single_quoted_vars(self): + text = "\nlicense='AGPL3'" + result, errors = bashparse.collect_shell_variables_from_text(text) + expected = [ShellVariable(name='license', value='AGPL3')] + assert result == expected + expected = [] + assert errors == expected + + def test_collect_shell_variables_from_text_can_parse_trailing_comments(self): + text = '\noptions="!check" # out of disk space (>35GB)' + result, errors = bashparse.collect_shell_variables_from_text(text) + expected = [ShellVariable(name='options', value='!check')] + assert result == expected + expected = [] + assert errors == expected + + def test_collect_shell_variables_from_text_can_parse_combo_single_quote_and_trailing_comments(self): + text = ''' +arch="x86_64 ppc64le aarch64" +options="!check" # out of disk space (>35GB) +license='AGPL3' +pkgusers="mongodb" +options='!baz' # out of disk space (>35GB) +''' + result, errors = bashparse.collect_shell_variables_from_text(text) + expected = [ + ShellVariable(name='arch', value='x86_64 ppc64le aarch64'), + ShellVariable(name='options', value='!check'), + ShellVariable(name='license', value='AGPL3'), + ShellVariable(name='pkgusers', value='mongodb'), + ShellVariable(name='options', value='!baz'), + ] + assert result == expected + expected = [] + assert errors == expected + def test_collect_shell_variables_from_text_simple(self): - result , errors = bashparse.collect_shell_variables_from_text(TEST_TEXT1) + result, errors = bashparse.collect_shell_variables_from_text(TEST_TEXT1) expected = [ ShellVariable(name='_pkgbase', value='10.3.1'), ShellVariable(name='pkgver', value='10.3.1_git20210424'), From c6619112256a0659279953049ac4f063b6759125 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Tue, 13 Jul 2021 15:29:06 +0200 Subject: [PATCH 594/709] Remove dangling print statement Signed-off-by: Philippe Ombredanne --- tests/packagedcode/packages_test_utils.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/packagedcode/packages_test_utils.py b/tests/packagedcode/packages_test_utils.py index 77b53fd2dde..06a0e271b15 100644 --- a/tests/packagedcode/packages_test_utils.py +++ b/tests/packagedcode/packages_test_utils.py @@ -151,7 +151,6 @@ def build_tests( """ assert issubclass(clazz, PackageTester) - print('test_dir', test_dir) # loop through all items and attach a test method to our test class for test_file_path in get_test_files(test_dir, test_file_suffix): test_name = test_method_prefix + text.python_safe_name(test_file_path) From caf20382df5e61011a843faa6d3655f8b9bdf925 Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Tue, 13 Jul 2021 10:38:39 -0700 Subject: [PATCH 595/709] Create function that checks bazel rule names #2594 * Update test data to ensure bazel parser only creates packages for rules that end with `binary` or `library` Signed-off-by: Jono Yang --- src/packagedcode/build.py | 19 +++++++++++++++++-- .../packagedcode/data/build/bazel/parse/BUILD | 7 +++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/packagedcode/build.py b/src/packagedcode/build.py index b22959c243e..c22326a8493 100644 --- a/src/packagedcode/build.py +++ b/src/packagedcode/build.py @@ -83,6 +83,18 @@ class AutotoolsPackage(BaseBuildManifestPackage): ] +def check_rule_name_ending(rule_name): + """ + Return True if `rule_name` ends with a rule type from `starlark_rule_types` + + Return False otherwise + """ + for rule_type in starlark_rule_types: + if rule_name.endswith(rule_type): + return True + return False + + @attr.s() class StarlarkManifestPackage(BaseBuildManifestPackage): @classmethod @@ -103,9 +115,12 @@ def recognize(cls, location): or isinstance(statement, ast.Call) or isinstance(statement, ast.Assign) and isinstance(statement.value, ast.Call) - and isinstance(statement.value.func, ast.Name) - and statement.value.func.id.endswith(starlark_rule_types)): + and isinstance(statement.value.func, ast.Name)): rule_name = statement.value.func.id + # Ensure that we are only creating packages from the proper + # build rules + if not check_rule_name_ending(rule_name): + continue # Process the rule arguments args = {} for kw in statement.value.keywords: diff --git a/tests/packagedcode/data/build/bazel/parse/BUILD b/tests/packagedcode/data/build/bazel/parse/BUILD index e4108f08a9c..1a8b8105cc2 100644 --- a/tests/packagedcode/data/build/bazel/parse/BUILD +++ b/tests/packagedcode/data/build/bazel/parse/BUILD @@ -14,3 +14,10 @@ cc_binary( "//lib:hello-time", ], ) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) From 58b81a33c45edee3a0b4bf0bebbc9704c94ff578 Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Tue, 13 Jul 2021 11:00:23 -0700 Subject: [PATCH 596/709] Set regen=False for package cli tests Signed-off-by: Jono Yang --- tests/packagedcode/data/plugin/help.txt | 4 +-- .../data/plugin/pubspec-lock-expected.json | 28 +++++++++++++++++++ tests/packagedcode/test_plugin.py | 6 ++-- 3 files changed, 33 insertions(+), 5 deletions(-) create mode 100644 tests/packagedcode/data/plugin/pubspec-lock-expected.json diff --git a/tests/packagedcode/data/plugin/help.txt b/tests/packagedcode/data/plugin/help.txt index 94f4be2f409..aea5e2022b3 100644 --- a/tests/packagedcode/data/plugin/help.txt +++ b/tests/packagedcode/data/plugin/help.txt @@ -225,8 +225,8 @@ Package: pods -------------------------------------------- Package: pubspec class: packagedcode.pubspec:PubspecPackage - metafiles: pubspec.yaml - extensions: .yaml + metafiles: pubspec.yaml, pubspec.lock + extensions: .yaml, .lock -------------------------------------------- Package: pypi diff --git a/tests/packagedcode/data/plugin/pubspec-lock-expected.json b/tests/packagedcode/data/plugin/pubspec-lock-expected.json new file mode 100644 index 00000000000..8165992c6dd --- /dev/null +++ b/tests/packagedcode/data/plugin/pubspec-lock-expected.json @@ -0,0 +1,28 @@ +{ + "headers": [ + { + "tool_name": "scancode-toolkit", + "options": { + "input": "", + "--json": "", + "--package": true, + "--processes": "-1", + "--strip-root": true + }, + "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", + "message": null, + "errors": [], + "extra_data": { + "files_count": 1 + } + } + ], + "files": [ + { + "path": "dart-pubspec.lock", + "type": "file", + "packages": [], + "scan_errors": [] + } + ] +} \ No newline at end of file diff --git a/tests/packagedcode/test_plugin.py b/tests/packagedcode/test_plugin.py index 073d14dfaa0..c7e839b9e0b 100644 --- a/tests/packagedcode/test_plugin.py +++ b/tests/packagedcode/test_plugin.py @@ -19,7 +19,7 @@ class TestPlugins(PackageTester): test_data_dir = os.path.join(os.path.dirname(__file__), 'data') - def test_package_list_command(self, regen=True): + def test_package_list_command(self, regen=False): expected_file = self.get_test_loc('plugin/help.txt') result = run_scan_click(['--list-packages']) if regen: @@ -145,11 +145,11 @@ def test_package_command_scan_pubspec_package(self): result_file = self.get_temp_file('json') expected_file = self.get_test_loc('plugin/pubspec-expected.json', must_exist=False) run_scan_click(['--package', '--strip-root', '--processes', '-1', test_dir, '--json', result_file]) - check_json_scan(expected_file, result_file, regen=True) + check_json_scan(expected_file, result_file, regen=False) def test_package_command_scan_pubspec_lock_package(self): test_dir = self.get_test_loc('pubspec/locks/dart-pubspec.lock') result_file = self.get_temp_file('json') expected_file = self.get_test_loc('plugin/pubspec-lock-expected.json', must_exist=False) run_scan_click(['--package', '--strip-root', '--processes', '-1', test_dir, '--json', result_file]) - check_json_scan(expected_file, result_file, regen=True) + check_json_scan(expected_file, result_file, regen=False) From 808bbbb0fc326867191634a09cecc53a7dfd3eaa Mon Sep 17 00:00:00 2001 From: akugarg Date: Wed, 14 Jul 2021 23:23:59 +0530 Subject: [PATCH 597/709] Update test cases upto expectations Signed-off-by: akugarg --- tests/formattedcode/data/csv/livescan/expected.csv | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/formattedcode/data/csv/livescan/expected.csv b/tests/formattedcode/data/csv/livescan/expected.csv index 9ac8f0e5837..86c10c1383f 100644 --- a/tests/formattedcode/data/csv/livescan/expected.csv +++ b/tests/formattedcode/data/csv/livescan/expected.csv @@ -1,5 +1,5 @@ -Resource,type,name,base_name,extension,size,date,sha1,md5,sha256,mime_type,file_type,programming_language,is_binary,is_text,is_archive,is_media,is_source,is_script,percentage_of_license_text,files_count,dirs_count,size_count,scan_errors,license_expression,license__key,license__score,license__name,license__short_name,license__category,license__is_exception,license__owner,license__homepage_url,license__text_url,license__reference_url,license__scancode_text_url,license__scancode_data_url,license__spdx_license_key,license__spdx_url,start_line,end_line,matched_rule__identifier,matched_rule__license_expression,matched_rule__licenses,matched_rule__is_license_text,matched_rule__is_license_notice,matched_rule__is_license_reference,matched_rule__is_license_tag,matched_rule__is_license_intro,matched_rule__matcher,matched_rule__rule_length,matched_rule__matched_length,matched_rule__match_coverage,matched_rule__rule_relevance,copyright,copyright_holder,email,url,package__type,package__namespace,package__name,package__version,package__qualifiers,package__subpath,package__primary_language,package__description,package__release_date,package__homepage_url,package__download_url,package__size,package__sha1,package__md5,package__sha256,package__sha512,package__bug_tracking_url,package__code_view_url,package__vcs_url,package__copyright,package__license_expression,package__declared_license,package__notice_text,package__root_path,package__contains_source_code,package__extra_data +Resource,type,name,base_name,extension,size,date,sha1,md5,sha256,mime_type,file_type,programming_language,is_binary,is_text,is_archive,is_media,is_source,is_script,percentage_of_license_text,files_count,dirs_count,size_count,scan_errors,license_expression,license__key,license__score,license__name,license__short_name,license__category,license__is_exception,license__is_unknown,license__owner,license__homepage_url,license__text_url,license__reference_url,license__scancode_text_url,license__scancode_data_url,license__spdx_license_key,license__spdx_url,start_line,end_line,matched_rule__identifier,matched_rule__license_expression,matched_rule__licenses,matched_rule__is_license_text,matched_rule__is_license_notice,matched_rule__is_license_reference,matched_rule__is_license_tag,matched_rule__is_license_intro,matched_rule__is_unknown,matched_rule__matcher,matched_rule__rule_length,matched_rule__matched_length,matched_rule__match_coverage,matched_rule__rule_relevance,copyright,copyright_holder,email,url,package__type,package__namespace,package__name,package__version,package__qualifiers,package__subpath,package__primary_language,package__description,package__release_date,package__homepage_url,package__download_url,package__size,package__sha1,package__md5,package__sha256,package__sha512,package__bug_tracking_url,package__code_view_url,package__vcs_url,package__copyright,package__license_expression,package__declared_license,package__notice_text,package__root_path,package__contains_source_code,package__extra_data json2csv.rb,file,json2csv.rb,json2csv,.rb,912,2021-03-31,1236469a06a2bacbdd8e172ad718482af5b0a936,1307c281e0b153202e291b217eab85d5,12ba215313981dbe810d9ed696b7cc753d97adfcc26eba1e13f941dc7506aa4e,text/x-script.python,"Python script, ASCII text executable",Ruby,False,True,False,False,True,True,62.04,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, json2csv.rb,,,,,,,,,,,,,,,,,,,,,,,,apache-2.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, json2csv.rb,,,,,,,,,,,,,,,,,,,,,,,,,apache-2.0,100.00,Apache License 2.0,Apache 2.0,Permissive,False,False,Apache Software Foundation,http://www.apache.org/licenses/,http://www.apache.org/licenses/LICENSE-2.0,https://scancode-licensedb.aboutcode.org/apache-2.0,https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE,https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml,Apache-2.0,https://spdx.org/licenses/Apache-2.0,5,13,apache-2.0_7.RULE,apache-2.0,apache-2.0,,True,,,,,2-aho,85,85,100.00,100.00,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, @@ -10,12 +10,12 @@ json2csv.rb,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,4,4,,,,,,,,,,,,,,,,,https://gi json2csv.rb,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,8,8,,,,,,,,,,,,,,,,,http://www.apache.org/licenses/LICENSE-2.0,,,,,,,,,,,,,,,,,,,,,,,,,, license,file,license,license,,679,2021-03-31,75c5490a718ddd45e40e0cc7ce0c756abc373123,b965a762efb9421cf1bf4405f336e278,a34098a43e5677495f59dff825a3f9bc0f2b0261d75feb2356919f4c3ce049ab,text/plain,ASCII text,,False,True,False,False,False,False,100.0,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, license,,,,,,,,,,,,,,,,,,,,,,,,gpl-2.0-plus,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -license,,,,,,,,,,,,,,,,,,,,,,,,,gpl-2.0-plus,100.00,GNU General Public License 2.0 or later,GPL 2.0 or later,Copyleft,False,Free Software Foundation (FSF),http://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html,http://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html,https://scancode-licensedb.aboutcode.org/gpl-2.0-plus,https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/gpl-2.0-plus.LICENSE,https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/gpl-2.0-plus.yml,GPL-2.0-or-later,https://spdx.org/licenses/GPL-2.0-or-later,1,12,gpl-2.0-plus_420.RULE,gpl-2.0-plus,gpl-2.0-plus,,True,,,,1-hash,113,113,100.00,100.00,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +license,,,,,,,,,,,,,,,,,,,,,,,,,gpl-2.0-plus,100.00,GNU General Public License 2.0 or later,GPL 2.0 or later,Copyleft,False,False,Free Software Foundation (FSF),http://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html,http://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html,https://scancode-licensedb.aboutcode.org/gpl-2.0-plus,https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/gpl-2.0-plus.LICENSE,https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/gpl-2.0-plus.yml,GPL-2.0-or-later,https://spdx.org/licenses/GPL-2.0-or-later,1,12,gpl-2.0-plus_420.RULE,gpl-2.0-plus,gpl-2.0-plus,,True,,,,,1-hash,113,113,100.00,100.00,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, package.json,file,package.json,package,.json,2200,2021-03-31,918376afce796ef90eeda1d6695f2289c90491ac,1f66239a9b850c5e60a9382dbe2162d2,29f6068a1b6c7d06f115a5edc4ed8558edde42c6bbf0145ed77cf1108a0dd529,application/json,JSON data,,False,True,False,False,False,False,58.1,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, package.json,,,,,,,,,,,,,,,,,,,,,,,,mit,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, package.json,,,,,,,,,,,,,,,,,,,,,,,,mit,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, package.json,,,,,,,,,,,,,,,,,,,,,,,,,mit,100.00,MIT License,MIT License,Permissive,False,False,MIT,http://opensource.org/licenses/mit-license.php,http://opensource.org/licenses/mit-license.php,https://scancode-licensedb.aboutcode.org/mit,https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.LICENSE,https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.yml,MIT,https://spdx.org/licenses/MIT,24,24,mit_649.RULE,mit,mit,,True,,,,,2-aho,4,4,100.00,100.00,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -package.json,,,,,,,,,,,,,,,,,,,,,,,,,mit,100.00,MIT License,MIT License,Permissive,False,False,MIT,http://opensource.org/licenses/mit-license.php,http://opensource.org/licenses/mit-license.php,https://scancode-licensedb.aboutcode.org/mit,https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.LICENSE,https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.yml,MIT,https://spdx.org/licenses/MIT,24,24,mit.LICENSE,mit,mit,True,,,,,2-aho,161,161,100.00,100.00,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +package.json,,,,,,,,,,,,,,,,,,,,,,,,,mit,100.00,MIT License,MIT License,Permissive,False,False,MIT,http://opensource.org/licenses/mit-license.php,http://opensource.org/licenses/mit-license.php,https://scancode-licensedb.aboutcode.org/mit,https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.LICENSE,https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.yml,MIT,https://spdx.org/licenses/MIT,24,24,mit.LICENSE,mit,mit,True,,,,,,2-aho,161,161,100.00,100.00,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, package.json,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,24,24,,,,,,,,,,,,,,Copyright (c) 2012 LearnBoost ,,,,,,,,,,,,,,,,,,,,,,,,,,,,, package.json,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,24,24,,,,,,,,,,,,,,,LearnBoost,,,,,,,,,,,,,,,,,,,,,,,,,,,, package.json,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,12,12,,,,,,,,,,,,,,,,tj@learnboost.com,,,,,,,,,,,,,,,,,,,,,,,,,,, From b36ab3784d475a4a63b94ebbf3ea176d87b9c99a Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Thu, 17 Jun 2021 18:26:55 -0700 Subject: [PATCH 598/709] Add code to parse MSI files for metadata #2565 Signed-off-by: Jono Yang --- src/packagedcode/win_pe.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/packagedcode/win_pe.py b/src/packagedcode/win_pe.py index 1568c5a4122..a4f7bc9a9f9 100644 --- a/src/packagedcode/win_pe.py +++ b/src/packagedcode/win_pe.py @@ -276,10 +276,10 @@ def parse(location): infos = pe_info(location) version = get_first( - infos, - 'Full Version', - 'ProductVersion', - 'FileVersion', + infos, + 'Full Version', + 'ProductVersion', + 'FileVersion', 'Assembly Version', ) release_date = get_first(infos, 'BuildDate') @@ -289,9 +289,9 @@ def parse(location): release_date = release_date.replace('/', '-') name = get_first( - infos, - 'ProductName', - 'OriginalFilename', + infos, + 'ProductName', + 'OriginalFilename', 'InternalName', ) copyr = get_first(infos, 'LegalCopyright') From fe2c9b28be94f22db741ff96dbd6fc36c6095df5 Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Fri, 18 Jun 2021 11:52:17 -0700 Subject: [PATCH 599/709] Save all MSI data to extra_data #2565 Signed-off-by: Jono Yang --- src/packagedcode/windows_helpers.py | 150 ++++++++++++++++++++++++++++ 1 file changed, 150 insertions(+) create mode 100644 src/packagedcode/windows_helpers.py diff --git a/src/packagedcode/windows_helpers.py b/src/packagedcode/windows_helpers.py new file mode 100644 index 00000000000..e73f6bb5d9a --- /dev/null +++ b/src/packagedcode/windows_helpers.py @@ -0,0 +1,150 @@ +from regipy.exceptions import RegistryKeyNotFoundException +from regipy.registry import RegistryHive +import logbook +import pdb +import subprocess + +import attr + +from commoncode.command import execute +from packagedcode import models + + +logger = logbook.Logger(__name__) + + +class MsiinfoException(Exception): + pass + + +def parse_msiinfo_suminfo_output(output_string): + """ + Return a dictionary containing information from the output of `msiinfo suminfo` + """ + output_string = output_string.decode('utf-8') + # Split lines by newline and place lines into a list + output_list = output_string.split('\n') + results = {} + # Partition lines by the leftmost ":", use the string to the left of ":" as + # the key and use the string to the right of ":" as the value + for output in output_list: + key, _, value = output.partition(':') + if key: + results[key] = value.strip() + return results + + +def get_msi_info(location): + """ + Run the command `msiinfo suminfo` on the file at `location` and return the + results in a dictionary + + This function requires the `msiinfo` package to be installed on the system + """ + # TODO: Use commoncode.command.execute + process = execute( + [ + 'msiinfo', + 'suminfo', + location, + ], + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + ) + stdout, stderr = process.communicate() + if stderr: + error_message = f'Error encountered when reading MSI information from {location}: ' + error_message = error_message + stderr.decode('utf-8') + raise MsiinfoException(error_message) + return parse_msiinfo_suminfo_output(stdout) + + +@attr.s() +class WindowsMSI(models.Package): + metafiles = () + extensions = ('.msi',) + mimetypes = ('application/x-msi',) + + default_type = 'msi' + + default_web_baseurl = None + default_download_baseurl = None + default_api_baseurl = None + + @classmethod + def recognize(cls, location): + """ + TODO: get proper package name and version from MSI + + Currently, we use the contents `Subject` field from the msiinfo suminfo + results as the package name because it contains the package name most of + the time. Getting the version out of the `Subject` string is not + straightforward because the format of the string is usually different + between different MSIs + """ + info = get_msi_info(location) + + author_name = info.get('Author', '') + parties = [] + if author_name: + parties.append( + models.Party( + type=None, + role='author', + name=author_name + ) + ) + + name = info.get('Subject', '') + description = info.get('Comments', '') + keywords = info.get('Keywords', '') + + yield WindowsMSI( + name=name, + description=description, + parties=parties, + keywords=keywords, + extra_data=info + ) + +# TODO: Find "boilerplate" files, what are the things that we do not care about, e.g. thumbs.db +# TODO: check for chocolatey +# TODO: Windows appstore + +def load_registry(location, registry_path='SOFTWARE\\Microsoft\\NET Framework Setup\\NDP'): + """ + Return the installed versions of .NET framework + + If `registry_path` is provided, then we will load Registry entries starting + from `registry_path` + """ + registry_hive = RegistryHive(location) + if registry_path: + try: + name_key_entry = registry_hive.get_key(registry_path) + except RegistryKeyNotFoundException as ex: + logger.debug('Did not find the key: {}'.format(ex)) + return + else: + name_key_entry = registry_hive.root + + # Check to see if + start = 'SOFTWARE\\Microsoft\\NET Framework Setup\\NDP' + for entry in registry_hive.recurse_subkeys(name_key_entry): + full_subdir = start + '\\Full' + try: + dotnet_info_values = registry_hive.get_key(full_subdir).get_values() + except RegistryKeyNotFoundException: + # Pass if we cannot find the path with the name and version info + continue + + dotnet_info = {} + for dotnet_info_value in dotnet_info_values: + if dotnet_info_value.name == 'Version': + dotnet_info['version'] = dotnet_info_value.value + + if not dotnet_info: + continue + + # Create package + yield Package From 1e2fc67cbcd0b80c3b2fbc63ffd71890ea34ca85 Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Fri, 18 Jun 2021 18:20:12 -0700 Subject: [PATCH 600/709] Run msiinfo with commoncode.command.execute #2565 * Create get_msiinfo_bin_location() Signed-off-by: Jono Yang --- src/packagedcode/windows_helpers.py | 34 +++++++++++++++++++---------- 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/src/packagedcode/windows_helpers.py b/src/packagedcode/windows_helpers.py index e73f6bb5d9a..8134e5e370b 100644 --- a/src/packagedcode/windows_helpers.py +++ b/src/packagedcode/windows_helpers.py @@ -1,8 +1,6 @@ from regipy.exceptions import RegistryKeyNotFoundException from regipy.registry import RegistryHive import logbook -import pdb -import subprocess import attr @@ -13,6 +11,23 @@ logger = logbook.Logger(__name__) +MSIINFO_BIN_LOCATION = 'packagedcode_msitools.msiinfo' + + +def get_msiinfo_bin_location(): + """ + Return the binary location for msiinfo + """ + from plugincode.location_provider import get_location + msiinfo_bin_loc = get_location(MSIINFO_BIN_LOCATION) + if not msiinfo_bin_loc: + raise Exception( + 'CRITICAL: msiinfo not provided. ' + 'Unable to continue: you need to install the plugin packagedcode-msitools' + ) + return msiinfo_bin_loc + + class MsiinfoException(Exception): pass @@ -21,7 +36,6 @@ def parse_msiinfo_suminfo_output(output_string): """ Return a dictionary containing information from the output of `msiinfo suminfo` """ - output_string = output_string.decode('utf-8') # Split lines by newline and place lines into a list output_list = output_string.split('\n') results = {} @@ -39,22 +53,18 @@ def get_msi_info(location): Run the command `msiinfo suminfo` on the file at `location` and return the results in a dictionary - This function requires the `msiinfo` package to be installed on the system + This function requires the `packagedcode-msiinfo` plugin to be installed on the system """ - # TODO: Use commoncode.command.execute - process = execute( - [ - 'msiinfo', + rc, stdout, stderr = execute( + cmd_loc=get_msiinfo_bin_location(), + args=[ 'suminfo', location, ], - stdout=subprocess.PIPE, - stderr=subprocess.PIPE, ) - stdout, stderr = process.communicate() if stderr: error_message = f'Error encountered when reading MSI information from {location}: ' - error_message = error_message + stderr.decode('utf-8') + error_message = error_message + stderr raise MsiinfoException(error_message) return parse_msiinfo_suminfo_output(stdout) From 4dad10ea867465f0f732790bfb89a64e515aafae Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Fri, 18 Jun 2021 19:18:48 -0700 Subject: [PATCH 601/709] Add test for MSI parser #2559 Signed-off-by: Jono Yang --- src/packagedcode/windows_helpers.py | 72 +++++++++--------- .../data/windows_helpers/msi/7z1900-x64.msi | Bin 0 -> 1748480 bytes .../msi/7z1900-x64.msi.expected | 58 ++++++++++++++ tests/packagedcode/test_windows_helpers.py | 25 ++++++ 4 files changed, 121 insertions(+), 34 deletions(-) create mode 100644 tests/packagedcode/data/windows_helpers/msi/7z1900-x64.msi create mode 100644 tests/packagedcode/data/windows_helpers/msi/7z1900-x64.msi.expected create mode 100644 tests/packagedcode/test_windows_helpers.py diff --git a/src/packagedcode/windows_helpers.py b/src/packagedcode/windows_helpers.py index 8134e5e370b..6b07a7fc6ee 100644 --- a/src/packagedcode/windows_helpers.py +++ b/src/packagedcode/windows_helpers.py @@ -24,7 +24,7 @@ def get_msiinfo_bin_location(): raise Exception( 'CRITICAL: msiinfo not provided. ' 'Unable to continue: you need to install the plugin packagedcode-msitools' - ) + ) return msiinfo_bin_loc @@ -69,6 +69,42 @@ def get_msi_info(location): return parse_msiinfo_suminfo_output(stdout) +def parse(location): + """ + TODO: get proper package name and version from MSI + + Currently, we use the contents `Subject` field from the msiinfo suminfo + results as the package name because it contains the package name most of + the time. Getting the version out of the `Subject` string is not + straightforward because the format of the string is usually different + between different MSIs + """ + info = get_msi_info(location) + + author_name = info.get('Author', '') + parties = [] + if author_name: + parties.append( + models.Party( + type=None, + role='author', + name=author_name + ) + ) + + name = info.get('Subject', '') + description = info.get('Comments', '') + keywords = info.get('Keywords', '') + + return WindowsMSI( + name=name, + description=description, + parties=parties, + keywords=keywords, + extra_data=info + ) + + @attr.s() class WindowsMSI(models.Package): metafiles = () @@ -83,39 +119,7 @@ class WindowsMSI(models.Package): @classmethod def recognize(cls, location): - """ - TODO: get proper package name and version from MSI - - Currently, we use the contents `Subject` field from the msiinfo suminfo - results as the package name because it contains the package name most of - the time. Getting the version out of the `Subject` string is not - straightforward because the format of the string is usually different - between different MSIs - """ - info = get_msi_info(location) - - author_name = info.get('Author', '') - parties = [] - if author_name: - parties.append( - models.Party( - type=None, - role='author', - name=author_name - ) - ) - - name = info.get('Subject', '') - description = info.get('Comments', '') - keywords = info.get('Keywords', '') - - yield WindowsMSI( - name=name, - description=description, - parties=parties, - keywords=keywords, - extra_data=info - ) + yield parse(location) # TODO: Find "boilerplate" files, what are the things that we do not care about, e.g. thumbs.db # TODO: check for chocolatey diff --git a/tests/packagedcode/data/windows_helpers/msi/7z1900-x64.msi b/tests/packagedcode/data/windows_helpers/msi/7z1900-x64.msi new file mode 100644 index 0000000000000000000000000000000000000000..99ee624251c7652354c54b17cb415c9711a33855 GIT binary patch literal 1748480 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

>mPJWw}iFU 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