Skip to content

Commit c05a13d

Browse files
Merge pull request #4635 from aboutcode-org/handle-string-is-private
Handle string is private
2 parents edac742 + e5866d3 commit c05a13d

4 files changed

Lines changed: 191 additions & 1 deletion

File tree

src/packagedcode/npm.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -532,7 +532,9 @@ def _parse(cls, json_data, package_only=False):
532532

533533
namespace, name = split_scoped_package_name(name)
534534

535-
is_private = json_data.get('private') or False
535+
is_private = False
536+
if json_data.get('private'):
537+
is_private = True
536538
if is_private:
537539
urls = {}
538540
else:
Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,158 @@
1+
[
2+
{
3+
"type": "npm",
4+
"namespace": null,
5+
"name": "react-devtools-fusebox",
6+
"version": "0.0.0",
7+
"qualifiers": {},
8+
"subpath": null,
9+
"primary_language": "JavaScript",
10+
"description": null,
11+
"release_date": null,
12+
"parties": [],
13+
"keywords": [],
14+
"homepage_url": null,
15+
"download_url": "https://registry.npmjs.org/react-devtools-fusebox/-/react-devtools-fusebox-0.0.0.tgz",
16+
"size": null,
17+
"sha1": null,
18+
"md5": null,
19+
"sha256": null,
20+
"sha512": null,
21+
"bug_tracking_url": null,
22+
"code_view_url": null,
23+
"vcs_url": null,
24+
"copyright": null,
25+
"holder": null,
26+
"declared_license_expression": "mit",
27+
"declared_license_expression_spdx": "MIT",
28+
"license_detections": [
29+
{
30+
"license_expression": "mit",
31+
"license_expression_spdx": "MIT",
32+
"matches": [
33+
{
34+
"license_expression": "mit",
35+
"license_expression_spdx": "MIT",
36+
"from_file": null,
37+
"start_line": 1,
38+
"end_line": 1,
39+
"matcher": "1-spdx-id",
40+
"score": 100.0,
41+
"matched_length": 1,
42+
"match_coverage": 100.0,
43+
"rule_relevance": 100,
44+
"rule_identifier": "spdx-license-identifier-mit-5da48780aba670b0860c46d899ed42a0f243ff06",
45+
"rule_url": null,
46+
"matched_text": "MIT"
47+
}
48+
],
49+
"identifier": "mit-a822f434-d61f-f2b1-c792-8b8cb9e7b9bf"
50+
}
51+
],
52+
"other_license_expression": null,
53+
"other_license_expression_spdx": null,
54+
"other_license_detections": [],
55+
"extracted_license_statement": "- MIT\n",
56+
"notice_text": null,
57+
"source_packages": [],
58+
"file_references": [],
59+
"is_private": true,
60+
"is_virtual": false,
61+
"extra_data": {},
62+
"dependencies": [
63+
{
64+
"purl": "pkg:npm/buffer",
65+
"extracted_requirement": "^6.0.3",
66+
"scope": "devDependencies",
67+
"is_runtime": false,
68+
"is_optional": true,
69+
"is_pinned": false,
70+
"is_direct": true,
71+
"resolved_package": {},
72+
"extra_data": {}
73+
},
74+
{
75+
"purl": "pkg:npm/cross-env",
76+
"extracted_requirement": "^7.0.3",
77+
"scope": "devDependencies",
78+
"is_runtime": false,
79+
"is_optional": true,
80+
"is_pinned": false,
81+
"is_direct": true,
82+
"resolved_package": {},
83+
"extra_data": {}
84+
},
85+
{
86+
"purl": "pkg:npm/css-loader",
87+
"extracted_requirement": "^6.9.1",
88+
"scope": "devDependencies",
89+
"is_runtime": false,
90+
"is_optional": true,
91+
"is_pinned": false,
92+
"is_direct": true,
93+
"resolved_package": {},
94+
"extra_data": {}
95+
},
96+
{
97+
"purl": "pkg:npm/mini-css-extract-plugin",
98+
"extracted_requirement": "^2.7.7",
99+
"scope": "devDependencies",
100+
"is_runtime": false,
101+
"is_optional": true,
102+
"is_pinned": false,
103+
"is_direct": true,
104+
"resolved_package": {},
105+
"extra_data": {}
106+
},
107+
{
108+
"purl": "pkg:npm/process",
109+
"extracted_requirement": "^0.11.10",
110+
"scope": "devDependencies",
111+
"is_runtime": false,
112+
"is_optional": true,
113+
"is_pinned": false,
114+
"is_direct": true,
115+
"resolved_package": {},
116+
"extra_data": {}
117+
},
118+
{
119+
"purl": "pkg:npm/webpack",
120+
"extracted_requirement": "^5.82.1",
121+
"scope": "devDependencies",
122+
"is_runtime": false,
123+
"is_optional": true,
124+
"is_pinned": false,
125+
"is_direct": true,
126+
"resolved_package": {},
127+
"extra_data": {}
128+
},
129+
{
130+
"purl": "pkg:npm/webpack-cli",
131+
"extracted_requirement": "^5.1.1",
132+
"scope": "devDependencies",
133+
"is_runtime": false,
134+
"is_optional": true,
135+
"is_pinned": false,
136+
"is_direct": true,
137+
"resolved_package": {},
138+
"extra_data": {}
139+
},
140+
{
141+
"purl": "pkg:npm/workerize-loader",
142+
"extracted_requirement": "^2.0.2",
143+
"scope": "devDependencies",
144+
"is_runtime": false,
145+
"is_optional": true,
146+
"is_pinned": false,
147+
"is_direct": true,
148+
"resolved_package": {},
149+
"extra_data": {}
150+
}
151+
],
152+
"repository_homepage_url": null,
153+
"repository_download_url": null,
154+
"api_data_url": null,
155+
"datasource_id": "npm_package_json",
156+
"purl": "pkg:npm/react-devtools-fusebox@0.0.0"
157+
}
158+
]
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{
2+
"name": "react-devtools-fusebox",
3+
"version": "0.0.0",
4+
"private": "true",
5+
"license": "MIT",
6+
"files": ["dist"],
7+
"scripts": {
8+
"build:frontend:copy-types": "cp src/*.d.ts dist/",
9+
"build:frontend:local": "cross-env NODE_ENV=development webpack --config webpack.config.frontend.js && yarn build:frontend:copy-types",
10+
"build:frontend": "cross-env NODE_ENV=production webpack --config webpack.config.frontend.js && yarn build:frontend:copy-types",
11+
"build": "yarn build:frontend"
12+
},
13+
"devDependencies": {
14+
"buffer": "^6.0.3",
15+
"cross-env": "^7.0.3",
16+
"css-loader": "^6.9.1",
17+
"mini-css-extract-plugin": "^2.7.7",
18+
"process": "^0.11.10",
19+
"webpack": "^5.82.1",
20+
"webpack-cli": "^5.1.1",
21+
"workerize-loader": "^2.0.2"
22+
}
23+
}

tests/packagedcode/test_npm.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,13 @@ def test_parse_package_json_with_resolutions(self):
246246
packages = npm.NpmPackageJsonHandler.parse(test_file)
247247
self.check_packages_data(packages, expected_loc, regen=REGEN_TEST_FIXTURES)
248248

249+
def test_parse_package_json_is_private(self):
250+
test_file = self.get_test_loc('npm/private/react-devtools-fusebox.package.json')
251+
expected_loc = self.get_test_loc(
252+
'npm/private/react-devtools-fusebox.package-expected.json')
253+
packages = npm.NpmPackageJsonHandler.parse(test_file)
254+
self.check_packages_data(packages, expected_loc, regen=REGEN_TEST_FIXTURES)
255+
249256
def test_is_datafile_package_lock_json_v1(self):
250257
test_file = self.get_test_loc('npm/package-lock-v1/package-lock.json')
251258
assert npm.NpmPackageLockJsonHandler.is_datafile(test_file)

0 commit comments

Comments
 (0)