Skip to content

Commit

Permalink
Fix yarn lock v1 parser bug extra quotes
Browse files Browse the repository at this point in the history
Fixes a bug where there was remaining double quotes on
namespace and name for dependencies, which was effecting
package resolution.

Signed-off-by: Ayan Sinha Mahapatra <[email protected]>
  • Loading branch information
AyanSinhaMahapatra committed Jun 18, 2024
1 parent f74a89b commit ae22b45
Show file tree
Hide file tree
Showing 7 changed files with 379 additions and 56 deletions.
2 changes: 2 additions & 0 deletions src/packagedcode/npm.py
Original file line number Diff line number Diff line change
Expand Up @@ -909,6 +909,8 @@ def parse(cls, location, package_only=False):
# hosted-git-info "^2.1.4"
# semver "2 || 3 || 4 || 5"
ns_name, _, constraint = stripped.partition(' ')
if '"' in ns_name:
ns_name = ns_name.replace('"', '')
ns, _ , name = ns_name.rpartition('/')
sub_dependencies.append((ns, name, constraint,))

Expand Down
80 changes: 40 additions & 40 deletions tests/packagedcode/data/npm/private-and-yarn/scan.expected.json
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@
"extra_data": {},
"dependencies": [
{
"purl": "pkg:npm/%22%40types/swagger-parser%22",
"purl": "pkg:npm/%40types/swagger-parser",
"extracted_requirement": "^4.0.2",
"scope": "dependencies",
"is_runtime": true,
Expand Down Expand Up @@ -269,7 +269,7 @@
"extra_data": {},
"dependencies": [
{
"purl": "pkg:npm/%22%40ballerina/lang-service%22",
"purl": "pkg:npm/%40ballerina/lang-service",
"extracted_requirement": "^0.99.0-RC3",
"scope": "dependencies",
"is_runtime": true,
Expand Down Expand Up @@ -464,29 +464,29 @@
"extra_data": {},
"dependencies": [
{
"purl": "pkg:npm/%22%40ballerina/ast-model%22",
"purl": "pkg:npm/%40ballerina/ast-model",
"extracted_requirement": "^0.99.0-RC3",
"scope": "dependencies",
"is_runtime": true,
"is_optional": false,
"is_resolved": false,
"is_resolved": true,
"is_direct": true,
"resolved_package": {},
"extra_data": {}
},
{
"purl": "pkg:npm/%22%40ballerina/font%22",
"purl": "pkg:npm/%40ballerina/font",
"extracted_requirement": "^0.99.0-RC3",
"scope": "dependencies",
"is_runtime": true,
"is_optional": false,
"is_resolved": false,
"is_resolved": true,
"is_direct": true,
"resolved_package": {},
"extra_data": {}
},
{
"purl": "pkg:npm/%22%40ballerina/lang-service%22",
"purl": "pkg:npm/%40ballerina/lang-service",
"extracted_requirement": "^0.99.0-RC3",
"scope": "dependencies",
"is_runtime": true,
Expand All @@ -497,7 +497,7 @@
"extra_data": {}
},
{
"purl": "pkg:npm/%22%40ballerina/theme%22",
"purl": "pkg:npm/%40ballerina/theme",
"extracted_requirement": "^0.99.0-RC3",
"scope": "dependencies",
"is_runtime": true,
Expand Down Expand Up @@ -600,51 +600,51 @@
"extra_data": {},
"dependencies": [
{
"purl": "pkg:npm/%22%40ballerina/api-designer%22",
"purl": "pkg:npm/%40ballerina/api-designer",
"extracted_requirement": "^0.99.0-RC3",
"scope": "dependencies",
"is_runtime": true,
"is_optional": false,
"is_resolved": false,
"is_resolved": true,
"is_direct": true,
"resolved_package": {},
"extra_data": {}
},
{
"purl": "pkg:npm/%22%40ballerina/ballerina-by-examples%22",
"purl": "pkg:npm/%40ballerina/ballerina-by-examples",
"extracted_requirement": "^0.99.0-RC3",
"scope": "dependencies",
"is_runtime": true,
"is_optional": false,
"is_resolved": false,
"is_resolved": true,
"is_direct": true,
"resolved_package": {},
"extra_data": {}
},
{
"purl": "pkg:npm/%22%40ballerina/diagram%22",
"purl": "pkg:npm/%40ballerina/diagram",
"extracted_requirement": "^0.99.0-RC3",
"scope": "dependencies",
"is_runtime": true,
"is_optional": false,
"is_resolved": false,
"is_resolved": true,
"is_direct": true,
"resolved_package": {},
"extra_data": {}
},
{
"purl": "pkg:npm/%22%40ballerina/documentation%22",
"purl": "pkg:npm/%40ballerina/documentation",
"extracted_requirement": "^0.99.0-RC3",
"scope": "dependencies",
"is_runtime": true,
"is_optional": false,
"is_resolved": false,
"is_resolved": true,
"is_direct": true,
"resolved_package": {},
"extra_data": {}
},
{
"purl": "pkg:npm/%22%40ballerina/theme%22",
"purl": "pkg:npm/%40ballerina/theme",
"extracted_requirement": "^0.99.0-RC3",
"scope": "dependencies",
"is_runtime": true,
Expand All @@ -655,7 +655,7 @@
"extra_data": {}
},
{
"purl": "pkg:npm/%22%40ballerina/tracing%22",
"purl": "pkg:npm/%40ballerina/tracing",
"extracted_requirement": "^0.99.0-RC3",
"scope": "dependencies",
"is_runtime": true,
Expand Down Expand Up @@ -725,12 +725,12 @@
"extra_data": {},
"dependencies": [
{
"purl": "pkg:npm/%22%40ballerina/ast-model%22",
"purl": "pkg:npm/%40ballerina/ast-model",
"extracted_requirement": "^0.99.0-RC3",
"scope": "dependencies",
"is_runtime": true,
"is_optional": false,
"is_resolved": false,
"is_resolved": true,
"is_direct": true,
"resolved_package": {},
"extra_data": {}
Expand Down Expand Up @@ -1154,7 +1154,7 @@
"extra_data": {},
"dependencies": [
{
"purl": "pkg:npm/%22%40types/swagger-parser%22",
"purl": "pkg:npm/%40types/swagger-parser",
"extracted_requirement": "^4.0.2",
"scope": "dependencies",
"is_runtime": true,
Expand Down Expand Up @@ -1286,7 +1286,7 @@
"extra_data": {},
"dependencies": [
{
"purl": "pkg:npm/%22%40ballerina/lang-service%22",
"purl": "pkg:npm/%40ballerina/lang-service",
"extracted_requirement": "^0.99.0-RC3",
"scope": "dependencies",
"is_runtime": true,
Expand Down Expand Up @@ -1473,29 +1473,29 @@
"extra_data": {},
"dependencies": [
{
"purl": "pkg:npm/%22%40ballerina/ast-model%22",
"purl": "pkg:npm/%40ballerina/ast-model",
"extracted_requirement": "^0.99.0-RC3",
"scope": "dependencies",
"is_runtime": true,
"is_optional": false,
"is_resolved": false,
"is_resolved": true,
"is_direct": true,
"resolved_package": {},
"extra_data": {}
},
{
"purl": "pkg:npm/%22%40ballerina/font%22",
"purl": "pkg:npm/%40ballerina/font",
"extracted_requirement": "^0.99.0-RC3",
"scope": "dependencies",
"is_runtime": true,
"is_optional": false,
"is_resolved": false,
"is_resolved": true,
"is_direct": true,
"resolved_package": {},
"extra_data": {}
},
{
"purl": "pkg:npm/%22%40ballerina/lang-service%22",
"purl": "pkg:npm/%40ballerina/lang-service",
"extracted_requirement": "^0.99.0-RC3",
"scope": "dependencies",
"is_runtime": true,
Expand All @@ -1506,7 +1506,7 @@
"extra_data": {}
},
{
"purl": "pkg:npm/%22%40ballerina/theme%22",
"purl": "pkg:npm/%40ballerina/theme",
"extracted_requirement": "^0.99.0-RC3",
"scope": "dependencies",
"is_runtime": true,
Expand Down Expand Up @@ -1605,51 +1605,51 @@
"extra_data": {},
"dependencies": [
{
"purl": "pkg:npm/%22%40ballerina/api-designer%22",
"purl": "pkg:npm/%40ballerina/api-designer",
"extracted_requirement": "^0.99.0-RC3",
"scope": "dependencies",
"is_runtime": true,
"is_optional": false,
"is_resolved": false,
"is_resolved": true,
"is_direct": true,
"resolved_package": {},
"extra_data": {}
},
{
"purl": "pkg:npm/%22%40ballerina/ballerina-by-examples%22",
"purl": "pkg:npm/%40ballerina/ballerina-by-examples",
"extracted_requirement": "^0.99.0-RC3",
"scope": "dependencies",
"is_runtime": true,
"is_optional": false,
"is_resolved": false,
"is_resolved": true,
"is_direct": true,
"resolved_package": {},
"extra_data": {}
},
{
"purl": "pkg:npm/%22%40ballerina/diagram%22",
"purl": "pkg:npm/%40ballerina/diagram",
"extracted_requirement": "^0.99.0-RC3",
"scope": "dependencies",
"is_runtime": true,
"is_optional": false,
"is_resolved": false,
"is_resolved": true,
"is_direct": true,
"resolved_package": {},
"extra_data": {}
},
{
"purl": "pkg:npm/%22%40ballerina/documentation%22",
"purl": "pkg:npm/%40ballerina/documentation",
"extracted_requirement": "^0.99.0-RC3",
"scope": "dependencies",
"is_runtime": true,
"is_optional": false,
"is_resolved": false,
"is_resolved": true,
"is_direct": true,
"resolved_package": {},
"extra_data": {}
},
{
"purl": "pkg:npm/%22%40ballerina/theme%22",
"purl": "pkg:npm/%40ballerina/theme",
"extracted_requirement": "^0.99.0-RC3",
"scope": "dependencies",
"is_runtime": true,
Expand All @@ -1660,7 +1660,7 @@
"extra_data": {}
},
{
"purl": "pkg:npm/%22%40ballerina/tracing%22",
"purl": "pkg:npm/%40ballerina/tracing",
"extracted_requirement": "^0.99.0-RC3",
"scope": "dependencies",
"is_runtime": true,
Expand Down Expand Up @@ -1726,12 +1726,12 @@
"extra_data": {},
"dependencies": [
{
"purl": "pkg:npm/%22%40ballerina/ast-model%22",
"purl": "pkg:npm/%40ballerina/ast-model",
"extracted_requirement": "^0.99.0-RC3",
"scope": "dependencies",
"is_runtime": true,
"is_optional": false,
"is_resolved": false,
"is_resolved": true,
"is_direct": true,
"resolved_package": {},
"extra_data": {}
Expand Down
27 changes: 27 additions & 0 deletions tests/packagedcode/data/npm/yarn-lock/v1-2/yarn.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1


tailwindcss@^3.0.2:
version "3.4.3"
resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.3.tgz#be48f5283df77dfced705451319a5dffb8621519"
integrity sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==
dependencies:
"@alloc/quick-lru" "^5.2.0"

"@alloc/quick-lru@^5.2.0":
version "5.2.0"
resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30"
integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==

http2-wrapper@^1.0.0-beta.5.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d"
integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==
dependencies:
quick-lru "^5.1.1"

quick-lru@^5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932"
integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==
Loading

0 comments on commit ae22b45

Please sign in to comment.