Skip to content

Commit ae22b45

Browse files
Fix yarn lock v1 parser bug extra quotes
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 <ayansmahapatra@gmail.com>
1 parent f74a89b commit ae22b45

File tree

7 files changed

+379
-56
lines changed

7 files changed

+379
-56
lines changed

src/packagedcode/npm.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -909,6 +909,8 @@ def parse(cls, location, package_only=False):
909909
# hosted-git-info "^2.1.4"
910910
# semver "2 || 3 || 4 || 5"
911911
ns_name, _, constraint = stripped.partition(' ')
912+
if '"' in ns_name:
913+
ns_name = ns_name.replace('"', '')
912914
ns, _ , name = ns_name.rpartition('/')
913915
sub_dependencies.append((ns, name, constraint,))
914916

tests/packagedcode/data/npm/private-and-yarn/scan.expected.json

Lines changed: 40 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@
133133
"extra_data": {},
134134
"dependencies": [
135135
{
136-
"purl": "pkg:npm/%22%40types/swagger-parser%22",
136+
"purl": "pkg:npm/%40types/swagger-parser",
137137
"extracted_requirement": "^4.0.2",
138138
"scope": "dependencies",
139139
"is_runtime": true,
@@ -269,7 +269,7 @@
269269
"extra_data": {},
270270
"dependencies": [
271271
{
272-
"purl": "pkg:npm/%22%40ballerina/lang-service%22",
272+
"purl": "pkg:npm/%40ballerina/lang-service",
273273
"extracted_requirement": "^0.99.0-RC3",
274274
"scope": "dependencies",
275275
"is_runtime": true,
@@ -464,29 +464,29 @@
464464
"extra_data": {},
465465
"dependencies": [
466466
{
467-
"purl": "pkg:npm/%22%40ballerina/ast-model%22",
467+
"purl": "pkg:npm/%40ballerina/ast-model",
468468
"extracted_requirement": "^0.99.0-RC3",
469469
"scope": "dependencies",
470470
"is_runtime": true,
471471
"is_optional": false,
472-
"is_resolved": false,
472+
"is_resolved": true,
473473
"is_direct": true,
474474
"resolved_package": {},
475475
"extra_data": {}
476476
},
477477
{
478-
"purl": "pkg:npm/%22%40ballerina/font%22",
478+
"purl": "pkg:npm/%40ballerina/font",
479479
"extracted_requirement": "^0.99.0-RC3",
480480
"scope": "dependencies",
481481
"is_runtime": true,
482482
"is_optional": false,
483-
"is_resolved": false,
483+
"is_resolved": true,
484484
"is_direct": true,
485485
"resolved_package": {},
486486
"extra_data": {}
487487
},
488488
{
489-
"purl": "pkg:npm/%22%40ballerina/lang-service%22",
489+
"purl": "pkg:npm/%40ballerina/lang-service",
490490
"extracted_requirement": "^0.99.0-RC3",
491491
"scope": "dependencies",
492492
"is_runtime": true,
@@ -497,7 +497,7 @@
497497
"extra_data": {}
498498
},
499499
{
500-
"purl": "pkg:npm/%22%40ballerina/theme%22",
500+
"purl": "pkg:npm/%40ballerina/theme",
501501
"extracted_requirement": "^0.99.0-RC3",
502502
"scope": "dependencies",
503503
"is_runtime": true,
@@ -600,51 +600,51 @@
600600
"extra_data": {},
601601
"dependencies": [
602602
{
603-
"purl": "pkg:npm/%22%40ballerina/api-designer%22",
603+
"purl": "pkg:npm/%40ballerina/api-designer",
604604
"extracted_requirement": "^0.99.0-RC3",
605605
"scope": "dependencies",
606606
"is_runtime": true,
607607
"is_optional": false,
608-
"is_resolved": false,
608+
"is_resolved": true,
609609
"is_direct": true,
610610
"resolved_package": {},
611611
"extra_data": {}
612612
},
613613
{
614-
"purl": "pkg:npm/%22%40ballerina/ballerina-by-examples%22",
614+
"purl": "pkg:npm/%40ballerina/ballerina-by-examples",
615615
"extracted_requirement": "^0.99.0-RC3",
616616
"scope": "dependencies",
617617
"is_runtime": true,
618618
"is_optional": false,
619-
"is_resolved": false,
619+
"is_resolved": true,
620620
"is_direct": true,
621621
"resolved_package": {},
622622
"extra_data": {}
623623
},
624624
{
625-
"purl": "pkg:npm/%22%40ballerina/diagram%22",
625+
"purl": "pkg:npm/%40ballerina/diagram",
626626
"extracted_requirement": "^0.99.0-RC3",
627627
"scope": "dependencies",
628628
"is_runtime": true,
629629
"is_optional": false,
630-
"is_resolved": false,
630+
"is_resolved": true,
631631
"is_direct": true,
632632
"resolved_package": {},
633633
"extra_data": {}
634634
},
635635
{
636-
"purl": "pkg:npm/%22%40ballerina/documentation%22",
636+
"purl": "pkg:npm/%40ballerina/documentation",
637637
"extracted_requirement": "^0.99.0-RC3",
638638
"scope": "dependencies",
639639
"is_runtime": true,
640640
"is_optional": false,
641-
"is_resolved": false,
641+
"is_resolved": true,
642642
"is_direct": true,
643643
"resolved_package": {},
644644
"extra_data": {}
645645
},
646646
{
647-
"purl": "pkg:npm/%22%40ballerina/theme%22",
647+
"purl": "pkg:npm/%40ballerina/theme",
648648
"extracted_requirement": "^0.99.0-RC3",
649649
"scope": "dependencies",
650650
"is_runtime": true,
@@ -655,7 +655,7 @@
655655
"extra_data": {}
656656
},
657657
{
658-
"purl": "pkg:npm/%22%40ballerina/tracing%22",
658+
"purl": "pkg:npm/%40ballerina/tracing",
659659
"extracted_requirement": "^0.99.0-RC3",
660660
"scope": "dependencies",
661661
"is_runtime": true,
@@ -725,12 +725,12 @@
725725
"extra_data": {},
726726
"dependencies": [
727727
{
728-
"purl": "pkg:npm/%22%40ballerina/ast-model%22",
728+
"purl": "pkg:npm/%40ballerina/ast-model",
729729
"extracted_requirement": "^0.99.0-RC3",
730730
"scope": "dependencies",
731731
"is_runtime": true,
732732
"is_optional": false,
733-
"is_resolved": false,
733+
"is_resolved": true,
734734
"is_direct": true,
735735
"resolved_package": {},
736736
"extra_data": {}
@@ -1154,7 +1154,7 @@
11541154
"extra_data": {},
11551155
"dependencies": [
11561156
{
1157-
"purl": "pkg:npm/%22%40types/swagger-parser%22",
1157+
"purl": "pkg:npm/%40types/swagger-parser",
11581158
"extracted_requirement": "^4.0.2",
11591159
"scope": "dependencies",
11601160
"is_runtime": true,
@@ -1286,7 +1286,7 @@
12861286
"extra_data": {},
12871287
"dependencies": [
12881288
{
1289-
"purl": "pkg:npm/%22%40ballerina/lang-service%22",
1289+
"purl": "pkg:npm/%40ballerina/lang-service",
12901290
"extracted_requirement": "^0.99.0-RC3",
12911291
"scope": "dependencies",
12921292
"is_runtime": true,
@@ -1473,29 +1473,29 @@
14731473
"extra_data": {},
14741474
"dependencies": [
14751475
{
1476-
"purl": "pkg:npm/%22%40ballerina/ast-model%22",
1476+
"purl": "pkg:npm/%40ballerina/ast-model",
14771477
"extracted_requirement": "^0.99.0-RC3",
14781478
"scope": "dependencies",
14791479
"is_runtime": true,
14801480
"is_optional": false,
1481-
"is_resolved": false,
1481+
"is_resolved": true,
14821482
"is_direct": true,
14831483
"resolved_package": {},
14841484
"extra_data": {}
14851485
},
14861486
{
1487-
"purl": "pkg:npm/%22%40ballerina/font%22",
1487+
"purl": "pkg:npm/%40ballerina/font",
14881488
"extracted_requirement": "^0.99.0-RC3",
14891489
"scope": "dependencies",
14901490
"is_runtime": true,
14911491
"is_optional": false,
1492-
"is_resolved": false,
1492+
"is_resolved": true,
14931493
"is_direct": true,
14941494
"resolved_package": {},
14951495
"extra_data": {}
14961496
},
14971497
{
1498-
"purl": "pkg:npm/%22%40ballerina/lang-service%22",
1498+
"purl": "pkg:npm/%40ballerina/lang-service",
14991499
"extracted_requirement": "^0.99.0-RC3",
15001500
"scope": "dependencies",
15011501
"is_runtime": true,
@@ -1506,7 +1506,7 @@
15061506
"extra_data": {}
15071507
},
15081508
{
1509-
"purl": "pkg:npm/%22%40ballerina/theme%22",
1509+
"purl": "pkg:npm/%40ballerina/theme",
15101510
"extracted_requirement": "^0.99.0-RC3",
15111511
"scope": "dependencies",
15121512
"is_runtime": true,
@@ -1605,51 +1605,51 @@
16051605
"extra_data": {},
16061606
"dependencies": [
16071607
{
1608-
"purl": "pkg:npm/%22%40ballerina/api-designer%22",
1608+
"purl": "pkg:npm/%40ballerina/api-designer",
16091609
"extracted_requirement": "^0.99.0-RC3",
16101610
"scope": "dependencies",
16111611
"is_runtime": true,
16121612
"is_optional": false,
1613-
"is_resolved": false,
1613+
"is_resolved": true,
16141614
"is_direct": true,
16151615
"resolved_package": {},
16161616
"extra_data": {}
16171617
},
16181618
{
1619-
"purl": "pkg:npm/%22%40ballerina/ballerina-by-examples%22",
1619+
"purl": "pkg:npm/%40ballerina/ballerina-by-examples",
16201620
"extracted_requirement": "^0.99.0-RC3",
16211621
"scope": "dependencies",
16221622
"is_runtime": true,
16231623
"is_optional": false,
1624-
"is_resolved": false,
1624+
"is_resolved": true,
16251625
"is_direct": true,
16261626
"resolved_package": {},
16271627
"extra_data": {}
16281628
},
16291629
{
1630-
"purl": "pkg:npm/%22%40ballerina/diagram%22",
1630+
"purl": "pkg:npm/%40ballerina/diagram",
16311631
"extracted_requirement": "^0.99.0-RC3",
16321632
"scope": "dependencies",
16331633
"is_runtime": true,
16341634
"is_optional": false,
1635-
"is_resolved": false,
1635+
"is_resolved": true,
16361636
"is_direct": true,
16371637
"resolved_package": {},
16381638
"extra_data": {}
16391639
},
16401640
{
1641-
"purl": "pkg:npm/%22%40ballerina/documentation%22",
1641+
"purl": "pkg:npm/%40ballerina/documentation",
16421642
"extracted_requirement": "^0.99.0-RC3",
16431643
"scope": "dependencies",
16441644
"is_runtime": true,
16451645
"is_optional": false,
1646-
"is_resolved": false,
1646+
"is_resolved": true,
16471647
"is_direct": true,
16481648
"resolved_package": {},
16491649
"extra_data": {}
16501650
},
16511651
{
1652-
"purl": "pkg:npm/%22%40ballerina/theme%22",
1652+
"purl": "pkg:npm/%40ballerina/theme",
16531653
"extracted_requirement": "^0.99.0-RC3",
16541654
"scope": "dependencies",
16551655
"is_runtime": true,
@@ -1660,7 +1660,7 @@
16601660
"extra_data": {}
16611661
},
16621662
{
1663-
"purl": "pkg:npm/%22%40ballerina/tracing%22",
1663+
"purl": "pkg:npm/%40ballerina/tracing",
16641664
"extracted_requirement": "^0.99.0-RC3",
16651665
"scope": "dependencies",
16661666
"is_runtime": true,
@@ -1726,12 +1726,12 @@
17261726
"extra_data": {},
17271727
"dependencies": [
17281728
{
1729-
"purl": "pkg:npm/%22%40ballerina/ast-model%22",
1729+
"purl": "pkg:npm/%40ballerina/ast-model",
17301730
"extracted_requirement": "^0.99.0-RC3",
17311731
"scope": "dependencies",
17321732
"is_runtime": true,
17331733
"is_optional": false,
1734-
"is_resolved": false,
1734+
"is_resolved": true,
17351735
"is_direct": true,
17361736
"resolved_package": {},
17371737
"extra_data": {}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2+
# yarn lockfile v1
3+
4+
5+
tailwindcss@^3.0.2:
6+
version "3.4.3"
7+
resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.3.tgz#be48f5283df77dfced705451319a5dffb8621519"
8+
integrity sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==
9+
dependencies:
10+
"@alloc/quick-lru" "^5.2.0"
11+
12+
"@alloc/quick-lru@^5.2.0":
13+
version "5.2.0"
14+
resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30"
15+
integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==
16+
17+
http2-wrapper@^1.0.0-beta.5.2:
18+
version "1.0.3"
19+
resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d"
20+
integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==
21+
dependencies:
22+
quick-lru "^5.1.1"
23+
24+
quick-lru@^5.1.1:
25+
version "5.1.1"
26+
resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932"
27+
integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==

0 commit comments

Comments
 (0)